LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogTm9yd2VnaWFuIEJva23lbCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA1LTIwMDYgQWxleGFuZGVyIE4uIFP4cm5lcyA8YWxleEB0aGVoYW5kb2ZhZ29ueS5jb20+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKgogKi8KCkxBTkdVQUdFIExBTkdfTk9SV0VHSUFOLCBTVUJMQU5HX05PUldFR0lBTl9CT0tNQUwKCklEUl9XSU5FQ0ZHIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJPcHBzZXR0IiwgSURDX0FVRElPX0NPTkZJR1VSRQogICAgRU5ECkVORAoKSUREX0FCT1VUQ0ZHIERJQUxPR0VYIDAsIDAsIDI2MCwgMjcwClNUWUxFIFdTX0NISUxECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICBQQUNLQUdFX1NUUklORyxJRENfU1RBVElDLDExOSwxNywxMjAsOAogICAgQ09OVFJPTCAgICAgICAgIElEQl9XSU5FLElEQ19TVEFUSUMsIlN0YXRpYyIsU1NfQklUTUFQICwxNSwxNywxNTcsMTExCiAgICBMVEVYVCAgICAgICAgICAgImh0dHA6Ly93d3cud2luZWhxLm9yZy8iLElEQ19TVEFUSUMsMTE5LDMxLDEwNiw4CiAgICBMVEVYVCAgICAgICAgICAgIkRldHRlIGJpYmxpb3Rla2V0IGVyIGZyaSBwcm9ncmFtdmFyZXI7IGRldCBrYW4gcmVkaXN0cmlidWVyZXMgaSBoZW5ob2xkIHRpbCB2aWxr5XJlbmUgaSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdXRnaXR0IGF2IKt0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uuywgZW50ZW4gdmVyc2pvbiAyLjEgYXYgZGVubmUgTGlzZW5zZW4sIGVsbGVyIChodmlzIGR1IPhuc2tlciBkZXQpIGVuIG55ZXJlIHZlcnNqb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKRU5ECgpJRERfQVBQQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBQcm9ncmFtbWlubnN0aWxsaW5nZXIgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJXaW5lIGthbiBoZXJtZSBldHRlciBmb3Jza2plbGxpZ2UgV2luZG93cy12ZXJzam9uZXIgZm9yIGh2ZXJ0IHByb2dyYW0uIERlbm5lIGZhbmVuIGVyIGtvYmxldCBtZWQgYmlibGlvdGVrLSBvZyBncmFmaWtrZmFuZW5lLCBz5W5uIGF0IGR1IGthbiBlbmRyZSBpbm5zdGlsbGluZ2VyIGZvciBoZWxlIHN5c3RlbWV0IGVsbGVyIGVua2VsdGUgcHJvZ3JhbSBkZXIgb2dz5S4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsMjAsMjI3LDMwCiAgICBDT05UUk9MICAgICAgICAgIlByb2dyYW1tZXIiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTUwCiAgICBQVVNIQlVUVE9OCSAgICAiTGVnZyB0aWwgcHJvZ3ImYW0gLiAuIC4iLElEQ19BUFBfQUREQVBQLCA5MCwyMDQsNzUsMTQKICAgIFBVU0hCVVRUT04JICAgICJGamUmcm4gcHJvZ3JhbSIsSURDX0FQUF9SRU1PVkVBUFAsIDE3MCwyMDQsNzUsMTQKICAgIExURVhUICAgICAgICAgICAiJldpbmRvd3MtdmVyc2pvbjoiLElEQ19TVEFUSUMsMTcsMjI2LDU4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDgzLDIyNCwxNjMsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QICAgIApFTkQKCklERF9HUkFQSENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgVmluZHVpbm5zdGlsbGluZ2VyICIsSURDX1NUQVRJQyw4LDI1LDI0NCwxODAKCiAgICBDT05UUk9MCSAgICAiVGlsbGF0IERpcmVjdFgtcHJvZ3JhbW1lciDlIGhpbmRyZSBtdXNlbiBmcmEg5SBmb3JsYXRlIHZpbmR1ZXQiLElEQ19EWF9NT1VTRV9HUkFCLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzUsMjMwLDgKICAgIExURVhUIAkgICAgIkh2aXMgdmluZHVlciBrb250cm9sbGVyZXMgYXYgZGluIHN0YW5kYXJkdmluZHVzYmVoYW5kbGVyLCBm5XIgZGUgdmFubGlnZSByYW1tZXIsIG9nIHJlc3Bla3RlcmVyIGRldCB2aXJ0dWVsbGUgc2tyaXZlYm9yZGV0IGRpdHQgb2cgdmlzZXMgaSB2aW5kdXNsaXN0ZW4uXG5cbkh2aXMgZGUgZXIgdWtvbnRyb2xsZXJ0ZSBlciBkZSBrb2JsZXQgZnJhIHZpbmR1c2JlaGFuZGxlcmVuLiBEZXR0ZSBiZXR5ciBhdCBkZSBpa2tlIGludGVncmVyZXMgbGlrZSBnb2R0IG1lZCBza3JpdmVib3JkZXQgZGl0dCwgbWVuIGVtdWxlcmluZ2VuIGJsaXIgbWVyIHByZXNpcyBz5W5uIGF0IG5vZW4gcHJvZ3JhbW1lciB2aXJrZXIgYmVkcmUuIiwKICAgIAkJICAgIElEQ19TVEFUSUMsMTUsNTgsMjI4LDgwCiAgICBDT05UUk9MCSAgICAiVGlsbGF0IHZpbmR1c2JlaGFuZGxlcmVuIOUga29udHJvbGxlcmUgdmluZHVlbmUiLElEQ19FTkFCTEVfTUFOQUdFRCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEzMiwyMzAsOAogICAgCiAgICBMVEVYVCAgICAgICAgICAgIkR1IGthbiB2ZWxnZSDlIGVtdWxlcmUgZXQgV2luZG93cy1za3JpdmVib3JkLCBkZXIgYWxsZSB2aW5kdWVuZSBlciBidW5kZXQgaSBlbiB2aXJ0dWVsbCBza2plcm0sIGVsbGVyIGR1IGthbiBm5SB2aW5kdWVuZSB0aWwg5SBvcHBm+HJlIHNlZyBzb20gYW5kcmUgcHJvZ3JhbW1lciBw5SBza3JpdmVib3JkZXQuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDE0NiwyMjgsMjgKICAgIExURVhUICAgICAgICAgICAiU2tyaXZlYm9yZHNzdHJyZWxzZToiLElEQ19ERVNLVE9QX1NJWkUsMTUsMTg4LDQ0LDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiWCIsSURDX0RFU0tUT1BfQlksMTA4LDE4OCw4LDgsV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAiRW11bGVyIGV0IHZpcnR1ZWx0IHNrcml2ZWJvcmQiLElEQ19FTkFCTEVfREVTS1RPUCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDE3MywyMzAsMTAKCQkgICAgCiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfV0lEVEgsNjQsMTg4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9IRUlHSFQsMTE3LDE4OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECgogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0M0QgIixJRENfU1RBVElDLDgsMjEwLDI0NCw1MAoKICAgIExURVhUCSAgICAiVmVydGVrcy1za3lnZ2VsZWdnaW5nOiAiLElEQ19TVEFUSUMsMTUsMjIwLDgwLDMwCiAgICBDT01CT0JPWAkgICAgSURDX0QzRF9WU0hBREVSX01PREUsMTAwLDIxOCwxNTAsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTCAgICAgICAgICJUaWxsYXQgcGlrc2VsLXNreWdnZWxlZ2dlciAoaHZpcyBtYXNraW52YXJlbiBzdPh0dGVyIGRldCkiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjM3LDIzMCwxMApFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTC1vdmVyc3R5cmluZyAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiRHluYW1pc2sga29ibGVkZSBiaWJsaW90ZWtlciBrYW4gb3BwZ2lzIGluZGl2aWR1ZWx0IHRpbCDlIHbmcmUgZW50ZW4gaW5uZWJ5Z2dldCAoZnJhIFdpbmUpIGVsbGVyIGlubmb4ZHQgKHRhdHQgZnJhIFdpbmRvd3MgZWxsZXIgZ2l0dCBhdiBldCBwcm9ncmFtKS4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIk55IG92ZXJzdHlyaW5nIGZvciBiaWJsaW90ZWs6IixJRENfU1RBVElDLDE2LDU4LDEwMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTENPTUJPLDE2LDY4LDE0MCwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTiAgICAgICImTGVnZyB0aWwiLElEQ19ETExTX0FERERMTCwgMTY0LDY4LDgyLDEzLEJTX0RFRlBVU0hCVVRUT04gCiAgICBMVEVYVCAgICAgICAgICAgIkVrc2lzdGVyZW5kZSBvdmVyc3R5cmluZ2VyOiIsSURDX1NUQVRJQywxNiw4NiwxMDAsOAogICAgTElTVEJPWCAgICAgICAgIElEQ19ETExTX0xJU1QsMTYsOTYsMTQwLDE0MCxXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICJSJmVkaWdlciIsSURDX0RMTFNfRURJVERMTCwxNjQsOTYsODIsMTQKICAgIFBVU0hCVVRUT04gICAgICAiRmplJnJuIixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNCAKRU5ECgpJRERfTE9BRE9SREVSIERJQUxPRyBESVNDQVJEQUJMRSA4MCwgOTAsIDExMCwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlJlZGlnZXIgb3ZlcnN0eXJpbmciCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIExhc3RpbmdzcmVra2VmbGdlICIsSURDX1NUQVRJQyw4LDQsOTQsNjYKICAgIENPTlRST0wgICAgICAgICAiSW5uZSZieWdnZXQgKFdpbmUpIixJRENfUkFEX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQLDE2LDE0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIkkmbm5m+GR0IChXaW5kb3dzKSIsSURDX1JBRF9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwyNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICImSW5uZWJ5Z2dldCBz5SBpbm5m+GR0IixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiSW5uZmT4JmR0IHPlIGlubmVieWdnZXQiLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw0NCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICImRGVha3RpdmVyIixJRENfUkFEX0RJU0FCTEUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw1NCw3NSwxMAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSyw4LDc0LDQ1LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkF2YnJ5dCIsSURDQU5DRUwsNTcsNzQsNDUsMTQsV1NfR1JPVVAKRU5ECgpJRERfRFJJVkVDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIFN0YXNqb25rYXJ0bGVnZ2luZyAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdGV2aXNuaW5nIixJRENfTElTVF9EUklWRVMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTgsMjMyLDc2CiAgICBQVVNIQlVUVE9OICAgICAgIiZMZWdnIHRpbCAuIC4gLiIsSURDX0JVVFRPTl9BREQsMTUsOTgsNDUsMTQKICAgIFBVU0hCVVRUT04gICAgICAiRmplJnJuIixJRENfQlVUVE9OX1JFTU9WRSw2Myw5OCwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICImQXV0b21hdGlzayAuIC4gLiIsSURDX0JVVFRPTl9BVVRPREVURUNULDE5MCw5OCw1NiwxNAoKICAgIC8qIGVkaXRpbmcgZHJpdmUgZGV0YWlscyAqLwogICAgTFRFWFQgICAgICAgICAgICImU3RpOiIsSURDX1NUQVRJQywxNSwxMjMsMjAsOSAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9QQVRILDQxLDEyMCwxNjAsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIiZCbGEgLiAuIC4iLElEQ19CVVRUT05fQlJPV1NFX1BBVEgsMjA2LDEyMCw0MCwxMwoKICAgIExURVhUICAgICAgICAgICAiJlR5cGU6IixJRENfU1RBVElDX1RZUEUsMTUsMTM4LDIxLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNDEsMTM1LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIExURVhUICAgICAgICAgICAiVm9sdW1uYXZuIG9nIHNlcmllbnVtbWVyIixJRENfTEFCRUxTRVJJQUxfU1RBVElDLDE1LDE1NSw5NSwxMAoKICAgIFBVU0hCVVRUT04gICAgICAiQXZhbiZzZXJ0IHZpc25pbmciLElEQ19CVVRUT05fU0hPV19ISURFX0FEVkFOQ0VELDE4NiwxMzYsNjAsMTMKICAgIENPTlRST0wgICAgICAgICAiJkZpbm4gYXV0b21hdGlzayBmcmEgZW5oZXQ6IixJRENfUkFESU9fQVVUT0RFVEVDVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTY2LDkzLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfREVWSUNFLDI3LDE3NiwxNzQsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJkJsYSAuIC4gLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDIwNiwxNzYsNDAsMTMKICAgIENPTlRST0wgICAgICAgICAiT3BwbmV2biAmbWFudWVsdDoiLElEQ19SQURJT19BU1NJR04sIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE5NSw2OSwxMAoKICAgIExURVhUICAgICAgICAgICAiVm8mbHVtbmF2bjoiLElEQ19TVEFUSUNfTEFCRUwsMzMsMjA4LDI5LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfTEFCRUwsNjMsMjA1LDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTJmVyaWVudW1tZXI6IixJRENfU1RBVElDX1NFUklBTCwzMywyMjUsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNjMsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiVmlzIC4tZmlsZXIiLElEQ19TSE9XX0RPVF9GSUxFUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDgsMjYwLDIzMCw4CkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBWYWxnIGF2IGRyaXZlciAiLElEQ19TVEFUSUMsOCw0LDI0NCwxOTUKICAgIExURVhUICAgICAgICAgICAiVmVsZyBlbiBseWRkcml2ZXIgdmVkIOUga3J5c3NlIGF2IGkgYm9rc2VuIHZlZCBzaWRlbiBhdiBkZW4gZHUgdmlsIGJydWtlLiBEZWFrdGl2ZXIgbHlkIHZlZCDlIGlra2UgdmVsZ2Ugbm9lbi4gRGV0IGFuYmVmYWxlcyBpa2tlIOUgdmVsZ2UgZmxlcmUgZHJpdmVyZS4gRHJpdmVyZW5zIG9wcHNldHQga2FuIGVuZHJlcyB2ZWQg5SBo+HlyZWtsaWtrZSBw5SBkZW4uIixJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICJFbmhldGVyIixJRENfQVVESU9fVFJFRSwiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwxNSw1MCwxNDAsMTQwIAogICAgUFVTSEJVVFRPTgkgICAgIktvbnRyb2xscGFuZWwiLElEQ19BVURJT19DT05UUk9MX1BBTkVMLDE3MCw1MCw1OSwxNAogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0U291bmQgIixJRENfU1RBVElDLDgsMjA1LDI0NCw2MAogICAgTFRFWFQJICJNYXNraW52YXJlYWtzZWxlcmFzam9uOiAiLElEQ19TVEFUSUMsMTUsMjE1LDkwLDEwCiAgICBDT01CT0JPWAkgICAgSURDX0RTT1VORF9IV19BQ0NFTCwxMDAsMjEzLDE1MCw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiU3RkLiBzYW1wbGluZ3NyYXRlOiIsSURDX1NUQVRJQywxNSwyMzIsNzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfUkFURVMsOTAsMjMwLDQyLDc2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTdGQuIGJpdGVyIHBlciBwcvh2ZToiLElEQ19TVEFUSUMsMTM3LDIzMiw4MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9CSVRTLDIyMCwyMzAsMzAsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAgICAgIkRyaXZlcmVtdWxlcmluZyIsSURDX0RTT1VORF9EUlZfRU1VTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDI1MCwyMzAsMTAKRU5ECgpJRERfREVTS1RPUF9JTlRFR1JBVElPTiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgQXBwZWFyYW5jZSAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAiVGVtYToiLElEQ19TVEFUSUMsMTUsMTYsMTMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwxMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIkluc3RhbGxlciB0ZW1hIC4gLiAuIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMjMsOTMsMTQKICAgIExURVhUICAgICAgICAgICAiRmFyZ2U6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDQwLDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNDgsMTEyLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTdPhycmVsc2U6IixJRENfVEhFTUVfU0laRVRFWFQsMTM1LDQwLDExMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxMzUsNDgsMTEwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJFbGVtZW50OiIsSURDX1NUQVRJQywxNSw2NCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19TWVNQQVJBTV9DT01CTywxNSw3NCwxMTIsMTIwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUCiAgICBMVEVYVCAgICAgICAgICAgIkZhcmdlOiIsSURDX1NZU1BBUkFNX0NPTE9SX1RFWFQsMTM1LDY0LDI1LDgsV1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiIixJRENfU1lTUEFSQU1fQ09MT1IsMTM1LDc0LDI1LDEzLFdTX0RJU0FCTEVEIHwgQlNfT1dORVJEUkFXCiAgICBMVEVYVCAgICAgICAgICAgIlN0+HJyZWxzZToiLElEQ19TWVNQQVJBTV9TSVpFX1RFWFQsMTY2LDY0LDMwLDgsV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfU1lTUEFSQU1fU0laRSwxNjYsNzQsMjMsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QIHwgV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAiIixJRENfU1lTUEFSQU1fU0laRV9VRCxVUERPV05fQ0xBU1MsVURTX1NFVEJVRERZSU5UIHwgV1NfRElTQUJMRUQsMTg3LDc0LDE1LDEzCiAgICBQVVNIQlVUVE9OICAgICAgIlNrcmlmdCIsSURDX1NZU1BBUkFNX0ZPTlQsMjA4LDc0LDM3LDEzLFdTX0RJU0FCTEVECiAgICBHUk9VUEJPWCAgICAgICAgIiBTa2FsbGthdGFsb2cgIixJRENfU1RBVElDLDgsMTE0LDI0NCwxMDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdGV2aXNuaW5nIixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIlBlayB0aWw6IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDUwLDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw2NSwxOTUsMTQ1LDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiQmxhIixJRENfQlJPV1NFX1NGUEFUSCwyMTUsMTk1LDMwLDEzLFdTX0RJU0FCTEVECkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAiUHJvZ3JhbW1lciIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICJCaWJsaW90ZWtlciIKICAgIElEU19UQUJfRFJJVkVTICAgICAgICAgICJTdGFzam9uZXIiCiAgICBJRFNfQ0hPT1NFX1BBVEggICAgICAgICAiVmVsZyBVbml4LW3lbGthdGFsb2dlbi4iCiAgICBJRFNfSElERV9BRFZBTkNFRCAgICAgICAiRW5rZWwgdmlzbmluZyIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICJBdmFuc2VydCB2aXNuaW5nIgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIihJbnRldCB0ZW1hKSIKICAgIElEU19UQUJfR1JBUEhJQ1MgICAgICAgICJHcmFmaWtrIgogICAgSURTX1RBQl9ERVNLVE9QX0lOVEVHUkFUSU9OICJTa3JpdmVib3Jkc2ludGVncmVyaW5nIgogICAgSURTX1RBQl9BVURJTyAgICAgICAgICAgIkx5ZCIKICAgIElEU19UQUJfQUJPVVQgICAgICAgICAgICJPbSIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJPcHBzZXR0IGF2IFdpbmUiCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAiV2luZSBjb25maWd1cmF0aW9uIGZvciAlcyIKICAgIElEU19USEVNRUZJTEUgICAgICAgICAgICJUZW1hZmlsZXIiCiAgICBJRFNfVEhFTUVGSUxFX1NFTEVDVCAgICAiVmVsZyBlbiB0ZW1hZmlsIgogICAgSURTX0FVRElPX01JU1NJTkcgICAgICAgIkluZ2VuIGx5ZGRyaXZlciBlciBvcHBnaXR0IGkgcmVnaXN0ZXJldC5cblxuRW4gYW5iZWZhbHQgZHJpdmVyIGVyIHZhbGd0IGZvciBkZWc7XG5icnVrIGRlbiBlbGxlciB2ZWxnIGVuIGFubmVuLFxuXG5vZyB0cnlrayCrQnJ1a7sgZm9yIGF0IGVuZHJpbmdlbmUgc2thbCB0cmUgaSBrcmFmdC4iCiAgICBJRFNfU0hFTExfRk9MREVSICAgICAgICAiU2thbGxrYXRhbG9nIgogICAgSURTX0xJTktTX1RPICAgICAgICAgICAgIlBla2VyIHRpbCIKRU5ECiAgICAKICAgIFNUUklOR1RBQkxFIERJU0NBUkRBQkxFCiAgICBCRUdJTgogICAgSURTX0RMTF9XQVJOSU5HICAgICAgICAgIkVuZHJpbmcgYXYgbGFzdGluZ3NyZWtrZWb4bGdlbiBmb3IgZGV0dGUgYmlibGlvdGVrZXQgYW5iZWZhbGVzIGlra2UuXG5FciBkdSBzaWtrZXIgcOUgYXQgZHUgdmlsIGdq+HJlIGRldD8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAiQWR2YXJzZWw6IHN5c3RlbWJpYmxpb3RlayIKICAgIElEU19ETExfTkFUSVZFICAgICAgICAgICJpbm5m+GR0IgogICAgSURTX0RMTF9CVUlMVElOICAgICAgICAgImlubmVieWdnZXQiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAiaW5uZvhkdCwgaW5uZWJ5Z2dldCIKICAgIElEU19ETExfQlVJTFRJTl9OQVRJVkUgICJpbm5lYnlnZ2V0LCBpbm5m+GR0IgogICAgSURTX0RMTF9ESVNBQkxFRCAgICAgICAgInNs5XR0IGF2IgogICAgSURTX0RFRkFVTFRfU0VUVElOR1MgICAgIkdsb2JhbGUgaW5uc3RpbGxpbmdlciIKICAgIElEU19FWEVDVVRBQkxFX0ZJTFRFUiAgICJXaW5lLXByb2dyYW1tZXIgKCouZXhlLCouZXhlLnNvKVwwKi5leGU7Ki5leGUuc29cMCIKICAgIElEU19VU0VfR0xPQkFMX1NFVFRJTkdTICJCcnVrIGdsb2JhbGUgaW5uc3RpbGxpbmdlciIKICAgIElEU19TRUxFQ1RfRVhFQ1VUQUJMRSAgICJWZWxnIGVuIHByb2dyYW1maWwiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19TSEFERVJfTU9ERV9IQVJEV0FSRSAgICAiTWFza2ludmFyZSIKICAgIElEU19TSEFERVJfTU9ERV9OT05FICAgICAgICAiSW5nZW4iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19EUklWRV9VTktOT1dOICAgICAgICAgICAiQXV0b21hdGlzayIKICAgIElEU19EUklWRV9GSVhFRCAgICAgICAgICAgICAiTG9rYWwgaGFyZGRpc2siCiAgICBJRFNfRFJJVkVfUkVNT1RFICAgICAgICAgICAgIk5ldHR2ZXJrc3Jlc3N1cnMiCiAgICBJRFNfRFJJVkVfUkVNT1ZBQkxFICAgICAgICAgIkRpc2tldHQiCiAgICBJRFNfRFJJVkVfQ0RST00gICAgICAgICAgICAgIkNELVJPTSIKICAgIElEU19EUklWRV9MRVRURVJTX0VYQ0VFREVEICAiRHUga2FuIGlra2UgbGVnZ2UgdGlsIGZsZXJlIHN0YXNqb25lci5cblxuSHZlciBzdGFzam9uIG3lIGhhIGVuIGJva3N0YXYgZnJhIEEgdGlsIFosIHPlIDI2IHN0YXNqb25lciBlciBkZXQgbWVzdGUiCiAgICBJRFNfU1lTVEVNX0RSSVZFX0xBQkVMICAgICAgIlN5c3RlbXN0YXNqb24iCiAgICBJRFNfQ09ORklSTV9ERUxFVEVfQyAgICAgICAgIlZpbCBkdSB2aXJrZWxpZyBmamVybmUgc3Rhc2pvbiBDP1xuXG5EZSBmbGVzdGUgV2luZG93cy1wcm9ncmFtbWVyIGZvcnZlbnRlciBhdCBDIGZpbm5lcywgb2cgbGFnZXIgYnLlayBodmlzIGRlbiBpa2tlIGVyIGRlci4gSHVzayDlIGxhZ2UgZGVuIHDlIG55dHQgaHZpcyBkdSBmb3J0c2V0dGVyLiIKICAgIElEU19DT0xfRFJJVkVMRVRURVIgICAgICAgICAiQm9rc3RhdiIKICAgIElEU19DT0xfRFJJVkVNQVBQSU5HICAgICAgICAiUGVrZXIgdGlsIgogICAgSURTX05PX0RSSVZFX0MgICAgICAgICAgICAgICJEdSBoYXIgaWtrZSBlbiBDLXN0YXNqb24uIERldCBlciBpa2tlIHPlIGJyYS4uXG5cbkh1c2sg5SB0cnlra2Ugq0xlZ2cgdGlsuyBpIHN0YXNqb25zZmFuZW4gZm9yIOUgbGFnZSBlbi5cbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FDQ0VMX0ZVTEwgICAgICAgICAgICAgICJGdWxsIgogICAgSURTX0FDQ0VMX1NUQU5EQVJEICAgICAgICAgICJTdGFuZGFyZCIKICAgIElEU19BQ0NFTF9CQVNJQyAgICAgICAgICAgICAiR3J1bm5sZWdnZW5kZSIKICAgIElEU19BQ0NFTF9FTVVMQVRJT04gICAgICAgICAiRW11bGVyaW5nIgogICAgSURTX0RSSVZFUl9BTFNBICAgICAgICAgICAgICJBTFNBLWRyaXZlciIKICAgIElEU19EUklWRVJfRVNPVU5EICAgICAgICAgICAiRXNvdW5ELWRyaXZlciIKICAgIElEU19EUklWRVJfT1NTICAgICAgICAgICAgICAiT1NTLWRyaXZlciIKICAgIElEU19EUklWRVJfSkFDSyAgICAgICAgICAgICAiSkFDSy1kcml2ZXIiCiAgICBJRFNfRFJJVkVSX05BUyAgICAgICAgICAgICAgIk5BUy1kcml2ZXIiCiAgICBJRFNfRFJJVkVSX0FVRElPSU8gICAgICAgICAgIkF1ZGlvIElPIChTb2xhcmlzKS1kcml2ZXIiCiAgICBJRFNfRFJJVkVSX0NPUkVBVURJTyAgICAgICAgIkNvcmVBdWRpby1kcml2ZXIiCiAgICBJRFNfT1BFTl9EUklWRVJfRVJST1IgICAgICAgIktsYXJ0ZSBpa2tlIOVwbmUgJXMuIgogICAgSURTX1NPVU5ERFJJVkVSUyAgICAgICAgICAgICJMeWRkcml2ZXJlIgogICAgSURTX0RFVklDRVNfV0FWRU9VVCAgICAgICAgICJMeWQgdXQtZW5oZXRlciIKICAgIElEU19ERVZJQ0VTX1dBVkVJTiAgICAgICAgICAiTHlkIGlubi1lbmhldGVyIgogICAgSURTX0RFVklDRVNfTUlESU9VVCAgICAgICAgICJNSURJIHV0LWVuaGV0ZXIiCiAgICBJRFNfREVWSUNFU19NSURJSU4gICAgICAgICAgIk1JREkgaW5uLWVuaGV0ZXIiCiAgICBJRFNfREVWSUNFU19BVVggICAgICAgICAgICAgIkF1eC1lbmhldGVyIgogICAgSURTX0RFVklDRVNfTUlYRVIgICAgICAgICAgICJNaWtzZXJlbmhldGVyIgogICAgSURTX1VOQVZBSUxBQkxFX0RSSVZFUiAgICAgICJGYW50IGRyaXZlciBpIHJlZ2lzdGVyZXQgc29tIGlra2UgZXIgdGlsZ2plbmdlbGlnLlxuXG5GamVybmUgqyVzuyBmcmEgcmVnaXN0ZXJldD8iCiAgICBJRFNfV0FSTklORyAgICAgICAgICAgICAgICAgIkFkdmFyc2VsIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRENfU1lTUEFSQU1TX0JVVFRPTiAgICAgICAgICAgICJTdHlyZXIgYmFrZ3J1bm5lbiIKICAgIElEQ19TWVNQQVJBTVNfQlVUVE9OX1RFWFQgICAgICAgIlN0eXJlciB0ZWtzdCIKICAgIElEQ19TWVNQQVJBTVNfREVTS1RPUCAgICAgICAgICAgIlNrcml2ZWJvcmQiCiAgICBJRENfU1lTUEFSQU1TX01FTlUgICAgICAgICAgICAgICJNZW55YmFrZ3J1bm4iCiAgICBJRENfU1lTUEFSQU1TX01FTlVfVEVYVCAgICAgICAgICJNZW55dGVrc3QiCiAgICBJRENfU1lTUEFSQU1TX1NDUk9MTEJBUiAgICAgICAgICJSdWxsZWZlbHQiCiAgICBJRENfU1lTUEFSQU1TX1NFTEVDVElPTiAgICAgICAgICJCYWtncnVubiBmb3IgbWVya2luZyIKICAgIElEQ19TWVNQQVJBTVNfU0VMRUNUSU9OX1RFWFQgICAgIk1lcmtldCB0ZWtzdCIKICAgIElEQ19TWVNQQVJBTVNfVE9PTFRJUCAgICAgICAgICAgIkJha2dydW5uIGZvciB2ZXJrdPh5dGlwcyIKICAgIElEQ19TWVNQQVJBTVNfVE9PTFRJUF9URVhUICAgICAgIlRla3N0IGkgdmVya3T4eXRpcHMiCiAgICBJRENfU1lTUEFSQU1TX1dJTkRPVyAgICAgICAgICAgICJWaW5kdWJha2dydW5uIgogICAgSURDX1NZU1BBUkFNU19XSU5ET1dfVEVYVCAgICAgICAiVmluZHV0ZWtzdHMiCiAgICBJRENfU1lTUEFSQU1TX0FDVElWRV9USVRMRSAgICAgICJBa3RpdiB0aXR0ZWxsaW5qZSIKICAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFX1RFWFQgIkFrdGl2IHRpdHRlbHRla3N0IgogICAgSURDX1NZU1BBUkFNU19JTkFDVElWRV9USVRMRSAgICAiSW5ha3RpdiB0aXR0ZWxsaW5qZSIKICAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEVfVEVYVCAiSW5ha3RpdiB0aXR0ZWx0ZWtzdCIKRU5ECg==