IyBSdXNzaWFuIHRyYW5zbGF0aW9ucyBmb3IgUgojIPLV09PLycog0MXSxdfPxCDEzNEgUgojCiMgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBSIEZvdW5kYXRpb24KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgUiBwYWNrYWdlLgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBSIDIuMTQuMFxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTgtMDMtMzAgMDc6MzQtMDcwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAxOC0wNC0wNyAwMjoxMy0wNTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEFsZXhleSBTaGlwdW5vdiA8ZGFjdHlsb3JoaXphQGdtYWlsLmNvbT5cbiIKIkxhbmd1YWdlLVRlYW06IFJ1c3NpYW4gPHJ1QGxpLm9yZz5cbiIKIkxhbmd1YWdlOiBydVxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1rb2k4LXJcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MzsgcGx1cmFsPShuJTEwPT0xICYmIG4lMTAwIT0xMSA/IDAgOiBuJTEwPj0yICYmIG4iCiIlMTA8PTQgJiYgKG4lMTAwPDEwIHx8IG4lMTAwPj0yMCkgPyAxIDogMik7XG4iCiJYLUdlbmVyYXRvcjogUG9lZGl0IDEuOC43LjFcbiIKCiM6IGZvcmsuYzoxODEKIywgYy1mb3JtYXQKbXNnaWQgInVuYWJsZSB0byB0ZXJtaW5hdGUgY2hpbGQgcHJvY2VzczogJXMiCm1zZ3N0ciAizsUgzc/H1SDawdfF0tvJ1NggxM/exdLOycog0NLPw8XT0zogJXMiCgojOiBmb3JrLmM6MjA4CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmFibGUgdG8gdGVybWluYXRlIGNoaWxkOiAlcyIKbXNnc3RyICLOxSDNz8fVINrB18XS28nU2CDEz97F0s7JyiDQ0s/DxdPTOiAlcyIKCiM6IGZvcmsuYzoyODcgZm9yay5jOjU1Ngptc2dpZCAibWVtb3J5IGFsbG9jYXRpb24gZXJyb3IiCm1zZ3N0ciAiz9vJwsvBINLB09DSxcTFzMXOydEg0MHN0dTJIgoKIzogZm9yay5jOjMzNyBmb3JrLmM6MzQxIGZvcmsuYzozNDUKIywgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgJyVzJyBhcmd1bWVudCIKbXNnc3RyICLOxdDSwdfJzNjO2cogwdLH1c3FztQgJyVzJyIKCiM6IGZvcmsuYzo0MDEKbXNnaWQgIiIKIkVycm9yIHdoaWxlIHNodXR0aW5nIGRvd24gcGFyYWxsZWw6IHVuYWJsZSB0byB0ZXJtaW5hdGUgc29tZSBjaGlsZCAiCiJwcm9jZXNzZXNcbiIKbXNnc3RyICIiCiLv28nCy8Eg0NLJINrB18XS28XOyckgcGFyYWxsZWw6IM7FIM3Px9Ug2sHXxdLbydTYIM7Fy8/Uz9LZxSDEz97F0s7JxSAiCiLQ0s/DxdPT2VxuIgoKIzogZm9yay5jOjQ5MCBmb3JrLmM6NDkzCm1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIGEgcGlwZSIKbXNnc3RyICLOxSDNz8fVINPP2sTB1Ngg1NLVwtUiCgojOiBmb3JrLmM6NTE1CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmFibGUgdG8gZm9yaywgcG9zc2libGUgcmVhc29uOiAlcyIKbXNnc3RyICLOxSDNz8fVINLB2tfF1NfJ1NgsINfP2s3P1s7B0SDQ0sneyc7BOiAlcyIKCiM6IGZvcmsuYzo2ODMKbXNnaWQgIm9ubHkgY2hpbGRyZW4gY2FuIHNlbmQgZGF0YSB0byB0aGUgbWFzdGVyIHByb2Nlc3MiCm1zZ3N0ciAi1M/M2MvPIMTP3sXSzsnFINDSz8PF09PZIM3Px9XUINDP09nMwdTYIMTBzs7ZxSDNwdPUxdIt0NLPw8XT09UiCgojOiBmb3JrLmM6Njg1Cm1zZ2lkICJ0aGVyZSBpcyBubyBwaXBlIHRvIHRoZSBtYXN0ZXIgcHJvY2VzcyIKbXNnc3RyICLOxdQg1NLVwtkgyyDNwdPUxdIt0NLPw8XT09UiCgojOiBmb3JrLmM6Njg3Cm1zZ2lkICJjb250ZW50IHRvIHNlbmQgbXVzdCBiZSBSQVcsIHVzZSBzZXJpYWxpemUoKSBpZiBuZWVkZWQiCm1zZ3N0ciAi0M/T2czBxc3ZyiDLz87Uxc7UIMTPzNbFziDC2dTYIFJBVywgydPQz8zY2tXK1MUgc2VyaWFsaXplKCksIMXTzMkgzsHEzyIKCiM6IGZvcmsuYzo2OTYgZm9yay5jOjcwNCBmb3JrLmM6MTA4MAptc2dpZCAid3JpdGUgZXJyb3IsIGNsb3NpbmcgcGlwZSB0byB0aGUgbWFzdGVyIgptc2dzdHIgIs/bycLLwSDawdDJ08ksINrBy9LZ18HAINTS1cLVIMsgzcHT1MXS1SIKCiM6IGZvcmsuYzo3MTQKbXNnaWQgIm9ubHkgdGhlIG1hc3RlciBwcm9jZXNzIGNhbiBzZW5kIGRhdGEgdG8gYSBjaGlsZCBwcm9jZXNzIgptc2dzdHIgItTPzNjLzyDNwdPUxdIt0NLPw8XT0yDNz9bF1CDQz9PZzMHU2CDEwc7O2cUgxM/exdLOxc3VINDSz8PF09PVIgoKIzogZm9yay5jOjcyMgojLCBjLWZvcm1hdAptc2dpZCAiY2hpbGQgJWQgZG9lcyBub3QgZXhpc3QiCm1zZ3N0ciAixM/exdLOycog0NLPw8XT0yAlZCDOxSDT1d3F09TX1cXUIgoKIzogZm9yay5jOjcyOAptc2dpZCAid3JpdGUgZXJyb3IiCm1zZ3N0ciAiz9vJwsvBINrB0MnTySIKCiM6IGZvcmsuYzo3ODEKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCB3YWl0IGZvciBjaGlsZCAlZCBhcyBpdCBkb2VzIG5vdCBleGlzdCIKbXNnc3RyICLOxSDNz8fVIMTP1sTB1NjT0SDEz97F0s7Fx88g0NLPw8XT08EgJWQgLCDQz9TPzdUg3tTPIMXHzyDOxdQiCgojOiBmb3JrLmM6ODQ4IGZvcmsuYzo5NzEKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yICclcycgaW4gc2VsZWN0Igptc2dzdHIgIs/bycLLwSAnJXMnINcg19nCz9LFIgoKIzogZm9yay5jOjEwNjIKbXNnaWQgIidtY2tpbGwnIGZhaWxlZCIKbXNnc3RyICInbWNraWxsJyDOxSDVxMHM09EiCgojOiBmb3JrLmM6MTA3Mgptc2dpZCAiJ21jZXhpdCcgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIGNoaWxkIHByb2Nlc3MiCm1zZ3N0ciAiJ21jZXhpdCcgzc/WxdQgwtnU2CDJ09DPzNjaz9fBziDUz8zYy88g1yDEz97F0s7FzSDQ0s/DxdPTxSIKCiM6IGZvcmsuYzoxMDk0Cm1zZ2lkICInbWNleGl0JyBmYWlsZWQiCm1zZ3N0ciAiJ21jZXhpdCcgzsUg1cTBzNPRIgoKIzogZm9yay5jOjExMjMgZm9yay5jOjExMzIKbXNnaWQgImludmFsaWQgQ1BVIGFmZmluaXR5IHNwZWNpZmljYXRpb24iCm1zZ3N0ciAizsXQ0sHXyczYzs/FIM/QydPBzsnFINDSydfR2svJIENQVSIKCiM6IGZvcmsuYzoxMTQzCm1zZ2lkICJyZXF1ZXN0ZWQgQ1BVIHNldCBpcyB0b28gbGFyZ2UgZm9yIHRoaXMgc3lzdGVtIgptc2dzdHIgItrB0NLP28XOzsHRINXT1MHOz9fLwSBDUFUg08zJ28vPzSDXxczJy8EgxMzRINzUz8og08nT1MXN2SIKCiM6IGZvcmsuYzoxMTY2Cm1zZ2lkICJyZXRyaWV2aW5nIENQVSBhZmZpbml0eSBzZXQgZmFpbGVkIgptc2dzdHIgItrBx9LV2svBINDSydfR2svJINXT1MHOz9fLySBDUFUgzsUg1cTBzMHT2CIK