Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥无码流出@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIm1pc3NcIixcInBhdGhcIjpcIm1pc3NcIixcInJ1bGVcIjpcImNvbnN0IG1pc3MgPSB7XFxuICAgIGVtcHR5OiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgIHVybDogJ2h0dHBzOi8vbWlzc2F2LmNvbS9jbi8nLFxcbiAgICBkOiBbXSxcXG4gICAgdGFza0xpc3Q6IFtdLFxcbiAgICBkYXRhOiB7XFxuICAgICAgICBjYXRlZ29yeTogZ2V0TXlWYXIoJ01pc3NBVi5jYXRlZ29yeScsICcwJyksXFxuICAgICAgICBzdWJDYXRlOiBnZXRNeVZhcignTWlzc0FWLnN1YkNhdGUnLCAnMCcpLFxcbiAgICB9LFxcbiAgICBiYXNlUGFyc2U6ICgpID0+IHtcXG4gICAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChNWV9VUkwuc3BsaXQoJyMjJylbMV0pXFxuICAgICAgICBsZXQgY2F0ZWdvcnlMaXN0ID0gW3tcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfku4rml6Xng63pl6gnLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAndG9kYXktaG90JyxcXG4gICAgICAgICAgICAgICAgdHlwZTogJ3ZpZGVvJyxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+acrOmAseeDremXqCcsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICd3ZWVrbHktaG90JyxcXG4gICAgICAgICAgICAgICAgdHlwZTogJ3ZpZGVvJyxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+acrOaciOeDremXqCcsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdtb250aGx5LWhvdCcsXFxuICAgICAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxuICAgICAgICAgICAgICAgIHN1YjogW11cXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfkuK3mloflrZfluZUnLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnY2hpbmVzZS1zdWJ0aXRsZScsXFxuICAgICAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxuICAgICAgICAgICAgICAgIHN1YjogW11cXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfmnIDov5Hmm7TmlrAnLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnbmV3JyxcXG4gICAgICAgICAgICAgICAgdHlwZTogJ3ZpZGVvJyxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+aWsOS9nOS4iuW4gicsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdyZWxlYXNlJyxcXG4gICAgICAgICAgICAgICAgdHlwZTogJ3ZpZGVvJyxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+e0oOS6uicsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxcbiAgICAgICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcbiAgICAgICAgICAgICAgICBzdWI6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfntKDkurpTSVJPJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnc2lybydcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfntKDkurpMVVhVJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnbHV4dSdcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfntKDkurpHQU5BJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnZ2FuYSdcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfntKDkurpQUkVTVElHRSBQUkVNSVVNJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnbWFhbidcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfntKDkurpTLUNVVEUnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdzY3V0ZSdcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfntKDkurpBUkEnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdhcmEnXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICBdXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CBJyxcXG4gICAgICAgICAgICAgICAgcGF0aDogJycsXFxuICAgICAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxuICAgICAgICAgICAgICAgIHN1YjogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+aXoOeggea1geWHuicsXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ3VuY2Vuc29yZWQtbGVhaydcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfml6DnoIFGQzInLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdmYzInXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CBSEVZWk8gJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnaGV5em8nXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CB5Lic5Lqs54OtJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAndG9reW9ob3QnXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfkuIDmnKzpgZMnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICcxcG9uZG8nXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CBQ2FyaWJiZWFuY29tJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnY2FyaWJiZWFuY29tJ1xcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+aXoOeggUNhcmliYmVhbmNvbXByJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnY2FyaWJiZWFuY29tcHInXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CBMTBtdXN1bWUnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICcxMG11c3VtZSdcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfml6DnoIFwYWNvcGFjb21hbWEnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNvcGFjb21hbWEnXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CBR2FjaGluY28nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdnYWNoaW5jbydcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfml6DnoIFYWFgtQVYnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICd4eHhhdidcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfml6DnoIHkurrlprvmlqknLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdtYXJyaWVkc2xhc2gnXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CB6aG955quIDQ2MTAnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICduYXVnaHR5NDYxMCdcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfml6DnoIHpob3nmq4gMDkzMCcsXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ25hdWdodHkwOTMwJ1xcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgXVxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+WbveS6pyBBVicsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxcbiAgICAgICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcbiAgICAgICAgICAgICAgICBzdWI6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfpurvosYbkvKDlqpInLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdtYWRvdSdcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdUV0FWJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAndHdhdidcXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0Z1cnVrZScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ2Z1cnVrZSdcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIF1cXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdWUicsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdnZW5yZXMvVlInLFxcbiAgICAgICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcbiAgICAgICAgICAgICAgICBzdWI6IFtdXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnQVYg5b2x6K+EJyxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ2FydGljbGVzJyxcXG4gICAgICAgICAgICAgICAgdHlwZTogJ2FydGljbGVzJyxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+Wls+S8mOS4gOiniCcsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdhY3RyZXNzZXMnLFxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYXZhdGFyJyxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+Wls+S8mOaOkuihjCcsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdhY3RyZXNzZXMvcmFua2luZycsXFxuICAgICAgICAgICAgICAgIHR5cGU6ICdhdmF0YXInLFxcbiAgICAgICAgICAgICAgICBzdWI6IFtdXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn57G75Z6LJyxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ2dlbnJlcycsXFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0YWdzJyxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+WPkeihjOWVhicsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdtYWtlcnMnLFxcbiAgICAgICAgICAgICAgICB0eXBlOiAndGFncycsXFxuICAgICAgICAgICAgICAgIHN1YjogW11cXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgXVxcbiAgICAgICAgY29uc3QgY3VycmVudENhdGUgPSBjYXRlZ29yeUxpc3RbbWlzcy5kYXRhLmNhdGVnb3J5XVxcbiAgICAgICAgbGV0IHVybFxcbiAgICAgICAgY29uc3QgdHlwZSA9IGN1cnJlbnRDYXRlLnR5cGVcXG4gICAgICAgIGNvbnN0IHBhdGggPSBjdXJyZW50Q2F0ZS5wYXRoXFxuICAgICAgICBpZiAoY3VycmVudENhdGUuc3ViLmxlbmd0aCA+IDApIHtcXG4gICAgICAgICAgICB1cmwgPSBtaXNzLnVybCArIGN1cnJlbnRDYXRlLnN1YlttaXNzLmRhdGEuc3ViQ2F0ZV0ucGF0aFxcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICB1cmwgPSBtaXNzLnVybCArIGN1cnJlbnRDYXRlLnBhdGhcXG4gICAgICAgIH1cXG4gICAgICAgIHVybCArPSAnP3BhZ2U9JyArIHBhZ2VcXG4gICAgICAgIGlmIChwYWdlID09PSAxKSB7XFxuICAgICAgICAgICAgY2F0ZWdvcnlMaXN0LmZvckVhY2goKGNhdGUsIGluZGV4KSA9PiB7XFxuICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwYXJzZUludChtaXNzLmRhdGEuY2F0ZWdvcnkpID09PSBpbmRleCA/XFxuICAgICAgICAgICAgICAgICAgICAgICAgJ+KAmOKAmOKAmeKAmTxzdHJvbmc+PGZvbnQgY29sb3I9XFxcIiNmZjE0OTNcXFwiPicgKyBjYXRlLnRpdGxlICsgJzwvZm9udD48L3N0cm9uZz4nIDogY2F0ZS50aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJChtaXNzLmVtcHR5KS5sYXp5UnVsZSgoaW5kZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwiTWlzc0FWLmNhdGVnb3J5XFxcIiwgaW5kZXgudG9TdHJpbmcoKSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwiTWlzc0FWLnN1YkNhdGVcXFwiLCAnMCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9LCBpbmRleCksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgaWYgKGN1cnJlbnRDYXRlLnN1Yi5sZW5ndGggPiAwKSB7XFxuICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICBjdXJyZW50Q2F0ZS5zdWIuZm9yRWFjaCgoY2F0ZSwgaW5kZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcGFyc2VJbnQobWlzcy5kYXRhLnN1YkNhdGUpID09PSBpbmRleCA/XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICfigJjigJjigJnigJk8c3Ryb25nPjxmb250IGNvbG9yPVxcXCIjZmYxNDkzXFxcIj4nICsgY2F0ZS50aXRsZSArXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L2ZvbnQ+PC9zdHJvbmc+JyA6IGNhdGUudGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKG1pc3MuZW1wdHkpLmxhenlSdWxlKChpbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwiTWlzc0FWLnN1YkNhdGVcXFwiLCBpbmRleC50b1N0cmluZygpKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgaW5kZXgpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGh0bWwgPSBmZXRjaCh1cmwsIHtcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjApJ1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pXFxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcXG4gICAgICAgICAgICBjYXNlICd2aWRlbyc6XFxuICAgICAgICAgICAgICAgIG1pc3MudmlkZW9UeXBlKGh0bWwpXFxuICAgICAgICAgICAgICAgIGJyZWFrXFxuICAgICAgICAgICAgY2FzZSAnYXJ0aWNsZXMnOlxcbiAgICAgICAgICAgICAgICBtaXNzLmFydGljbGVzVHlwZShodG1sKVxcbiAgICAgICAgICAgICAgICBicmVha1xcbiAgICAgICAgICAgIGNhc2UgJ2F2YXRhcic6XFxuICAgICAgICAgICAgICAgIGlmICgocGF0aCA9PT0gJ2FjdHJlc3Nlcy9yYW5raW5nJyAmJiBwYWdlID09PSAxKSB8fCBwYXRoICE9PSAnYWN0cmVzc2VzL3JhbmtpbmcnKSB7XFxuICAgICAgICAgICAgICAgICAgICBtaXNzLmF2YXRhclR5cGUoaHRtbClcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBicmVha1xcbiAgICAgICAgICAgIGNhc2UgJ3RhZ3MnOlxcbiAgICAgICAgICAgICAgICBtaXNzLnRhZ3NUeXBlKGh0bWwpXFxuICAgICAgICAgICAgICAgIGJyZWFrXFxuICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgbWlzcy52aWRlb1R5cGUoaHRtbClcXG4gICAgICAgIH1cXG4gICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxuICAgIH0sXFxuXFxuXFxuICAgIHNlYXJjaFBhcnNlOiAoKSA9PiB7XFxuICAgICAgICBpZiAoTVlfVVJMLmluY2x1ZGVzKFxcXCJwYWdlPTFcXFwiKSkge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLigJTigJTlpbPkvJjigJTigJRcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIG1pc3MuYXZhdGFyVHlwZShnZXRSZXNDb2RlKCkpO1xcblxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLigJTigJTlvbHniYfigJTigJRcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIG1pc3MudmlkZW9UeXBlMihnZXRSZXNDb2RlKCkpO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBtaXNzLnZpZGVvVHlwZShnZXRSZXNDb2RlKCkpO1xcbiAgICAgICAgfVxcbiAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXG4gICAgfSxcXG5cXG5cXG4gICAgdmlkZW9QYXJzZTogKHVybCkgPT4ge1xcbiAgICAgICAgY29uc3QgaHRtbCA9IGZldGNoKHVybCwge1xcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCknXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgICAgIGNvbnN0IHRpdGxlID0gcGRmaChodG1sLCAnaDEmJlRleHQnKVxcblxcbiAgICAgICAgc2V0UGFnZVRpdGxlKHRpdGxlKVxcblxcblxcbiAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJyArIHRpdGxlLnNtYWxsKCksXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgIGxpbmVWaXNpYWJsZTogZmFsc2VcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KVxcbiAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgIGRlc2M6IHBkZmgoaHRtbCwgJy50ZXh0LXNlY29uZGFyeS5icmVhay1hbGwubGluZS1jbGFtcC0yJiZUZXh0JyksXFxuICAgICAgICAgICAgcGljX3VybDogcGRmaChodG1sLCAnbWV0YVtwcm9wZXJ0eT1vZzppbWFnZV0mJmNvbnRlbnQnKSArICdAUmVmZXJlcj0nICsgbWlzcy51cmwsXFxuICAgICAgICAgICAgdXJsOiAkKG1pc3MuZW1wdHkgKyAnI25vSGlzdG9yeSMnKS5sYXp5UnVsZSgoaHRtbCwgdXJsKSA9PiB7XFxuICAgICAgICAgICAgICAgIGV2YWwoaHRtbC5tYXRjaCgvZXZhbC4qP1xcXFxuLylbMF0pXFxuICAgICAgICAgICAgICAgIC8vIOiOt+WPlueUu+i0qOWIl+ihqO+8jOW5tuWOu+acgOmrmOeUu+i0qFxcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBfcXVhbGl0eSA9IGZldGNoKHNvdXJjZSwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJvcmlnaW5cXFwiOiBcXFwiaHR0cHM6Ly9taXNzYXYuY29tXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICBoZ2hlc3RfcXVhbGl0eSA9IGdyb3VwX3F1YWxpdHkubWF0Y2goL14oLiopXFxcXC5tM3U4JC9nbSkubWFwKHYgPT4gc291cmNlLnJlcGxhY2UoXFxcInBsYXlsaXN0Lm0zdThcXFwiLCB2KSkucmV2ZXJzZSgpXFxuICAgICAgICAgICAgICAgIG5hbWVfcXVhbGl0eSA9IGdyb3VwX3F1YWxpdHkubWF0Y2goL1JFU09MVVRJT049LiokL2dtKS5tYXAobiA9PiBuLnJlcGxhY2UoXFxcIlJFU09MVVRJT049XFxcIiwgXFxcIlxcXCIpKS5yZXZlcnNlKClcXG4gICAgICAgICAgICAgICAgbGV0IHBsYXlsaXN0ID0ge1xcbiAgICAgICAgICAgICAgICAgICAgdXJsczogaGdoZXN0X3F1YWxpdHksXFxuICAgICAgICAgICAgICAgICAgICBuYW1lczogbmFtZV9xdWFsaXR5LFxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogbmV3IEFycmF5KGhnaGVzdF9xdWFsaXR5Lmxlbmd0aCkuZmlsbCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlcjogdXJsXFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICByZXR1cm4gcGxheWxpc3Q7XFxuICAgICAgICAgICAgfSwgaHRtbCwgbWlzcy51cmwpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAncGljXzFfZnVsbCcsXFxuICAgICAgICB9KVxcbiAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBwZGZoKGh0bWwsICcudGV4dC1zZWNvbmRhcnkuYnJlYWstYWxsLmxpbmUtY2xhbXAtMiYmVGV4dCcpLnNtYWxsKCksXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnLFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgIGxpbmVWaXNpYWJsZTogZmFsc2VcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KVxcblxcbiAgICAgICAgY29uc3QgdGV4dF9zZWNvbmRhcnlfbGlzdCA9IHBkZmEoaHRtbCwgJ2JvZHkmJi50ZXh0LXNlY29uZGFyeScpXFxuICAgICAgICBsZXQgbnVtLCBhY3RyZXNzZXNMaXN0LCB0YWdzTGlzdCwgc2VyaWVzLCBtYWtlcnMsIGRpcmVjdG9ycywgbGFiZWxzTGlzdFxcbiAgICAgICAgdGV4dF9zZWNvbmRhcnlfbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgIGxldCBjdXJyZW50X3RpdGxlID0gcGRmaChpdGVtLCAnc3BhbiYmVGV4dCcpXFxuICAgICAgICAgICAgbGV0IGFjdHJlc3NOYW1lID0gJ+Wls+S8mCdcXG4gICAgICAgICAgICBpZiAoY3VycmVudF90aXRsZSA9PT0gJ+eVquWPtzonKSB7XFxuICAgICAgICAgICAgICAgIG51bSA9IHBkZmgoaXRlbSwgJy5mb250LW1lZGl1bSYmVGV4dCcpXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X3RpdGxlID09PSBhY3RyZXNzTmFtZSArICc6Jykge1xcbiAgICAgICAgICAgICAgICBhY3RyZXNzZXNMaXN0ID0gcGRmYShpdGVtLCAnLnRleHQtc2Vjb25kYXJ5JiZhJylcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRfdGl0bGUgPT09ICfnsbvlnos6Jykge1xcbiAgICAgICAgICAgICAgICB0YWdzTGlzdCA9IHBkZmEoaXRlbSwgJy50ZXh0LXNlY29uZGFyeSYmYScpXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X3RpdGxlID09PSAn57O75YiXOicpIHtcXG4gICAgICAgICAgICAgICAgc2VyaWVzID0gcGRmYShpdGVtLCAnLnRleHQtc2Vjb25kYXJ5JiZhJylbMF1cXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRfdGl0bGUgPT09ICflj5HooYzllYY6Jykge1xcbiAgICAgICAgICAgICAgICBtYWtlcnMgPSBwZGZhKGl0ZW0sICcudGV4dC1zZWNvbmRhcnkmJmEnKVswXVxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudF90aXRsZSA9PT0gJ+WvvOa8lDonKSB7XFxuICAgICAgICAgICAgICAgIGRpcmVjdG9ycyA9IHBkZmEoaXRlbSwgJy50ZXh0LXNlY29uZGFyeSYmYScpWzBdXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X3RpdGxlID09PSAn5qCH57GkOicpIHtcXG4gICAgICAgICAgICAgICAgbGFiZWxzTGlzdCA9IHBkZmEoaXRlbSwgJy50ZXh0LXNlY29uZGFyeSYmYScpXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgICAgIGlmIChudW0pIHtcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn55Wq5Y+3JyxcXG4gICAgICAgICAgICAgICAgdXJsOiBtaXNzLmVtcHR5LFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBudW0sXFxuICAgICAgICAgICAgICAgIHVybDogJ2NvcHk6Ly8nICsgbnVtLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgICAgICBpZiAoYWN0cmVzc2VzTGlzdCkge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfmvJTlkZgnLFxcbiAgICAgICAgICAgICAgICB1cmw6IG1pc3MuZW1wdHksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGFjdHJlc3Nlc0xpc3QuZm9yRWFjaCgoYWN0cmVzc2VzLCBpbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBwZGZoKGFjdHJlc3NlcywgJ2EmJlRleHQnKVxcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gcGRmaChhY3RyZXNzZXMsICdhJiZocmVmJylcXG4gICAgICAgICAgICAgICAgbWlzcy50YXNrTGlzdC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIGZ1bmM6IG1pc3MudXBkYXRlQXZhdGFyLFxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW06IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHVybCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogJ2F2YXRhcl8nICsgaW5kZXhcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICBpZDogJ2F2YXRhcl8nICsgaW5kZXgsXFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgIHBpY191cmw6IG1pc3MuZW1wdHksXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQodXJsICsgJz9wYWdlPWZ5cGFnZSNub0hpc3RvcnkjJykucnVsZSgodGl0bGUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaXNzID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbWlzcycpXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFnZVRpdGxlKHRpdGxlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pc3MuYXZhdGFyUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxuICAgICAgICAgICAgICAgICAgICB9LCB0aXRsZSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcicsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnYXZhdGFyXycgKyBpbmRleCxcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgICAgICBpZiAodGFnc0xpc3QpIHtcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn57G75Z6LJyxcXG4gICAgICAgICAgICAgICAgdXJsOiBtaXNzLmVtcHR5LFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB0YWdzTGlzdC5mb3JFYWNoKHRhZyA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCB0YWdfdGl0bGUgPSBwZGZoKHRhZywgJ2EmJlRleHQnKVxcbiAgICAgICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGFnX3RpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKHBkZmgodGFnLCAnYSYmaHJlZicpICsgJz9wYWdlPWZ5cGFnZSNub0hpc3RvcnkjJykucnVsZSgodGFnX3RpdGxlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhZ2VUaXRsZSh0YWdfdGl0bGUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlzcy50YWdzUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxuICAgICAgICAgICAgICAgICAgICB9LCB0YWdfdGl0bGUpLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgICAgICBpZiAoc2VyaWVzKSB7XFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+ezu+WIlycsXFxuICAgICAgICAgICAgICAgIHVybDogbWlzcy5lbXB0eSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgbGV0IHNlcmllc190aXRsZSA9IHBkZmgoc2VyaWVzLCAnYSYmVGV4dCcpXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogc2VyaWVzX3RpdGxlLFxcbiAgICAgICAgICAgICAgICB1cmw6ICQocGRmaChzZXJpZXMsICdhJiZocmVmJykgKyAnP3BhZ2U9ZnlwYWdlI25vSGlzdG9yeSMnKS5ydWxlKChzZXJpZXNfdGl0bGUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXG4gICAgICAgICAgICAgICAgICAgIHNldFBhZ2VUaXRsZShzZXJpZXNfdGl0bGUpXFxuICAgICAgICAgICAgICAgICAgICBtaXNzLnRhZ3NQYXJzZShNWV9VUkwpXFxuICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQobWlzcy5kKVxcbiAgICAgICAgICAgICAgICB9LCBzZXJpZXNfdGl0bGUpLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChtYWtlcnMpIHtcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5Y+R6KGM5ZWGJyxcXG4gICAgICAgICAgICAgICAgdXJsOiBtaXNzLmVtcHR5LFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBsZXQgbWFrZXJzX3RpdGxlID0gcGRmaChtYWtlcnMsICdhJiZUZXh0JylcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBtYWtlcnNfdGl0bGUsXFxuICAgICAgICAgICAgICAgIHVybDogJChwZGZoKG1ha2VycywgJ2EmJmhyZWYnKSArICc/cGFnZT1meXBhZ2Ujbm9IaXN0b3J5IycpLnJ1bGUoKG1ha2Vyc190aXRsZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcbiAgICAgICAgICAgICAgICAgICAgc2V0UGFnZVRpdGxlKG1ha2Vyc190aXRsZSlcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MudGFnc1BhcnNlKE1ZX1VSTClcXG4gICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxuICAgICAgICAgICAgICAgIH0sIG1ha2Vyc190aXRsZSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGRpcmVjdG9ycykge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICflr7zmvJQnLFxcbiAgICAgICAgICAgICAgICB1cmw6IG1pc3MuZW1wdHksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGxldCBkaXJlY3RvcnNfdGl0bGUgPSBwZGZoKGRpcmVjdG9ycywgJ2EmJlRleHQnKVxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRpcmVjdG9yc190aXRsZSxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKHBkZmgoZGlyZWN0b3JzLCAnYSYmaHJlZicpICsgJz9wYWdlPWZ5cGFnZSNub0hpc3RvcnkjJykucnVsZSgoZGlyZWN0b3JzX3RpdGxlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtaXNzID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbWlzcycpXFxuICAgICAgICAgICAgICAgICAgICBzZXRQYWdlVGl0bGUoZGlyZWN0b3JzX3RpdGxlKVxcbiAgICAgICAgICAgICAgICAgICAgbWlzcy50YWdzUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXG4gICAgICAgICAgICAgICAgfSwgZGlyZWN0b3JzX3RpdGxlKSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgICAgICBpZiAobGFiZWxzTGlzdCkge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfmoIfnrb4nLFxcbiAgICAgICAgICAgICAgICB1cmw6IG1pc3MuZW1wdHksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGxhYmVsc0xpc3QuZm9yRWFjaChsYWJlbCA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCBsYWJlbF90aXRsZSA9IHBkZmgobGFiZWwsICdhJiZUZXh0JylcXG4gICAgICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGxhYmVsX3RpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKHBkZmgobGFiZWwsICdhJiZocmVmJykgKyAnP3BhZ2U9ZnlwYWdlI25vSGlzdG9yeSMnKS5ydWxlKChcXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbF90aXRsZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRQYWdlVGl0bGUobGFiZWxfdGl0bGUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlzcy50YWdzUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxuICAgICAgICAgICAgICAgICAgICB9LCBsYWJlbF90aXRsZSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH1cXG5cXG5cXG4gICAgICAgIC8qXFxuICAgICAgICBjb25zdCB2aWRlb0xpc3QgPSBwZGZhKGh0bWwsICcuZ3JpZC5ncmlkLWNvbHMtMi5nYXAtNSYmLnJlbGF0aXZlJylcXG5cXG4gICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgdGl0bGU6ICfmjqjojZDop4bpopEnLFxcbiAgICAgICAgICB1cmw6IG1pc3MuZW1wdHksXFxuICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICAgIGV4dHJhOiB7bGluZVZpc2libGU6IGZhbHNlfSxcXG4gICAgICAgIH0pXFxuICAgICAgICB2aWRlb0xpc3QuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sICcubG96YWQmJmFsdCcpLFxcbiAgICAgICAgICAgIHVybDogJChwZGZoKGl0ZW0sICdhJiZocmVmJykrJyNub0hpc3RvcnkjJykucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICBjb25zdCBtaXNzID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbWlzcycpXFxuICAgICAgICAgICAgICBtaXNzLnZpZGVvUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXG4gICAgICAgICAgICAgIGlmIChtaXNzLnRhc2tMaXN0Lmxlbmd0aCA+IDApIHtcXG4gICAgICAgICAgICAgICAgYmUobWlzcy50YXNrTGlzdClcXG4gICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBwaWNfdXJsOiBwZGZoKGl0ZW0sICcubG96YWQmJmRhdGEtc3JjJykrJ0BSZWZlcmVyPScrbWlzcy51cmwsXFxuICAgICAgICAgICAgZGVzYzogcGRmaChpdGVtLCAnLmFic29sdXRlJiZUZXh0JyksXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8yJ1xcbiAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgICAgICovXFxuXFxuXFxuICAgIH0sXFxuXFxuXFxuICAgIGF2YXRhclBhcnNlOiAodXJsKSA9PiB7XFxuICAgICAgICBjb25zdCBodG1sID0gZmV0Y2godXJsLCB7XFxuICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wKSdcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KVxcbiAgICAgICAgbWlzcy52aWRlb1R5cGUoaHRtbClcXG4gICAgfSxcXG5cXG5cXG4gICAgdGFnc1BhcnNlOiAodXJsKSA9PiB7XFxuICAgICAgICBjb25zdCBodG1sID0gZmV0Y2godXJsLCB7XFxuICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wKSdcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KVxcbiAgICAgICAgbWlzcy52aWRlb1R5cGUoaHRtbClcXG4gICAgfSxcXG5cXG5cXG4gICAgdmlkZW9UeXBlOiAoaHRtbCkgPT4ge1xcbiAgICAgICAgY29uc3QgbGlzdCA9IHBkZmEoaHRtbCwgJy5ncmlkJiYucmVsYXRpdmUnKVxcbiAgICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHBkZmgoaXRlbSwgJy5sb3phZCYmYWx0JyksXFxuICAgICAgICAgICAgICAgIHVybDogJChwZGZoKGl0ZW0sICdhJiZocmVmJykgKyAnI25vSGlzdG9yeSMnKS5ydWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MudmlkZW9QYXJzZShNWV9VUkwpXFxuICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQobWlzcy5kKVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1pc3MudGFza0xpc3QubGVuZ3RoID4gMCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlKG1pc3MudGFza0xpc3QpXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICBwaWNfdXJsOiBwZGZoKGl0ZW0sICcubG96YWQmJmRhdGEtc3JjJykucmVwbGFjZShcXFwiY292ZXItdFxcXCIsIFxcXCJjb3Zlci1uXFxcIikgKyAnQFJlZmVyZXI9JyArIG1pc3MudXJsLFxcbiAgICAgICAgICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sICdhJiZhbHQnKS50b1VwcGVyQ2FzZSgpICsgXFxcIuKPsFxcXCIgKyBwZGZoKGl0ZW0sICcuYWJzb2x1dGUmJlRleHQnKSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8yJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KVxcbiAgICB9LFxcblxcblxcbiAgICB2aWRlb1R5cGUyOiAoaHRtbCkgPT4ge1xcbiAgICAgICAgY29uc3QgbGlzdCA9IHBkZmEoaHRtbCwgJ2JvZHkmJi50aHVtYm5haWwnKVxcbiAgICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHBkZmgoaXRlbSwgJy5sb3phZCYmYWx0JyksXFxuICAgICAgICAgICAgICAgIHVybDogJChwZGZoKGl0ZW0sICdhJiZocmVmJykgKyAnI25vSGlzdG9yeSMnKS5ydWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MudmlkZW9QYXJzZShNWV9VUkwpXFxuICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQobWlzcy5kKVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1pc3MudGFza0xpc3QubGVuZ3RoID4gMCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlKG1pc3MudGFza0xpc3QpXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICBwaWNfdXJsOiBwZGZoKGl0ZW0sICcubG96YWQmJmRhdGEtc3JjJykucmVwbGFjZShcXFwiY292ZXItdFxcXCIsIFxcXCJjb3Zlci1uXFxcIikgKyAnQFJlZmVyZXI9JyArIG1pc3MudXJsLFxcbiAgICAgICAgICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sICdhJiZhbHQnKS50b1VwcGVyQ2FzZSgpICsgXFxcIuKPsFxcXCIgKyBwZGZoKGl0ZW0sICcuYWJzb2x1dGUmJlRleHQnKSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8yJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KVxcbiAgICB9LFxcblxcbiAgICBhcnRpY2xlc1R5cGU6IChodG1sKSA9PiB7XFxuICAgICAgICBjb25zdCBsaXN0ID0gcGRmYShodG1sLCAnLmdyaWQmJi5yb3VuZGVkLWxnJylcXG4gICAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sICdpbWcmJmFsdCcpLFxcbiAgICAgICAgICAgICAgICB1cmw6ICQocGRmaChpdGVtLCAnYSYmaHJlZicpICsgJyNub0hpc3RvcnkjJykucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtaXNzID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbWlzcycpXFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBodG1sID0gZmV0Y2goTVlfVVJMLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wKSdcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwZGZoKGh0bWwsICdhcnRpY2xlJiZIdG1sJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXG4gICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgIHBpY191cmw6IHBkZmgoaXRlbSwgJ2ltZyYmZGF0YS1zcmMnKSArICdAUmVmZXJlcj0nICsgbWlzcy51cmwsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMidcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgfSxcXG5cXG5cXG4gICAgYXZhdGFyVHlwZTogKGh0bWwpID0+IHtcXG4gICAgICAgIGNvbnN0IGxpc3QgPSBwZGZhKGh0bWwsICcubXgtYXV0by5ncmlkJiZsaScpXFxuICAgICAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogcGRmaChpdGVtLCAnaDQmJlRleHQnKSxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKHBkZmgoaXRlbSwgJ2EmJmhyZWYnKSArICc/cGFnZT1meXBhZ2Ujbm9IaXN0b3J5IycpLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcbiAgICAgICAgICAgICAgICAgICAgbWlzcy5hdmF0YXJQYXJzZShNWV9VUkwpXFxuICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQobWlzcy5kKVxcbiAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgZGVzYzogcGRmaChpdGVtLCAnLnRleHQtbm9yZDEwJiZUZXh0JyksXFxuICAgICAgICAgICAgICAgIHBpY191cmw6IHBkZmgoaXRlbSwgJ2ltZyYmc3JjJykgKyAnQFJlZmVyZXI9JyArIG1pc3MudXJsLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ljb25fcm91bmRfNCdcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgfSxcXG5cXG5cXG4gICAgdGFnc1R5cGU6IChodG1sKSA9PiB7XFxuICAgICAgICBjb25zdCBsaXN0ID0gcGRmYShodG1sLCAnLmdhcC00JiZkaXYnKVxcbiAgICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHBkZmgoaXRlbSwgJ2EmJlRleHQnKSxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKHBkZmgoaXRlbSwgJ2EmJmhyZWYnKSArICc/cGFnZT1meXBhZ2Ujbm9IaXN0b3J5IycpLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcbiAgICAgICAgICAgICAgICAgICAgbWlzcy50YWdzUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXG4gICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF80J1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KVxcbiAgICB9LFxcblxcblxcbiAgICB1cGRhdGVBdmF0YXI6IChwYXJhbSkgPT4ge1xcbiAgICAgICAgY29uc3QgYWN0cmVzc2VzSHRtbCA9IGZldGNoKHBhcmFtLnVybCwge1xcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCknXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgICAgIHVwZGF0ZUl0ZW0oe1xcbiAgICAgICAgICAgIHBpY191cmw6IHBkZmgoYWN0cmVzc2VzSHRtbCwgJy5vYmplY3QtY292ZXIub2JqZWN0LXRvcC53LWZ1bGwuaC1mdWxsJiZzcmMnKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcicsXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgaWQ6IHBhcmFtLmluZGV4XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgfSxcXG59XFxuJC5leHBvcnRzID0gbWlzc1wifV0sXCJzYXZlZFwiOmZhbHNlLFwidGl0bGVcIjpcIvCdkIzwnZCi8J2QrPCdkKzwnZCA8J2QlTdcIixcInZlcnNpb25cIjowLFwidXJsXCI6XCJodHRwczovL21pc3Nhdi5jb20vY24vdW5jZW5zb3JlZC1sZWFrP3BhZ2U9ZnlwYWdlO2dldDtVVEYtODt7VXNlci1BZ2VudEBNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wKX1cIixcImNvbF90eXBlXCI6XCJtb3ZpZV8xXCIsXCJmaW5kX3J1bGVcIjpcImpzOihcXG4odGFnX3RpdGxlKSA9PiB7XFxuICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9taXNzXFxcIik7XFxuICAgIHNldFBhZ2VUaXRsZSh0YWdfdGl0bGUpO1xcbiAgICBtaXNzLnRhZ3NQYXJzZShNWV9VUkwpO1xcbiAgICBzZXRSZXN1bHQobWlzcy5kKTtcXG59XFxuKShcXFwi5peg56CB5rWB5Ye6XFxcIilcIixcImdyb3VwXCI6XCJKYXZkYuWQiOmbhlwiLFwidWFcIjpcInBjXCIsXCJwcmVSdWxlXCI6XCJyZWdpc3RlckROUyh7XFxuICAgIFxcXCJmaXZldGl1LmNvbVxcXCI6XFxcImh0dHBzOi8vZG5zLmdvb2dsZS9kbnMtcXVlcnlcXFwiLFxcbiAgICAnbWlzc2F2LmNvbSc6ICdodHRwczovL2Rucy5nb29nbGUvZG5zLXF1ZXJ5JyxcXG59KTtcIixcInBhZ2VzXCI6XCJbe1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwibWlzc1xcXCIsXFxcInBhdGhcXFwiOlxcXCJtaXNzXFxcIixcXFwicnVsZVxcXCI6XFxcImNvbnN0IG1pc3MgPSB7XFxcXG4gICAgZW1wdHk6ICdoaWtlcjovL2VtcHR5JyxcXFxcbiAgICB1cmw6ICdodHRwczovL21pc3Nhdi5jb20vY24vJyxcXFxcbiAgICBkOiBbXSxcXFxcbiAgICB0YXNrTGlzdDogW10sXFxcXG4gICAgZGF0YToge1xcXFxuICAgICAgICBjYXRlZ29yeTogZ2V0TXlWYXIoJ01pc3NBVi5jYXRlZ29yeScsICcwJyksXFxcXG4gICAgICAgIHN1YkNhdGU6IGdldE15VmFyKCdNaXNzQVYuc3ViQ2F0ZScsICcwJyksXFxcXG4gICAgfSxcXFxcbiAgICBiYXNlUGFyc2U6ICgpID0+IHtcXFxcbiAgICAgICAgY29uc3QgcGFnZSA9IHBhcnNlSW50KE1ZX1VSTC5zcGxpdCgnIyMnKVsxXSlcXFxcbiAgICAgICAgbGV0IGNhdGVnb3J5TGlzdCA9IFt7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfku4rml6Xng63pl6gnLFxcXFxuICAgICAgICAgICAgICAgIHBhdGg6ICd0b2RheS1ob3QnLFxcXFxuICAgICAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+acrOmAseeDremXqCcsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ3dlZWtseS1ob3QnLFxcXFxuICAgICAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+acrOaciOeDremXqCcsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ21vbnRobHktaG90JyxcXFxcbiAgICAgICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcXFxuICAgICAgICAgICAgICAgIHN1YjogW11cXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfkuK3mloflrZfluZUnLFxcXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdjaGluZXNlLXN1YnRpdGxlJyxcXFxcbiAgICAgICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcXFxuICAgICAgICAgICAgICAgIHN1YjogW11cXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfmnIDov5Hmm7TmlrAnLFxcXFxuICAgICAgICAgICAgICAgIHBhdGg6ICduZXcnLFxcXFxuICAgICAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+aWsOS9nOS4iuW4gicsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ3JlbGVhc2UnLFxcXFxuICAgICAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+e0oOS6uicsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogJycsXFxcXG4gICAgICAgICAgICAgICAgdHlwZTogJ3ZpZGVvJyxcXFxcbiAgICAgICAgICAgICAgICBzdWI6IFt7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+e0oOS6ulNJUk8nLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ3Npcm8nXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn57Sg5Lq6TFVYVScsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnbHV4dSdcXFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfntKDkurpHQU5BJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdnYW5hJ1xcXFxuICAgICAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+e0oOS6ulBSRVNUSUdFIFBSRU1JVU0nLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ21hYW4nXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn57Sg5Lq6Uy1DVVRFJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdzY3V0ZSdcXFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfntKDkurpBUkEnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ2FyYSdcXFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICBdXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CBJyxcXFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnJyxcXFxcbiAgICAgICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcXFxuICAgICAgICAgICAgICAgIHN1YjogW3tcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CB5rWB5Ye6JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICd1bmNlbnNvcmVkLWxlYWsnXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CBRkMyJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdmYzInXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CBSEVZWk8gJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZXl6bydcXFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfml6DnoIHkuJzkuqzng60nLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ3Rva3lvaG90J1xcXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+S4gOacrOmBkycsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnMXBvbmRvJ1xcXFxuICAgICAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+aXoOeggUNhcmliYmVhbmNvbScsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnY2FyaWJiZWFuY29tJ1xcXFxuICAgICAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+aXoOeggUNhcmliYmVhbmNvbXByJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdjYXJpYmJlYW5jb21wcidcXFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfml6DnoIExMG11c3VtZScsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnMTBtdXN1bWUnXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CBcGFjb3BhY29tYW1hJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNvcGFjb21hbWEnXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CBR2FjaGluY28nLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ2dhY2hpbmNvJ1xcXFxuICAgICAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+aXoOeggVhYWC1BVicsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAneHh4YXYnXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CB5Lq65aa75papJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdtYXJyaWVkc2xhc2gnXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5peg56CB6aG955quIDQ2MTAnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ25hdWdodHk0NjEwJ1xcXFxuICAgICAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+aXoOeggemhveeariAwOTMwJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICduYXVnaHR5MDkzMCdcXFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICBdXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5Zu95LqnIEFWJyxcXFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnJyxcXFxcbiAgICAgICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcXFxuICAgICAgICAgICAgICAgIHN1YjogW3tcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn6bq76LGG5Lyg5aqSJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdtYWRvdSdcXFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdUV0FWJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICd0d2F2J1xcXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0Z1cnVrZScsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnZnVydWtlJ1xcXFxuICAgICAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIF1cXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdWUicsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ2dlbnJlcy9WUicsXFxcXG4gICAgICAgICAgICAgICAgdHlwZTogJ3ZpZGVvJyxcXFxcbiAgICAgICAgICAgICAgICBzdWI6IFtdXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnQVYg5b2x6K+EJyxcXFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnYXJ0aWNsZXMnLFxcXFxuICAgICAgICAgICAgICAgIHR5cGU6ICdhcnRpY2xlcycsXFxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+Wls+S8mOS4gOiniCcsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ2FjdHJlc3NlcycsXFxcXG4gICAgICAgICAgICAgICAgdHlwZTogJ2F2YXRhcicsXFxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+Wls+S8mOaOkuihjCcsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ2FjdHJlc3Nlcy9yYW5raW5nJyxcXFxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYXZhdGFyJyxcXFxcbiAgICAgICAgICAgICAgICBzdWI6IFtdXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn57G75Z6LJyxcXFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnZ2VucmVzJyxcXFxcbiAgICAgICAgICAgICAgICB0eXBlOiAndGFncycsXFxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+WPkeihjOWVhicsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ21ha2VycycsXFxcXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RhZ3MnLFxcXFxuICAgICAgICAgICAgICAgIHN1YjogW11cXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgIF1cXFxcbiAgICAgICAgY29uc3QgY3VycmVudENhdGUgPSBjYXRlZ29yeUxpc3RbbWlzcy5kYXRhLmNhdGVnb3J5XVxcXFxuICAgICAgICBsZXQgdXJsXFxcXG4gICAgICAgIGNvbnN0IHR5cGUgPSBjdXJyZW50Q2F0ZS50eXBlXFxcXG4gICAgICAgIGNvbnN0IHBhdGggPSBjdXJyZW50Q2F0ZS5wYXRoXFxcXG4gICAgICAgIGlmIChjdXJyZW50Q2F0ZS5zdWIubGVuZ3RoID4gMCkge1xcXFxuICAgICAgICAgICAgdXJsID0gbWlzcy51cmwgKyBjdXJyZW50Q2F0ZS5zdWJbbWlzcy5kYXRhLnN1YkNhdGVdLnBhdGhcXFxcbiAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgIHVybCA9IG1pc3MudXJsICsgY3VycmVudENhdGUucGF0aFxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHVybCArPSAnP3BhZ2U9JyArIHBhZ2VcXFxcbiAgICAgICAgaWYgKHBhZ2UgPT09IDEpIHtcXFxcbiAgICAgICAgICAgIGNhdGVnb3J5TGlzdC5mb3JFYWNoKChjYXRlLCBpbmRleCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBhcnNlSW50KG1pc3MuZGF0YS5jYXRlZ29yeSkgPT09IGluZGV4ID9cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICfigJjigJjigJnigJk8c3Ryb25nPjxmb250IGNvbG9yPVxcXFxcXFwiI2ZmMTQ5M1xcXFxcXFwiPicgKyBjYXRlLnRpdGxlICsgJzwvZm9udD48L3N0cm9uZz4nIDogY2F0ZS50aXRsZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKG1pc3MuZW1wdHkpLmxhenlSdWxlKChpbmRleCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoXFxcXFxcXCJNaXNzQVYuY2F0ZWdvcnlcXFxcXFxcIiwgaW5kZXgudG9TdHJpbmcoKSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXFxcXFwiTWlzc0FWLnN1YkNhdGVcXFxcXFxcIiwgJzAnKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICB9LCBpbmRleCksXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxcXG4gICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICBpZiAoY3VycmVudENhdGUuc3ViLmxlbmd0aCA+IDApIHtcXFxcbiAgICAgICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcXFxuICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgY3VycmVudENhdGUuc3ViLmZvckVhY2goKGNhdGUsIGluZGV4KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwYXJzZUludChtaXNzLmRhdGEuc3ViQ2F0ZSkgPT09IGluZGV4ID9cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAn4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj1cXFxcXFxcIiNmZjE0OTNcXFxcXFxcIj4nICsgY2F0ZS50aXRsZSArXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvZm9udD48L3N0cm9uZz4nIDogY2F0ZS50aXRsZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJChtaXNzLmVtcHR5KS5sYXp5UnVsZSgoaW5kZXgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFxcXFxcIk1pc3NBVi5zdWJDYXRlXFxcXFxcXCIsIGluZGV4LnRvU3RyaW5nKCkpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIGluZGV4KSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxcXG4gICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBjb25zdCBodG1sID0gZmV0Y2godXJsLCB7XFxcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCknXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xcXFxuICAgICAgICAgICAgY2FzZSAndmlkZW8nOlxcXFxuICAgICAgICAgICAgICAgIG1pc3MudmlkZW9UeXBlKGh0bWwpXFxcXG4gICAgICAgICAgICAgICAgYnJlYWtcXFxcbiAgICAgICAgICAgIGNhc2UgJ2FydGljbGVzJzpcXFxcbiAgICAgICAgICAgICAgICBtaXNzLmFydGljbGVzVHlwZShodG1sKVxcXFxuICAgICAgICAgICAgICAgIGJyZWFrXFxcXG4gICAgICAgICAgICBjYXNlICdhdmF0YXInOlxcXFxuICAgICAgICAgICAgICAgIGlmICgocGF0aCA9PT0gJ2FjdHJlc3Nlcy9yYW5raW5nJyAmJiBwYWdlID09PSAxKSB8fCBwYXRoICE9PSAnYWN0cmVzc2VzL3JhbmtpbmcnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MuYXZhdGFyVHlwZShodG1sKVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICBicmVha1xcXFxuICAgICAgICAgICAgY2FzZSAndGFncyc6XFxcXG4gICAgICAgICAgICAgICAgbWlzcy50YWdzVHlwZShodG1sKVxcXFxuICAgICAgICAgICAgICAgIGJyZWFrXFxcXG4gICAgICAgICAgICBkZWZhdWx0OlxcXFxuICAgICAgICAgICAgICAgIG1pc3MudmlkZW9UeXBlKGh0bWwpXFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXFxcbiAgICB9LFxcXFxuXFxcXG5cXFxcbiAgICBzZWFyY2hQYXJzZTogKCkgPT4ge1xcXFxuICAgICAgICBpZiAoTVlfVVJMLmluY2x1ZGVzKFxcXFxcXFwicGFnZT0xXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXFxcXFwi4oCU4oCU5aWz5LyY4oCU4oCUXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgdXJsOiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICBtaXNzLmF2YXRhclR5cGUoZ2V0UmVzQ29kZSgpKTtcXFxcblxcXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuKAlOKAlOW9seeJh+KAlOKAlFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgbWlzcy52aWRlb1R5cGUyKGdldFJlc0NvZGUoKSk7XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICBtaXNzLnZpZGVvVHlwZShnZXRSZXNDb2RlKCkpO1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxcXG4gICAgfSxcXFxcblxcXFxuXFxcXG4gICAgdmlkZW9QYXJzZTogKHVybCkgPT4ge1xcXFxuICAgICAgICBjb25zdCBodG1sID0gZmV0Y2godXJsLCB7XFxcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCknXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIGNvbnN0IHRpdGxlID0gcGRmaChodG1sLCAnaDEmJlRleHQnKVxcXFxuXFxcXG4gICAgICAgIHNldFBhZ2VUaXRsZSh0aXRsZSlcXFxcblxcXFxuXFxcXG4gICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJyArIHRpdGxlLnNtYWxsKCksXFxcXG4gICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgbGluZVZpc2lhYmxlOiBmYWxzZVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9KVxcXFxuICAgICAgICBtaXNzLmQucHVzaCh7XFxcXG4gICAgICAgICAgICBkZXNjOiBwZGZoKGh0bWwsICcudGV4dC1zZWNvbmRhcnkuYnJlYWstYWxsLmxpbmUtY2xhbXAtMiYmVGV4dCcpLFxcXFxuICAgICAgICAgICAgcGljX3VybDogcGRmaChodG1sLCAnbWV0YVtwcm9wZXJ0eT1vZzppbWFnZV0mJmNvbnRlbnQnKSArICdAUmVmZXJlcj0nICsgbWlzcy51cmwsXFxcXG4gICAgICAgICAgICB1cmw6ICQobWlzcy5lbXB0eSArICcjbm9IaXN0b3J5IycpLmxhenlSdWxlKChodG1sLCB1cmwpID0+IHtcXFxcbiAgICAgICAgICAgICAgICBldmFsKGh0bWwubWF0Y2goL2V2YWwuKj9cXFxcXFxcXG4vKVswXSlcXFxcbiAgICAgICAgICAgICAgICAvLyDojrflj5bnlLvotKjliJfooajvvIzlubbljrvmnIDpq5jnlLvotKhcXFxcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBfcXVhbGl0eSA9IGZldGNoKHNvdXJjZSwge1xcXFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm9yaWdpblxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vbWlzc2F2LmNvbVxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgIGhnaGVzdF9xdWFsaXR5ID0gZ3JvdXBfcXVhbGl0eS5tYXRjaCgvXiguKilcXFxcXFxcXC5tM3U4JC9nbSkubWFwKHYgPT4gc291cmNlLnJlcGxhY2UoXFxcXFxcXCJwbGF5bGlzdC5tM3U4XFxcXFxcXCIsIHYpKS5yZXZlcnNlKClcXFxcbiAgICAgICAgICAgICAgICBuYW1lX3F1YWxpdHkgPSBncm91cF9xdWFsaXR5Lm1hdGNoKC9SRVNPTFVUSU9OPS4qJC9nbSkubWFwKG4gPT4gbi5yZXBsYWNlKFxcXFxcXFwiUkVTT0xVVElPTj1cXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcIikpLnJldmVyc2UoKVxcXFxuICAgICAgICAgICAgICAgIGxldCBwbGF5bGlzdCA9IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsczogaGdoZXN0X3F1YWxpdHksXFxcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVzOiBuYW1lX3F1YWxpdHksXFxcXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBBcnJheShoZ2hlc3RfcXVhbGl0eS5sZW5ndGgpLmZpbGwoe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlcjogdXJsXFxcXG4gICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gcGxheWxpc3Q7XFxcXG4gICAgICAgICAgICB9LCBodG1sLCBtaXNzLnVybCksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3BpY18xX2Z1bGwnLFxcXFxuICAgICAgICB9KVxcXFxuICAgICAgICBtaXNzLmQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogcGRmaChodG1sLCAnLnRleHQtc2Vjb25kYXJ5LmJyZWFrLWFsbC5saW5lLWNsYW1wLTImJlRleHQnKS5zbWFsbCgpLFxcXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxcXG4gICAgICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgICAgIGxpbmVWaXNpYWJsZTogZmFsc2VcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfSlcXFxcblxcXFxuICAgICAgICBjb25zdCB0ZXh0X3NlY29uZGFyeV9saXN0ID0gcGRmYShodG1sLCAnYm9keSYmLnRleHQtc2Vjb25kYXJ5JylcXFxcbiAgICAgICAgbGV0IG51bSwgYWN0cmVzc2VzTGlzdCwgdGFnc0xpc3QsIHNlcmllcywgbWFrZXJzLCBkaXJlY3RvcnMsIGxhYmVsc0xpc3RcXFxcbiAgICAgICAgdGV4dF9zZWNvbmRhcnlfbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcXFxuICAgICAgICAgICAgbGV0IGN1cnJlbnRfdGl0bGUgPSBwZGZoKGl0ZW0sICdzcGFuJiZUZXh0JylcXFxcbiAgICAgICAgICAgIGxldCBhY3RyZXNzTmFtZSA9ICflpbPkvJgnXFxcXG4gICAgICAgICAgICBpZiAoY3VycmVudF90aXRsZSA9PT0gJ+eVquWPtzonKSB7XFxcXG4gICAgICAgICAgICAgICAgbnVtID0gcGRmaChpdGVtLCAnLmZvbnQtbWVkaXVtJiZUZXh0JylcXFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudF90aXRsZSA9PT0gYWN0cmVzc05hbWUgKyAnOicpIHtcXFxcbiAgICAgICAgICAgICAgICBhY3RyZXNzZXNMaXN0ID0gcGRmYShpdGVtLCAnLnRleHQtc2Vjb25kYXJ5JiZhJylcXFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudF90aXRsZSA9PT0gJ+exu+WeizonKSB7XFxcXG4gICAgICAgICAgICAgICAgdGFnc0xpc3QgPSBwZGZhKGl0ZW0sICcudGV4dC1zZWNvbmRhcnkmJmEnKVxcXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X3RpdGxlID09PSAn57O75YiXOicpIHtcXFxcbiAgICAgICAgICAgICAgICBzZXJpZXMgPSBwZGZhKGl0ZW0sICcudGV4dC1zZWNvbmRhcnkmJmEnKVswXVxcXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X3RpdGxlID09PSAn5Y+R6KGM5ZWGOicpIHtcXFxcbiAgICAgICAgICAgICAgICBtYWtlcnMgPSBwZGZhKGl0ZW0sICcudGV4dC1zZWNvbmRhcnkmJmEnKVswXVxcXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X3RpdGxlID09PSAn5a+85ryUOicpIHtcXFxcbiAgICAgICAgICAgICAgICBkaXJlY3RvcnMgPSBwZGZhKGl0ZW0sICcudGV4dC1zZWNvbmRhcnkmJmEnKVswXVxcXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X3RpdGxlID09PSAn5qCH57GkOicpIHtcXFxcbiAgICAgICAgICAgICAgICBsYWJlbHNMaXN0ID0gcGRmYShpdGVtLCAnLnRleHQtc2Vjb25kYXJ5JiZhJylcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfSlcXFxcbiAgICAgICAgaWYgKG51bSkge1xcXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn55Wq5Y+3JyxcXFxcbiAgICAgICAgICAgICAgICB1cmw6IG1pc3MuZW1wdHksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogbnVtLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJ2NvcHk6Ly8nICsgbnVtLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIGlmIChhY3RyZXNzZXNMaXN0KSB7XFxcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfmvJTlkZgnLFxcXFxuICAgICAgICAgICAgICAgIHVybDogbWlzcy5lbXB0eSxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgYWN0cmVzc2VzTGlzdC5mb3JFYWNoKChhY3RyZXNzZXMsIGluZGV4KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gcGRmaChhY3RyZXNzZXMsICdhJiZUZXh0JylcXFxcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gcGRmaChhY3RyZXNzZXMsICdhJiZocmVmJylcXFxcbiAgICAgICAgICAgICAgICBtaXNzLnRhc2tMaXN0LnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICBmdW5jOiBtaXNzLnVwZGF0ZUF2YXRhcixcXFxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW06IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdXJsLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6ICdhdmF0YXJfJyArIGluZGV4XFxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgIGlkOiAnYXZhdGFyXycgKyBpbmRleCxcXFxcbiAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxcXFxuICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiBtaXNzLmVtcHR5LFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQodXJsICsgJz9wYWdlPWZ5cGFnZSNub0hpc3RvcnkjJykucnVsZSgodGl0bGUpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhZ2VUaXRsZSh0aXRsZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pc3MuYXZhdGFyUGFyc2UoTVlfVVJMKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgdGl0bGUpLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcicsXFxcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2F2YXRhcl8nICsgaW5kZXgsXFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIGlmICh0YWdzTGlzdCkge1xcXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn57G75Z6LJyxcXFxcbiAgICAgICAgICAgICAgICB1cmw6IG1pc3MuZW1wdHksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIHRhZ3NMaXN0LmZvckVhY2godGFnID0+IHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgdGFnX3RpdGxlID0gcGRmaCh0YWcsICdhJiZUZXh0JylcXFxcbiAgICAgICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0YWdfdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJChwZGZoKHRhZywgJ2EmJmhyZWYnKSArICc/cGFnZT1meXBhZ2Ujbm9IaXN0b3J5IycpLnJ1bGUoKHRhZ190aXRsZSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFnZVRpdGxlKHRhZ190aXRsZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pc3MudGFnc1BhcnNlKE1ZX1VSTClcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sIHRhZ190aXRsZSksXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxcXG4gICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIH0pXFxcXG5cXFxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIGlmIChzZXJpZXMpIHtcXFxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+ezu+WIlycsXFxcXG4gICAgICAgICAgICAgICAgdXJsOiBtaXNzLmVtcHR5LFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxcXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICBsZXQgc2VyaWVzX3RpdGxlID0gcGRmaChzZXJpZXMsICdhJiZUZXh0JylcXFxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogc2VyaWVzX3RpdGxlLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJChwZGZoKHNlcmllcywgJ2EmJmhyZWYnKSArICc/cGFnZT1meXBhZ2Ujbm9IaXN0b3J5IycpLnJ1bGUoKHNlcmllc190aXRsZSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtaXNzID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbWlzcycpXFxcXG4gICAgICAgICAgICAgICAgICAgIHNldFBhZ2VUaXRsZShzZXJpZXNfdGl0bGUpXFxcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MudGFnc1BhcnNlKE1ZX1VSTClcXFxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXFxcbiAgICAgICAgICAgICAgICB9LCBzZXJpZXNfdGl0bGUpLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgaWYgKG1ha2Vycykge1xcXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5Y+R6KGM5ZWGJyxcXFxcbiAgICAgICAgICAgICAgICB1cmw6IG1pc3MuZW1wdHksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIGxldCBtYWtlcnNfdGl0bGUgPSBwZGZoKG1ha2VycywgJ2EmJlRleHQnKVxcXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBtYWtlcnNfdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKHBkZmgobWFrZXJzLCAnYSYmaHJlZicpICsgJz9wYWdlPWZ5cGFnZSNub0hpc3RvcnkjJykucnVsZSgobWFrZXJzX3RpdGxlKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXFxcbiAgICAgICAgICAgICAgICAgICAgc2V0UGFnZVRpdGxlKG1ha2Vyc190aXRsZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgbWlzcy50YWdzUGFyc2UoTVlfVVJMKVxcXFxuICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQobWlzcy5kKVxcXFxuICAgICAgICAgICAgICAgIH0sIG1ha2Vyc190aXRsZSksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBpZiAoZGlyZWN0b3JzKSB7XFxcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICflr7zmvJQnLFxcXFxuICAgICAgICAgICAgICAgIHVybDogbWlzcy5lbXB0eSxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgbGV0IGRpcmVjdG9yc190aXRsZSA9IHBkZmgoZGlyZWN0b3JzLCAnYSYmVGV4dCcpXFxcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRpcmVjdG9yc190aXRsZSxcXFxcbiAgICAgICAgICAgICAgICB1cmw6ICQocGRmaChkaXJlY3RvcnMsICdhJiZocmVmJykgKyAnP3BhZ2U9ZnlwYWdlI25vSGlzdG9yeSMnKS5ydWxlKChkaXJlY3RvcnNfdGl0bGUpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcXFxuICAgICAgICAgICAgICAgICAgICBzZXRQYWdlVGl0bGUoZGlyZWN0b3JzX3RpdGxlKVxcXFxuICAgICAgICAgICAgICAgICAgICBtaXNzLnRhZ3NQYXJzZShNWV9VUkwpXFxcXG4gICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxcXG4gICAgICAgICAgICAgICAgfSwgZGlyZWN0b3JzX3RpdGxlKSxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIGlmIChsYWJlbHNMaXN0KSB7XFxcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfmoIfnrb4nLFxcXFxuICAgICAgICAgICAgICAgIHVybDogbWlzcy5lbXB0eSxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgbGFiZWxzTGlzdC5mb3JFYWNoKGxhYmVsID0+IHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgbGFiZWxfdGl0bGUgPSBwZGZoKGxhYmVsLCAnYSYmVGV4dCcpXFxcXG4gICAgICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogbGFiZWxfdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJChwZGZoKGxhYmVsLCAnYSYmaHJlZicpICsgJz9wYWdlPWZ5cGFnZSNub0hpc3RvcnkjJykucnVsZSgoXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbF90aXRsZSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFnZVRpdGxlKGxhYmVsX3RpdGxlKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlzcy50YWdzUGFyc2UoTVlfVVJMKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgbGFiZWxfdGl0bGUpLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcXFxuICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgIH1cXFxcblxcXFxuXFxcXG4gICAgICAgIC8qXFxcXG4gICAgICAgIGNvbnN0IHZpZGVvTGlzdCA9IHBkZmEoaHRtbCwgJy5ncmlkLmdyaWQtY29scy0yLmdhcC01JiYucmVsYXRpdmUnKVxcXFxuXFxcXG4gICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICB0aXRsZTogJ+aOqOiNkOinhumikScsXFxcXG4gICAgICAgICAgdXJsOiBtaXNzLmVtcHR5LFxcXFxuICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxcXG4gICAgICAgICAgZXh0cmE6IHtsaW5lVmlzaWJsZTogZmFsc2V9LFxcXFxuICAgICAgICB9KVxcXFxuICAgICAgICB2aWRlb0xpc3QuZm9yRWFjaChpdGVtID0+IHtcXFxcbiAgICAgICAgICBtaXNzLmQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogcGRmaChpdGVtLCAnLmxvemFkJiZhbHQnKSxcXFxcbiAgICAgICAgICAgIHVybDogJChwZGZoKGl0ZW0sICdhJiZocmVmJykrJyNub0hpc3RvcnkjJykucnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXFxcbiAgICAgICAgICAgICAgbWlzcy52aWRlb1BhcnNlKE1ZX1VSTClcXFxcbiAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXFxcbiAgICAgICAgICAgICAgaWYgKG1pc3MudGFza0xpc3QubGVuZ3RoID4gMCkge1xcXFxuICAgICAgICAgICAgICAgIGJlKG1pc3MudGFza0xpc3QpXFxcXG4gICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0pLFxcXFxuICAgICAgICAgICAgcGljX3VybDogcGRmaChpdGVtLCAnLmxvemFkJiZkYXRhLXNyYycpKydAUmVmZXJlcj0nK21pc3MudXJsLFxcXFxuICAgICAgICAgICAgZGVzYzogcGRmaChpdGVtLCAnLmFic29sdXRlJiZUZXh0JyksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzInXFxcXG4gICAgICAgICAgfSlcXFxcbiAgICAgICAgfSlcXFxcbiAgICAgICAgKi9cXFxcblxcXFxuXFxcXG4gICAgfSxcXFxcblxcXFxuXFxcXG4gICAgYXZhdGFyUGFyc2U6ICh1cmwpID0+IHtcXFxcbiAgICAgICAgY29uc3QgaHRtbCA9IGZldGNoKHVybCwge1xcXFxuICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjApJ1xcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9KVxcXFxuICAgICAgICBtaXNzLnZpZGVvVHlwZShodG1sKVxcXFxuICAgIH0sXFxcXG5cXFxcblxcXFxuICAgIHRhZ3NQYXJzZTogKHVybCkgPT4ge1xcXFxuICAgICAgICBjb25zdCBodG1sID0gZmV0Y2godXJsLCB7XFxcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCknXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIG1pc3MudmlkZW9UeXBlKGh0bWwpXFxcXG4gICAgfSxcXFxcblxcXFxuXFxcXG4gICAgdmlkZW9UeXBlOiAoaHRtbCkgPT4ge1xcXFxuICAgICAgICBjb25zdCBsaXN0ID0gcGRmYShodG1sLCAnLmdyaWQmJi5yZWxhdGl2ZScpXFxcXG4gICAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcXFxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogcGRmaChpdGVtLCAnLmxvemFkJiZhbHQnKSxcXFxcbiAgICAgICAgICAgICAgICB1cmw6ICQocGRmaChpdGVtLCAnYSYmaHJlZicpICsgJyNub0hpc3RvcnkjJykucnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXFxcbiAgICAgICAgICAgICAgICAgICAgbWlzcy52aWRlb1BhcnNlKE1ZX1VSTClcXFxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1pc3MudGFza0xpc3QubGVuZ3RoID4gMCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgYmUobWlzcy50YXNrTGlzdClcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH0pLFxcXFxuICAgICAgICAgICAgICAgIHBpY191cmw6IHBkZmgoaXRlbSwgJy5sb3phZCYmZGF0YS1zcmMnKS5yZXBsYWNlKFxcXFxcXFwiY292ZXItdFxcXFxcXFwiLCBcXFxcXFxcImNvdmVyLW5cXFxcXFxcIikgKyAnQFJlZmVyZXI9JyArIG1pc3MudXJsLFxcXFxuICAgICAgICAgICAgICAgIGRlc2M6IHBkZmgoaXRlbSwgJ2EmJmFsdCcpLnRvVXBwZXJDYXNlKCkgKyBcXFxcXFxcIuKPsFxcXFxcXFwiICsgcGRmaChpdGVtLCAnLmFic29sdXRlJiZUZXh0JyksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8yJ1xcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgfSlcXFxcbiAgICB9LFxcXFxuXFxcXG5cXFxcbiAgICB2aWRlb1R5cGUyOiAoaHRtbCkgPT4ge1xcXFxuICAgICAgICBjb25zdCBsaXN0ID0gcGRmYShodG1sLCAnYm9keSYmLnRodW1ibmFpbCcpXFxcXG4gICAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcXFxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogcGRmaChpdGVtLCAnLmxvemFkJiZhbHQnKSxcXFxcbiAgICAgICAgICAgICAgICB1cmw6ICQocGRmaChpdGVtLCAnYSYmaHJlZicpICsgJyNub0hpc3RvcnkjJykucnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXFxcbiAgICAgICAgICAgICAgICAgICAgbWlzcy52aWRlb1BhcnNlKE1ZX1VSTClcXFxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1pc3MudGFza0xpc3QubGVuZ3RoID4gMCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgYmUobWlzcy50YXNrTGlzdClcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH0pLFxcXFxuICAgICAgICAgICAgICAgIHBpY191cmw6IHBkZmgoaXRlbSwgJy5sb3phZCYmZGF0YS1zcmMnKS5yZXBsYWNlKFxcXFxcXFwiY292ZXItdFxcXFxcXFwiLCBcXFxcXFxcImNvdmVyLW5cXFxcXFxcIikgKyAnQFJlZmVyZXI9JyArIG1pc3MudXJsLFxcXFxuICAgICAgICAgICAgICAgIGRlc2M6IHBkZmgoaXRlbSwgJ2EmJmFsdCcpLnRvVXBwZXJDYXNlKCkgKyBcXFxcXFxcIuKPsFxcXFxcXFwiICsgcGRmaChpdGVtLCAnLmFic29sdXRlJiZUZXh0JyksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8yJ1xcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgfSlcXFxcbiAgICB9LFxcXFxuXFxcXG4gICAgYXJ0aWNsZXNUeXBlOiAoaHRtbCkgPT4ge1xcXFxuICAgICAgICBjb25zdCBsaXN0ID0gcGRmYShodG1sLCAnLmdyaWQmJi5yb3VuZGVkLWxnJylcXFxcbiAgICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sICdpbWcmJmFsdCcpLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJChwZGZoKGl0ZW0sICdhJiZocmVmJykgKyAnI25vSGlzdG9yeSMnKS5ydWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcXFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBodG1sID0gZmV0Y2goTVlfVVJMLCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCknXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwZGZoKGh0bWwsICdhcnRpY2xlJiZIdG1sJyksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCdcXFxcbiAgICAgICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXFxcbiAgICAgICAgICAgICAgICB9KSxcXFxcbiAgICAgICAgICAgICAgICBwaWNfdXJsOiBwZGZoKGl0ZW0sICdpbWcmJmRhdGEtc3JjJykgKyAnQFJlZmVyZXI9JyArIG1pc3MudXJsLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMidcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgIH0pXFxcXG4gICAgfSxcXFxcblxcXFxuXFxcXG4gICAgYXZhdGFyVHlwZTogKGh0bWwpID0+IHtcXFxcbiAgICAgICAgY29uc3QgbGlzdCA9IHBkZmEoaHRtbCwgJy5teC1hdXRvLmdyaWQmJmxpJylcXFxcbiAgICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sICdoNCYmVGV4dCcpLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJChwZGZoKGl0ZW0sICdhJiZocmVmJykgKyAnP3BhZ2U9ZnlwYWdlI25vSGlzdG9yeSMnKS5ydWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcXFxuICAgICAgICAgICAgICAgICAgICBtaXNzLmF2YXRhclBhcnNlKE1ZX1VSTClcXFxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXFxcbiAgICAgICAgICAgICAgICB9KSxcXFxcbiAgICAgICAgICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sICcudGV4dC1ub3JkMTAmJlRleHQnKSxcXFxcbiAgICAgICAgICAgICAgICBwaWNfdXJsOiBwZGZoKGl0ZW0sICdpbWcmJnNyYycpICsgJ0BSZWZlcmVyPScgKyBtaXNzLnVybCxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ljb25fcm91bmRfNCdcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgIH0pXFxcXG4gICAgfSxcXFxcblxcXFxuXFxcXG4gICAgdGFnc1R5cGU6IChodG1sKSA9PiB7XFxcXG4gICAgICAgIGNvbnN0IGxpc3QgPSBwZGZhKGh0bWwsICcuZ2FwLTQmJmRpdicpXFxcXG4gICAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcXFxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogcGRmaChpdGVtLCAnYSYmVGV4dCcpLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJChwZGZoKGl0ZW0sICdhJiZocmVmJykgKyAnP3BhZ2U9ZnlwYWdlI25vSGlzdG9yeSMnKS5ydWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcXFxuICAgICAgICAgICAgICAgICAgICBtaXNzLnRhZ3NQYXJzZShNWV9VUkwpXFxcXG4gICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxcXG4gICAgICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzQnXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICB9KVxcXFxuICAgIH0sXFxcXG5cXFxcblxcXFxuICAgIHVwZGF0ZUF2YXRhcjogKHBhcmFtKSA9PiB7XFxcXG4gICAgICAgIGNvbnN0IGFjdHJlc3Nlc0h0bWwgPSBmZXRjaChwYXJhbS51cmwsIHtcXFxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wKSdcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfSlcXFxcbiAgICAgICAgdXBkYXRlSXRlbSh7XFxcXG4gICAgICAgICAgICBwaWNfdXJsOiBwZGZoKGFjdHJlc3Nlc0h0bWwsICcub2JqZWN0LWNvdmVyLm9iamVjdC10b3Audy1mdWxsLmgtZnVsbCYmc3JjJyksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcicsXFxcXG4gICAgICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgICAgIGlkOiBwYXJhbS5pbmRleFxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9KVxcXFxuICAgIH0sXFxcXG59XFxcXG4kLmV4cG9ydHMgPSBtaXNzXFxcIn1dXCJ9IiwidGl0bGUiOiLml6DnoIHmtYHlh7oifQ==
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement