LyoKICogV2luZUZpbGUKICogTm9yd2VnaWFuIEJva23lbCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA1LTIwMDYgQWxleGFuZGVyIE4uIFP4cm5lcyA8YWxleEB0aGVoYW5kb2ZhZ29ueS5jb20+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfTk9SV0VHSUFOLCBTVUJMQU5HX05PUldFR0lBTl9CT0tNQUwKCi8qIE1lbnUgKi8KCklETV9XSU5FRklMRSBNRU5VIEZJWEVEIElNUFVSRQp7CiAgICBQT1BVUCAiJkZpbCIgIHsKICAgICAgICBNRU5VSVRFTSAiJsVwbmVcdEVudGVyIiwgICAgICAgICAgICAgICAgSURfQUNUSVZBVEUKICAgICAgICBNRU5VSVRFTSAiJkZseXR0Li4uXHRGNyIsICAgICAgICAgICAgICAgIElEX0ZJTEVfTU9WRQogICAgICAgIE1FTlVJVEVNICImS29waWVyLi4uXHRGOCIsICAgICAgICAgICAgICAgIElEX0ZJTEVfQ09QWQogICAgICAgIE1FTlVJVEVNICImSSB1dGtsaXBwc3Rhdmxlbi4uLlx0RjkiLCAgICAgICAgMTE4CiAgICAgICAgTUVOVUlURU0gIiZTbGV0dFx0RGVsIiwgICAgICAgICAgICAgICAgSURfRklMRV9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiR2kgJm55dHQgbmF2bi4uLiIsICAgICAgICAgICAgICAgICAgMTA5CiAgICAgICAgTUVOVUlURU0gIiZFZ2Vuc2thcGVyLi4uXHRBbHQrRW50ZXIiLCAgIElEX0VESVRfUFJPUEVSVElFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJLJm9tcHJpbWVyLi4uIiwgICAgICAgICAgICAgICAgMTE5CiAgICAgICAgTUVOVUlURU0gIkRlJmtvbXByaW1lci4uLiIsICAgICAgICAgICAgICAxMjAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiS2r4JnIuLi4iLCAgICAgICAgICAgICAgICAgICAgIElEX0VYRUNVVEUKICAgICAgICBNRU5VSVRFTSAiU2tyaXYgJnV0Li4uIiwgICAgICAgICAgICAgICAgICAgMTAyCiAgICAgICAgTUVOVUlURU0gIlRpbGtueXR0Li4uIiwgICAgICAgICAgICAgICAgMTAzCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIk9wcHImZXQga2F0YWxvZy4uLiIsICAgICAgICAxMTEKICAgICAgICBNRU5VSVRFTSAiUyb4ay4uLiIsICAgICAgICAgICAgICAgICAgMTA0CiAgICAgICAgTUVOVUlURU0gIiZWZWxnIGZpbGVyLi4uIiwgICAgICAgICAgICAxMTYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICImQXZzbHV0dFx0QWx0K1giLCAgICAgICAgICAgICAgICBJRF9GSUxFX0VYSVQKI2Vsc2UKICAgICAgICBNRU5VSVRFTSAiJkF2c2x1dHQiLCAgICAgICAgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiNlbmRpZgogICAgfQoKICAgIFBPUFVQICImU3Rhc2pvbiIgIHsKICAgICAgICBNRU5VSVRFTSAiJktvcGllciBzdGFzam9uLi4uIiwgICAgICAgICAgICAgICAyMDEKICAgICAgICBNRU5VSVRFTSAiR2kgdm9sJnVtbmF2bi4uLiIsICAgICAgICAgICAgICAyMDIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkZvcm1hdGVyIHN0YXNqb24uLi4iLCAgICAgICAgICAgICBJRF9GT1JNQVRfRElTSwojaWZkZWYgX1dJTjk1CiAgICAgICAgTUVOVUlURU0gIk9wcHJldHQgc3lzdGUmbWRpc2suLi4iLCAtMSAvKlRPRE8qLwojZW5kaWYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiS29ibGUgdGlsICZuZXR0dmVya3NzdGFzam9uIiwgICAgICBJRF9DT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSAiS29ibGUgJmZyYSBuZXR0dmVya3NzdGFzam9uIiwgICBJRF9ESVNDT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRGVsIHNvbS4uLiIsICAgICAgICAgICAgICAgICAyNTQKICAgICAgICBNRU5VSVRFTSAiRmplJnJuIGRlbHQgcmVzc3Vycy4uLiIsICAgICAgICAgICAgMjU1CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlZlbGcgJnN0YXNqb24uLi4iLCAgICAgICAgICAgIDI1MQogICAgfQoKICAgIFBPUFVQICJLYXRhbG9nZSZyIiAgewogICAgICAgIE1FTlVJVEVNICImTmVzdGUgbml25Vx0KyIsICAgICAgICAgICAgICAzMDEKICAgICAgICBNRU5VSVRFTSAiVXR2aWQgdCZyZVx0KiIsICAgICAgICAgICAgIDMwMgogICAgICAgIE1FTlVJVEVNICJVdHZpZCAmYWxsZVx0U3RyZysqIiwgICAgICAgICAzMDMKICAgICAgICBNRU5VSVRFTSAiU2zlIHNhbW1lbiAmdHJlXHQtIiwgICAgICAgICAgIDMwNAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTWFya2VyIHVuZGVyZWxlbWVudGVyIiwgICAgICAgICAgICAgIDUwNQogICAgfQoKICAgIFBPUFVQICImVmlzIiAgewogICAgICAgIE1FTlVJVEVNICJUJnJlIG9nIGthdGFsb2ciLCAgICAgICAgIDQxMwogICAgICAgIE1FTlVJVEVNICJLdW4gdHImZSIsICAgICAgICAgICAgICAgICAgNDExCiAgICAgICAgTUVOVUlURU0gIkt1biBrYXRhbCZvZyIsICAgICAgICAgICAgIDQxMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJEZSZsIG9wcCB2aXNuaW5nIiwgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19TUExJVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTmF2biIsICAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX05BTUUKICAgICAgICBNRU5VSVRFTSAiJkFsbGUgZmlsZGV0YWxqZXIiLCAgICAgICAgICAgSURfVklFV19BTExfQVRUUklCVVRFUywgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICJEZWwmdmlzZSBkZXRhbGplci4uLiIsICAgICAgICAgSURfVklFV19TRUxFQ1RFRF9BVFRSSUJVVEVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTb3J0ZXIgZXR0ZXIgbmF2biIsICAgICAgICAgICAgICAgSURfVklFV19TT1JUX05BTUUKICAgICAgICBNRU5VSVRFTSAiU29ydGVyIGV0dGVyICZ0eXBlIiwgICAgICAgICAgICAgICBJRF9WSUVXX1NPUlRfVFlQRQogICAgICAgIE1FTlVJVEVNICJTb3J0ZXIgZXR0ZXIgc3Qm+HJyZWxzZSIsICAgICAgICAgICAgICAgSURfVklFV19TT1JUX1NJWkUKICAgICAgICBNRU5VSVRFTSAiU29ydGVyIGV0dGVyICZkYXRvIiwgICAgICAgICAgICAgICBJRF9WSUVXX1NPUlRfREFURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJGaWx0cmVyIG1lZCAnJicuLi4iLCAgICAgICAgICAgICAgSURfVklFV19GSUxURVIKICAgIH0KCiAgICBQT1BVUCAiJklubnN0aWxsaW5nZXIiICB7CiAgICAgICAgTUVOVUlURU0gIiZCZWtyZWZ0ZWxzZS4uLiIsICAgICAgICAgICAgNTAxCiAgICAgICAgTUVOVUlURU0gIlNrcmkmZnQuLi4iLCAgICAgICAgICAgICAgICAgICAgSURfU0VMRUNUX0ZPTlQKICAgICAgICBNRU5VSVRFTSAiVGlscGFzcyAmdmVya3T4eWxpbmplbi4uLiIsICAgICAgIDUxMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJWZXJrJnT4eWxpbmplIiwgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVE9PTF9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiU3RhcyZqb25zbGluamUiLCAgICAgICAgICAgICAgICAgICBJRF9WSUVXX0RSSVZFX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImU3RhdHVzbGluamUiLCAgICAgICAgICAgICAgICAgSURfVklFV19TVEFUVVNCQVIsIENIRUNLRUQKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICJGJnVsbHNramVybVx0Q3RybCtTaGlmdCtTIiwgIElEX1ZJRVdfRlVMTFNDUkVFTgojZW5kaWYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk1pbmltZXIgdmVkIG9wcHN0YXJ0IiwgICAgICAgICAgICA1MDQKICAgICAgICBNRU5VSVRFTSAiTGFncmUgaW5uJnN0aWxsaW5nZXIgdmVkIGF2c2x1dHRpbmciLCAgICAgIDUxMQogICAgfQoKCiAgICBQT1BVUCAiJlNpa2tlcmhldCIgIHsKICAgICAgICBNRU5VSVRFTSAiVGlsZyZhbmcuLi4iLCAgICAgICAgICAgICAgICAgIDYwNQogICAgICAgIE1FTlVJVEVNICImTG9nZ2b4cmluZy4uLiIsICAgICAgICAgICAgICAgICA2MDYKICAgICAgICBNRU5VSVRFTSAiJkVpZXIuLi4iLCAgICAgICAgICAgICAgICAgICA2MDcKICAgIH0KCiAgICBQT1BVUCAiVmluZCZ1IiAgewogICAgICAgIE1FTlVJVEVNICJOeXR0ICZ2aW5kdSIsICAgICAgICAgICAgICAgICBJRF9XSU5ET1dfTkVXCiAgICAgICAgTUVOVUlURU0gIktvcnRzdG9ra1x0Q3RybCtGNSIsICAgICAgICAgIElEX1dJTkRPV19DQVNDQURFCiAgICAgICAgTUVOVUlURU0gIlN0aWxsICZ2YW5ucmV0dCIsICAgICAgICAgIElEX1dJTkRPV19USUxFX0hPUloKICAgICAgICBNRU5VSVRFTSAiU3RpbGwgJmxvZGRyZXR0XHRDdHJsK0Y0IiwgICBJRF9XSU5ET1dfVElMRV9WRVJUCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiT3JkbmUgYXV0b21hdGlzayIsICAgICAgIElEX1dJTkRPV19BVVRPU09SVAojZW5kaWYKICAgICAgICBNRU5VSVRFTSAiT3JkbmUgJnN5bWJvbGVyIiwgICAgICAgICAgICBJRF9XSU5ET1dfQVJSQU5HRQogICAgICAgIE1FTlVJVEVNICJPcHBkYXRlJnJcdEY1IiwgICAgICAgICAgICAgICAgSURfUkVGUkVTSAogICAgfQoKICAgIFBPUFVQICImSGplbHAiICB7CiAgICAgICAgTUVOVUlURU0gIkVtbmVyIGkgJmhqZWxwXHRGMSIsICAgICAgICAgICAgSURfSEVMUAogICAgICAgIE1FTlVJVEVNICImU/hrIGkgaGplbHAuLi5cdEYxIiwgICAgICAgICBJRF9IRUxQCiAgICAgICAgTUVOVUlURU0gIkJyJnVrIGF2IGhqZWxwXHRGMSIsICAgICAgICAgICAgIElEX0hFTFBfVVNJTkcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkluZm9ybWFzam9uIG9tIEZpbGJlaGFuZGxpbmcuLi4iLCAgICAgSURfQUJPVVQKICAgIH0KfQoKCklERF9FWEVDVVRFIERJQUxPRyBGSVhFRCBJTVBVUkUgMTUsIDEzLCAyMTAsIDYzClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIktq+HIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgQ09OVFJPTCAgICAgICAgICIiLCAxMDEsICJTdGF0aWMiLCBTU19TSU1QTEV8U1NfTk9QUkVGSVgsIDMsIDYsIDE2MiwgMTAKICAgIENPTlRST0wgICAgICAgICAiJktvbW1hbmRvOiIsIC0xLCAiU3RhdGljIiwgU1NfTEVGVE5PV09SRFdSQVB8V1NfR1JPVVAsIDMsIDE4LCA2MCwgMTAKICAgIEVESVRURVhUICAgICAgICAyMDEsIDMsIDI5LCAxMzQsIDEyLCBFU19BVVRPSFNDUk9MTAogICAgQ09OVFJPTCAgICAgICAgICImU29tIHN5bWJvbCIsIDIxNCwgIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QLDMsIDQ1LCA3MSwgMTIKICAgIERFRlBVU0hCVVRUT04gICAiT0siLCAxLCAxNTgsIDYsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICJBdmJyeXQiLCAyLCAxNTgsIDIzLCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiJkhqZWxwIiwgMjU0LCAxNTgsIDQzLCA0NywgMTQKfQoKSUREX1NFTEVDVF9ERVNUSU5BVElPTiBESUFMT0cgRklYRUQgSU1QVVJFIDE1LCAxMywgMjEwLCA2MwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJWZWxnIHBsYXNzZXJpbmdzIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIENPTlRST0wgICAgICAgICAiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCiAgICBDT05UUk9MICAgICAgICAgIiZTdGk6IiwgLTEsICJTdGF0aWMiLCBTU19MRUZUTk9XT1JEV1JBUHxXU19HUk9VUCwgMywgMTgsIDYwLCAxMAogICAgRURJVFRFWFQgICAgICAgIDIwMSwgMywgMjksIDEzNCwgMTIsIEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIiwgMSwgMTU4LCA2LCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXZicnl0IiwgMiwgMTU4LCAyMywgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZCbGEiLCAyNTQsIDE1OCwgNDMsIDQ3LCAxNAp9CgpJRERfRElBTE9HX1ZJRVdfVFlQRSBESUFMT0cgRElTQ0FSREFCTEUgMTUsIDEzLCAxNjEsIDk3ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkV0dGVyIGZpbHR5cGUiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIiZOYXZuOiIsLTEsNyw4LDIyLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZJRVdfUEFUVEVSTiwzMSw3LDYzLDEyLEVTX0FVVE9IU0NST0xMCiAgICBHUk9VUEJPWCAgICAgICAgIkZpbHR5cGUiLC0xLDcsMjMsODcsNTYKICAgIENPTlRST0wgICAgICAgICAiJkthdGFsb2dlciIsSURDX1ZJRVdfVFlQRV9ESVJFQ1RPUklFUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDMyLDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZQcm9ncmFtbWVyIixJRENfVklFV19UWVBFX1BST0dSQU1TLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNDMsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiRG9rdSZtZW50ZXIiLElEQ19WSUVXX1RZUEVfRE9DVU1FTlRTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNTQsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiJkFuZHJlIGZpbGVyIixJRENfVklFV19UWVBFX09USEVSUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDY1LDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIlZpJnMgc2tqdWx0ZS9zeXN0ZW1maWxlciIsSURDX1ZJRVdfVFlQRV9ISURERU4sCiAgICAgICAgICAgICAgICAgICAgIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDgxLDEwNiw5CiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEwNCw3LDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkF2YnJ5dCIsSURDQU5DRUwsMTA0LDI0LDUwLDE0CkVORAoKSUREX0RJQUxPR19QUk9QRVJUSUVTIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ4LCAyMTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRWdlbnNrYXBlciBmb3IgJXMiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE5MSw3LDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkF2YnJ5dCIsSURDQU5DRUwsMTkxLDI5LDUwLDE0CiAgICBMVEVYVCAgICAgICAgICAgIiZGaWxuYXZuOiIsLTEsNyw3LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfRklMRU5BTUUsNzEsNywxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZGdWxsIHN0aToiLC0xLDcsMTgsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9QQVRILDcxLDE4LDEyMCw5LCBFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlNpc3QgZW5kcmV0OiIsLTEsNywyOSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0xBU1RDSEFOR0UsNzEsMjksMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJWZXJzam9uOiIsLTEsNyw0MCw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1ZFUlNJT04sNzEsNDAsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImS29waXJldHQ6IiwtMSw3LDUxLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfQ09QWVJJR0hULDcxLDUxLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiU3T4cnJlbHNlOiIsLTEsNyw2Miw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1NJWkUsNzEsNjIsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJBdHRyaWJ1dHRlciIsLTEsNyw3OSwxNTgsNDYKICAgIENPTlRST0wgICAgICAgICAiU2smcml2ZWJlc2t5dHRldCIsSURDX0NIRUNLX1JFQURPTkxZLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsOTEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICJTayZqdWx0IixJRENfQ0hFQ0tfSElEREVOLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOTIsOTEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICImQXJraXYiLElEQ19DSEVDS19BUkNISVZFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTAxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJlN5c3RlbSIsSURDX0NIRUNLX1NZU1RFTSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDkyLDEwMSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIktvbXByJmltZXJ0IixJRENfQ0hFQ0tfQ09NUFJFU1NFRCwiQnV0dG9uIiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNywxMTEsNjgsOQogICAgR1JPVVBCT1ggICAgICAgICImVmVyc2pvbmluZm9ybWFzam9uIiwtMSw3LDEyOSwyMzQsNzkKICAgIExJU1RCT1ggICAgICAgICBJRENfTElTVF9QUk9QX1ZFUlNJT05fVFlQRVMsMTMsMTM5LDEwNyw2MyxMQlNfU09SVCB8IExCU19OT0lOVEVHUkFMSEVJR0hUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIEVESVRURVhUICAgICAgICBJRENfTElTVF9QUk9QX1ZFUlNJT05fVkFMVUVTLDEyMywxMzksMTExLDYzLEVTX01VTFRJTElORSB8IEVTX1JFQURPTkxZIHwgV1NfVlNDUk9MTApFTkQKCgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfRk9OVF9TRUxfRExHX05BTUUgICAiQWt0aXZlcmVyIHNrcmlmdGlubnN0aWxsaW5nZXIiCiAgICBJRFNfRk9OVF9TRUxfRVJST1IgICAgICAiRmVpbCB2ZWQgdmFsZyBhdiBueSBza3JpZnQuIgp9CgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfV0lORUZJTEUgICAgICAgICAgICAiRmlsYmVoYW5kbGluZyIKICAgIElEU19FUlJPUiAgICAgICAgICAgICAgICJGZWlsIgogICAgSURTX1JPT1RfRlMgICAgICAgICAgICAgIlJvdGZpbHN5c3RlbSIKICAgIElEU19VTklYRlMgICAgICAgICAgICAgICJVbml4LWZpbHN5c3RlbSIKICAgIElEU19ERVNLVE9QICAgICAgICAgICAgICJTa3JpdmVib3JkIgogICAgSURTX1NIRUxMICAgICAgICAgICAgICAgIlNrYWxsIgogICAgSURTX1RJVExFRk1UICAgICAgICAgICAgIiVzIC0gJXMiCiAgICBJRFNfTk9fSU1QTCAgICAgICAgICAgICAiSWtrZSBpbXBsZW1lbnRlcnQgZW5u5SIKICAgIElEU19XSU5FX0ZJTEUgICAgICAgICAgICJGaWxiZWhhbmRsaW5nIgp9CgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfQ09MX05BTUUgICAgICAgICAgICAiTmF2biIKICAgIElEU19DT0xfU0laRSAgICAgICAgICAgICJTdPhycmVsc2UiCiAgICBJRFNfQ09MX0NEQVRFICAgICAgICAgICAiQy1kYXRvIgogICAgSURTX0NPTF9BREFURSAgICAgICAgICAgIkEtZGF0byIKICAgIElEU19DT0xfTURBVEUgICAgICAgICAgICJNLWRhdG8iCiAgICBJRFNfQ09MX0lEWCAgICAgICAgICAgICAiSW5kZWtzL0lub2RlIgogICAgSURTX0NPTF9MSU5LUyAgICAgICAgICAgIktvYmxpbmdlciIKICAgIElEU19DT0xfQVRUUiAgICAgICAgICAgICJBdHRyaWJ1dHRlciIKICAgIElEU19DT0xfU0VDICAgICAgICAgICAgICJTaWtrZXJoZXQiCgogICAgSURTX0ZSRUVfU1BBQ0VfRk1UICAgICAgIiVzIGF2ICVzIGxlZGlnIgp9Cg==