LyoKICogV2luZUZpbGUKICogUG9saXNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDAgTWFydGluIEZ1Y2hzCiAqIENvcHlyaWdodCAyMDAyIFN0ZXZlbiBFZHdhcmRzCiAqIENvcHlyaWdodCAyMDAyIEFsZXhhbmRyZSBKdWxsaWFyZAogKiBDb3B5cmlnaHQgMjAwNCBQaW90ciBDYWJhbgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAicmVzb3VyY2UuaCIKCkxBTkdVQUdFIExBTkdfUE9MSVNILCBTVUJMQU5HX0RFRkFVTFQKCi8qIE1lbnUgKi8KCklETV9XSU5FRklMRSBNRU5VIEZJWEVEIElNUFVSRQp7CiAgICBQT1BVUCAiJlBsaWsiICB7CiAgICAgICAgTUVOVUlURU0gIiZPdHfzcnpcdEVudGVyIiwgICAgICAgICAgICAgIElEX0FDVElWQVRFCiAgICAgICAgTUVOVUlURU0gIiZQcnplbmllnC4uLlx0RjciLCAgICAgICAgICAgIElEX0ZJTEVfTU9WRQogICAgICAgIE1FTlVJVEVNICImS29waXVqLi4uXHRGOCIsICAgICAgICAgICAgICBJRF9GSUxFX0NPUFkKICAgICAgICBNRU5VSVRFTSAiVyBzJmNob3drdS4uLlx0RjkiLCAgICAgICAgICAgMTE4CiAgICAgICAgTUVOVUlURU0gIiZVc3XxXHREZWwiLCAgICAgICAgICAgICAgICAgIElEX0ZJTEVfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIiZabWll8SBuYXp36i4uLiIsICAgICAgICAgICAgIDEwOQogICAgICAgIE1FTlVJVEVNICJXs2GcYyZpd2+cY2kuLi5cdEFsdCtFbnRlciIsICAgSURfRURJVF9QUk9QRVJUSUVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIktvJm1wcmVzamEuLi4iLCAgICAgICAgICAgICAgIDExOQogICAgICAgIE1FTlVJVEVNICJEJmVrb21wcmVzamEuLi4iLCAgICAgICAgICAgICAxMjAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiVSZydWNob20uLi4iLCAgICAgICAgICAgICAgICAgSURfRVhFQ1VURQogICAgICAgIE1FTlVJVEVNICImRHJ1a3VqLi4uIiwgICAgICAgICAgICAgICAgICAxMDIKICAgICAgICBNRU5VSVRFTSAiU2tvamFyei4uLiIsICAgICAgICAgICAgICAgICAgMTAzCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlUmdHfzcnogZm9sZGVyLi4uIiwgICAgICAgICAgIDExMQogICAgICAgIE1FTlVJVEVNICImU3p1a2FqLi4uIiwgICAgICAgICAgICAgICAgICAxMDQKICAgICAgICBNRU5VSVRFTSAiWiZhem5hY3ogcGxpa2kuLi4iLCAgICAgICAgICAgMTE2CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiJld5apxjaWVcdEFsdCtYIiwgICAgICAgICAgICAgSURfRklMRV9FWElUCiNlbHNlCiAgICAgICAgTUVOVUlURU0gIiZXeWqcY2llIiwgICAgICAgICAgICAgICAgICAgIElEX0ZJTEVfRVhJVAojZW5kaWYKICAgIH0KCiAgICBQT1BVUCAiJkR5c2siICB7CiAgICAgICAgTUVOVUlURU0gIiZLb3BpdWogZHVzay4uLiIsICAgICAgICAgICAgIDIwMQogICAgICAgIE1FTlVJVEVNICImRXR5a2lldGEgZHlza3UuLi4iLCAgICAgICAgICAyMDIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkZvcm1hdHVqIGR5c2suLi4iLCAgICAgICAgICAgSURfRk9STUFUX0RJU0sKI2lmZGVmIF9XSU45NQogICAgICAgIE1FTlVJVEVNICImU3R383J6IGR5c2sgc3lzdGVtb3d5Li4uIiwgLTEgICAgLypUT0RPKi8KI2VuZGlmCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZQb2SzuWN6IER5c2sgU2llY2lvd3kiLCAgICAgIElEX0NPTk5FQ1RfTkVUV09SS19EUklWRQogICAgICAgIE1FTlVJVEVNICImT2SzuWN6IER5c2sgU2llY2lvd3kiLCAgICAgICBJRF9ESVNDT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiVWRvc3TqcG5paiBqYWtvLi4uIiwgICAgICAgICAgMjU0CiAgICAgICAgTUVOVUlURU0gIiZOaWUgdWRvc3TqcG5pYWouLi4iLCAgICAgICAgIDI1NQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJXeWLzciAmZHlza3UuLi4iLCAgICAgICAgICAgICAyNTEKICAgIH0KCiAgICBQT1BVUCAiJkthdGFsb2dpIiAgewogICAgICAgIE1FTlVJVEVNICImTmFzdOpwbnkgcG96aW9tXHQrIiwgICAgICAgICAzMDEKICAgICAgICBNRU5VSVRFTSAiJlJvendp8SBkcnpld29cdCoiLCAgICAgICAgICAgMzAyCiAgICAgICAgTUVOVUlURU0gIlJvendp8SAmd3N6eXN0a29cdFN0cmcrKiIsICAgIDMwMwogICAgICAgIE1FTlVJVEVNICImWndp8SBkcnpld29cdC0iLCAgICAgICAgICAgICAzMDQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiWmF6bmFjeiAmcG9ka2F0YWxvZ2kiLCAgICAgICAgNTA1CiAgICB9CgogICAgUE9QVVAgIiZXaWRvayIgIHsKICAgICAgICBNRU5VSVRFTSAiJkRyemV3byBpIGthdGFsb2dpIiwgICAgICAgICAgNDEzCiAgICAgICAgTUVOVUlURU0gIkQmcnpld28iLCAgICAgICAgICAgICAgICAgICAgIDQxMQogICAgICAgIE1FTlVJVEVNICImS2F0YWxvZ2kiLCAgICAgICAgICAgICAgICAgICA0MTIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlBvs7ljeiIsICAgICAgICAgICAgICAgICAgICAgSURfVklFV19TUExJVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTmF6d2EiLCAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX05BTUUKICAgICAgICBNRU5VSVRFTSAiJldzenlzdGtpZSBhdHJ5YnV0eSBwbGlrdSIsICAgSURfVklFV19BTExfQVRUUklCVVRFUywgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICJXeWJyYW5lICZhdHJ5YnV0eSBwbGlrdS4uLiIsICBJRF9WSUVXX1NFTEVDVEVEX0FUVFJJQlVURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiUCZvc29ydHVqIGFsZmFiZXR5Y3puaWUiLCAgICAgNDA0CiAgICAgICAgTUVOVUlURU0gIlBvc29ydHVqIHBvICZ0eXBpZSIsICAgICAgICAgIDQwNQogICAgICAgIE1FTlVJVEVNICJQb3NvcnR1aiBwbyB3aWUmbGtvnGNpIiwgICAgICA0MDYKICAgICAgICBNRU5VSVRFTSAiUG8mc29ydHVqIHBvIGRhY2llIiwgICAgICAgICAgICA0MDcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRmlsdHJ1aiB3aWRvayAmLi4uIiwgICAgICAgICAgICAgIElEX1ZJRVdfRklMVEVSCiAgICB9CgogICAgUE9QVVAgIiZPcGNqZSIgIHsKICAgICAgICBNRU5VSVRFTSAiJlBvdHdpZXJkemVuaWUuLi4iLCAgICAgICAgICAgNTAxCiAgICAgICAgTUVOVUlURU0gIiZDemNpb25rYS4uLiIsICAgICAgICAgICAgICAgIElEX1NFTEVDVF9GT05UCiAgICAgICAgTUVOVUlURU0gIiZVc3Rhd2llbmlhIHBhc2thIG5hcnrqZHppLi4uIiwgNTEyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlBhc2VrICZuYXJ66mR6aSIsICAgICAgICAgICAgIElEX1ZJRVdfVE9PTF9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiUGFzZWsgJmR5c2vzdyIsICAgICAgICAgICAgICAgSURfVklFV19EUklWRV9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiUGFzZWsgJnN0YXR1c3UiLCAgICAgICAgICAgICAgSURfVklFV19TVEFUVVNCQVIsIENIRUNLRUQKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICJQZbNueSAmZWtyYW5cdEN0cmwrU2hpZnQrUyIsICBJRF9WSUVXX0ZVTExTQ1JFRU4KI2VuZGlmCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZabWluaW1hbGl6dWogcHJ6eSBzdGFyY2llIiwgIDUwNAogICAgICAgIE1FTlVJVEVNICJaJmFwaXN6IHVzdGF3aWVuaWEgcHJ6ZWQgemFrb/FjemVuaWVtIiw1MTEKICAgIH0KCgogICAgUE9QVVAgIiZCZXpwaWVjemXxc3R3byIgIHsKICAgICAgICBNRU5VSVRFTSAiJkRvc3TqcC4uLiIsICAgICAgICAgICAgICAgICAgNjA1CiAgICAgICAgTUVOVUlURU0gIiZMb2dvd2FuaWUuLi4iLCAgICAgICAgICAgICAgIDYwNgogICAgICAgIE1FTlVJVEVNICImV7NhnGNpY2llbC4uLiIsICAgICAgICAgICAgICA2MDcKICAgIH0KCiAgICBQT1BVUCAiJk9rbm8iICB7CiAgICAgICAgTUVOVUlURU0gIiZOb3dlIG9rbm8iLCAgICAgICAgICAgICAgICAgIElEX1dJTkRPV19ORVcKICAgICAgICBNRU5VSVRFTSAiJkthc2thZHVquWNvXHRDdHJsK0Y1IiwgICAgICAgSURfV0lORE9XX0NBU0NBREUKICAgICAgICBNRU5VSVRFTSAiJlR5dHWzIHBpb25vd28iLCAgICAgICAgICAgICAgSURfV0lORE9XX1RJTEVfSE9SWgogICAgICAgIE1FTlVJVEVNICJUeXR1syAmcG96aW9tb1x0Q3RybCtGNCIsICAgICBJRF9XSU5ET1dfVElMRV9WRVJUCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiUm96bWllnOYgYXV0b21hdHljem5pZSIsICAgICAgSURfV0lORE9XX0FVVE9TT1JUCiNlbmRpZgogICAgICAgIE1FTlVJVEVNICJSb3ptaWWc5iAmc3ltYm9sZSIsICAgICAgICAgICBJRF9XSU5ET1dfQVJSQU5HRQogICAgICAgIE1FTlVJVEVNICImT2Scd2llv1x0RjUiLCAgICAgICAgICAgICAgIElEX1JFRlJFU0gKICAgIH0KCiAgICBQT1BVUCAiJj8iICB7CiAgICAgICAgTUVOVUlURU0gIiZUZW1hdHUgcG9tb2N5XHRGMSIsICAgICAgICAgIElEX0hFTFAKICAgICAgICBNRU5VSVRFTSAiJlN6dWthai4uLiIsICAgICAgICAgICAgICAgICAgSURfSEVMUAogICAgICAgIE1FTlVJVEVNICImVb95d2FuaWUgcG9tb2N5IiwgICAgICAgICAgICBJRF9IRUxQX1VTSU5HCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZXaW5lZmlsZS4uLiIsICAgICAgICAgICAgICAgIElEX0FCT1VUCiAgICB9Cn0KCgpJRERfRVhFQ1VURSBESUFMT0cgRklYRUQgSU1QVVJFIDE1LCAxMywgMjEwLCA2MwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJVcnVjaG9tIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIENPTlRST0wgICAgICAgICAiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCiAgICBDT05UUk9MICAgICAgICAgIiZQb2xlY2VuaWU6IiwgLTEsICJTdGF0aWMiLCBTU19MRUZUTk9XT1JEV1JBUHxXU19HUk9VUCwgMywgMTgsIDYwLCAxMAogICAgRURJVFRFWFQgICAgICAgIDIwMSwgMywgMjksIDEzNCwgMTIsIEVTX0FVVE9IU0NST0xMCiAgICBDT05UUk9MICAgICAgICAgIkpha28gJnN5bWJvbCIsIDIxNCwgIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QLDMsIDQ1LCA3MSwgMTIKICAgIERFRlBVU0hCVVRUT04gICAiT0siLCAxLCAxNTgsIDYsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICJBbnVsdWoiLCAyLCAxNTgsIDIzLCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiJlBvbW9jIiwgMjU0LCAxNTgsIDQzLCA0NywgMTQKfQoKSUREX1NFTEVDVF9ERVNUSU5BVElPTiBESUFMT0cgRklYRUQgSU1QVVJFIDE1LCAxMywgMjEwLCA2MwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJXeWLzciBjZWx1IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIENPTlRST0wgICAgICAgICAiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCiAgICBDT05UUk9MICAgICAgICAgIiaMY2llv2thOiIsIC0xLCAiU3RhdGljIiwgU1NfTEVGVE5PV09SRFdSQVB8V1NfR1JPVVAsIDMsIDE4LCA2MCwgMTAKICAgIEVESVRURVhUICAgICAgICAyMDEsIDMsIDI5LCAxMzQsIDEyLCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsIDEsIDE1OCwgNiwgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkFudWx1aiIsIDIsIDE1OCwgMjMsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICImUHJ6ZWdsuWRhaiIsIDI1NCwgMTU4LCA0MywgNDcsIDE0Cn0KCklERF9ESUFMT0dfVklFV19UWVBFIERJQUxPRyBESVNDQVJEQUJMRSAxNSwgMTMsIDE2MSwgOTcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiV2Vks3VnIHR5cHUgcGxpa3UiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIiZOYXp3YToiLC0xLDcsOCwyMiwxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19WSUVXX1BBVFRFUk4sMzEsNyw2MywxMixFU19BVVRPSFNDUk9MTAogICAgR1JPVVBCT1ggICAgICAgICJXeZx3aWV0bCBwbGlraSB0eXB1IiwtMSw3LDIzLDg3LDU2CiAgICBDT05UUk9MICAgICAgICAgIiZLYXRhbG9naSIsSURDX1ZJRVdfVFlQRV9ESVJFQ1RPUklFUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDMyLDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZQcm9ncmFteSIsSURDX1ZJRVdfVFlQRV9QUk9HUkFNUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDQzLDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkRva3UmbWVudHkiLElEQ19WSUVXX1RZUEVfRE9DVU1FTlRTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNTQsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiJklubmUgcGxpa2kiLElEQ19WSUVXX1RZUEVfT1RIRVJTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNjUsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiUG9rYb8gcGxpa2kgdWtyeXRlIGkgJnN5c3RlbW93ZSIsSURDX1ZJRVdfVFlQRV9ISURERU4sCiAgICAgICAgICAgICAgICAgICAgIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDgxLDEyNiw5CiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEwNCw3LDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkFudWx1aiIsSURDQU5DRUwsMTA0LDI0LDUwLDE0CkVORAoKSUREX0RJQUxPR19QUk9QRVJUSUVTIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ4LCAyMTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiV7NhnGNpd2+cY2k6ICVzIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxOTEsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBbnVsdWoiLElEQ0FOQ0VMLDE5MSwyOSw1MCwxNAogICAgTFRFWFQgICAgICAgICAgICImTmF6d2EgcGxpa3U6IiwtMSw3LDcsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9GSUxFTkFNRSw3MSw3LDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJlBls25hIJxjaWW/a2E6IiwtMSw3LDE4LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfUEFUSCw3MSwxOCwxMjAsOSwgRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImT3N0YXRuaW8gbW9keWZpa293YW55OiIsLTEsNywyOSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0xBU1RDSEFOR0UsNzEsMjksMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImV2Vyc2phOiIsLTEsNyw0MCw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1ZFUlNJT04sNzEsNDAsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJQcmF3YSBhJnV0b3Jza2llOiIsLTEsNyw1MSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0NPUFlSSUdIVCw3MSw1MSwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIldpZSZsa2+c5joiLC0xLDcsNjIsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9TSVpFLDcxLDYyLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiQXRyeWJ1dHkiLC0xLDcsNzksMTU4LDQ2CiAgICBDT05UUk9MICAgICAgICAgIlR5bGtvIGRvICZvZGN6eXR1IixJRENfQ0hFQ0tfUkVBRE9OTFksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNyw5MSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIiZVa3J5dHkiLElEQ19DSEVDS19ISURERU4sIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw5Miw5MSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIiZBcmNoaXdhbG55IixJRENfQ0hFQ0tfQVJDSElWRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDEwMSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIiZTeXN0ZW1vd3kiLElEQ19DSEVDS19TWVNURU0sIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw5MiwxMDEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICJTJmtvbXByZXNvd2FueSIsSURDX0NIRUNLX0NPTVBSRVNTRUQsIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTExLDY4LDkKICAgIEdST1VQQk9YICAgICAgICAiV2UmcnNqYSIsLTEsNywxMjksMjM0LDc5CiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1RZUEVTLDEzLDEzOSwxMDcsNjMsTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBFRElUVEVYVCAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1ZBTFVFUywxMjMsMTM5LDExMSw2MyxFU19NVUxUSUxJTkUgfCBFU19SRUFET05MWSB8IFdTX1ZTQ1JPTEwKRU5ECgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfRk9OVF9TRUxfRExHX05BTUUgICAiV3Byb3dhZHphbmllIHVzdGF3aWXxIGN6Y2lvbmtpIgogICAgSURTX0ZPTlRfU0VMX0VSUk9SICAgICAgIkKzuWQgcHJ6eSB3eWJpZXJhbml1IGN6Y2lvbmtpIgp9CgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfV0lORUZJTEUgICAgICAgICAgICAiV2luZWZpbGUiCiAgICBJRFNfRVJST1IgICAgICAgICAgICAgICAiQrO5ZCIKICAgIElEU19ST09UX0ZTICAgICAgICAgICAgICJyb290IGZzIgogICAgSURTX1VOSVhGUyAgICAgICAgICAgICAgInVuaXhmcyIKICAgIElEU19ERVNLVE9QICAgICAgICAgICAgICJQdWxwaXQiCiAgICBJRFNfU0hFTEwgICAgICAgICAgICAgICAiUHVscGl0IiAgICAgICAvKiB0s3VtYWN6ZW5pZSBuaWUgZG9zs293bmUsIGFsZSBjaHliYSBsZXBpZWogcGFzdWplICovCiAgICBJRFNfVElUTEVGTVQgICAgICAgICAgICAiJXMgLSAlcyIKICAgIElEU19OT19JTVBMICAgICAgICAgICAgICJKZXN6Y3plIG5pZSB6YWltcGxlbWVudG93YW5lIgogICAgSURTX1dJTkVfRklMRSAgICAgICAgICAgIldpbmUgRmlsZSIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX0NPTF9OQU1FICAgICAgICAgICAgIk5hendhIgogICAgSURTX0NPTF9TSVpFICAgICAgICAgICAgIldpZWxrb5zmIgogICAgSURTX0NPTF9DREFURSAgICAgICAgICAgIkNEYXRlIgogICAgSURTX0NPTF9BREFURSAgICAgICAgICAgIkFEYXRlIgogICAgSURTX0NPTF9NREFURSAgICAgICAgICAgIk1EYXRlIgogICAgSURTX0NPTF9JRFggICAgICAgICAgICAgIkluZGVrcy9pbm9kZSIKICAgIElEU19DT0xfTElOS1MgICAgICAgICAgICJEb3dpuXphbmlhIgogICAgSURTX0NPTF9BVFRSICAgICAgICAgICAgIkF0cnlidXR5IgogICAgSURTX0NPTF9TRUMgICAgICAgICAgICAgIlByYXdhIGRvc3TqcHUiCgogICAgSURTX0ZSRUVfU1BBQ0VfRk1UICAgICAgIiVzIHogJXMgd29sbmUiCn0K