Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@新番更新表*@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6ImpzOlxudmFyIHltPU1ZX1VSTC5pbmNsdWRlcygnaXFpeWkuJyk/cmVxdWVzdChNWV9VUkwse30pOmZldGNoKE1ZX1VSTCwge2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOlBDX1VBfX0pO1xudHJ5e1xuaWYoTVlfVVJMLmluY2x1ZGVzKCdiaWxpYmlsaScpKXtcbnZhciBkZXM9SlNPTi5wYXJzZSh5bS5zcGxpdCgnbmV3ZXN0RXBcIjonKVsxXS5zcGxpdCgnfScpWzBdKyd9JykuZGVzYztcbnRyeXtcbnZhciBlcD1KU09OLnBhcnNlKHltLnNwbGl0KCdcImVwTGlzdFwiOicpWzFdLnNwbGl0KCd9XScpWzBdKyd9XScpOyBcbn1jYXRjaChlKXtlcD1bXTt9XG5pZihlcC5sZW5ndGg9PTApZ3h6PTA7XG5lbHNle1xuZm9yKHZhciBpPWVwLmxlbmd0aC0xO2VwW2ldLmJhZGdlPT0n6aKE5ZGKJztpLS0pO1xudmFyIGd4ej1lcFtpXS50aXRsZTt9fVxufWNhdGNoKGUpe2d4ej1cIuabtOaWsOWGheWuueiOt+WPluWksei0pe+8gVwiO31cblxuXG50cnl7XG5pZihNWV9VUkwuaW5jbHVkZXMoJ2lxaXlpJykpe1xuLypcbnRyeXt2YXIgdj1KU09OLnBhcnNlKHltLnNwbGl0KCd2aWRlb0luZm9cIjonKVsxXS5zcGxpdCgnfScpWzBdKyd9Jyk7fWNhdGNoKGUpe3ZhciB2PXt9O3YuYWlkPXltLnNwbGl0KCdhbGJ1bUlkXCI6JylbMV0uc3BsaXQoJywnKVswXTt9dmk9SlNPTi5wYXJzZShyZXF1ZXN0KCdodHRwczovL3B1Yi5tLmlxaXlpLmNvbS9oNS9tYWluL3ZpZGVvTGlzdC9hbGJ1bS8/YWxidW1JZD0nK3YuYWlkKycmc2l6ZT0xNTAwJnBhZ2U9MSZuZWVkUHJldnVlPWZhbHNlJm5lZWRWaXBQcmV2dWU9ZmFsc2UnLHt9KSkuZGF0YTtpZih2aSE9Jycpe3Y9dmkudmlkZW9zO2d4ej12LnBvcCgpLnBkfWVsc2V7aT12O2lmKGkmJighaS52dHx8IWkudnQuaW5jbHVkZXMoJ+mihOWRiicpKSlneHo9aS5vcmRlcjt9XG4qL1xuXG52YXIgZ3h6PXltLm1hdGNoKC9sYXRlc3RPcmRlclwiLio/KFxcZCspLylbMV07XG59XG59Y2F0Y2goZSl7Z3h6PSfmnIDmlrDnirbmgIHojrflj5blpLHotKXvvIEnO31cbnRyeXtcbmlmKE1ZX1VSTC5pbmNsdWRlcygncXEnKSl7XG5ldmFsKHBkZmgoeW0sJ2hlYWQmJnNjcmlwdCwxOCYmSHRtbCcpLnJlcGxhY2UoL3dpbmQuKj89LywnaHRtPScpKTtcbnZhciBlcGk9aHRtLmdsb2JhbC5jb3ZlckluZm8udmlkZW9faWRzO1xudmFyIGxlPWZldGNoKCdodHRwczovL3VuaW9uLnZpZGVvLnFxLmNvbS9mY2dpLWJpbi9kYXRhP290eXBlPWpzb24mdGlkPTY4MiZhcHBpZD0yMDAwMTIzOCZhcHBrZXk9NmMwM2JiZTk2NTg0NDhhNCZ1bmlvbl9wbGF0Zm9ybT0xJmlkbGlzdD0nK2VwaS5zbGljZSgtNSkucmV2ZXJzZSgpLmpvaW4oJywnKSk7XG5ldmFsKGxlKTtcbnZhciBsZT1RWk91dHB1dEpzb24ucmVzdWx0cy5maWx0ZXIoYT0+e2lmKCFhLmZpZWxkcy5jYXRlZ29yeV9tYXAuam9pbignLCwnKS5pbmNsdWRlcygn6aKE5ZGKJykpcmV0dXJuIGE7fSk7XG52YXIgZ3h6PSfnrKwnK2xlWzBdLmZpZWxkcy5lcGlzb2RlKyfor50nO1xuXG59fWNhdGNoKGUpe2d4ej1cIuabtOaWsOWGheWuueiOt+WPluWksei0pe+8gVwiO31cbnNldFJlc3VsdCgn5pu05paw6Iez77yaJytneHopOyIsInRpdGxlIjoi5paw55Wq5pu05paw6KGoKiIsImF1dGhvciI6IjE2MDYxNDIiLCJ1cmwiOiJoaWtlcjovL2VtcHR5I2Z5cGFnZSIsInZlcnNpb24iOjMwLCJjb2xfdHlwZSI6ImxvbmdfdGV4dCIsImNsYXNzX25hbWUiOiIiLCJ0eXBlIjoiYWxsIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6Ly81NjZcbnZhciByZXMgPSB7fTtcbnZhciBkID0gW107XG5wdXRWYXIoXCJqbFwiLDApO1xuZnVuY3Rpb24gcGluKGEsYil7XG5yZXR1cm4gKGI9PTA/J+KAnOKAnOKAneKAnSc6JycpKyc8Zm9udCBjb2xvcj1cIiNlZjViOWNcIj4nK2ErJzwvZm9udD4nO1xufVxudmFyIGxiPWZldGNoKFwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFwiLCB7fSk7XG5wdXRWYXIoXCJsYlwiLGxiKTtcbnZhciBzZT0naGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvc2V0LnR4dCc7XG50cnl7XG52YXIgZmk9SlNPTi5wYXJzZShmZXRjaChzZSx7fSkpO1xufWNhdGNoKGUpe2ZpPXt9O31cbmE9Z2V0VmFyKCdheGUnLGZpLmZpc3Q/ZmkuZmlzdDonNicpO1xuaWYoYT09XCLov73nlapcIil7cHV0VmFyKFwiYXhlXCIsXCLov73nlapcIik7cHV0VmFyKFwic3RhXCIsZmkuY29sJiZmaS5jb2w9PTE/MTowKTt9XG5pZihhIT0n6L+955WqJylwdXRWYXIoJ3N0YScsJycpO1xudmFyIGI9cGFyc2VJbnQoTVlfVVJMLnNwbGl0KCcjJylbMV0pO1xuaWYoYj09MSl7XG5kLnB1c2goe1xudGl0bGU6KGE9PTU/J+KAnOKAnOKAneKAnTxmb250IGNvbG9yPVwicmVkXCI+5pio5pel5pu05pawPC9mb250Pic6J+aYqOaXpeabtOaWsCcpLFxudXJsOmBoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIyKCdheGUnLCc1Jyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouiHs+aYqOaXpeabtOaWsCdgLFxuY29sX3R5cGU6J3RleHRfMydcbn0pO1xuZC5wdXNoKHtcbnRpdGxlOihhPT02PyfigJzigJzigJ3igJ08Zm9udCBjb2xvcj1cInJlZFwiPuS7iuaXpeabtOaWsDwvZm9udD4nOifku4rml6Xmm7TmlrAnKSxcbnVybDpgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0VmFyMignYXhlJywnNicpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLoh7Pku4rml6Xmm7TmlrAnYCxcbmNvbF90eXBlOid0ZXh0XzMnXG59KTtcbmQucHVzaCh7XG50aXRsZTooYT09Nz8n4oCc4oCc4oCd4oCdPGZvbnQgY29sb3I9XCJyZWRcIj7mmI7ml6Xmm7TmlrA8L2ZvbnQ+Jzon5piO5pel5pu05pawJyksXG51cmw6YGhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOnB1dFZhcjIoJ2F4ZScsJzcnKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i6Iez5piO5pel5pu05pawJ2AsXG5jb2xfdHlwZTondGV4dF8zJ1xufSk7XG5kLnB1c2goe1xudGl0bGU6KGE9PSflvLrlir/mjqXmoaMnPyfigJzigJzigJ3igJ08Zm9udCBjb2xvcj1cInJlZFwiPuiFvuiur+aOpeahozwvZm9udD4nOifohb7orq/mjqXmoaMnKSxcbnVybDpgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0VmFyMignYXhlJywn5by65Yq/5o6l5qGjJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouiHs+iFvuiur+aOpeahoydgLFxuY29sX3R5cGU6J3RleHRfMydcbn0pO1xudmFyIG1vZGU9WyfnlarliafntKLlvJUnLCflm73liJvntKLlvJUnXTtcbmlmKGEuaW5jbHVkZXMoJ+e0ouW8lScpKVxudmFyIG1vPWdldFZhcignYXhlJyk9PSfnlarliafntKLlvJUnP21vZGVbMF06bW9kZVsxXTtcbmQucHVzaCh7XG50aXRsZTphLmluY2x1ZGVzKCfntKLlvJUnKT8oJ+KAnOKAnOKAneKAnTxmb250IGNvbG9yPVwicmVkXCI+JyttbysnPC9mb250PicpOidC56uZ57Si5byVJyxcbnVybDpgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6aWYoZ2V0VmFyKCdheGUnKT09J+eVquWJp+e0ouW8lScpcHV0VmFyMignYXhlJywn5Zu95Yib57Si5byVJyk7ZWxzZSBwdXRWYXIyKCdheGUnLCfnlarliafntKLlvJUnKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i6IezJytnZXRWYXIoJ2F4ZScpYCxcbmNvbF90eXBlOid0ZXh0XzMnXG59KTtcbmQucHVzaCh7XG50aXRsZTphPT0n6L+955WqJz8n4oCc4oCc4oCd4oCdPGZvbnQgY29sb3I9XCJyZWRcIj7miJHnmoTov73nlao8L2ZvbnQ+Jzon5oiR55qE6L+955WqJyxcbnVybDpgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0VmFyMignYXhlJywn6L+955WqJyk7dmFyIGE9Z2V0VmFyKFwic3RhXCIpO2lmKGE9PVwiXCIpYT1cImArKGZpLmNvbCYmZmkuY29sPT0xPzE6MCkrYFwiO2Vsc2UgYT1hPT0xPzA6MTtwdXRWYXIoJ3N0YScsYSk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouiHs+aIkeeahOi/veeVqidgLFxuY29sX3R5cGU6J3RleHRfMydcbn0pO31cbmlmKGEuaW5jbHVkZXMoJ+e0ouW8lScpKXtcbnZhciBvcmQ9WyczJywnMCcsJzQnLCcyJywnNSddO1xudmFyIHRpdD1bJ+i/veeVquS6uuaVsCcsJ+abtOaWsOaXtumXtCcsJ+acgOmrmOivhOWIhicsJ+aSreaUvuaVsOmHjycsJ+W8gOaSreaXtumXtCddO1xudmFyIG9yPXBhcnNlSW50KGdldFZhcignb3InLCcwJyksMTApO1xuYjwyJiZkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO1xuZm9yKHZhciBpPTA7YjwyJiZpPG9yZC5sZW5ndGg7aSsrKXtcbnZhciB0dD0n4oCc4oCc4oCd4oCdPGZvbnQgY29sb3I9XCJibHVlXCI+Jyt0aXRbaV0rJzwvZm9udD4nO1xuZC5wdXNoKHtcbnRpdGxlOm9yPT1vcmRbaV0/dHQ6dGl0W2ldLFxudXJsOidoaWtlcjovL2VtcHR5Iycrb3JkW2ldK2BAbGF6eVJ1bGU9LmpzOnZhciBpPWlucHV0LnNwbGl0KCcjJylbMV07cHV0VmFyMignb3InLGkpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIEnYCxcbmNvbF90eXBlOid0ZXh0XzUnXG59KTt9XG5iPDImJmQucHVzaCh7Y29sX3R5cGU6J2xpbmUnfSk7XG5cbnZhciBtb2RlbD1bJzEnLCc0J107XG52YXIgd2ViPSdodHRwczovL2FwaS5iaWxpYmlsaS5jb20vcGdjL3NlYXNvbi9pbmRleC9yZXN1bHQ/c2Vhc29uX3ZlcnNpb249LTEmYXJlYT0tMSZpc19maW5pc2g9LTEmY29weXJpZ2h0PS0xJnNlYXNvbl9zdGF0dXM9LTEmc2Vhc29uX21vbnRoPS0xJnllYXI9LTEmc3R5bGVfaWQ9LTEmb3JkZXI9JytvcisnJnN0PTEmc29ydD0wJnBhZ2U9JytiKycmc2Vhc29uX3R5cGU9Jyttb2RlbFsoZ2V0VmFyKCdheGUnKT09J+eVquWJp+e0ouW8lSc/MDoxKV0rJyZwYWdlc2l6ZT0yMCZ0eXBlPTEnO1xudHJ5e1xudmFyIHltPUpTT04ucGFyc2UocmVxdWVzdCh3ZWIse30pKS5kYXRhLmxpc3Q7XG5mb3IodmFyIGkgaW4geW0pe1xudmFyIGJ0PXltW2ldLnRpdGxlO1xudmFyIGluZD15bVtpXS5pbmRleF9zaG93O1xuaW5kPWluZD8oaW5kKycgJyk6Jyc7XG52YXIgYnQ9bGIuaW5jbHVkZXMoeW1baV0ubGluayk/KGZpLmNvbCYmZmkuY29sPT0xPygn4q2Q77iPJytidCk6cGluKGJ0KSk6YnQ7XG5cbmQucHVzaCh7XG5cdHRpdGxlOmZpLmNvbCYmZmkuY29sPT0xP2J0Oign4oCc4oCc4oCd4oCdPHN0cm9uZz4nK2J0Kyc8L3N0cm9uZz4nKSxcbiAgZGVzYzpmaS5jb2wmJmZpLmNvbD09MT8oaW5kKTooJzxzdHJvbmc+JytpbmQrJzwvc3Ryb25nPuKAmOKAmOKAmeKAmTxmb250IGNvbG9yPVwicmVkXCI+Jyt5bVtpXS5vcmRlcisnPC9mb250PicpLFxuICBwaWNfdXJsOnltW2ldLmNvdmVyKydAUmVmZXJlcj1odHRwczovL2FwaS5iaWxpYmlsaS5jb20nLFxudXJsOnltW2ldLmxpbmsrJyMjJyt5bVtpXS50aXRsZSsnJiYnK3ltW2ldLmxpbmsrJyYmJyt5bVtpXS5jb3Zlcixcblx0Y29sX3R5cGU6IGZpLmNvbCYmZmkuY29sPT0xPydtb3ZpZV8zX21hcnF1ZWUnOidtb3ZpZV8xJ1xufSk7XG59fWNhdGNoKGUpe31cbn1lbHNlIGlmKGE9PSflvLrlir/mjqXmoaMnJiZiPT0xKXtcbmQucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7XG52YXIgamQ9Wyfph43no4XmjqjojZAnLCflvLrmoaPmjqjojZAnLCfnsr7pgInml6XmvKsnXTtcblxudmFyIGpkcz1bJy5zbGlkZXJfbmF2JiYubmF2X2xpbmsnLCcubW9kX2ZpZ3VyZSYmLmxpc3RfaXRlbScsJy5tb2RfYmQsOCYmLmxpc3RfaXRlbSddO1xudmFyIGR1PWdldFZhcignZHUnLGpkc1syXSk7XG5mb3IodmFyIGkgaW4gamQpe1xudmFyIHR0PSfigJzigJzigJ3igJ08Zm9udCBjb2xvcj1cImJsdWVcIj4nK2pkW2ldKyc8L2ZvbnQ+JztcblxuZC5wdXNoKHtcbnRpdGxlOmR1PT1qZHNbaV0/dHQ6amRbaV0sXG51cmw6J2hpa2VyOi8vZW1wdHkjJytqZHNbaV0rYEBsYXp5UnVsZT0uanM6dmFyIGk9aW5wdXQuc3BsaXQoJyMnKVsxXTtwdXRWYXIyKCdkdScsaSk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdgLFxuY29sX3R5cGU6J3RleHRfMydcbn0pO1xuXG59XG52YXIgdGVuPWZldGNoKCdodHRwczovL3YucXEuY29tL2JrL2NoYW5uZWwvY2FydG9vbi5odG1sJywge2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOlwiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEwNS4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xMDUuMC4xMzQzLjMzXCIsXCJSZWZlcmVyXCI6XCJodHRwczovL3YucXEuY29tXCJ9fSk7XG52YXIgbGVuPScnO1xuaWYoZHU9PWpkc1syXSl7XG52YXIgbGVuPXBhcnNlRG9tRm9yQXJyYXkodGVuLCcubW9kX2xpc3RpbmdzX3RpdGxlJiYudGl0bGVfaXRlbScpO31cbnZhciBsZT1wYXJzZURvbUZvckFycmF5KHRlbixkdSk7XG5cbmZvcih2YXIgaSBpbiBsZSl7XG50cnl7XG52YXIgdXI9cGFyc2VEb21Gb3JIdG1sKGxlW2ldLCdhJiZocmVmJyk7XG52YXIgdGk9cGFyc2VEb21Gb3JIdG1sKGxlW2ldLCcudGl0bGVfdGV4dHx8YSwxJiZUZXh0Jyk7XG50cnl7dmFyIHBpPXBhcnNlRG9tRm9ySHRtbChsZVtpXSwnaW1nJiZsel9zcmN8fGx6X25leHR8fHNyYycpO31jYXRjaChlKXt2YXIgcGk9Jyc7fVxuXG50cnl7XG5pZihwaT09JycpXG52YXIgcGk9cGFyc2VEb21Gb3JIdG1sKGxlW2ldLCdhJiZkYXRhLWJnaW1hZ2UnKTt9Y2F0Y2goZSl7fVxucGk9cGkuaW5jbHVkZXMoJ2h0dHAnKT9waTooJ2h0dHBzOicrcGkpO1xudmFyIGRlPWxlbj8oJ+KAmOKAmOKAmeKAmTxmb250IGNvbG9yPVwicmVkXCI+JytwYXJzZURvbUZvckh0bWwobGVuW2ldLCcudGl0bGUmJlRleHQnKSsnPC9mb250PiA8c3Ryb25nPicrIHBhcnNlRG9tRm9ySHRtbChsZW5baV0sJy5kZXNjJiZUZXh0fHwuZmlndXJlX2Rlc2MmJlRleHQnKSsnPC9zdHJvbmc+JysnXFxuPGZvbnQgY29sb3I9XCJibHVlXCI+JytwYXJzZURvbUZvckh0bWwobGVbaV0sJy5maWd1cmVfZGVzYyYmVGV4dCcpKyc8L2ZvbnQ+Jyk6cGFyc2VEb21Gb3JIdG1sKGxlW2ldLCdzcGFufHwuZmlndXJlX2NhcHRpb24mJlRleHQnKS5yZXBsYWNlKHRpLCcnKTtcbmRlPWxlbnx8ZHU9PWpkc1swXT9kZTooJ+KAmOKAmOKAmeKAmTxmb250IGNvbG9yPVwicmVkXCI+JytkZSsnPC9mb250PicpO1xufWNhdGNoKGUpe31cbnZhciB0aXQ9bGIuaW5jbHVkZXModXIpP3Bpbih0aSk6dGk7XG50aT1kdT09amRzWzBdP3RpOign4oCc4oCc4oCd4oCdPHN0cm9uZz4nK3RpdCsnPC9zdHJvbmc+Jyk7XG5pZih0aSlcbmQucHVzaCh7XG5cdHRpdGxlOnRpLFxuICBkZXNjOmRlICxcbiAgcGljX3VybDpwaSxcblx0dXJsOnVyKycjIycrdGkrJyYmJyt1cisnJiYnK3BpLFxuXHRjb2xfdHlwZTogZHU9PScuc2xpZGVyX25hdiYmLm5hdl9saW5rJz8ncGljXzEnOidtb3ZpZV8xJ1xufSk7XG5cbn1cbn1lbHNlIGlmKGE9PSfov73nlaonJiZiPT0xKXtcbmQxPVtdIDtcbmQyPVtdO1xuZDM9W107XG5pZihsYiE9Jycpe1xuZnVuY3Rpb24gZmVuenUoYXJyLHRhZyl7XG4gIFxuICAgYXJyLnNvcnQoZnVuY3Rpb24gdihhLGIpe1xuICAgICAgIHZhciBhPWEudXJsLnNwbGl0KCcjIycpWzFdLnNwbGl0KCcmJicpWzRdO1xuICAgICAgIGE9YT09dW5kZWZpbmVkfHxhPT1cIlwiP1wi5pyq5ZG95ZCNXCI6YTtcbiAgICAgICB2YXIgYj1iLnVybC5zcGxpdCgnIyMnKVsxXS5zcGxpdCgnJiYnKVs0XTtcbiAgICAgICBiPWI9PXVuZGVmaW5lZHx8Yj09XCJcIj9cIuacquWRveWQjVwiOmI7XG4gICAgICAgcmV0dXJuIGItYTtcbiAgIH0pO1xuICAgXG4gIHZhciBycT1bXTtcbiAgIHZhciBnPWFyci5tYXAoKGEsYixjKT0+e1xuICAgICAgIHZhciBmPWEudXJsLnNwbGl0KCcjIycpWzFdLnNwbGl0KCcmJicpWzRdO1xuICAgICAgIGY9Zj09dW5kZWZpbmVkfHxmPT1cIlwiP1wi5pyq5ZG95ZCNXCI6ZjtcbiAgIFxuICAgICAgIGM9Yy5maWx0ZXIoZT0+e1xuICAgICAgICAgICB2YXIgZTE9ZS51cmwuc3BsaXQoJyMjJylbMV0uc3BsaXQoJyYmJylbNF07XG4gICAgICAgICAgIGUxPWUxPT11bmRlZmluZWR8fGUxPT1cIlwiP1wi5pyq5ZG95ZCNXCI6ZTE7XG4gICAgICAgICAgIGlmKGY9PWUxKXJldHVybiBlO1xuICAgICAgIH0pLm1hcChhPT57YS5leHRyYT17aWQ6dGFnK2YrXCJpdGVtXCJ9O3JldHVybiBhO30pO1xuICBcbiAgICAgICByZXR1cm4ge1xuICAgICAgICAgICB0aXRsZTpcIuKAnOKAnOKAneKAnVwiK3BpbihmKStcIiDliIbnu4RcIixcbiAgICAgICAgICAgdXJsOmBoaWtlcjovL2VtcHR5I25vTG9hZGluZyNAbGF6eVJ1bGU9LmpzOnZhciB0Zj1cImArKHRhZytmKStgXCI7dmFyIGE9Z2V0VmFyKHRmKTtpZihhPT1cIlwiKXB1dFZhcih0ZiwxKTtlbHNlIHB1dFZhcih0ZixcIlwiKTt2YXIgZGU9W107Zm9yKGxldCBpIG9mIGArSlNPTi5zdHJpbmdpZnkoYykrYCl7aWYoYT09XCJcIilhZGRJdGVtQWZ0ZXIodGYsIGkpO2Vsc2UgZGVsZXRlSXRlbSh0ZisnaXRlbScpOy8qZGUucHVzaCh0ZisnaXRlbScpOyovfWE9PVwiXCI/XCJ0b2FzdDovL+W3suWxleW8gO+8gVwiOlwidG9hc3Q6Ly/lt7LlhbPpl63vvIFcIjtgLFxuICAgICAgICAgICBleHRyYTp7aWQ6dGFnK2Z9LFxuICAgICAgICAgIGNvbF90eXBlOlwidGV4dF9jZW50ZXJfMVwiXG4gICAgICAgfTtcbiAgIH0pLmZpbHRlcigoYSk9PntpZihiPT0wfHwhcnEuam9pbihcIiUjXCIpLmluY2x1ZGVzKGEudGl0bGUpKXtycS5wdXNoKGEudGl0bGUpO3JldHVybiBhO319KTtcbiAgIC8qXG4gICAgaWYoZ2V0VmFyKHRhZytsc2YpPT0xKVxuICAgICAgIGZvcihsZXQgaSBvZiBsc2MpXG4gICAgICAgICBhZGRJdGVtQWZ0ZXIodGFnK2xzZiwgaSk7XG4gICAgICAgICAqL1xuICAgcmV0dXJuIGc7XG59XG52YXIgeHg9bGIuc3BsaXQoJ0BAJyk7XG5cbnZhciB1PXh4Lm1hcChmdW5jdGlvbihhKXtcbnZhciBiPWEuc3BsaXQoJyYmJylbMV07XG5pZihiJiZiLmluY2x1ZGVzKCdpcWl5aScpKXJldHVybiB7dXJsOmIsb3B0aW9uczp7aGVhZGVyczp7XCJVc2VyLUFnZW50XCI6TU9CSUxFX1VBfSx0aW1lb3V0OjIwMDB9fTtcbmVsc2UgaWYoYiYmYi5pbmNsdWRlcygneW91a3UnKSlyZXR1cm4ge3VybDpiLG9wdGlvbnM6e3RpbWVvdXQ6MjAwMH19O2Vsc2UgaWYoYiYmYi5pbmNsdWRlcygncXEuJykpe3JldHVybiB7dXJsOmIrJz9uX3ZlcnNpb249MjAyMCcsb3B0aW9uczp7aGVhZGVyczp7XCJVc2VyLUFnZW50XCI6UENfVUF9LHRpbWVvdXQ6MjAwMH19O31lbHNlIGlmKGImJmIuaW5jbHVkZXMoJ3hmYW5pLicpKXJldHVybiB7dXJsOmIsb3B0aW9uczp7aGVhZGVyczp7XCJVc2VyLUFnZW50XCI6TU9CSUxFX1VBLCdDb29raWUnOmdldEl0ZW0oJ3NlbkMnKX0sdGltZW91dDo0MDAwfX07ZWxzZXtyZXR1cm4ge3VybDpiLG9wdGlvbnM6e2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOlBDX1VBfSx0aW1lb3V0OjIwMDB9fTt9XG59KTtcblxudmFyIHk9YmF0Y2hGZXRjaCh1KTtcblxuZm9yKHZhciBrIGluIHh4KXtcbnRyeXtcbnZhciB4PXh4W2tdLnNwbGl0KCcmJicpO1xuaWYoeFsxXSE9Jycpe1xuXG52YXIgeW09eVtrXTtcbnRyeXtcbmlmKHhbMV0uaW5jbHVkZXMoJ2JpbGliaWxpJykpe1xudmFyIGRlcz0nPGZvbnQgY29sb3I9XCJibHVlXCI+JytKU09OLnBhcnNlKHltLnNwbGl0KCduZXdfZXBcIjonKVsxXS5zcGxpdCgnfScpWzBdKyd9JykuZGVzYysnPC9mb250Pic7XG50cnl7XG52YXIgZXA9SlNPTi5wYXJzZSh5bS5zcGxpdCgnXCJlcGlzb2Rlc1wiOicpWzFdLnNwbGl0KCd9XScpWzBdKyd9XScpOyBcbn1jYXRjaChlKXtlcD1bXTt9XG5pZihlcC5sZW5ndGg9PTApZ3h6PTA7XG5lbHNle1xuZm9yKHZhciBpPWVwLmxlbmd0aC0xO2VwW2ldLmJhZGdlPT0n6aKE5ZGKJztpLS0pO1xudmFyIGd4ej1cIuesrFwiK2VwW2ldLnRpdGxlK1wi6K+dXCI7fX1cbn1jYXRjaChlKXtneHo9J+acgOaWsOeKtuaAgeiOt+WPluWksei0pe+8gSc7fVxuXG50cnl7XG5cbmlmKHhbMV0uaW5jbHVkZXMoJ3FxJykpe1xuZXZhbChwZGZoKHltLCdoZWFkJiZzY3JpcHQsMTAmJkh0bWwnKS5yZXBsYWNlKC93aW5kLio/PS8sJ2h0bT0nKSk7XG52YXIgZXBpPWh0bS5nbG9iYWwuY292ZXJJbmZvLnZpZGVvX2lkcztcbnZhciBsZT1mZXRjaCgnaHR0cHM6Ly91bmlvbi52aWRlby5xcS5jb20vZmNnaS1iaW4vZGF0YT9vdHlwZT1qc29uJnRpZD02ODImYXBwaWQ9MjAwMDEyMzgmYXBwa2V5PTZjMDNiYmU5NjU4NDQ4YTQmdW5pb25fcGxhdGZvcm09MSZpZGxpc3Q9JytlcGkuc2xpY2UoLTEwKS5yZXZlcnNlKCkuam9pbignLCcpLHt0aW1lb3V0OjIwMDB9KTtcbmV2YWwobGUpO1xudmFyIGxlPVFaT3V0cHV0SnNvbi5yZXN1bHRzLmZpbHRlcihhPT57aWYoIWEuZmllbGRzLmNhdGVnb3J5X21hcC5qb2luKCcsLCcpLmluY2x1ZGVzKCfpooTlkYonKSlyZXR1cm4gYTt9KTtcbnZhciB0aT1sZVswXS5maWVsZHMuZXBpc29kZTtcbnZhciBneHo9dGkhPTA/KCfnrKwnK3RpKyfor50nKTpsZVswXS5maWVsZHMudGl0bGU7XG4vKlxuaWYoZ3h6PT0n56ysMOivnScpe1xuZGVzPSc8Zm9udCBjb2xvcj1cImJsdWVcIj4nK2h0bS51cGRhdGVfbm90aWZ5X2Rlc2MrJzwvZm9udD4nO1xufSovXG59XG59Y2F0Y2goZSl7Z3h6PSfmnIDmlrDnirbmgIHojrflj5blpLHotKXvvIEnO31cblxudHJ5e1xuaWYoeFsxXS5pbmNsdWRlcygnaXFpeWknKSl7XG5cbnZhciBneHo9XCLnrKxcIit5bS5tYXRjaCgvbGF0ZXN0T3JkZXJcIi4qPyhcXGQrKS8pWzFdK1wi6K+dXCI7XG59XG59Y2F0Y2goZSl7Z3h6PSfmnIDmlrDnirbmgIHojrflj5blpLHotKXvvIEnO31cblxudHJ5e1xuaWYoeFsxXS5pbmNsdWRlcygneW91a3UnKSl7XG52YXIgZ3h6PVwi56ysXCIreW0ubWF0Y2goL2VwaXNvZGVMYXN0XCIuKj8oXFxkKykvKVsxXStcIuivnVwiO1xufVxuXG59Y2F0Y2goZSl7Z3h6PSfmnIDmlrDnirbmgIHojrflj5blpLHotKXvvIEnO31cblxuXG4gICAgaWYoeFsxXS5zZWFyY2goL3hmYW5pfG9tb2Z1bi8pPjApe1xuICAgICAgICBmb3IobGV0IGk9MDtpPDE7aSsrKXtcbiAgICAgICAgICAgIHRyeXtcbiAgICAgICAgICAgICAgICBpZihpIT0wKVxuICAgICAgICAgICAgICAgIHltPWZldGNoKHhbMV0se2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOk1PQklMRV9VQSwnQ29va2llJzpnZXRJdGVtKCdzZW5DJyl9fSk7XG4gICAgICAgICAgICB2YXIgbGk9cGRmYSh5bSwnYm9keSYmLm1vZHVsZS1wbGF5LWxpc3QtbGluaycpO1xuICAgICAgICB2YXIgZ3h6PXBkZmgobGlbbGkubGVuZ3RoLTFdLCdhJiZUZXh0Jyk7XG4gICAgICAgIGlmKGd4eiE9Jycpe3B1dFZhcih4WzFdLHltKTticmVhazt9XG4gICAgICAgIGVsc2UgcXp0YztcbiAgICAgICAgXG4gICAgICAgIH1jYXRjaChlKXtneHo9J+acgOaWsOeKtuaAgeiOt+WPluWksei0pe+8gSc7fVxuICAgICAgIH0gXG4gICAgICAgIFxuICAgIH1cblxudmFyIHBpYz14WzJdLnNwbGl0KCcvJyk7XG5pZihwaWNbMl09PSdwdXVpLnFwaWMuY24nKXhbMl09cGljLnNsaWNlKDAsLTEpLmpvaW4oJy8nKSsnLzAnO1xueFsyXT14WzJdKydAUmVmZXJlcj0nK3hbMV07XG5pZihneHo9PSfmnIDmlrDnirbmgIHojrflj5blpLHotKXvvIEnKXtcbmQyLnB1c2goe1xuXHR0aXRsZTogZ2V0VmFyKCdzdGEnKT09MT94WzBdOign4oCc4oCc4oCd4oCdPGZvbnQgY29sb3I9XCJncmV5XCI+Jyt4WzBdKyc8L2ZvbnQ+JyksXG4gIHBpY191cmw6IHhbMl0sXG5kZXNjOmdldFZhcignc3RhJyk9PTE/KHhbM10mJnhbM10hPScnPygn6KeC55yL6IezICcreFszXSk6KCfmnKrop4LnnIsnKSk6KCh4WzNdJiZ4WzNdIT0nJz8oJ+ingueci+iHsyDigJjigJgnK3hbM10rJ+KAmeKAmScpOign4oCY4oCY5pyq6KeC55yL4oCZ4oCZJykpKydcXG7mm7TmlrDoh7MgPGZvbnQgY29sb3I9XCJyZWRcIj4nK2d4eisnPC9mb250PicpLFxuXHR1cmw6eFsxXSsnIyMnK3h4W2tdKycjIycsXG5cdGNvbF90eXBlOiggZ2V0VmFyKCdzdGEnKT09MT8nbW92aWVfM19tYXJxdWVlJzonbW92aWVfMV92ZXJ0aWNhbF9waWMnKVxufSk7XG59ZWxzZXtcbmlmKHhbM10mJnhbM10uc2VhcmNoKC9cXGQvKT4tMSYmeFszXS5tYXRjaCgv56ysLio/Lyk9PW51bGwpeFszXT1cIuesrFwiK3hbM10rXCLor51cIjtcbnRyeXtcbmlmKHhbM10ubWF0Y2goL1xcZCsvKVswXT09Z3h6Lm1hdGNoKC9cXGQrLylbMF0peFszXT1neHo7XG59Y2F0Y2goZSl7fVxuaWYoeFszXSE9Z3h6KVxuZDMucHVzaCh7XG5cdHRpdGxlOiBnZXRWYXIoJ3N0YScpPT0xP3hbMF06cGluKHhbMF0sMCksXG4gIHBpY191cmw6IHhbMl0sXG5kZXNjOmdldFZhcignc3RhJyk9PTE/KHhbM10mJnhbM10hPVwiXCI/KCfop4LnnIvoh7MgJyt4WzNdKTooJ+acquingueciycpKTooKHhbM10mJnhbM10hPVwiXCI/KCfop4LnnIvoh7MgJysoeFszXSE9Z3h6Pygn4oCc4oCcJyt4WzNdKyfigJ3igJ0nKTooJ+KAmOKAmCcreFszXSsn4oCZ4oCZJykpKTooZ3h6PT0n56ysMOivnSd8fGd4ej09MD9kZXM6J+KAmOKAmOacquingueci+KAmeKAmScpKSsnXFxu5pu05paw6IezICcrKHhbM10mJnhbM10hPVwiXCImJnhbM10hPWd4ej8oJ+KAnOKAnCcrZ3h6KyfigJ3igJ0nKTooJ+KAmOKAmCcrZ3h6KyfigJnigJknKSkpLFxuXHR1cmw6eFsxXSsnIyMnK3h4W2tdKycjIycsXG5cdGNvbF90eXBlOiAoIGdldFZhcignc3RhJyk9PTE/J21vdmllXzNfbWFycXVlZSc6J21vdmllXzFfdmVydGljYWxfcGljJylcbn0pO1xuZWxzZVxuZDEucHVzaCh7XG5cdHRpdGxlOiB4WzBdLFxuICBwaWNfdXJsOiB4WzJdLFxuZGVzYzpnZXRWYXIoJ3N0YScpPT0xPygn6KeC55yL6IezICcreFszXSk6KCh4WzNdJiZ4WzNdIT1cIlwiPygn6KeC55yL6IezICcrKHhbM10hPWd4ej8oJ+KAnOKAnCcreFszXSsn4oCd4oCdJyk6KCfigJjigJgnK3hbM10rJ+KAmeKAmScpKSk6KCfigJjigJjmnKrop4LnnIvigJnigJknKSkrJ1xcbuabtOaWsOiHsyAnKyh4WzNdJiZ4WzNdIT1cIlwiJiZ4WzNdIT1neHo/KCfigJzigJwnK2d4eisn4oCd4oCdJyk6KCfigJjigJgnK2d4eisn4oCZ4oCZJykpKSxcblx0dXJsOnhbMV0rJyMjJyt4eFtrXSsnIyMnLFxuXHRjb2xfdHlwZTogKCBnZXRWYXIoJ3N0YScpPT0xPydtb3ZpZV8zX21hcnF1ZWUnOidtb3ZpZV8xX3ZlcnRpY2FsX3BpYycpXG59KTtcbn1cbn1cbn1jYXRjaChlKXt9XG59XG5pZihnZXRWYXIoJ3N0YScpPT0xKXtcbi8qXG5sb2coZDMpO1xubG9nKGZlbnp1KGQzKSk7XG4qL1xuaWYoZDEhPScnKVxuZDE9W3tcbnRpdGxlOifirZDvuI/ku6XkuIvnlarliafmnKrmnInmm7TmlrA6JyxcbmNvbF90eXBlOid0ZXh0XzEnXG59XS5jb25jYXQoZmkuZnomJmZpLmZ6PT0xP2Zlbnp1KGQxLFwi5pyq5pu05pawXCIpOmQxKTtcblxuaWYoZDMhPScnKVxuZDM9W3tcbnRpdGxlOifirZDvuI/ku6XkuIvnlarliaflvoXnnIs6JyxcbmNvbF90eXBlOid0ZXh0XzEnXG59XS5jb25jYXQoZmkuZnomJmZpLmZ6PT0xP2Zlbnp1KGQzLFwi5bey5pu05pawXCIpOmQzKTtcblxuaWYoZDIhPScnKVxuZDI9W3tcbnRpdGxlOifirZDvuI/ku6XkuIvnlarliafojrflj5bmm7TmlrDlpLHotKU6JyxcbmNvbF90eXBlOid0ZXh0XzEnXG59XS5jb25jYXQoZmkuZnomJmZpLmZ6PT0xP2Zlbnp1KGQyLFwi5aSx6LSlXCIpOmQyKTtcblxuZD1kLmNvbmNhdChkMyxkMSxkMik7XG59ZWxzZXtcbiAgICB2YXIgZGQ9ZDMuY29uY2F0KGQxLGQyKTtcbiAgICBkPWQuY29uY2F0KGZpLmZ6JiZmaS5mej09MT9mZW56dShkZCxcIuWFqOmDqFwiKTpkZCk7XG59XG5cblxufWVsc2VcbmQucHVzaCh7XG5cdHRpdGxlOifigJzigJzov5jmsqHmnInov73nlarvvIHigJ3igJ0nLFxudXJsOmBoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5Yi35paw5a6M5q+V77yBJ2AsXG5kZXNjOifngrnlh7vliLfmlrAnLFxuXG5cdGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcbn0pO1xuXG59ZWxzZSBpZihiPT0xKXtcbnZhciBzdD1hPT03PycnOifigJzigJzigJ3igJ08Zm9udCBjb2xvcj1cInJlZFwiPis8L2ZvbnQ+ICc7XG52YXIgY3M9MDtcbnZhciBuPWE9PTc/J+aYjuaXpSAnOihhPT02Pyfku4rml6UgJzon5pio5pelICcpO1xuLy9odHRwczovL3d3dy5iaWxpYmlsaS5jb20vYW5pbWUvdGltZWxpbmVcbnZhcsKgaD1uZXfCoERhdGUoKS5nZXRIb3VycygpO1xudmFyIG09bmV3wqBEYXRlKCkuZ2V0TWludXRlcygpO1xudmFyIHNpPWgqNjArbTtcblxudmFywqB5MT1mZXRjaCgnaHR0cHM6Ly9iYW5ndW1pLmJpbGliaWxpLmNvbS93ZWJfYXBpL3RpbWVsaW5lX2dsb2JhbCcse30pO1xudmFyIHltMT1KU09OLnBhcnNlKHkxKS5yZXN1bHRbYV0uc2Vhc29ucztcbnZhciB5Mj1mZXRjaCgnaHR0cHM6Ly9iYW5ndW1pLmJpbGliaWxpLmNvbS93ZWJfYXBpL3RpbWVsaW5lX2NuJyx7fSk7XG52YXIgeW0yPUpTT04ucGFyc2UoeTIpLnJlc3VsdFthXS5zZWFzb25zO1xudmFyIHk9eTEreTI7XG52YXIgeW09eW0xLmNvbmNhdCh5bTIpO1xudmFyIERhPW5ldyBEYXRlKCk7XG50cnl7XG4gdmFyIFk9RGEuZ2V0RnVsbFllYXIoKTsgICBcbnZhciBNPURhLmdldE1vbnRoKCkrMTtcblxudmFyIEQ9RGEuZ2V0RGF0ZSgpO1xuXG5EPWE9PTU/KEQtMSk6RDtcbmlmKGE9PTcpe1xuICAgIGlmKEQ9PW5ldyBEYXRlKFksTSwwKS5nZXREYXRlKCkpe1xuICAgICAgICBNPU0rMTtcbiAgICAgICAgRD0xO1xuICAgIH1lbHNlIEQrKztcbn1cbmlmKEQ8PTApe00tLTtcbmlmKE08PTApe1ktLTtNPTEyO31cbkQ9bmV3IERhdGUoWSxNLDApLmdldERhdGUoKTtcblxufVxuaWYoTTwxMClNPScwJytNO1xuaWYoRDwxMClEPScwJytEO1xuZGF0YT0nJytZK00rRDtcbmxvZyhkYXRhKTtcbi8vbG9nKFkrJywnK00pO1xuICAgIHZhciB5bTM9W107XG4vL+WQiOW5tuaOkuW6j+W8gOWni1xuXG52YXIgeW0zPUpTT04ucGFyc2UoZmV0Y2goJ2h0dHBzOi8vcGJhY2Nlc3MudmlkZW8ucXEuY29tL3RycGMudmVjdG9yX2xheW91dC5wYWdlX3ZpZXcuUGFnZVNlcnZpY2UvZ2V0Q2FyZD92aWRlb19hcHBpZD0zMDAwMDEwJyx7aGVhZGVyczp7XCJSZWZlcmVyXCI6XCJodHRwczovL3YucXEuY29tL1wiLFwiT3JpZ2luXCI6XCJodHRwczovL3YucXEuY29tXCJ9LG1ldGhvZDonUE9TVCcsYm9keTpge1wicGFnZV9wYXJhbXNcIjp7XCJwYWdlX2lkXCI6XCIxMDAxMTlcIixcInBhZ2VfdHlwZVwiOlwiY2hhbm5lbFwiLFwid2Vla1wiOlwiYCtkYXRhK2BcIn0sXCJmbGlwX2luZm9cIjp7XCJwYWdlX3N0cmF0ZWd5X2lkXCI6XCJiZmRkMDEzOWRjYjg0NDc1ODgxNTQ3M2YxZjRhOWVlNlwiLFwicGFnZV9tb2R1bGVfaWRcIjpcIjcyXzExNWJiXCJ9fWB9KSkuZGF0YS5jYXJkLmNoaWxkcmVuX2xpc3QubGlzdC5jYXJkcy5zbGljZSg3KS5maWx0ZXIoYT0+e3RyeXtcbiAgaWYoYS5wYXJhbXMucGF5X2VwaXNvZGUmJmEucGFyYW1zLnBheV90aW1lKXsgXG4gICAgYS5wdWJfdGltZT1hLnBhcmFtcy5wYXlfdGltZTtcbiAgICBhLnNxdWFyZV9jb3Zlcj1hLnBhcmFtcy5pbWFnZV91cmw7XG4gICAgYS5wdWJfaW5kZXg9YS5wYXJhbXMucGF5X2VwaXNvZGU7XG4gICAgYS50aXRsZT1hLnBhcmFtcy50aXRsZTsgYS51cmw9J2h0dHBzOi8vdi5xcS5jb20veC9jb3Zlci8nK2EucGFyYW1zLmNpZCsnLmh0bWwnXG5yZXR1cm4gYTtcbn1cbn1jYXRjaChlKXtyZXR1cm4gdW5kZWZpbmVkO31cbn0pO1xuXG5cbn1jYXRjaChlKXt5bTM9W107fVxuLy9sb2coeW0zKTtcblxueW09eW0uY29uY2F0KHltMyk7XG5cbnltPXltLnNvcnQoZnVuY3Rpb24gdihhLGIpe1xuXG52YXIgYWE9YS5wdWJfdGltZTtcblxudmFyIGM9cGFyc2VJbnQoYWEuc3BsaXQoJzonKVswXSwxMCkqNjArcGFyc2VJbnQoYWEuc3BsaXQoJzonKVsxXSwxMCk7XG52YXIgYmI9Yi5wdWJfdGltZTtcbnZhciBkPXBhcnNlSW50KGJiLnNwbGl0KCc6JylbMF0sMTApKjYwK3BhcnNlSW50KGJiLnNwbGl0KCc6JylbMV0sMTApO1xuXG5yZXR1cm4gYy1kO1xufSk7XG5cbi8vZC5wdXNoKHt0aXRsZTp5bX0pO1xuLy/lkIjlubbmjpLluo/nu5PmnZ9cblxuXG5cbmg9aDwxMD8oJzAnK2gpOmg7XG5tPW08MTA/KCcwJyttKTptO1xuXG5mb3IodmFywqBpwqBpbsKgeW0pe1xuXG52YXIgdGk9eW1baV0ucHViX3RpbWU7XG5cbmlmKGE9PTYpe1xudmFyIHNpaT1wYXJzZUludCh0aS5zcGxpdCgnOicpWzBdLDEwKSo2MCtwYXJzZUludCh0aS5zcGxpdCgnOicpWzFdLDEwKTtcblxuXG5pZihzaTxzaWkmJmNzPT0wKXtcbmQucHVzaCh7dGl0bGU6J+W9k+WJjeaXtumXtO+8muKAnOKAnCcraCsnOicrbSsn4oCd4oCdJyxcbnVybDpgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIt+aWsOWujOavle+8gSdgLFxuZGVzYzon54K55Ye75Yi35pawJyxcbmNvbF90eXBlOid0ZXh0X2NlbnRlcl8xJ1xufSk7XG5jcysrO1xuc3Q9Jyc7XG59XG59XG5cbnZhciBubj1zdD09Jyc/J+WNs+WwhuabtOaWsCAnOiflt7Lmm7TmlrDoh7MgJztcbnZhciB1PXltW2ldLnVybDtcbnZhciBidD15bVtpXS50aXRsZTtcblxuLy9idD1idC5zbGljZSgwLDI1KSsoYnQubGVuZ3RoPjI1PycuLi4nOicnKTtcbnZhciB6Zj1sYi5pbmNsdWRlcyh1KT9waW4oYnQsc3Q9PScnPzA6MSk6YnQ7XG52YXIgZGU9JzxzdHJvbmc+JytuKyc8L3N0cm9uZz7igJjigJjigJnigJk8Zm9udCBjb2xvcj1cIiNmZjgwMDBcIj4gJyt0aSsnIDwvZm9udD7mm7TmlrAnO1xuc3QxPXltW2ldLnB1Yl9pbmRleD9zdDonJztcbnZhciBkcj15bVtpXS5kZWxheV9yZWFzb247XG5pbmQ9eW1baV0ucHViX2luZGV4O1xudHJ5e1xuaWYoaW5kLm1hdGNoKC9cXGQrLylbMF09PWluZClpbmQ9J+esrCcraW5kKyfor50nO1xufWNhdGNoKGUpe31cbmQucHVzaCh7XG5cdHRpdGxlOiBzdDErJ+KAnOKAnOKAneKAnTxzdHJvbmc+Jyt6ZisnPC9zdHJvbmc+JysnXFxuJysoaW5kPyhubisnPGZvbnQgY29sb3I9XCJibHVlXCI+JysoaW5kKSsnPC9mb250PicpOignPGZvbnQgY29sb3I9XCJncmV5XCI+Jysn5pys5ZGo5YGc5pu0ICcreW1baV0uZGVsYXlfaW5kZXgrJzwvZm9udD4nKSksXG4gIGRlc2M6IWRyP2RlOignPGRlbD4nK2RlKyc8L2RlbD4nKSxcbiAgcGljX3VybDogeW1baV0uc3F1YXJlX2NvdmVyKyh1LmluY2x1ZGVzKCdiaWxpYmlsaScpPydAUmVmZXJlcj1odHRwczovL3d3dy5iaWxpYmlsaS5jb20nOicnKSxcblx0dXJsOnUrJyMjJyt5bVtpXS50aXRsZSsnJiYnK3UrJyYmJyt5bVtpXS5zcXVhcmVfY292ZXIrJyMjJyxcblx0Y29sX3R5cGU6ICdtb3ZpZV8xJ1xufSk7XG5cbmlmKGE9PTYmJnNpPj1zaWkmJmk9PXltLmxlbmd0aC0xKXtcbmQucHVzaCh7dGl0bGU6J+W9k+WJjeaXtumXtO+8muKAnOKAnCcraCsnOicrbSsn4oCd4oCdJyxcbnVybDpgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIt+aWsOWujOavle+8gSdgLFxuZGVzYzon5LuK5pel55Wq5Ymn5bey5YWo6YOo5pu05paw77yM5oSf6LCi5L2/55So77yBJyxcbmNvbF90eXBlOid0ZXh0X2NlbnRlcl8xJ1xufSk7XG59XG5cbn1cbn1cbnJlcy5kYXRhID0gZDtcbnNldEhvbWVSZXN1bHQocmVzKTtcbmQ9ZC5maWx0ZXIoYT0+e1xudHJ5e1xuICAgIGlmKGEuZXh0cmEuaWQpcmV0dXJuIGE7XG59XG5jYXRjaChlKXt9XG59KTtcblxuZm9yKGxldCBpIG9mIGQpe1xuICAgIGlmKGdldFZhcihpLmV4dHJhLmlkKT09MSl7XG4gICAgICAgIHB1dFZhcihpLmV4dHJhLmlkLFwiXCIpO1xuICAgIGV2YWwoaS51cmwuc3BsaXQoXCJAbGF6eVJ1bGU9LmpzOlwiKVsxXSk7XG59XG59Iiwic2VhcmNoX3VybCI6Imhpa2VyOi8vZW1wdHkjKiojZnlwYWdlIiwiZ3JvdXAiOiIu5Li76aG1Iiwic2VhcmNoRmluZCI6ImpzOlxudmFyIHJlcyA9IHt9O1xudmFyIGQgPSBbXTtcblxudmFyIG5hPU1ZX1VSTC5zcGxpdCgnIycpWzFdO1xudmFyIHBhZ2U9TVlfVVJMLnNwbGl0KCcjJylbMl07XG52YXIgbGIxPWZldGNoKFwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFwiLCB7fSk7XG5pZihwYWdlPT0xKXtcbnZhciBidT1be3VybDonaHR0cHM6Ly9kaWNrLnhmYW5pLmNvbS9zZWFyY2guaHRtbD93ZD0nK25hfSx7dXJsOidodHRwczovL2FwaS5iaWxpYmlsaS5jb20veC93ZWItaW50ZXJmYWNlL3NlYXJjaC9hbGwvdjI/a2V5d29yZD0nK25hKycmcGFnZT0xJnBhZ2VzaXplPTIwJmNvbnRleHQ9JyxvcHRpb25zOntoZWFkZXJzOntPcmlnaW46J2h0dHBzOi8vbS5iaWxpYmlsaS5jb20nLFJlZmVyZXI6J2h0dHBzOi8vbS5iaWxpYmlsaS5jb20vc2VhcmNoP2tleXdvcmQ9JytuYSxDb29raWU6J2J1dmlkMz1CNzY3OEQwQS1EQTFFLTgyNjktMTg4RC1GNThBMzlEQkFEOTk0NDc1MGluZm9jOyBiX2xzaWQ9OUE0RDczN0VfMTg1OUVCQ0I2RDY7IGJzb3VyY2U9c2VhcmNoX2JhaWR1OyBfdXVpZD1CODVDM0E2My0zODEwQy1ERTE1LTdDM0MtNEVCQUM2NTJFODlDNDU4ODBpbmZvYzsgYnV2aWQ0PTVCMDE4MDExLThDQUUtN0EyQS00MzhGLTU4NURBQjUzMDRDNTQ1ODc0LTEyMzAxMTExMC05VE8raFdoeFFITVdvcmN2N2dsWkxERjgrMGY0amVuZlppbytXQXpCYnl6bkpScnRNMmorc2clM0QlM0Q7IGJ1dmlkX2ZwPTk2MjBlMTk3Mzc4MWJlZDNiMGM1MGIyNzQwN2Q2ZDg4J319fSx7dXJsOidodHRwczovL3YucXEuY29tL3gvc2VhcmNoLz9xPScrbmEsb3B0aW9uczp7aGVhZGVyczp7XCJVc2VyLUFnZW50XCI6UENfVUF9fVxufSx7dXJsOidodHRwczovL3NvLmlxaXlpLmNvbS9zby9xXycrbmEsb3B0aW9uczp7aGVhZGVyczp7XCJVc2VyLUFnZW50XCI6UENfVUF9fVxufV07XG5cbnZhciB5bWI9YmF0Y2hGZXRjaChidSk7XG5cbnRyeXtcbi8qXG4gICAgdmFyIHltPXJlcXVlc3QoJ2h0dHBzOi8vd3d3LnhmYW5pLmNvbS9zZWFyY2guaHRtbD93ZD0nK25hKTtcbiovXG5mb3IodmFyIGlpPTA7aWk8MTtpaSsrKXtcbnZhciB5bT15bWJbaWldO1xuICAgIHZhciBsaT1wZGZhKHltLCdib2R5JiYubW9kdWxlLWNhcmQtaXRlbScpO1xuICBpZihsaSE9JycpIGQucHVzaCh7XG5cdHRpdGxlOiBidVtpaV0udXJsLnNwbGl0KCcuJylbMV0rJ+aQnOe0ouWGheWuueKApicgfSk7XG4gZm9yIChsZXQgaSBvZiBsaSl7XG4gICAgICAgIHZhciB0PXBkZmgoaSwnLm1vZHVsZS1jYXJkLWl0ZW0tY2xhc3MmJlRleHQnKTtcbiAgICBpZih0IT0n6ZKb5ZCI6YeRJyl7XG4gICAgICAgIHZhciBidD1wZGZoKGksJy5tb2R1bGUtY2FyZC1pdGVtLXRpdGxlJiZUZXh0Jyk7XG4gICAgICAgIHZhciB1cj0naHR0cHM6Ly8nK2J1W2lpXS51cmwuc3BsaXQoJy8nKVsyXStwZGZoKGksJ2EmJmhyZWYnKTtcbiAgICAgICAgdmFyIHBpPXBkZmgoaSwnaW1nJiZkYXRhLW9yaWdpbmFsJyk7XG52YXIgemY9bGIxLmluY2x1ZGVzKHVyKT8nPHNtYWxsPuaIkeeahOi/veeVqiA8L3NtYWxsPic6Jyc7XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6emYrYnQsXG4gICAgICAgIGltZzpwaSxcbiAgICAgICAgZGVzYzpwZGZoKGksJy5tb2R1bGUtaXRlbS1ub3RlJiZUZXh0JyksXG4gICAgICAgIGNvbnRlbnQ6cGRmaChpLCcubW9kdWxlLWluZm8taXRlbS1jb250ZW50JiZUZXh0JyksXG4gICAgICAgIHVybDp1cisnIyMnK2J0KycmJicrdXIrJyYmJytwaSsnIyMnXG4gICAgfSk7XG59XG59XG59XG59Y2F0Y2goZSl7ZC5wdXNoKHtcblx0dGl0bGU6ICflhbbku5bmkJzntKLplJnor68nIH0pO31cblxudHJ5e1xuaWYoeW1iWzFdIT1udWxsKXtcbnZhciB5PUpTT04ucGFyc2UoeW1iWzFdKTtcbnZhciB5MT15LmRhdGEucmVzdWx0WzVdLmRhdGE7XG52YXIgeTI9eS5kYXRhLnJlc3VsdFs2XS5kYXRhO1xueT15MS5jb25jYXQoeTIpO1xuZC5wdXNoKHtcblx0dGl0bGU6ICflk5Tlk6nmkJzntKLlhoXlrrnigKYnIH0pO1xufVxuZm9yKHZhciBpPTA7eSE9bnVsbCYmaTx5Lmxlbmd0aDtpKyspe1xueWk9eVtpXTtcbnZhciB0aT15aS50aXRsZS5yZXBsYWNlKC88ZW0gY2xhc3M9XCJrZXl3b3JkXCI+fDxcXC9lbT4vZywnJyk7XG5pZih0aS5pbmNsdWRlcyhuYSkpe1xudmFyIHpmPWxiMS5pbmNsdWRlcygnc3MnK3lbaV0uc2Vhc29uX2lkKT8nPHNtYWxsPuaIkeeahOi/veeVqiA8L3NtYWxsPic6Jyc7XG5cbmQucHVzaCh7XG50aXRsZTp6Zit0aSxcbmltZzp5aS5jb3ZlcisnQFJlZmVyZXI9aHR0cHM6Ly9hcGkuYmlsaWJpbGkuY29tJyxcbmRlc2M6eWkuc3R5bGVzLFxuY29udGVudDp5aS5kZXNjLFxudXJsOnlpLmdvdG9fdXJsKycjIycrdGkrJyYmaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tL2Jhbmd1bWkvcGxheS9zcycreWkuc2Vhc29uX2lkKycmJicreVtpXS5jb3ZlcisnIyMnXG59KTtcbn1cbn1cbn1jYXRjaChlKXtkLnB1c2goe1xuXHR0aXRsZTogJ+WTlOWTqeaQnOe0oumUmeivrycgfSk7fVxuXG5cbnRyeXtcbi8qXG52YXIgeW09ZmV0Y2goJ2h0dHBzOi8vdi5xcS5jb20veC9zZWFyY2gvP3E9JytuYSx7aGVhZGVyczp7XCJVc2VyLUFnZW50XCI6UENfVUF9fSk7XG4qL1xudmFyIHltPXltYlsyXTtcbnB1dFZhcigndHgnLHltKTtcbnZhciBsZW49cGFyc2VEb21Gb3JBcnJheSh5bSwnYm9keSYmLl9pbmZvcycpO1xuaWYobGVuIT0nJykgZC5wdXNoKHtcblx0dGl0bGU6ICfohb7orq/mkJzntKLlhoXlrrnigKYnIH0pO1xuLypcbnRyeXtcbnZhciBsZW4xPXBhcnNlRG9tRm9yQXJyYXkoeW0sJy5maWd1cmVzX2xpc3QmJi5saXN0X2l0ZW0nKTtcbmxlbj1sZW4uY29uY2F0KGxlbjEpO1xufWNhdGNoKGUpe31cbiovXG5mb3IodmFyIGogaW4gbGVuKXtcbnRyeXt2YXIgZGVzPXBhcnNlRG9tRm9ySHRtbChsZW5bal0sJy5maWd1cmVfY2FwdGlvbnx8LnJlc3VsdF9zY29yZXx8LmZpZ3VyZV9kZXNjJiZUZXh0Jyk7fWNhdGNoKGUpe2Rlcz0nJzt9XG4vKlxudHJ5e1xuZj1kZXMuc3BsaXQoJzonKS5tYXAoTnVtYmVyKTtcbnZhciB0aW1lPWZbMF0qMzYwMCtmWzFdKjYwK2ZbMl07XG59Y2F0Y2goZSl7dmFyIGRlcz0nJzt9XG4qL1xudHJ5e3ZhciB5Zz1wYXJzZURvbUZvckh0bWwobGVuW2pdLCcubWFya192JiZpbWcmJmFsdCcpO31jYXRjaChlKXt2YXIgeWc9J+ayoeaciSc7fVxudHJ5e1xudmFyIHVyPXBhcnNlRG9tRm9ySHRtbChsZW5bal0sJ2EmJmhyZWYnKTtcbmlmKHVyLmluY2x1ZGVzKCdzZWFyY2hfcmVkaXJlY3QnKSYmdXIuaW5jbHVkZXMoJ3VybD0nKSYmdXIuc2VhcmNoKC9pcWl5aS58YmlsaWJpbGkvKT4tMSl1cj1kZWNvZGVVUklDb21wb25lbnQodXIuc3BsaXQoJ3VybD0nKVsxXSk7XG5lbHNlIGlmKHVyLmluY2x1ZGVzKCdzZWFyY2hfcmVkaXJlY3QnKSl1cj0nJztcbmlmKCF5Zy5pbmNsdWRlcygn6aKE5ZGKJykmJnVyIT0nJyl7XG50cnl7dmFyIGNvbj1wYXJzZURvbUZvckh0bWwobGVuW2pdLCcuZGVzY190ZXh0JiZUZXh0Jyk7fWNhdGNoKGUpe3ZhciBjb249Jyc7fVxudmFyIGJ0PXBhcnNlRG9tRm9ySHRtbChsZW5bal0sJ2ltZyYmYWx0Jyk7XG52YXIgcGk9cGFyc2VEb21Gb3JIdG1sKGxlbltqXSwnaW1nJiZzcmMnKTtcbmlmKCFwaS5pbmNsdWRlcygnaHR0cCcpKXBpPSdodHRwczonK3BpO1xudmFyIHpmPWxiMS5pbmNsdWRlcyh1cik/JzxzbWFsbD7miJHnmoTov73nlaogPC9zbWFsbD4nOicnO1xuZC5wdXNoKHtcblx0dGl0bGU6IHpmK2J0LCBcbmRlc2M6ZGVzLFxuY29udGVudDpjb24sXG4gIHBpY191cmw6cGksXG5cdHVybDp1cisnIyMnK2J0KycmJicrdXIrJyYmJytwaSsnIyMnLFxufSk7XG59fWNhdGNoKGUpe31cbn1cbn1jYXRjaChlKXtkLnB1c2goe1xuXHR0aXRsZTogJ+iFvuiur+aQnOe0oumUmeivrycgfSk7fVxuXG50cnl7XG4vKlxudmFyIHltPWZldGNoQ29kZUJ5V2ViVmlldygnaHR0cHM6Ly9zby5pcWl5aS5jb20vc28vcV8nK25hLHtoZWFkZXJzOntcIlVzZXItQWdlbnRcIjpQQ19VQX19KTtcbiovXG52YXIgeW09eW1iWzNdO1xucHV0VmFyKCdpcWl5aScseW0pO1xudmFyIHJlc3U9cGFyc2VEb21Gb3JBcnJheSh5bSwnYm9keSYmLnF5LXNlYXJjaC1yZXN1bHQtaXRlbScpO1xuXG5pZihyZXN1IT0nJykgZC5wdXNoKHtcblx0dGl0bGU6ICfniLHlpYfoibrmkJzntKLlhoXlrrnigKYnIH0pO1xuZm9yKHZhciBpIG9mIHJlc3Upe1xudHJ5e1xuXG52YXIgcGQ9cGFyc2VEb21Gb3JIdG1sKGksJy5pdGVtLXR5cGUmJlRleHQnKTtcbnZhciBwZDI9cGFyc2VEb21Gb3JIdG1sKGksJy5wbGF5ZXItbmFtZSYmVGV4dCcpO1xuXG5pZihwZC5tYXRjaCgv55S16KeG5YmnfOeUteW9sXzliqjmvKt855+l6K+GL2cpWzBdIT0nJyYmcGQyLm1hdGNoKC/niLHlpYfoibp86IW+6K6vfGJpbGliaWxpL2cpWzBdIT0nJyl7XG5cbnZhciBidD1wYXJzZURvbUZvckh0bWwoaSwnYSYmdGl0bGUnKTtcbnZhciBwaT1wYXJzZURvbUZvckh0bWwoaSwnaW1nJiZzcmMnKTtcbmlmKCFwaS5pbmNsdWRlcygnaHR0cCcpKXBpPSdodHRwczonK3BpO1xudmFyIHVyPXBhcnNlRG9tRm9ySHRtbChpLCdhJiZocmVmJykuc3BsaXQoJz8nKVswXTtcbmlmKCF1ci5pbmNsdWRlcygnaHR0cCcpKXVyPSdodHRwczonK3VyO1xudmFyIHpmPWxiMS5pbmNsdWRlcyh1cik/JzxzbWFsbD7miJHnmoTov73nlaogPC9zbWFsbD4nOicnO1xuXG52YXIgZGVzPXBhcnNlRG9tRm9ySHRtbChpLCcucXktbW9kLWxhYmVsJiZUZXh0Jyk7XG52YXIgY29uPXBhcnNlRG9tRm9ySHRtbChpLCcuaW5mby1kZXMsMnx8LmluZm8tZGVzfHwuc3ViLXR4dCYmVGV4dCcpO1xuXG5kLnB1c2goe1xuXHR0aXRsZTogemYrYnQsIFxuZGVzYzpkZXMsXG5jb250ZW50OmNvbixcbiAgcGljX3VybDpwaSsnQFJlZmVyZXI9aHR0cHM6Ly93d3cuaXFpeWkuY29tJyxcblx0dXJsOnVyKycjIycrYnQrJyYmJyt1cisnJiYnK3BpKycjIycsXG59KTt9fWNhdGNoKGUpe31cbn1cbn1jYXRjaChlKXtkLnB1c2goe1xuXHR0aXRsZTogJ+eIseWlh+iJuuaQnOe0oumUmeivrycgfSk7fVxuLypcbnRyeXtcblxudmFyIHltPWZldGNoQ29kZUJ5V2ViVmlldygnaHR0cHM6Ly9zby55b3VrdS5jb20vc2VhcmNoX3ZpZGVvL3FfJytuYSx7aGVhZGVyczp7J1VzZXItQWdlbnQnOlBDX1VBfX0pO1xubG9nKHltKTtcbnZhciBsaXM9cGFyc2VEb21Gb3JBcnJheSh5bSxcImJvZHkmJmRpdltkYXRhLW5hbWVdXCIpO1xuaWYobGlzIT0nJykgZC5wdXNoKHtcblx0dGl0bGU6ICfkvJjphbfmkJzntKLlhoXlrrnigKYnIH0pO1xuZm9yKHZhciBpIGluIGxpcylcbmlmKHBhcnNlRG9tRm9ySHRtbChsaXNbaV0sXCIucG9zdGVyLWRlc2NfdVRUMUEmJlRleHRcIikhPVwiXCImJnBhcnNlRG9tRm9ySHRtbChsaXNbaV0sXCIudmlkZW8tc291cmNlXzJJMi1oJiZUZXh0XCIpPT1cIlwiKVxue1xuYnQ9cGFyc2VEb21Gb3JIdG1sKGxpc1tpXSxcImEsMSYmVGV4dFwiKTtcbnVyPXBhcnNlRG9tKGxpc1tpXSxcImEmJmhyZWZcIik7XG5waT1saXNbaV0ubWF0Y2goL1xcKGh0dHAuKj9cXCkvKVswXS5yZXBsYWNlKC9cXCh8XFwpL2csXCJcIik7XG52YXIgemY9bGIxLmluY2x1ZGVzKHVyKT8nPHNtYWxsPuaIkeeahOi/veeVqiA8L3NtYWxsPic6Jyc7XG5kLnB1c2goe1xudGl0bGU6emYrYnQsXG5kZXNjOnBhcnNlRG9tRm9ySHRtbChsaXNbaV0sXCIucG9zdGVyLWRlc2NfdVRUMUEmJlRleHRcIiksXG5jb250ZW50OnBhcnNlRG9tRm9ySHRtbChsaXNbaV0sXCIuaW5mbyYmVGV4dFwiKSxcbmltZzpwaSxcbnVybDp1cisnIyMnK2J0KycmJicrdXIrJyYmJytwaSsnIyMnXG59KTt9XG59Y2F0Y2goZSl7ZC5wdXNoKHtcblx0dGl0bGU6ICfkvJjphbfmkJzntKLplJnor68nIH0pO31cbiovXG5cbmlmKGQubGVuZ3RoPT0wKXBhZ2UrKztcbn1cbiBpZihwYWdlPT0yKXtcbnZhciB5bT1nZXRWYXIoJ3R4Jyk7XG52YXIgeW0xPWdldFZhcignaXFpeWknKTtcbmNsZWFyVmFyKCd0eCcpO2NsZWFyVmFyKCdpcWl5aScpO1xuaWYoeW0hPScnKXtcbnZhciBsZW49cGFyc2VEb21Gb3JBcnJheSh5bSwnLmZpZ3VyZXNfbGlzdCYmbGknKTtcbmlmKGxlbiE9JycpZC5wdXNoKHtcblx0dGl0bGU6ICfohb7orq/lop7lvLrmianlsZXigKYnIH0pO1xuZm9yKHZhciBpIG9mIGxlbil7XG5cblxudmFyIHVyPXBhcnNlRG9tRm9ySHRtbChpLCdhJiZocmVmJyk7XG5pZih1ci5pbmNsdWRlcygnc2VhcmNoX3JlZGlyZWN0JykmJnVyLmluY2x1ZGVzKCd1cmw9JykmJih1ci5pbmNsdWRlcygnaXFpeWkuJyl8fHVyLmluY2x1ZGVzKCdiaWxpYmlsaS4nKSkpdXI9ZGVjb2RlVVJJQ29tcG9uZW50KHVyLnNwbGl0KCd1cmw9JylbMV0pO1xuZWxzZSBpZih1ci5pbmNsdWRlcygnc2VhcmNoX3JlZGlyZWN0JykpdXI9Jyc7XG5pZighaS5pbmNsdWRlcygn6aKE5ZGKJykmJnVyIT0nJyl7XG52YXIgYnQ9cGFyc2VEb21Gb3JIdG1sKGksJ2EsMSYmdGl0bGUnKTtcbnZhciBwaT1wYXJzZURvbShpLCdpbWcmJnNyYycpO1xudmFyIHpmPWxiMS5pbmNsdWRlcyh1cik/JzxzbWFsbD7miJHnmoTov73nlaogPC9zbWFsbD4nOicnO1xuXG5kLnB1c2goe1xudGl0bGU6emYrYnQsXG51cmw6dXIrJyMjJytidCsnJiYnK3VyKycmJicrcGkrJyMjJyxcbnBpY191cmw6cGksXG5kZXNjOnBhcnNlRG9tRm9ySHRtbChpLCcuZmlndXJlX2luZm8mJlRleHQnKSxcbmNvbnRlbnQ6cGFyc2VEb21Gb3JIdG1sKGksJy5zY29yZV9sJiZUZXh0JykrJyAgJytwYXJzZURvbUZvckh0bWwoaSwnLmZpZ3VyZV9kZXNjJiZUZXh0JyksXG59KTt9XG59XG59XG5pZih5bTEhPScnKXtcblxudmFyIHJlc3U9cGFyc2VEb21Gb3JBcnJheSh5bTEsJ2JvZHkmJi5xeS1tb2QtbGlzdCYmbGknKTtcbmlmKHJlc3UhPScnKWQucHVzaCh7XG5cdHRpdGxlOiAn54ix5aWH6Im65aKe5by65omp5bGV4oCmJyB9KTtcbmZvcih2YXIgaSBvZiByZXN1KXtcbnRyeXtcblxudmFyIGJ0PXBhcnNlRG9tRm9ySHRtbChpLCdhJiZ0aXRsZScpO1xudmFyIHBpPXBhcnNlRG9tRm9ySHRtbChpLCdpbWcmJnNyYycpO1xudmFyIHVyPXBhcnNlRG9tRm9ySHRtbChpLCdhJiZocmVmJykuc3BsaXQoJz8nKVswXTtcbmlmKHVyLnNlYXJjaCgveW91a3UvKTwwKXtcbnZhciB6Zj1sYjEuaW5jbHVkZXModXIpPyc8c21hbGw+5oiR55qE6L+955WqIDwvc21hbGw+JzonJztcbmlmKCF1ci5pbmNsdWRlcygnaHR0cCcpKXVyPSdodHRwczonK3VyO1xuXG5pZighcGkuaW5jbHVkZXMoJ2h0dHAnKSlwaT0naHR0cHM6JytwaTtcblxudmFyIGRlcz1wYXJzZURvbUZvckh0bWwoaSwnLnF5LW1vZC1sYWJlbCYmVGV4dCcpO1xudmFyIGNvbj1wYXJzZURvbUZvckh0bWwoaSwnLmluZm8tZGVzLDJ8fC5pbmZvLWRlc3x8LnN1Yi10eHQmJlRleHQnKTtcblxuZC5wdXNoKHtcblx0dGl0bGU6IHpmK2J0LCBcbmRlc2M6ZGVzLFxuY29udGVudDpjb24sXG4gIHBpY191cmw6cGkrJ0BSZWZlcmVyPWh0dHBzOi8vd3d3LmlxaXlpLmNvbScsXG5cdHVybDp1cisnIyMnK2J0KycmJicrdXIrJyYmJytwaSsnIyMnLFxufSk7fX1jYXRjaChlKXt9XG59XG59XG59XG5lbHNlIGlmKHBhZ2U9PTMpe1xuZC5wdXNoKHt0aXRsZTon5pCc57Si5LiN5Yiw77yf5YWz6ZSu6K+N5bC96YeP57K+56GuJ30pO1xufVxucmVzLmRhdGEgPSBkO1xuc2V0U2VhcmNoUmVzdWx0KHJlcyk7IiwiZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMiIsImRldGFpbF9maW5kX3J1bGUiOiJqczpcbmV2YWwoZ2V0SXRlbSgnYWEnKS5zcGxpdCgnLyoqLycpWzFdKTsiLCJzZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMiIsInNkZXRhaWxfZmluZF9ydWxlIjoianM6XG5ldmFsKGdldEl0ZW0oJ2FhJykuc3BsaXQoJy8qKi8nKVsxXSk7IiwidWEiOiJtb2JpbGUiLCJwcmVSdWxlIjoiZnVuY3Rpb24gdGIobmFtZSl7XG52YXIgcm91PVwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvXCIrbmFtZTtcbnZhciB5bT1mZXRjaChyb3Use30pO1xudmFyIHJ1bD1cImhpa2VyOi8vZmlsZXMvcnVsZXMv55Wq5Ymn5pu05paw6KGoL1wiK25hbWU7XG52YXIgc2VyPWZldGNoKHJ1bCx7fSk7XG5pZih5bSE9JycmJnltIT1zZXIpd3JpdGVGaWxlKHJ1bCx5bSk7XG5pZih5bT09Jycpd3JpdGVGaWxlKHJvdSxzZXIpO1xufVxudGIoJ+aIkeeahOi/veeVqi50eHQnKTtcbnRiKCdjb29raWUudHh0Jyk7XG50Yignc2V0LnR4dCcpO1xudmFyIGZ6PUpTT04uc3RyaW5naWZ5KGZldGNoKFwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFwiLHt9KS5zcGxpdCgnQEAnKS5tYXAoYT0+e3JldHVybiBhLnNwbGl0KCcmJicpWzRdO30pLmZpbHRlcigoYSxiLGMpPT57aWYoYSYmYj09MHx8IWMuc2xpY2UoMCxiKS5qb2luKCcmIycpLmluY2x1ZGVzKGEpKXJldHVybiBhO30pLmNvbmNhdChbXCLigJzigJzmlrDlu7rliIbnu4TigJ3igJ1cIl0pKTtcblxuc2V0SXRlbSgnbGExJywgYHNlbGVjdDovL3tcInRpdGxlXCI6IFwi6YCJ5oup5YiG57uEXCIsIFwib3B0aW9uc1wiIDpgK2Z6K2AsIGNvbDogMywganM6IFwiaWYoaW5wdXQ9PSfigJzigJzmlrDlu7rliIbnu4TigJ3igJ0nKXtcXGBpbnB1dDovL3tcXFxcXCJqc1xcXFxcIjogXFxcXFwiZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvemZmeicse30pKS5ydWxlKTtcXFxcXCIsIFxcXFxcImhpbnRcXFxcXCI6IFxcXFxcIuaWsOW7uuWIhue7hOWQjeensOKAplxcXFxcIn1cXGA7fWVsc2V7ZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvemZmeicse30pKS5ydWxlKTt9XCJ9YCk7XG5cbnNldEl0ZW0oJ2xhMicsIGBoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoXCJqbFwiLHBhcnNlSW50KGdldFZhcihcImpsXCIsXCIwXCIpLDEwKS0xKTt2YXIgdj1nZXRWYXIoJ3VybDEnKTt2YXIgbGI9ZmV0Y2goXCJoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC/miJHnmoTov73nlaoudHh0XCIse30pO2lmKGxiLmluY2x1ZGVzKCdAQCcpKWxiPWxiLnNwbGl0KCdAQCcpO2Vsc2V7bGI9SlNPTi5wYXJzZShsYik7fXZhciBwZD12LnNwbGl0KCcmJicpWzFdLnNwbGl0KCc/JylbMF07Zm9yKGk9MDtpPGxiLmxlbmd0aDtpKyspe2lmKGxiW2ldLmluY2x1ZGVzKHBkKSl7bGIuc3BsaWNlKGksMSk7d3JpdGVGaWxlKFwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFwiLGxiIT0nJz8obGIuam9pbignQEAnKSsnQEAnKTonJyk7YnJlYWs7fX1pZihsYj09Jycpd3JpdGVGaWxlKFwiaGlrZXI6Ly9maWxlcy9ydWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFwiLCcnKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5Y+W5raI6L+955Wq5oiQ5Yqf77yBJ2ApO1xuXG5zZXRJdGVtKCdyQycsIGB2YXIgbT1bXTt2YXIgbGk9ZmV0Y2goXCJoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC/miJHnmoTov73nlaoudHh0XCIse30pLnNwbGl0KCdAQCcpLmZpbHRlcihhPT57cmV0dXJuIGEhPScnO30pO3ZhciBzPWlucHV0LnNwbGl0KCcjIycpO2lucHV0PXNbMF07Zm9yKHZhciBpIGluIGxpKXt2YXIgaj1saVtpXS5zcGxpdCgnJiYnKTtpZihnZXRWYXIoJ3VybCcpLmluY2x1ZGVzKGpbMV0pKXtpZihqWzNdIT1zWzFdKXtqWzNdPXNbMV07dmFyIGoxPWouam9pbignJiYnKTtsaS5zcGxpY2UoaSwxKTttPW0uY29uY2F0KGoxLGxpKS5qb2luKCdAQCcpKydAQCc7d3JpdGVGaWxlKFwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFwiLG0pO2JyZWFrO31lbHNlIGJyZWFrO319YCk7XG5cbnNldEl0ZW0oJ2FhJywgYEBydWxlPWpzOi8qKi9zZXRJdGVtKCdzZW5DJyxyZXF1ZXN0KCdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9jb29raWUudHh0JykpO2lmKGdldFZhcigneGwnKT09JycmJmdldFZhcigndGonKT09JycmJmdldFZhcihcImlpXCIpPT1cIlwiKXB1dFZhcihcImpsXCIscGFyc2VJbnQoZ2V0VmFyKFwiamxcIixcIjBcIiksMTApKzEpO3ZhciBzZT0naGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvc2V0LnR4dCc7dmFyIGZpcz1mZXRjaChzZSx7fSk7aWYoZmlzPT0nJyl7dmFyIGZpcz1KU09OLnN0cmluZ2lmeSh7ZG06J+WFsycsYmlsaTon5YWzJ30pO3dyaXRlRmlsZShzZSxmaXMpO31maT1KU09OLnBhcnNlKGZpcyk7dmFyIG1vPWdldFZhcignbW9kZWwnKTtwdXRWYXIoJ21vZGVsJywnJyk7dmFyIHJlczEgPSB7fTt2YXIgZDEgPSBbXTtkPVtdO2QyPVtdO3RyeXt2YXIgeW09ZmV0Y2goJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3ltJyk7aWYoeW09PScnKXt2YXIgdXJsPU1ZX1VSTC5zcGxpdCgnIyMnKVswXTtpZih1cmwuaW5jbHVkZXMoJ2lxaXlpLmNvJykpe3ZhciB5bT1nZXRSZXNDb2RlKCkucmVwbGFjZSgvXFxcXHUwMDJGL2csJy8nKS5yZXBsYWNlKC92aWRlb1VybC9nLCdwYWdlVXJsJyk7fWVsc2UgaWYodXJsLmluY2x1ZGVzKCd5b3VrdS5jbycpKXZhciB5bT1mZXRjaENvZGVCeVdlYlZpZXcodXJsLHtoZWFkZXJzOnsnVXNlci1BZ2VudCc6UENfVUF9LHRpbWVvdXQ6MjAwMCxyZWRpcmVjdDpmYWxzZX0pO2Vsc2UgaWYodXJsLmluY2x1ZGVzKCdxcS5jbycpKXt2YXIgeW09ZmV0Y2godXJsLnJlcGxhY2UoJy5odG1sJywnLmh0bWw/bl92ZXJzaW9uPTIwMjAnKSwge2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOlBDX1VBfX0pLnJlcGxhY2UoL1xcXFx1MDAyRi9nLCcvJyk7fWVsc2UgaWYodXJsLmluY2x1ZGVzKCd4ZmFuaS4nKSl7dmFyIHltPWZldGNoKHVybCwge2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOlBDX1VBLCdDb29raWUnOmdldEl0ZW0oJ3NlbkMnKX19KTt9ZWxzZSB2YXIgeW09ZmV0Y2godXJsLCB7aGVhZGVyczp7XCJVc2VyLUFnZW50XCI6UENfVUF9fSkucmVwbGFjZSgvXFxcXHUwMDJGL2csJy8nKTt3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3ltJyx5bSk7fXRyeXt2YXIgcXVhbj1wZGZoKHltLCcuaW50cm8td3JhcHBlcl9fc3RhdHVzJiZUZXh0JykubWF0Y2goL+WFqFxcXFxkKumbhi8pWzBdO31jYXRjaChlKXt2YXIgcXVhbj0nJzt9cHV0VmFyKCd1cmwnLE1ZX1VSTC5zcGxpdCgnIyMnKVswXSk7dmFyIGxiPWZldGNoKFwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFwiLHt9KTtmdW5jdGlvbiBjb2xvKGEsYixjKXtpZihhPT0nJylhPWM7aWYoZ2V0SXRlbSgneXonLCAnJykhPScxJyl7dmFyIGxpPWxiLnNwbGl0KCdAQCcpLmZpbHRlcihhPT57cmV0dXJuIGEhPScnO30pO2lmKGxpPT0nJ3x8IWxpLmpvaW4oJ0BAJykuaW5jbHVkZXMoZ2V0VmFyKCd1cmwnKSkpe3NldEl0ZW0oJ3l6JywgJzEnKTtyZXR1cm4gYTt9Zm9yKHZhciBpIGluIGxpKXt2YXIgaj1saVtpXS5zcGxpdCgnJiYnKTtpZihnZXRWYXIoJ3VybCcpLmluY2x1ZGVzKGpbMV0pJiZqLmxlbmd0aD49NCYmKGE9PWpbM118fGM9PWpbM118fGEuc2VhcmNoKC9cXFxcZCsvKT4tMSYmalszXS5zZWFyY2goL1xcXFxkKy8pPi0xJiZhLm1hdGNoKC9cXFxcZCsvKVswXT09alszXS5tYXRjaCgvXFxcXGQrLylbMF0pKXtzZXRJdGVtKCd5eicsICcxJyk7aWYoYj09dW5kZWZpbmVkKXJldHVybiAn4q2Q77iPJythO2Vsc2UgcmV0dXJuICfigJzigJwnK2ErJ+KAneKAnSc7fX19cmV0dXJuIGE7fWlmKE1ZX1VSTC5pbmNsdWRlcygnYmlsaWJpbGkuJykpe3ZhciBuYW09cGFyc2VEb21Gb3JIdG1sKHltLCdtZXRhW3Byb3BlcnR5PW9nOnRpdGxlXSYmY29udGVudCcpO31lbHNlIGlmKE1ZX1VSTC5pbmNsdWRlcygncXEuJykpe25hbT15bS5tYXRjaCgvLFwidGl0bGVcIjpcIiguKj8pXCIvKVsxXTt9ZWxzZSB2YXIgbmFtPXBhcnNlRG9tRm9ySHRtbCh5bSwnLnRpdHx8aDEmJlRleHQnKTtzZXRQYWdlVGl0bGUobmFtKTt2YXIgaW5mbz1NWV9VUkwuc3BsaXQoJyMjJylbMV07cHV0VmFyKCd1cmwxJyxpbmZvKTtpZihpbmZvKXtpbmZvPWluZm8uc3BsaXQoJyYmJyk7aW5mb1swXT1uYW07IGluZm89aW5mby5qb2luKCcmJicpO3ZhciBxPWluZm8uc3BsaXQoJyYmJylbMV07aWYocS5zbGljZSgtMSk9PScvJylxPXEuc3BsaXQoJy8nKS5zbGljZSgwLC0xKS5qb2luKCcvJyk7IHZhciBwZD1sYi5pbmNsdWRlcyhxKTt2YXIgbGE9cGQ/Z2V0SXRlbSgnbGEyJyk6KGZpLmZ6JiZmaS5mej09MT9nZXRJdGVtKCdsYTEnKTooJ2hpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOmlucHV0PVwiXCI7JytKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvemZmeicse30pKS5ydWxlKSk7dHJ5e3ZhciB3aj1mZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9EdWFuTmlhbi9NeVBhcnNlLmpzb24nLHt9KTtpZih3aiE9XCJcIil7ZXZhbCgnang9Jyt3aik7ZXZhbChmZXRjaChqeC5zZXR0aW5ncy5jaix7fSkpO31lbHNlIGV2YWwoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvY2FjaGUvUGFyc2VfRG4uanMnLHt9KSk7fWNhdGNoKGUpe310cnl7dmFyIGRjPVwiZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtkLnB1c2goe3RpdGxlOifngrnlh7vphY3nva7mlq3mj5LvvIEnLHVybDpcXFxcXCJcIisoc2V0VXJsKStcIlxcXFxcIixjb2xfdHlwZTondGV4dF8xJ30pO2QucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7ZC5wdXNoKHt0aXRsZTon5rWL6K+V5pat5o+S77yBJyxkZXNjOifkvb/nlKjliY3lhYjlpIfku73mlbDmja7vvIHvvIHvvIEnLGNvbF90eXBlOid0ZXh0XzEnLHVybDonaGlrZXI6Ly9lbXB0eUBydWxlPScrSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2Nlc2hpLmh0bWwnLHt9KSkucnVsZX0pO2QucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7XCI7fWNhdGNoKGUpe3ZhciBkYz1cIlwiO312YXIgZWo9XCJoaWtlcjovL2VtcHR5QHJ1bGU9anM6c2V0UGFnZVRpdGxlKCforr7nva4nKTt2YXIgc2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaXM9ZmV0Y2goc2Use30pO3ZhciByZXMgPSB7fTt2YXIgZCA9IFtdO3ZhciBmaT1KU09OLnBhcnNlKGZpcyk7ZC5wdXNoKHt0aXRsZTon55m75b2VeGZhbmnojrflj5Zjb29raWUhJyx1cmw6XFxgaGlrZXI6Ly9lbXB0eUBydWxlPWpzOmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZGwuaHRtbCcpKS5ydWxlKTtcXGAsY29sX3R5cGU6J3RleHRfMSd9KTtkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO2QucHVzaCh7dGl0bGU6J+W9k+WJjeKAnOKAnCcrKGZpLmRtPT0n5YWzJz8n5YWz6ZetJzon5byA5ZCvJykrJ+KAneKAneW8ueW5lSjlj6rmlK/mjIFxceOAgWJpbGliaWxp77yBKScsdXJsOlxcYEBsYXp5UnVsZT0uanM6dmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaChzZSx7fSkpO2ZpLmRtPShmaS5kbT09J+WFsyc/J+W8gCc6J+WFsycpO3dyaXRlRmlsZShzZSxKU09OLnN0cmluZ2lmeShmaSkpO3JlZnJlc2hQYWdlKGZhbHNlKTtcXFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn++8gVxcXFxcIlxcYCxjb2xfdHlwZTondGV4dF8xJ30pO2QucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7aWYoZmV0Y2goJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL2NhY2hlLnR4dCcse30pIT0nJyl7ZC5wdXNoKHt0aXRsZTon5b2T5YmN4oCc4oCcJysoZmkuYmlsaT09J+WFsyc/J+WFs+mXrSc6J+W8gOWQrycpKyfigJ3igJ3lk5Tlk6nlpKfkvJrlkZjnm7Tpk74nLHVybDpcXGBAbGF6eVJ1bGU9LmpzOnZhciBzZT0naGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvc2V0LnR4dCc7dmFyIGZpPUpTT04ucGFyc2UoZmV0Y2goc2Use30pKTtmaS5iaWxpPShmaS5iaWxpPT0n5YWzJz8n5byAJzon5YWzJyk7d3JpdGVGaWxlKHNlLEpTT04uc3RyaW5naWZ5KGZpKSk7cmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxcInRvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBXFxcXFwiXFxgLGNvbF90eXBlOid0ZXh0XzEnfSk7ZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTt9LypkLnB1c2goe3RpdGxlOiflvZPliY3igJzigJwnKyhmaS55Zz09MT8n5byA5ZCvJzon5YWz6ZetJykrJ+KAneKAneiFvuiur+mihOWRiicsZGVzYzon54K55Ye75YiH5o2iJyx1cmw6XFxgQGxhenlSdWxlPS5qczp2YXIgc2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaT1KU09OLnBhcnNlKGZldGNoKHNlLHt9KSk7ZmkueWc9KGZpLnlnPT0xPzA6MSk7d3JpdGVGaWxlKHNlLEpTT04uc3RyaW5naWZ5KGZpKSk7cmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxcInRvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBXFxcXFwiXFxgLGNvbF90eXBlOid0ZXh0XzEnfSk7ZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTsqL2QucHVzaCh7dGl0bGU6J+W9k+WJjeKAnOKAnCcrKGZpLmNvbD8oZmkuY29sPT0wPyfliJfooagnOifkuZ3lrqvmoLwnKTon5YiX6KGoJykrJ+KAneKAneaYvuekuuaIkeeahOi/veeVquOAgULnq5nntKLlvJXmoLflvI/vvIEnLHVybDooZmkuY29sP2ZpLmNvbDowKStcXGBAbGF6eVJ1bGU9LmpzOnZhciBzZT0naGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvc2V0LnR4dCc7dmFyIGZpPUpTT04ucGFyc2UoZmV0Y2goc2Use30pKTtmaS5jb2w9KGlucHV0PT0wPzE6MCk7d3JpdGVGaWxlKHNlLEpTT04uc3RyaW5naWZ5KGZpKSk7cmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxcInRvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBXFxcXFwiXFxgLGNvbF90eXBlOid0ZXh0XzEnfSk7ZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtzd2l0Y2goZmkuZmlzdD9maS5maXN0Oifov73nlaonKXtjYXNlICc1JzpmaXN0PSfmmKjml6Xmm7TmlrAnO2JyZWFrO2Nhc2UgJzYnOmZpc3Q9J+S7iuaXpeabtOaWsCc7YnJlYWs7Y2FzZSAnNyc6ZmlzdD0n5piO5pel5pu05pawJzticmVhaztjYXNlICflvLrlir/mjqXmoaMnOmZpc3Q9J+iFvuiur+aOpeahoyc7YnJlYWs7Y2FzZSAn55Wq5Ymn57Si5byVJzpmaXN0PSdC56uZ57Si5byVJzticmVhaztkZWZhdWx0OmZpc3Q9J+aIkeeahOi/veeVqic7fWQucHVzaCh7dGl0bGU6J+mmluasoeaJk+W8gOWQr+WKqCDigJzigJwnK2Zpc3QrJ+KAneKAnScsdXJsOlxcYHNlbGVjdDovL3t0aXRsZTogJ+mAieaLqS4uLicsIG9wdGlvbnM6WyfmmKjml6Xmm7TmlrAnLCfku4rml6Xmm7TmlrAnLCfmmI7ml6Xmm7TmlrAnLCfohb7orq/mjqXmoaMnLCdC56uZ57Si5byVJywn5oiR55qE6L+955WqJ10gLCBjb2w6IDIsIGpzOlxcXFxcInZhciBzZT0naGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvc2V0LnR4dCc7dmFyIGZpPUpTT04ucGFyc2UoZmV0Y2goc2Use30pKTtzd2l0Y2goaW5wdXQpe2Nhc2UgJ+aYqOaXpeabtOaWsCc6ZmkuZmlzdD0nNSc7YnJlYWs7Y2FzZSAn5oiR55qE6L+955WqJzpmaS5maXN0PSfov73nlaonO2JyZWFrO2Nhc2UgJ+aYjuaXpeabtOaWsCc6ZmkuZmlzdD0nNyc7YnJlYWs7Y2FzZSAn6IW+6K6v5o6l5qGjJzpmaS5maXN0PSflvLrlir/mjqXmoaMnO2JyZWFrO2Nhc2UgJ0Lnq5nntKLlvJUnOmZpLmZpc3Q9J+eVquWJp+e0ouW8lSc7YnJlYWs7ZGVmYXVsdDpmaS5maXN0PSc2Jzt9d3JpdGVGaWxlKHNlLEpTT04uc3RyaW5naWZ5KGZpKSk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdcXFxcXCJ9XFxgLGNvbF90eXBlOid0ZXh0XzEnfSk7ZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtkLnB1c2goe3RpdGxlOiflvZPliY3kvb/nlKjigJzigJwnKyhmaS5zbz8oZmkuc29bMV0rKGZpLnNvWzBdPT0wPycg5YiG57uEJzonIOWwj+eoi+W6jycpKTon5YWo6YOoIOWIhue7hCcpKyfigJ3igJ3mkJzntKInLHVybDpcXGBzZWxlY3Q6Ly97dGl0bGU6ICfpgInmi6nkuoznuqfmkJzntKLmqKHlvI8uLi4nLCBvcHRpb25zOlsn5pCc57Si5YiG57uEJywn5pCc57Si5bCP56iL5bqPJ10gLCBjb2w6IDIsIGpzOlxcXFxcImV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3NvLmh0bWwnLHt9KSkucnVsZSk7XFxcXFwifVxcYCxjb2xfdHlwZTondGV4dF8xJ30pO2QucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7ZC5wdXNoKHt0aXRsZTon5b2T5YmN5LiA6aG15pi+56S64oCc4oCcJysoZmkuamk/Zmkuamk6MTApKyfigJ3igJ3pm4YnLHVybDpcXGBpbnB1dDovL3tcXFxcXCJqc1xcXFxcIjogXFxcXFwidmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaChzZSx7fSkpO3RyeXtpbnB1dD1pbnB1dC5tYXRjaCgvWzAtOV0rLylbMF19Y2F0Y2goZSl7aW5wdXQ9MDt9O2lmKGlucHV0PjApe2ZpLmppPWlucHV0O3dyaXRlRmlsZShzZSxKU09OLnN0cmluZ2lmeShmaSkpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/mm7TmlLnmiJDlip/vvIEnfWVsc2V7J3RvYXN0Oi8v6K+36L6T5YWl5aSn5LqOMOeahOaVsO+8ge+8gSd9XFxcXFwiLCBcXFxcXCJoaW50XFxcXFwiOiBcXFxcXCLor7fovpPlhaXmlbDlrZfigKZcXFxcXCJ9XFxgLGNvbF90eXBlOid0ZXh0XzEnfSk7ZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtkLnB1c2goe3RpdGxlOiflvZPliY3igJzigJwnKyhmaS5mej8oZmkuZno9PTA/J+WFs+mXrSc6J+W8gOWQrycpOiflhbPpl60nKSsn4oCd4oCd6L+955Wq6aG16Z2i5YiG57uEJyx1cmw6KGZpLmZ6P2ZpLmZ6OjApK1xcYEBsYXp5UnVsZT0uanM6dmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaChzZSx7fSkpO2ZpLmZ6PShpbnB1dD09MD8xOjApO3dyaXRlRmlsZShzZSxKU09OLnN0cmluZ2lmeShmaSkpO3JlZnJlc2hQYWdlKGZhbHNlKTtcXFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn++8gVxcXFxcIlxcYCxjb2xfdHlwZTondGV4dF8xJ30pO2lmKGZpLmZ6JiZmaS5mej09MSl7ZC5wdXNoKHt0aXRsZTonPT7nlarliafliIbnu4QnLHVybDonaGlrZXI6Ly9lbXB0eUBydWxlPScrSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2NsYXNzaWZ5Jyx7fSkpLnJ1bGUsY29sX3R5cGU6J3RleHRfMSd9KTt9XCIrZGMrXCJhZGRMaXN0ZW5lcignb25DbG9zZScsJC50b1N0cmluZygoKT0+e3B1dFZhcignaWknLCdcIitnZXRWYXIoJ2lpJykrXCInKTt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaCgnXCIrc2UrXCInLHt9KSk7ZGVsZXRlIGZpLmZ6O2RlbGV0ZSBmaS5jb2w7ZGVsZXRlIGZpLmZpc3Q7Zmk9SlNPTi5zdHJpbmdpZnkoZmkpO3ZhciBmaXM9SlNPTi5wYXJzZSgnXCIrZmlzK1wiJyk7ZGVsZXRlIGZpcy5mejtkZWxldGUgZmlzLmNvbDtkZWxldGUgZmlzLmZpc3Q7ZmlzPUpTT04uc3RyaW5naWZ5KGZpcyk7aWYoZmkhPWZpcylyZWZyZXNoUGFnZShmYWxzZSk7fSkpO3Jlcy5kYXRhID0gZDtzZXRTZWFyY2hSZXN1bHQocmVzKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwiO2QxLnB1c2goeyB0aXRsZTppbmZvLnNwbGl0KCcmJicpWzBdLCBpbWc6aW5mby5zcGxpdCgnJiYnKVsyXSwgdXJsOmVqLCBjb2xfdHlwZTogJ2ljb25fMl9yb3VuZCcgfSk7ZDEucHVzaCh7IHRpdGxlOihwZD8n4oCY4oCY5Y+W5raI6L+955Wq4oCZ4oCZJzon4oCc4oCcK+i/veeVquKAneKAnScpLCB1cmw6bGEsIGNvbF90eXBlOiAndGV4dF8yJyB9KTt9dHJ5e3ZhciBkZXM9SlNPTi5wYXJzZSh5bS5zcGxpdCgnbmV3X2VwXCI6JylbMV0uc3BsaXQoJ30nKVswXSsnfScpLmRlc2M7fWNhdGNoKGUpe3RyeXtldmFsKHBkZmgoeW0sJ2hlYWQmJnNjcmlwdCwxMCYmSHRtbCcpLnJlcGxhY2UoL3dpbmQuKj89LywnaHRtPScpKTt2YXIgZGVzPWh0bS5pbnRyb2R1Y3Rpb24uaW50cm9EYXRhLmxpc3RbMF0uaXRlbV9wYXJhbXMudXBkYXRlX25vdGlmeV9kZXNjO2lmKCFkZXMpZGVzPSfml6AnO25hbT1odG0uaW50cm9kdWN0aW9uLmludHJvRGF0YS5saXN0WzBdLml0ZW1fcGFyYW1zLnRpdGxlO31jYXRjaChlKXt0cnl7dmFyIGE9eW0ubWF0Y2goL3VwZGF0ZVN0cmF0ZWd5XCIuKj9cIiguKj8pXCIvKVsxXTt9Y2F0Y2goZSl7YT0nJzt9dmFyIGRlcz1hK3BhcnNlRG9tRm9ySHRtbCh5bSwnLmJyaWVmLXNjb3JlJiZUZXh0JykrcGFyc2VEb21Gb3JIdG1sKHltLCcuaW5mby11cGRhdGEmJlRleHQnKTtpZihNWV9VUkwuaW5jbHVkZXMoJ3hmYW5pLicpKXtkZXM9cGRmYSh5bSwnYm9keSYmLm1vZHVsZS1pbmZvLWl0ZW0nKTtkZXM9cGRmaChkZXNbZGVzLmxlbmd0aC0zXSwnZGl2JiZUZXh0JykrJ+OAgicrcGRmaChkZXNbZGVzLmxlbmd0aC0yXSwnZGl2JiZUZXh0Jyk7fX19dHJ5e3ZhciBqaWFuaj1wYXJzZURvbUZvckh0bWwoeW0sJ2hlYWQmJm1ldGFbbmFtZT1cImRlc2NyaXB0aW9uXCJdJiZjb250ZW50Jyk7aWYoamlhbmo9PScnKWppYW5qPXltLm1hdGNoKC9cImRlc2NcIjpcIiguKj8pXCIvKVsxXTt9Y2F0Y2goZSl7aWYoTVlfVVJMLmluY2x1ZGVzKCdxcScpKWppYW5qPWh0bS5nbG9iYWwuY292ZXJJbmZvLmRlc2NyaXB0aW9uO31pZihqaWFuailqaWFuaj1qaWFuai5yZXBsYWNlKC9bXFxcXHNcIiddL2csJycpO2Vsc2Ugamlhbmo9J+aXoCc7ZDEucHVzaCh7dGl0bGU6Jzxmb250IGNvbG9yPVwicHVycGxlXCI+PHN0cm9uZz48YmlnPicrbmFtKyc8L2JpZz48L3N0cm9uZz48L2ZvbnQ+LS08Zm9udCBjb2xvcj1cImJsdWVcIj4nK01ZX1VSTC5zcGxpdCgnLicpWzFdKyc8L2ZvbnQ+JysnXFxcXG7igJzigJznirbmgIHvvJonKyhkZXM/ZGVzOifml6AnKSsn4oCd4oCd44CCPGZvbnQgY29sb3I9XCJibHVlXCI+JytxdWFuKyc8L2ZvbnQ+Jyx1cmw6J3NlbGVjdDovL3tcInRpdGxlXCI6IFwi6YCJ5oupXCIsIFwib3B0aW9uc1wiIDogW1wi5pCc57SiXCIsIFwi5YCS5bqPXCIsXCLnroDku4tcIl0sIGNvbDogMywganM6IFwiaWYoaW5wdXQ9PVxcXFwn5pCc57SiXFxcXCcpeycrKCFmaS5zb3x8Zmkuc29bMF09PTApKyc/XFxcXCdoaWtlcjovL3NlYXJjaD9zPScrbmFtKycmZ3JvdXA9JysoZmkuc28/Zmkuc29bMV06J+WFqOmDqCcpKydcXFxcJzpcXFxcJ2hpa2VyOi8vc2VhcmNoP3M9JytuYW0rJyZydWxlPScrKGZpLnNvP2ZpLnNvWzFdOicnKSsnJnNpbXBsZT1mYWxzZVxcXFwnO31lbHNlIGlmKGlucHV0PT1cXFxcJ+WAkuW6j1xcXFwnKXtwdXRWYXIoXFxcXCdtb2RlbFxcXFwnLDEpO3B1dFZhcihcXFxcJ2lpXFxcXCcsJytnZXRWYXIoJ2lpJykrJyk7cmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFwndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIFcXFxcJ31lbHNle2V2YWwoSlNPTi5wYXJzZShmZXRjaChcXFxcJ2hpa2VyOi8vcGFnZS9qaWFualxcXFwnKSkucnVsZSk7amlhbmooXFxgJytqaWFuaisnXFxgKTt9O1wifScsY29sX3R5cGU6J3RleHRfMSd9KTtkMS5wdXNoKHtjb2xfdHlwZTonYmlnX2JsYW5rX2Jsb2NrJ30pO3RyeXtsYXJ1PWxhenkucmVwbGFjZSgnYXl0bVBhcnNlKGlucHV0KScsJycpK1wiY2lkPWlucHV0LnNwbGl0KCcjJylbMV07aW5wdXQ9aW5wdXQuc3BsaXQoJyMnKVswXTt0cnl7dXJsPWF5dG1QYXJzZShpbnB1dCk7aWYodXJsLmluY2x1ZGVzKCd0b2FzdDovLycpfHwhdXJsLmluY2x1ZGVzKCc6Ly8nKXx8aW5wdXQ9PXVybCl1cmw9anhzYjt0cnl7cGE9dXJsLnNwbGl0KCc7JylbMV0uc3BsaXQoJyYmJyk7dmFyIHVhPScnO3ZhciByZT0nJztmb3IoaSBvZiBwYSl7dHJ5e2lmKGkuaW5jbHVkZXMoJ1VzZXItQWdlbnQnKSYmdWE9PScnKXVhPWkuc3BsaXQoJ0AnKVsxXS5yZXBsYWNlKCd9JywnJyk7fWNhdGNoKGUpe310cnl7aWYoaS5pbmNsdWRlcygnUmVmZXJlcicpJiZyZT09JycpcmU9aS5zcGxpdCgnQCcpWzFdLnJlcGxhY2UoJ30nLCcnKTt9Y2F0Y2goZSl7fX19Y2F0Y2goZSl7fXVybD11cmwuc3BsaXQoJzsnKVswXTtkYXQ9W107ZGF0LnB1c2godXJsKTtpZihjaWQpe2RtPSdodHRwczovL2NvbW1lbnQuYmlsaWJpbGkuY29tLycrY2lkKycueG1sJzt9ZWxzZXtzaG93TG9hZGluZygn5Yqg6L295by55bmV5LitLOWmguaenOWKoOi9veaFouivt+WFs+mXreW8ueW5leW5tumHjeWQr+i9r+S7tu+8gScpO3RyeXt2YXIgdmlkPWlucHV0LnNwbGl0KCcvJylbNl0uc3BsaXQoJy5odG0nKVswXTt2YXIgaWRmZT1mZXRjaCgnaHR0cHM6Ly9hY2Nlc3MudmlkZW8ucXEuY29tL2Rhbm11X21hbmFnZS9yZWdpc3Q/dmFwcGlkPTk3NzY3MjA2JnZzZWNyZXQ9YzBiZGNiYWUxMjA2NjlmZmY0MjVkMGVmODUzNjc0NjE0YWE2NTljNjA1YTYxM2E0JnJhdz0xJywge2hlYWRlcnM6eydVc2VyLUFnZW50JzpQQ19VQX0sYm9keTp7J3dSZWdpc3RUeXBlJzoyLCd2ZWNJZExpc3QnOlt2aWRdfSxtZXRob2Q6J1BPU1QnfSk7bG9nKGlkZmUpO3ZhciBpZD1KU09OLnBhcnNlKGlkZmUpLmRhdGEuc3RNYXBbdmlkXS5zdHJEYW5NdUtleS5tYXRjaCgvWzAtOV17NCx9L2cpWzBdO2lmKGlkKXt2YXIgY29tPVtdO3VybD1bXTt2YXIgaDt2YXIgaz0xO2ZvcihqPTA7O2o9aisxNiooMzAqaykpe2ZvcihpPWo7aTwxNiooMzAqaykrajtpPWkrMzAqayl7dXJsLnB1c2goe3VybDonaHR0cDovL21mbS52aWRlby5xcS5jb20vZGFubXU/dGltZXN0YW1wPScraSsnJnRhcmdldF9pZD0nK2lkfSk7aWYoaj49NjQqMzApaz00O31iYXRjaEZldGNoKHVybCkubWFwKGZ1bmN0aW9uKGEpIHt0cnl7IGggPSBKU09OLnBhcnNlKGEpLmNvbW1lbnRzO2lmKGg9PW51bGwpaD1bXTt9Y2F0Y2goZSl7aD1bXTt9Y29tPWNvbS5jb25jYXQoaCk7fSk7aWYoaD09bnVsbHx8aD09W118fGg9PScnKWJyZWFrO307ZG09J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL2RtLmpzb24nO3dyaXRlRmlsZShkbSxKU09OLnN0cmluZ2lmeShjb20pLnJlcGxhY2UoL2NvbnRlbnQvZywndGV4dCcpLnJlcGxhY2UoL3RpbWVwb2ludC9nLCd0aW1lJykpO31lbHNle2RtPScnO319Y2F0Y2goZSl7ZG09Jyc7fX1KU09OLnN0cmluZ2lmeSh7dXJsczpkYXQsaGVhZGVyczpbeydVc2VyLUFnZW50Jzp1YSwnUmVmZXJlcic6cmV9XSxkYW5tdTpkbX0pO31jYXRjaChlKXsndG9hc3Q6Ly/op6PmnpDlpLHotKXvvIzor7fmm7TmjaLop6PmnpDmiJbnqI3lkI7ph43or5UnO31cIjtpZihmaS5kbT09J+WFsycpbGFydT1sYXp5O31jYXRjaChlKXtsYXJ1PSdcInRvYXN0Oi8v5peg6Kej5p6Q5o+S5Lu277yM5L2G6L+955Wq5ZCO5LuN5Y+v6K6w5b2V6Laz6L+577yBXCInO307dmFyIGVwbD0wO3ZhciBqaT1wYXJzZUludChmaS5qaT9maS5qaToxMCwxMCk7dmFyIGlpPWdldFZhcignaWknKTt2YXIgZGl3PXVuZGVmaW5lZDtpZihpaT09Jycpe3ZhciBibGo9TVlfVVJMLnNwbGl0KCcjIycpWzBdO2lmKGxiLmluY2x1ZGVzKGJsaikpe2lpPTA7Zm9yKGogb2YgbGIuc3BsaXQoJ0BAJykpe2lmKGouaW5jbHVkZXMoYmxqKSl7ZGl3PWouc3BsaXQoJyYmJylbM107YnJlYWs7fX19ZWxzZSBpaT0xO310cnl7IHZhciBlcD1KU09OLnBhcnNlKHltLnNwbGl0KCdcImVwaXNvZGVzXCI6JylbMV0uc3BsaXQoJ31dJylbMF0rJ31dJykuZmlsdGVyKChhLGopPT57aWYoaWk9PTApe2lmKGRpdyl7aWYoYS50aXRsZT09ZGl3fHxhLmxvbmdfdGl0bGU9PWRpdyl7aWk9aisxO31pZihpaT4wKXtpZihpaSVqaSE9MClpaT1paS1paSVqaSsxO2Vsc2UgaWk9aWktamkrMTt9fWVsc2UgaWk9MTt9IGlmKGEuYmFkZ2UhPSfpooTlkYonKXJldHVybiBhO30pO3ZhciBlcGw9ZXAubGVuZ3RoO2VwPWVwLnNsaWNlKHBhcnNlSW50KGlpLDEwKS0xLHBhcnNlSW50KGlpLDEwKStqaS0xKTt2YXIgY2hlPWZldGNoKCdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9jYWNoZS50eHQnLHt9KTtmb3IodmFyIGk9MDtpPGVwLmxlbmd0aDtpKyspe3VybD1maS5iaWxpPT0n5byAJyYmY2hlIT0nJz8oY2hlLnNwbGl0KCdAbGF6eVJ1bGUnKVswXS5yZXBsYWNlKC9jaWRcXFxcPVswLTldezQsfS9nLCdjaWQ9JytlcFtpXS5jaWQpLnJlcGxhY2UoL2F2aWRcXFxcPVswLTldezQsfS9nLCdhdmlkPScrZXBbaV0uYWlkKSk6KCdodHRwczovL3d3dy5iaWxpYmlsaS5jb20vYmFuZ3VtaS9wbGF5L2VwJytlcFtpXS5pZCk7ZC5wdXNoKHsgdGl0bGU6Y29sbyhlcFtpXS5sb25nX3RpdGxlLHVuZGVmaW5lZCxlcFtpXS50aXRsZSksY29sX3R5cGU6J21vdmllXzInLCBpbWc6J2h0dHA6JytlcFtpXS5jb3ZlciwgZGVzYzplcFtpXS50aXRsZSx1cmw6dXJsKycjJytlcFtpXS5jaWQrJyMjJytlcFtpXS50aXRsZStcIiMjbm9QcmUjQGxhenlSdWxlPS5qczpcIitnZXRJdGVtKCdyQycpKyhjaGUhPScnJiZmaS5iaWxpPT0n5byAJz8oZmkuZG09PSflvIAnP2NoZS5zcGxpdCgnQGxhenlSdWxlPS5qczonKVsxXS5yZXBsYWNlKC9bMC05XXs0LH0oPz1cXFxcKSkvZyxlcFtpXS5jaWQpOmNoZS5zcGxpdCgnQGxhenlSdWxlPS5qczonKVsxXS5yZXBsYWNlKC9bMC05XXs0LH0oPz1cXFxcKSkvZywndW5kZWZpbmVkJykpOmxhcnUpLGV4dHJhOntpZDp1cmx9fSk7fX1jYXRjaChlKXt0cnl7dmFyIHpwPWh0bS5nbG9iYWwuY292ZXJJbmZvLmNhdGVnb3J5X21hcC5qb2luKCcsLCcpO2lmKCF6cC5pbmNsdWRlcygn6aKE5ZGKJykpe3ZhciBlcGk9aHRtLmdsb2JhbC5jb3ZlckluZm8udmlkZW9faWRzO3ZhciB1cmxiPVtdO2ZvcihpPTA7aTxNYXRoLmNlaWwoZXBpLmxlbmd0aC8zMCk7aSsrKXVybGIucHVzaCh7dXJsOidodHRwczovL3VuaW9uLnZpZGVvLnFxLmNvbS9mY2dpLWJpbi9kYXRhP290eXBlPWpzb24mdGlkPTY4MiZhcHBpZD0yMDAwMTIzOCZhcHBrZXk9NmMwM2JiZTk2NTg0NDhhNCZ1bmlvbl9wbGF0Zm9ybT0xJmlkbGlzdD0nK2VwaS5zbGljZShpKjMwLChpKzEpKjMwKS5qb2luKCcsJyl9KTt2YXIgbGU9YmF0Y2hGZXRjaCh1cmxiKS5tYXAoKGEsaik9PntldmFsKGEpO3JldHVybiBRWk91dHB1dEpzb24ucmVzdWx0czt9KTtsZT1bXS5jb25jYXQuYXBwbHkoW10sbGUpLmZpbHRlcigoYSxqKT0+e2lmKGlpPT0wKXtpZihkaXcpe3ZhciB0aT1hLmZpZWxkcy5lcGlzb2RlO2lmKCh0aSE9MD8oJ+esrCcrdGkrJ+ivnScpOmEuZmllbGRzLnRpdGxlKT09ZGl3KXtpaT1qKzE7fWlmKGlpPjApe2lmKGlpJWppIT0wKWlpPWlpLWlpJWppKzE7ZWxzZSBpaT1paS1qaSsxO319ZWxzZSBpaT0xO31pZighYS5maWVsZHMuY2F0ZWdvcnlfbWFwLmpvaW4oJywsJykuaW5jbHVkZXMoJ+mihOWRiicpKXJldHVybiBhO30pO3ZhciBlcGw9bGUubGVuZ3RoO2xlPWxlLnNsaWNlKHBhcnNlSW50KGlpLDEwKS0xLHBhcnNlSW50KGlpLDEwKStqaS0xKTt2YXIgdXI9J2h0dHBzOi8vdi5xcS5jb20veC9jb3Zlci8nK2h0bS5nbG9iYWwuY3VycmVudENpZDtmb3IodmFyIGkgaW4gbGUpe3ZhciB0aT1sZVtpXS5maWVsZHMuZXBpc29kZTtkLnB1c2goe3RpdGxlOihjb2xvKHRpIT0wPygn56ysJyt0aSsn6K+dJyk6bGVbaV0uZmllbGRzLnRpdGxlKSksaW1nOmxlW2ldLmZpZWxkcy5waWMxNjB4OTAuc3BsaXQoJy8xNjAnKVswXSx1cmw6dXIrJy8nK2xlW2ldLmZpZWxkcy52aWQrJy5odG1sIyMnKyh0aSE9MD8oJ+esrCcrdGkrJ+ivnScpOmxlW2ldLmZpZWxkcy50aXRsZSkrJyMjbm9QcmUjQGxhenlSdWxlPS5qczonK2dldEl0ZW0oJ3JDJykrbGFydSxjb2xfdHlwZTonbW92aWVfMicsZXh0cmE6e2lkOnVyKycvJytsZVtpXS5maWVsZHMudmlkKycuaHRtbCd9fSk7fX19Y2F0Y2goZSl7dHJ5e2lmKE1ZX1VSTC5pbmNsdWRlcygneW91a3UuJykpdGM9cXp0Yzt0cnl7dmFyIHY9SlNPTi5wYXJzZSh5bS5zcGxpdCgndmlkZW9JbmZvXCI6JylbMV0uc3BsaXQoJ30nKVswXSsnfScpO31jYXRjaChlKXt2YXIgdj17fTt2LmFpZD15bS5zcGxpdCgnYWxidW1JZFwiOicpWzFdLnNwbGl0KCcsJylbMF07fXZpPUpTT04ucGFyc2UocmVxdWVzdCgnaHR0cHM6Ly9wdWIubS5pcWl5aS5jb20vaDUvbWFpbi92aWRlb0xpc3QvYWxidW0vP2FsYnVtSWQ9Jyt2LmFpZCsnJnNpemU9MTUwMCZwYWdlPTEmbmVlZFByZXZ1ZT1mYWxzZSZuZWVkVmlwUHJldnVlPWZhbHNlJyx7fSkpLmRhdGE7aWYodmkhPScnKXt2PXZpLnZpZGVvczt0cnl7di5mb3JFYWNoKChhLGopPT57aWYoaWk9PTApe2lmKGRpdyl7aWYoYS5wZD09ZGl3fHxhLnZ0PT1kaXcpe2lpPWorMTt9aWYoaWk+MCl7aWYoaWklamkhPTApaWk9aWktaWklamkrMTtlbHNlIGlpPWlpLWppKzE7dGhyb3cgbmV3IEVvcnJvcign5Lit5patJyk7fX1lbHNlIGlpPTE7fX0pO31jYXRjaChlKXt9dmFyIGVwbD12Lmxlbmd0aDt2PXYuc2xpY2UocGFyc2VJbnQoaWksMTApLTEscGFyc2VJbnQoaWksMTApK2ppLTEpO2Q9di5tYXAoYT0+e2EuZGVzYz1hLnBkO2EuaW1nPSgnaHR0cHM6JythLmltYWdlVXJsKTthLnVybD0naHR0cHM6JythLnBhZ2VVcmwrJyMjJythLnBkKydAbGF6eVJ1bGU9LmpzOicrZ2V0SXRlbSgnckMnKStsYXJ1O2EudGl0bGU9Y29sbyhhLnZ0LHVuZGVmaW5lZCxhLnBkKTthLmNvbF90eXBlPSdtb3ZpZV8yJzthLmV4dHJhPXtpZDonaHR0cHM6JythLnBhZ2VVcmx9O3JldHVybiBhO30pO31lbHNle2k9djtpZihpJiYoIWkudnR8fCFpLnZ0LmluY2x1ZGVzKCfpooTlkYonKSkpZC5wdXNoKHt0aXRsZTpjb2xvKGkuc2hvcnRUaXRsZSx1bmRlZmluZWQsaS5wZCksdXJsOidodHRwczonK2kucGFnZVVybCsnIyMnK2kucGQrJyMjbm9QcmUjQGxhenlSdWxlPS5qczonK2dldEl0ZW0oJ3JDJykrbGFydSxjb2xfdHlwZTonbW92aWVfMicsaW1nOidodHRwczonK2kuaW1hZ2VVcmwsZGVzYzppLm9yZGVyfSk7fX1jYXRjaChlKXt0cnl7ZD1KU09OLnBhcnNlKGZldGNoKCdodHRwczovL3NlYXJjaC55b3VrdS5jb20vYXBpL3NlYXJjaD9hcHBTY2VuZT1zaG93X2VwaXNvZGUmc2hvd0lkcz0nK3ltLm1hdGNoKC9zaG93SWRcIjpcIiguKj8pXCIvKVsxXSsnJmFwcENhbGxlcj1oNScse2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOk1PQklMRV9VQX0scmVkaXJlY3Q6ZmFsc2V9KSkuc2VyaXNlc0xpc3Q7dHJ5e2Q9ZC5maWx0ZXIoYT0+e3JldHVybiBhLmljb25Db3JuZXIudGFnVGV4dCE9J+mihOWRiic7fSk7ZC5mb3JFYWNoKChhLGopPT57aWYoaWk9PTApe2lmKGRpdyl7aWYoYS50aXRsZT09ZGl3fHxhLmRpc3BsYXlOYW1lPT1kaXcpe2lpPWorMTt9aWYoaWk+MCl7aWYoaWklamkhPTApaWk9aWktaWklamkrMTtlbHNlIGlpPWlpLWppKzE7dGhyb3cgbmV3IEVvcnJvcign5Lit5patJyk7fX1lbHNlIGlpPTE7fX0pO31jYXRjaChlKXt9dmFyIGVwbD1kLmxlbmd0aDtkPWQuc2xpY2UocGFyc2VJbnQoaWksMTApLTEscGFyc2VJbnQoaWksMTApK2ppLTEpLm1hcChhPT57YS5kZXNjPWEuZGlzcGxheU5hbWU7YS5pbWc9YS50aHVtYlVybDthLnVybD0naHR0cHM6Ly9tLnlvdWt1LmNvbS9hbGlwYXlfdmlkZW8vaWRfJythLnZpZGVvSWQrJy5odG1sIyMnK2EuZGlzcGxheU5hbWUrJyMjbm9QcmUjQGxhenlSdWxlPS5qczonK2dldEl0ZW0oJ3JDJykrbGF6eTthLnRpdGxlPWNvbG8oYS50aXRsZSx1bmRlZmluZWQsYS5kaXNwbGF5TmFtZSk7YS5leHRyYT17aWQ6J2h0dHBzOi8vbS55b3VrdS5jb20vYWxpcGF5X3ZpZGVvL2lkXycrYS52aWRlb0lkKycuaHRtbCd9O3JldHVybiBhO30pO31jYXRjaChlKXt2YXIgbGk9cGRmYSh5bSwnYm9keSYmLm1vZHVsZS1wbGF5LWxpc3QsMXx8Lm1vZHVsZS1wbGF5LWxpc3QmJi5tb2R1bGUtcGxheS1saXN0LWxpbmsnKTtmb3IobGV0IGkgb2YgbGkpe3ZhciB0aT1wZGZoKGksJ2EmJlRleHQnKTtkLnB1c2goe3RpdGxlOmNvbG8odGksMSksdXJsOnBhcnNlRG9tKGksJ2EmJmhyZWYnKSsnIyMnK3RpKycjI25vUHJlI0BsYXp5UnVsZT0uanM6JytnZXRJdGVtKCdyQycpKyd5bTE9ZmV0Y2goaW5wdXQse2hlYWRlcnM6e1xcXFwnVXNlci1BZ2VudFxcXFwnOk1PQklMRV9VQSxcXFxcJ0Nvb2tpZVxcXFwnOihpbnB1dC5pbmNsdWRlcyhcXFxcJ3hmYW5pLlxcXFwnKT9nZXRJdGVtKFxcXFwnc2VuQ1xcXFwnKTpcIlwiKX19KTtldmFsKHBkZmgoeW0xLFxcXFwnLm1haW4mJnNjcmlwdCYmSHRtbFxcXFwnKSk7dmFyIHVybD1wbGF5ZXJfYWFhYS51cmw7aWYodXJsLmluY2x1ZGVzKFxcXFwnOi8vXFxcXCcpKXVybD11cmwubWF0Y2goL2h0dHAuKi8pWzBdK1xcXFwnI2lzVmlkZW89dHJ1ZSNcXFxcJztlbHNlIGlmKGlucHV0LmluY2x1ZGVzKFxcXFwneGZhbmkuXFxcXCcpKXt2YXIgdT1cXFxcJ2h0dHBzOi8vZGljay54ZmFuaS5jb20vYWRkb25zL2RwL3BsYXllci9kcC5waHA/a2V5PTAmZnJvbT0maWQ9XFxcXCcrcGxheWVyX2FhYWEuaWQrXFxcXCcmYXBpPSZ1cmw9XFxcXCcrdXJsK1xcXFwnJmp1bXA9XFxcXCc7eW09ZmV0Y2godSx7aGVhZGVyczp7UmVmZXJlcjppbnB1dH19KTt2YXIgZGE9eW0ubWF0Y2goL1widXJsXCIuKj9cIiguKj8pXCIvKVsxXTtpZihkYS5zZWFyY2goL20zdTh8bXA0Lyk+LTEpZGErXFxcXCcjaXNWaWRlbz10cnVlI1xcXFwnO2Vsc2V7dmFyIHZpZT1wZGZoKHltLFxcXFwnaGVhZCYmbWV0YVtuYW1lPVwidmlld3BvcnRcIl0mJmlkXFxcXCcpLnJlcGxhY2UoXCJub3dfXCIsXCJcIik7dmFyIGNoPXBkZmgoeW0sXFxcXCdoZWFkJiZtZXRhW2NoYXJzZXQ9XCJVVEYtOFwiXSYmaWRcXFxcJykucmVwbGFjZShcIm5vd19cIixcIlwiKTt2YXIgbWE9SlNPTi5wYXJzZShmZXRjaChcImhpa2VyOi8vcGFnZS9zZW5mdW4uanNcIix7fSkpLnJ1bGU7ZXZhbChtYSk7ZGVjcnlwdChkYSx2aWUsY2gpK1xcXFwnI2lzVmlkZW89dHJ1ZSNcXFxcJzt9LypcXFxcJ3ZpZGVvOi8vXFxcXCcraW5wdXQ7Ki99ZWxzZSBpZihpbnB1dC5pbmNsdWRlcyhcXFxcJ29tb2Z1bi5cXFxcJykpe3ZhciB1PVxcXFwnaHR0cHM6Ly93d3cub21vZnVuLnR2L2FkZG9ucy9kcC9wbGF5ZXIvZHAucGhwP2Zyb209XFxcXCcrKHVybC5pbmNsdWRlcyhcIm9tb1wiKT9cIm9tb1wiOlwibXA0XCIpK1xcXFwnJnVybD1cXFxcJyt1cmw7eW09ZmV0Y2godSx7aGVhZGVyczp7UmVmZXJlcjppbnB1dH19KTt2YXIgdT15bS5tYXRjaCgvXCJ1cmxcIi4qP1wiKC4qPylcIi8pWzFdK1wiI2lzVmlkZW89dHJ1ZSNcIjtpZihcIicrZmkuZG0rJ1wiPT1cIuW8gFwiKXt2YXIgZG1mPUpTT04ucGFyc2UoZmV0Y2goXFxcXCdodHRwczovL3d3dy5vbW9mdW4udHYvaW5kZXgucGhwL2Rhbm11P2FjPWRtJmlkPVxcXFwnK3ltMS5tYXRjaCgvZGF0YS1pZD1cIiguKj8pXCIvKVsxXSkpLmRhbm11a3UubWFwKGE9PntyZXR1cm4ge3RpbWU6YVswXSx0ZXh0OmFbNF19O30pO2RtPVwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvZG0uanNvblwiO3dyaXRlRmlsZShkbSxKU09OLnN0cmluZ2lmeShkbWYpKTt2YXIgYj1bXTtiLnB1c2godSk7dmFyIGw9e3VybHM6YixkYW5tdTpkbX07SlNPTi5zdHJpbmdpZnkobCk7fWVsc2UgdTt9Jyxjb2xfdHlwZTondGV4dF8zJ30pO3ZhciBlcGw9MDt9fX19fWlmKGQ9PScnJiZnZXRWYXIoJ2lpJykhPScnKXtjbGVhclZhcignaWknKTtyZWZyZXNoUGFnZSgpO31mb3IoaT0xO2k8PWVwbDtpPWkramkpe3ZhciBxaj0oaSsnLScrKGVwbC0oaStqaS0xKT49MD8oaStqaS0xKTplcGwpKTtkMS5wdXNoKHt0aXRsZTppaT49aSYmKGlpPD1pK2ppLTEpPygn4oCc4oCcJytxaisn4oCd4oCdJyk6cWosdXJsOmkrXCJAbGF6eVJ1bGU9LmpzOnB1dFZhcignaWknLGlucHV0KTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5q2j5Zyo5YiH5o2iLi4uJ1wiLGNvbF90eXBlOidzY3JvbGxfYnV0dG9uJ30pO31pZihtbz09MSlkPWQucmV2ZXJzZSgpO2QxPWQxLmNvbmNhdChkKTtkMS5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtpZih5bS5pbmRleE9mKCdcInNzTGlzdFwiOlt7Jyk+LTEpe2QxLnB1c2goe3RpdGxlOihnZXRWYXIoJ3hsJyk9PScxJz8n4oCc4oCc4oqZ5pu05aSa57O75YiX4oCd4oCdJzon4oCY4oCY4oqV5pu05aSa57O75YiX4oCZ4oCZJyksdXJsOidoaWtlcjovL2VtcHR5IycrZ2V0VmFyKCd4bCcpK1xcYEBsYXp5UnVsZT0uanM6dmFyIGE9aW5wdXQuc3BsaXQoJyMnKVsxXTtpZihhPT0nMScpe3B1dFZhcjIoJ3hsJywnJyk7fWVsc2V7cHV0VmFyMigneGwnLCcxJyk7fXJlZnJlc2hQYWdlKGZhbHNlKTthPT0nMSc/J3RvYXN0Oi8v5bey5pS26LW3JzondG9hc3Q6Ly/lt7LlsZXlvIAnXFxgLGNvbF90eXBlOid0ZXh0XzInfSk7fWlmKE1ZX1VSTC5zZWFyY2goL2lxaXlpLmNvfHlvdWt1LmNvLyk9PS0xKWQxLnB1c2goe3RpdGxlOihnZXRWYXIoJ3RqJyk9PScxJz8n4oCc4oCc4oqZ5pu05aSa5o6o6I2Q4oCd4oCdJzon4oCY4oCY4oqV5pu05aSa5o6o6I2Q4oCZ4oCZJyksdXJsOidoaWtlcjovL2VtcHR5IycrZ2V0VmFyKCd0aicpK1xcYEBsYXp5UnVsZT0uanM6dmFyIGE9aW5wdXQuc3BsaXQoJyMnKVsxXTtpZihhPT0nMScpe3B1dFZhcjIoJ3RqJywnJyk7fWVsc2V7cHV0VmFyMigndGonLCcxJyk7fTtyZWZyZXNoUGFnZShmYWxzZSk7YT09JzEnPyd0b2FzdDovL+W3suaUtui1tyc6J3RvYXN0Oi8v5bey5bGV5byAJ1xcYCxjb2xfdHlwZTondGV4dF8yJ30pO2QxLnB1c2goe2NvbF90eXBlOidsaW5lJ30pO2lmKGdldFZhcigndGonKT09MXx8Z2V0VmFyKCd4bCcpPT0xKXdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagveW0nLCcnKTt0cnl7aWYoZ2V0VmFyKCd4bCcpPT0nMScpeyB2YXIgdGo9SlNPTi5wYXJzZSh5bS5zcGxpdCgnXCJzc0xpc3RcIjonKVsxXS5zcGxpdCgnfV0nKVswXSsnfV0nKTsgZm9yKHZhciBvPTA7dGohPW51bGwmJm88dGoubGVuZ3RoO28rKyl7dmFyIGNvdmVyPXRqW29dLmNvdmVyO2lmKCFjb3Zlci5pbmNsdWRlcygnaHR0cCcpKWNvdmVyPSdodHRwOicrY292ZXI7dmFyIGN1PU1ZX1VSTC5pbmNsdWRlcyh0altvXS5pZCk/J+KtkO+4jyc6Jyc7dmFyIHN4PU1ZX1VSTC5pbmNsdWRlcyh0altvXS5pZCk/XCJAbGF6eVJ1bGU9LmpzOnJlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/lt7LliLfmlrDvvIEnO1wiOmdldEl0ZW0oJ2FhJyk7ZDEucHVzaCh7IHRpdGxlOnRqW29dLnRpdGxlK2N1LGltZzpjb3ZlcixkZXNjOnRqW29dLmluZGV4X3Nob3csIHVybDonaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tL2Jhbmd1bWkvcGxheS9zcycrdGpbb10uaWQrJyMjJytuYW0rJyAnK3RqW29dLnRpdGxlKycmJicrJ2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbS9iYW5ndW1pL3BsYXkvc3MnK3RqW29dLmlkKycmJicrY292ZXIrJyMjJytzeCwgZGVzYzp0altvXS5kZXNjLGNvbF90eXBlOidtb3ZpZV8yJyB9KTt9cHV0VmFyMigneGwnLCcnKTt9fWNhdGNoKGUpe31pZihnZXRWYXIoJ3RqJyk9PScxJyl7aWYoTVlfVVJMLmluY2x1ZGVzKCdiaWxpYmlsaScpKXt2YXIgcmVjPUpTT04ucGFyc2UoZmV0Y2goJ2h0dHBzOi8vYXBpLmJpbGliaWxpLmNvbS9wZ2Mvc2Vhc29uL3dlYi9yZWxhdGVkL3JlY29tbWVuZD9zZWFzb25faWQ9JytNWV9VUkwuc3BsaXQoJ3NzJylbMV0se30pKS5kYXRhLnNlYXNvbjtmb3IoaT0wO2k8cmVjLmxlbmd0aDtpKyspe2QxLnB1c2goeyB0aXRsZTpyZWNbaV0udGl0bGUsaW1nOnJlY1tpXS5uZXdfZXAuY292ZXIsZGVzYzpyZWNbaV0ubmV3X2VwLmluZGV4X3Nob3csdXJsOnJlY1tpXS51cmwrJyMjJytyZWNbaV0udGl0bGUrJyYmJytyZWNbaV0udXJsKycmJicrcmVjW2ldLm5ld19lcC5jb3ZlcisnIyMnK2dldEl0ZW0oJ2FhJyksIGNvbF90eXBlOidtb3ZpZV8yJyB9KTt9fWVsc2UgaWYoTVlfVVJMLmluY2x1ZGVzKCdxcS4nKSl7dmFyIGxpcz1wYXJzZURvbUZvckFycmF5KHJlcXVlc3QoJ2h0dHBzOi8vbS52LnFxLmNvbS9wbGF5Lmh0bWw/Y2lkPScrTVlfVVJMLnNwbGl0KCcvJylbNV0uc3BsaXQoJy4nKVswXSx7fSksJy5maWd1cmVzX2xpc3QmJmxpJyk7Zm9yKHZhciBrIG9mIGxpcyl7dmFyIHVyPSdodHRwczovL3YucXEuY29tL3gvY292ZXIvJytwYXJzZURvbUZvckh0bWwoaywnbGkmJmRhdGEtY2lkJykrJy5odG1sJzt2YXIgaW1nPXBhcnNlRG9tRm9ySHRtbChrLCdpbWcmJmRzcmMnKTtpZighaW1nLmluY2x1ZGVzKCdodHRwJykpaW1nPSdodHRwczonK2ltZzt2YXIgdGk9cGFyc2VEb21Gb3JIdG1sKGssJ3N0cm9uZyYmVGV4dCcpO2QxLnB1c2goeyB0aXRsZTp0aSxpbWc6aW1nLGRlc2M6cGFyc2VEb21Gb3JIdG1sKGssJ2EmJlRleHQnKSx1cmw6dXIrJyMjJyt0aSsnJiYnK3VyKycmJicraW1nKycjIycrZ2V0SXRlbSgnYWEnKSwgY29sX3R5cGU6J21vdmllXzInIH0pO319ZWxzZXt2YXIgbGk9cGRmYSh5bSwnYm9keSYmLm1vZHVsZS1pdGVtcyYmYScpO2ZvcihsZXQgaSBvZiBsaSl7dmFyIHRpPXBkZmgoaSwnYSYmdGl0bGUnKTt2YXIgdXI9cGFyc2VEb20oaSwnYSYmaHJlZicpO3ZhciBpbWc9cGRmaChpLCdpbWcmJmRhdGEtb3JpZ2luYWwnKTtkMS5wdXNoKHsgdGl0bGU6dGksaW1nOmltZyxkZXNjOnBhcnNlRG9tRm9ySHRtbChpLCcubW9kdWxlLWl0ZW0tbm90ZSYmVGV4dCcpLHVybDp1cisnIyMnK3RpKycmJicrdXIrJyYmJytpbWcrJyMjJytnZXRJdGVtKCdhYScpLCBjb2xfdHlwZTonbW92aWVfMicgfSk7fX19cHV0VmFyMigndGonLCcnKTt9Y2F0Y2goZSl7ZDEucHVzaCh7dGl0bGU6J+KAnOKAnOS8keaBr+WQp++8jOi/veeVquS5n+S4jeimgei/meS5iOaLvO+8geKAneKAnScsY29sX3R5cGU6J3RleHRfY2VudGVyXzEnfSk7fWNsZWFySXRlbSgneXonKTthZGRMaXN0ZW5lcignb25SZWZyZXNoJyxcInB1dFZhcignamwnLHBhcnNlSW50KGdldFZhcignamwnLCcwJyksMTApLTEpO1wiKTthZGRMaXN0ZW5lcignb25DbG9zZScsXCJjbGVhclZhcignaWknKTt3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3ltJywnJyk7dmFyIGZpPUpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnLHt9KSk7dmFyIGZpcz1KU09OLnBhcnNlKCdcIitmaXMrXCInKTt2YXIgc3RhPWdldFZhcignc3RhJyk7aWYoZ2V0VmFyKCdqbCcpPT0xJiZnZXRWYXIoJ2F4ZScpPT0n6L+955WqJyYmKGZldGNoKCdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC/miJHnmoTov73nlaoudHh0Jyx7fSkhPWdldFZhcignbGInKXx8ZmkuZnohPWZpcy5menx8ZmkuY29sIT1zdGEmJmZpLmNvbCE9ZmlzLmNvbCkpe2lmKGZpLmNvbCE9ZmlzLmNvbCYmZmkuY29sIT1zdGEpcHV0VmFyKCdzdGEnLGZpLmNvbCYmZmkuY29sPT0xPzE6MCk7cmVmcmVzaFBhZ2UoZmFsc2UpO31wdXRWYXIoJ2psJyxwYXJzZUludChnZXRWYXIoJ2psJywnMCcpLDEwKS0xKTtcIik7cmVzMS5kYXRhID0gZDE7IHNldEhvbWVSZXN1bHQocmVzMSk7YCk7IiwicGFnZXMiOiJbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIua1i+ivlVwiLFwicGF0aFwiOlwiY2VzaGkuaHRtbFwiLFwicnVsZVwiOlwianM6XFxuXFxyXFxudmFyIHJlcyA9IHt9O1xcclxcbnZhciBkID0gW107XFxudmFyIGQxID0gW107XFxudmFyIGQyID0gW107XFxudmFyIGQzID0gW107XFxudmFyIGQ0ID0gW107XFxudmFyIGQ1ID0gW107XFxuZnVuY3Rpb24gc2VsKGEpe1xcbiAgIHRyeXtcXG4gICAgICBhPWEubWF0Y2goL1tcXFxcd10qP1xcXFwuY29tL2cpWzBdO1xcbiAgICAgfWNhdGNoKGUpe3JldHVybiAnb3RoJzt9XFxuICAgICAgICAgICAgc3dpdGNoIChhKSB7XFxuICAgICAgICAgICAgICAgIGNhc2UgXFxcInFxLmNvbVxcXCI6XFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSAndHgnO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgXFxcImlxaXlpLmNvbVxcXCI6XFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSAncXknO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgXFxcInlvdWt1LmNvbVxcXCI6XFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSAneWsnO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgXFxcIm1ndHYuY29tXFxcIjpcXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9ICdtZyc7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSBcXFwiYmlsaWJpbGkuY29tXFxcIjpcXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9ICdibCc7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9ICdvdGgnO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbnJldHVybiBzdHI7XFxufVxcblxcbnZhciBwYXRoPSdmaWxlOi8vL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9ydWxlcy9EdWFuTmlhbi9NeVBhcnNlLmpzb24nO1xcbnZhciBmaT1mZXRjaChwYXRoLHt9KTtcXG50cnl7XFxuZXZhbCgnang9JytmaSk7XFxuZXZhbCgnYT0nK2ZpKTtcXG5cXG5zYXZlRmlsZSgnc2F2ZS50eHQnLGZpKTtcXG5cXG5mb3IobGV0IHggb2YgT2JqZWN0LmtleXMoanguc2V0dGluZ3MpKXtcXG52YXIgYj1qeC5zZXR0aW5nc1t4XS5zcGxpdCgnLCcpO1xcbmZvcihpPTA7aTxiLmxlbmd0aDtpKyspe1xcbmZvcihqPWkrMTtqPGIubGVuZ3RoO2orKyl7XFxuaWYoYltpXT09YltqXSl7XFxuYi5zcGxpY2UoaiwxKTtcXG59XFxufVxcbn1cXG5qeC5zZXR0aW5nc1t4XT1iLmZpbHRlcihhPT57cmV0dXJuIGEhPScnO30pLmpvaW4oJywnKTtcXG59XFxuXFxuanguc2V0dGluZ3MuY2o9J2hpa2VyOi8vZmlsZXMvY2FjaGUvUGFyc2VfRG4uanMnO1xcbmp4LnRpdGxlPWp4LnRpdGxlLmZpbHRlcihhPT57XFxuaWYoanguY29kZXNbYV0pe2p4LmNvZGVzW2FdPWErJ+ino+aekCc7XFxucmV0dXJuIGE7fVxcbmVsc2V7ZGVsZXRlIGp4LmNvZGVzW2FdO319KTtcXG52YXIgZmk9SlNPTi5zdHJpbmdpZnkoangpO1xcbmZvcihqIG9mIGp4LnRpdGxlKXtmaT1maS5yZXBsYWNlKCdcXFwiJytqKyfop6PmnpBcXFwiJywoKHR5cGVvZiBhLmNvZGVzW2pdKSE9J2Z1bmN0aW9uJz8oJ1xcXCInK2EuY29kZXNbal0udG9TdHJpbmcoKS50cmltKCkrJ1xcXCInKTphLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKSk7fXdyaXRlRmlsZShwYXRoLGZpKTtcXG5cXG5pbnB1dD1nZXRWYXIoJ2lucHV0Jyk7XFxucHV0VmFyKCdpbnB1dCcsJycpO1xcbnZhciBuYW1lPWdldFZhcignaScpO1xcblxcbmQucHVzaCh7XFxudGl0bGU6J+a1i+ivlScsXFxuZGVzYzon6L6T5YWl5rWL6K+V6ZO+5o6lLi4uJyxcXG51cmw6YHB1dFZhcignaW5wdXQnLGlucHV0KTtyZWZyZXNoUGFnZShmYWxzZSk7YCxcXG5jb2xfdHlwZTonaW5wdXQnLFxcbmV4dHJhOntpZDpcXFwiaW5rXFxcIn1cXG59KTtcXG52YXIgcGF0aD0nZmlsZTovLy9zdG9yYWdlL2VtdWxhdGVkLzAvQW5kcm9pZC9kYXRhL2NvbS5leGFtcGxlLmhpa2Vydmlldy9maWxlcy9Eb2N1bWVudHMvcnVsZXMvRHVhbk5pYW4vTXlQYXJzZS5qc29uJztcXG5cXG5ldmFsKCdqeD0nK2ZpKTtcXG52YXIgcGQ9MDtcXG5mb3IoaT0wO2k8angudGl0bGUubGVuZ3RoO2krKyl7XFxuaWYoangudGl0bGVbaV09PW5hbWUpe1xcbnBkPTE7YnJlYWs7XFxufVxcbn1cXG5pZihuYW1lPT0nJ3x8cGQ9PTApbmFtZT1qeC50aXRsZVswXTtcXG5cXG5kLnB1c2goe1xcbnRpdGxlOifmtYvor5Xku44gJytuYW1lKycg5byA5aeLOiAnLFxcbmRlc2M6J+eCueWHu+WIh+aNoui1t+eCueino+aekCcsXFxudXJsOmBzZWxlY3Q6Ly97XFxcInRpdGxlXFxcIjogXFxcIumAieaLqeino+aekC4uLlxcXCIsXFxcIm9wdGlvbnNcXFwiIDpbYCtqeC50aXRsZS5tYXAoYT0+e3JldHVybiAnXFxcIicrYSsnXFxcIid9KStgXSxjb2w6IDMsIFxcXCJqc1xcXCI6XFxcInB1dFZhcignaScsaW5wdXQpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLoh7MnK2lucHV0KyflvIDlp4vmtYvor5XvvIEnXFxcIn1gLFxcbmNvbF90eXBlOid0ZXh0XzEnXFxufSk7XFxuZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtcXG5pZihpbnB1dCE9JycmJmlucHV0LmluY2x1ZGVzKCc6Ly8nKSl7XFxudmFyIGNzPTA7XFxuZm9yKHZhciBpaT0wO2lpPGp4LnRpdGxlLmxlbmd0aDtpaSsrKXtcXG5cXG5pZihuYW1lIT1qeC50aXRsZVtpaV0mJmNzPT0wKXtcXG5jb250aW51ZTtcXG59ZWxzZSBpZihuYW1lPT1qeC50aXRsZVtpaV0pe2NzPTE7fVxcblxcblxcblxcbmlmKGp4LnRpdGxlW2lpXSE9J2RlZmF1bHRQYXJzZScpe1xcbnRyeXtcXG5zaG93TG9hZGluZygn5q2j5Zyo5rWL6K+VICcrangudGl0bGVbaWldKTtcXG5cXG5pZigodHlwZW9mIGp4LmNvZGVzW2p4LnRpdGxlW2lpXV0pIT0nc3RyaW5nJyl7XFxudmFyIHVybD1qeC5jb2Rlc1tqeC50aXRsZVtpaV1dKGlucHV0KS5yZXBsYWNlKC9cXFxcXFxcIi9nLCdcXFxcXFxcXFxcXCInKS5yZXBsYWNlKC9cXFxcJy9nLFxcXCJcXFxcXFxcXCdcXFwiKS5yZXBsYWNlKC9cXFxcYC9nLCdcXFxcXFxcXGAnKTtcXG5pZihzZWwoaW5wdXQpPT0nbWcnJiZ1cmwuc2VhcmNoKC9Vc2VyLUFnZW50fFJlZmVyZXIvKT09LTEpXFxudXJsPXVybCsnO3tVc2VyLUFnZW50QE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjApfSc7XFxufVxcbmVsc2V7XFxudmFyIHVybD0nJztcXG59XFxuXFxuaWYodXJsLmluY2x1ZGVzKCd0b2FzdDovLycpfHwhdXJsLmluY2x1ZGVzKCc6Ly8nKXx8dXJsPT1pbnB1dCl1cmw9Jyc7XFxufWNhdGNoKGUpe1xcbnVybD0nJztcXG59XFxuXFxuaWYodXJsIT0nJylcXG57XFxuZDEucHVzaCh7XFxudGl0bGU6angudGl0bGVbaWldLFxcbmRlc2M6J+aJvuWIsOS4gOS4quWFjeWXhScsXFxudXJsOmBzZWxlY3Q6Ly97XFxcInRpdGxlXFxcIjogXFxcIumAieaLqeaTjeS9nC4uLlxcXCIsIFxcXCJvcHRpb25zXFxcIiA6Wyfmkq3mlL4nLCfmt7vliqAnLCfliKDpmaQnXSwgY29sOiAzLCBcXFwianNcXFwiOiBcXFwiaWYoaW5wdXQ9PSfmkq3mlL4nKXtcXFxcYGArdXJsK2BcXFxcYDt9ZWxzZSB7dmFyIHBhdGg9J2ZpbGU6Ly8vc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL3J1bGVzL0R1YW5OaWFuL015UGFyc2UuanNvbic7dmFyIGZpPWZldGNoKHBhdGgse30pO2V2YWwoJ2p4PScrZmkpO2V2YWwoJ2E9JytmaSk7aWYoaW5wdXQ9PSfmt7vliqAnKXt2YXIgc2V0PWp4LnNldHRpbmdzWydgK3NlbChpbnB1dCkrYCddO3NldD1zZXQuc3BsaXQoJywnKS5maWx0ZXIoYT0+e2lmKGEhPScnJiZhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSkuam9pbignLCcpO2p4LnNldHRpbmdzWydgK3NlbChpbnB1dCkrYCddPSdgK2p4LnRpdGxlW2lpXStgJysoc2V0PT0nJz8nJzonLCcpK3NldDtmb3IoaiBvZiBqeC50aXRsZSl7anguY29kZXNbal09aisn6Kej5p6QJzt9dmFyIGZpPUpTT04uc3RyaW5naWZ5KGp4KTt9ZWxzZXt2YXIganhsPWp4LnRpdGxlLmZpbHRlcihhPT57aWYoYSE9J2ArangudGl0bGVbaWldK2AnKXJldHVybiBhO30pO2ZvcihqIG9mIGp4LnRpdGxlKXtpZihqIT0nYCtqeC50aXRsZVtpaV0rYCcpanguY29kZXNbal09aisn6Kej5p6QJztlbHNlIGRlbGV0ZSBqeC5jb2Rlc1tqXTt9angudGl0bGU9anhsO2ZvcihrIG9mIE9iamVjdC5rZXlzKGp4LnNldHRpbmdzKSl7anguc2V0dGluZ3Nba109anguc2V0dGluZ3Nba10uc3BsaXQoJywnKS5maWx0ZXIoYT0+e2lmKGEhPScnJiZhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSkuam9pbignLCcpO312YXIgZmk9SlNPTi5zdHJpbmdpZnkoangpO31mb3IoaiBvZiBqeC50aXRsZSl7Zmk9ZmkucmVwbGFjZSgnXFxcXFxcXFxcXFwiJytqKyfop6PmnpBcXFxcXFxcXFxcXCInLCgodHlwZW9mIGEuY29kZXNbal0pIT0nZnVuY3Rpb24nPygnXFxcXFxcXFxcXFwiJythLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKydcXFxcXFxcXFxcXCInKTphLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKSk7fXdyaXRlRmlsZShwYXRoLGZpKTsndG9hc3Q6Ly/lrozmiJDvvIEnfVxcXCJ9YCxcXG5jb2xfdHlwZTondGV4dF8xJ1xcbn0pO1xcbnRyeXtcXG5wdXRWYXIoJ2knLGp4LnRpdGxlW2lpKzFdKTtcXG59Y2F0Y2goZSl7XFxuY2xlYXJWYXIoJ2knKTt9XFxuZDEucHVzaCh7Y29sX3R5cGU6J2xpbmUnfSk7XFxuZDEucHVzaCh7XFxudGl0bGU6J+S4i+S4gOS4qicsXFxudXJsOmBoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2lucHV0JywnYCtpbnB1dCtgJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+S4i+S4gOS4qidgLFxcbmNvbF90eXBlOid0ZXh0XzInXFxufSk7XFxuZDEucHVzaCh7XFxudGl0bGU6J+S7juWktOW8gOWniycsXFxudXJsOmBoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2lucHV0JywnYCtpbnB1dCtgJyk7Y2xlYXJWYXIoJ2knKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5byA5aeLJ2AsXFxuY29sX3R5cGU6J3RleHRfMidcXG59KTtcXG5oaWRlTG9hZGluZygpO1xcbmJyZWFrO1xcbn1cXG5cXG5cXG5lbHNle1xcbmlmKCh0eXBlb2YganguY29kZXNbangudGl0bGVbaWldXSkhPSdzdHJpbmcnKVxcbmQyLnB1c2goe1xcbnRpdGxlOmp4LnRpdGxlW2lpXSxcXG5cXG51cmw6YHNlbGVjdDovL3tcXFwidGl0bGVcXFwiOiBcXFwi6YCJ5oup5pON5L2cLi4uXFxcIiwgXFxcIm9wdGlvbnNcXFwiIDpbJ+mHjeivlScsJ+a3u+WKoCcsJ+WIoOmZpCddLCBjb2w6IDMsIFxcXCJqc1xcXCI6IFxcXCJpZihpbnB1dD09J+mHjeivlScpe1xcXFxgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6dmFyIHBhdGg9J2ZpbGU6Ly8vc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL3J1bGVzL0R1YW5OaWFuL015UGFyc2UuanNvbic7dmFyIGZpPWZldGNoKHBhdGgse30pO2V2YWwoJ2p4PScrZmkpO2p4LmNvZGVzWydgK2p4LnRpdGxlW2lpXStgJ10oJ2AraW5wdXQrYCcpO1xcXFxgfWVsc2Uge3ZhciBwYXRoPSdmaWxlOi8vL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9ydWxlcy9EdWFuTmlhbi9NeVBhcnNlLmpzb24nO3ZhciBmaT1mZXRjaChwYXRoLHt9KTtldmFsKCdqeD0nK2ZpKTtldmFsKCdhPScrZmkpO2lmKGlucHV0PT0n5re75YqgJyl7dmFyIHNldD1qeC5zZXR0aW5nc1snYCtzZWwoaW5wdXQpK2AnXTtzZXQ9c2V0LnNwbGl0KCcsJykuZmlsdGVyKGE9PntpZihhIT0nJyYmYSE9J2ArangudGl0bGVbaWldK2AnKXJldHVybiBhO30pLmpvaW4oJywnKTtqeC5zZXR0aW5nc1snYCtzZWwoaW5wdXQpK2AnXT0nYCtqeC50aXRsZVtpaV0rYCcrKHNldD09Jyc/Jyc6JywnKStzZXQ7Zm9yKGogb2YgangudGl0bGUpe2p4LmNvZGVzW2pdPWorJ+ino+aekCc7fXZhciBmaT1KU09OLnN0cmluZ2lmeShqeCk7fWVsc2V7dmFyIGp4bD1qeC50aXRsZS5maWx0ZXIoYT0+e2lmKGEhPSdgK2p4LnRpdGxlW2lpXStgJylyZXR1cm4gYTt9KTtmb3IoaiBvZiBqeC50aXRsZSl7aWYoaiE9J2ArangudGl0bGVbaWldK2AnKWp4LmNvZGVzW2pdPWorJ+ino+aekCc7ZWxzZSBkZWxldGUganguY29kZXNbal07fWp4LnRpdGxlPWp4bDtmb3IoayBvZiBPYmplY3Qua2V5cyhqeC5zZXR0aW5ncykpe2p4LnNldHRpbmdzW2tdPWp4LnNldHRpbmdzW2tdLnNwbGl0KCcsJykuZmlsdGVyKGE9PntpZihhIT0nJyYmYSE9J2ArangudGl0bGVbaWldK2AnKXJldHVybiBhO30pLmpvaW4oJywnKTt9dmFyIGZpPUpTT04uc3RyaW5naWZ5KGp4KTt9Zm9yKGogb2YgangudGl0bGUpe2ZpPWZpLnJlcGxhY2UoJ1xcXFxcXFxcXFxcIicraisn6Kej5p6QXFxcXFxcXFxcXFwiJywoKHR5cGVvZiBhLmNvZGVzW2pdKSE9J2Z1bmN0aW9uJz8oJ1xcXFxcXFxcXFxcIicrYS5jb2Rlc1tqXS50b1N0cmluZygpLnRyaW0oKSsnXFxcXFxcXFxcXFwiJyk6YS5jb2Rlc1tqXS50b1N0cmluZygpLnRyaW0oKSkpO313cml0ZUZpbGUocGF0aCxmaSk7J3RvYXN0Oi8v5a6M5oiQ77yBJ31cXFwifWAsXFxuY29sX3R5cGU6J3RleHRfMydcXG59KTtcXG5lbHNle1xcbnZhciB4NT1qeC5jb2Rlc1snZGVmYXVsdFBhcnNlJ10oanguY29kZXNbangudGl0bGVbaWldXStpbnB1dCkucmVwbGFjZSgvXFxcXFxcXFwvZywnXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwnKS5yZXBsYWNlKC9cXFxcXFxcIi9nLCdcXFxcXFxcXFxcXCInKS5yZXBsYWNlKC9cXFxcJy9nLFxcXCJcXFxcXFxcXCdcXFwiKS5yZXBsYWNlKC9cXFxcYC9nLCdcXFxcXFxcXGAnKS5yZXBsYWNlKC9bXFxcXHNdL2csJyAnKTtcXG5kNC5wdXNoKHtcXG50aXRsZTpqeC50aXRsZVtpaV0sXFxuXFxudXJsOmBzZWxlY3Q6Ly97XFxcInRpdGxlXFxcIjogXFxcIumAieaLqeaTjeS9nC4uLlxcXCIsIFxcXCJvcHRpb25zXFxcIiA6Wyfop6PmnpAnLCfmt7vliqAnLCfliKDpmaQnXSwgY29sOiAzLCBcXFwianNcXFwiOiBcXFwiaWYoaW5wdXQ9PSfop6PmnpAnKXsnYCt4NStgJ31lbHNlIHt2YXIgcGF0aD0nZmlsZTovLy9zdG9yYWdlL2VtdWxhdGVkLzAvQW5kcm9pZC9kYXRhL2NvbS5leGFtcGxlLmhpa2Vydmlldy9maWxlcy9Eb2N1bWVudHMvcnVsZXMvRHVhbk5pYW4vTXlQYXJzZS5qc29uJzt2YXIgZmk9ZmV0Y2gocGF0aCx7fSk7ZXZhbCgnang9JytmaSk7ZXZhbCgnYT0nK2ZpKTtpZihpbnB1dD09J+a3u+WKoCcpe3ZhciBzZXQ9anguc2V0dGluZ3NbJ2Arc2VsKGlucHV0KStgJ107c2V0PXNldC5zcGxpdCgnLCcpLmZpbHRlcihhPT57aWYoYSE9JycmJmEhPSdgK2p4LnRpdGxlW2lpXStgJylyZXR1cm4gYTt9KS5qb2luKCcsJyk7anguc2V0dGluZ3NbJ2Arc2VsKGlucHV0KStgJ109J2ArangudGl0bGVbaWldK2AnKyhzZXQ9PScnPycnOicsJykrc2V0O2ZvcihqIG9mIGp4LnRpdGxlKXtqeC5jb2Rlc1tqXT1qKyfop6PmnpAnO312YXIgZmk9SlNPTi5zdHJpbmdpZnkoangpO31lbHNle3ZhciBqeGw9angudGl0bGUuZmlsdGVyKGE9PntpZihhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSk7Zm9yKGogb2YgangudGl0bGUpe2lmKGohPSdgK2p4LnRpdGxlW2lpXStgJylqeC5jb2Rlc1tqXT1qKyfop6PmnpAnO2Vsc2UgZGVsZXRlIGp4LmNvZGVzW2pdO31qeC50aXRsZT1qeGw7Zm9yKGsgb2YgT2JqZWN0LmtleXMoanguc2V0dGluZ3MpKXtqeC5zZXR0aW5nc1trXT1qeC5zZXR0aW5nc1trXS5zcGxpdCgnLCcpLmZpbHRlcihhPT57aWYoYSE9JycmJmEhPSdgK2p4LnRpdGxlW2lpXStgJylyZXR1cm4gYTt9KS5qb2luKCcsJyk7fXZhciBmaT1KU09OLnN0cmluZ2lmeShqeCk7fWZvcihqIG9mIGp4LnRpdGxlKXtmaT1maS5yZXBsYWNlKCdcXFxcXFxcXFxcXCInK2orJ+ino+aekFxcXFxcXFxcXFxcIicsKCh0eXBlb2YgYS5jb2Rlc1tqXSkhPSdmdW5jdGlvbic/KCdcXFxcXFxcXFxcXCInK2EuY29kZXNbal0udG9TdHJpbmcoKS50cmltKCkrJ1xcXFxcXFxcXFxcIicpOmEuY29kZXNbal0udG9TdHJpbmcoKS50cmltKCkpKTt9d3JpdGVGaWxlKHBhdGgsZmkpOyd0b2FzdDovL+WujOaIkO+8gSd9XFxcIn1gLFxcbmNvbF90eXBlOid0ZXh0XzMnXFxufSk7fVxcbn1cXG59fVxcbn1cXG5oaWRlTG9hZGluZygpO1xcbmlmKGQyIT0nJylcXG5kMy5wdXNoKHtcXG50aXRsZTon4q2Q77iP5Lul5LiL5piv6Kej5p6Q5aSx6LSl55qE5YWN5ZeFOicsXFxuY29sX3R5cGU6J3RleHRfMSdcXG5cXG59KTtcXG5pZihkNCE9JycpXFxuZDUucHVzaCh7XFxudGl0bGU6J+KtkO+4j+S7peS4i+S4jeaYr+WFjeWXhe+8jOmcgOimgeaJi+WKqOa1i+ivlTonLFxcbmNvbF90eXBlOid0ZXh0XzEnXFxuXFxufSk7XFxufWNhdGNoKGUpe1xcbmQucHVzaCh7XFxudGl0bGU6J+aWh+S7tuaNn+Wdj++8jOeCueWHu+atpOWkhOaBouWkjSjlpoLmnpzmnInlpIfku73nmoTor50pJyxcXG5jb2xfdHlwZTondGV4dF9jZW50ZXJfMScsXFxuZGVzYzon5YWI54K55LiA5LiL6K+V5LiA6K+V5ZCnJyxcXG51cmw6YGhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOndyaXRlRmlsZSgnYCtwYXRoK2AnLHJlYWRGaWxlKCdzYXZlLnR4dCcpKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5omn6KGM5oiQ5Yqf77yBJ2BcXG59KTtcXG59XFxuZD1kLmNvbmNhdChkMSkuY29uY2F0KGQzKS5jb25jYXQoZDIpLmNvbmNhdChkNSkuY29uY2F0KGQ0KTtcXG5cXHJcXG5yZXMuZGF0YSA9IGQ7XFxyXFxuc2V0SG9tZVJlc3VsdChyZXMpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pCc57SiXCIsXCJwYXRoXCI6XCJzby5odG1sXCIsXCJydWxlXCI6XCJpZihpbnB1dD09J+aQnOe0ouWIhue7hCcpe2BpbnB1dDovL3tcXFwiaGludFxcXCI6J+i+k+WFpeWIhue7hOWQjeensO+8micsXFxcImpzXFxcIjpcXFwiYT1bXTthWzBdPTA7YVsxXT1pbnB1dDtpZihhWzFdIT0nJyl7c2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaT1KU09OLnBhcnNlKGZldGNoKHNlLHt9KSk7Zmkuc289YTt3cml0ZUZpbGUoc2UsSlNPTi5zdHJpbmdpZnkoZmkpKTtyZWZyZXNoUGFnZShmYWxzZSk7fVxcXCJ9YH1cXG5lbHNle2BpbnB1dDovL3tcXFwiaGludFxcXCI6J+i+k+WFpeWwj+eoi+W6j+WQjeensO+8micsXFxcImpzXFxcIjpcXFwiYT1bXTthWzBdPTE7YVsxXT1pbnB1dDtpZihhWzFdIT0nJyl7c2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaT1KU09OLnBhcnNlKGZldGNoKHNlLHt9KSk7Zmkuc289YTt3cml0ZUZpbGUoc2UsSlNPTi5zdHJpbmdpZnkoZmkpKTtyZWZyZXNoUGFnZShmYWxzZSk7fVxcXCJ9YH1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIueugOS7i1wiLFwicGF0aFwiOlwiamlhbmpcIixcInJ1bGVcIjpcImZ1bmN0aW9uIGppYW5qKGEpe1xcbnJldHVybiBgaGlrZXI6Ly9lbXB0eUBydWxlPWpzOnZhciByZXMgPSB7fTt2YXIgZCA9IFtdO2QucHVzaCh7dGl0bGU6J+eugOS7i++8mlxcXFxcXFxcbicrXFxcXGBgK2ErYFxcXFxgLGNvbF90eXBlOidsb25nX3RleHQnfSk7cmVzLmRhdGEgPSBkO3NldEhvbWVSZXN1bHQocmVzKTtgXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5YiG57G7XCIsXCJwYXRoXCI6XCJjbGFzc2lmeVwiLFwicnVsZVwiOlwianM6XFxuZD1bXTtcXG5wdXRWYXIoJ+WIhuexuycsJycpO1xcbnZhciBwYXRoPVxcXCJoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC/miJHnmoTov73nlaoudHh0XFxcIjtcXG52YXIgZmlsZT1yZXF1ZXN0KHBhdGgpO1xcbmlmKGZpbGUhPVxcXCJcXFwiKXtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTpcXFwi5pON5L2c6K+05piO77yaXFxcIixcXG4gICAgZGVzYzpcXFwi5YWI6YCJ5oup5pS+5Yiw5LiA5Liq5YiG57uE55qE55Wq5Ymn77yM54K55Ye75a6M5oiQ77yM6L6T5YWl5ZCN56ew5Y2z5Y+v77yBXFxcIixcXG4gICAgY29sX3R5cGU6XFxcInRleHRfMVxcXCIsXFxuICAgIGV4dHJhOntpZDon5q2l6aqkJ31cXG5cXG59KTtcXG52YXIgeHg9ZmlsZS5zcGxpdCgnQEAnKS5maWx0ZXIoYT0+e3JldHVybiBhIT1cXFwiXFxcIjt9KTtcXG52YXIgYXJyPXh4Lm1hcChhPT57XFxuICAgIHZhciBiPXt9O1xcbnZhciBjYXRlPWEuc3BsaXQoXFxcIiYmXFxcIik7XFxuICAgIHZhciB0PWNhdGVbMF07XFxudGk9dDtcXG5pZihjYXRlWzRdJiZjYXRlWzRdIT1cXFwiXFxcIil0aT0n4oCY4oCYJyt0KyfigJnigJknO1xcbiAgICBiLnRpdGxlPXRpO1xcbiAgICBiLnVybD1cXFwiaGlrZXI6Ly9lbXB0eSNub0xvYWRpbmcjQGxhenlSdWxlPS5qczp2YXIgYT1nZXRWYXIoJ+WIhuexuycsJycpO3ZhciBiPTA7YT1hPT0nJz9bXTpKU09OLnBhcnNlKGEpO2E9YS5maWx0ZXIoaT0+e2lmKGk9PSdcXFwiK3QrXFxcIicpe2I9MTt9ZWxzZXtyZXR1cm4gaTt9fSk7aWYoYj09MClhLnB1c2goJ1xcXCIrdCtcXFwiJyk7cHV0VmFyKCfliIbnsbsnLGEpO3VwZGF0ZUl0ZW0oe3RpdGxlOmI9PTA/KCfigJzigJxcXFwiK3QrXFxcIuKAneKAnScpOignXFxcIit0aStcXFwiJyksZXh0cmE6e2lkOidcXFwiK3QrXFxcIid9fSk7KCd0b2FzdDovLycrKGI9PTA/J+W3sumAieS4re+8gSc6J+WPlua2iOmAieS4re+8gScpKVxcXCI7XFxuICAgIGIuY29sX3R5cGU9XFxcInRleHRfMlxcXCI7XFxuICAgIGIuZXh0cmE9e2lkOnR9O1xcbiAgICByZXR1cm4gYjtcXG59KTtcXG5kPWQuY29uY2F0KGFycik7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6XFxcIuWujOaIkFxcXCIsXFxuICAgIGNvbF90eXBlOlxcXCJ0ZXh0X2NlbnRlcl8xXFxcIixcXG4gICAgdXJsOmBpbnB1dDovL3tcXFwiaGludFxcXCI6XFxcIuWIhue7hOWQjeensC4uLi4uLlxcXCIsIFxcXCJqc1xcXCI6IFxcXCJ2YXIgZmk9YCtKU09OLnN0cmluZ2lmeSh4eCkucmVwbGFjZSgvXFxcIi9nLFxcXCInXFxcIikrYDt2YXIgYT1nZXRWYXIoJ+WIhuexuycsJycpO2E9YT09Jyc/W106SlNPTi5wYXJzZShhKTtmb3IobGV0IGkgb2YgYSl7Zm9yKGxldCBqIGluIGZpKXt2YXIgY2F0ZT1maVtqXS5zcGxpdCgnJiYnKTt2YXIgdGk9Y2F0ZVswXTtpZih0aT09aSl7Y2F0ZVs0XT1pbnB1dDtmaVtqXT1jYXRlLmpvaW4oJyYmJyk7YnJlYWs7fX19d3JpdGVGaWxlKCdgK3BhdGgrYCcsZmkuam9pbignQEAnKSsnQEAnKTtyZWZyZXNoUGFnZSgpOyd0b2FzdDovL+WujOaIkCEnXFxcIn1gXFxufSlcXG5cXG5cXG59ZWxzZXtcXG4gICAgZC5wdXNoKHtcXG4gICAgdGl0bGU6XFxcIuayoeaciei/veeVquOAguOAguOAglxcXCIsXFxuICAgIGRlc2M6XFxcIuivt+WFiOa3u+WKoOi/veeVquWGjeivle+8ge+8gVxcXCIsXFxuICAgIGNvbF90eXBlOlxcXCJ0ZXh0X2NlbnRlcl8xXFxcIlxcbn0pO1xcbn1cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLov73nlarliIbnu4RcIixcInBhdGhcIjpcInpmZnpcIixcInJ1bGVcIjpcInB1dFZhcignamwnLHBhcnNlSW50KGdldFZhcignamwnLCcwJyksMTApLTEpO1xcblxcbnZhciBpbnA9Z2V0VmFyKCd1cmwxJykuc3BsaXQoJyYmJyk7aW5wWzRdPWlucHV0O2lucD1pbnAuam9pbignJiYnKTtcXG5cXG52YXIgeHI9aW5wKydAQCcrZmV0Y2goJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHQnLHt9KTtcXG5cXG53cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHQnLHhyKTtcXG5cXG5yZWZyZXNoUGFnZShmYWxzZSk7XFxuXFxuJ3RvYXN0Oi8v6L+955Wq5oiQ5Yqf77yBJztcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcInNlbmRlY3J5cHRcIixcInBhdGhcIjpcInNlbmZ1bi5qc1wiLFwicnVsZVwiOlwiZnVuY3Rpb24gZGVjcnlwdCh1cmwsdmllLGNoKSB7XFxucmVxdWlyZSgnaHR0cHM6Ly9sZjYtY2RuLXRvcy5ieXRlY2RudHAuY29tL2Nkbi9leHBpcmUtMS1NL2NyeXB0by1qcy80LjAuMC9jcnlwdG8tanMubWluLmpzJyk7XFxuLy9ldmFsKGdldENyeXB0b0pTKCkpO1xcclxcbiAgICBsZXQgXzB4NDBmMzA4ID0gdmllO1xcclxcbiAgICBsZXQgXzB4MTk2ODllID0gY2g7XFxyXFxuICAgIGxldCBfMHg0MDA5MDQgPSBbXVxcclxcbiAgICAgICwgXzB4MmM0NDA3ID0gW11cXHJcXG4gICAgICAsIF8weDRjNGU0YiA9ICcnO1xcclxcbiAgICBmb3IgKHZhciBfMHgxYWM2NTMgPSAweDA7IF8weDFhYzY1MzwgXzB4MTk2ODllLmxlbmd0aDsgXzB4MWFjNjUzKyspIHtcXHJcXG4gICAgICAgXFxyXFxuICAgICAgICAgICAgXzB4NDAwOTA0LnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICAnaWQnOiBfMHgxOTY4OWVbXzB4MWFjNjUzXSxcXHJcXG4gICAgICAgICAgICAgICAgJ3RleHQnOiBfMHg0MGYzMDhbXzB4MWFjNjUzXVxcclxcbiAgICAgICAgICAgIH0pO1xcclxcbiAgICAgICBcXHJcXG4gICAgfVxcclxcbiAgICAgXzB4MmM0NDA3ID1fMHg0MDA5MDQuc29ydChmdW5jdGlvbih7J2lkJzogZH0seydpZCc6IGV9KXtyZXR1cm4gZC1lO30pO1xcclxcbiAgICBmb3IgKHZhciBfMHgxYWM2NTMgPSAwOyBfMHgxYWM2NTM8IF8weDJjNDQwNy5sZW5ndGg7IF8weDFhYzY1MysrKSB7XFxyXFxuICAgICAgICBfMHg0YzRlNGIgKz0gXzB4MmM0NDA3W18weDFhYzY1M10udGV4dDtcXHJcXG4gICAgfVxcclxcbiAgICBsZXQgXzB4OTc2ZjlmID0gQ3J5cHRvSlMuTUQ1KF8weDRjNGU0YisnZmF2bm93JykudG9TdHJpbmcoKTtcXHJcXG4gICAgbGV0IF8weDFjOGRiNCA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKF8weDk3NmY5Zi5zdWJzdHJpbmcoMTYpKTtcXHJcXG4gICAgbGV0IF8weDIyMDA5NyA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKF8weDk3NmY5Zi5zdWJzdHJpbmcoMCwgMTYpKTtcXHJcXG4gICAgbGV0IF8weDQ4YzZhYiA9IENyeXB0b0pTLkFFUy5kZWNyeXB0KHVybCwgXzB4MWM4ZGI0LCB7XFxyXFxuICAgICAgICAnaXYnOiBfMHgyMjAwOTcsXFxyXFxuICAgICAgICAnbW9kZSc6IENyeXB0b0pTLm1vZGUuQ0JDLFxcclxcbiAgICAgICAgJ3BhZGRpbmcnOiBDcnlwdG9KUy5wYWQuUGtjczdcXHJcXG4gICAgfSk7XFxyXFxuICAgIHJldHVybiBfMHg0OGM2YWIudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xcclxcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIueZu+W9lVwiLFwicGF0aFwiOlwiZGwuaHRtbFwiLFwicnVsZVwiOlwiXFxuc2V0UmVzdWx0KFt7XFxuICAgIGNvbF90eXBlOiBcXFwieDVfd2Vidmlld19zaW5nbGVcXFwiLFxcbiAgICB1cmw6IFxcXCJodHRwczovL2RpY2sueGZhbmkuY29tL3VzZXIvbG9naW4uaHRtbFxcXCIsXFxuICAgIGRlc2M6IFxcXCJmbG9hdCYmMTAwJVxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgZnlfYnJpZGdlX2FwcC53cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL2Nvb2tpZS50eHQnLCBmeV9icmlkZ2VfYXBwLmdldENvb2tpZSgnaHR0cHM6Ly9kaWNrLnhmYW5pLmNvbS91c2VyL2xvZ2luLmh0bWwnKSk7XFxuICAgICAgICB9KVxcbiAgICB9XFxufV0pXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkvJjphbfpqozor4FcIixcInBhdGhcIjpcInlrLmh0bWxcIixcInJ1bGVcIjpcIlxcbnNldFJlc3VsdChbe1xcbiAgICBjb2xfdHlwZTogXFxcIng1X3dlYnZpZXdfc2luZ2xlXFxcIixcXG4gICAgdXJsOiBNWV9VUkwsXFxuICAgIGRlc2M6IFxcXCJmbG9hdCYmMTAwJVxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxudmFyIGE9ZnlfYnJpZGdlX2FwcC5nZXRDb29raWUoJycpO1xcbmZ5X2JyaWRnZV9hcHAubG9nKGEpO1xcbiAgICAgICAgICAgIGZ5X2JyaWRnZV9hcHAud3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC95b2Nvb2tpZS50eHQnLCBhKTtcXG5cXG4gICAgICAgIH0pXFxuICAgIH1cXG59XSlcIn1dIiwiaWNvbiI6Imh0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9tb3ZpZS8xMTkuc3ZnIiwicHJveHkiOiIifQ==
Add Comment
Please, Sign In to add comment