LyoKICogV2luZUZpbGUKICogS29yZWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDAgTWFydGluIEZ1Y2hzCiAqIENvcHlyaWdodCAyMDAyIFN0ZXZlbiBFZHdhcmRzCiAqIENvcHlyaWdodCAyMDAyIEFsZXhhbmRyZSBKdWxsaWFyZAogKiBDb3B5cmlnaHQgMjAwNSwyMDA3IFl1blNvbmcgSHdhbmcKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19LT1JFQU4sIFNVQkxBTkdfTkVVVFJBTAoKLyogTWVudSAqLwoKSURNX1dJTkVGSUxFIE1FTlUgRklYRUQgSU1QVVJFCnsKICAgIFBPUFVQICLGxMDPKCZGKSIgIHsKICAgICAgICBNRU5VSVRFTSAiv62x4igmTylcdEVudGVyIiwgICAgICAgICAgICAgICAgSURfQUNUSVZBVEUKICAgICAgICBNRU5VSVRFTSAiwMy1vygmTSkuLi5cdEY3IiwgICAgICAgICAgICAgICAgSURfRklMRV9NT1ZFCiAgICAgICAgTUVOVUlURU0gIrq5u+coJkMpLi4uXHRGOCIsICAgICAgICAgICAgICAgIElEX0ZJTEVfQ09QWQogICAgICAgIE1FTlVJVEVNICLFrLizuri15bfOKCZJKS4uLlx0RjkiLCAgICAgICAgMTE4CiAgICAgICAgTUVOVUlURU0gIsH2v+yx4igmRClcdERlbCIsICAgICAgICAgICAgICAgIElEX0ZJTEVfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIsDMuKe52bLZseIoJk4pLi4uIiwgICAgICAgICAgICAgICAgICAxMDkKICAgICAgICBNRU5VSVRFTSAivNO8uigmSSkuLi5cdEFsdCtFbnRlciIsICAgSURfRURJVF9QUk9QRVJUSUVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIr7Qw+AoJk8pLi4uIiwgICAgICAgICAgICAgICAgMTE5CiAgICAgICAgTUVOVUlURU0gIr7Qw+Agx66x4igmTykuLi4iLCAgICAgICAgICAgICAgMTIwCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIr3Hx+AoJlIpLi4uIiwgICAgICAgICAgICAgICAgICAgICBJRF9FWEVDVVRFCiAgICAgICAgTUVOVUlURU0gIsDOvOIoJlApLi4uIiwgICAgICAgICAgICAgICAgICAgMTAyCiAgICAgICAgTUVOVUlURU0gIr+ssOEuLi4iLCAgICAgICAgICAgICAgICAxMDMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAitfC3usXkuK4guLi16bHiKCZFKS4uLiIsICAgICAgICAxMTEKICAgICAgICBNRU5VSVRFTSAiw6Ox4igmSCkuLi4iLCAgICAgICAgICAgICAgICAgIDEwNAogICAgICAgIE1FTlVJVEVNICLGxMDPILyxxcMoJlMpLi4uIiwgICAgICAgICAgICAxMTYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICKzqrChseIoRXgpXHRBbHQrWCIsICAgICAgICAgICAgICAgIElEX0ZJTEVfRVhJVAojZWxzZQogICAgICAgIE1FTlVJVEVNICKzqrChseIoJngpIiwgICAgICAgICAgICAgICAgICAgICAgIElEX0ZJTEVfRVhJVAojZW5kaWYKICAgIH0KCiAgICBQT1BVUCAitfC9usWpKCZEKSIgIHsKICAgICAgICBNRU5VSVRFTSAitfC9usWpILq5u+coJkMpLi4uIiwgICAgICAgICAgICAgICAyMDEKICAgICAgICBNRU5VSVRFTSAitfC9usWpILbzuqcoJkwpLi4uIiwgICAgICAgICAgICAgIDIwMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICK18L26xakgxve4yygmRikuLi4iLCAgICAgICAgICAgICBJRF9GT1JNQVRfRElTSwojaWZkZWYgX1dJTjk1CiAgICAgICAgTUVOVUlURU0gIr3DvbrF2yC18L26xakguLi16bHiKCZNKS4uLiIsIC0xIC8qVE9ETyovCiNlbmRpZgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICKz18auv/bFqSC15bbzwMy66iC/rLDhKCZOKSIsICAgICAgSURfQ09OTkVDVF9ORVRXT1JLX0RSSVZFCiAgICAgICAgTUVOVUlURU0gIrPXxq6/9sWpILXltvPAzLrqIL+ssOEgsvex4igmRCkiLCAgIElEX0RJU0NPTk5FQ1RfTkVUV09SS19EUklWRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICKw+MCvLi4uIiwgICAgICAgICAgICAgICAgIDI1NAogICAgICAgIE1FTlVJVEVNICKw+MCvIMGmsMUoJlIpLi4uIiwgICAgICAgICAgICAyNTUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiteW288DMuuogvLHFwygmUykuLi4iLCAgICAgICAgICAgIDI1MQogICAgfQoKICAgIFBPUFVQICK18Le6xeS4rigmUikiICB7CiAgICAgICAgTUVOVUlURU0gIrTZwL0gtNyw6CgmTilcdCsiLCAgICAgICAgICAgICAgMzAxCiAgICAgICAgTUVOVUlURU0gIsauuK4gyK7A5SgmVClcdCoiLCAgICAgICAgICAgICAzMDIKICAgICAgICBNRU5VSVRFTSAiuPC1ziDIrsDlKCZBKVx0U3RyZysqIiwgICAgICAgICAzMDMKICAgICAgICBNRU5VSVRFTSAixq64riDBpLiuKCZUKVx0LSIsICAgICAgICAgICAzMDQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAix8/ApyDDvMWpKCZNKSIsICAgICAgICAgICAgICA1MDUKICAgIH0KCiAgICBQT1BVUCAiurix4igmVikiICB7CiAgICAgICAgTUVOVUlURU0gIsauuK4gx8+w7SCx4re6xeS4rigmcikiLCAgICAgICAgIDQxMwogICAgICAgIE1FTlVJVEVNICK/wMH3IMauuK64uCgmZSkiLCAgICAgICAgICAgICAgICAgIDQxMQogICAgICAgIE1FTlVJVEVNICK/wMH3ILXwt7rF5LiuuLgoJk8pIiwgICAgICAgICAgICAgNDEyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIrOqtKmx4igmbCkiLCAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIsDMuKcoJk4pIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfTkFNRQogICAgICAgIE1FTlVJVEVNICK48LXnIMbEwM8gvLO47SgmQSkiLCAgICAgICAgICAgSURfVklFV19BTExfQVRUUklCVVRFUywgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICK6zrrQILyzuO0oJlApLi4uIiwgICAgICAgICBJRF9WSUVXX1NFTEVDVEVEX0FUVFJJQlVURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiwMy4p8C4t84gwaS3xCgmUykiLCAgICAgICAgICAgICAgIElEX1ZJRVdfU09SVF9OQU1FCiAgICAgICAgTUVOVUlURU0gIsW4wNTAuLfOIMGkt8QoJmIpIiwgICAgICAgICAgICAgICBJRF9WSUVXX1NPUlRfVFlQRQogICAgICAgIE1FTlVJVEVNICLFqbHit84gwaS3xCgmeikiLCAgICAgICAgICAgICAgIElEX1ZJRVdfU09SVF9TSVpFCiAgICAgICAgTUVOVUlURU0gIrOvwqW3ziDBpLfEKCZEKSIsICAgICAgICAgICAgICAgSURfVklFV19TT1JUX0RBVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJi4uLrfOIL+psPoiLCAgICAgICAgICAgICAgSURfVklFV19GSUxURVIKICAgIH0KCiAgICBQT1BVUCAiv8m8xygmTykiICB7CiAgICAgICAgTUVOVUlURU0gIsiuwM4oJkMpLi4uIiwgICAgICAgICAgICA1MDEKICAgICAgICBNRU5VSVRFTSAisduywygmRikuLi4iLCAgICAgICAgICAgICAgICAgICAgSURfU0VMRUNUX0ZPTlQKICAgICAgICBNRU5VSVRFTSAitbWxuLnZILvnv+vA2iDBpMDHKCZiKS4uLiIsICAgICAgIDUxMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICK1tbG4udkoJlQpIiwgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVE9PTF9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiteW288DMuuogudkoJkQpIiwgICAgICAgICAgICAgICAgICAgSURfVklFV19EUklWRV9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiu/PFwrnZKCZTKSIsICAgICAgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUiwgQ0hFQ0tFRAojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIsD8w7wgyK246SgmdSlcdEN0cmwrU2hpZnQrUyIsICBJRF9WSUVXX0ZVTExTQ1JFRU4KI2VuZGlmCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIr3Hx+C9wyDD1rzSyK0oJk0pIiwgICAgICAgICAgICA1MDQKICAgICAgICBNRU5VSVRFTSAis6qwpbanILyzwaQgwPrA5SgmUykiLCAgICAgIDUxMQogICAgfQoKCiAgICBQT1BVUCAiuri+yCgmUykiICB7CiAgICAgICAgTUVOVUlURU0gIsGisdkoJkEpLi4uIiwgICAgICAgICAgICAgICAgICA2MDUKICAgICAgICBNRU5VSVRFTSAit86x6ygmTCkuLi4iLCAgICAgICAgICAgICAgICAgNjA2CiAgICAgICAgTUVOVUlURU0gIrzSwK/A2igmTykuLi4iLCAgICAgICAgICAgICAgICAgICA2MDcKICAgIH0KCiAgICBQT1BVUCAiw6IoJlcpIiAgewogICAgICAgIE1FTlVJVEVNICK79SDDoigmVykiLCAgICAgICAgICAgICAgICAgSURfV0lORE9XX05FVwogICAgICAgIE1FTlVJVEVNICLBpLfEXHRDdHJsK0Y1IiwgICAgICAgICAgSURfV0lORE9XX0NBU0NBREUKICAgICAgICBNRU5VSVRFTSAisKG3ziC52bXPxse9xCDBpLfEKCZIKSIsICAgICAgICAgIElEX1dJTkRPV19USUxFX0hPUloKICAgICAgICBNRU5VSVRFTSAivLy3ziC52bXPxse9xCDBpLfEKCZWKVx0Q3RybCtGNCIsICAgSURfV0lORE9XX1RJTEVfVkVSVAojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIsDatb8gwaS3xCIsICAgICAgIElEX1dJTkRPV19BVVRPU09SVAojZW5kaWYKICAgICAgICBNRU5VSVRFTSAivcm5+rfOIMGkt8QoJlMpIiwgICAgICAgICAgICBJRF9XSU5ET1dfQVJSQU5HRQogICAgICAgIE1FTlVJVEVNICK79bfOIMDQseIoJlIpXHRGNSIsICAgICAgICAgICAgICAgIElEX1JFRlJFU0gKICAgIH0KCiAgICBQT1BVUCAitbW/8ri7KCZIKSIgIHsKICAgICAgICBNRU5VSVRFTSAitbW/8ri7ILjxwvcoJkgpXHRGMSIsICAgICAgICAgICAgSURfSEVMUAogICAgICAgIE1FTlVJVEVNICK1tb/yuLsgw6Ox4igmUykuLi5cdEYxIiwgICAgICAgICBJRF9IRUxQCiAgICAgICAgTUVOVUlURU0gIrW1v/K4uyC757/ruf0oJlUpXHRGMSIsICAgICAgICAgICAgIElEX0hFTFBfVVNJTkcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiV2luZWZpbGUgsPy3wyDBpLq4KCZJKS4uLiIsICAgICBJRF9BQk9VVAojaWZkZWYgX19XSU5FX18KICAgICAgICBNRU5VSVRFTSAiJldpbmUgsPy3wyDBpLq4Li4uIiwgICAgICAgICBJRF9BQk9VVF9XSU5FCiNlbmRpZgogICAgfQp9CgoKSUREX0VYRUNVVEUgRElBTE9HIEZJWEVEIElNUFVSRSAxNSwgMTMsIDIxMCwgNjMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAivcfH4CIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBDT05UUk9MICAgICAgICAgIiIsIDEwMSwgIlN0YXRpYyIsIFNTX1NJTVBMRXxTU19OT1BSRUZJWCwgMywgNiwgMTYyLCAxMAogICAgQ09OVFJPTCAgICAgICAgICK47bfJKCZDKToiLCAtMSwgIlN0YXRpYyIsIFNTX0xFRlROT1dPUkRXUkFQfFdTX0dST1VQLCAzLCAxOCwgNjAsIDEwCiAgICBFRElUVEVYVCAgICAgICAgMjAxLCAzLCAyOSwgMTM0LCAxMiwgRVNfQVVUT0hTQ1JPTEwKICAgIENPTlRST0wgICAgICAgICAivcm5+rfOKCZTKSIsIDIxNCwgIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QLDMsIDQ1LCA3MSwgMTIKICAgIERFRlBVU0hCVVRUT04gICAiyK7AziIsIDEsIDE1OCwgNiwgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIsPrvNIiLCAyLCAxNTgsIDIzLCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAitbW/8ri7KCZIKSIsIDI1NCwgMTU4LCA0MywgNDcsIDE0Cn0KCklERF9TRUxFQ1RfREVTVElOQVRJT04gRElBTE9HIEZJWEVEIElNUFVSRSAxNSwgMTMsIDIxMCwgNjMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiuPHA+8H2ILyxxcMiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgQ09OVFJPTCAgICAgICAgICIiLCAxMDEsICJTdGF0aWMiLCBTU19TSU1QTEV8U1NfTk9QUkVGSVgsIDMsIDYsIDE2MiwgMTAKICAgIENPTlRST0wgICAgICAgICAisOa3zigmUCk6IiwgLTEsICJTdGF0aWMiLCBTU19MRUZUTk9XT1JEV1JBUHxXU19HUk9VUCwgMywgMTgsIDYwLCAxMAogICAgRURJVFRFWFQgICAgICAgIDIwMSwgMywgMjksIDEzNCwgMTIsIEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIsiuwM4iLCAxLCAxNTgsIDYsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICLD67zSIiwgMiwgMTU4LCAyMywgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIsOjseIoJkIpIiwgMjU0LCAxNTgsIDQzLCA0NywgMTQKfQoKSUREX0RJQUxPR19WSUVXX1RZUEUgRElBTE9HIERJU0NBUkRBQkxFIDE1LCAxMywgMTYxLCA5NwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLGxMDPIMW4wNTAuLfOIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIsDMuKcoJk4pOiIsLTEsNyw4LDIyLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZJRVdfUEFUVEVSTiwzMSw3LDYzLDEyLEVTX0FVVE9IU0NST0xMCiAgICBHUk9VUEJPWCAgICAgICAgIsbEwM8gxbjA1CIsLTEsNywyMyw4Nyw1NgogICAgQ09OVFJPTCAgICAgICAgICK18Le6xeS4rigmRCkiLElEQ19WSUVXX1RZUEVfRElSRUNUT1JJRVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMywzMiw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICLHrrHXuLIoJlApIixJRENfVklFV19UWVBFX1BST0dSQU1TLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNDMsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiua68rcbEwM8oJk0pIixJRENfVklFV19UWVBFX0RPQ1VNRU5UUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDU0LDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIrTZuKUgxsTAzygmTykiLElEQ19WSUVXX1RZUEVfT1RIRVJTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNjUsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAivPux6C+9w726xdsgxsTAzyC6uL+pwdax4igmUykiLElEQ19WSUVXX1RZUEVfSElEREVOLAogICAgICAgICAgICAgICAgICAgICK59sawIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsODEsMTA2LDkKICAgIERFRlBVU0hCVVRUT04gICAiyK7AziIsSURPSywxMDQsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICLD67zSIixJRENBTkNFTCwxMDQsMjQsNTAsMTQKRU5ECgpJRERfRElBTE9HX1BST1BFUlRJRVMgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDgsIDIxNQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICIlcyC807y6IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIsiuwM4iLElET0ssMTkxLDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiw+u80iIsSURDQU5DRUwsMTkxLDI5LDUwLDE0CiAgICBMVEVYVCAgICAgICAgICAgIsbEwM8gwMy4pygmRik6IiwtMSw3LDcsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9GSUxFTkFNRSw3MSw3LDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiv8/A/MfRILDmt84oJlApOiIsLTEsNywxOCw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1BBVEgsNzEsMTgsMTIwLDksIEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiuLbB9ri3ILqvyK06IiwtMSw3LDI5LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfTEFTVENIQU5HRSw3MSwyOSwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIrn2wa86IiwtMSw3LDQwLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfVkVSU0lPTiw3MSw0MCwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIsD6wNuxxygmWSk6IiwtMSw3LDUxLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfQ09QWVJJR0hULDcxLDUxLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAixamx4joiLC0xLDcsNjIsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9TSVpFLDcxLDYyLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAivNO8uiIsLTEsNyw3OSwxNTgsNDYKICAgIENPTlRST0wgICAgICAgICAiwNCx4iDA/L/rKCZSKSIsSURDX0NIRUNLX1JFQURPTkxZLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsOTEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICK8+7HoKCZJKSIsSURDX0NIRUNLX0hJRERFTiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDkyLDkxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAivsbEq8DMuuooJkEpIixJRENfQ0hFQ0tfQVJDSElWRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDEwMSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIr3DvbrF2ygmUykiLElEQ19DSEVDS19TWVNURU0sIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw5MiwxMDEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICK+0MPgKCZDKSIsSURDX0NIRUNLX0NPTVBSRVNTRUQsIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTExLDY4LDkKICAgIEdST1VQQk9YICAgICAgICAiufbBryDBpLq4KCZWKSIsLTEsNywxMjksMjM0LDc5CiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1RZUEVTLDEzLDEzOSwxMDcsNjMsTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBFRElUVEVYVCAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1ZBTFVFUywxMjMsMTM5LDExMSw2MyxFU19NVUxUSUxJTkUgfCBFU19SRUFET05MWSB8IFdTX1ZTQ1JPTEwKRU5ECgoKU1RSSU5HVEFCTEUKewogICAgSURTX0ZPTlRfU0VMX0RMR19OQU1FICAgIrHbssMgvLPBpCDA+7/rIgogICAgSURTX0ZPTlRfU0VMX0VSUk9SICAgICAgIrv1ILHbssMgvLHFwyC/obevLiIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX1dJTkVGSUxFICAgICAgICAgICAgIldpbmVmaWxlIgogICAgSURTX0VSUk9SICAgICAgICAgICAgICAgIr+ht68iCiAgICBJRFNfUk9PVF9GUyAgICAgICAgICAgICAit+fGriDGxMDPvcO9usXbIgogICAgSURTX1VOSVhGUyAgICAgICAgICAgICAgIsCvtNC9uiDGxMDPvcO9usXbIgogICAgSURTX0RFU0tUT1AgICAgICAgICAgICAgIrWlvbrFqcW+IgogICAgSURTX1NIRUxMICAgICAgICAgICAgICAgIry/IgogICAgSURTX1RJVExFRk1UICAgICAgICAgICAgIiVzIC0gJXMiCiAgICBJRFNfTk9fSU1QTCAgICAgICAgICAgICAiucyxuMf2IgogICAgSURTX1dJTkUgICAgICAgICAgICAgICAgIldJTkUiCiAgICBJRFNfV0lORV9GSUxFICAgICAgICAgICAiV2luZSDGxMDPIgp9CgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfQ09MX05BTUUgICAgICAgICAgICAiwMy4pyIKICAgIElEU19DT0xfU0laRSAgICAgICAgICAgICLFqbHiIgogICAgSURTX0NPTF9DREFURSAgICAgICAgICAgIr3DKENEYXRlKSIKICAgIElEU19DT0xfQURBVEUgICAgICAgICAgICLDyihBRGF0ZSkiCiAgICBJRFNfQ09MX01EQVRFICAgICAgICAgICAiutAoTURhdGUpIgogICAgSURTX0NPTF9JRFggICAgICAgICAgICAgIsDOtaa9ui++xsDMs+u15SIKICAgIElEU19DT0xfTElOS1MgICAgICAgICAgICK4tcWpIgogICAgSURTX0NPTF9BVFRSICAgICAgICAgICAgIrzTvLoiCiAgICBJRFNfQ09MX1NFQyAgICAgICAgICAgICAiuri+yCIKCiAgICBJRFNfRlJFRV9TUEFDRV9GTVQgICAgICAiJXMgb2YgJXMgu+e/67ChtMkiCn0KCgpTVFJJTkdUQUJMRQp7CklEU19MSUNFTlNFX0NBUFRJT04sICAgICAgICAgICAgIrbzwMy8viIKSURTX0xJQ0VOU0UsCiJUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIFwKbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciBcCnZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXApUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgXApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBcCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIFwKTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cblwKWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgXApGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBIgoKSURTX1dBUlJBTlRZX0NBUFRJT04sICK6uMH1IL74wL0iCklEU19XQVJSQU5UWSwKIlRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBcCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIFwKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgXApMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiIKfQo=