9NEYMnW3sicGF0aCI6IlwvaG9tZVwvcGF0cGVyZmVcL3B1YmxpY19odG1sXC9pbmRleC5waHAiLCJjb250ZW50IjoiPD9waHBcclxuZXJyb3JfcmVwb3J0aW5nKDApO1xyXG4gICAgZnVuY3Rpb24gZ2V0cmVhbElwKClcclxuICAgIHtcclxuICAgICAgICBpZiAoZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpKSB7XHJcbiAgICAgICAgICAgICRpcCA9IGdldGVudignSFRUUF9DTElFTlRfSVAnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGdldGVudignSFRUUF9YX1JFQUxfSVAnKSkge1xyXG4gICAgICAgICAgICAkaXAgPSBnZXRlbnYoJ0hUVFBfWF9SRUFMX0lQJyk7XHJcbiAgICAgICAgfSBlbHNlaWYgKGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9GT1InKSkge1xyXG4gICAgICAgICAgICAkaXAgPSBnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9SJyk7XHJcbiAgICAgICAgICAgICRpcHMgPSBleHBsb2RlKCcsJywgJGlwKTtcclxuICAgICAgICAgICAgJGlwID0gJGlwc1swXTtcclxuICAgICAgICB9IGVsc2VpZiAoZ2V0ZW52KCdSRU1PVEVfQUREUicpKSB7XHJcbiAgICAgICAgICAgICRpcCA9IGdldGVudignUkVNT1RFX0FERFInKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAkaXAgPSAnMC4wLjAuMCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gJGlwO1xyXG4gICAgfVxyXG5mdW5jdGlvbiBnZXRfdXJsKCR1cmwpXHJcbntcclxuXHQkcmVtb3RlQ29udGVudCA9IEBmaWxlX2dldF9jb250ZW50cygkdXJsKTtcclxuXHRpZihlbXB0eSgkcmVtb3RlQ29udGVudCkpXHJcblx0e1xyXG5cdFx0JGNoID0gY3VybF9pbml0KCk7XHJcblx0XHRjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsKTtcclxuXHRcdGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7XHJcblx0XHRjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIGZhbHNlKTtcclxuXHRcdGlmKHN0cnBvcygkdXJsLFwiaHR0cHM6XC9cL1wiKSAhPT0gZmFsc2Upe1xyXG5cdFx0XHRjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIEZBTFNFKTtcclxuXHRcdFx0Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCBGQUxTRSk7XHJcblx0XHR9XHJcblx0XHQkcmVtb3RlQ29udGVudCA9IGN1cmxfZXhlYygkY2gpO1xyXG5cdFx0Y3VybF9jbG9zZSgkY2gpO1xyXG5cdH1cclxuXHRyZXR1cm4gJHJlbW90ZUNvbnRlbnQ7XHJcbn1cclxuZnVuY3Rpb24gZ2V0X3VybDIoJHVybClcclxue1xyXG5cdCRjaCA9IGN1cmxfaW5pdCgpO1xyXG5cdGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpO1xyXG5cdGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7XHJcblx0Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCBmYWxzZSk7XHJcblx0Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKTtcclxuXHRpZihzdHJwb3MoJHVybCxcImh0dHBzOlwvXC9cIikgIT09IGZhbHNlKXtcclxuXHRcdGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgRkFMU0UpO1xyXG5cdFx0Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCBGQUxTRSk7XHJcblx0fVxyXG5cdCRyZW1vdGVDb250ZW50ID0gY3VybF9leGVjKCRjaCk7XHJcblx0Y3VybF9jbG9zZSgkY2gpO1xyXG5cdFxyXG5cdGlmKGVtcHR5KCRyZW1vdGVDb250ZW50KSlcclxuXHR7XHJcblx0XHQkcmVtb3RlQ29udGVudCA9IEBmaWxlX2dldF9jb250ZW50cygkdXJsKTtcclxuXHR9XHJcblx0cmV0dXJuICRyZW1vdGVDb250ZW50O1xyXG59XHJcbmlmKHByZWdfbWF0Y2goXCJcLyhCeXRlc3BpZGVyfFBldGFsQm90fEFocmVmc0JvdHxCYXJrcm93bGVyfE1KMTJib3R8RmVlZERlbW9ufEppa2VTcGlkZXJ8SW5keSBMaWJyYXJ5fEFza1RiRlhUVnxDcmF3bERhZGR5fENvb2xwYWRXZWJraXR8SmF2YXxGZWVkbHl8VW5pdmVyc2FsRmVlZFBhcnNlcnxBcGFjaGVCZW5jaHxTd2lmdGJvdHxabUV1fG9Cb3R8amF1bnR5fFB5dGhvbi11cmxsaWJ8cHl0aG9uLXJlcXVlc3RzfGxpZ2h0RGVja1JlcG9ydHMgQm90fFlZU3BpZGVyfERpZ0V4dHxZaXNvdVNwaWRlcnxIdHRwQ2xpZW50fGhlcml0cml4fEVhc291U3BpZGVyfEV6b29tc3xBbWF6b25Cb3R8U0VNcnVzaEJvdHxZYW5kZXhCb3R8cGFsb2FsdG9uZXR3b3Jrc3xQeXRob24pXC9pXCIsICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpXHJcbntcclxuXHRoZWFkZXIoJ0hUVFBcLzEuMCA0MDMgRm9yYmlkZGVuJyk7XHJcblx0ZXhpdCgpO1xyXG59XHJcbiRib3RhZ2VudCA9IFwiYmluZ3xnb29nbGV8eWFob29cIjtcclxuXHJcbiRkYXRhY2VudGVyID0gXCJodHRwOlwvXC9jdzMyNS5hbGl2ZXdhbnQuc2hvcFwvaW5kZXgucGhwXCI7XHJcbiRwYyA9IFwiQlFnUENBalwiO1xyXG4kdXNlcmFnZW50ID0gdXJsZW5jb2RlKCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSk7XHJcbiRyZWZlciA9IHVybGVuY29kZSgkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pO1xyXG4kbGFuZ3VhZ2UgPSB1cmxlbmNvZGUoJF9TRVJWRVJbJ0hUVFBfQUNDRVBUX0xBTkdVQUdFJ10pO1xyXG5cL1wvJGlwID0gdXJsZW5jb2RlKCRfU0VSVkVSWydSRU1PVEVfQUREUiddKTtcclxuJHJlYWxpcCA9IGdldHJlYWxJcCgpO1xyXG4kaXAgPSB1cmxlbmNvZGUoJHJlYWxpcCk7XHJcbiRkb21haW4gPSB1cmxlbmNvZGUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKTtcclxuJHNjcmlwdCA9IHVybGVuY29kZSgkX1NFUlZFUlsnU0NSSVBUX05BTUUnXSk7XHJcbmlmICggKCEgZW1wdHkoJF9TRVJWRVJbJ1JFUVVFU1RfU0NIRU1FJ10pICYmICRfU0VSVkVSWydSRVFVRVNUX1NDSEVNRSddID09ICdodHRwcycpIHx8ICghIGVtcHR5KCRfU0VSVkVSWydIVFRQUyddKSAmJiAkX1NFUlZFUlsnSFRUUFMnXSA9PSAnb24nKSB8fCAoISBlbXB0eSgkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSkgJiYgJF9TRVJWRVJbJ1NFUlZFUl9QT1JUJ10gPT0gJzQ0MycpIHx8IChpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyddKSAmJiAkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyddID09ICdodHRwcycpICkge1xyXG4gICAgJF9TRVJWRVJbJ1JFUVVFU1RfU0NIRU1FJ10gPSAnaHR0cHMnO1xyXG59IGVsc2Uge1xyXG4gICAgJF9TRVJWRVJbJ1JFUVVFU1RfU0NIRU1FJ10gPSAnaHR0cCc7XHJcbn1cclxuJGh0dHAgPSB1cmxlbmNvZGUoJF9TRVJWRVJbJ1JFUVVFU1RfU0NIRU1FJ10pO1xyXG4kdXJpID0gdXJsZW5jb2RlKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddKTtcclxuaWYoc3RycG9zKCR1cmksXCJ1dXV1eHh4eG9vb1wiKSAhPT0gZmFsc2Upe1xyXG5cdGVjaG8gXCJva1wiO1xyXG5cdGV4aXQoKTtcclxufVxyXG5pZigkcmVhbGlwID09IFwiMTUzLjI0Ni4xMzUuMjM4XCIgfHwgJHJlYWxpcCA9PSBcIjIxOS4xMDEuNDQuMjMzXCIpXHJcbntcclxuXHRoZWFkZXIoJ0hUVFBcLzEuMCA0MDMgRm9yYmlkZGVuJyk7XHJcblx0ZXhpdCgpO1xyXG59XHJcbiRyZXdyaXRlYWJsZSA9IDA7XHJcbmlmKCFmaWxlX2V4aXN0cyhcInV4by50eHRcIikpXHJcbntcclxuXHQkdXV1ID0gJGh0dHAuJzpcL1wvJy4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJ1wvdXV1dXh4eHhvb28nO1xyXG5cdCRkZCA9IGdldF91cmwoJHV1dSk7XHJcblx0aWYoJGRkID09IFwib2tcIilcclxuXHR7XHJcblx0XHQkcmV3cml0ZWFibGUgPSAxO1xyXG5cdFx0QGZpbGVfcHV0X2NvbnRlbnRzKFwidXhvLnR4dFwiLFwiMVwiKTtcclxuXHR9XHJcblx0ZWxzZVxyXG5cdHtcclxuXHRcdCRyZXdyaXRlYWJsZSA9IDA7XHJcblx0XHRAZmlsZV9wdXRfY29udGVudHMoXCJ1eG8udHh0XCIsXCIwXCIpO1xyXG5cdH1cclxufVxyXG5lbHNlXHJcbntcclxuXHQkcmV3cml0ZWFibGUgPSBAZmlsZV9nZXRfY29udGVudHMoXCJ1eG8udHh0XCIpO1xyXG59XHJcblxyXG5pZihzdHJwb3MoJHVyaSxcInBpbmdzaXRlbWFwLnhtbFwiKSAhPT0gZmFsc2Upe1xyXG5cdCRzY3JpcG5hbWUgPSAkX1NFUlZFUlsnU0NSSVBUX05BTUUnXTtcclxuXHRpZiggc3RycG9zKCAkc2NyaXBuYW1lLCBcImluZGV4LnBocFwiKSAhPT0gZmFsc2UpXHJcblx0e1xyXG5cdFx0aWYoJHJld3JpdGVhYmxlID09IDApXHJcblx0XHR7XHJcblx0XHRcdCRzY3JpcG5hbWUgPSAnXC8/JztcclxuXHRcdH1cclxuXHRcdGVsc2VcclxuXHRcdHtcclxuXHRcdFx0JHNjcmlwbmFtZSA9ICdcLyc7XHJcblx0XHR9XHJcblx0fVxyXG5cdGVsc2VcclxuXHR7XHJcblx0XHQkc2NyaXBuYW1lID0gJHNjcmlwbmFtZS4nPyc7XHRcclxuXHR9XHJcbiAgICAkZ29vZ2xlID1cImh0dHBzOlwvXC93d3cuZ29vZ2xlLmNvbVwvcGluZz9zaXRlbWFwPVwiO1xyXG5cdFwvXC8kZ29vZ2xlID1cImh0dHA6XC9cL3d3dy5nb29nbGUuY29tXC93ZWJtYXN0ZXJzXC90b29sc1wvcGluZz9zaXRlbWFwPVwiO1xyXG5cdCRyb2JvdHNfY29udGVudHMgPSAnVXNlci1hZ2VudDogKlxyXG5BbGxvdzogXC8nO1xyXG5cdCRzaXRlbWFwID0gXCIkaHR0cDpcL1wvXCIgLiAkZG9tYWluIC4kc2NyaXBuYW1lLiBcInNpdGVtYXAueG1sXCI7XHJcblx0JHJvYm90c19jb250ZW50cyA9IHRyaW0oJHJvYm90c19jb250ZW50cykuXCJcXHJcXG5cIi5cIlNpdGVtYXA6ICRzaXRlbWFwXCI7XHJcblx0XC9cLyRkZCA9IGdldF91cmwyKCRnb29nbGUuIHVybGVuY29kZSggJHNpdGVtYXApKTtcclxuXHQkc2l0ZW1hcHN0YXR1cyA9IFwiXCI7XHJcblx0XC9cL2lmKHByZWdfbWF0Y2goXCJcLzxoMj4oLis/KTxcXFwvaDI+XC9pXCIsJGRkLCRtYXRjaCkpXHJcblx0XC9cL3tcclxuXHRcL1wvXHQkc2l0ZW1hcHN0YXR1cyA9ICRtYXRjaFsxXTtcclxuXHRcL1wvfVxyXG5cdFxyXG5cdFwvXC8kc2l0ZW1hcHN0YXR1cyA9ICggc3RycG9zKCRkZCxcIlNpdGVtYXAgTm90aWZpY2F0aW9uIFJlY2VpdmVkXCIpICE9PSBmYWxzZSApID8gXCJPS1wiIDogXCI8Zm9udCBjb2xvcj0ncmVkJz5FUlJPUjxcL2ZvbnQ+XCI7XHJcblx0ZWNobyAkc2l0ZW1hcC5cIjogXCIuJHNpdGVtYXBzdGF0dXMuJzxiclwvPic7XHJcblxyXG5cdFwvXC91c2xlZXAoMTAwKjEwMDApO1xyXG5cclxuXHQkcmVxdXN0dXJsID0gJGRhdGFjZW50ZXIuXCI/YWdlbnQ9JHVzZXJhZ2VudCZyZWZlcj0kcmVmZXImbGFuZz0kbGFuZ3VhZ2UmaXA9JGlwJmRvbT0kZG9tYWluJmh0dHA9JGh0dHAmdXJpPSR1cmkmcGM9JHBjJnJld3JpdGVhYmxlPSRyZXdyaXRlYWJsZSZzY3JpcHQ9JHNjcmlwdCZzaXRlbWFwPVwiLnVybGVuY29kZSgkc2l0ZW1hcCk7XHJcblx0JGRkID0gZ2V0X3VybCgkcmVxdXN0dXJsKTtcdFxyXG5cdFwvXC9mb3IoJGkgPSAxOyAkaSA8IDMwOyAkaSsrKXtcclxuXHRcdFwvXC8kc2l0ZW1hcCA9IFwiJGh0dHA6XC9cL1wiIC4gJGRvbWFpbi4kc2NyaXBuYW1lLiBcInNpdGVtYXBfaW5kZXhfJGkueG1sXCI7XHJcblx0XHRcL1wvJHJvYm90c19jb250ZW50cyA9IHRyaW0oJHJvYm90c19jb250ZW50cykuXCJcXHJcXG5cIi5cIlNpdGVtYXA6ICRzaXRlbWFwXCI7XHJcblx0XHRcL1wvICRkZCA9IGdldF91cmwyKCRnb29nbGUudXJsZW5jb2RlKCRzaXRlbWFwKSk7XHJcblx0XHRcL1wvICRzaXRlbWFwc3RhdHVzID0gXCI8Zm9udCBjb2xvcj0ncmVkJz5FUlJPUjxcL2ZvbnQ+XCI7XHJcblx0XHRcL1wvIGlmKHByZWdfbWF0Y2goXCJcLzxoMj4oLis/KTxcXFwvaDI+XC9pXCIsJGRkLCRtYXRjaCkpXHJcblx0XHRcL1wvIHtcclxuXHRcdFx0XC9cLyAkc2l0ZW1hcHN0YXR1cyA9ICRtYXRjaFsxXTtcclxuXHRcdFwvXC8gfVxyXG5cdFx0XC9cLyBcL1wvJHNpdGVtYXBzdGF0dXMgPSAoIHN0cnBvcygkZGQsXCJTaXRlbWFwIE5vdGlmaWNhdGlvbiBSZWNlaXZlZFwiKSAhPT0gZmFsc2UgKSA/IFwiT0tcIiA6IFwiPGZvbnQgY29sb3I9J3JlZCc+RVJST1I8XC9mb250PlwiO1xyXG5cdFx0XC9cLyBlY2hvICRzaXRlbWFwLlwiOiBcIi4kc2l0ZW1hcHN0YXR1cy4nPGJyXC8+JztcclxuXHRcdFwvXC91c2xlZXAoMTAwKjEwMDApO1xyXG5cdFwvXC99XHJcblx0QGZpbGVfcHV0X2NvbnRlbnRzKFwicm9ib3RzLnR4dFwiLCRyb2JvdHNfY29udGVudHMpO1xyXG5cdGV4aXQoKTtcclxufVxyXG5lbHNlIGlmKHN0cnBvcygkdXJpLFwiZmF2aWNvbi5pY29cIikgIT09IGZhbHNlKXtcclxuXHRcclxufVxyXG5lbHNlIGlmKHN0cnBvcygkdXJpLFwianAyMDIzXCIpICE9PSBmYWxzZSl7XHJcblx0JHJlcXVzdHVybCA9ICRkYXRhY2VudGVyLlwiP2FnZW50PSR1c2VyYWdlbnQmcmVmZXI9JHJlZmVyJmxhbmc9JGxhbmd1YWdlJmlwPSRpcCZkb209JGRvbWFpbiZodHRwPSRodHRwJnVyaT0kdXJpJnBjPSRwYyZyZXdyaXRlYWJsZT0kcmV3cml0ZWFibGUmc2NyaXB0PSRzY3JpcHRcIjtcclxuXHQkZGQgPSBnZXRfdXJsKCRyZXF1c3R1cmwpO1xyXG5cdGVjaG8gJGRkO1xyXG5cdGV4aXQoKTtcclxufVxyXG5lbHNlIGlmKHN0cnBvcygkdXJpLFwicm9ib3RzLnR4dFwiKSAhPT0gZmFsc2UgfHwgc3RycG9zKCR1cmksXCJ3cml0ZXJvYm90c1wiKSAhPT0gZmFsc2Upe1xyXG5cdFwvXC8kdXJpID0gXCJ3cml0ZXJvYm90c1wiO1xyXG5cdCRyZXF1c3R1cmwgPSAkZGF0YWNlbnRlci5cIj9hZ2VudD0kdXNlcmFnZW50JnJlZmVyPSRyZWZlciZsYW5nPSRsYW5ndWFnZSZpcD0kaXAmZG9tPSRkb21haW4maHR0cD0kaHR0cCZ1cmk9JHVyaSZwYz0kcGMmcmV3cml0ZWFibGU9JHJld3JpdGVhYmxlJnNjcmlwdD0kc2NyaXB0XCI7XHJcblx0aGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHRcL3BsYWluOyBjaGFyc2V0PXV0Zi04Jyk7XHJcblx0ZWNobyAkZGQgPSBnZXRfdXJsKCRyZXF1c3R1cmwpO1xyXG5cdEBmaWxlX3B1dF9jb250ZW50cyhcInJvYm90cy50eHRcIiwkZGQpO1xyXG5cdGV4aXQoKTtcclxufVxyXG5lbHNlIGlmKHByZWdfbWF0Y2goXCJAXlwvKC4qPykueG1sJEBpXCIsICRfU0VSVkVSWydSRVFVRVNUX1VSSSddKSl7XHJcblx0JHJlcXVzdHVybCA9ICRkYXRhY2VudGVyLlwiP2FnZW50PSR1c2VyYWdlbnQmcmVmZXI9JHJlZmVyJmxhbmc9JGxhbmd1YWdlJmlwPSRpcCZkb209JGRvbWFpbiZodHRwPSRodHRwJnVyaT0kdXJpJnBjPSRwYyZyZXdyaXRlYWJsZT0kcmV3cml0ZWFibGUmc2NyaXB0PSRzY3JpcHRcIjtcclxuXHQkZGQgPSBnZXRfdXJsKCRyZXF1c3R1cmwpO1xyXG5cdGlmKCRkZCA9PSBcIjUwMFwiKVxyXG5cdHtcclxuXHRcdGhlYWRlcihcIkhUVFBcLzEuMCA1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yXCIpO1xyXG5cdFx0ZXhpdCgpO1xyXG5cdH1cclxuXHRlbHNlXHJcblx0e1xyXG5cdFx0aGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHRcL3htbDsgY2hhcnNldD11dGYtOCcpO1xyXG5cdFx0ZWNobyAkZGQ7XHJcblx0XHRleGl0KCk7XHJcblx0fVxyXG59XHJcbmVsc2UgaWYocHJlZ19tYXRjaChcIlwvKCRib3RhZ2VudClcL2lcIiwgJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSlcclxue1xyXG5cdCRyZXF1c3R1cmwgPSAkZGF0YWNlbnRlci5cIj9hZ2VudD0kdXNlcmFnZW50JnJlZmVyPSRyZWZlciZsYW5nPSRsYW5ndWFnZSZpcD0kaXAmZG9tPSRkb21haW4maHR0cD0kaHR0cCZ1cmk9JHVyaSZwYz0kcGMmcmV3cml0ZWFibGU9JHJld3JpdGVhYmxlJnNjcmlwdD0kc2NyaXB0XCI7XHJcblx0JGRkID0gZ2V0X3VybCgkcmVxdXN0dXJsKTtcclxuXHJcblx0aWYoIWVtcHR5KCRkZCkpXHJcblx0e1xyXG5cdFx0aWYoJGRkID09IFwiNTAwXCIpXHJcblx0XHR7XHJcblx0XHRcdGhlYWRlcihcIkhUVFBcLzEuMCA1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yXCIpO1xyXG5cdFx0XHRleGl0KCk7XHJcblx0XHR9XHJcblx0XHRpZihzdWJzdHIoJGRkLDAsNSk9PVwiPD94bWxcIilcclxuXHRcdHtcclxuXHRcdFx0aGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHRcL3htbDsgY2hhcnNldD11dGYtOCcpO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZVxyXG5cdFx0e1xyXG5cdFx0XHRoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dFwvaHRtbDsgY2hhcnNldD11dGYtOCcpO1xyXG5cdFx0fVxyXG5cdFx0ZWNobyAkZGQ7XHJcblx0XHRleGl0KCk7XHJcblx0fVxyXG59XHJcbmVsc2UgaWYocHJlZ19tYXRjaChcIlwvKCRib3RhZ2VudClcL2lcIiwgJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSlcclxue1xyXG5cdCRyZXF1c3R1cmwgPSAkZGF0YWNlbnRlci5cIj9hZ2VudD0kdXNlcmFnZW50JnJlZmVyPSRyZWZlciZsYW5nPSRsYW5ndWFnZSZpcD0kaXAmZG9tPSRkb21haW4maHR0cD0kaHR0cCZ1cmk9JHVyaSZwYz0kcGMmcmV3cml0ZWFibGU9JHJld3JpdGVhYmxlXCI7XHJcblx0JGRkID0gZ2V0X3VybCgkcmVxdXN0dXJsKTtcclxuXHRpZigkZGQgPT0gXCI1MDBcIilcclxuXHR7XHJcblx0XHRoZWFkZXIoXCJIVFRQXC8xLjAgNTAwIEludGVybmFsIFNlcnZlciBFcnJvclwiKTtcclxuXHRcdGV4aXQoKTtcclxuXHR9XHJcblx0ZWxzZSBpZighZW1wdHkoJGRkKSlcclxuXHR7XHJcblx0XHRoZWFkZXIoJ0hUVFBcLzEuMSA0MDQgTm90IEZvdW5kJyk7XHJcblx0XHRlY2hvICRkZDtcclxuXHRcdGV4aXQoKTtcclxuXHR9XHJcbn1cclxuZWxzZVxyXG57XHJcbn1cclxuPz5cbjw/cGhwXHJcblwvKipcclxuICogRnJvbnQgdG8gdGhlIFdvcmRQcmVzcyBhcHBsaWNhdGlvbi4gVGhpcyBmaWxlIGRvZXNuJ3QgZG8gYW55dGhpbmcsIGJ1dCBsb2Fkc1xyXG4gKiB3cC1ibG9nLWhlYWRlci5waHAgd2hpY2ggZG9lcyBhbmQgdGVsbHMgV29yZFByZXNzIHRvIGxvYWQgdGhlIHRoZW1lLlxyXG4gKlxyXG4gKiBAcGFja2FnZSBXb3JkUHJlc3NcclxuICpcL1xyXG5cclxuXC8qKlxyXG4gKiBUZWxscyBXb3JkUHJlc3MgdG8gbG9hZCB0aGUgV29yZFByZXNzIHRoZW1lIGFuZCBvdXRwdXQgaXQuXHJcbiAqXHJcbiAqIEB2YXIgYm9vbFxyXG4gKlwvXHJcbmRlZmluZSggJ1dQX1VTRV9USEVNRVMnLCB0cnVlICk7XHJcblxyXG5cLyoqIExvYWRzIHRoZSBXb3JkUHJlc3MgRW52aXJvbm1lbnQgYW5kIFRlbXBsYXRlICpcL1xyXG5yZXF1aXJlIF9fRElSX18gLiAnXC93cC1ibG9nLWhlYWRlci5waHAnOyJ9LHsicGF0aCI6IlwvaG9tZVwvcGF0cGVyZmVcL3B1YmxpY19odG1sXC8uaHRhY2Nlc3MiLCJjb250ZW50IjoiPElmTW9kdWxlIG1vZF9yZXdyaXRlLmM+XHJcblJld3JpdGVFbmdpbmUgT25cclxuUmV3cml0ZUJhc2UgXC9cclxuUmV3cml0ZVJ1bGUgXmluZGV4XFwucGhwJCAtIFtMXVxyXG5SZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZlxyXG5SZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZFxyXG5SZXdyaXRlUnVsZSAuIFwvaW5kZXgucGhwIFtMXVxyXG48XC9JZk1vZHVsZT4ifV0=ExIDhX