LyoKICogV2luZUZpbGUKICogTm9yd2VnaWFuIEJva23lbCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA1LTIwMDYgQWxleGFuZGVyIE4uIFP4cm5lcyA8YWxleEB0aGVoYW5kb2ZhZ29ueS5jb20+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfTk9SV0VHSUFOLCBTVUJMQU5HX05PUldFR0lBTl9CT0tNQUwKCi8qIE1lbnUgKi8KCklETV9XSU5FRklMRSBNRU5VIEZJWEVEIElNUFVSRQp7CiAgICBQT1BVUCAiJkZpbCIgIHsKICAgICAgICBNRU5VSVRFTSAiJsVwbmVcdEVudGVyIiwgICAgICAgICAgICAgICAgSURfQUNUSVZBVEUKICAgICAgICBNRU5VSVRFTSAiJkZseXR0IC4gLiAuXHRGNyIsICAgICAgICAgICAgICAgIElEX0ZJTEVfTU9WRQogICAgICAgIE1FTlVJVEVNICImS29waWVyIC4gLiAuXHRGOCIsICAgICAgICAgICAgICAgIElEX0ZJTEVfQ09QWQogICAgICAgIE1FTlVJVEVNICImSSB1dGtsaXBwc3RhdmxlbiAuIC4gLlx0RjkiLCAgICAgICAgMTE4CiAgICAgICAgTUVOVUlURU0gIiZTbGV0dFx0RGVsIiwgICAgICAgICAgICAgICAgSURfRklMRV9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiR2kgJm55dHQgbmF2biAuIC4gLiIsICAgICAgICAgICAgICAgICAgMTA5CiAgICAgICAgTUVOVUlURU0gIiZFZ2Vuc2thcGVyIC4gLiAuXHRBbHQrRW50ZXIiLCAgIElEX0VESVRfUFJPUEVSVElFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJLJm9tcHJpbWVyIC4gLiAuIiwgICAgICAgICAgICAgICAgMTE5CiAgICAgICAgTUVOVUlURU0gIkRlJmtvbXByaW1lciAuIC4gLiIsICAgICAgICAgICAgICAxMjAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiS2r4JnIgLiAuIC4iLCAgICAgICAgICAgICAgICAgICAgIElEX0VYRUNVVEUKICAgICAgICBNRU5VSVRFTSAiU2tyaXYgJnV0IC4gLiAuIiwgICAgICAgICAgICAgICAgICAgMTAyCiAgICAgICAgTUVOVUlURU0gIlRpbGtueXR0IC4gLiAuIiwgICAgICAgICAgICAgICAgMTAzCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIk9wcHImZXQga2F0YWxvZyAuIC4gLiIsICAgICAgICAxMTEKICAgICAgICBNRU5VSVRFTSAiUyb4ayAuIC4gLiIsICAgICAgICAgICAgICAgICAgMTA0CiAgICAgICAgTUVOVUlURU0gIiZWZWxnIGZpbGVyIC4gLiAuIiwgICAgICAgICAgICAxMTYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICImQXZzbHV0dFx0QWx0K1giLCAgICAgICAgICAgICAgICBJRF9GSUxFX0VYSVQKI2Vsc2UKICAgICAgICBNRU5VSVRFTSAiJkF2c2x1dHQiLCAgICAgICAgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiNlbmRpZgogICAgfQoKICAgIFBPUFVQICImU3Rhc2pvbiIgIHsKICAgICAgICBNRU5VSVRFTSAiJktvcGllciBzdGFzam9uIC4gLiAuIiwgICAgICAgICAgICAgICAyMDEKICAgICAgICBNRU5VSVRFTSAiR2kgdm9sJnVtbmF2biAuIC4gLiIsICAgICAgICAgICAgICAyMDIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkZvcm1hdGVyIHN0YXNqb24gLiAuIC4iLCAgICAgICAgICAgICBJRF9GT1JNQVRfRElTSwojaWZkZWYgX1dJTjk1CiAgICAgICAgTUVOVUlURU0gIk9wcHJldHQgc3lzdGUmbWRpc2sgLiAuIC4iLCAtMSAvKlRPRE8qLwojZW5kaWYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiS29ibGUgdGlsICZuZXR0dmVya3NzdGFzam9uIiwgICAgICBJRF9DT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSAiS29ibGUgJmZyYSBuZXR0dmVya3NzdGFzam9uIiwgICBJRF9ESVNDT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRGVsIHNvbSAuIC4gLiIsICAgICAgICAgICAgICAgICAyNTQKICAgICAgICBNRU5VSVRFTSAiRmplJnJuIGRlbHQgcmVzc3VycyAuIC4gLiIsICAgICAgICAgICAgMjU1CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlZlbGcgJnN0YXNqb24gLiAuIC4iLCAgICAgICAgICAgIDI1MQogICAgfQoKICAgIFBPUFVQICJLYXRhbG9nZSZyIiAgewogICAgICAgIE1FTlVJVEVNICImTmVzdGUgbml25Vx0KyIsICAgICAgICAgICAgICAzMDEKICAgICAgICBNRU5VSVRFTSAiVXR2aWQgdCZyZVx0KiIsICAgICAgICAgICAgIDMwMgogICAgICAgIE1FTlVJVEVNICJVdHZpZCAmYWxsZVx0U3RyZysqIiwgICAgICAgICAzMDMKICAgICAgICBNRU5VSVRFTSAiU2zlIHNhbW1lbiAmdHJlXHQtIiwgICAgICAgICAgIDMwNAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTWFya2VyIHVuZGVyZWxlbWVudGVyIiwgICAgICAgICAgICAgIDUwNQogICAgfQoKICAgIFBPUFVQICImVmlzIiAgewogICAgICAgIE1FTlVJVEVNICJUJnJlIG9nIGthdGFsb2ciLCAgICAgICAgIDQxMwogICAgICAgIE1FTlVJVEVNICJLdW4gdHImZSIsICAgICAgICAgICAgICAgICAgNDExCiAgICAgICAgTUVOVUlURU0gIkt1biBrYXRhbCZvZyIsICAgICAgICAgICAgIDQxMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJEZSZsIG9wcCB2aXNuaW5nIiwgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19TUExJVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTmF2biIsICAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX05BTUUKICAgICAgICBNRU5VSVRFTSAiJkFsbGUgZmlsZGV0YWxqZXIiLCAgICAgICAgICAgSURfVklFV19BTExfQVRUUklCVVRFUywgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICJEZWwmdmlzZSBkZXRhbGplciAuIC4gLiIsICAgICAgICAgSURfVklFV19TRUxFQ1RFRF9BVFRSSUJVVEVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTb3J0ZXIgZXR0ZXIgbmF2biIsICAgICAgICAgICAgICAgSURfVklFV19TT1JUX05BTUUKICAgICAgICBNRU5VSVRFTSAiU29ydGVyIGV0dGVyICZ0eXBlIiwgICAgICAgICAgICAgICBJRF9WSUVXX1NPUlRfVFlQRQogICAgICAgIE1FTlVJVEVNICJTb3J0ZXIgZXR0ZXIgc3Qm+HJyZWxzZSIsICAgICAgICAgICAgICAgSURfVklFV19TT1JUX1NJWkUKICAgICAgICBNRU5VSVRFTSAiU29ydGVyIGV0dGVyICZkYXRvIiwgICAgICAgICAgICAgICBJRF9WSUVXX1NPUlRfREFURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJGaWx0cmVyIG1lZCAnJicgLiAuIC4iLCAgICAgICAgICAgICAgSURfVklFV19GSUxURVIKICAgIH0KCiAgICBQT1BVUCAiJklubnN0aWxsaW5nZXIiICB7CiAgICAgICAgTUVOVUlURU0gIiZCZWtyZWZ0ZWxzZSAuIC4gLiIsICAgICAgICAgICAgNTAxCiAgICAgICAgTUVOVUlURU0gIlNrcmkmZnQgLiAuIC4iLCAgICAgICAgICAgICAgICAgICAgSURfU0VMRUNUX0ZPTlQKICAgICAgICBNRU5VSVRFTSAiVGlscGFzcyAmdmVya3T4eWxpbmplbiAuIC4gLiIsICAgICAgIDUxMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJWZXJrJnT4eWxpbmplIiwgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVE9PTF9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiU3RhcyZqb25zbGluamUiLCAgICAgICAgICAgICAgICAgICBJRF9WSUVXX0RSSVZFX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImU3RhdHVzbGluamUiLCAgICAgICAgICAgICAgICAgSURfVklFV19TVEFUVVNCQVIsIENIRUNLRUQKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICJGJnVsbHNramVybVx0Q3RybCtTaGlmdCtTIiwgIElEX1ZJRVdfRlVMTFNDUkVFTgojZW5kaWYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk1pbmltZXIgdmVkIG9wcHN0YXJ0IiwgICAgICAgICAgICA1MDQKICAgICAgICBNRU5VSVRFTSAiTGFncmUgaW5uJnN0aWxsaW5nZXIgdmVkIGF2c2x1dHRpbmciLCAgICAgIDUxMQogICAgfQoKCiAgICBQT1BVUCAiJlNpa2tlcmhldCIgIHsKICAgICAgICBNRU5VSVRFTSAiVGlsZyZhbmcgLiAuIC4iLCAgICAgICAgICAgICAgICAgIDYwNQogICAgICAgIE1FTlVJVEVNICImTG9nZ2b4cmluZyAuIC4gLiIsICAgICAgICAgICAgICAgICA2MDYKICAgICAgICBNRU5VSVRFTSAiJkVpZXIgLiAuIC4iLCAgICAgICAgICAgICAgICAgICA2MDcKICAgIH0KCiAgICBQT1BVUCAiVmluZCZ1IiAgewogICAgICAgIE1FTlVJVEVNICJOeXR0ICZ2aW5kdSIsICAgICAgICAgICAgICAgICBJRF9XSU5ET1dfTkVXCiAgICAgICAgTUVOVUlURU0gIktvcnRzdG9ra1x0Q3RybCtGNSIsICAgICAgICAgIElEX1dJTkRPV19DQVNDQURFCiAgICAgICAgTUVOVUlURU0gIlN0aWxsICZ2YW5ucmV0dCIsICAgICAgICAgIElEX1dJTkRPV19USUxFX0hPUloKICAgICAgICBNRU5VSVRFTSAiU3RpbGwgJmxvZGRyZXR0XHRDdHJsK0Y0IiwgICBJRF9XSU5ET1dfVElMRV9WRVJUCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiT3JkbmUgYXV0b21hdGlzayIsICAgICAgIElEX1dJTkRPV19BVVRPU09SVAojZW5kaWYKICAgICAgICBNRU5VSVRFTSAiT3JkbmUgJnN5bWJvbGVyIiwgICAgICAgICAgICBJRF9XSU5ET1dfQVJSQU5HRQogICAgICAgIE1FTlVJVEVNICJPcHBkYXRlJnJcdEY1IiwgICAgICAgICAgICAgICAgSURfUkVGUkVTSAogICAgfQoKICAgIFBPUFVQICImSGplbHAiICB7CiAgICAgICAgTUVOVUlURU0gIkVtbmVyIGkgJmhqZWxwXHRGMSIsICAgICAgICAgICAgSURfSEVMUAogICAgICAgIE1FTlVJVEVNICImU/hrIGkgaGplbHAgLiAuIC5cdEYxIiwgICAgICAgICBJRF9IRUxQCiAgICAgICAgTUVOVUlURU0gIkJyJnVrIGF2IGhqZWxwXHRGMSIsICAgICAgICAgICAgIElEX0hFTFBfVVNJTkcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkluZm9ybWFzam9uIG9tIEZpbGJlaGFuZGxpbmcgLiAuIC4iLCAgICAgSURfQUJPVVQKI2lmZGVmIF9fV0lORV9fCiAgICAgICAgTUVOVUlURU0gIkluZm9ybWFzam9uIG9tICZXaW5lIC4gLiAuIiwgICAgICAgICBJRF9BQk9VVF9XSU5FCiNlbmRpZgogICAgfQp9CgoKSUREX0VYRUNVVEUgRElBTE9HIEZJWEVEIElNUFVSRSAxNSwgMTMsIDIxMCwgNjMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiS2r4ciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBDT05UUk9MICAgICAgICAgIiIsIDEwMSwgIlN0YXRpYyIsIFNTX1NJTVBMRXxTU19OT1BSRUZJWCwgMywgNiwgMTYyLCAxMAogICAgQ09OVFJPTCAgICAgICAgICImS29tbWFuZG86IiwgLTEsICJTdGF0aWMiLCBTU19MRUZUTk9XT1JEV1JBUHxXU19HUk9VUCwgMywgMTgsIDYwLCAxMAogICAgRURJVFRFWFQgICAgICAgIDIwMSwgMywgMjksIDEzNCwgMTIsIEVTX0FVVE9IU0NST0xMCiAgICBDT05UUk9MICAgICAgICAgIiZTb20gc3ltYm9sIiwgMjE0LCAiQnV0dG9uIiwgQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1AsMywgNDUsIDcxLCAxMgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsIDEsIDE1OCwgNiwgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkF2YnJ5dCIsIDIsIDE1OCwgMjMsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICImSGplbHAiLCAyNTQsIDE1OCwgNDMsIDQ3LCAxNAp9CgpJRERfU0VMRUNUX0RFU1RJTkFUSU9OIERJQUxPRyBGSVhFRCBJTVBVUkUgMTUsIDEzLCAyMTAsIDYzClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlZlbGcgcGxhc3NlcmluZ3MiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgQ09OVFJPTCAgICAgICAgICIiLCAxMDEsICJTdGF0aWMiLCBTU19TSU1QTEV8U1NfTk9QUkVGSVgsIDMsIDYsIDE2MiwgMTAKICAgIENPTlRST0wgICAgICAgICAiJlN0aToiLCAtMSwgIlN0YXRpYyIsIFNTX0xFRlROT1dPUkRXUkFQfFdTX0dST1VQLCAzLCAxOCwgNjAsIDEwCiAgICBFRElUVEVYVCAgICAgICAgMjAxLCAzLCAyOSwgMTM0LCAxMiwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiT0siLCAxLCAxNTgsIDYsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICJBdmJyeXQiLCAyLCAxNTgsIDIzLCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiJkJsYSIsIDI1NCwgMTU4LCA0MywgNDcsIDE0Cn0KCklERF9ESUFMT0dfVklFV19UWVBFIERJQUxPRyBESVNDQVJEQUJMRSAxNSwgMTMsIDE2MSwgOTcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRXR0ZXIgZmlsdHlwZSIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiJk5hdm46IiwtMSw3LDgsMjIsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfVklFV19QQVRURVJOLDMxLDcsNjMsMTIsRVNfQVVUT0hTQ1JPTEwKICAgIEdST1VQQk9YICAgICAgICAiRmlsdHlwZSIsLTEsNywyMyw4Nyw1NgogICAgQ09OVFJPTCAgICAgICAgICImS2F0YWxvZ2VyIixJRENfVklFV19UWVBFX0RJUkVDVE9SSUVTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsMzIsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiJlByb2dyYW1tZXIiLElEQ19WSUVXX1RZUEVfUFJPR1JBTVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMyw0Myw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICJEb2t1Jm1lbnRlciIsSURDX1ZJRVdfVFlQRV9ET0NVTUVOVFMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMyw1NCw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICImQW5kcmUgZmlsZXIiLElEQ19WSUVXX1RZUEVfT1RIRVJTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNjUsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiVmkmcyBza2p1bHRlL3N5c3RlbWZpbGVyIixJRENfVklFV19UWVBFX0hJRERFTiwKICAgICAgICAgICAgICAgICAgICAiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsODEsMTA2LDkKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTA0LDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXZicnl0IixJRENBTkNFTCwxMDQsMjQsNTAsMTQKRU5ECgpJRERfRElBTE9HX1BST1BFUlRJRVMgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDgsIDIxNQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJFZ2Vuc2thcGVyIGZvciAlcyIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTkxLDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXZicnl0IixJRENBTkNFTCwxOTEsMjksNTAsMTQKICAgIExURVhUICAgICAgICAgICAiJkZpbG5hdm46IiwtMSw3LDcsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9GSUxFTkFNRSw3MSw3LDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJkZ1bGwgc3RpOiIsLTEsNywxOCw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1BBVEgsNzEsMTgsMTIwLDksIEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiU2lzdCBlbmRyZXQ6IiwtMSw3LDI5LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfTEFTVENIQU5HRSw3MSwyOSwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlZlcnNqb246IiwtMSw3LDQwLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfVkVSU0lPTiw3MSw0MCwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZLb3BpcmV0dDoiLC0xLDcsNTEsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9DT1BZUklHSFQsNzEsNTEsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTdPhycmVsc2U6IiwtMSw3LDYyLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfU0laRSw3MSw2MiwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIkF0dHJpYnV0dGVyIiwtMSw3LDc5LDE1OCw0NgogICAgQ09OVFJPTCAgICAgICAgICJTayZyaXZlYmVza3l0dGV0IixJRENfQ0hFQ0tfUkVBRE9OTFksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNyw5MSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIlNrJmp1bHQiLElEQ19DSEVDS19ISURERU4sIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw5Miw5MSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIiZBcmtpdiIsSURDX0NIRUNLX0FSQ0hJVkUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNywxMDEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICImU3lzdGVtIixJRENfQ0hFQ0tfU1lTVEVNLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOTIsMTAxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiS29tcHImaW1lcnQiLElEQ19DSEVDS19DT01QUkVTU0VELCJCdXR0b24iLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDExMSw2OCw5CiAgICBHUk9VUEJPWCAgICAgICAgIiZWZXJzam9uaW5mb3JtYXNqb24iLC0xLDcsMTI5LDIzNCw3OQogICAgTElTVEJPWCAgICAgICAgIElEQ19MSVNUX1BST1BfVkVSU0lPTl9UWVBFUywxMywxMzksMTA3LDYzLExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgRURJVFRFWFQgICAgICAgIElEQ19MSVNUX1BST1BfVkVSU0lPTl9WQUxVRVMsMTIzLDEzOSwxMTEsNjMsRVNfTVVMVElMSU5FIHwgRVNfUkVBRE9OTFkgfCBXU19WU0NST0xMCkVORAoKClNUUklOR1RBQkxFCnsKICAgIElEU19GT05UX1NFTF9ETEdfTkFNRSAgICJBa3RpdmVyZXIgc2tyaWZ0aW5uc3RpbGxpbmdlciIKICAgIElEU19GT05UX1NFTF9FUlJPUiAgICAgICJGZWlsIHZlZCB2YWxnIGF2IG55IHNrcmlmdC4iCn0KClNUUklOR1RBQkxFCnsKICAgIElEU19XSU5FRklMRSAgICAgICAgICAgICJGaWxiZWhhbmRsaW5nIgogICAgSURTX0VSUk9SICAgICAgICAgICAgICAgIkZlaWwiCiAgICBJRFNfUk9PVF9GUyAgICAgICAgICAgICAiUm90Zmlsc3lzdGVtIgogICAgSURTX1VOSVhGUyAgICAgICAgICAgICAgIlVuaXgtZmlsc3lzdGVtIgogICAgSURTX0RFU0tUT1AgICAgICAgICAgICAgIlNrcml2ZWJvcmQiCiAgICBJRFNfU0hFTEwgICAgICAgICAgICAgICAiU2thbGwiCiAgICBJRFNfVElUTEVGTVQgICAgICAgICAgICAiJXMgLSAlcyIKICAgIElEU19OT19JTVBMICAgICAgICAgICAgICJJa2tlIGltcGxlbWVudGVydCBlbm7lIgogICAgSURTX1dJTkUgICAgICAgICAgICAgICAgIldJTkUiCiAgICBJRFNfV0lORV9GSUxFICAgICAgICAgICAiRmlsYmVoYW5kbGluZyIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX0NPTF9OQU1FICAgICAgICAgICAgIk5hdm4iCiAgICBJRFNfQ09MX1NJWkUgICAgICAgICAgICAiU3T4cnJlbHNlIgogICAgSURTX0NPTF9DREFURSAgICAgICAgICAgIkMtZGF0byIKICAgIElEU19DT0xfQURBVEUgICAgICAgICAgICJBLWRhdG8iCiAgICBJRFNfQ09MX01EQVRFICAgICAgICAgICAiTS1kYXRvIgogICAgSURTX0NPTF9JRFggICAgICAgICAgICAgIkluZGVrcy9Jbm9kZSIKICAgIElEU19DT0xfTElOS1MgICAgICAgICAgICJLb2JsaW5nZXIiCiAgICBJRFNfQ09MX0FUVFIgICAgICAgICAgICAiQXR0cmlidXR0ZXIiCiAgICBJRFNfQ09MX1NFQyAgICAgICAgICAgICAiU2lra2VyaGV0IgoKICAgIElEU19GUkVFX1NQQUNFX0ZNVCAgICAgICIlcyBhdiAlcyBsZWRpZyIKfQoKU1RSSU5HVEFCTEUKewpJRFNfTElDRU5TRV9DQVBUSU9OLCAgICAgICAgICAgICJMSVNFTlMiCklEU19MSUNFTlNFLAoiRGV0dGUgYmlibGlvdGVrZXQgZXIgZnJpIHByb2dyYW12YXJlOyBkdSBrYW4gcmVkaXN0cmlidWVyZSBkZXQgXApvZy9lbGxlciBlbmRyZSBkZXQgdW5kZXIgdmlsa+VyZW5lIGkgq0dOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgXApMaWNlbnNluywgdXRnaXR0IGF2IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVudGVuIFwKdmVyc2pvbiAyLjEgYXYgTGlzZW5zZW4sIGVsbGVyIChodmlzIGR1IPhuc2tlciBkZXQpIGVuIG55ZXJlIHZlcnNqb24uXG5cCkRldHRlIGJpYmxpb3Rla2V0IGRpc3RyaWJ1ZXJlcyBpIGjlcCBvbSBhdCBkZXQgZXIgbnl0dGlnLCBcCm1lbiBVVEVOIEVOSFZFUiBHQVJBTlRJOyBpa2tlIGVuZ2FuZyBkZW4gdXR0cnlrdGUgZ2FyYW50aWVuIGZvciBcCkhBTkRFTFNEWUtUSUdIRVQgZWxsZXIgRUdORVRIRVQgRk9SIEVUIFNQRVNJRUxUIEZPUk3FTC4gU2Ugq0dOVSBcCkxlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNluyBmb3IgZmxlcmUgZGV0YWxqZXIuXG5cCkR1IHNrYWwgaGEgbW90dGF0dCBldCBla3NlbXBsYXIgYXYgq0dOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgXApMaWNlbnNluyBzYW1tZW4gbWVkIGRldHRlIGJpYmxpb3Rla2V0OyBodmlzIGlra2UsIHNrcml2IHRpbDogdGhlIEZyZWUgU29mdHdhcmUgXApGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBIgoKSURTX1dBUlJBTlRZX0NBUFRJT04sICJJTkdFTiBHQVJBTlRJIgpJRFNfV0FSUkFOVFksCiJEZXR0ZSBiaWJsaW90ZWtldCBkaXN0cmlidWVyZXMgaSBo5XAgb20gYXQgZGV0IGVyIG55dHRpZywgXAptZW4gVVRFTiBFTkhWRVIgR0FSQU5USTsgaWtrZSBlbmdhbmcgZW4gdXR0cnlrdGUgZ2FyYW50aWVuIGZvciBcCkhBTkRFTFNEWUtUSUdIRVQgZWxsZXIgRUdORVRIRVQgRk9SIEVUIFNQRVNJRUxUIEZPUk3FTC4gU2Ugq0dOVSBcCkxlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNluyBmb3IgZmxlcmUgZGV0YWxqZXIuIgp9Cg==