IyEvYmluL3NoCiMKIyBDb3B5cmlnaHQgKGMpIDIwMDYgSm9oYW5uZXMgRS4gU2NoaW5kZWxpbgojCgp0ZXN0X2Rlc2NyaXB0aW9uPSdnaXQgc2hvcnRsb2cKJwoKLiAuL3Rlc3QtbGliLnNoCgplY2hvIDEgPiBhMQpnaXQgYWRkIGExCnRyZWU9JChnaXQgd3JpdGUtdHJlZSkKY29tbWl0PSQoIChlY2hvICJUZXN0IjsgZWNobykgfCBnaXQgY29tbWl0LXRyZWUgJHRyZWUgKQpnaXQgdXBkYXRlLXJlZiBIRUFEICRjb21taXQKCmVjaG8gMiA+IGExCmdpdCBjb21taXQgLS1xdWlldCAtbSAiVGhpcyBpcyBhIHZlcnksIHZlcnkgbG9uZyBmaXJzdCBsaW5lIGZvciB0aGUgY29tbWl0IG1lc3NhZ2UgdG8gc2VlIGlmIGl0IGlzIHdyYXBwZWQgY29ycmVjdGx5IiBhMQoKIyB0ZXN0IGlmIHRoZSB3cmFwcGluZyBpcyBzdGlsbCB2YWxpZCB3aGVuIHJlcGxhY2luZyBhbGwgaSdzIGJ5IHRyZWJsZSBjbGVmcy4KZWNobyAzID4gYTEKZ2l0IGNvbW1pdCAtLXF1aWV0IC1tICIkKGVjaG8gIlRoaXMgaXMgYSB2ZXJ5LCB2ZXJ5IGxvbmcgZmlyc3QgbGluZSBmb3IgdGhlIGNvbW1pdCBtZXNzYWdlIHRvIHNlZSBpZiBpdCBpcyB3cmFwcGVkIGNvcnJlY3RseSIgfCBzZWQgInMvaS8xMjM0L2ciIHwgdHIgMTIzNCAnXDM2MFwyMzVcMjA0XDIzNicpIiBhMQoKIyBub3cgZnNjayB1cCB0aGUgdXRmOApnaXQgY29uZmlnIGkxOG4uY29tbWl0ZW5jb2Rpbmcgbm9uLXV0Zi04CmVjaG8gNCA+IGExCmdpdCBjb21taXQgLS1xdWlldCAtbSAiJChlY2hvICJUaGlzIGlzIGEgdmVyeSwgdmVyeSBsb25nIGZpcnN0IGxpbmUgZm9yIHRoZSBjb21taXQgbWVzc2FnZSB0byBzZWUgaWYgaXQgaXMgd3JhcHBlZCBjb3JyZWN0bHkiIHwgc2VkICJzL2kvMTIzNC9nIiB8IHRyIDEyMzQgJ1wzNzBcMjM1XDIwNFwyMzYnKSIgYTEKCmVjaG8gNSA+IGExCmdpdCBjb21taXQgLS1xdWlldCAtbSAiYQkJCQkJCQkJMTIJMzQJNTYJNzgiIGExCgpnaXQgc2hvcnRsb2cgLXcgSEVBRCA+IG91dAoKY2F0ID4gZXhwZWN0IDw8IEVPRgpBIFUgVGhvciAoNSk6CiAgICAgIFRlc3QKICAgICAgVGhpcyBpcyBhIHZlcnksIHZlcnkgbG9uZyBmaXJzdCBsaW5lIGZvciB0aGUgY29tbWl0IG1lc3NhZ2UgdG8gc2VlIGlmCiAgICAgICAgIGl0IGlzIHdyYXBwZWQgY29ycmVjdGx5CiAgICAgIFRo8J2EnnMg8J2EnnMgYSB2ZXJ5LCB2ZXJ5IGxvbmcgZvCdhJ5yc3QgbPCdhJ5uZSBmb3IgdGhlIGNvbW3wnYSedCBtZXNzYWdlIHRvIHNlZSDwnYSeZgogICAgICAgICDwnYSedCDwnYSecyB3cmFwcGVkIGNvcnJlY3RseQogICAgICBUaPidhJ5zIPidhJ5zIGEgdmVyeSwgdmVyeSBsb25nIGb4nYSecnN0IGz4nYSebmUgZm9yIHRoZSBjb21t+J2EnnQKICAgICAgICAgbWVzc2FnZSB0byBzZWUg+J2EnmYg+J2EnnQg+J2EnnMgd3JhcHBlZCBjb3JyZWN0bHkKICAgICAgYQkJCQkJCQkJMTIJMzQKICAgICAgICAgNTYJNzgKCkVPRgoKdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hvcnRsb2cgd3JhcHBpbmcnICd0ZXN0X2NtcCBleHBlY3Qgb3V0JwoKZ2l0IGxvZyBIRUFEID4gbG9nCkdJVF9ESVI9bm9uLWV4aXN0aW5nIGdpdCBzaG9ydGxvZyAtdyA8IGxvZyA+IG91dAoKdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hvcnRsb2cgZnJvbSBub24tZ2l0IGRpcmVjdG9yeScgJ3Rlc3RfY21wIGV4cGVjdCBvdXQnCgppY29udmZyb211dGY4dG9pc284ODU5MSgpIHsKCXByaW50ZiAiJXMiICIkKiIgfCBpY29udiAtZiBVVEYtOCAtdCBJU084ODU5LTEKfQoKRFNDSE89IkrDtmjDpG5uw6tzIFwiRHNjaMO2XCIgU2NoaW5kw6tsaW4iCkRTQ0hPRT0iJERTQ0hPIDxKb2hhbm5lcy5TY2hpbmRlbGluQGdteC5kZT4iCk1TRzE9InNldCBhMSB0byAyIGFuZCBzb21lIG5vbi1BU0NJSSBjaGFyczogw4TDn8O4IgpNU0cyPSJzZXQgYTEgdG8gMyBhbmQgc29tZSBub24tQVNDSUkgY2hhcnM6IMOhw6bDryIKY2F0ID4gZXhwZWN0IDw8IEVPRgokRFNDSE8gKDIpOgogICAgICAkTVNHMQogICAgICAkTVNHMgoKRU9GCgp0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG9ydGxvZyBlbmNvZGluZycgJwoJZ2l0IHJlc2V0IC0taGFyZCAiJGNvbW1pdCIgJiYKCWdpdCBjb25maWcgLS11bnNldCBpMThuLmNvbW1pdGVuY29kaW5nICYmCgllY2hvIDIgPiBhMSAmJgoJZ2l0IGNvbW1pdCAtLXF1aWV0IC1tICIkTVNHMSIgLS1hdXRob3I9IiREU0NIT0UiIGExICYmCglnaXQgY29uZmlnIGkxOG4uY29tbWl0ZW5jb2RpbmcgIklTTzg4NTktMSIgJiYKCWVjaG8gMyA+IGExICYmCglnaXQgY29tbWl0IC0tcXVpZXQgLW0gIiQoaWNvbnZmcm9tdXRmOHRvaXNvODg1OTEgIiRNU0cyIikiIFwKCQktLWF1dGhvcj0iJChpY29udmZyb211dGY4dG9pc284ODU5MSAiJERTQ0hPRSIpIiBhMSAmJgoJZ2l0IGNvbmZpZyAtLXVuc2V0IGkxOG4uY29tbWl0ZW5jb2RpbmcgJiYKCWdpdCBzaG9ydGxvZyBIRUFEfjIuLiA+IG91dCAmJgp0ZXN0X2NtcCBleHBlY3Qgb3V0JwoKdGVzdF9kb25lCg==