Our Logo
WebAsOne
Home
Design
Design Block
Design Patterns
Animation
Themes
Design-Marketing
Hero
About
BIO
Contact
CTA
FAQ
Footer
Portfolio
Price
Service
Team
Testimonials
Pages
JS Frameworks
ReactJS
SvelteJS
VueJS
Web Apps
OpenSource
Mini-Apps
Google
Map
Contact Form
Email
One
Mini-Apps
-> Google ->
Map
Contact Form
Questions or comments
Submit
oneColumn/id13-33,Click to clipboard
ezE6IHsnZW4nOiB7J05vdGVzJzogJycsCiAgICAgICAgICAgICdTbGlkZVR5cGUnOiAnVGlueU1DRScsCiAgICAgICAgICAgICdhSW1hZ2UnOiAnJywKICAgICAgICAgICAgJ2FMYWJlbCc6ICdodG1sIGZvcm0nLAogICAgICAgICAgICAnYXN2Z2ZpbGUnOiAnPHN2Zz48L3N2Zz4nLAogICAgICAgICAgICAnY29kZSc6ICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJ3NldF9lcnJvcl9oYW5kbGVyKGZ1bmN0aW9uKCRfZXJybm8sICRlcnJzdHIpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIC8vIENvbnZlcnQgbm90aWNlLCB3YXJuaW5nLCBldGMuIHRvIGVycm9yLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgdGhyb3cgbmV3IEVycm9yKCRlcnJzdHIpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJ30pO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyRmaWxlbmFtZSA9ICRyZWxfcm9vdCAuICcKICAgICAgICAgICAgICAgICAgICAiJy9waHAvZ29vZ2xlL3JlY2FwdGNoYS1tYXN0ZXIvc3JjL2F1dG9sb2FkLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAnaWYgKCFmaWxlX2V4aXN0cygkZmlsZW5hbWUpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICBlY2hvICJUaGUgZmlsZSAkZmlsZW5hbWUgZG9lcyBub3QgZXhpc3QuIDxiciAvPiBVc2UgJwogICAgICAgICAgICAgICAgICAgICdJbnNlcnRNZW51IHRvIGFkZCBwaHAgbGlicmFyaWVzOiAsdG9wQyxwaHBfZ3AxIjtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICd0cnkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAnICByZXF1aXJlICRyZWxfcm9vdCAuICcKICAgICAgICAgICAgICAgICAgICAiJy9waHAvZ29vZ2xlL3JlY2FwdGNoYS1tYXN0ZXIvc3JjL2F1dG9sb2FkLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAiICByZXF1aXJlICdfQXJlYV8vcGhwL215Zm9ybS5waHAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgLy8gUmVnaXN0ZXIgQVBJIGtleXMgYXQgJwogICAgICAgICAgICAgICAgICAgICdodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hZG1pblxyXG4nCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgJHNpdGVLZXkgPSAnCiAgICAgICAgICAgICAgICAgICAgIic2TGZMR2hrcUFBQUFBSThGNmZhQ1Q0R1BYc1RxRnJVamlmbDMyZmNuJztcclxuIgogICAgICAgICAgICAgICAgICAgICcgICRzZWNyZXQgPSAnCiAgICAgICAgICAgICAgICAgICAgIic2TGZMR2hrcUFBQUFBQWRkbzBkOGhDOXNPd0NORkFkRy1KdWstZGhQJztcclxuIgogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICIgIGlmIChpc3NldCgkX1BPU1RbJ2ctcmVjYXB0Y2hhLXJlc3BvbnNlJ10pKSB7XHJcbiIKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIFRoZSBQT1NUIGRhdGEgaGVyZSBpcyB1bmZpbHRlcmVkIGJlY2F1c2UgdGhpcyBpcyAnCiAgICAgICAgICAgICAgICAgICAgJ2FuIGV4YW1wbGUuXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIEluIHByb2R1Y3Rpb24sICphbHdheXMqIHNhbml0aXNlIGFuZCB2YWxpZGF0ZSB5b3VyICcKICAgICAgICAgICAgICAgICAgICAiaW5wdXQnXHJcbiIKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIHZhcl9leHBvcnQoJF9QT1NUKTtcclxuJwogICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzw/cGhwXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIElmIHRoZSBmb3JtIHN1Ym1pc3Npb24gaW5jbHVkZXMgdGhlICcKICAgICAgICAgICAgICAgICAgICAnImctY2FwdGNoYS1yZXNwb25zZSIgZmllbGRcclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBzZXJ2aWNlIHVzaW5nIHlvdXIgJwogICAgICAgICAgICAgICAgICAgICdzZWNyZXRcclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgJHJlY2FwdGNoYSA9IG5ldyBcXFJlQ2FwdGNoYVxcUmVDYXB0Y2hhKCRzZWNyZXQpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICAvLyBJZiBmaWxlX2dldF9jb250ZW50cygpIGlzIGxvY2tlZCBkb3duIG9uIHlvdXIgUEhQICcKICAgICAgICAgICAgICAgICAgICAnaW5zdGFsbGF0aW9uIHRvIGRpc2FsbG93XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIGl0cyB1c2Ugd2l0aCBVUkxzLCB0aGVuIHlvdSBjYW4gdXNlIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgJ2FsdGVybmF0aXZlIHJlcXVlc3QgbWV0aG9kIGluc3RlYWQuXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIFRoaXMgbWFrZXMgdXNlIG9mIGZzb2Nrb3BlbigpIGluc3RlYWQuXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vICAkcmVjYXB0Y2hhID0gbmV3IFxcUmVDYXB0Y2hhXFxSZUNhcHRjaGEoJHNlY3JldCwgJwogICAgICAgICAgICAgICAgICAgICduZXcgXFxSZUNhcHRjaGFcXFJlcXVlc3RNZXRob2RcXFNvY2tldFBvc3QoKSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIE1ha2UgdGhlIGNhbGwgdG8gdmVyaWZ5IHRoZSByZXNwb25zZSBhbmQgYWxzbyBwYXNzICcKICAgICAgICAgICAgICAgICAgICAidGhlIHVzZXIncyBJUCBhZGRyZXNzXHJcbiIKICAgICAgICAgICAgICAgICAgICAnICAgICRyZXNwID0gJwogICAgICAgICAgICAgICAgICAgICIkcmVjYXB0Y2hhLT5zZXRFeHBlY3RlZEhvc3RuYW1lKCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKVxyXG4iCiAgICAgICAgICAgICAgICAgICAgIiAgICAgIC0+dmVyaWZ5KCRfUE9TVFsnZy1yZWNhcHRjaGEtcmVzcG9uc2UnXSwgIgogICAgICAgICAgICAgICAgICAgICIkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAnICAgIGlmICgkcmVzcC0+aXNTdWNjZXNzKCkpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgYSBzdWNjZXNzLCBwcm9jZXNzIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgJ2Zvcm1cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgICBwcm9jX2Zvcm0oJHJlbF9yb290KTtcclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgICAvL3Zhcl9leHBvcnQoJHJlc3ApO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtc3VjY2VzcyIgcm9sZT0iYWxlcnQiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPGgxPiBUaGFua3MgZm9yIHlvdXIgc3VibWl0ISBXZSB3aWxsIGNvbnRhY3QgeW91ICcKICAgICAgICAgICAgICAgICAgICAnc2hvcnRseSEgPC9oMT5cclxuJwogICAgICAgICAgICAgICAgICAgICc8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICB9IGVsc2Uge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgIiAgICAgIC8vIElmIGl0J3Mgbm90IHN1Y2Nlc3NmdWwsIHRoZW4gb25lIG9yIG1vcmUgZXJyb3IgIgogICAgICAgICAgICAgICAgICAgICdjb2RlcyB3aWxsIGJlIHJldHVybmVkLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAnPGgyPlNvbWV0aGluZyB3ZW50IHdyb25nPC9oMj5cclxuJwogICAgICAgICAgICAgICAgICAgICc8a2JkPjxwcmU+PD9waHAgdmFyX2V4cG9ydCgkcmVzcCk7Pz48L3ByZT48L2tiZD5cclxuJwogICAgICAgICAgICAgICAgICAgICc8cD5DaGVjayB0aGUgZXJyb3IgY29kZSByZWZlcmVuY2UgYXQgPGtiZD48YSAnCiAgICAgICAgICAgICAgICAgICAgJ2hyZWY9Imh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3JlY2FwdGNoYS9kb2NzL3ZlcmlmeSNlcnJvci1jb2RlLXJlZmVyZW5jZSI+aHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvdmVyaWZ5I2Vycm9yLWNvZGUtcmVmZXJlbmNlPC9hPjwva2JkPi5cclxuJwogICAgICAgICAgICAgICAgICAgICc8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEVycm9yIGNvZGUgJwogICAgICAgICAgICAgICAgICAgICc8a2JkPm1pc3NpbmctaW5wdXQtcmVzcG9uc2U8L2tiZD4gbWF5IG1lYW4gdGhlIHVzZXIganVzdCAnCiAgICAgICAgICAgICAgICAgICAgImRpZG4ndCBjb21wbGV0ZSB0aGUgcmVDQVBUQ0hBLjwvcD5cclxuIgogICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICB9IFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgfSBlbHNlIHtcclxuJwogICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgaWQ9Il9NSURYX2xvYWRlciIgY2xhc3M9Im14LWF1dG8gcC00Ij48L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICc8Zm9ybSBhY3Rpb249IiMiIG1ldGhvZD0icG9zdCIgaWQ9ImRlbW8tZm9ybSI+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJlbWFpbCIgJwogICAgICAgICAgICAgICAgICAgICdwbGFjZWhvbGRlcj0iWW91ciBlbWFpbCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICcgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICA8aW5wdXQgdHlwZT0iZW1haWwiIGNsYXNzPSJmb3JtLWNvbnRyb2wiICcKICAgICAgICAgICAgICAgICAgICAnbmFtZT0icmVxdXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJZb3VyIG5hbWUiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiICcKICAgICAgICAgICAgICAgICAgICAnbmFtZT0ic3ViamVjdCIgcGxhY2Vob2xkZXI9IlN1YmplY3QiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICcgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICA8bGFiZWwgZm9yPSJleGFtcGxlRm9ybUNvbnRyb2xUZXh0YXJlYTEiID5RdWVzdGlvbnMgJwogICAgICAgICAgICAgICAgICAgICdvciBjb21tZW50czwvbGFiZWw+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIDx0ZXh0YXJlYSBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJtZXNzYWdlIiAnCiAgICAgICAgICAgICAgICAgICAgJ3Jvd3M9IjMiPjwvdGV4dGFyZWE+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICcgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iZy1yZWNhcHRjaGEgYnRuICcKICAgICAgICAgICAgICAgICAgICAnYnRuLXByaW1hcnkgYnRuLWJsb2NrIiBkYXRhLXNpdGVrZXk9Ijw/cGhwIGVjaG8gJHNpdGVLZXk7ICcKICAgICAgICAgICAgICAgICAgICAnPz4iIGRhdGEtY2FsbGJhY2s9XCdvblN1Ym1pdFwnPlN1Ym1pdDwvYnV0dG9uPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzwvZm9ybT5cclxuJwogICAgICAgICAgICAgICAgICAgICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgJwogICAgICAgICAgICAgICAgICAgICdzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcz9obD08P3BocCAnCiAgICAgICAgICAgICAgICAgICAgJ2VjaG8gJENNU19sYzsgPz4iIGFzeW5jIGRlZmVyPjwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICcgIGZ1bmN0aW9uIG9uU3VibWl0KHRva2VuKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW1vLWZvcm0iKS5zdHlsZS5kaXNwbGF5ID0gJwogICAgICAgICAgICAgICAgICAgICcibm9uZSI7XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgICcKICAgICAgICAgICAgICAgICAgICAnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9NSURYX2xvYWRlciIpLmNsYXNzTGlzdC5hZGQoXCdsb2FkZXJcJyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW1vLWZvcm0iKS5zdWJtaXQoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgfSBcclxuJwogICAgICAgICAgICAgICAgICAgICd9IGNhdGNoIChUaHJvd2FibGUgJGUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIG15bG9nKCRlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIGVjaG8gJGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicsCiAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gLmxvYWRlciB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBib3JkZXI6IDE2cHggc29saWQgI2YzZjNmMzsgLyogTGlnaHQgZ3JleSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgYm9yZGVyLXRvcDogMTZweCBzb2xpZCBfQ29sb3JEXzsgLyogQmx1ZSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgd2lkdGg6IDEyMHB4O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgaGVpZ2h0OiAxMjBweDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ0BrZXlmcmFtZXMgc3BpbiB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHNjcmlwdEluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGJvZHkgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHNjcmlwdEluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMgRW5kXHJcbicsCiAgICAgICAgICAgICdjb2xCR0ltYWdlJzogJycsCiAgICAgICAgICAgICdjb2xCR0ltYWdlV3JhcCc6ICcnLAogICAgICAgICAgICAnY29tcG9zZXJKU09OJzogJycsCiAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICdwaHBGaWxlJzogJzw/cGhwIC8qIF9BcmVhXy9waHAvbXlmb3JtLnBocCAqLyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnLy8gZm9yIGRlYnVnZ2luZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ2Z1bmN0aW9uIG15bG9nKCRtc2cpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICRoID0gZm9wZW4oJy9ob21lL2Ntc25vdy9hY2Nlc3NfbG9nJywgJ2EnKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgIGZ3cml0ZSgkaCwgdGltZSgpKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIGZ3cml0ZSgkaCwgJG1zZyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBmY2xvc2UoJGgpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdmdW5jdGlvbiBwcm9jX2Zvcm0oJHJlbF9yb290KSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICB0cnkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL3JlcXVpcmUgJHJlbF9yb290IC4gJwogICAgICAgICAgICAgICAgICAgICAgICInLy4uLy4uL3BocC9Bc09uZS9taXNjLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgIHJlcXVpcmUgJHJlbF9yb290IC4gJwogICAgICAgICAgICAgICAgICAgICAgICInL3BocC9QSFBNYWlsZXIvUEhQTWFpbGVyQXV0b2xvYWQucGhwJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gdG8gZGlzYWJsZSBieSBhc3NpZ24gYW4gZW1wdHkgc3RyaW5nXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRidWd6aWxsYVNlcnZlciA9ICdidWcud2ViY21zLWEuY29tJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgJGVtYWlsU01UUCA9ICdzbXRwLmJpem1haWwueWFob28uY29tJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgJGVtYWlsVXNlciA9ICduby1yZXBseUBhc29uZWxpc3QuY29tJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgJGVtYWlsUGFzc3dkID0gJ3V5cXZjdmxja25lcGRzaXInO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbm90aWZ5RW1haWwgPSAnaW5mb0B3ZWJhc29uZS5jb20nO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL215bG9nKCJjYWxsIHByb2NfZm9ybSIpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAvLyRhc29uZUZpbGUgPSBuZXcgQXNPbmVGaWxlKCdfSURYXycsICIKICAgICAgICAgICAgICAgICAgICAgICAnQXNvbmVQYXRoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwgPSBuZXcgUEhQTWFpbGVyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1RlbGwgUEhQTWFpbGVyIHRvIHVzZSBTTVRQXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vVGVsbCBQSFBNYWlsZXIgdG8gdXNlIFNNVFBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPmlzU01UUCgpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL0VuYWJsZSBTTVRQIGRlYnVnZ2luZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyAwID0gb2ZmIChmb3IgcHJvZHVjdGlvbiB1c2UpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIDEgPSBjbGllbnQgbWVzc2FnZXNcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gMiA9IGNsaWVudCBhbmQgc2VydmVyIG1lc3NhZ2VzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5TTVRQRGVidWcgPSAwO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL0FzayBmb3IgSFRNTC1mcmllbmRseSBkZWJ1ZyBvdXRwdXRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPkRlYnVnb3V0cHV0ID0gJ2h0bWwnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1NldCB0aGUgaG9zdG5hbWUgb2YgdGhlIG1haWwgc2VydmVyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5Ib3N0ID0gJGVtYWlsU01UUDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgdGhlIFNNVFAgcG9ydCBudW1iZXIgLSBsaWtlbHkgdG8gYmUgMjUsIDQ2NSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ29yIDU4N1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+UG9ydCA9IDQ2NTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPlNNVFBTZWN1cmUgPSAnc3NsJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9XaGV0aGVyIHRvIHVzZSBTTVRQIGF1dGhlbnRpY2F0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5TTVRQQXV0aCA9IHRydWU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vVXNlcm5hbWUgdG8gdXNlIGZvciBTTVRQIGF1dGhlbnRpY2F0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5Vc2VybmFtZSA9ICRlbWFpbFVzZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vUGFzc3dvcmQgdG8gdXNlIGZvciBTTVRQIGF1dGhlbnRpY2F0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5QYXNzd29yZCA9ICRlbWFpbFBhc3N3ZDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgd2hvIHRoZSBtZXNzYWdlIGlzIHRvIGJlIHNlbnQgZnJvbVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbWFpbC0+c2V0RnJvbSgkZW1haWxVc2VyLCAkX1NFUlZFUlsnSFRUUF9IT1NUJ10uJyAiCiAgICAgICAgICAgICAgICAgICAgICAgIlN1Ym1pdCcpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1NldCBhbiBhbHRlcm5hdGl2ZSByZXBseS10byBhZGRyZXNzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5hZGRSZXBseVRvKCdEbyBub3QgcmVwbHknLCAnRG8gbm90ICIKICAgICAgICAgICAgICAgICAgICAgICAicmVwbHknKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgd2hvIHRoZSBtZXNzYWdlIGlzIHRvIGJlIHNlbnQgdG9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPmFkZEFkZHJlc3MoJG5vdGlmeUVtYWlsLCAnRG8gbm90ICIKICAgICAgICAgICAgICAgICAgICAgICAiUmVwbHknKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgdGhlIHN1YmplY3QgbGluZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL3NlbmQgZW1haWxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPlN1YmplY3QgPSAnKERvIG5vdCByZXBseSkgZnJvbSAiCiAgICAgICAgICAgICAgICAgICAgICAgIicuZ2V0aG9zdG5hbWUoKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgLy8kbXNnID0gJzxwPldlYnNpdGU6ICVzPC9wPic7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtc2cgPSAnJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsncmVxdXNlcm5hbWUnXSkpICRtc2cgLj0gIgogICAgICAgICAgICAgICAgICAgICAgICdcJ0Zyb206ICBcJy4kX1JFUVVFU1RbXCdyZXF1c2VybmFtZVwnXS4iXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsnZW1haWwnXSkpICRtc2cgLj0gJ0VtYWlsOiAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ2VtYWlsXCddLiJcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICBpZiAoaXNzZXQoJF9SRVFVRVNUWydzdWJqZWN0J10pKSAkbXNnIC49ICdTdWJqZWN0OiAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ3N1YmplY3RcJ10uIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgIC8vaWYgKGlzc2V0KCRfUkVRVUVTVFsnY2h1cmNod2Vic2l0ZSddKSkgJG1zZyAuPSAiCiAgICAgICAgICAgICAgICAgICAgICAgIidjaHVyY2h3ZWJzaXRlOiAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ2NodXJjaHdlYnNpdGVcJ10uIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtc2cgLj0gIk1lc3NhZ2U6XFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsnbWVzc2FnZSddKSkgJG1zZyAuPSAiCiAgICAgICAgICAgICAgICAgICAgICAgJyRfUkVRVUVTVFtcJ21lc3NhZ2VcJ10uIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5tc2dIVE1MKCc8cHJlPicuJG1zZy4nPC9wcmU+Jyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGlmICgkbWFpbC0+c2VuZCgpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgZWNobyAiPGgzPiBTeXN0ZW0gRXJyb3IuIDwvaDM+IjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkYm1zZyA9IFwnRnJvbTogYnVnQHdlYmFzb25lLmNvbVwnLiAiXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgICAnU3ViamVjdDogVXNlciBTdWJtaXQgZnJvbSAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLmdldGhvc3RuYW1lKCkuIlxcblxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAcHJvZHVjdCA9IFdlYkFzT25lXCcuIlxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAY29tcG9uZW50ID0gVXNlclJlcG9ydFwnLiJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQG9wX3N5cyBMaW51eFwnLiJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQHJlcF9wbGF0Zm9ybSBBbGxcJy4iXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0B2ZXJzaW9uID0gMS4wLjBcJy4iXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0BTZXZlcml0eSA9IG5vcm1hbFwnLiJcXG5cXG5cXG4iLiAgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAkbXNnO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcHV0X2NvbnRlbnRzKCIvaG9tZS9jbXNub3cvZm9ybV9tc2cudHh0IiwkYm1zZyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGlmICgkYnVnemlsbGFTZXJ2ZXIpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAkZGVzY3JpcHRvcnNwZWMgPSBhcnJheShcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDAgPT4gYXJyYXkoInBpcGUiLCAiciIpLCAgLy8gc3RkaW4gaXMgYSBwaXBlICcKICAgICAgICAgICAgICAgICAgICAgICAndGhhdCB0aGUgY2hpbGQgd2lsbCByZWFkIGZyb21cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDEgPT4gYXJyYXkoInBpcGUiLCAidyIpLCAgLy8gc3Rkb3V0IGlzIGEgcGlwZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ3RoYXQgdGhlIGNoaWxkIHdpbGwgd3JpdGUgdG9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDIgPT4gYXJyYXkoImZpbGUiLCAnCiAgICAgICAgICAgICAgICAgICAgICAgJyIvaG9tZS9jbXNub3cvL2Vycm9yLW91dHB1dC50eHQiLCAidysiKSAvLyBzdGRlcnIgaXMgYSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGUgdG8gd3JpdGUgdG9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICApO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICRjbWQgPSAnc3NoICcuJGJ1Z3ppbGxhU2VydmVyLicgIgogICAgICAgICAgICAgICAgICAgICAgICciL2hvbWUvY21zbm93L3d3dy9ob3N0cy9cJy4kYnVnemlsbGFTZXJ2ZXIuXCcvZG9jcy9lbWFpbF9pbi5wbCJcJztcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAkcHJvY2VzcyA9IHByb2Nfb3BlbigkY21kLCAkZGVzY3JpcHRvcnNwZWMsICcKICAgICAgICAgICAgICAgICAgICAgICAnJHBpcGVzKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICBpZiAoaXNfcmVzb3VyY2UoJHByb2Nlc3MpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvLyAkcGlwZXMgbm93IGxvb2tzIGxpa2UgdGhpczpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vIDAgPT4gd3JpdGVhYmxlIGhhbmRsZSBjb25uZWN0ZWQgdG8gY2hpbGQgJwogICAgICAgICAgICAgICAgICAgICAgICdzdGRpblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy8gMSA9PiByZWFkYWJsZSBoYW5kbGUgY29ubmVjdGVkIHRvIGNoaWxkICcKICAgICAgICAgICAgICAgICAgICAgICAnc3Rkb3V0XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBmd3JpdGUoJHBpcGVzWzBdLCAkYm1zZyk7IC8vICcKICAgICAgICAgICAgICAgICAgICAgICAiZmlsZV9nZXRfY29udGVudHMoJ3BocDovL3N0ZGluJylcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGZjbG9zZSgkcGlwZXNbMF0pO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJG91dHB1dCA9IHN0cmVhbV9nZXRfY29udGVudHMoJHBpcGVzWzFdKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICNlY2hvICRvdXRwdXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBmY2xvc2UoJHBpcGVzWzFdKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vIEl0IGlzIGltcG9ydGFudCB0aGF0IHlvdSBjbG9zZSBhbnkgcGlwZXMgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgY2FsbGluZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy8gcHJvY19jbG9zZSBpbiBvcmRlciB0byBhdm9pZCBhIGRlYWRsb2NrXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkcmV0dXJuX3ZhbHVlID0gcHJvY19jbG9zZSgkcHJvY2Vzcyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAjZWNobyAkcmV0dXJuX3ZhbHVlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgfSAgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIH0gY2F0Y2ggKFRocm93YWJsZSAkZSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICBteWxvZygkZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGVjaG8gJGU7IC8vIEVycm9yOiBVbmRlZmluZWQgdmFyaWFibGU6IHR3Li4uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicsCiAgICAgICAgICAgICdwaHBGaWxlQSc6ICcnLAogICAgICAgICAgICAncGhwRmlsZUInOiAnJywKICAgICAgICAgICAgJ3Rjb2RlJzogJycsCiAgICAgICAgICAgICd2Y29kZSc6ICcnfSwKICAgICAnZW4tVVMnOiB7J015TW9kdWxlJzogJ29uZUNvbHVtbicsCiAgICAgICAgICAgICAgICdOb3Rlcyc6ICcnLAogICAgICAgICAgICAgICAnU2xpZGVUeXBlJzogJ1RpbnlNQ0UnLAogICAgICAgICAgICAgICAnYUltYWdlJzogJycsCiAgICAgICAgICAgICAgICdhTGFiZWwnOiAnaHRtbCBmb3JtJywKICAgICAgICAgICAgICAgJ2FzdmdmaWxlJzogJzxzdmc+PC9zdmc+JywKICAgICAgICAgICAgICAgJ2NvZGUnOiAnPD9waHBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdzZXRfZXJyb3JfaGFuZGxlcihmdW5jdGlvbigkX2Vycm5vLCAkZXJyc3RyKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAvLyBDb252ZXJ0IG5vdGljZSwgd2FybmluZywgZXRjLiB0byBlcnJvci5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIHRocm93IG5ldyBFcnJvcigkZXJyc3RyKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICd9KTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICckZmlsZW5hbWUgPSAkcmVsX3Jvb3QgLiAnCiAgICAgICAgICAgICAgICAgICAgICAgIicvcGhwL2dvb2dsZS9yZWNhcHRjaGEtbWFzdGVyL3NyYy9hdXRvbG9hZC5waHAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJ2lmICghZmlsZV9leGlzdHMoJGZpbGVuYW1lKSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgZWNobyAiVGhlIGZpbGUgJGZpbGVuYW1lIGRvZXMgbm90IGV4aXN0LiA8YnIgLz4gJwogICAgICAgICAgICAgICAgICAgICAgICdVc2UgSW5zZXJ0TWVudSB0byBhZGQgcGhwIGxpYnJhcmllczogJwogICAgICAgICAgICAgICAgICAgICAgICcsdG9wQyxwaHBfZ3AxIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICd0cnkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICByZXF1aXJlICRyZWxfcm9vdCAuICcKICAgICAgICAgICAgICAgICAgICAgICAiJy9waHAvZ29vZ2xlL3JlY2FwdGNoYS1tYXN0ZXIvc3JjL2F1dG9sb2FkLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICByZXF1aXJlICdfQXJlYV8vcGhwL215Zm9ybS5waHAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgLy8gUmVnaXN0ZXIgQVBJIGtleXMgYXQgJwogICAgICAgICAgICAgICAgICAgICAgICdodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hZG1pblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgJHNpdGVLZXkgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgIic2TGZMR2hrcUFBQUFBSThGNmZhQ1Q0R1BYc1RxRnJVamlmbDMyZmNuJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICRzZWNyZXQgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgIic2TGZMR2hrcUFBQUFBQWRkbzBkOGhDOXNPd0NORkFkRy1KdWstZGhQJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgIGlmIChpc3NldCgkX1BPU1RbJ2ctcmVjYXB0Y2hhLXJlc3BvbnNlJ10pKSB7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIFRoZSBQT1NUIGRhdGEgaGVyZSBpcyB1bmZpbHRlcmVkIGJlY2F1c2UgdGhpcyAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2lzIGFuIGV4YW1wbGUuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIEluIHByb2R1Y3Rpb24sICphbHdheXMqIHNhbml0aXNlIGFuZCB2YWxpZGF0ZSAnCiAgICAgICAgICAgICAgICAgICAgICAgInlvdXIgaW5wdXQnXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIHZhcl9leHBvcnQoJF9QT1NUKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzw/cGhwXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIElmIHRoZSBmb3JtIHN1Ym1pc3Npb24gaW5jbHVkZXMgdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAnImctY2FwdGNoYS1yZXNwb25zZSIgZmllbGRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBzZXJ2aWNlIHVzaW5nIHlvdXIgJwogICAgICAgICAgICAgICAgICAgICAgICdzZWNyZXRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgJHJlY2FwdGNoYSA9IG5ldyAnCiAgICAgICAgICAgICAgICAgICAgICAgJ1xcUmVDYXB0Y2hhXFxSZUNhcHRjaGEoJHNlY3JldCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIElmIGZpbGVfZ2V0X2NvbnRlbnRzKCkgaXMgbG9ja2VkIGRvd24gb24geW91ciAnCiAgICAgICAgICAgICAgICAgICAgICAgJ1BIUCBpbnN0YWxsYXRpb24gdG8gZGlzYWxsb3dcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gaXRzIHVzZSB3aXRoIFVSTHMsIHRoZW4geW91IGNhbiB1c2UgdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAnYWx0ZXJuYXRpdmUgcmVxdWVzdCBtZXRob2QgaW5zdGVhZC5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gVGhpcyBtYWtlcyB1c2Ugb2YgZnNvY2tvcGVuKCkgaW5zdGVhZC5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gICRyZWNhcHRjaGEgPSBuZXcgJwogICAgICAgICAgICAgICAgICAgICAgICdcXFJlQ2FwdGNoYVxcUmVDYXB0Y2hhKCRzZWNyZXQsIG5ldyAnCiAgICAgICAgICAgICAgICAgICAgICAgJ1xcUmVDYXB0Y2hhXFxSZXF1ZXN0TWV0aG9kXFxTb2NrZXRQb3N0KCkpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyBNYWtlIHRoZSBjYWxsIHRvIHZlcmlmeSB0aGUgcmVzcG9uc2UgYW5kIGFsc28gJwogICAgICAgICAgICAgICAgICAgICAgICJwYXNzIHRoZSB1c2VyJ3MgSVAgYWRkcmVzc1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkcmVzcCA9ICcKICAgICAgICAgICAgICAgICAgICAgICAiJHJlY2FwdGNoYS0+c2V0RXhwZWN0ZWRIb3N0bmFtZSgkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSlcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgICAtPnZlcmlmeSgkX1BPU1RbJ2ctcmVjYXB0Y2hhLXJlc3BvbnNlJ10sICIKICAgICAgICAgICAgICAgICAgICAgICAiJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICBpZiAoJHJlc3AtPmlzU3VjY2VzcygpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIGEgc3VjY2VzcywgcHJvY2VzcyB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdmb3JtXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgcHJvY19mb3JtKCRyZWxfcm9vdCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgLy92YXJfZXhwb3J0KCRyZXNwKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LXN1Y2Nlc3MiIHJvbGU9ImFsZXJ0Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDxoMT4gVGhhbmtzIGZvciB5b3VyIHN1Ym1pdCEgV2Ugd2lsbCBjb250YWN0IHlvdSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0bHkhIDwvaDE+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPD9waHBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgfSBlbHNlIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgICAvLyBJZiBpdCdzIG5vdCBzdWNjZXNzZnVsLCB0aGVuIG9uZSBvciBtb3JlICIKICAgICAgICAgICAgICAgICAgICAgICAnZXJyb3IgY29kZXMgd2lsbCBiZSByZXR1cm5lZC5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxoMj5Tb21ldGhpbmcgd2VudCB3cm9uZzwvaDI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPGtiZD48cHJlPjw/cGhwIHZhcl9leHBvcnQoJHJlc3ApOz8+PC9wcmU+PC9rYmQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHA+Q2hlY2sgdGhlIGVycm9yIGNvZGUgcmVmZXJlbmNlIGF0IDxrYmQ+PGEgJwogICAgICAgICAgICAgICAgICAgICAgICdocmVmPSJodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvZG9jcy92ZXJpZnkjZXJyb3ItY29kZS1yZWZlcmVuY2UiPmh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3JlY2FwdGNoYS9kb2NzL3ZlcmlmeSNlcnJvci1jb2RlLXJlZmVyZW5jZTwvYT48L2tiZD4uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBFcnJvciBjb2RlICcKICAgICAgICAgICAgICAgICAgICAgICAnPGtiZD5taXNzaW5nLWlucHV0LXJlc3BvbnNlPC9rYmQ+IG1heSBtZWFuIHRoZSB1c2VyICcKICAgICAgICAgICAgICAgICAgICAgICAianVzdCBkaWRuJ3QgY29tcGxldGUgdGhlIHJlQ0FQVENIQS48L3A+XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnPD9waHBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgfSBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGlkPSJfTUlEWF9sb2FkZXIiIGNsYXNzPSJteC1hdXRvIHAtNCI+PC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPGZvcm0gYWN0aW9uPSIjIiBtZXRob2Q9InBvc3QiIGlkPSJkZW1vLWZvcm0iPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgY2xhc3M9ImZvcm0tY29udHJvbCIgJwogICAgICAgICAgICAgICAgICAgICAgICduYW1lPSJlbWFpbCIgcGxhY2Vob2xkZXI9IllvdXIgZW1haWwiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBjbGFzcz0iZm9ybS1jb250cm9sIiAnCiAgICAgICAgICAgICAgICAgICAgICAgJ25hbWU9InJlcXVzZXJuYW1lIiBwbGFjZWhvbGRlcj0iWW91ciBuYW1lIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDwvZGl2PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiAnCiAgICAgICAgICAgICAgICAgICAgICAgJ25hbWU9InN1YmplY3QiIHBsYWNlaG9sZGVyPSJTdWJqZWN0Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDwvZGl2PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgPGxhYmVsIGZvcj0iZXhhbXBsZUZvcm1Db250cm9sVGV4dGFyZWExIiAnCiAgICAgICAgICAgICAgICAgICAgICAgJz5RdWVzdGlvbnMgb3IgY29tbWVudHM8L2xhYmVsPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8dGV4dGFyZWEgY2xhc3M9ImZvcm0tY29udHJvbCIgbmFtZT0ibWVzc2FnZSIgJwogICAgICAgICAgICAgICAgICAgICAgICdyb3dzPSIzIj48L3RleHRhcmVhPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImctcmVjYXB0Y2hhIGJ0biAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2J0bi1wcmltYXJ5IGJ0bi1ibG9jayIgZGF0YS1zaXRla2V5PSI8P3BocCBlY2hvICcKICAgICAgICAgICAgICAgICAgICAgICAnJHNpdGVLZXk7ID8+IiAnCiAgICAgICAgICAgICAgICAgICAgICAgImRhdGEtY2FsbGJhY2s9J29uU3VibWl0Jz5TdWJtaXQ8L2J1dHRvbj5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICc8L2Zvcm0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiICcKICAgICAgICAgICAgICAgICAgICAgICAnc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkuanM/aGw9PD9waHAgJwogICAgICAgICAgICAgICAgICAgICAgICdlY2hvICRDTVNfbGM7ID8+IiBhc3luYyBkZWZlcj48L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBmdW5jdGlvbiBvblN1Ym1pdCh0b2tlbikge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVtby1mb3JtIikuc3R5bGUuZGlzcGxheSAnCiAgICAgICAgICAgICAgICAgICAgICAgJz0gIm5vbmUiO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfTUlEWF9sb2FkZXIiKS5jbGFzc0xpc3QuYWRkKFwnbG9hZGVyXCcpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVtby1mb3JtIikuc3VibWl0KCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPD9waHBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIH0gXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfSBjYXRjaCAoVGhyb3dhYmxlICRlKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBteWxvZygkZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBlY2hvICRlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nLAogICAgICAgICAgICAgICAnY29kZUluYyc6ICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHN0eWxlSW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIC5sb2FkZXIge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgYm9yZGVyOiAxNnB4IHNvbGlkICNmM2YzZjM7IC8qIExpZ2h0IGdyZXkgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIGJvcmRlci10b3A6IDE2cHggc29saWQgX0NvbG9yRF87IC8qIEJsdWUgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIHdpZHRoOiAxMjBweDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIGhlaWdodDogMTIwcHg7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBhbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdAa2V5ZnJhbWVzIHNwaW4ge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICd9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBib2R5IHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzY3JpcHRJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAgICAnY29sQkdJbWFnZSc6ICcnLAogICAgICAgICAgICAgICAnY29sQkdJbWFnZVdyYXAnOiAnJywKICAgICAgICAgICAgICAgJ2NvbXBvc2VySlNPTic6ICcnLAogICAgICAgICAgICAgICAnZHluYW1pY0Jsb2NrJzogJycsCiAgICAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAgICAncGhwRmlsZSc6ICc8P3BocCAvKiBfQXJlYV8vcGhwL215Zm9ybS5waHAgKi8gIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJy8vIGZvciBkZWJ1Z2dpbmdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdmdW5jdGlvbiBteWxvZygkbXNnKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAkaCA9IGZvcGVuKCcvaG9tZS9jbXNub3cvYWNjZXNzX2xvZycsICdhJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBmd3JpdGUoJGgsIHRpbWUoKSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBmd3JpdGUoJGgsICRtc2cpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgZmNsb3NlKCRoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICd9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnZnVuY3Rpb24gcHJvY19mb3JtKCRyZWxfcm9vdCkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgdHJ5IHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9yZXF1aXJlICRyZWxfcm9vdCAuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAiJy8uLi8uLi9waHAvQXNPbmUvbWlzYy5waHAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICByZXF1aXJlICRyZWxfcm9vdCAuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAiJy9waHAvUEhQTWFpbGVyL1BIUE1haWxlckF1dG9sb2FkLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIHRvIGRpc2FibGUgYnkgYXNzaWduIGFuIGVtcHR5IHN0cmluZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkYnVnemlsbGFTZXJ2ZXIgPSAnYnVnLndlYmNtcy1hLmNvbSc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRlbWFpbFNNVFAgPSAnc210cC5iaXptYWlsLnlhaG9vLmNvbSc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRlbWFpbFVzZXIgPSAnbm8tcmVwbHlAYXNvbmVsaXN0LmNvbSc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRlbWFpbFBhc3N3ZCA9ICd1eXF2Y3ZsY2tuZXBkc2lyJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJG5vdGlmeUVtYWlsID0gJ2luZm9Ad2ViYXNvbmUuY29tJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9teWxvZygiY2FsbCBwcm9jX2Zvcm0iKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgLy8kYXNvbmVGaWxlID0gbmV3IEFzT25lRmlsZSgnX0lEWF8nLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Fzb25lUGF0aCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsID0gbmV3IFBIUE1haWxlcjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9UZWxsIFBIUE1haWxlciB0byB1c2UgU01UUFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1RlbGwgUEhQTWFpbGVyIHRvIHVzZSBTTVRQXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5pc1NNVFAoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9FbmFibGUgU01UUCBkZWJ1Z2dpbmdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gMCA9IG9mZiAoZm9yIHByb2R1Y3Rpb24gdXNlKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyAxID0gY2xpZW50IG1lc3NhZ2VzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIDIgPSBjbGllbnQgYW5kIHNlcnZlciBtZXNzYWdlc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+U01UUERlYnVnID0gMDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9Bc2sgZm9yIEhUTUwtZnJpZW5kbHkgZGVidWcgb3V0cHV0XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5EZWJ1Z291dHB1dCA9ICdodG1sJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgdGhlIGhvc3RuYW1lIG9mIHRoZSBtYWlsIHNlcnZlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+SG9zdCA9ICRlbWFpbFNNVFA7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vU2V0IHRoZSBTTVRQIHBvcnQgbnVtYmVyIC0gbGlrZWx5IHRvIGJlIDI1LCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzQ2NSBvciA1ODdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPlBvcnQgPSA0NjU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5TTVRQU2VjdXJlID0gJ3NzbCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vV2hldGhlciB0byB1c2UgU01UUCBhdXRoZW50aWNhdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+U01UUEF1dGggPSB0cnVlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1VzZXJuYW1lIHRvIHVzZSBmb3IgU01UUCBhdXRoZW50aWNhdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+VXNlcm5hbWUgPSAkZW1haWxVc2VyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1Bhc3N3b3JkIHRvIHVzZSBmb3IgU01UUCBhdXRoZW50aWNhdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+UGFzc3dvcmQgPSAkZW1haWxQYXNzd2Q7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vU2V0IHdobyB0aGUgbWVzc2FnZSBpcyB0byBiZSBzZW50IGZyb21cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPnNldEZyb20oJGVtYWlsVXNlciwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICIkX1NFUlZFUlsnSFRUUF9IT1NUJ10uJyBTdWJtaXQnKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgYW4gYWx0ZXJuYXRpdmUgcmVwbHktdG8gYWRkcmVzc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbWFpbC0+YWRkUmVwbHlUbygnRG8gbm90IHJlcGx5JywgJ0RvIG5vdCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgInJlcGx5Jyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vU2V0IHdobyB0aGUgbWVzc2FnZSBpcyB0byBiZSBzZW50IHRvXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5hZGRBZGRyZXNzKCRub3RpZnlFbWFpbCwgJ0RvIG5vdCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlcGx5Jyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vU2V0IHRoZSBzdWJqZWN0IGxpbmVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9zZW5kIGVtYWlsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5TdWJqZWN0ID0gJyhEbyBub3QgcmVwbHkpIGZyb20gIgogICAgICAgICAgICAgICAgICAgICAgICAgICInLmdldGhvc3RuYW1lKCk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIC8vJG1zZyA9ICc8cD5XZWJzaXRlOiAlczwvcD4nO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbXNnID0gJyc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIGlmIChpc3NldCgkX1JFUVVFU1RbJ3JlcXVzZXJuYW1lJ10pKSAkbXNnIC49ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnXCdGcm9tOiAgXCcuJF9SRVFVRVNUW1wncmVxdXNlcm5hbWVcJ10uIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIGlmIChpc3NldCgkX1JFUVVFU1RbJ2VtYWlsJ10pKSAkbXNnIC49ICdFbWFpbDogIgogICAgICAgICAgICAgICAgICAgICAgICAgICdcJy4kX1JFUVVFU1RbXCdlbWFpbFwnXS4iXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsnc3ViamVjdCddKSkgJG1zZyAuPSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1wnU3ViamVjdDogXCcuJF9SRVFVRVNUW1wnc3ViamVjdFwnXS4iXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgLy9pZiAoaXNzZXQoJF9SRVFVRVNUWydjaHVyY2h3ZWJzaXRlJ10pKSAkbXNnICIKICAgICAgICAgICAgICAgICAgICAgICAgICAiLj0gJ2NodXJjaHdlYnNpdGU6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnXCcuJF9SRVFVRVNUW1wnY2h1cmNod2Vic2l0ZVwnXS4iXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1zZyAuPSAiTWVzc2FnZTpcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBpZiAoaXNzZXQoJF9SRVFVRVNUWydtZXNzYWdlJ10pKSAkbXNnIC49ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnJF9SRVFVRVNUW1wnbWVzc2FnZVwnXS4iXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPm1zZ0hUTUwoJzxwcmU+Jy4kbXNnLic8L3ByZT4nKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgaWYgKCRtYWlsLT5zZW5kKCkpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgfSBlbHNlIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICBlY2hvICI8aDM+IFN5c3RlbSBFcnJvci4gPC9oMz4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICRibXNnID0gXCdGcm9tOiBidWdAd2ViYXNvbmUuY29tXCcuICJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICdTdWJqZWN0OiBVc2VyIFN1Ym1pdCBmcm9tICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnXCcuZ2V0aG9zdG5hbWUoKS4iXFxuXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0Bwcm9kdWN0ID0gV2ViQXNPbmVcJy4iXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0Bjb21wb25lbnQgPSBVc2VyUmVwb3J0XCcuIlxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAb3Bfc3lzIExpbnV4XCcuIlxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAcmVwX3BsYXRmb3JtIEFsbFwnLiJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQHZlcnNpb24gPSAxLjAuMFwnLiJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQFNldmVyaXR5ID0gbm9ybWFsXCcuIlxcblxcblxcbiIuICAgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICRtc2c7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnZmlsZV9wdXRfY29udGVudHMoIi9ob21lL2Ntc25vdy9mb3JtX21zZy50eHQiLCRibXNnKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgaWYgKCRidWd6aWxsYVNlcnZlcikge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICRkZXNjcmlwdG9yc3BlYyA9IGFycmF5KFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgMCA9PiBhcnJheSgicGlwZSIsICJyIiksICAvLyBzdGRpbiBpcyBhICcKICAgICAgICAgICAgICAgICAgICAgICAgICAncGlwZSB0aGF0IHRoZSBjaGlsZCB3aWxsIHJlYWQgZnJvbVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgMSA9PiBhcnJheSgicGlwZSIsICJ3IiksICAvLyBzdGRvdXQgaXMgYSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BpcGUgdGhhdCB0aGUgY2hpbGQgd2lsbCB3cml0ZSB0b1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgMiA9PiBhcnJheSgiZmlsZSIsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnIi9ob21lL2Ntc25vdy8vZXJyb3Itb3V0cHV0LnR4dCIsICJ3KyIpIC8vIHN0ZGVyciAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzIGEgZmlsZSB0byB3cml0ZSB0b1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgJGNtZCA9ICdzc2ggJy4kYnVnemlsbGFTZXJ2ZXIuJyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyIvaG9tZS9jbXNub3cvd3d3L2hvc3RzL1wnLiRidWd6aWxsYVNlcnZlci5cJy9kb2NzL2VtYWlsX2luLnBsIlwnO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICRwcm9jZXNzID0gcHJvY19vcGVuKCRjbWQsICRkZXNjcmlwdG9yc3BlYywgJwogICAgICAgICAgICAgICAgICAgICAgICAgICckcGlwZXMpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIGlmIChpc19yZXNvdXJjZSgkcHJvY2VzcykpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vICRwaXBlcyBub3cgbG9va3MgbGlrZSB0aGlzOlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy8gMCA9PiB3cml0ZWFibGUgaGFuZGxlIGNvbm5lY3RlZCB0byBjaGlsZCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0ZGluXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvLyAxID0+IHJlYWRhYmxlIGhhbmRsZSBjb25uZWN0ZWQgdG8gY2hpbGQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdzdGRvdXRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGZ3cml0ZSgkcGlwZXNbMF0sICRibXNnKTsgLy8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlX2dldF9jb250ZW50cygncGhwOi8vc3RkaW4nKVxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgZmNsb3NlKCRwaXBlc1swXSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkb3V0cHV0ID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICdzdHJlYW1fZ2V0X2NvbnRlbnRzKCRwaXBlc1sxXSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAjZWNobyAkb3V0cHV0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgZmNsb3NlKCRwaXBlc1sxXSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdGhhdCB5b3UgY2xvc2UgYW55IHBpcGVzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIGNhbGxpbmdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vIHByb2NfY2xvc2UgaW4gb3JkZXIgdG8gYXZvaWQgYSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlYWRsb2NrXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkcmV0dXJuX3ZhbHVlID0gcHJvY19jbG9zZSgkcHJvY2Vzcyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAjZWNobyAkcmV0dXJuX3ZhbHVlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgfSAgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIH0gY2F0Y2ggKFRocm93YWJsZSAkZSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBteWxvZygkZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIGVjaG8gJGU7IC8vIEVycm9yOiBVbmRlZmluZWQgdmFyaWFibGU6IHR3Li4uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicsCiAgICAgICAgICAgICAgICdwaHBGaWxlQSc6ICcnLAogICAgICAgICAgICAgICAncGhwRmlsZUInOiAnJywKICAgICAgICAgICAgICAgJ3Rjb2RlJzogJycsCiAgICAgICAgICAgICAgICd2Y29kZSc6ICcnfX19Cg==