xiaomianao666

小程序:配置助手

Oct 24th, 2022
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@配置助手@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi6YWN572u5Yqp5omLIiwiYXV0aG9yIjoiY3kiLCJ1cmwiOiJoaWtlcjovL2VtcHR5IyMiLCJ2ZXJzaW9uIjoxMSwiY29sX3R5cGUiOiJtb3ZpZV8zIiwiY2xhc3NfbmFtZSI6IiIsInR5cGUiOiJ0b29sIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6XG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2hvbWUnKSkucnVsZSk7Iiwic2VhcmNoX3VybCI6IiIsImdyb3VwIjoi4pGp5bel5YW3Iiwic2VhcmNoRmluZCI6IiIsImRldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJkZXRhaWxfZmluZF9ydWxlIjoiIiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInVhIjoibW9iaWxlIiwicHJlUnVsZSI6IiIsInBhZ2VzIjoiW3tcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkuLvpobVcIixcInBhdGhcIjpcImhvbWVcIixcInJ1bGVcIjpcImFkZExpc3RlbmVyKCdvbkNsb3NlJywgKCkgPT4ge1xcclxcbiAgICBjbGVhck15VmFyKCduYW1lQXJyYXknKTtcXHJcXG4gICAgY2xlYXJNeVZhcigndXJsQXJyYXknKTtcXHJcXG4gICAgY2xlYXJNeVZhcignc3dpdGNoJyk7XFxyXFxufSlcXHJcXG5hZGRMaXN0ZW5lcignb25SZWZyZXNoJywgKCkgPT4ge1xcclxcbiAgICBzZXRGaWxlID0gcmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uJyk7XFxyXFxuICAgIGV2YWwoJ2NvbmZpZ0FycmF5PScgKyBzZXRGaWxlKTtcXHJcXG4gICAgY2xlYXJNeVZhcignZGVsTnVtJyk7XFxyXFxuICAgIGNsZWFyTXlWYXIoJ2RlbEFycmF5Jyk7XFxyXFxuICAgIGNsZWFyTXlWYXIoJ3NoYXJlTnVtJyk7XFxyXFxuICAgIGNsZWFyTXlWYXIoJ3NoYXJlQXJyYXknKTtcXHJcXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb25maWdBcnJheS5sZW5ndGg7IGkrKykge1xcclxcbiAgICAgICAgY2xlYXJNeVZhcignaXNDaG9vc2UnICsgaSk7XFxyXFxuICAgIH1cXHJcXG59KVxcclxcbmlmICghZmlsZUV4aXN0KCdoaWtlcjovL2ZpbGVzL3J1bGVzL2N5L015UGFyc2UuanNvbicpKSB7XFxyXFxuICAgIGNvbmZpZ0FycmF5ID0gW107XFxyXFxuICAgIHNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2N5L015UGFyc2UuanNvbicsIEpTT04uc3RyaW5naWZ5KGNvbmZpZ0FycmF5KSk7XFxyXFxufVxcclxcbmlmICghZmlsZUV4aXN0KCdoaWtlcjovL2ZpbGVzL3J1bGVzL2N5L2RtU3dpdGNoLnR4dCcpKSB7XFxyXFxuICAgIHNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2N5L2RtU3dpdGNoLnR4dCcsICflvIAnKTtcXHJcXG59XFxyXFxudmFyIGQgPSBbXTtcXHJcXG5kLnB1c2goe1xcclxcbiAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxiaWc+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiM2RUI4OTdcXFwiPua3uyDliqAg6KejIOaekDwvc3Bhbj48L2JpZz4nLFxcclxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcclxcbiAgICAgICAgaWYgKGdldE15VmFyKCdzd2l0Y2gnLCAn5YWzJykgPT0gJ+W8gCcpIHtcXHJcXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDM7IGkrKykge1xcclxcbiAgICAgICAgICAgICAgICBkZWxldGVJdGVtKCdhZGQnKVxcclxcbiAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICBwdXRNeVZhcignc3dpdGNoJywgJ+WFsycpO1xcclxcbiAgICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgICAgICBhZGRBcnJheSA9IFt7XFxyXFxuICAgICAgICAgICAgICAgIGRlc2M6ICfop6PmnpDlkI3np7DvvIzkuIDooYzkuIDkuKonLFxcclxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcXHJcXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlVmlzaWJsZTogZmFsc2UsXFxyXFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcXHJcXG4gICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodDogdHJ1ZSxcXHJcXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcXFwicHV0TXlWYXIoJ25hbWVBcnJheScsaW5wdXQpXFxcIixcXHJcXG4gICAgICAgICAgICAgICAgICAgIGlkOiAnYWRkJ1xcclxcbiAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgfSwge1xcclxcbiAgICAgICAgICAgICAgICBkZXNjOiAn6Kej5p6Q77yM5LiA6KGM5LiA5LiqJyxcXHJcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdpbnB1dCcsXFxyXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZVZpc2libGU6IGZhbHNlLFxcclxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcXHJcXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogLTEsXFxyXFxuICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHQ6IHRydWUsXFxyXFxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXFxcInB1dE15VmFyKCd1cmxBcnJheScsaW5wdXQpXFxcIixcXHJcXG4gICAgICAgICAgICAgICAgICAgIGlkOiAnYWRkJ1xcclxcbiAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgfSwge1xcclxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+S/neWtmCcsXFxyXFxuICAgICAgICAgICAgICAgIHVybDogJCgpLmxhenlSdWxlKCgpID0+IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVBcnJheSA9IGdldE15VmFyKCduYW1lQXJyYXknKS5zcGxpdCgnXFxcXG4nKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIHVybEFycmF5ID0gZ2V0TXlWYXIoJ3VybEFycmF5Jykuc3BsaXQoJ1xcXFxuJyk7XFxyXFxuICAgICAgICAgICAgICAgICAgICBkYXRhTGVuZ3RoID0gbmFtZUFycmF5Lmxlbmd0aCA+IHVybEFycmF5Lmxlbmd0aCA/IG5hbWVBcnJheS5sZW5ndGggOiB1cmxBcnJheS5sZW5ndGg7XFxyXFxuICAgICAgICAgICAgICAgICAgICBzZXRGaWxlID0gcmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uJyk7XFxyXFxuICAgICAgICAgICAgICAgICAgICBldmFsKCdjb25maWdBcnJheT0nICsgc2V0RmlsZSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFMZW5ndGg7IGkrKykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGppZXhpTmFtZSA9IGkgPiBuYW1lQXJyYXkubGVuZ3RoIC0gMSA/ICfmnKrlkb3lkI0nIDogKG5hbWVBcnJheVtpXSA9PSAnJyA/ICfmnKrlkb3lkI0nIDogbmFtZUFycmF5W2ldKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBqaWV4aVVybCA9IGkgPiB1cmxBcnJheS5sZW5ndGggLSAxID8gJ+epuuino+aekCcgOiAodXJsQXJyYXlbaV0gPT0gJycgPyAn56m66Kej5p6QJyA6IHVybEFycmF5W2ldKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWdBcnJheS5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogamlleGlOYW1lLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGppZXhpVXJsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgICAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9NeVBhcnNlLmpzb24nLCBKU09OLnN0cmluZ2lmeShjb25maWdBcnJheSkpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3N3aXRjaCcsICflhbMnKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKHRydWUpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+S/neWtmOaIkOWKn1xcXCJcXHJcXG4gICAgICAgICAgICAgICAgfSksXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxyXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBpZDogJ2FkZCdcXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgIH1dXFxyXFxuICAgICAgICAgICAgYWRkSXRlbUFmdGVyKCdhZGRGdW5jdGlvbicsIGFkZEFycmF5KTtcXHJcXG4gICAgICAgICAgICBwdXRNeVZhcignc3dpdGNoJywgJ+W8gCcpO1xcclxcbiAgICAgICAgfVxcclxcbiAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suWIh+aNonN3aXRjaOS4ujonICsgZ2V0TXlWYXIoJ3N3aXRjaCcsICflvIAnKVxcclxcbiAgICB9KSxcXHJcXG4gICAgZGVzYzogJ+eugOWNleOAgeaXoOW/p+OAgeeLrOeri+eahOino+aekOeuoeeQhuW3peWFt++8jOWFu+iAgeS4k+eUqCcsXFxyXFxuICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxyXFxuICAgIGV4dHJhOiB7XFxyXFxuICAgICAgICBpZDogJ2FkZEZ1bmN0aW9uJ1xcclxcbiAgICB9XFxyXFxufSwge1xcclxcbiAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxyXFxufSwge1xcclxcbiAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxmb250IGNvbG9yPVxcXCIjNkVCODk3XFxcIj7or7TmmI48L2ZvbnQ+JyxcXHJcXG4gICAgdXJsOiAkKCkubGF6eVJ1bGUoKCkgPT4ge1xcclxcbiAgICAgICAgcmV0dXJuICQoJ2hpa2VyOi8vZW1wdHknKS5ydWxlKCgpID0+IHtcXHJcXG4gICAgICAgICAgICBsZXQgZCA9IFtdO1xcclxcbiAgICAgICAgICAgIGQucHVzaCh7XFxyXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5pWZ56iL5paH5qGjJyxcXHJcXG4gICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly93d3cueXVxdWUuY29tL2NoZW55aW5nLWs3M3NjL2xoY3ZxZC9ic2g1ZTInLFxcclxcbiAgICAgICAgICAgICAgICBkZXNjOiBcXFwiZmxvYXQmJjEwMCVcXFwiLFxcclxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3g1X3dlYnZpZXdfc2luZ2xlJ1xcclxcbiAgICAgICAgICAgIH0pO1xcclxcbiAgICAgICAgICAgIHNldFJlc3VsdChkKTtcXHJcXG4gICAgICAgIH0pO1xcclxcbiAgICB9KSxcXHJcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcclxcbn0sIHtcXHJcXG4gICAgdGl0bGU6IFxcXCLliIfmjaLmj5Lku7ZcXFwiLFxcclxcbiAgICB1cmw6ICQoWyfprZTmlq0nLCAn5Yqp5omLJ10sIDIsICfor7fpgInmi6nkvaDopoHmiafooYznmoTmk43kvZwnKS5zZWxlY3QoKCkgPT4ge1xcclxcbiAgICAgICAgaWYgKGlucHV0ID09ICfprZTmlq0nKSB7XFxyXFxuICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL1BhcnNlX0RuLmpzXFxcIiwgSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9wYWdlL1BhcnNlX0RuLmpzP3J1bGU9TXlGaWVsZOG0sOKBv1xcXCIpKS5ydWxlKTtcXHJcXG4gICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5b2T5YmN5piv6a2U5pat5qih5byPXFxcIjtcXHJcXG4gICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL1BhcnNlX0RuLmpzXFxcIiwgSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9wYWdlL2R1YW4/cnVsZT3phY3nva7liqnmiYtcXFwiKSkucnVsZSk7XFxyXFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+W9k+WJjeaYr+WKqeaJi+aooeW8j1xcXCI7XFxyXFxuICAgICAgICB9XFxyXFxuICAgIH0pLFxcclxcbiAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiXFxyXFxufSwge1xcclxcbiAgICB0aXRsZTogJ+WvvOWFpei+heWKqScsXFxyXFxuICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcclxcbiAgICAgICAgaHRtbCA9IHJlcXVlc3QoJ2h0dHBzOi8vbmV0Y3V0LmNuL3AvYTVkMWM4ZTFlY2VlMjhkMycpO1xcclxcbiAgICAgICAgZGF0YSA9IGh0bWwubWF0Y2goL3suKm5vdGVfY29udGVudC4qdXBkYXRlZF9hdC4qfS8pWzBdO1xcclxcbiAgICAgICAgY29udGVudCA9IEpTT04ucGFyc2UoZGF0YSkubm90ZV9jb250ZW50O1xcclxcbiAgICAgICAgdXBEYXRhID0gSlNPTi5wYXJzZShkYXRhKS51cGRhdGVkX2F0O1xcclxcbiAgICAgICAgcHV0TXlWYXIoJ2NvbnRlbnQnLCBjb250ZW50KTtcXHJcXG4gICAgICAgIGNvbmZpcm0oe1xcclxcbiAgICAgICAgICAgIHRpdGxlOiAn5piv5ZCm5a+85YWlJyxcXHJcXG4gICAgICAgICAgICBjb250ZW50OiAn6ISa5pys5pu05paw5pel5pyfXFxcXG4nICsgdXBEYXRhLFxcclxcbiAgICAgICAgICAgIGNvbmZpcm06ICgpID0+IHtcXHJcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldE15VmFyKCdjb250ZW50Jyk7XFxyXFxuICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICBjYW5jZWw6ICgpID0+IHtcXHJcXG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suWPlua2iOWvvOWFpSc7XFxyXFxuICAgICAgICAgICAgfVxcclxcbiAgICAgICAgfSlcXHJcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxyXFxuICAgIH0pLFxcclxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxyXFxufSwge1xcclxcbiAgICB0aXRsZTogJ+ino+aekOaooeadvycsXFxyXFxuICAgIHVybDogYGNvcHk6Ly/kv67mlLnimIXprZTmlq3pgJrnlKjmqKHmnb/imIVcXHJcXG5mdW5jdGlvbiAodmlwVXJsKSB7XFxyXFxuICAgIC8vIOato+W4uOiwg+eUqC3lvLnluZXlvIDlhbPlnKjphY3nva7liqnmiYvph4zoh6rooYzorr7nva7mmK/lkKblkK/nlKhcXHJcXG4gICAgcmV0dXJuICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL211bFBhcnNlP3J1bGU96YWN572u5Yqp5omLXFxcIikubXVsUGFyc2UodmlwVXJsKTtcXHJcXG4gICAgLyrlhY3ll4Xpppblj5HmqKHlvI9cXHJcXG4gICAg5aaC5p6c5oOz6KaB5a6e546w57G75Ly86a2U5pat55qE5ZeF5o6i5LyY5YWI77ya5YWN5ZeF5YqgeDXjgIFKc29u5aSa57q/6Lev55qE5b2i5byP77yM5Y+C6ICD5rOo6YeK55qE56S65L6L5Luj56CB5re75Yqg5YWN5ZeF5Luj56CB77yI5Y+q5piv56S65L6L5bm25LiN5Y+v55So77yJ77yM5bm25Zyo5pyA57uI6L+U5Zue55qE5pe25YCZ6aG65bqP5aSa5Lyg5YWl5Lik5Liq5Y+C5pWw77ya5LiA5Liq5piv5YWN5ZeF5b6X5Yiw55qE5pKt5pS+5Zyw5Z2A77yM5LiA5Liq5piv6L+Z5Liq6Kej5p6Q5oiW57q/6Lev55qE5ZCN5a2XXFxyXFxuICAgIHZhciBwYXJzZSA9IFxcXCJodHRwczovL3BsYXllci5keHl5LmNmL1duZGV4eFgucGhwP3VybD1cXFwiO1xcclxcbiAgICBiZnVybCA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2FwaT9ydWxlPUFQSeebkuWtkFxcXCIpLnBhcnNlTExRKHBhcnNlLCB2aXBVcmwpO1xcclxcbiAgICByZXR1cm4gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvbXVsUGFyc2U/cnVsZT3phY3nva7liqnmiYtcXFwiKS5tdWxQYXJzZSh2aXBVcmwsIGJmdXJsLCAnbGxxJykgKyBcXFwiO3tVc2VyLUFnZW50QCYmUmVmZXJlckB9XFxcIjtcXHJcXG4gICAgKi9cXHJcXG59YCxcXHJcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcclxcbn0sIHtcXHJcXG4gICAgdGl0bGU6ICfmupDnoIHnvJbovpEnLFxcclxcbiAgICB1cmw6IFxcXCJlZGl0RmlsZTovL2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uXFxcIixcXHJcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcclxcbn0sIHtcXHJcXG4gICAgdGl0bGU6ICflr7zlh7rphY3nva4nLFxcclxcbiAgICB1cmw6ICdzaGFyZTovL2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uJyxcXHJcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcclxcbn0sIHtcXHJcXG4gICAgdGl0bGU6ICfkupHmnb/liIbkuqsnLFxcclxcbiAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXHJcXG4gICAgICAgIHNldEZpbGUgPSByZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9NeVBhcnNlLmpzb24nKTtcXHJcXG4gICAgICAgIHNlY3JldENvbnRlbnQgPSBiYXNlNjRFbmNvZGUoYmFzZTY0RW5jb2RlKHNldEZpbGUpKTtcXHJcXG4gICAgICAgIGNvcHkoXFxcIuWKqeaJi+ino+aekOWvvOWFpeWPo+S7pMKlwqVcXFwiICsgc2hhcmVQYXN0ZShzZWNyZXRDb250ZW50KSk7XFxyXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcclxcbiAgICB9KSxcXHJcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcclxcbn0sIHtcXHJcXG4gICAgdGl0bGU6ICfkupHmnb/lr7zlhaUnLFxcclxcbiAgICB1cmw6ICQoJycsICflop7ph4/lr7zlhaXvvIzor7fmlL7lv4MnKS5pbnB1dCgoKSA9PiB7XFxyXFxuICAgICAgICBpZiAoaW5wdXQubWF0Y2goL+WKqeaJi+ino+aekOWvvOWFpeWPo+S7pMKlwqUvKSkge1xcclxcbiAgICAgICAgICAgIGxpbmsgPSBpbnB1dC5zcGxpdCgnwqXCpScpWzFdO1xcclxcbiAgICAgICAgICAgIHNlY3JldENvbnRlbnQgPSBwYXJzZVBhc3RlKGxpbmspO1xcclxcbiAgICAgICAgICAgIGV2YWwoJ3JlbW90ZVNldEZpbGU9JyArIGJhc2U2NERlY29kZShiYXNlNjREZWNvZGUoc2VjcmV0Q29udGVudCkpKTtcXHJcXG4gICAgICAgICAgICBldmFsKCdjb25maWdBcnJheT0nICsgcmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uJykpO1xcclxcbiAgICAgICAgICAgIG5ld0FycmF5ID0gY29uZmlnQXJyYXkuY29uY2F0KHJlbW90ZVNldEZpbGUpO1xcclxcbiAgICAgICAgICAgIHNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2N5L015UGFyc2UuanNvbicsIEpTT04uc3RyaW5naWZ5KG5ld0FycmF5KSk7XFxyXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSk7XFxyXFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+WvvOWFpeaIkOWKn1xcXCJcXHJcXG4gICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+WPo+S7pOmUmeivr1xcXCJcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgfSksXFxyXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXHJcXG59LCB7XFxyXFxuICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXHJcXG59LCB7XFxyXFxuICAgIHRpdGxlOiBnZXRNeVZhcignbW9kZScsICfphY3nva4nKSA9PSAn6YWN572uJyA/ICfigJzigJzigJ3igJ08Zm9udCBjb2xvcj1yZWQ+6YWN572uPC9mb250PicgOiAn6YWN572uJyxcXHJcXG4gICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5I25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxyXFxuICAgICAgICBwdXRNeVZhcignbW9kZScsICfphY3nva4nKTtcXHJcXG4gICAgICAgIHJlZnJlc2hQYWdlKHRydWUpO1xcclxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXHJcXG4gICAgfSksXFxyXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXHJcXG59LCB7XFxyXFxuICAgIHRpdGxlOiBnZXRNeVZhcignbW9kZScsICfphY3nva4nKSA9PSAn5om56YeP5bel5YW3JyA/ICfigJzigJzigJ3igJ08Zm9udCBjb2xvcj1yZWQ+5om56YeP5bel5YW3PC9mb250PicgOiAn5om56YeP5bel5YW3JyxcXHJcXG4gICAgdXJsOiAkKFsn5Yig6ZmkJywgJ+WIhuS6qyddLCAyLCAn6K+36YCJ5oup5L2g6KaB5omn6KGM55qE5pON5L2cJykuc2VsZWN0KCgpID0+IHtcXHJcXG4gICAgICAgIHB1dE15VmFyKCdtb2RlJywgJ+aJuemHj+W3peWFtycpO1xcclxcbiAgICAgICAgaWYgKGlucHV0ID09ICfliKDpmaQnKSB7XFxyXFxuICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGUnLCAn5om56YeP5Yig6ZmkJyk7XFxyXFxuICAgICAgICAgICAgY2xlYXJNeVZhcignZGVsTnVtJyk7XFxyXFxuICAgICAgICAgICAgY2xlYXJNeVZhcignZGVsQXJyYXknKTtcXHJcXG4gICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGUnLCAn5om56YeP5YiG5LqrJyk7XFxyXFxuICAgICAgICAgICAgY2xlYXJNeVZhcignc2hhcmVOdW0nKTtcXHJcXG4gICAgICAgICAgICBjbGVhck15VmFyKCdzaGFyZUFycmF5Jyk7XFxyXFxuICAgICAgICB9XFxyXFxuICAgICAgICBzZXRGaWxlID0gcmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uJyk7XFxyXFxuICAgICAgICBldmFsKCdjb25maWdBcnJheT0nICsgc2V0RmlsZSk7XFxyXFxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmZpZ0FycmF5Lmxlbmd0aDsgaSsrKSB7XFxyXFxuICAgICAgICAgICAgY2xlYXJNeVZhcignaXNDaG9vc2UnICsgaSk7XFxyXFxuICAgICAgICB9XFxyXFxuICAgICAgICByZWZyZXNoUGFnZSh0cnVlKTtcXHJcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxyXFxuICAgIH0pLFxcclxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxyXFxufSwge1xcclxcbiAgICB0aXRsZTogZ2V0TXlWYXIoJ21vZGUnLCAn6YWN572uJykgPT0gJ+ino+aekOa1i+ivlScgPyAn4oCc4oCc4oCd4oCdPGZvbnQgY29sb3I9cmVkPuino+aekOa1i+ivlTwvZm9udD4nIDogJ+ino+aekOa1i+ivlScsXFxyXFxuICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcclxcbiAgICAgICAgcHV0TXlWYXIoJ21vZGUnLCAn6Kej5p6Q5rWL6K+VJyk7XFxyXFxuICAgICAgICByZWZyZXNoUGFnZSh0cnVlKTtcXHJcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxyXFxuICAgIH0pLFxcclxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxyXFxufSwge1xcclxcbiAgICB0aXRsZTogcmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9kbVN3aXRjaC50eHQnKSA9PSAndHJ1ZScgPyAn5by55bmVOuW8gCcgOiAn5by55bmVOuWFsycsXFxyXFxuICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcclxcbiAgICAgICAgdmFyIGRtU3dpdGNoID0gcmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9kbVN3aXRjaC50eHQnKTtcXHJcXG4gICAgICAgIGlmIChkbVN3aXRjaCA9PSAndHJ1ZScpIHtcXHJcXG4gICAgICAgICAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9kbVN3aXRjaC50eHQnLCAnZmFsc2UnKTtcXHJcXG4gICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvZG1Td2l0Y2gudHh0JywgJ3RydWUnKTtcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgICAgIHJlZnJlc2hQYWdlKHRydWUpO1xcclxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXHJcXG4gICAgfSksXFxyXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXHJcXG59KTtcXHJcXG50cnkge1xcclxcbiAgICBzZXRGaWxlID0gcmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uJyk7XFxyXFxuICAgIGV2YWwoJ2NvbmZpZ0FycmF5PScgKyBzZXRGaWxlKTtcXHJcXG4gICAgaWYgKGdldE15VmFyKCdtb2RlJywgJ+mFjee9ricpID09ICfphY3nva4nKSB7XFxyXFxuICAgICAgICBkLnB1c2goe1xcclxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXHJcXG4gICAgICAgIH0sIHtcXHJcXG4gICAgICAgICAgICB0aXRsZTogJ+WOu+mHjemZpOeZvScsXFxyXFxuICAgICAgICAgICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5I25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxyXFxuICAgICAgICAgICAgICAgIHNldEZpbGUgPSByZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9NeVBhcnNlLmpzb24nKTtcXHJcXG4gICAgICAgICAgICAgICAgZXZhbCgnY29uZmlnQXJyYXk9JyArIHNldEZpbGUpO1xcclxcbiAgICAgICAgICAgICAgICBwdXRNeVZhcignbGFzdENsZWFuJywgY29uZmlnQXJyYXkpO1xcclxcbiAgICAgICAgICAgICAgICBuZXdBcnJheSA9IFtdO1xcclxcbiAgICAgICAgICAgICAgICBudW0gPSAwO1xcclxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmZpZ0FycmF5Lmxlbmd0aDsgaSsrKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TXlWYXIoY29uZmlnQXJyYXlbaV0udXJsLCAnMCcpICE9ICcxJyAmJiBjb25maWdBcnJheVtpXS51cmwgIT0gJ+epuuino+aekCcgJiYgY29uZmlnQXJyYXlbaV0udXJsICE9IHVuZGVmaW5lZCkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0FycmF5LnB1c2goY29uZmlnQXJyYXlbaV0pO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKGNvbmZpZ0FycmF5W2ldLnVybCwgJzEnKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtKys7XFxyXFxuICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uJywgSlNPTi5zdHJpbmdpZnkobmV3QXJyYXkpKTtcXHJcXG4gICAgICAgICAgICAgICAgSlNPTi5wYXJzZShnZXRNeVZhcignbGFzdENsZWFuJywgJ1tdJykpLmZvckVhY2goaXRlbSA9PiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKGl0ZW0udXJsKTtcXHJcXG4gICAgICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKHRydWUpO1xcclxcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5pys5qyh5Y676YeN5pWw6YeP5Li6XFxcXHRcXFxcdFxcXFx0XFxcIiArIG51bTtcXHJcXG4gICAgICAgICAgICB9KSxcXHJcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxyXFxuICAgICAgICB9LCB7XFxyXFxuICAgICAgICAgICAgdGl0bGU6ICfljaDkvY3nrKblpITnkIYnLFxcclxcbiAgICAgICAgICAgIHVybDogJChbJ+a3u+WKoCcsICfljrvpmaQnXSwgMiwgJ+ivt+mAieaLqeS9oOimgeaJp+ihjOeahOaTjeS9nCcpLnNlbGVjdCgoKSA9PiB7XFxyXFxuICAgICAgICAgICAgICAgIHNldEZpbGUgPSByZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9NeVBhcnNlLmpzb24nKTtcXHJcXG4gICAgICAgICAgICAgICAgZXZhbCgnY29uZmlnQXJyYXk9JyArIHNldEZpbGUpO1xcclxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmZpZ0FycmF5Lmxlbmd0aDsgaSsrKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gJ+a3u+WKoCcpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnQXJyYXlbaV0udXJsLm1hdGNoKC9cXFxcP3VybD0vKSkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdBcnJheVtpXS51cmwgPSBjb25maWdBcnJheVtpXS51cmwucmVwbGFjZSgnP3VybD0nLCAnP3BsYWNlaG9sZGVyPSZ1cmw9Jyk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnQXJyYXlbaV0udXJsLm1hdGNoKC9cXFxcP3BsYWNlaG9sZGVyPSZ1cmw9LykpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnQXJyYXlbaV0udXJsID0gY29uZmlnQXJyYXlbaV0udXJsLnJlcGxhY2UoJz9wbGFjZWhvbGRlcj0mdXJsPScsICc/dXJsPScpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9NeVBhcnNlLmpzb24nLCBKU09OLnN0cmluZ2lmeShjb25maWdBcnJheSkpO1xcclxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKTtcXHJcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+WkhOeQhuaIkOWKn1xcXCI7XFxyXFxuICAgICAgICAgICAgfSksXFxyXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcclxcbiAgICAgICAgfSk7XFxyXFxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmZpZ0FycmF5Lmxlbmd0aDsgaSsrKSB7XFxyXFxuICAgICAgICAgICAgZC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfigJjigJjigJnigJk8c3BhbiBzdHlsZT1cXFwiY29sb3I6IzZFQjg5N1xcXCI+JyArIGkgKyAnPC9zcGFuPi0nICsgY29uZmlnQXJyYXlbaV0ubmFtZSxcXHJcXG4gICAgICAgICAgICAgICAgZGVzYzogY29uZmlnQXJyYXlbaV0udXJsLFxcclxcbiAgICAgICAgICAgICAgICB1cmw6ICQoWyfnvJbovpEnLCAn56e75L2NJywgJ+WIoOmZpCddLCAzLCAn6K+36YCJ5oup5L2g6KaB5omn6KGM55qE5pON5L2cJykuc2VsZWN0KChpLCBjb25maWdBcnJheSkgPT4ge1xcclxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0ID09ICfnvJbovpEnKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gY29uZmlnQXJyYXlbaV0ubmFtZSArICcsJyArIGNvbmZpZ0FycmF5W2ldLnVybDtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJChjb25maWcpLmlucHV0KChpLCBjb25maWdBcnJheSkgPT4ge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtID0ge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogaW5wdXQuc3BsaXQoLyx877yMLylbMF0sXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGlucHV0LnNwbGl0KC8sfO+8jC8pWzFdXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnQXJyYXkuc3BsaWNlKGksIDEsIGl0ZW0pO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9NeVBhcnNlLmpzb24nLCBKU09OLnN0cmluZ2lmeShjb25maWdBcnJheSkpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/mm7TmlrDmiJDlip9cXFwiXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgaSwgY29uZmlnQXJyYXkpXFxyXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICfnp7vkvY0nKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJzAnLCAn5L2g5oOz5o6S56ys5Yeg77yf5bqP5Y+35LuOMOW8gOWni34nKS5pbnB1dCgoaSwgY29uZmlnQXJyYXkpID0+IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0ID4gY29uZmlnQXJyYXkubGVuZ3RoIC0gMSkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBjb25maWdBcnJheS5sZW5ndGggLSAxO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0IDwgMCkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSAwO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBjb25maWdBcnJheVtpXTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiBpbnB1dCkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSBpOyBpbmRleCA+IGlucHV0OyBpbmRleC0tKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnQXJyYXlbaW5kZXhdID0gY29uZmlnQXJyYXlbaW5kZXggLSAxXTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gaTsgaW5kZXggPCBpbnB1dDsgaW5kZXgrKykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0FycmF5W2luZGV4XSA9IGNvbmZpZ0FycmF5W2luZGV4ICsgMV07XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnQXJyYXlbaW5wdXRdID0gdGVtcDtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uJywgSlNPTi5zdHJpbmdpZnkoY29uZmlnQXJyYXkpKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v56e75L2N5oiQ5YqfXFxcIlxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIGksIGNvbmZpZ0FycmF5KVxcclxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWdBcnJheS5zcGxpY2UoaSwgMSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uJywgSlNPTi5zdHJpbmdpZnkoY29uZmlnQXJyYXkpKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+WIoOmZpOaIkOWKn1xcXCJcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgfSwgaSwgY29uZmlnQXJyYXkpLFxcclxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXHJcXG4gICAgICAgICAgICB9KTtcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgfSBlbHNlIGlmIChnZXRNeVZhcignbW9kZScsICfphY3nva4nKSA9PSAn5om56YeP5bel5YW3Jykge1xcclxcbiAgICAgICAgaWYgKGdldE15VmFyKCd0eXBlJywgJ+aJuemHj+WIoOmZpCcpID09ICfmibnph4/liKDpmaQnKSB7XFxyXFxuICAgICAgICAgICAgZC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfnoa7orqTliKDpmaRcXFxcdFxcXFx0XFxcXHTigJjigJjigJnigJk8c3BhbiBzdHlsZT1cXFwiY29sb3I6cmVkXFxcIj4nICsgZ2V0TXlWYXIoJ2RlbE51bScsICcwJykgKyAnPC9zcGFuPlxcXFx0XFxcXHRcXFxcdOadoeino+aekCcsXFxyXFxuICAgICAgICAgICAgICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcclxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldE15VmFyKCdkZWxOdW0nLCAnMCcpID09ICcwJykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/or7flhYjpgInmi6nopoHliKDpmaTnmoTop6PmnpDvvIEnXFxyXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbEFycmF5ID0gSlNPTi5wYXJzZShnZXRNeVZhcignZGVsQXJyYXknKSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9nKGRlbEFycmF5KTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRGaWxlID0gcmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uJyk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbCgnY29uZmlnQXJyYXk9JyArIHNldEZpbGUpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0FycmF5ID0gW107XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb25maWdBcnJheS5sZW5ndGg7IGkrKykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWRlbEFycmF5LmluY2x1ZGVzKGkpKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdBcnJheS5wdXNoKGNvbmZpZ0FycmF5W2ldKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9NeVBhcnNlLmpzb24nLCBKU09OLnN0cmluZ2lmeShuZXdBcnJheSkpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbE51bT1nZXRNeVZhcignZGVsTnVtJywgJzAnKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdkZWxOdW0nKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdkZWxBcnJheScpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29uZmlnQXJyYXkubGVuZ3RoOyBpKyspIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignaXNDaG9vc2UnICsgaSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKHRydWUpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lhbHliKDpmaRcXFwiK2RlbE51bSsn5p2h6Kej5p6QJztcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgfSksXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxyXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBpZDogJ2RlbEJ0bidcXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgIH0pO1xcclxcbiAgICAgICAgICAgIGluZGV4ID0gMDtcXHJcXG4gICAgICAgICAgICBjb25maWdBcnJheS5mb3JFYWNoKGl0ZW0gPT4ge1xcclxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfigJjigJjigJnigJk8c3BhbiBzdHlsZT1cXFwiY29sb3I6IzZFQjg5N1xcXCI+JyArIGluZGV4ICsgJzwvc3Bhbj4tJyArIGl0ZW0ubmFtZSxcXHJcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6IGl0ZW0udXJsLFxcclxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5I25vTG9hZGluZyMnKS5sYXp5UnVsZSgoaW5kZXgsIGl0ZW0pID0+IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TXlWYXIoJ2lzQ2hvb3NlJyArIGluZGV4LCAnbm8nKSA9PSAneWVzJykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coaW5kZXgpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxBcnJheSA9IEpTT04ucGFyc2UoZ2V0TXlWYXIoJ2RlbEFycmF5JywgJ1tdJykpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxOdW0gPSBOdW1iZXIoZ2V0TXlWYXIoJ2RlbE51bScsICcwJykpIC0gMTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsQXJyYXkucG9wKGluZGV4KTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2RlbEFycmF5JywgZGVsQXJyYXkpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignZGVsTnVtJywgZGVsTnVtKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSXRlbShpbmRleCArICcnLCB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxzcGFuIHN0eWxlPVxcXCJjb2xvcjojNkVCODk3XFxcIj4nICsgaW5kZXggKyAnPC9zcGFuPi0nICsgaXRlbS5uYW1lLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSXRlbSgnZGVsQnRuJywge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfnoa7orqTliKDpmaRcXFxcdFxcXFx0XFxcXHTigJjigJjigJnigJk8c3BhbiBzdHlsZT1cXFwiY29sb3I6cmVkXFxcIj4nICsgZ2V0TXlWYXIoJ2RlbE51bScsICcwJykgKyAnPC9zcGFuPlxcXFx0XFxcXHRcXFxcdOadoeino+aekCdcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdpc0Nob29zZScgKyBpbmRleCwgJ25vJyk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsQXJyYXkgPSBKU09OLnBhcnNlKGdldE15VmFyKCdkZWxBcnJheScsICdbXScpKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsTnVtID0gTnVtYmVyKGdldE15VmFyKCdkZWxOdW0nLCAnMCcpKSArIDE7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbEFycmF5LnB1c2goaW5kZXgpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coZGVsQXJyYXkpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignZGVsQXJyYXknLCBkZWxBcnJheSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdkZWxOdW0nLCBkZWxOdW0pO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVJdGVtKGluZGV4ICsgJycsIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPHNwYW4gc3R5bGU9XFxcImNvbG9yOnJlZFxcXCI+JyArIGluZGV4ICsgJy0nICsgaXRlbS5uYW1lICsgJzwvc3Bhbj4nLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSXRlbSgnZGVsQnRuJywge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfnoa7orqTliKDpmaRcXFxcdFxcXFx0XFxcXHTigJjigJjigJnigJk8c3BhbiBzdHlsZT1cXFwiY29sb3I6cmVkXFxcIj4nICsgZ2V0TXlWYXIoJ2RlbE51bScsICcwJykgKyAnPC9zcGFuPlxcXFx0XFxcXHRcXFxcdOadoeino+aekCdcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdpc0Nob29zZScgKyBpbmRleCwgJ3llcycpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgIH0sIGluZGV4LCBpdGVtKSxcXHJcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXHJcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGluZGV4ICsgJydcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICAgICAgICAgIGluZGV4Kys7XFxyXFxuICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgICAgIGQucHVzaCh7XFxyXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn56Gu6K6k5YiG5LqrXFxcXHRcXFxcdFxcXFx04oCY4oCY4oCZ4oCZPHNwYW4gc3R5bGU9XFxcImNvbG9yOnJlZFxcXCI+JyArIGdldE15VmFyKCdzaGFyZU51bScsICcwJykgKyAnPC9zcGFuPlxcXFx0XFxcXHRcXFxcdOadoeino+aekCcsXFxyXFxuICAgICAgICAgICAgICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcclxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldE15VmFyKCdzaGFyZU51bScsICcwJykgPT0gJzAnKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+ivt+WFiOmAieaLqeimgeWIhuS6q+eahOino+aekO+8gSdcXHJcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVBcnJheSA9IEpTT04ucGFyc2UoZ2V0TXlWYXIoJ3NoYXJlQXJyYXknKSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9nKHNoYXJlQXJyYXkpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoJ2NvbmZpZ0FycmF5PScgKyByZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9NeVBhcnNlLmpzb24nKSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVGaWxlID0gW107XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb25maWdBcnJheS5sZW5ndGg7IGkrKykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hhcmVBcnJheS5pbmNsdWRlcyhpKSkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVGaWxlLnB1c2goY29uZmlnQXJyYXlbaV0pO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3JldENvbnRlbnQgPSBiYXNlNjRFbmNvZGUoYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KHNoYXJlRmlsZSkpKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3B5KFxcXCLliqnmiYvop6PmnpDlr7zlhaXlj6Pku6TCpcKlXFxcIiArIHNoYXJlUGFzdGUoc2VjcmV0Q29udGVudCkpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoJ3NoYXJlTnVtJyk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignc2hhcmVBcnJheScpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29uZmlnQXJyYXkubGVuZ3RoOyBpKyspIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignaXNDaG9vc2UnICsgaSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKHRydWUpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/liIbkuqvmiJDlip9cXFwiXFxyXFxuICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgIH0pLFxcclxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcclxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcclxcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICdzaGFyZUJ0bidcXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgIH0pO1xcclxcbiAgICAgICAgICAgIGluZGV4ID0gMDtcXHJcXG4gICAgICAgICAgICBjb25maWdBcnJheS5mb3JFYWNoKGl0ZW0gPT4ge1xcclxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfigJjigJjigJnigJk8c3BhbiBzdHlsZT1cXFwiY29sb3I6IzZFQjg5N1xcXCI+JyArIGluZGV4ICsgJzwvc3Bhbj4tJyArIGl0ZW0ubmFtZSxcXHJcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6IGl0ZW0udXJsLFxcclxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5I25vTG9hZGluZyMnKS5sYXp5UnVsZSgoaW5kZXgsIGl0ZW0pID0+IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TXlWYXIoJ2lzQ2hvb3NlJyArIGluZGV4LCAnbm8nKSA9PSAneWVzJykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coaW5kZXgpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZUFycmF5ID0gSlNPTi5wYXJzZShnZXRNeVZhcignc2hhcmVBcnJheScsICdbXScpKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVOdW0gPSBOdW1iZXIoZ2V0TXlWYXIoJ3NoYXJlTnVtJywgJzAnKSkgLSAxO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZUFycmF5LnBvcChpbmRleCk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdzaGFyZUFycmF5Jywgc2hhcmVBcnJheSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdzaGFyZU51bScsIHNoYXJlTnVtKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSXRlbShpbmRleCArICcnLCB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxzcGFuIHN0eWxlPVxcXCJjb2xvcjojNkVCODk3XFxcIj4nICsgaW5kZXggKyAnPC9zcGFuPi0nICsgaXRlbS5uYW1lLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSXRlbSgnc2hhcmVCdG4nLCB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+ehruiupOWIhuS6q1xcXFx0XFxcXHRcXFxcdOKAmOKAmOKAmeKAmTxzcGFuIHN0eWxlPVxcXCJjb2xvcjpyZWRcXFwiPicgKyBnZXRNeVZhcignc2hhcmVOdW0nLCAnMCcpICsgJzwvc3Bhbj5cXFxcdFxcXFx0XFxcXHTmnaHop6PmnpAnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2lzQ2hvb3NlJyArIGluZGV4LCAnbm8nKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZUFycmF5ID0gSlNPTi5wYXJzZShnZXRNeVZhcignc2hhcmVBcnJheScsICdbXScpKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVOdW0gPSBOdW1iZXIoZ2V0TXlWYXIoJ3NoYXJlTnVtJywgJzAnKSkgKyAxO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZUFycmF5LnB1c2goaW5kZXgpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coc2hhcmVBcnJheSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdzaGFyZUFycmF5Jywgc2hhcmVBcnJheSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdzaGFyZU51bScsIHNoYXJlTnVtKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSXRlbShpbmRleCArICcnLCB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxzcGFuIHN0eWxlPVxcXCJjb2xvcjpyZWRcXFwiPicgKyBpbmRleCArICctJyArIGl0ZW0ubmFtZSArICc8L3NwYW4+JyxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUl0ZW0oJ3NoYXJlQnRuJywge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfnoa7orqTliIbkuqtcXFxcdFxcXFx0XFxcXHTigJjigJjigJnigJk8c3BhbiBzdHlsZT1cXFwiY29sb3I6cmVkXFxcIj4nICsgZ2V0TXlWYXIoJ3NoYXJlTnVtJywgJzAnKSArICc8L3NwYW4+XFxcXHRcXFxcdFxcXFx05p2h6Kej5p6QJyxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdpc0Nob29zZScgKyBpbmRleCwgJ3llcycpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgIH0sIGluZGV4LCBpdGVtKSxcXHJcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXHJcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGluZGV4ICsgJydcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICAgICAgICAgIGluZGV4Kys7XFxyXFxuICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICB9XFxyXFxuICAgIH0gZWxzZSBpZiAoZ2V0TXlWYXIoJ21vZGUnLCAn6YWN572uJykgPT0gJ+ino+aekOa1i+ivlScpIHtcXHJcXG4gICAgICAgIHNldEZpbGUgPSByZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9NeVBhcnNlLmpzb24nKTtcXHJcXG4gICAgICAgIGV2YWwoJ2NvbmZpZ0FycmF5PScgKyBzZXRGaWxlKTtcXHJcXG4gICAgICAgIGNvbmZpZ0FycmF5LmZvckVhY2goaXRlbSA9PiB7XFxyXFxuICAgICAgICAgICAgamlleGkgPSBpdGVtLnVybDtcXHJcXG4gICAgICAgICAgICBkLnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICB0aXRsZTogaXRlbS5uYW1lICsgJ1xcXFx0XFxcXHRcXFxcdOKAmOKAmOKAmeKAmTxmb250IGNvbG9yPVxcXCIjNkVCODk3XFxcIj48c21hbGw+4p6u5YmN5b6A5rWL6K+VPC9zbWFsbD48L2ZvbnQ+JyxcXHJcXG4gICAgICAgICAgICAgICAgZGVzYzogaXRlbS51cmwsXFxyXFxuICAgICAgICAgICAgICAgIHVybDogJCgpLnJ1bGUoKGppZXhpKSA9PiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBsZXQgZCA9IFtdO1xcclxcbiAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+e8lui+kea1i+ivlemTvuaOpScsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnZWRpdEZpbGU6Ly9oaWtlcjovL2ZpbGVzL3J1bGVzL2N5L2Nlc2hpLmpzb24nLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcclxcbiAgICAgICAgICAgICAgICAgICAgfSwge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5by55bmVOicgKyBnZXRNeVZhcignZG1Td2l0Y2gnLCAn5YWzJyksXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5I25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRNeVZhcignZG1Td2l0Y2gnLCAn5YWzJykgPT0gJ+WFsycpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdkbVN3aXRjaCcsICflvIAnKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdkbVN3aXRjaCcsICflhbMnKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVJdGVtKCdkbVN3aXRjaCcsIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5by55bmVOicgKyBnZXRNeVZhcignZG1Td2l0Y2gnLCAn5YWzJyksXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJyxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2RtU3dpdGNoJ1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcclxcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWxlRXhpc3QoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvY2VzaGkuanNvbicpKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2VzaGlEYXRhID0ge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAn6IW+6K6v6KeG6aKRJzoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljOiAnaHR0cHM6Ly9hbmRyb2lkLWFydHdvcmtzLjI1cHAuY29tL2ZzMDgvMjAyMS8wOS8xNS8zLzEwNl8zYTBkMjEyZTE3Y2I5NWUyMzJmZmUxNTU0NjAzODVjYl9jb25fMTMweDEzMC5wbmcnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly92LnFxLmNvbS94L2NvdmVyL216YzAwMjAwcm1wYWY0MC9uMDAzNmw0dG50Yy5odG1sJ1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAn5LyY6YW3Jzoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljOiAnaHR0cHM6Ly9hbmRyb2lkLWFydHdvcmtzLjI1cHAuY29tL2ZzMDgvMjAyMS8wOS8xNi85LzExMF84ZmYwNmUwYzIzNzc2MGNkNTdkMjUwOGZkOThjODQxNF9jb25fMTMweDEzMC5wbmcnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly92LnlvdWt1LmNvbS92X3Nob3cvaWRfWE5EYzBNREUxTlRrMU1nPT0uaHRtbCdcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ+eIseWlh+iJuic6IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpYzogJ2h0dHBzOi8vYW5kcm9pZC1hcnR3b3Jrcy4yNXBwLmNvbS9mczA4LzIwMjEvMDkvMDkvOC8xMTBfOTAxZjJlZjM3YWYyZmVhMjVlNWQ5NjQ4ZjU1MWNlMzFfY29uXzEzMHgxMzAucG5nJyxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJ2h0dHA6Ly93d3cuaXFpeWkuY29tL3ZfMmdhOHp0czg2eXMuaHRtbCdcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ+iKkuaenFRWJzoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljOiAnaHR0cHM6Ly9hbmRyb2lkLWFydHdvcmtzLjI1cHAuY29tL2ZzMDgvMjAyMS8wOS8xNS82LzExMF8xODM0ZDI5NmFhNWI1NjY2YTdkOTRiMWUzNDc5YWU2NF9jb25fMTMweDEzMC5wbmcnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnaHR0cDovL3d3dy5tZ3R2LmNvbS9iLzM0OTI1My8xMDQyNDMwMC5odG1sJ1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAn5ZOU5ZOp5ZOU5ZOpJzoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljOiAnaHR0cHM6Ly9hbmRyb2lkLWFydHdvcmtzLjI1cHAuY29tL2ZzMDgvMjAyMS8wOS8yNy80LzExMF84ZTJlM2Q4OGM0NTAyNWIzODBlNjk4MTdkNmZiNTNiMV9jb25fMTMweDEzMC5wbmcnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9tLmJpbGliaWxpLmNvbS9iYW5ndW1pL3BsYXkvZXA0Mjg5OTMnXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICfmkJzni5Dop4bpopEnOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWM6ICdodHRwczovL2FuZHJvaWQtYXJ0d29ya3MuMjVwcC5jb20vZnMwOC8yMDIxLzA5LzE1LzkvMTEwXzUzMmE1MWY4NDMxZWZjMzc3ODA4YzFmZmZmMmRhMzZmX2Nvbl8xMzB4MTMwLnBuZycsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL20udHYuc29odS5jb20vdjczMjk0NDEuc2h0bWwnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAn6KW/55Oc6KeG6aKRJzoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljOiAnaHR0cHM6Ly9hbmRyb2lkLWFydHdvcmtzLjI1cHAuY29tL2ZzMDgvMjAyMS8wOS8yNy81LzExMF9hODYyNjU4ODJlZDE4YzYxOTA1NjZlOWVhMjVmOTY5OF9jb25fMTMweDEzMC5wbmcnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly93d3cuaXhpZ3VhLmNvbS82Njk5MzU2NzkyOTA1Nzk0MDU1J1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAn5LmQ6KeGJzoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljOiAnaHR0cHM6Ly9hbmRyb2lkLWFydHdvcmtzLjI1cHAuY29tL2ZzMDgvMjAyMS8wOS8xNS84LzJfMzViNWQ0MzczZjRiY2JhMjhmMzk0ODZlNGYxMTY0ZDlfY29uXzEzMHgxMzAucG5nJyxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vbS5sZS5jb20vdnBsYXlfNzY5NTQzMzMuaHRtbD9mcm9tPWFqYXgnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMTkwNSc6IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpYzogJ2h0dHBzOi8vYW5kcm9pZC1hcnR3b3Jrcy4yNXBwLmNvbS9mczA4LzIwMjEvMDkvMTgvNC8xMTBfNWYyNGIxMDUyZmVkNGY3ZmM3MzU5M2E4ZWYyNzI3NmRfY29uXzEzMHgxMzAucG5nJyxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vdmlwLjE5MDUuY29tL20vcGxheS8xNDI5NzI1LnNodG1sJ1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAn6aOO6KGM6KeG6aKRJzoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljOiAnaHR0cHM6Ly9hbmRyb2lkLWFydHdvcmtzLjI1cHAuY29tL2ZzMDgvMjAyMS8wOS8xNi80LzExMF82ZjZhZjlmOTliMjYyOWU1MWYwYjBhMzNjZGZmMWQ5ZV9jb25fMTMweDEzMC5wbmcnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnaHR0cDovL20uZnVuLnR2L21wbGF5Lz9taWQ9OTU3MTknXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQUFRW6KeG6aKRJzoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljOiAnaHR0cHM6Ly9hbmRyb2lkLWFydHdvcmtzLjI1cHAuY29tL2ZzMDgvMjAyMS8wOS8yOC81LzExMF9hNDU1YjI5NTEyMjcwNDBlZTYyOTU1ZWRjZmI4OWQ3Ml9jb25fMTMweDEzMC5wbmcnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly92LnBwdHYuY29tL3Nob3cvelZuM2RKWHQxeFY0OWw0Lmh0bWwnXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICfpvpnohb4nOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWM6ICdodHRwczovL2xhbm1laWd1b2ppYW5nLmNvbS90dWJpYW8va2UvNC5wbmcnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnTFQtMWVjM2Y2NzU0ZjY4NTg2ZWQ3ZjkyYzNlOTk1Y2ZjYTYnXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICfkurrkurrov7cnOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWM6ICdodHRwczovL2xhbm1laWd1b2ppYW5nLmNvbS90dWJpYW8va2UvNi5wbmcnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAncmVucmVubWktYWI5MjRlMTFkMmQ2OTM5NydcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ+S6lOavkic6IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpYzogJ2h0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9rZS8zMC5wbmcnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnd3VkdXl1bi0xNjQ5NDMxMzA3MDIxJ1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAn5aSa5aSaJzoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljOiAnaHR0cHM6Ly9sYW5tZWlndW9qaWFuZy5jb20vdHViaWFvL2tlLzQ5LnBuZycsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL20zdTguY2FjaGUuc3VveW8uY2MvbTN1OC8yMDIyMDMvOC9hYWFiZDkyZGEyNjc3NGM2ODg1MGEwMjMxNTNjODBmMWFlNmZhOWJlLm0zdTgnXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICfono3lhbQnOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWM6ICdodHRwczovL2xhbm1laWd1b2ppYW5nLmNvbS90dWJpYW8va2UvODAucG5nJyxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJ1JvbmdYaW5nVlItNDIxNTY0NTU4MTkzMidcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ+mbquS6uic6IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpYzogJ2h0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9xLzEzMy5wbmcnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAneHVlcmVuLTE2NDY4MjMwNzInXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICfml4vpo47kupEnOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWM6ICdodHRwczovL2xhbm1laWd1b2ppYW5nLmNvbS90dWJpYW8va2UvNTQucG5nJyxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJ3hmeS01MjllNjQ1Nzk1M2Q1NDVmJ1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAn55Ge5Liw6LWE5rqQJzoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljOiAnaHR0cHM6Ly9sYW5tZWlndW9qaWFuZy5jb20vdHViaWFvL2tlLzcyLnBuZycsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovLzEucnVpZmVuZ2xiLmNvbS9wbGF5LzE2NDQ5MTQ1OTUubTN1OCdcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2N5L2Nlc2hpLmpzb24nLCBKU09OLnN0cmluZ2lmeShjZXNoaURhdGEpKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgIGNlc2hpRGF0YSA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9jZXNoaS5qc29uJykpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBjZXNoaURhdGEpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBkLnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcHJvcCxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nOiBjZXNoaURhdGFbcHJvcF0ucGljICsgJ0BSZWZlcmVyPScsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMjbm9IaXN0b3J5IycpLmxhenlSdWxlKChjZXNoaURhdGEsIHByb3AsIGppZXhpKSA9PiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXBVcmwgPSBjZXNoaURhdGFbcHJvcF0udXJsO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJscyA9IFtcXFwidmlkZW86Ly9cXFwiICsgamlleGkgKyB2aXBVcmxdO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXMgPSBbJ+a1i+ivlSddXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TXlWYXIoJ2RtU3dpdGNoJywgJ+WFsycpID09ICflvIAnKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL3ZpZGVvRG0uanM/cnVsZT1kbeebkuWtkFxcXCIpLmdldEZvcih2aXBVcmwsIHVybHMsIG5hbWVzKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ2aWRlbzovL1xcXCIgKyBqaWV4aSArIHZpcFVybDtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgY2VzaGlEYXRhLCBwcm9wLCBqaWV4aSksXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaWNvbl80J1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcclxcbiAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+a1i+ivlScsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogJ+S9oOi/mOWPr+S7peS7u+aEj+i+k+WFpeS4gOS4quinhumikeWcsOWdgOa1i+ivleW9k+WJjeino+aekH4nLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJC50b1N0cmluZygoamlleGkpID0+IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlwVXJsID0gZ2V0TXlWYXIoJ2Nlc2hpTGluaycpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzID0gW1xcXCJ2aWRlbzovL1xcXCIgKyBqaWV4aSArIHZpcFVybF07XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzID0gWyfmtYvor5UnXVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TXlWYXIoJ2RtU3dpdGNoJywgJ+WFsycpID09ICflvIAnKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvdmlkZW9EbS5qcz9ydWxlPWRt55uS5a2QXFxcIikuZ2V0Rm9yKHZpcFVybCwgdXJscywgbmFtZXMpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ2aWRlbzovL1xcXCIgKyBqaWV4aSArIHZpcFVybDtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIGppZXhpKSxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IC0xLFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXFxcInB1dE15VmFyKCdjZXNoaUxpbmsnLGlucHV0KVxcXCIsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgfSwge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5Yig6Zmk6K+l6Kej5p6QJyxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiAn6K+36K6k55yf6ICD6JmRficsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5I25vTG9hZGluZyMnKS5sYXp5UnVsZSgoamlleGkpID0+IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbiAodmFsKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpc1tpXS51cmwgPT0gdmFsKSByZXR1cm4gaTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uICh2YWwpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHRoaXMuaW5kZXhPZih2YWwpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNwbGljZShpbmRleCwgMSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEZpbGUgPSByZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9NeVBhcnNlLmpzb24nKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbCgnY29uZmlnQXJyYXk9JyArIHNldEZpbGUpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdBcnJheS5yZW1vdmUoamlleGkpOyBcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvY3kvTXlQYXJzZS5qc29uJywgSlNPTi5zdHJpbmdpZnkoY29uZmlnQXJyYXkpKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g5YWz6Zet6aG16Z2i5bm25Yi35paw5YmN5LiA5Liq6aG16Z2iXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2sodHJ1ZSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/liKDpmaTmiJDlip9+XFxcIjtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBqaWV4aSksXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcclxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICAgICAgICAgICAgICBzZXRIb21lUmVzdWx0KGQpO1xcclxcbiAgICAgICAgICAgICAgICB9LCBqaWV4aSksXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcclxcbiAgICAgICAgICAgIH0pO1xcclxcbiAgICAgICAgfSk7XFxyXFxuICAgIH1cXHJcXG59IGNhdGNoIChlKSB7XFxyXFxuICAgIGQucHVzaCh7XFxyXFxuICAgICAgICB0aXRsZTogJ+mFjee9ruaWh+S7tuaIluW3suaNn+Wdj34nLFxcclxcbiAgICAgICAgZGVzYzogJ+eCueWHu+WJjeWOu+ajgOafpSzoh6rooYznvJbovpHmlofku7bkv67lpI0nLFxcclxcbiAgICAgICAgdXJsOiBcXFwiZWRpdEZpbGU6Ly9oaWtlcjovL2ZpbGVzL3J1bGVzL2N5L015UGFyc2UuanNvblxcXCIsXFxyXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxyXFxuICAgIH0sIHtcXHJcXG4gICAgICAgIHRpdGxlOiAn5LiA6ZSu6YeN55SfficsXFxyXFxuICAgICAgICBkZXNjOiAn5Zue5b2S5Y6f5Yid54q25oCB77yM5bCG5riF56m66Kej5p6Q6YWN572uISEhJyxcXHJcXG4gICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxyXFxuICAgICAgICAgICAgY29uZmlnQXJyYXkgPSBbXTtcXHJcXG4gICAgICAgICAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9jeS9NeVBhcnNlLmpzb24nLCBKU09OLnN0cmluZ2lmeShjb25maWdBcnJheSkpO1xcclxcbiAgICAgICAgfSksXFxyXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxyXFxuICAgIH0pO1xcclxcbn1cXHJcXG5zZXRSZXN1bHQoZCk7XFxyXFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLosIPnlKjot6/nlLFcIixcInBhdGhcIjpcIm11bFBhcnNlXCIsXCJydWxlXCI6XCIvKlxcclxcbiB2aXBVcmw65a6Y572R5Zyw5Z2AO+i/lOWbnuWAvEpTT07moLzlvI/nmoTlpJrnur/ot6/op4bpopHlnLDlnYBcXHJcXG7osIPnlKjmjqXlj6PvvJokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9tdWxQYXJzZT9ydWxlPemFjee9ruWKqeaJi1xcXCIpLm11bFBhcnNlKHZpcFVybCk7XFxyXFxuICovXFxyXFxuJC5leHBvcnRzLm11bFBhcnNlID0gZnVuY3Rpb24gKHZpcFVybCxiZkxpbmssamlleGlOYW1lKSB7XFxyXFxuICAgIGlmICh2aXBVcmwuaW5kZXhPZignZG91YmFuJykgIT0gLTEpIHtcXHJcXG4gICAgICAgIHZpcFVybD12aXBVcmwuc3BsaXQoJz9wdGFnPScpWzBdXFxyXFxuICAgIH1cXHJcXG4gICAgbG9nKCfop4bpopHljp/lnLDlnYDvvJonK3ZpcFVybCk7XFxyXFxuICAgIGlmIChiZkxpbmsmJmppZXhpTmFtZSkge1xcclxcbiAgICAgICAgdmFyIHVybHMgPSBiZkxpbms7XFxyXFxuICAgICAgICB2YXIgbmFtZXMgPSBqaWV4aU5hbWU7XFxyXFxuICAgIH1lbHNle1xcclxcbiAgICAgICAgdmFyIHVybHMgPSBbXTtcXHJcXG4gICAgICAgIHZhciBuYW1lcyA9IFtdO1xcclxcbiAgICB9XFxyXFxuICAgIGxvZyhcXFwi5aSa57q/6Lev6Kej5p6Q5byA5aeLXFxcIilcXHJcXG4gICAgdmFyIGxpc3QgPSBKU09OLnBhcnNlKHJlYWRGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2N5L015UGFyc2UuanNvblxcXCIpKVxcclxcbiAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XFxyXFxuICAgICAgICB1cmxzLnB1c2goXFxcInZpZGVvOi8vXFxcIiArIGl0ZW0udXJsICsgdmlwVXJsKTtcXHJcXG4gICAgICAgIG5hbWVzLnB1c2goaXRlbS5uYW1lKTtcXHJcXG4gICAgfSk7XFxyXFxuICAgIGxvZyhg5b2T5YmN5ZCv55So6Kej5p6Q77yaJHt1cmxzLmxlbmd0aH3kuKpgKVxcclxcbiAgICB2YXIgZG1Td2l0Y2ggPSByZXF1ZXN0KCdoaWtlcjovL2ZpbGVzL3J1bGVzL2N5L2RtU3dpdGNoLnR4dCcpO1xcclxcbiAgICBpZiAoZG1Td2l0Y2ggPT0gJ3RydWUnKSB7XFxyXFxuICAgICAgICByZXR1cm4gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvdmlkZW9EbS5qcz9ydWxlPWRt55uS5a2QXFxcIikuZ2V0Rm9yKHZpcFVybCwgdXJscywgbmFtZXMpO1xcclxcbiAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXHJcXG4gICAgICAgICAgICB1cmxzOiB1cmxzLFxcclxcbiAgICAgICAgICAgIG5hbWVzOiBuYW1lc1xcclxcbiAgICAgICAgfSk7XFxyXFxuICAgIH1cXHJcXG59XFxyXFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmlq3mj5Lmj5Lku7ZcIixcInBhdGhcIjpcImR1YW5cIixcInJ1bGVcIjpcImZ1bmN0aW9uIGF5dG1QYXJzZSh2aXBVcmwpIHtcXHJcXG4gICAgcmV0dXJuICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL211bFBhcnNlP3J1bGU96YWN572u5Yqp5omLXFxcIikubXVsUGFyc2UodmlwVXJsKTtcXHJcXG59XFxyXFxuXCJ9XSIsImljb24iOiJodHRwczovL2xhbm1laWd1b2ppYW5nLmNvbS90dWJpYW8vbW9yZS8zNC5wbmciLCJwcm94eSI6IiJ9
Add Comment
Please, Sign In to add comment