IyBSdXNzaWFuIHRyYW5zbGF0aW9ucyBmb3IgUgojIPLV09PLycog0MXSxdfPxCDEzNEgUgojCiMgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBSIEZvdW5kYXRpb24KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgUiBwYWNrYWdlLgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBSIDIuMTQuMFxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMjAtMDMtMjQgMTA6NTMtMDcwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAxOC0wNC0wNyAwMjoxMy0wNTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEFsZXhleSBTaGlwdW5vdiA8ZGFjdHlsb3JoaXphQGdtYWlsLmNvbT5cbiIKIkxhbmd1YWdlLVRlYW06IFJ1c3NpYW4gPHJ1QGxpLm9yZz5cbiIKIkxhbmd1YWdlOiBydVxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1rb2k4LXJcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MzsgcGx1cmFsPShuJTEwPT0xICYmIG4lMTAwIT0xMSA/IDAgOiBuJTEwPj0yICYmIG4iCiIlMTA8PTQgJiYgKG4lMTAwPDEwIHx8IG4lMTAwPj0yMCkgPyAxIDogMik7XG4iCiJYLUdlbmVyYXRvcjogUG9lZGl0IDEuOC43LjFcbiIKCiM6IGZvcmsuYzoyMTUKIywgYy1mb3JtYXQKbXNnaWQgInVuYWJsZSB0byB0ZXJtaW5hdGUgY2hpbGQgcHJvY2VzczogJXMiCm1zZ3N0ciAizsUgzc/H1SDawdfF0tvJ1NggxM/exdLOycog0NLPw8XT0zogJXMiCgojOiBmb3JrLmM6MjQyCiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmFibGUgdG8gdGVybWluYXRlIGNoaWxkOiAlcyIKbXNnc3RyICLOxSDNz8fVINrB18XS28nU2CDEz97F0s7JyiDQ0s/DxdPTOiAlcyIKCiM6IGZvcmsuYzozMjEgZm9yay5jOjYwMgptc2dpZCAibWVtb3J5IGFsbG9jYXRpb24gZXJyb3IiCm1zZ3N0ciAiz9vJwsvBINLB09DSxcTFzMXOydEg0MHN0dTJIgoKIzogZm9yay5jOjM3MyBmb3JrLmM6Mzc3IGZvcmsuYzozODEKIywgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgJyVzJyBhcmd1bWVudCIKbXNnc3RyICLOxdDSwdfJzNjO2cogwdLH1c3FztQgJyVzJyIKCiM6IGZvcmsuYzo0MzcKbXNnaWQgIiIKIkVycm9yIHdoaWxlIHNodXR0aW5nIGRvd24gcGFyYWxsZWw6IHVuYWJsZSB0byB0ZXJtaW5hdGUgc29tZSBjaGlsZCAiCiJwcm9jZXNzZXNcbiIKbXNnc3RyICIiCiLv28nCy8Eg0NLJINrB18XS28XOyckgcGFyYWxsZWw6IM7FIM3Px9Ug2sHXxdLbydTYIM7Fy8/Uz9LZxSDEz97F0s7JxSAiCiLQ0s/DxdPT2VxuIgoKIzogZm9yay5jOjUyNiBmb3JrLmM6NTI5Cm1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIGEgcGlwZSIKbXNnc3RyICLOxSDNz8fVINPP2sTB1Ngg1NLVwtUiCgojOiBmb3JrLmM6NTUxCiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmFibGUgdG8gZm9yaywgcG9zc2libGUgcmVhc29uOiAlcyIKbXNnc3RyICLOxSDNz8fVINLB2tfF1NfJ1NgsINfP2s3P1s7B0SDQ0sneyc7BOiAlcyIKCiM6IGZvcmsuYzo3NDMKbXNnaWQgIm9ubHkgY2hpbGRyZW4gY2FuIHNlbmQgZGF0YSB0byB0aGUgbWFzdGVyIHByb2Nlc3MiCm1zZ3N0ciAi1M/M2MvPIMTP3sXSzsnFINDSz8PF09PZIM3Px9XUINDP09nMwdTYIMTBzs7ZxSDNwdPUxdIt0NLPw8XT09UiCgojOiBmb3JrLmM6NzQ1Cm1zZ2lkICJ0aGVyZSBpcyBubyBwaXBlIHRvIHRoZSBtYXN0ZXIgcHJvY2VzcyIKbXNnc3RyICLOxdQg1NLVwtkgyyDNwdPUxdIt0NLPw8XT09UiCgojOiBmb3JrLmM6NzQ3Cm1zZ2lkICJjb250ZW50IHRvIHNlbmQgbXVzdCBiZSBSQVcsIHVzZSBzZXJpYWxpemUoKSBpZiBuZWVkZWQiCm1zZ3N0ciAi0M/T2czBxc3ZyiDLz87Uxc7UIMTPzNbFziDC2dTYIFJBVywgydPQz8zY2tXK1MUgc2VyaWFsaXplKCksIMXTzMkgzsHEzyIKCiM6IGZvcmsuYzo3NTYgZm9yay5jOjc2NCBmb3JrLmM6MTE3NAptc2dpZCAid3JpdGUgZXJyb3IsIGNsb3NpbmcgcGlwZSB0byB0aGUgbWFzdGVyIgptc2dzdHIgIs/bycLLwSDawdDJ08ksINrBy9LZ18HAINTS1cLVIMsgzcHT1MXS1SIKCiM6IGZvcmsuYzo3NzQKbXNnaWQgIm9ubHkgdGhlIG1hc3RlciBwcm9jZXNzIGNhbiBzZW5kIGRhdGEgdG8gYSBjaGlsZCBwcm9jZXNzIgptc2dzdHIgItTPzNjLzyDNwdPUxdIt0NLPw8XT0yDNz9bF1CDQz9PZzMHU2CDEwc7O2cUgxM/exdLOxc3VINDSz8PF09PVIgoKIzogZm9yay5jOjc4MgojLCBjLWZvcm1hdAptc2dpZCAiY2hpbGQgJWQgZG9lcyBub3QgZXhpc3QiCm1zZ3N0ciAixM/exdLOycog0NLPw8XT0yAlZCDOxSDT1d3F09TX1cXUIgoKIzogZm9yay5jOjc4OAptc2dpZCAid3JpdGUgZXJyb3IiCm1zZ3N0ciAiz9vJwsvBINrB0MnTySIKCiM6IGZvcmsuYzo4NzQKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCB3YWl0IGZvciBjaGlsZCAlZCBhcyBpdCBkb2VzIG5vdCBleGlzdCIKbXNnc3RyICLOxSDNz8fVIMTP1sTB1NjT0SDEz97F0s7Fx88g0NLPw8XT08EgJWQgLCDQz9TPzdUg3tTPIMXHzyDOxdQiCgojOiBmb3JrLmM6OTMzIGZvcmsuYzoxMDUzCiMsIGMtZm9ybWF0Cm1zZ2lkICJlcnJvciAnJXMnIGluIHNlbGVjdCIKbXNnc3RyICLP28nCy8EgJyVzJyDXINfZws/SxSIKCiM6IGZvcmsuYzoxMTQzCm1zZ2lkICInbWNraWxsJyBmYWlsZWQiCm1zZ3N0ciAiJ21ja2lsbCcgzsUg1cTBzNPRIgoKIzogZm9yay5jOjExNTYKbXNnaWQgIidtY2V4aXQnIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBjaGlsZCBwcm9jZXNzIgptc2dzdHIgIidtY2V4aXQnIM3P1sXUIMLZ1NggydPQz8zY2s/Xwc4g1M/M2MvPINcgxM/exdLOxc0g0NLPw8XT08UiCgojOiBmb3JrLmM6MTE4OAptc2dpZCAiJ21jZXhpdCcgZmFpbGVkIgptc2dzdHIgIidtY2V4aXQnIM7FINXEwczT0SIKCiM6IGZvcmsuYzoxMjE3IGZvcmsuYzoxMjI2Cm1zZ2lkICJpbnZhbGlkIENQVSBhZmZpbml0eSBzcGVjaWZpY2F0aW9uIgptc2dzdHIgIs7F0NLB18nM2M7PxSDP0MnTwc7JxSDQ0snX0drLySBDUFUiCgojOiBmb3JrLmM6MTIzNwptc2dpZCAicmVxdWVzdGVkIENQVSBzZXQgaXMgdG9vIGxhcmdlIGZvciB0aGlzIHN5c3RlbSIKbXNnc3RyICLawdDSz9vFzs7B0SDV09TBzs/Xy8EgQ1BVINPMydvLz80g18XMycvBIMTM0SDc1M/KINPJ09TFzdkiCgojOiBmb3JrLmM6MTI2MAptc2dpZCAicmV0cmlldmluZyBDUFUgYWZmaW5pdHkgc2V0IGZhaWxlZCIKbXNnc3RyICLawcfS1drLwSDQ0snX0drLySDV09TBzs/Xy8kgQ1BVIM7FINXEwczB09giCg==