This file contains statistics and figures from the paper, “Molecular, Cellular, and Developmental Organization of the Mouse Vomeronasal organ at Single Cell Resolution” by Max Hills Jr., Limei Ma, Ai Fang, Thelma Chiremba, Seth Malloy, Allison Scott, Anoja Perera, and C. Ron Yu.

The paper can be found here:

Molecular, Cellular, and Developmental Organization of the Mouse Vomeronasal organ at Single Cell Resolution



Co-expression of chemosensory receptors

Percent of all read counts from a receptor gene, number of receptor species present per cell, and total counts from vomeronasal receptors, separated by cell type

Proportions of first, second, and third most expressed receptor gene as percent of total receptor counts, separated by cell type

LS0tCnRpdGxlOiAiVk5PIEF0bGFzIEZpZ3VyZSBTMTAiCmF1dGhvcjogIk1heCBIaWxscyIKZGF0ZTogImByIGZvcm1hdChTeXMudGltZSgpLCAnJWQgJUIsICVZJylgIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIGNzczogc3R5bGUuY3NzCi0tLQoKYGBge3IsIHJlc3VsdHM9J2FzaXMnfQoKY2F0KCI8YnV0dG9uIG9uY2xpY2s9J2hpc3RvcnkuYmFjaygpJyBzdHlsZT0nZm9udC1zaXplOiAyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgY29sb3I6IHdoaXRlOyBwYWRkaW5nOiAxMHB4IDIwcHg7IGJvcmRlcjogM3B4IHNvbGlkIHllbGxvdzsgYm9yZGVyLXJhZGl1czogNXB4Oyc+Q2xpY2sgSGVyZSB0byBSZXR1cm4gdG8gUHJldmlvdXMgUGFnZTwvYnV0dG9uPiIpCgpgYGAKCioqKiAgCgpgYGB7ciwgZW5naW5lPSdjc3MnLCBlY2hvID0gRkFMU0V9Cgpib2R5IHsKICBmb250LXNpemU6IDE4cHg7Cn0KLm5hdi1waWxscyA+IGxpID4gYSB7CiAgY29sb3I6IGJsYWNrOyAvKiBTZXQgaW5hY3RpdmUgdGFiIHRleHQgY29sb3IgdG8gYmxhY2sgKi8KICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsgLyogQWRkIGJsYWNrIGJvcmRlciB0byBpbmFjdGl2ZSB0YWJzICovCiAgYm9yZGVyLXJhZGl1czogNHB4OyAvKiBPcHRpb25hbDogU2xpZ2h0bHkgcm91bmQgdGhlIGNvcm5lcnMgKi8KfQoKLm5hdi1waWxscyA+IGxpID4gYTpob3ZlciwgLm5hdi1waWxscyA+IGxpID4gYTpmb2N1cyB7CiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7IC8qIFNldCBob3ZlciBiYWNrZ3JvdW5kIGNvbG9yIHRvIGEgZGFya2VyIGdyYXkgKi8KICBjb2xvcjogd2hpdGU7IC8qIFNldCBob3ZlciB0ZXh0IGNvbG9yIHRvIHdoaXRlIGZvciBiZXR0ZXIgY29udHJhc3QgKi8KfQoKLm5hdi1waWxscyA+IGxpLmFjdGl2ZSA+IGEgewogIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyAvKiBTZXQgYWN0aXZlIHRhYiBiYWNrZ3JvdW5kIGNvbG9yIHRvIGJsYWNrICovCiAgY29sb3I6IHdoaXRlOyAvKiBTZXQgYWN0aXZlIHRhYiB0ZXh0IGNvbG9yIHRvIHdoaXRlICovCiAgYm9yZGVyOiAzcHggc29saWQgeWVsbG93Cn0KCi5uYXYtcGlsbHMgPiBsaS5hY3RpdmUgPiBhOmhvdmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JheTsgLyogU2V0IGFjdGl2ZSB0YWIgYmFja2dyb3VuZCBjb2xvciB0byBibGFjayAqLwogIGNvbG9yOiB3aGl0ZTsgLyogU2V0IGFjdGl2ZSB0YWIgdGV4dCBjb2xvciB0byB3aGl0ZSAqLwogIGJvcmRlcjogM3B4IHNvbGlkIGJsYWNrCn0KCmBgYCAKICAKICAKPlRoaXMgZmlsZSBjb250YWlucyBzdGF0aXN0aWNzIGFuZCBmaWd1cmVzIGZyb20gdGhlIHBhcGVyLCAiTW9sZWN1bGFyLCBDZWxsdWxhciwgYW5kIERldmVsb3BtZW50YWwgT3JnYW5pemF0aW9uIG9mIHRoZSBNb3VzZSBWb21lcm9uYXNhbCBvcmdhbiBhdCBTaW5nbGUgQ2VsbCBSZXNvbHV0aW9uIiBieSBNYXggSGlsbHMgSnIuLCBMaW1laSBNYSwgQWkgRmFuZywgVGhlbG1hIENoaXJlbWJhLCBTZXRoIE1hbGxveSwgQWxsaXNvbiBTY290dCwgQW5vamEgUGVyZXJhLCBhbmQgQy4gUm9uIFl1LiAgICAKClRoZSBwYXBlciBjYW4gYmUgZm91bmQgaGVyZTogIAoKW01vbGVjdWxhciwgQ2VsbHVsYXIsIGFuZCBEZXZlbG9wbWVudGFsIE9yZ2FuaXphdGlvbiBvZiB0aGUgTW91c2UgVm9tZXJvbmFzYWwgb3JnYW4gYXQgU2luZ2xlIENlbGwgUmVzb2x1dGlvbl0oaHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9yZXZpZXdlZC1wcmVwcmludHMvOTczNTYjdGFiLWNvbnRlbnQpCgoqKiogIAoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CgojIFItTWFya2Rvd24gR2xvYmFsIFNldHRpbmdzICAKCiMgU2V0LXVwIGEgZGVmYXVsdCBpbWFnZSBzaXplIG9mIDEwIFggMTAgaW5jaGVzLiBTdXBwcmVzcyB3YXJuaW5nCiMgYW5kIGVycm9yIG1lc3NhZ2VzLiBIaWRlIGNvZGUuCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCBjb21tZW50PSIiLAogICAgICAgICAgICAgICAgICAgICAgZXJyb3I9RkFMU0UsIGZpZy53aWR0aD0xMiwgZmlnLmhlaWdodD0xMiwgY2FjaGU9RkFMU0UpCgpgYGAKCmBgYHtyIGxpYnJhcmllcywgaW5jbHVkZT1GQUxTRX0KCiMgTGlicmFyeSBMb2FkaW5nICAKCnN1cHByZXNzUGFja2FnZVN0YXJ0dXBNZXNzYWdlcyh7CiAgbGlicmFyeShraXQpOyBsaWJyYXJ5KHRpZHl2ZXJzZSk7IGxpYnJhcnkoc3RyaW5ncik7IGxpYnJhcnkocGxvdDNEKSAKICBsaWJyYXJ5KGdncGxvdDIpOyBsaWJyYXJ5KGRhdGEudGFibGUpOyBsaWJyYXJ5KG9yZy5NbS5lZy5kYikKICBsaWJyYXJ5KGRwbHlyKTsgbGlicmFyeShTZXVyYXQpOyBsaWJyYXJ5KERCSSk7IGxpYnJhcnkoY293cGxvdCkKICBsaWJyYXJ5KE1hdHJpeCk7IGxpYnJhcnkoZ2xtR2FtUG9pKTsgbGlicmFyeShjaXJjbGl6ZSkKICBsaWJyYXJ5KHRpYmJsZSk7IGxpYnJhcnkoZ2dwdWJyKTsgbGlicmFyeShzdmdsaXRlKTsgbGlicmFyeShnZ3NpZ25pZikKICBsaWJyYXJ5KHN0YXRzKTsgbGlicmFyeSh2ZWdhbik7IGxpYnJhcnkoc2NhbGVzKTsgbGlicmFyeShjYXJldCkKICBsaWJyYXJ5KHBhdGNod29yayk7IGxpYnJhcnkocGxvdGx5KTsgbGlicmFyeShnZW9tdGV4dHBhdGgpCiAgbGlicmFyeShvcGVueGxzeCk7IGxpYnJhcnkoZ3JpZEV4dHJhKTsgbGlicmFyeShnZ3JlcGVsKQogIGxpYnJhcnkoR2VuZU92ZXJsYXApOyBsaWJyYXJ5KGJpb21hUnQpOyBsaWJyYXJ5KGdncG9pbnRkZW5zaXR5KQogIGxpYnJhcnkoc2xpbmdzaG90KTsgbGlicmFyeSh0cmFkZVNlcSk7IGxpYnJhcnkoU2luZ2xlQ2VsbEV4cGVyaW1lbnQpCiAgbGlicmFyeSh2aXJpZGlzKTsgbGlicmFyeShVcFNldFIpOyBsaWJyYXJ5KHBoZWF0bWFwKTsgbGlicmFyeShtc2lnZGJyKQogIGxpYnJhcnkoZmdzZWEpOyBsaWJyYXJ5KGdyaWQpOyBsaWJyYXJ5KElEUG1pc2MpOyBsaWJyYXJ5KE1BU1MpCiAgbGlicmFyeShSbWlzYyk7IGxpYnJhcnkoZ2dwbG90aWZ5KTsgbGlicmFyeShnZ3BtaXNjKTsgbGlicmFyeShzY2FsZXMpCiAgbGlicmFyeShoZWF0bWFwbHkpOyBsaWJyYXJ5KGRlbmRleHRlbmQpCn0pCgpgYGAKCmBgYHtyfQoKIyBHbG9iYWwgVmFyaWFibGVzCgojIFRoZSBob21lIGRpcmVjdG9yeQpob21lX2RpciA8LSAiL2wvWXUvWXVMYWIvQmlvaW5mb3JtYXRpY3MvcHJvamVjdHMvbWhoL3NjX1ZOTy8iCiMgRGlyZWN0b3J5IGZvciBzdG9yaW5nIGRhdGEgb2JqZWN0cyBhdCBjcnVjaWFsIHN0YWdlcwpvYmplY3RfZGlyIDwtIHBhc3RlMChob21lX2RpciwiZmluYWwuc2V1Lm9ianMvIikKIyBEaXJlY3RvcnkgZm9yIGltYWdlcyBmcm9tIHRoZSBmaW5hbCBhbmFseXNpcwppbWFnZV9kaXIgPC0gcGFzdGUwKGhvbWVfZGlyLCJmaW5hbF9pbWFnZXMvIikKYWRvYmVfaW1hZ2VzIDwtIHBhc3RlMChpbWFnZV9kaXIsICJhZG9iZV9pbGx1c3RyYXRvcl9zdmdfZmlsZXMvIikKIyBEaXJlY3RvcnkgZm9yIGltYWdlcyBmb3IgdGhlIGZpbmFsIHBhcGVyCmNsdXN0cmVlX2RpciA8LSBwYXN0ZTAoaW1hZ2VfZGlyLCJjbHVzdHJlZS8iKQojIEEgZGlyZWN0b3J5IGZvciBUcmFkZVNlcSBmaXRHQU0gb3V0cHV0CmZpdEdBTV9kaXIgPC0gcGFzdGUwKG9iamVjdF9kaXIsICJmaXRHQU0vIikKbW9lX2RpciA8LSAiL2wvWXUvWXVMYWIvQmlvaW5mb3JtYXRpY3MvcHJvamVjdHMvbWhoL21vbG5nXzI0MDdfMjQ1My9SX29iai8iCgojIE9QRU4gYGBgdm5vLnNldS5pbnRlZ3JhdGVkYGBgCmxvYWQoZmlsZSA9IHBhc3RlMChvYmplY3RfZGlyLCJ2bm8uaW50ZWdyYXRlZC5wb3N0Q2VsbElEIikpCiNMb2FkIE5ldXJvbmFsIExpbmVhZ2UgU2V1cmF0IE9iamVjdCAgCmxvYWQoZmlsZSA9IHBhc3RlMChvYmplY3RfZGlyLCJuZXVyb24uaW50ZWdyYXRlZC5wb3N0Q2VsbElEIikpCgojIFJlbmFtZSB1bmtub3duX21WU04gdG8gc1ZTTgpsZXZlbHModm5vLnNldS5pbnRlZ3JhdGVkQGFjdGl2ZS5pZGVudClbbGV2ZWxzKHZuby5zZXUuaW50ZWdyYXRlZEBhY3RpdmUuaWRlbnQpPT0idW5rbm93bl9tVlNOIl0gPC0gInNWU04iCmxldmVscyhuZXVyb24uaW50ZWdyYXRlZEBhY3RpdmUuaWRlbnQpW2xldmVscyhuZXVyb24uaW50ZWdyYXRlZEBhY3RpdmUuaWRlbnQpPT0idW5rbm93bl9tVlNOIl0gPC0gInNWU04iCmxldmVscyh2bm8uc2V1LmludGVncmF0ZWQkY2VsbF90eXBlKVtsZXZlbHModm5vLnNldS5pbnRlZ3JhdGVkJGNlbGxfdHlwZSk9PSJ1bmtub3duX21WU04iXSA8LSAic1ZTTiIKbGV2ZWxzKG5ldXJvbi5pbnRlZ3JhdGVkJGNlbGxfdHlwZSlbbGV2ZWxzKG5ldXJvbi5pbnRlZ3JhdGVkJGNlbGxfdHlwZSk9PSJ1bmtub3duX21WU04iXSA8LSAic1ZTTiIKCiMgR2V0IGNvbG9yIHNjaGVtZSBmb3IgdGhlIHdob2xlIHZubyBkYXRhc2V0CnZuby5jZWxsX3R5cGUuY29sb3JzIDwtIGh1ZV9wYWwoKShsZW5ndGgobGV2ZWxzKHZuby5zZXUuaW50ZWdyYXRlZEBhY3RpdmUuaWRlbnQpKSkKbmFtZXModm5vLmNlbGxfdHlwZS5jb2xvcnMpIDwtIGxldmVscyh2bm8uc2V1LmludGVncmF0ZWRAYWN0aXZlLmlkZW50KQoKIyBLZWVwIG5ldXJvbiBkYXRhc2V0IGNvbG9yIHNjaGVtZSBjb25zaXN0ZW50IHdpdGggdGhlIHdob2xlIHZubyBjb2xvciBzY2hlbWUsIHdoZXJlIHBvc3NpYmxlICAKbmV1cm9uLmNlbGxfdHlwZS5jb2xvcnMgPC0gdm5vLmNlbGxfdHlwZS5jb2xvcnNbYygiVjFSX21WU04iLCJWMlJfbVZTTiIsIm1PU04iLCJzVlNOIiwiVjFSX2lWU04iLCJWMlJfaVZTTiIsIkdCQyIpXQpuZXVyb24uY2VsbF90eXBlLmNvbG9ycyA8LSBzZXROYW1lcyhjKG5ldXJvbi5jZWxsX3R5cGUuY29sb3JzLCIjMDBCMEY2IiwiIzk1OTBGRiIsIiNFNzZCRjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyhuYW1lcyhuZXVyb24uY2VsbF90eXBlLmNvbG9ycyksImlPU04iLCJsYXRlX0lOUCIsImVhcmx5X0lOUCIpKQoKbWF0dXJlLm5ldXJvbnMgPC0gc3Vic2V0KG5ldXJvbi5pbnRlZ3JhdGVkLGlkZW50cz1jKCJWMVJfbVZTTiIsIlYyUl9tVlNOIiwibU9TTiIsInNWU04iKSkKbWF0dXJlLmNlbGxfdHlwZS5jb2xvcnMgPC0gbmV1cm9uLmNlbGxfdHlwZS5jb2xvcnNbYygiVjFSX21WU04iLCJWMlJfbVZTTiIsIm1PU04iLCJzVlNOIildCgpnbG9iYWwudmFycyA8LSBjKGxzKCksImdsb2JhbC52YXJzIikKCmBgYAoKKioqICAKCiMgQ28tZXhwcmVzc2lvbiBvZiBjaGVtb3NlbnNvcnkgcmVjZXB0b3JzIHsudGFic2V0IC50YWJzZXQtcGlsbHN9ICAKCmBgYHtyfQoKbXlfdGhlbWVfMyA8LSB0aGVtZShheGlzLnRpdGxlLnk9ZWxlbWVudF90ZXh0KHNpemU9MTIpLCAgICAgICAgICAgICAgICAgICAgICAgICAjY2hhbmdlIGZvbnQgc2l6ZSBvZiB5IGF4aXMgbGFiZWwKICAgICAgICAgICAgICAgICAgICBheGlzLnRpdGxlLng9ZWxlbWVudF9ibGFuaygpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZG9uJ3Qgc2hvdyB4IGF4aXMgbGFiZWwKICAgICAgICAgICAgICAgICAgICBwbG90LnRpdGxlPWVsZW1lbnRfdGV4dChzaXplPTE2LGhqdXN0PTAuNSxmYWNlPSdib2xkJyksICAgICAjY2hhbmdlIGZvbnQgc2l6ZSBvZiBwbG90IHRpdGxlLCBjZW50ZXIKICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGl0bGU9ZWxlbWVudF90ZXh0KHNpemU9MTQpLCAgICAgICAgICAgICAgICAgICAgICAgICAjY2hhbmdlIGZvbnQgc2l6ZSBvZiBsZWdlbmQgdGl0bGUKICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGV4dD1lbGVtZW50X3RleHQoc2l6ZT0xMiksICAgICAgICAgICAgICAgICAgICAgICAgICAjY2hhbmdlIGZvbnQgc2l6ZSBvZiBsZWdlbmQgdGV4dAogICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC55PWVsZW1lbnRfdGV4dChzaXplPTEyKSwgICAgICAgICAgICAgICAgICAgICAgICAgICNjaGFuZ2UgZm9udCBzaXplIG9mIGF4aXMgdGljayBsYWJlbHMKICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueD1lbGVtZW50X2JsYW5rKCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZG9uJ3Qgc2hvdyB4LWF4aXMgdGljayBsYWJlbHMKICAgICAgICAgICAgICAgICAgICBheGlzLnRpY2tzLng9ZWxlbWVudF9ibGFuaygpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZG9uJ3Qgc2hvdyB4LWF4aXMgdGlja3MKICAgICAgICAgICAgICAgICAgICBsZWdlbmQua2V5LnNpemU9dW5pdCg4LCdtbScpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdGhlIHNpemUgb2YgbGVnZW5kICdib3hlcycKICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGl0bGUuYWxpZ249MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbGVmdCBhbGlnbiBsZWdlbmQgdGl0bGUKICAgICAgICAgICAgICAgICAgICBhc3BlY3QucmF0aW89MSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAja2VlcCBwbG90cyBzcXVhcmUKCmBgYAoKYGBge3J9CgptZXRhZGF0YS5jb21wYXJlIDwtIEZldGNoRGF0YShtYXR1cmUubmV1cm9ucyx2YXJzPWMoImNlbGxfdHlwZSIsInBlcmNlbnQucmVjZXB0b3JzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWNlcHRvci5zcGVjaWVzIiwidG90YWwucmVjZXB0b3IuY250IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaXJzdC5yZWNlcHRvci5wZXJjZW50Iiwic2Vjb25kLnJlY2VwdG9yLnBlcmNlbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRoaXJkLnJlY2VwdG9yLnBlcmNlbnQiLCJmaXJzdC5yZWNlcHRvci5jb3VudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2Vjb25kLnJlY2VwdG9yLmNvdW50IiwidGhpcmQucmVjZXB0b3IuY291bnQiKSkKCmBgYAoKYGBge3J9CgpyZWNlcHRvci5wZXJjZW50LmRmIDwtIAogIHBpdm90X2xvbmdlcihkYXRhPW1ldGFkYXRhLmNvbXBhcmVbICxjKDEsNTo3KV0sCiAgICAgICAgICAgICAgIGNvbHM9ZW5kc193aXRoKCJwZXJjZW50IiksCiAgICAgICAgICAgICAgIG5hbWVzX3RvPSJyZWNlcHRvciIsCiAgICAgICAgICAgICAgIG5hbWVzX3BhdHRlcm49IiguKilcXC5yZWNlcHRvclxcLnBlcmNlbnQiLAogICAgICAgICAgICAgICB2YWx1ZXNfdG89InBlcmNlbnQiKQoKYGBgCgojIyBQZXJjZW50IG9mIGFsbCByZWFkIGNvdW50cyBmcm9tIGEgcmVjZXB0b3IgZ2VuZSwgbnVtYmVyIG9mIHJlY2VwdG9yIHNwZWNpZXMgcHJlc2VudCBwZXIgY2VsbCwgYW5kIHRvdGFsIGNvdW50cyBmcm9tIHZvbWVyb25hc2FsIHJlY2VwdG9ycywgc2VwYXJhdGVkIGJ5IGNlbGwgdHlwZSAgCgpgYGB7cixmaWcud2lkdGg9MTYsZmlnLmhlaWdodD01LjMzMzMzfQoKbXlfY29tcGFyaXNvbnMgPC0gbGlzdChjKCJWMVJfbVZTTiIsIlYyUl9tVlNOIiksYygiVjJSX21WU04iLCJtT1NOIiksYygibU9TTiIsInNWU04iKSwKICAgICAgICAgICAgICAgICAgICAgIGMoIlYxUl9tVlNOIiwibU9TTiIpLGMoIlYyUl9tVlNOIiwic1ZTTiIpLGMoIlYxUl9tVlNOIiwic1ZTTiIpKQoKZmlnU182QSA8LSBnZ3Bsb3QobWV0YWRhdGEuY29tcGFyZSxhZXMoeD1jZWxsX3R5cGUseT1wZXJjZW50LnJlY2VwdG9ycyxmaWxsPWNlbGxfdHlwZSkpICsgZ2VvbV9ib3hwbG90KCkgKwogIHNjYWxlX2ZpbGxfbWFudWFsKCJDZWxsIFR5cGUiLHZhbHVlcz1tYXR1cmUuY2VsbF90eXBlLmNvbG9ycykgKyB0aGVtZV9jbGFzc2ljKCkgKwogIHN0YXRfc3VtbWFyeShmdW4ueT1tZWFuLGdlb209J3BvaW50JyxzaXplPTEwLGNvbG91cj0iYmxhY2siLHNoYXBlPTk1LHNob3dfZ3VpZGU9RkFMU0UpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoY29tcGFyaXNvbnM9bXlfY29tcGFyaXNvbnMsdGlwLmxlbmd0aD0wLjAxLAogICAgICAgICAgICAgICAgICAgICBtZXRob2Q9IndpbGNveC50ZXN0IixsYWJlbD0icC5zaWduaWYiLHZqdXN0PTAuMykgKwogIGdndGl0bGUoInBlcmNlbnQucmVjZXB0b3JzIikgKyB5bGFiKCJyZWNlcHRvci90b3RhbCAoJSkiKSArIG15X3RoZW1lXzMgKyBzY2FsZV95X2xvZzEwKCkKZmlnU182QiA8LSBnZ3Bsb3QobWV0YWRhdGEuY29tcGFyZSxhZXMoeD1jZWxsX3R5cGUseT1yZWNlcHRvci5zcGVjaWVzLGZpbGw9Y2VsbF90eXBlKSkgKyBnZW9tX2JveHBsb3QoKSArCiAgc2NhbGVfZmlsbF9tYW51YWwoIkNlbGwgVHlwZSIsdmFsdWVzPW1hdHVyZS5jZWxsX3R5cGUuY29sb3JzKSArIHRoZW1lX2NsYXNzaWMoKSArCiAgc3RhdF9zdW1tYXJ5KGZ1bi55PW1lYW4sZ2VvbT0ncG9pbnQnLHNpemU9MTAsY29sb3VyPSJibGFjayIsc2hhcGU9OTUsc2hvd19ndWlkZT1GQUxTRSkgKwogIHN0YXRfY29tcGFyZV9tZWFucyhjb21wYXJpc29ucz1teV9jb21wYXJpc29ucyx0aXAubGVuZ3RoPTAuMDEsCiAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD0id2lsY294LnRlc3QiLGxhYmVsPSJwLnNpZ25pZiIsdmp1c3Q9MC4zKSArCiAgZ2d0aXRsZSgicmVjZXB0b3Iuc3BlY2llcyIpICsgeWxhYigibnVtYmVyIG9mIHJlY2VwdG9yIHNwZWNpZXMvY2VsbCIpICsgbXlfdGhlbWVfMyArIHNjYWxlX3lfbG9nMTAoKQpmaWdTXzZDIDwtIGdncGxvdChtZXRhZGF0YS5jb21wYXJlLGFlcyh4PWNlbGxfdHlwZSx5PXRvdGFsLnJlY2VwdG9yLmNudCxmaWxsPWNlbGxfdHlwZSkpICsgZ2VvbV9ib3hwbG90KCkgKwogIHNjYWxlX2ZpbGxfbWFudWFsKCJDZWxsIFR5cGUiLHZhbHVlcz1tYXR1cmUuY2VsbF90eXBlLmNvbG9ycykgKyB0aGVtZV9jbGFzc2ljKCkgKwogIHN0YXRfc3VtbWFyeShmdW4ueT1tZWFuLGdlb209J3BvaW50JyxzaXplPTEwLGNvbG91cj0iYmxhY2siLHNoYXBlPTk1LHNob3dfZ3VpZGU9RkFMU0UpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoY29tcGFyaXNvbnM9bXlfY29tcGFyaXNvbnMsdGlwLmxlbmd0aD0wLjAxLAogICAgICAgICAgICAgICAgICAgICBtZXRob2Q9IndpbGNveC50ZXN0IixsYWJlbD0icC5zaWduaWYiLHZqdXN0PTAuMykgKwogIGdndGl0bGUoInRvdGFsLnJlY2VwdG9yLmNudCIpICsgeWxhYigidG90YWwgbm9ybWFsaXplZCBjb3VudCIpICsgbXlfdGhlbWVfMyArIHNjYWxlX3lfbG9nMTAoKQoKZ2dhcnJhbmdlKGZpZ1NfNkEsZmlnU182QixmaWdTXzZDLG5jb2w9Myxucm93PTEsY29tbW9uLmxlZ2VuZD1UUlVFLGFsaWduPSJodiIsbGVnZW5kPSJib3R0b20iKQogIApgYGAKCiMjIFByb3BvcnRpb25zIG9mIGZpcnN0LCBzZWNvbmQsIGFuZCB0aGlyZCBtb3N0IGV4cHJlc3NlZCByZWNlcHRvciBnZW5lIGFzIHBlcmNlbnQgb2YgdG90YWwgcmVjZXB0b3IgY291bnRzLCBzZXBhcmF0ZWQgYnkgY2VsbCB0eXBlICAKCmBgYHtyLGZpZy53aWR0aD0xNixmaWcuaGVpZ2h0PTUuMzMzMzN9CgpmaWdTXzYucGFydF8yIDwtIGdncGxvdChkYXRhPXJlY2VwdG9yLnBlcmNlbnQuZGYsYWVzKHggPSByZWNlcHRvciwgeSA9IHBlcmNlbnQsIGZpbGwgPSByZWNlcHRvcikpICsKICAgIGdlb21fYm94cGxvdCgpICsgdGhlbWVfY2xhc3NpYygpICsKICAgIGZhY2V0X2dyaWQofiBjZWxsX3R5cGUpICsgbXlfdGhlbWVfMyArIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbj0iYm90dG9tIiwgdGV4dD1lbGVtZW50X3RleHQoc2l6ZT0yMiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGl0bGU9ZWxlbWVudF90ZXh0KHNpemU9MjIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnRleHQ9ZWxlbWVudF90ZXh0KHNpemU9MTgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50aXRsZS55PWVsZW1lbnRfdGV4dChzaXplPTE4KSkgCgpmaWdTXzYucGFydF8yCgpgYGAKCgo=