Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@新番更新表*@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6ImpzOlxudmFyIHltPU1ZX1VSTC5pbmNsdWRlcygnaXFpeWkuJyk/cmVxdWVzdChNWV9VUkwse30pOmZldGNoKE1ZX1VSTCwge2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOlBDX1VBfX0pO1xudHJ5e1xuaWYoTVlfVVJMLmluY2x1ZGVzKCdiaWxpYmlsaScpKXtcbnZhciBkZXM9SlNPTi5wYXJzZSh5bS5zcGxpdCgnbmV3ZXN0RXBcIjonKVsxXS5zcGxpdCgnfScpWzBdKyd9JykuZGVzYztcbnRyeXtcbnZhciBlcD1KU09OLnBhcnNlKHltLnNwbGl0KCdcImVwTGlzdFwiOicpWzFdLnNwbGl0KCd9XScpWzBdKyd9XScpOyBcbn1jYXRjaChlKXtlcD1bXTt9XG5pZihlcC5sZW5ndGg9PTApZ3h6PTA7XG5lbHNle1xuZm9yKHZhciBpPWVwLmxlbmd0aC0xO2VwW2ldLmJhZGdlPT0n6aKE5ZGKJztpLS0pO1xudmFyIGd4ej1lcFtpXS50aXRsZTt9fVxufWNhdGNoKGUpe2d4ej1cIuabtOaWsOWGheWuueiOt+WPluWksei0pe+8gVwiO31cblxuXG50cnl7XG5pZihNWV9VUkwuaW5jbHVkZXMoJ2lxaXlpJykpe1xuLypcbnRyeXt2YXIgdj1KU09OLnBhcnNlKHltLnNwbGl0KCd2aWRlb0luZm9cIjonKVsxXS5zcGxpdCgnfScpWzBdKyd9Jyk7fWNhdGNoKGUpe3ZhciB2PXt9O3YuYWlkPXltLnNwbGl0KCdhbGJ1bUlkXCI6JylbMV0uc3BsaXQoJywnKVswXTt9dmk9SlNPTi5wYXJzZShyZXF1ZXN0KCdodHRwczovL3B1Yi5tLmlxaXlpLmNvbS9oNS9tYWluL3ZpZGVvTGlzdC9hbGJ1bS8/YWxidW1JZD0nK3YuYWlkKycmc2l6ZT0xNTAwJnBhZ2U9MSZuZWVkUHJldnVlPWZhbHNlJm5lZWRWaXBQcmV2dWU9ZmFsc2UnLHt9KSkuZGF0YTtpZih2aSE9Jycpe3Y9dmkudmlkZW9zO2d4ej12LnBvcCgpLnBkfWVsc2V7aT12O2lmKGkmJighaS52dHx8IWkudnQuaW5jbHVkZXMoJ+mihOWRiicpKSlneHo9aS5vcmRlcjt9XG4qL1xuXG52YXIgZ3h6PXltLm1hdGNoKC9sYXRlc3RPcmRlclwiLio/KFxcZCspLylbMV07XG59XG59Y2F0Y2goZSl7Z3h6PSfmnIDmlrDnirbmgIHojrflj5blpLHotKXvvIEnO31cbnRyeXtcbmlmKE1ZX1VSTC5pbmNsdWRlcygncXEnKSl7XG52YXIgaHRtPUpTT04ucGFyc2UoeW0uc3BsaXQoJ0NPVkVSX0lORk8gPSAnKVsxXS5zcGxpdCgndmFyICcpWzBdKTtcbnZhciBoPScnO1xudmFyIGd4ej0n56ysJytodG0ubm9tYWxfaWRzLmZpbHRlcihhPT57aWYoaD09NyYmYS5GPT0yKWg9MTtlbHNlIGg9YS5GO2lmKGg9PTJ8fGg9PTcpcmV0dXJuIGE7fSkubGVuZ3RoKyfor50nO1xuXG59fWNhdGNoKGUpe2d4ej1cIuabtOaWsOWGheWuueiOt+WPluWksei0pe+8gVwiO31cbnNldFJlc3VsdCgn5pu05paw6Iez77yaJytneHopOyIsInRpdGxlIjoi5paw55Wq5pu05paw6KGoKiIsImF1dGhvciI6IjE2MDYxNDIiLCJ1cmwiOiJoaWtlcjovL2VtcHR5I2Z5cGFnZSIsInZlcnNpb24iOjIyLCJjb2xfdHlwZSI6ImxvbmdfdGV4dCIsImNsYXNzX25hbWUiOiIiLCJ0eXBlIjoidG9vbCIsImNsYXNzX3VybCI6IiIsImFyZWFfbmFtZSI6IiIsImFyZWFfdXJsIjoiIiwic29ydF9uYW1lIjoiIiwieWVhcl9uYW1lIjoiIiwic29ydF91cmwiOiIiLCJ5ZWFyX3VybCI6IiIsImZpbmRfcnVsZSI6ImpzOi8vNTQxXG52YXIgcmVzID0ge307XG52YXIgZCA9IFtdO1xucHV0VmFyKFwiamxcIiwwKTtcbmZ1bmN0aW9uIHBpbihhLGIpe1xucmV0dXJuIChiPT0wPyfigJzigJzigJ3igJ0nOicnKSsnPGZvbnQgY29sb3I9XCIjZWY1YjljXCI+JythKyc8L2ZvbnQ+Jztcbn1cbnZhciBsYj1mZXRjaChcImhpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHRcIiwge30pO1xucHV0VmFyKFwibGJcIixsYik7XG52YXIgc2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO1xudHJ5e1xudmFyIGZpPUpTT04ucGFyc2UoZmV0Y2goc2Use30pKTtcbn1jYXRjaChlKXtmaT17fTt9XG5hPWdldFZhcignYXhlJyk7XG5pZihhPT1cIlwiKXthPVwi6L+955WqXCI7cHV0VmFyKFwiYXhlXCIsXCLov73nlapcIik7cHV0VmFyKFwic3RhXCIsZmkuY29sJiZmaS5jb2w9PTE/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/vvIEnYCxcbmNvbF90eXBlOid0ZXh0XzMnXG59KTt9XG5iPDImJmQucHVzaCh7Y29sX3R5cGU6J2xpbmUnfSk7XG5cbnZhciBtb2RlbD1bJzEnLCc0J107XG52YXIgd2ViPSdodHRwczovL2FwaS5iaWxpYmlsaS5jb20vcGdjL3NlYXNvbi9pbmRleC9yZXN1bHQ/c2Vhc29uX3ZlcnNpb249LTEmYXJlYT0tMSZpc19maW5pc2g9LTEmY29weXJpZ2h0PS0xJnNlYXNvbl9zdGF0dXM9LTEmc2Vhc29uX21vbnRoPS0xJnllYXI9LTEmc3R5bGVfaWQ9LTEmb3JkZXI9JytvcisnJnN0PTEmc29ydD0wJnBhZ2U9JytiKycmc2Vhc29uX3R5cGU9Jyttb2RlbFsoZ2V0VmFyKCdheGUnKT09J+eVquWJp+e0ouW8lSc/MDoxKV0rJyZwYWdlc2l6ZT0yMCZ0eXBlPTEnO1xudHJ5e1xudmFyIHltPUpTT04ucGFyc2UocmVxdWVzdCh3ZWIse30pKS5kYXRhLmxpc3Q7XG5mb3IodmFyIGkgaW4geW0pe1xudmFyIGJ0PXltW2ldLnRpdGxlO1xudmFyIGluZD15bVtpXS5pbmRleF9zaG93O1xuaW5kPWluZD8oaW5kKycgJyk6Jyc7XG52YXIgYnQ9bGIuaW5jbHVkZXMoeW1baV0ubGluayk/KGZpLmNvbCYmZmkuY29sPT0xPygn4q2Q77iPJytidCk6cGluKGJ0KSk6YnQ7XG5cbmQucHVzaCh7XG5cdHRpdGxlOmZpLmNvbCYmZmkuY29sPT0xP2J0Oign4oCc4oCc4oCd4oCdPHN0cm9uZz4nK2J0Kyc8L3N0cm9uZz4nKSxcbiAgZGVzYzpmaS5jb2wmJmZpLmNvbD09MT8oaW5kKTooJzxzdHJvbmc+JytpbmQrJzwvc3Ryb25nPuKAmOKAmOKAmeKAmTxmb250IGNvbG9yPVwicmVkXCI+Jyt5bVtpXS5vcmRlcisnPC9mb250PicpLFxuICBwaWNfdXJsOnltW2ldLmNvdmVyKydAUmVmZXJlcj1odHRwczovL2FwaS5iaWxpYmlsaS5jb20nLFxudXJsOnltW2ldLmxpbmsrJyMjJyt5bVtpXS50aXRsZSsnJiYnK3ltW2ldLmxpbmsrJyYmJyt5bVtpXS5jb3Zlcixcblx0Y29sX3R5cGU6IGZpLmNvbCYmZmkuY29sPT0xPydtb3ZpZV8zX21hcnF1ZWUnOidtb3ZpZV8xJ1xufSk7XG59fWNhdGNoKGUpe31cbn1lbHNlIGlmKGE9PSflvLrlir/mjqXmoaMnJiZiPT0xKXtcbmQucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7XG52YXIgamQ9Wyfph43no4XmjqjojZAnLCflvLrmoaPmjqjojZAnLCflvLrlir/mjqXmoaMnXTtcblxudmFyIGpkcz1bJy5zbGlkZXJfbmF2JiYubmF2X2xpbmsnLCcubW9kX2ZpZ3VyZSYmLmxpc3RfaXRlbScsJy5tb2RfYmQsM3x8Lm1vZF9maWd1cmUsMSYmLmxpc3RfaXRlbSddO1xudmFyIGR1PWdldFZhcignZHUnLGpkc1syXSk7XG5mb3IodmFyIGkgaW4gamQpe1xudmFyIHR0PSfigJzigJzigJ3igJ08Zm9udCBjb2xvcj1cImJsdWVcIj4nK2pkW2ldKyc8L2ZvbnQ+JztcblxuZC5wdXNoKHtcbnRpdGxlOmR1PT1qZHNbaV0/dHQ6amRbaV0sXG51cmw6J2hpa2VyOi8vZW1wdHkjJytqZHNbaV0rYEBsYXp5UnVsZT0uanM6dmFyIGk9aW5wdXQuc3BsaXQoJyMnKVsxXTtwdXRWYXIyKCdkdScsaSk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdgLFxuY29sX3R5cGU6J3RleHRfMydcbn0pO1xuXG59XG52YXIgdGVuPWZldGNoKCdodHRwczovL3YucXEuY29tL2NoYW5uZWwvY2FydG9vbicsIHtoZWFkZXJzOntcIlVzZXItQWdlbnRcIjpQQ19VQX19KTtcbnZhciBsZW49Jyc7XG5pZihkdT09amRzWzJdKXtcbnZhciBsZW49cGFyc2VEb21Gb3JBcnJheSh0ZW4sJy5tb2RfbGlzdGluZ3NfdGl0bGUmJi50aXRsZV9pdGVtJyk7fVxudmFyIGxlPXBhcnNlRG9tRm9yQXJyYXkodGVuLGR1KTtcblxuZm9yKHZhciBpIGluIGxlKXtcbnRyeXtcbnZhciB1cj1wYXJzZURvbUZvckh0bWwobGVbaV0sJ2EmJmhyZWYnKTtcbnZhciB0aT1wYXJzZURvbUZvckh0bWwobGVbaV0sJy50aXRsZV90ZXh0fHxhLDEmJlRleHQnKTtcbnRyeXt2YXIgcGk9cGFyc2VEb21Gb3JIdG1sKGxlW2ldLCdpbWcmJmx6X25leHR8fHNyYycpO31jYXRjaChlKXt2YXIgcGk9Jyc7fVxuXG50cnl7XG5pZihwaT09JycpXG52YXIgcGk9cGFyc2VEb21Gb3JIdG1sKGxlW2ldLCdhJiZkYXRhLWJnaW1hZ2UnKTt9Y2F0Y2goZSl7fVxucGk9cGkuaW5jbHVkZXMoJ2h0dHAnKT9waTooJ2h0dHBzOicrcGkpO1xudmFyIGRlPWxlbj8oJ+KAmOKAmOKAmeKAmTxmb250IGNvbG9yPVwicmVkXCI+JytwYXJzZURvbUZvckh0bWwobGVuW2ldLCcudGl0bGUmJlRleHQnKSsnPC9mb250PiA8c3Ryb25nPicrIHBhcnNlRG9tRm9ySHRtbChsZW5baV0sJy5kZXNjJiZUZXh0JykrJzwvc3Ryb25nPicrJ1xcbjxmb250IGNvbG9yPVwiYmx1ZVwiPicrcGFyc2VEb21Gb3JIdG1sKGxlW2ldLCcuZmlndXJlX2Rlc2MmJlRleHQnKSsnPC9mb250PicpOnBhcnNlRG9tRm9ySHRtbChsZVtpXSwnc3Bhbnx8LmZpZ3VyZV9jYXB0aW9uJiZUZXh0JykucmVwbGFjZSh0aSwnJyk7XG5kZT1sZW58fGR1PT1qZHNbMF0/ZGU6KCfigJjigJjigJnigJk8Zm9udCBjb2xvcj1cInJlZFwiPicrZGUrJzwvZm9udD4nKTtcbn1jYXRjaChlKXt9XG52YXIgdGl0PWxiLmluY2x1ZGVzKHVyKT9waW4odGkpOnRpO1xudGk9ZHU9PWpkc1swXT90aTooJ+KAnOKAnOKAneKAnTxzdHJvbmc+Jyt0aXQrJzwvc3Ryb25nPicpO1xuaWYodGkpXG5kLnB1c2goe1xuXHR0aXRsZTp0aSxcbiAgZGVzYzogZGUsXG4gIHBpY191cmw6cGksXG5cdHVybDp1cisnIyMnK3RpKycmJicrdXIrJyYmJytwaSxcblx0Y29sX3R5cGU6IGR1PT0nLnNsaWRlcl9uYXYmJi5uYXZfbGluayc/J3BpY18xJzonbW92aWVfMSdcbn0pO1xuXG59XG59ZWxzZSBpZihhPT0n6L+955WqJyYmYj09MSl7XG5kMT1bXSA7XG5kMj1bXTtcbmQzPVtdO1xuaWYobGIhPScnKXtcbmZ1bmN0aW9uIGZlbnp1KGFycix0YWcpe1xuICBcbiAgIGFyci5zb3J0KGZ1bmN0aW9uIHYoYSxiKXtcbiAgICAgICB2YXIgYT1hLnVybC5zcGxpdCgnIyMnKVsxXS5zcGxpdCgnJiYnKVs0XTtcbiAgICAgICBhPWE9PXVuZGVmaW5lZHx8YT09XCJcIj9cIuacquWRveWQjVwiOmE7XG4gICAgICAgdmFyIGI9Yi51cmwuc3BsaXQoJyMjJylbMV0uc3BsaXQoJyYmJylbNF07XG4gICAgICAgYj1iPT11bmRlZmluZWR8fGI9PVwiXCI/XCLmnKrlkb3lkI1cIjpiO1xuICAgICAgIHJldHVybiBiLWE7XG4gICB9KTtcbiAgIFxuICB2YXIgcnE9W107XG4gICB2YXIgZz1hcnIubWFwKChhLGIsYyk9PntcbiAgICAgICB2YXIgZj1hLnVybC5zcGxpdCgnIyMnKVsxXS5zcGxpdCgnJiYnKVs0XTtcbiAgICAgICBmPWY9PXVuZGVmaW5lZHx8Zj09XCJcIj9cIuacquWRveWQjVwiOmY7XG4gICBcbiAgICAgICBjPWMuZmlsdGVyKGU9PntcbiAgICAgICAgICAgdmFyIGUxPWUudXJsLnNwbGl0KCcjIycpWzFdLnNwbGl0KCcmJicpWzRdO1xuICAgICAgICAgICBlMT1lMT09dW5kZWZpbmVkfHxlMT09XCJcIj9cIuacquWRveWQjVwiOmUxO1xuICAgICAgICAgICBpZihmPT1lMSlyZXR1cm4gZTtcbiAgICAgICB9KS5tYXAoYT0+e2EuZXh0cmE9e2lkOnRhZytmK1wiaXRlbVwifTtyZXR1cm4gYTt9KTtcbiAgICAvLyAgIHB1dFZhcih0YWcrZixcIlwiKTtcbiAgXG4gICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgdGl0bGU6XCLigJzigJzigJ3igJ1cIitwaW4oZikrXCIg5YiG57uEXCIsXG4gICAgICAgICAgIHVybDpgaGlrZXI6Ly9lbXB0eSNub0xvYWRpbmcjQGxhenlSdWxlPS5qczp2YXIgdGY9XCJgKyh0YWcrZikrYFwiO3ZhciBhPWdldFZhcih0Zik7aWYoYT09XCJcIilwdXRWYXIodGYsMSk7ZWxzZSBwdXRWYXIodGYsXCJcIik7dmFyIGRlPVtdO2ZvcihsZXQgaSBvZiBgK0pTT04uc3RyaW5naWZ5KGMpK2Ape2lmKGE9PVwiXCIpYWRkSXRlbUFmdGVyKHRmLCBpKTtlbHNlIGRlbGV0ZUl0ZW0odGYrJ2l0ZW0nKTsvKmRlLnB1c2godGYrJ2l0ZW0nKTsqL31hPT1cIlwiP1widG9hc3Q6Ly/lt7LlsZXlvIDvvIFcIjpcInRvYXN0Oi8v5bey5YWz6Zet77yBXCI7YCxcbiAgICAgICAgICAgZXh0cmE6e2lkOnRhZytmfSxcbiAgICAgICAgICBjb2xfdHlwZTpcInRleHRfY2VudGVyXzFcIlxuICAgICAgIH07XG4gICB9KS5maWx0ZXIoKGEpPT57aWYoYj09MHx8IXJxLmpvaW4oXCIlI1wiKS5pbmNsdWRlcyhhLnRpdGxlKSl7cnEucHVzaChhLnRpdGxlKTtyZXR1cm4gYTt9fSk7XG4gICAvKlxuICAgIGlmKGdldFZhcih0YWcrbHNmKT09MSlcbiAgICAgICBmb3IobGV0IGkgb2YgbHNjKVxuICAgICAgICAgYWRkSXRlbUFmdGVyKHRhZytsc2YsIGkpO1xuICAgICAgICAgKi9cbiAgIHJldHVybiBnO1xufVxudmFyIHh4PWxiLnNwbGl0KCdAQCcpO1xuXG52YXIgdT14eC5tYXAoZnVuY3Rpb24oYSl7XG52YXIgYj1hLnNwbGl0KCcmJicpWzFdO1xuaWYoYiYmYi5pbmNsdWRlcygnaXFpeWknKSlyZXR1cm4ge3VybDpiLG9wdGlvbnM6e2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOk1PQklMRV9VQX19fTtcbmVsc2UgaWYoYiYmYi5pbmNsdWRlcygneW91a3UnKSlyZXR1cm4ge3VybDpiLG9wdGlvbnM6e2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOk1PQklMRV9VQSwnQ29va2llJzonY25hPTZJeWlHcnpLbDNrQ0FYQUUwMG9mM01Tbid9fX07ZWxzZXtyZXR1cm4ge3VybDpiLG9wdGlvbnM6e2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOlBDX1VBfX19O31cbn0pO1xudmFyIHk9YmF0Y2hGZXRjaCh1KTtcbmZvcih2YXIgayBpbiB4eCl7XG50cnl7XG52YXIgeD14eFtrXS5zcGxpdCgnJiYnKTtcbmlmKHhbMV0hPScnKXtcbi8qXG52YXIgeW09ZmV0Y2goeFsxXSwge2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOlBDX1VBfX0pO1xuKi9cbnZhciB5bT15W2tdO1xudHJ5e1xuaWYoeFsxXS5pbmNsdWRlcygnYmlsaWJpbGknKSl7XG52YXIgZGVzPSc8Zm9udCBjb2xvcj1cImJsdWVcIj4nK0pTT04ucGFyc2UoeW0uc3BsaXQoJ25ld2VzdEVwXCI6JylbMV0uc3BsaXQoJ30nKVswXSsnfScpLmRlc2MrJzwvZm9udD4nO1xudHJ5e1xudmFyIGVwPUpTT04ucGFyc2UoeW0uc3BsaXQoJ1wiZXBMaXN0XCI6JylbMV0uc3BsaXQoJ31dJylbMF0rJ31dJyk7IFxufWNhdGNoKGUpe2VwPVtdO31cbmlmKGVwLmxlbmd0aD09MClneHo9MDtcbmVsc2V7XG5mb3IodmFyIGk9ZXAubGVuZ3RoLTE7ZXBbaV0uYmFkZ2U9PSfpooTlkYonO2ktLSk7XG52YXIgZ3h6PVwi56ysXCIrZXBbaV0udGl0bGUrXCLor51cIjt9fVxufWNhdGNoKGUpe2d4ej0n5pyA5paw54q25oCB6I635Y+W5aSx6LSl77yBJzt9XG50cnl7XG5pZih4WzFdLmluY2x1ZGVzKCdxcScpKXtcbnZhciBodG09SlNPTi5wYXJzZSh5bS5zcGxpdCgnQ09WRVJfSU5GTyA9ICcpWzFdLnNwbGl0KCd2YXIgJylbMF0pO1xuaWYoaHRtLmNhdGVnb3J5X21hcC5pbmNsdWRlcygn5q2j54mHJykpe1xudmFyIGg9Jyc7XG52YXIgZ3h6PSfnrKwnK2h0bS5ub21hbF9pZHMuZmlsdGVyKChhKT0+e2lmKGg9PTcmJmEuRj09MiloPTE7ZWxzZSBoPWEuRjtpZihoPT0yfHxoPT03KXJldHVybiBhO30pLmxlbmd0aCsn6K+dJzt9XG5lbHNlIGd4ej0n56ysMOivnSc7XG5pZihneHo9PSfnrKww6K+dJyl7XG5kZXM9Jzxmb250IGNvbG9yPVwiYmx1ZVwiPicraHRtLnVwZGF0ZV9ub3RpZnlfZGVzYysnPC9mb250Pic7XG59XG59XG59Y2F0Y2goZSl7Z3h6PSfmnIDmlrDnirbmgIHojrflj5blpLHotKXvvIEnO31cblxudHJ5e1xuaWYoeFsxXS5pbmNsdWRlcygnaXFpeWknKSl7XG4vKlxudHJ5e1xudmFyIHY9SlNPTi5wYXJzZSh5bS5zcGxpdCgndmlkZW9zXCI6JylbMV0uc3BsaXQoJ31dJylbMF0rJ31dJyk7fWNhdGNoKGUpe3ZhciB2PUpTT04ucGFyc2UoJ1snK3ltLnNwbGl0KCd2aWRlb0luZm9cIjonKVsxXS5zcGxpdCgnfScpWzBdKyd9XScpO31cbmZvcih2YXIgaSBvZiB2KVxuaWYoIWkudnR8fCFpLnZ0LmluY2x1ZGVzKCfpooTlkYonKSlneHo9aS5vcmRlcjtcblxuXG50cnl7dmFyIHY9SlNPTi5wYXJzZSh5bS5zcGxpdCgndmlkZW9JbmZvXCI6JylbMV0uc3BsaXQoJ30nKVswXSsnfScpO31jYXRjaChlKXt2YXIgdj17fTt2LmFpZD15bS5zcGxpdCgnYWxidW1JZFwiOicpWzFdLnNwbGl0KCcsJylbMF07fXZpPUpTT04ucGFyc2UocmVxdWVzdCgnaHR0cHM6Ly9wdWIubS5pcWl5aS5jb20vaDUvbWFpbi92aWRlb0xpc3QvYWxidW0vP2FsYnVtSWQ9Jyt2LmFpZCsnJnNpemU9MTUwMCZwYWdlPTEmbmVlZFByZXZ1ZT1mYWxzZSZuZWVkVmlwUHJldnVlPWZhbHNlJyx7fSkpLmRhdGE7aWYodmkhPScnKXt2PXZpLnZpZGVvcztneHo9di5wb3AoKS5wZH1lbHNle2k9djtpZihpJiYoIWkudnR8fCFpLnZ0LmluY2x1ZGVzKCfpooTlkYonKSkpZ3h6PWkub3JkZXI7fVxuKi9cblxudmFyIGd4ej1cIuesrFwiK3ltLm1hdGNoKC9sYXRlc3RPcmRlclwiLio/KFxcZCspLylbMV0rXCLor51cIjtcbn1cbn1jYXRjaChlKXtneHo9J+acgOaWsOeKtuaAgeiOt+WPluWksei0pe+8gSc7fVxuXG50cnl7XG5pZih4WzFdLmluY2x1ZGVzKCd5b3VrdScpKXtcbnZhciBneHo9XCLnrKxcIit5bS5tYXRjaCgvZXBpc29kZUxhc3RcIi4qPyhcXGQrKS8pWzFdK1wi6K+dXCI7XG59XG5cbn1jYXRjaChlKXtneHo9J+acgOaWsOeKtuaAgeiOt+WPluWksei0pe+8gSc7fVxuXG52YXIgcGljPXhbMl0uc3BsaXQoJy8nKTtcbmlmKHBpY1syXT09J3B1dWkucXBpYy5jbicpeFsyXT1waWMuc2xpY2UoMCwtMSkuam9pbignLycpKycvMCc7XG5cbmlmKGd4ej09J+acgOaWsOeKtuaAgeiOt+WPluWksei0pe+8gScpe1xuZDIucHVzaCh7XG5cdHRpdGxlOiBnZXRWYXIoJ3N0YScpPT0xP3hbMF06KCfigJzigJzigJ3igJ08Zm9udCBjb2xvcj1cImdyZXlcIj4nK3hbMF0rJzwvZm9udD4nKSxcbiAgcGljX3VybDogeFsyXSsoeFsxXS5pbmNsdWRlcygnYmlsaWJpbGknKT8nQFJlZmVyZXI9aHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJzooeFsxXS5pbmNsdWRlcygnaXFpeWknKT8nQFJlZmVyZXI9aHR0cHM6Ly93d3cuaXFpeWkuY29tJzonJykpLFxuZGVzYzpnZXRWYXIoJ3N0YScpPT0xPyh4WzNdJiZ4WzNdIT0nJz8oJ+ingueci+iHsyAnK3hbM10pOign5pyq6KeC55yLJykpOigoeFszXSYmeFszXSE9Jyc/KCfop4LnnIvoh7Mg4oCY4oCYJyt4WzNdKyfigJnigJknKTooJ+KAmOKAmOacquingueci+KAmeKAmScpKSsnXFxu5pu05paw6IezIDxmb250IGNvbG9yPVwicmVkXCI+JytneHorJzwvZm9udD4nKSxcblx0dXJsOnhbMV0rJyMjJyt4eFtrXSsnIyMnLFxuXHRjb2xfdHlwZTooIGdldFZhcignc3RhJyk9PTE/J21vdmllXzNfbWFycXVlZSc6J21vdmllXzFfdmVydGljYWxfcGljJylcbn0pO1xufWVsc2V7XG5pZih4WzNdJiZ4WzNdLm1hdGNoKC/nrKwuKj/or50vKT09bnVsbCl4WzNdPVwi56ysXCIreFszXStcIuivnVwiO1xuaWYoeFszXSE9Z3h6KVxuZDMucHVzaCh7XG5cdHRpdGxlOiBnZXRWYXIoJ3N0YScpPT0xP3hbMF06cGluKHhbMF0sMCksXG4gIHBpY191cmw6IHhbMl0rKHhbMV0uaW5jbHVkZXMoJ2JpbGliaWxpJyk/J0BSZWZlcmVyPWh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbSc6JycpLFxuZGVzYzpnZXRWYXIoJ3N0YScpPT0xPyh4WzNdJiZ4WzNdIT1cIlwiPygn6KeC55yL6IezICcreFszXSk6KCfmnKrop4LnnIsnKSk6KCh4WzNdJiZ4WzNdIT1cIlwiPygn6KeC55yL6IezICcrKHhbM10hPWd4ej8oJ+KAnOKAnCcreFszXSsn4oCd4oCdJyk6KCfigJjigJgnK3hbM10rJ+KAmeKAmScpKSk6KGd4ej09J+esrDDor50nfHxneHo9PTA/ZGVzOifigJjigJjmnKrop4LnnIvigJnigJknKSkrJ1xcbuabtOaWsOiHsyAnKyh4WzNdJiZ4WzNdIT1cIlwiJiZ4WzNdIT1neHo/KCfigJzigJwnK2d4eisn4oCd4oCdJyk6KCfigJjigJgnK2d4eisn4oCZ4oCZJykpKSxcblx0dXJsOnhbMV0rJyMjJyt4eFtrXSsnIyMnLFxuXHRjb2xfdHlwZTogKCBnZXRWYXIoJ3N0YScpPT0xPydtb3ZpZV8zX21hcnF1ZWUnOidtb3ZpZV8xX3ZlcnRpY2FsX3BpYycpXG59KTtcbmVsc2VcbmQxLnB1c2goe1xuXHR0aXRsZTogeFswXSxcbiAgcGljX3VybDogeFsyXSsoeFsxXS5pbmNsdWRlcygnYmlsaWJpbGknKT8nQFJlZmVyZXI9aHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJzonJyksXG5kZXNjOmdldFZhcignc3RhJyk9PTE/KCfop4LnnIvoh7MgJyt4WzNdKTooKHhbM10mJnhbM10hPVwiXCI/KCfop4LnnIvoh7MgJysoeFszXSE9Z3h6Pygn4oCc4oCcJyt4WzNdKyfigJ3igJ0nKTooJ+KAmOKAmCcreFszXSsn4oCZ4oCZJykpKTooJ+KAmOKAmOacquingueci+KAmeKAmScpKSsnXFxu5pu05paw6IezICcrKHhbM10mJnhbM10hPVwiXCImJnhbM10hPWd4ej8oJ+KAnOKAnCcrZ3h6KyfigJ3igJ0nKTooJ+KAmOKAmCcrZ3h6KyfigJnigJknKSkpLFxuXHR1cmw6eFsxXSsnIyMnK3h4W2tdKycjIycsXG5cdGNvbF90eXBlOiAoIGdldFZhcignc3RhJyk9PTE/J21vdmllXzNfbWFycXVlZSc6J21vdmllXzFfdmVydGljYWxfcGljJylcbn0pO1xufVxufVxufWNhdGNoKGUpe31cbn1cbmlmKGdldFZhcignc3RhJyk9PTEpe1xuLypcbmxvZyhkMyk7XG5sb2coZmVuenUoZDMpKTtcbiovXG5pZihkMSE9JycpXG5kMT1be1xudGl0bGU6J+KtkO+4j+S7peS4i+eVquWJp+acquacieabtOaWsDonLFxuY29sX3R5cGU6J3RleHRfMSdcbn1dLmNvbmNhdChmaS5meiYmZmkuZno9PTE/ZmVuenUoZDEsXCLmnKrmm7TmlrBcIik6ZDEpO1xuXG5pZihkMyE9JycpXG5kMz1be1xudGl0bGU6J+KtkO+4j+S7peS4i+eVquWJp+W+heecizonLFxuY29sX3R5cGU6J3RleHRfMSdcbn1dLmNvbmNhdChmaS5meiYmZmkuZno9PTE/ZmVuenUoZDMsXCLlt7Lmm7TmlrBcIik6ZDMpO1xuXG5pZihkMiE9JycpXG5kMj1be1xudGl0bGU6J+KtkO+4j+S7peS4i+eVquWJp+iOt+WPluabtOaWsOWksei0pTonLFxuY29sX3R5cGU6J3RleHRfMSdcbn1dLmNvbmNhdChmaS5meiYmZmkuZno9PTE/ZmVuenUoZDIsXCLlpLHotKVcIik6ZDIpO1xuXG5kPWQuY29uY2F0KGQzLGQxLGQyKTtcbn1lbHNle1xuICAgIHZhciBkZD1kMy5jb25jYXQoZDEsZDIpO1xuICAgIGQ9ZC5jb25jYXQoZmkuZnomJmZpLmZ6PT0xP2Zlbnp1KGRkLFwi5YWo6YOoXCIpOmRkKTtcbn1cblxuXG59ZWxzZVxuZC5wdXNoKHtcblx0dGl0bGU6J+KAnOKAnOi/mOayoeaciei/veeVqu+8geKAneKAnScsXG51cmw6YGhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOnJlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liLfmlrDlrozmr5XvvIEnYCxcbmRlc2M6J+eCueWHu+WIt+aWsCcsXG5cblx0Y29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xufSk7XG5cbn1lbHNlIGlmKGI9PTEpe1xudmFyIHN0PWE9PTc/Jyc6J+KAnOKAnOKAneKAnTxmb250IGNvbG9yPVwicmVkXCI+KzwvZm9udD4gJztcbnZhciBjcz0wO1xudmFyIG49YT09Nz8n5piO5pelICc6KGE9PTY/J+S7iuaXpSAnOifmmKjml6UgJyk7XG4vL2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbS9hbmltZS90aW1lbGluZVxudmFywqBoPW5ld8KgRGF0ZSgpLmdldEhvdXJzKCk7XG52YXIgbT1uZXfCoERhdGUoKS5nZXRNaW51dGVzKCk7XG52YXIgc2k9aCo2MCttO1xuXG52YXLCoHkxPWZldGNoKCdodHRwczovL2Jhbmd1bWkuYmlsaWJpbGkuY29tL3dlYl9hcGkvdGltZWxpbmVfZ2xvYmFsJyx7fSk7XG52YXIgeW0xPUpTT04ucGFyc2UoeTEpLnJlc3VsdFthXS5zZWFzb25zO1xudmFyIHkyPWZldGNoKCdodHRwczovL2Jhbmd1bWkuYmlsaWJpbGkuY29tL3dlYl9hcGkvdGltZWxpbmVfY24nLHt9KTtcbnZhciB5bTI9SlNPTi5wYXJzZSh5MikucmVzdWx0W2FdLnNlYXNvbnM7XG52YXIgeT15MSt5MjtcblxudHJ5e1xuLy/lkIjlubbmjpLluo/lvIDlp4tcblxudmFyIHltPXltMS5jb25jYXQoeW0yKTtcblxudmFyIHRlbj1mZXRjaCgnaHR0cHM6Ly92LnFxLmNvbS9jaGFubmVsL2NhcnRvb24nLCB7aGVhZGVyczp7XCJVc2VyLUFnZW50XCI6UENfVUF9fSk7XG52YXIgeW0zPVtdO1xudmFyIHcgPSBuZXcgRGF0ZSgpLmdldERheSgpO1xudmFyIHZlPXc9PTA/Njoody0xKTtcbnZlPWE9PTY/dmU6KGE9PTU/KHZlLTEpOih2ZSsxKSk7XG52ZT12ZT09Nz8wOih2ZT09LTE/Njp2ZSk7XG52YXIgbGVuPXBhcnNlRG9tRm9yQXJyYXkodGVuLCcubW9kX2JkLDImJi5tb2RfZmlndXJlLCcrKHZlKzEpKycmJi5saXN0X2l0ZW0nKTtcblxuXG52YXIgdXI9bGVuLm1hcChhPT57dmFyIGJ0PXBhcnNlRG9tRm9ySHRtbChhLCdhLDEmJnRpdGxlJyk7XG52YXIgdXp6PXBhcnNlRG9tRm9ySHRtbChhLCcuZmlndXJlX2NhcHRpb24mJlRleHQnKTtpZih5LmluZGV4T2YoYnQucmVwbGFjZSgv56ysW1xcU10qP+Wtoy9nLCcnKSk9PS0xJiYhdXp6fHx1enouc2VhcmNoKC/lhah85a6M57uTLyk9PS0xKXJldHVybiB7dXJsOnBhcnNlRG9tKGEsJ2EmJmhyZWYnKX07ZWxzZSByZXR1cm4ge3VybDonJ307fSk7XG4vL3B1dFZhcigndXInLEpTT04uc3RyaW5naWZ5KHVyKSk7XG5cbnZhciBodD1iYXRjaEZldGNoKHVyKTtcblxuXG5mb3IodmFyIGkgaW4gbGVuKXtcbmlmKGh0W2ldIT0nJyl7XG52YXIgYnQ9cGFyc2VEb21Gb3JIdG1sKGxlbltpXSwnYSwxJiZ0aXRsZScpO1xudmFyIHV6ej1wYXJzZURvbUZvckh0bWwobGVuW2ldLCcuZmlndXJlX2NhcHRpb24mJlRleHQnKTtcblxudmFyIHVyPXBhcnNlRG9tKGxlbltpXSwnYSYmaHJlZicpO1xudHJ5e1xudmFyIGh0bT1KU09OLnBhcnNlKGh0W2ldLnNwbGl0KCdDT1ZFUl9JTkZPID0gJylbMV0uc3BsaXQoJ3ZhciAnKVswXSk7XG52YXIgdD1odG0udXBkYXRlX25vdGlmeV9kZXNjO1xudmFyIGw9aHRtLm5vbWFsX2lkcztcbn1jYXRjaChlKXt9XG5pZighdHx8dC5zZWFyY2goL+WFqHzlroznu5MvKT09LTEpe1xudmFyIHV6PTA7dmFyIGY9Jyc7XG5mb3IodmFyIGpzIGluIGwpe2lmKGY9PTcmJmxbanNdLkY9PTIpZj0xO2Vsc2UgZj1sW2pzXS5GO2lmKGY9PTJ8fGY9PTcpe3V6Kys7fX1cblxudHJ5e1xudmFyIHVwZD0n5pyq55+lJztcbnVwZD10LnJlcGxhY2UoLyhcXGQqKeeCuShcXGQqKeWIhnswLDF9L2csJyQxOiQyJykubWF0Y2goL1xcZHsxLDJ977yaXFxkezJ9fFxcZHsxLDJ9OlxcZHsyfXxcXGR7MSwyfSg/PeeCuSl8XFxkezEsMn0oPz06KS9nKVswXTtcbnVwZD11cGQuaW5jbHVkZXMoJ++8micpP3VwZC5yZXBsYWNlKCfvvJonLCc6Jyk6dXBkO1xudXBkPXVwZC5pbmNsdWRlcygnOicpP3VwZDoodXBkKyc6MDAnKTtcblxudmFyIHNpaT1wYXJzZUludCh1cGQuc3BsaXQoJzonKVswXSwxMCkqNjArcGFyc2VJbnQodXBkLnNwbGl0KCc6JylbMV0sMTApO1xufWNhdGNoKGUpe3ZhciB1cGQ9J+acquefpSc7fVxuXG5pZih1cGQhPSfmnKrnn6UnKXtcblxuaWYoKGE9PTYmJnNpPHNpaSl8fGE9PTcpdXorKztcblxueW0zLnB1c2goe3RpdGxlOmJ0LFxucHViX3RpbWU6dXBkLFxuc3F1YXJlX2NvdmVyOnBhcnNlRG9tRm9ySHRtbChsZW5baV0sJ2ltZyYmbHpfbmV4dCcpLFxucHViX2luZGV4OifnrKwnK3V6Kyfor50nLFxudXJsOnVyXG59KTt9XG59XG59XG59XG59Y2F0Y2goZSl7eW0zPVtdO31cbnltPXltLmNvbmNhdCh5bTMpO1xuXG55bT15bS5zb3J0KGZ1bmN0aW9uIHYoYSxiKXtcblxudmFyIGFhPWEucHViX3RpbWU7XG5cbnZhciBjPXBhcnNlSW50KGFhLnNwbGl0KCc6JylbMF0sMTApKjYwK3BhcnNlSW50KGFhLnNwbGl0KCc6JylbMV0sMTApO1xudmFyIGJiPWIucHViX3RpbWU7XG52YXIgZD1wYXJzZUludChiYi5zcGxpdCgnOicpWzBdLDEwKSo2MCtwYXJzZUludChiYi5zcGxpdCgnOicpWzFdLDEwKTtcblxucmV0dXJuIGMtZDtcbn0pO1xuXG4vL2QucHVzaCh7dGl0bGU6eW19KTtcbi8v5ZCI5bm25o6S5bqP57uT5p2fXG5cblxuXG5oPWg8MTA/KCcwJytoKTpoO1xubT1tPDEwPygnMCcrbSk6bTtcblxuZm9yKHZhcsKgacKgaW7CoHltKXtcblxudmFyIHRpPXltW2ldLnB1Yl90aW1lO1xuXG5pZihhPT02KXtcbnZhciBzaWk9cGFyc2VJbnQodGkuc3BsaXQoJzonKVswXSwxMCkqNjArcGFyc2VJbnQodGkuc3BsaXQoJzonKVsxXSwxMCk7XG5cblxuaWYoc2k8c2lpJiZjcz09MCl7XG5kLnB1c2goe3RpdGxlOiflvZPliY3ml7bpl7TvvJrigJzigJwnK2grJzonK20rJ+KAneKAnScsXG51cmw6YGhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOnJlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liLfmlrDlrozmr5XvvIEnYCxcbmRlc2M6J+eCueWHu+WIt+aWsCcsXG5jb2xfdHlwZTondGV4dF9jZW50ZXJfMSdcbn0pO1xuY3MrKztcbnN0PScnO1xufVxufVxuXG52YXIgbm49c3Q9PScnPyfljbPlsIbmm7TmlrAgJzon5bey5pu05paw6IezICc7XG52YXIgdT15bVtpXS51cmw7XG52YXIgYnQ9eW1baV0udGl0bGU7XG4vL2J0PWJ0LnNsaWNlKDAsMjUpKyhidC5sZW5ndGg+MjU/Jy4uLic6JycpO1xudmFyIHpmPWxiLmluY2x1ZGVzKHUpP3BpbihidCxzdD09Jyc/MDoxKTpidDtcbnZhciBkZT0nPHN0cm9uZz4nK24rJzwvc3Ryb25nPuKAmOKAmOKAmeKAmTxmb250IGNvbG9yPVwiI2ZmODAwMFwiPiAnK3RpKycgPC9mb250PuabtOaWsCc7XG5zdDE9eW1baV0ucHViX2luZGV4P3N0OicnO1xudmFyIGRyPXltW2ldLmRlbGF5X3JlYXNvbjtcbmQucHVzaCh7XG5cdHRpdGxlOiBzdDErJ+KAnOKAnOKAneKAnTxzdHJvbmc+Jyt6ZisnPC9zdHJvbmc+JysnXFxuJysoeW1baV0ucHViX2luZGV4PyhubisnPGZvbnQgY29sb3I9XCJibHVlXCI+JysoeW1baV0ucHViX2luZGV4KSsnPC9mb250PicpOignPGZvbnQgY29sb3I9XCJncmV5XCI+Jysn5pys5ZGo5YGc5pu0ICcreW1baV0uZGVsYXlfaW5kZXgrJzwvZm9udD4nKSksXG4gIGRlc2M6IWRyP2RlOignPGRlbD4nK2RlKyc8L2RlbD4nKSxcbiAgcGljX3VybDogeW1baV0uc3F1YXJlX2NvdmVyKyh1LmluY2x1ZGVzKCdiaWxpYmlsaScpPydAUmVmZXJlcj1odHRwczovL3d3dy5iaWxpYmlsaS5jb20nOicnKSxcblx0dXJsOnUrJyMjJyt5bVtpXS50aXRsZSsnJiYnK3UrJyYmJyt5bVtpXS5zcXVhcmVfY292ZXIrJyMjJyxcblx0Y29sX3R5cGU6ICdtb3ZpZV8xJ1xufSk7XG5cbmlmKGE9PTYmJnNpPj1zaWkmJmk9PXltLmxlbmd0aC0xKXtcbmQucHVzaCh7dGl0bGU6J+W9k+WJjeaXtumXtO+8muKAnOKAnCcraCsnOicrbSsn4oCd4oCdJyxcbnVybDpgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIt+aWsOWujOavle+8gSdgLFxuZGVzYzon5LuK5pel55Wq5Ymn5bey5YWo6YOo5pu05paw77yM5oSf6LCi5L2/55So77yBJyxcbmNvbF90eXBlOid0ZXh0X2NlbnRlcl8xJ1xufSk7XG59XG5cbn1cbn1cbnJlcy5kYXRhID0gZDtcbnNldEhvbWVSZXN1bHQocmVzKTtcbmQ9ZC5maWx0ZXIoYT0+e1xudHJ5e1xuICAgIGlmKGEuZXh0cmEuaWQpcmV0dXJuIGE7XG59XG5jYXRjaChlKXt9XG59KTtcblxuZm9yKGxldCBpIG9mIGQpe1xuICAgIGlmKGdldFZhcihpLmV4dHJhLmlkKT09MSl7XG4gICAgICAgIHB1dFZhcihpLmV4dHJhLmlkLFwiXCIpO1xuICAgIGV2YWwoaS51cmwuc3BsaXQoXCJAbGF6eVJ1bGU9LmpzOlwiKVsxXSk7XG59XG59Iiwic2VhcmNoX3VybCI6Imhpa2VyOi8vZW1wdHkjKiojZnlwYWdlIiwiZ3JvdXAiOiIx5bel5YW3Iiwic2VhcmNoRmluZCI6ImpzOi8vMjI5XG52YXIgcmVzID0ge307XG52YXIgZCA9IFtdO1xudmFyIG5hPU1ZX1VSTC5zcGxpdCgnIycpWzFdO1xudmFyIHBhZ2U9TVlfVVJMLnNwbGl0KCcjJylbMl07XG52YXIgbGIxPWZldGNoKFwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFwiLCB7fSk7XG5pZihwYWdlPT0xKXtcbnZhciB4PVsnbWVkaWFfYmFuZ3VtaScsJ21lZGlhX2Z0J107XG52YXIgeT1bXTtcbnRyeXtcbmZvcih2YXIgamo9MDtqajx4Lmxlbmd0aDtqaisrKXtcbnZhciB5bTE9SlNPTi5wYXJzZShmZXRjaCgnaHR0cHM6Ly9hcGkuYmlsaWJpbGkuY29tL3gvd2ViLWludGVyZmFjZS9zZWFyY2gvdHlwZT9rZXl3b3JkPScrbmErJyZwYWdlPTEmc2VhcmNoX3R5cGU9Jyt4W2pqXSsnJm9yZGVyPXRvdGFscmFuayZwYWdlc2l6ZT0yMCcse30pKS5kYXRhLm51bVBhZ2VzO1xuZm9yKHZhciBqPTEsZz0wO2o8PXltMSYmajw0O2orKyl7XG52YXIgeTE9SlNPTi5wYXJzZShmZXRjaCgnaHR0cHM6Ly9hcGkuYmlsaWJpbGkuY29tL3gvd2ViLWludGVyZmFjZS9zZWFyY2gvdHlwZT9rZXl3b3JkPScrbmErJyZwYWdlPScraisnJnNlYXJjaF90eXBlPScreFtqal0rJyZvcmRlcj10b3RhbHJhbmsmcGFnZXNpemU9MjAnLHt9KSkuZGF0YS5yZXN1bHQ7XG52YXIgeT15LmNvbmNhdCh5MSk7XG52YXIgSnk9SlNPTi5zdHJpbmdpZnkoeSk7XG59fVxuZm9yKHZhciBpPTA7eSE9bnVsbCYmaTx5Lmxlbmd0aDtpKyspe1xudmFyIHRpPXlbaV0udGl0bGUucmVwbGFjZSgvPGVtIGNsYXNzPVwia2V5d29yZFwiPnw8XFwvZW0+L2csJycpO1xuaWYoKEp5LmluY2x1ZGVzKG5hKSYmdGkuaW5jbHVkZXMobmEpKXx8IUp5LmluY2x1ZGVzKG5hKSl7XG52YXIgemY9bGIxLmluY2x1ZGVzKCdzcycreVtpXS5zZWFzb25faWQpPyc8c21hbGw+5oiR55qE6L+955WqIDwvc21hbGw+JzonJztcbmQucHVzaCh7XG50aXRsZTp6Zit0aSxcbmltZzp5W2ldLmNvdmVyKydAUmVmZXJlcj1odHRwczovL2FwaS5iaWxpYmlsaS5jb20nLFxuZGVzYzp5W2ldLnN0eWxlcyxcbmNvbnRlbnQ6eVtpXS5kZXNjLFxudXJsOnlbaV0uZ290b191cmwrJyMjJyt0aSsnJiZodHRwczovL3d3dy5iaWxpYmlsaS5jb20vYmFuZ3VtaS9wbGF5L3NzJyt5W2ldLnNlYXNvbl9pZCsnJiYnK3lbaV0uY292ZXIrJyMjJyxcbn0pO1xuZysrO1xufVxuaWYoZz09OCl7aj02O2JyZWFrO31cbn19Y2F0Y2goZSl7fVxudHJ5e1xudmFyIHltPWZldGNoKCdodHRwczovL3YucXEuY29tL3gvc2VhcmNoLz9xPScrbmEse2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOlBDX1VBfX0pO1xucHV0VmFyKCd0eCcseW0pO1xudmFyIGxlbj1wYXJzZURvbUZvckFycmF5KHltLCdib2R5JiYuX2luZm9zJyk7XG4vKlxudHJ5e1xudmFyIGxlbjE9cGFyc2VEb21Gb3JBcnJheSh5bSwnLmZpZ3VyZXNfbGlzdCYmLmxpc3RfaXRlbScpO1xubGVuPWxlbi5jb25jYXQobGVuMSk7XG59Y2F0Y2goZSl7fVxuKi9cbmZvcih2YXIgaiBpbiBsZW4pe1xudHJ5e3ZhciBkZXM9cGFyc2VEb21Gb3JIdG1sKGxlbltqXSwnLmZpZ3VyZV9jYXB0aW9ufHwucmVzdWx0X3Njb3JlfHwuZmlndXJlX2Rlc2MmJlRleHQnKTt9Y2F0Y2goZSl7ZGVzPScnO31cbi8qXG50cnl7XG5mPWRlcy5zcGxpdCgnOicpLm1hcChOdW1iZXIpO1xudmFyIHRpbWU9ZlswXSozNjAwK2ZbMV0qNjArZlsyXTtcbn1jYXRjaChlKXt2YXIgZGVzPScnO31cbiovXG50cnl7dmFyIHlnPXBhcnNlRG9tRm9ySHRtbChsZW5bal0sJy5tYXJrX3YmJmltZyYmYWx0Jyk7fWNhdGNoKGUpe3ZhciB5Zz0n5rKh5pyJJzt9XG50cnl7XG52YXIgdXI9cGFyc2VEb21Gb3JIdG1sKGxlbltqXSwnYSYmaHJlZicpO1xuaWYodXIuaW5jbHVkZXMoJ3NlYXJjaF9yZWRpcmVjdCcpJiZ1ci5pbmNsdWRlcygndXJsPScpJiYodXIuaW5jbHVkZXMoJ2lxaXlpLicpfHx1ci5pbmNsdWRlcygneW91a3UuJykpKXVyPWRlY29kZVVSSUNvbXBvbmVudCh1ci5zcGxpdCgndXJsPScpWzFdKTtcbmVsc2UgaWYodXIuaW5jbHVkZXMoJ3NlYXJjaF9yZWRpcmVjdCcpKXVyPScnO1xuaWYoIXlnLmluY2x1ZGVzKCfpooTlkYonKSYmdXIhPScnKXtcbnRyeXt2YXIgY29uPXBhcnNlRG9tRm9ySHRtbChsZW5bal0sJy5kZXNjX3RleHQmJlRleHQnKTt9Y2F0Y2goZSl7dmFyIGNvbj0nJzt9XG52YXIgYnQ9cGFyc2VEb21Gb3JIdG1sKGxlbltqXSwnaW1nJiZhbHQnKTtcbnZhciBwaT1wYXJzZURvbUZvckh0bWwobGVuW2pdLCdpbWcmJnNyYycpO1xudmFyIHpmPWxiMS5pbmNsdWRlcyh1cik/JzxzbWFsbD7miJHnmoTov73nlaogPC9zbWFsbD4nOicnO1xuZC5wdXNoKHtcblx0dGl0bGU6IHpmK2J0LCBcbmRlc2M6ZGVzLFxuY29udGVudDpjb24sXG4gIHBpY191cmw6cGksXG5cdHVybDp1cisnIyMnK2J0KycmJicrdXIrJyYmJytwaSsnIyMnLFxufSk7XG59fWNhdGNoKGUpe31cbn1cbn1jYXRjaChlKXtkLnB1c2goe1xuXHR0aXRsZTogJ+iFvuiur+aQnOe0oumUmeivrycgfSk7fVxuXG50cnl7XG52YXIgeW09ZmV0Y2goJ2h0dHBzOi8vc28uaXFpeWkuY29tL3NvL3FfJytuYSx7aGVhZGVyczp7XCJVc2VyLUFnZW50XCI6UENfVUF9fSk7XG5wdXRWYXIoJ2lxaXlpJyx5bSk7XG52YXIgcmVzdT1wYXJzZURvbUZvckFycmF5KHltLCdib2R5JiYucXktc2VhcmNoLXJlc3VsdC1pdGVtJyk7XG5cbmZvcih2YXIgaSBvZiByZXN1KXtcbnRyeXtcblxudmFyIHBkPXBhcnNlRG9tRm9ySHRtbChpLCcuaXRlbS10eXBlJiZUZXh0Jyk7XG52YXIgcGQyPXBhcnNlRG9tRm9ySHRtbChpLCcucGxheWVyLW5hbWUmJlRleHQnKTtcblxuaWYocGQubWF0Y2goL+eUteinhuWJp3znlLXlvbF85Yqo5ryrfOe7vOiJunznn6Xor4YvZylbMF0hPScnJiZwZDIubWF0Y2goL+eIseWlh+iJunzohb7orq985LyY6YW3L2cpWzBdIT0nJyl7XG5cbnZhciBidD1wYXJzZURvbUZvckh0bWwoaSwnYSYmdGl0bGUnKTtcbnZhciBwaT1wYXJzZURvbShpLCdpbWcmJnNyYycpO1xudmFyIHVyPXBhcnNlRG9tKGksJ2EmJmhyZWYnKS5zcGxpdCgnPycpWzBdO1xudmFyIHpmPWxiMS5pbmNsdWRlcyh1cik/JzxzbWFsbD7miJHnmoTov73nlaogPC9zbWFsbD4nOicnO1xuXG52YXIgZGVzPXBhcnNlRG9tRm9ySHRtbChpLCcucXktbW9kLWxhYmVsJiZUZXh0Jyk7XG52YXIgY29uPXBhcnNlRG9tRm9ySHRtbChpLCcuaW5mby1kZXMsMnx8LmluZm8tZGVzfHwuc3ViLXR4dCYmVGV4dCcpO1xuXG5kLnB1c2goe1xuXHR0aXRsZTogemYrYnQsIFxuZGVzYzpkZXMsXG5jb250ZW50OmNvbixcbiAgcGljX3VybDpwaSsnQFJlZmVyZXI9aHR0cHM6Ly93d3cuaXFpeWkuY29tJyxcblx0dXJsOnVyKycjIycrYnQrJyYmJyt1cisnJiYnK3BpKycjIycsXG59KTt9fWNhdGNoKGUpe31cbn1cbn1jYXRjaChlKXtkLnB1c2goe1xuXHR0aXRsZTogJ+eIseWlh+iJuuaQnOe0oumUmeivrycgfSk7fVxuXG50cnl7XG52YXIgeW09ZmV0Y2goXCJodHRwOi8vc28ueW91a3UuY29tL3NlYXJjaF92aWRlby9xX1wiK25hK1wiP3NlYXJjaGZyb209MVwiLHtoZWFkZXJzOntcIlVzZXItQWdlbnRcIjpNT0JJTEVfVUEsJ0Nvb2tpZSc6J2NuYT02SXlpR3J6S2wza0NBWEFFMDBvZjNNU24nfX0pO1xudmFyIGxpcz1wYXJzZURvbUZvckFycmF5KHltLFwiYm9keSYmZGl2W2RhdGEtbmFtZV1cIik7XG5mb3IodmFyIGkgaW4gbGlzKVxuaWYocGFyc2VEb21Gb3JIdG1sKGxpc1tpXSxcIi5wb3N0ZXItZGVzY191VFQxQSYmVGV4dFwiKSE9XCJcIiYmcGFyc2VEb21Gb3JIdG1sKGxpc1tpXSxcIi52aWRlby1zb3VyY2VfMkkyLWgmJlRleHRcIik9PVwiXCIpXG57XG5idD1wYXJzZURvbUZvckh0bWwobGlzW2ldLFwiYSwxJiZUZXh0XCIpO1xudXI9cGFyc2VEb20obGlzW2ldLFwiYSYmaHJlZlwiKTtcbnBpPWxpc1tpXS5tYXRjaCgvXFwoaHR0cC4qP1xcKS8pWzBdLnJlcGxhY2UoL1xcKHxcXCkvZyxcIlwiKTtcbnZhciB6Zj1sYjEuaW5jbHVkZXModXIpPyc8c21hbGw+5oiR55qE6L+955WqIDwvc21hbGw+JzonJztcbmQucHVzaCh7XG50aXRsZTp6ZitidCxcbmRlc2M6cGFyc2VEb21Gb3JIdG1sKGxpc1tpXSxcIi5wb3N0ZXItZGVzY191VFQxQSYmVGV4dFwiKSxcbmNvbnRlbnQ6cGFyc2VEb21Gb3JIdG1sKGxpc1tpXSxcIi5pbmZvJiZUZXh0XCIpLFxuaW1nOnBpLFxudXJsOnVyKycjIycrYnQrJyYmJyt1cisnJiYnK3BpKycjIydcbn0pO31cbn1jYXRjaChlKXtkLnB1c2goe1xuXHR0aXRsZTogJ+S8mOmFt+aQnOe0oumUmeivrycgfSk7fVxuXG5pZihkLmxlbmd0aD09MClwYWdlKys7XG59XG4gaWYocGFnZT09Mil7XG52YXIgeW09Z2V0VmFyKCd0eCcpO1xudmFyIHltMT1nZXRWYXIoJ2lxaXlpJyk7XG5jbGVhclZhcigndHgnKTtjbGVhclZhcignaXFpeWknKTtcbmlmKHltIT0nJyl7XG52YXIgbGVuPXBhcnNlRG9tRm9yQXJyYXkoeW0sJy5maWd1cmVzX2xpc3QmJmxpJyk7XG5mb3IodmFyIGkgb2YgbGVuKXtcblxuXG52YXIgdXI9cGFyc2VEb21Gb3JIdG1sKGksJ2EmJmhyZWYnKTtcbmlmKHVyLmluY2x1ZGVzKCdzZWFyY2hfcmVkaXJlY3QnKSYmdXIuaW5jbHVkZXMoJ3VybD0nKSYmKHVyLmluY2x1ZGVzKCdpcWl5aS4nKXx8dXIuaW5jbHVkZXMoJ2JpbGliaWxpLicpKSl1cj1kZWNvZGVVUklDb21wb25lbnQodXIuc3BsaXQoJ3VybD0nKVsxXSk7XG5lbHNlIGlmKHVyLmluY2x1ZGVzKCdzZWFyY2hfcmVkaXJlY3QnKSl1cj0nJztcbmlmKCFpLmluY2x1ZGVzKCfpooTlkYonKSYmdXIhPScnKXtcbnZhciBidD1wYXJzZURvbUZvckh0bWwoaSwnYSwxJiZ0aXRsZScpO1xudmFyIHBpPXBhcnNlRG9tKGksJ2ltZyYmc3JjJyk7XG52YXIgemY9bGIxLmluY2x1ZGVzKHVyKT8nPHNtYWxsPuaIkeeahOi/veeVqiA8L3NtYWxsPic6Jyc7XG5cbmQucHVzaCh7XG50aXRsZTp6ZitidCxcbnVybDp1cisnIyMnK2J0KycmJicrdXIrJyYmJytwaSsnIyMnLFxucGljX3VybDpwaSxcbmRlc2M6cGFyc2VEb21Gb3JIdG1sKGksJy5maWd1cmVfaW5mbyYmVGV4dCcpLFxuY29udGVudDpwYXJzZURvbUZvckh0bWwoaSwnLnNjb3JlX2wmJlRleHQnKSsnICAnK3BhcnNlRG9tRm9ySHRtbChpLCcuZmlndXJlX2Rlc2MmJlRleHQnKSxcbn0pO31cbn1cbn1cbmlmKHltMSE9Jycpe1xuXG52YXIgcmVzdT1wYXJzZURvbUZvckFycmF5KHltMSwnYm9keSYmLnF5LW1vZC1saXN0JiZsaScpO1xuXG5mb3IodmFyIGkgb2YgcmVzdSl7XG50cnl7XG5cbnZhciBidD1wYXJzZURvbUZvckh0bWwoaSwnYSYmdGl0bGUnKTtcbnZhciBwaT1wYXJzZURvbShpLCdpbWcmJnNyYycpO1xudmFyIHVyPXBhcnNlRG9tKGksJ2EmJmhyZWYnKS5zcGxpdCgnPycpWzBdO1xudmFyIHpmPWxiMS5pbmNsdWRlcyh1cik/JzxzbWFsbD7miJHnmoTov73nlaogPC9zbWFsbD4nOicnO1xuXG52YXIgZGVzPXBhcnNlRG9tRm9ySHRtbChpLCcucXktbW9kLWxhYmVsJiZUZXh0Jyk7XG52YXIgY29uPXBhcnNlRG9tRm9ySHRtbChpLCcuaW5mby1kZXMsMnx8LmluZm8tZGVzfHwuc3ViLXR4dCYmVGV4dCcpO1xuXG5kLnB1c2goe1xuXHR0aXRsZTogemYrYnQsIFxuZGVzYzpkZXMsXG5jb250ZW50OmNvbixcbiAgcGljX3VybDpwaSsnQFJlZmVyZXI9aHR0cHM6Ly93d3cuaXFpeWkuY29tJyxcblx0dXJsOnVyKycjIycrYnQrJyYmJyt1cisnJiYnK3BpKycjIycsXG59KTt9Y2F0Y2goZSl7fVxufVxufVxufVxuZWxzZSBpZihwYWdlPT0zKXtcbmQucHVzaCh7dGl0bGU6J+aQnOe0ouS4jeWIsO+8n+WFs+mUruivjeWwvemHj+eyvuehrid9KTtcbn1cbnJlcy5kYXRhID0gZDtcbnNldFNlYXJjaFJlc3VsdChyZXMpOyIsImRldGFpbF9jb2xfdHlwZSI6Im1vdmllXzIiLCJkZXRhaWxfZmluZF9ydWxlIjoianM6XG5ldmFsKGdldEl0ZW0oJ2FhJykuc3BsaXQoJy8qKi8nKVsxXSk7Iiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzIiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6ImpzOlxuZXZhbChnZXRJdGVtKCdhYScpLnNwbGl0KCcvKiovJylbMV0pOyIsInVhIjoibW9iaWxlIiwicHJlUnVsZSI6InZhciBmej1KU09OLnN0cmluZ2lmeShmZXRjaChcImhpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHRcIix7fSkuc3BsaXQoJ0BAJykubWFwKGE9PntyZXR1cm4gYS5zcGxpdCgnJiYnKVs0XTt9KS5maWx0ZXIoKGEsYixjKT0+e2lmKGEmJmI9PTB8fCFjLnNsaWNlKDAsYikuam9pbignJiMnKS5pbmNsdWRlcyhhKSlyZXR1cm4gYTt9KS5jb25jYXQoW1wi4oCc4oCc5paw5bu65YiG57uE4oCd4oCdXCJdKSk7XG5cbnNldEl0ZW0oJ2xhMScsIGBzZWxlY3Q6Ly97XCJ0aXRsZVwiOiBcIumAieaLqeWIhue7hFwiLCBcIm9wdGlvbnNcIiA6YCtmeitgLCBjb2w6IDMsIGpzOiBcImlmKGlucHV0PT0n4oCc4oCc5paw5bu65YiG57uE4oCd4oCdJyl7XFxgaW5wdXQ6Ly97XFxcXFwianNcXFxcXCI6IFxcXFxcImV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3pmZnonLHt9KSkucnVsZSk7XFxcXFwiLCBcXFxcXCJoaW50XFxcXFwiOiBcXFxcXCLmlrDlu7rliIbnu4TlkI3np7DigKZcXFxcXCJ9XFxgO31lbHNle2V2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3pmZnonLHt9KSkucnVsZSk7fVwifWApO1xuXG5zZXRJdGVtKCdsYTInLCBgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0VmFyKFwiamxcIixwYXJzZUludChnZXRWYXIoXCJqbFwiLFwiMFwiKSwxMCktMSk7dmFyIHY9Z2V0VmFyKCd1cmwxJyk7IGlucHV0PXYuc3BsaXQoJyYmJylbMF07cGQ9di5zcGxpdCgnJiYnKVsxXS5zcGxpdCgnPycpWzBdO3ZhciBsYj1mZXRjaChcImhpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHRcIix7fSk7Zm9yKGk9MDtpbnB1dCE9Jyc7aSsrKXt0cnl7aWYoaSE9MClpbnB1dD1pbnB1dC5zbGljZSgwLC0xKTt2YXIgc2M9bmV3IFJlZ0V4cChpbnB1dCsnW1xcXFxcXFxcc1xcXFxcXFxcU117JysoaSsyKSsnfScrcGQrJ1tcXFxcXFxcXHNcXFxcXFxcXFNdKj9AQCcsJ2cnKTt2YXIgeHI9bGIucmVwbGFjZShzYywnJyk7aWYoIXhyLmluY2x1ZGVzKHBkKSl7d3JpdGVGaWxlKFwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFwiLHhyKTticmVhazt9fWNhdGNoKGUpe319cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WPlua2iOi/veeVquaIkOWKn++8gSdgKTtcblxuc2V0SXRlbSgnckMnLCBgdmFyIG09W107dmFyIGxpPWZldGNoKFwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFwiLHt9KS5zcGxpdCgnQEAnKS5maWx0ZXIoYT0+e3JldHVybiBhIT0nJzt9KTt2YXIgcz1pbnB1dC5zcGxpdCgnIyMnKTtpbnB1dD1zWzBdO2Zvcih2YXIgaSBpbiBsaSl7dmFyIGo9bGlbaV0uc3BsaXQoJyYmJyk7aWYoZ2V0VmFyKCd1cmwnKS5pbmNsdWRlcyhqWzFdKSl7aWYoalszXSE9c1sxXSl7alszXT1zWzFdO3ZhciBqMT1qLmpvaW4oJyYmJyk7bGkuc3BsaWNlKGksMSk7bT1tLmNvbmNhdChqMSxsaSkuam9pbignQEAnKSsnQEAnO3dyaXRlRmlsZShcImhpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHRcIixtKTticmVhazt9ZWxzZSBicmVhazt9fWApO1xuXG5zZXRJdGVtKCdhYScsIGBAcnVsZT1qczovKiovaWYoZ2V0VmFyKCd4bCcpPT0nJyYmZ2V0VmFyKCd0aicpPT0nJyYmZ2V0VmFyKFwiaWlcIik9PVwiXCIpcHV0VmFyKFwiamxcIixwYXJzZUludChnZXRWYXIoXCJqbFwiLFwiMFwiKSwxMCkrMSk7dmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmlzPWZldGNoKHNlLHt9KTtpZihmaXM9PScnKXt2YXIgZmlzPUpTT04uc3RyaW5naWZ5KHtkbTon5YWzJyxiaWxpOiflhbMnfSk7d3JpdGVGaWxlKHNlLGZpcyk7fWZpPUpTT04ucGFyc2UoZmlzKTt2YXIgbW89Z2V0VmFyKCdtb2RlbCcpO3B1dFZhcignbW9kZWwnLCcnKTt2YXIgcmVzMSA9IHt9O3ZhciBkMSA9IFtdO2Q9W107ZDI9W107dHJ5e2lmKE1ZX1VSTC5pbmNsdWRlcygnaXFpeWkuY28nKSl7dmFyIHltPWdldFJlc0NvZGUoKS5yZXBsYWNlKC9cXFxcdTAwMkYvZywnLycpLnJlcGxhY2UoL3ZpZGVvVXJsL2csJ3BhZ2VVcmwnKTt9ZWxzZSBpZihNWV9VUkwuaW5jbHVkZXMoJ3lvdWt1LmNvJykpdmFyIHltPWZldGNoKE1ZX1VSTCx7aGVhZGVyczp7XCJVc2VyLUFnZW50XCI6TU9CSUxFX1VBLCdDb29raWUnOidjbmE9Nkl5aUdyektsM2tDQVhBRTAwb2YzTVNuJ319KTtlbHNlIHZhciB5bT1mZXRjaChNWV9VUkwsIHtoZWFkZXJzOntcIlVzZXItQWdlbnRcIjpQQ19VQX19KS5yZXBsYWNlKC9cXFxcdTAwMkYvZywnLycpO3RyeXt2YXIgcXVhbj1wYXJzZURvbUZvckh0bWwoeW0sJy5wZW9wbGVfbnVtJiZUZXh0Jyk7fWNhdGNoKGUpe3ZhciBxdWFuPScnO31wdXRWYXIoJ3VybCcsTVlfVVJMLnNwbGl0KCcjIycpWzBdKTt2YXIgbGI9ZmV0Y2goXCJoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC/miJHnmoTov73nlaoudHh0XCIse30pO2Z1bmN0aW9uIGNvbG8oYSxiLGMpe2lmKGE9PScnKWE9YztpZihnZXRJdGVtKCd5eicsICcnKSE9JzEnKXt2YXIgbGk9bGIuc3BsaXQoJ0BAJykuZmlsdGVyKGE9PntyZXR1cm4gYSE9Jyc7fSk7aWYobGk9PScnfHwhbGkuam9pbignQEAnKS5pbmNsdWRlcyhnZXRWYXIoJ3VybCcpKSl7c2V0SXRlbSgneXonLCAnMScpO3JldHVybiBhO31mb3IodmFyIGkgaW4gbGkpe3ZhciBqPWxpW2ldLnNwbGl0KCcmJicpO2lmKGdldFZhcigndXJsJykuaW5jbHVkZXMoalsxXSkmJmoubGVuZ3RoPj00JiYoYT09alszXXx8Yz09alszXSkpe3NldEl0ZW0oJ3l6JywgJzEnKTtpZighZ2V0VmFyKCd1cmwnKS5pbmNsdWRlcygncXEuJykmJmI9PXVuZGVmaW5lZClyZXR1cm4gJ+KtkO+4jycrYTtlbHNlIHJldHVybiAn4oCc4oCcJythKyfigJ3igJ0nO319fXJldHVybiBhO31pZihNWV9VUkwuaW5jbHVkZXMoJ2JpbGliaWxpLicpKXt2YXIgbmFtPXBhcnNlRG9tRm9ySHRtbCh5bSwnLmJpbGliaWxpLXBsYXllci1wZ2NpbmZvLW5hbWUmJlRleHQnKTt9ZWxzZSB2YXIgbmFtPXBhcnNlRG9tRm9ySHRtbCh5bSwnLnRpdHx8aDEmJlRleHQnKTtzZXRQYWdlVGl0bGUobmFtKTt2YXIgaW5mbz1NWV9VUkwuc3BsaXQoJyMjJylbMV07aWYoaW5mbyl7aW5mbz1pbmZvLnNwbGl0KCcmJicpO2luZm9bMF09bmFtOyBpbmZvPWluZm8uam9pbignJiYnKTt2YXIgcT1pbmZvLnNwbGl0KCcmJicpWzFdO2lmKHEuc2xpY2UoLTEpPT0nLycpcT1xLnNwbGl0KCcvJykuc2xpY2UoMCwtMSkuam9pbignLycpOyB2YXIgcGQ9bGIuaW5jbHVkZXMocSk7dmFyIGxhPXBkP2dldEl0ZW0oJ2xhMicpOihmaS5meiYmZmkuZno9PTE/Z2V0SXRlbSgnbGExJyk6KCdoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczppbnB1dD1cIlwiOycrSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3pmZnonLHt9KSkucnVsZSkpO3RyeXt2YXIgd2o9ZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMvRHVhbk5pYW4vTXlQYXJzZS5qc29uJyx7fSk7aWYod2ohPVwiXCIpe2V2YWwoJ2p4PScrd2opO2V2YWwoZmV0Y2goanguc2V0dGluZ3MuY2ose30pKTt9ZWxzZSBldmFsKGZldGNoKCdoaWtlcjovL2ZpbGVzL2NhY2hlL1BhcnNlX0RuLmpzJyx7fSkpO31jYXRjaChlKXt9dHJ5e3ZhciBkYz1cImQucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7ZC5wdXNoKHt0aXRsZTon54K55Ye76YWN572u5pat5o+S77yBJyx1cmw6XFxcXFwiXCIrKHNldFVybCkrXCJcXFxcXCIsY29sX3R5cGU6J3RleHRfMSd9KTtkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO2QucHVzaCh7dGl0bGU6J+a1i+ivleaWreaPku+8gScsZGVzYzon5L2/55So5YmN5YWI5aSH5Lu95pWw5o2u77yB77yB77yBJyxjb2xfdHlwZTondGV4dF8xJyx1cmw6J2hpa2VyOi8vZW1wdHlAcnVsZT0nK0pTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9jZXNoaS5odG1sJyx7fSkpLnJ1bGV9KTtkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO1wiO31jYXRjaChlKXt2YXIgZGM9XCJcIjt9dmFyIGVqPVwiaGlrZXI6Ly9lbXB0eUBydWxlPWpzOnNldFBhZ2VUaXRsZSgn6K6+572uJyk7dmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmlzPWZldGNoKHNlLHt9KTt2YXIgcmVzID0ge307dmFyIGQgPSBbXTt2YXIgZmk9SlNPTi5wYXJzZShmaXMpO2QucHVzaCh7dGl0bGU6J+W9k+WJjeKAnOKAnCcrKGZpLmRtPT0n5YWzJz8n5YWz6ZetJzon5byA5ZCvJykrJ+KAneKAneW8ueW5lSjniLHlpYfoibrjgIHkvJjphbfkuI3mlK/mjIHvvIEpJyx1cmw6XFxgQGxhenlSdWxlPS5qczp2YXIgc2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaT1KU09OLnBhcnNlKGZldGNoKHNlLHt9KSk7ZmkuZG09KGZpLmRtPT0n5YWzJz8n5byAJzon5YWzJyk7d3JpdGVGaWxlKHNlLEpTT04uc3RyaW5naWZ5KGZpKSk7cmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxcInRvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBXFxcXFwiXFxgLGNvbF90eXBlOid0ZXh0XzEnfSk7ZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtpZihmZXRjaCgnaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvY2FjaGUudHh0Jyx7fSkhPScnKXtkLnB1c2goe3RpdGxlOiflvZPliY3igJzigJwnKyhmaS5iaWxpPT0n5YWzJz8n5YWz6ZetJzon5byA5ZCvJykrJ+KAneKAneWTlOWTqeWkp+S8muWRmOebtOmTvicsdXJsOlxcYEBsYXp5UnVsZT0uanM6dmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaChzZSx7fSkpO2ZpLmJpbGk9KGZpLmJpbGk9PSflhbMnPyflvIAnOiflhbMnKTt3cml0ZUZpbGUoc2UsSlNPTi5zdHJpbmdpZnkoZmkpKTtyZWZyZXNoUGFnZShmYWxzZSk7XFxcXFwidG9hc3Q6Ly/liIfmjaLmiJDlip/vvIFcXFxcXCJcXGAsY29sX3R5cGU6J3RleHRfMSd9KTtkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO31kLnB1c2goe3RpdGxlOiflvZPliY3igJzigJwnKyhmaS55Zz09MT8n5byA5ZCvJzon5YWz6ZetJykrJ+KAneKAneiFvuiur+mihOWRiicsLypkZXNjOifngrnlh7vliIfmjaInLCovdXJsOlxcYEBsYXp5UnVsZT0uanM6dmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaChzZSx7fSkpO2ZpLnlnPShmaS55Zz09MT8wOjEpO3dyaXRlRmlsZShzZSxKU09OLnN0cmluZ2lmeShmaSkpO3JlZnJlc2hQYWdlKGZhbHNlKTtcXFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn++8gVxcXFxcIlxcYCxjb2xfdHlwZTondGV4dF8xJ30pO2QucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7ZC5wdXNoKHt0aXRsZTon5b2T5YmN4oCc4oCcJysoZmkuY29sPyhmaS5jb2w9PTA/J+WIl+ihqCc6J+S5neWuq+agvCcpOifliJfooagnKSsn4oCd4oCd5pi+56S65oiR55qE6L+955Wq44CBQuermee0ouW8leagt+W8j++8gScsdXJsOihmaS5jb2w/ZmkuY29sOjApK1xcYEBsYXp5UnVsZT0uanM6dmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaChzZSx7fSkpO2ZpLmNvbD0oaW5wdXQ9PTA/MTowKTt3cml0ZUZpbGUoc2UsSlNPTi5zdHJpbmdpZnkoZmkpKTtyZWZyZXNoUGFnZShmYWxzZSk7XFxcXFwidG9hc3Q6Ly/liIfmjaLmiJDlip/vvIFcXFxcXCJcXGAsY29sX3R5cGU6J3RleHRfMSd9KTtkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO2QucHVzaCh7dGl0bGU6J+W9k+WJjeS9v+eUqOKAnOKAnCcrKGZpLnNvPyhmaS5zb1sxXSsoZmkuc29bMF09PTA/JyDliIbnu4QnOicg5bCP56iL5bqPJykpOiflhajpg6gg5YiG57uEJykrJ+KAneKAneaQnOe0oicsdXJsOlxcYHNlbGVjdDovL3t0aXRsZTogJ+mAieaLqeS6jOe6p+aQnOe0ouaooeW8jy4uLicsIG9wdGlvbnM6WyfmkJzntKLliIbnu4QnLCfmkJzntKLlsI/nqIvluo8nXSAsIGNvbDogMiwganM6XFxcXFwiZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2Uvc28uaHRtbCcse30pKS5ydWxlKTtcXFxcXCJ9XFxgLGNvbF90eXBlOid0ZXh0XzEnfSk7ZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtkLnB1c2goe3RpdGxlOiflvZPliY3kuIDpobXmmL7npLrigJzigJwnKyhmaS5qaT9maS5qaToxMCkrJ+KAneKAnembhicsdXJsOlxcYGlucHV0Oi8ve1xcXFxcImpzXFxcXFwiOiBcXFxcXCJ2YXIgc2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaT1KU09OLnBhcnNlKGZldGNoKHNlLHt9KSk7aW5wdXQ9aW5wdXQubWF0Y2goL1swLTldKy8pWzBdO2lmKGlucHV0PjApe2ZpLmppPWlucHV0O3dyaXRlRmlsZShzZSxKU09OLnN0cmluZ2lmeShmaSkpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/mm7TmlLnmiJDlip/vvIEnfWVsc2V7J3RvYXN0Oi8v6K+36L6T5YWl5aSn5LqOMOeahOaVsO+8ge+8gSd9XFxcXFwiLCBcXFxcXCJoaW50XFxcXFwiOiBcXFxcXCLor7fovpPlhaXmlbDlrZfigKZcXFxcXCJ9XFxgLGNvbF90eXBlOid0ZXh0XzEnfSk7ZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtkLnB1c2goe3RpdGxlOiflvZPliY3igJzigJwnKyhmaS5mej8oZmkuZno9PTA/J+WFs+mXrSc6J+W8gOWQrycpOiflhbPpl60nKSsn4oCd4oCd6L+955Wq6aG16Z2i5YiG57uEJyx1cmw6KGZpLmZ6P2ZpLmZ6OjApK1xcYEBsYXp5UnVsZT0uanM6dmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaChzZSx7fSkpO2ZpLmZ6PShpbnB1dD09MD8xOjApO3dyaXRlRmlsZShzZSxKU09OLnN0cmluZ2lmeShmaSkpO3JlZnJlc2hQYWdlKGZhbHNlKTtcXFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn++8gVxcXFxcIlxcYCxjb2xfdHlwZTondGV4dF8xJ30pO2lmKGZpLmZ6JiZmaS5mej09MSl7ZC5wdXNoKHt0aXRsZTonPT7nlarliafliIbnu4QnLHVybDonaGlrZXI6Ly9lbXB0eUBydWxlPScrSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2NsYXNzaWZ5Jyx7fSkpLnJ1bGUsY29sX3R5cGU6J3RleHRfMSd9KTt9XCIrZGMrXCJhZGRMaXN0ZW5lcignb25DbG9zZScsJC50b1N0cmluZygoKT0+e3B1dFZhcignaWknLCdcIitnZXRWYXIoJ2lpJykrXCInKTt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaCgnXCIrc2UrXCInLHt9KSk7ZGVsZXRlIGZpLmZ6O2RlbGV0ZSBmaS5jb2w7Zmk9SlNPTi5zdHJpbmdpZnkoZmkpO3ZhciBmaXM9SlNPTi5wYXJzZSgnXCIrZmlzK1wiJyk7ZGVsZXRlIGZpcy5mejtkZWxldGUgZmlzLmNvbDtmaXM9SlNPTi5zdHJpbmdpZnkoZmlzKTtpZihmaSE9ZmlzKXJlZnJlc2hQYWdlKGZhbHNlKTt9KSk7cmVzLmRhdGEgPSBkO3NldFNlYXJjaFJlc3VsdChyZXMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgXCI7cHV0VmFyKCd1cmwxJyxpbmZvKTsgZDEucHVzaCh7IHRpdGxlOmluZm8uc3BsaXQoJyYmJylbMF0sIGltZzppbmZvLnNwbGl0KCcmJicpWzJdLCB1cmw6ZWosIGNvbF90eXBlOiAnaWNvbl8yX3JvdW5kJyB9KTtkMS5wdXNoKHsgdGl0bGU6KHBkPyfigJjigJjlj5bmtojov73nlarigJnigJknOifigJzigJwr6L+955Wq4oCd4oCdJyksIHVybDpsYSwgY29sX3R5cGU6ICd0ZXh0XzInIH0pO310cnl7dmFyIGRlcz1KU09OLnBhcnNlKHltLnNwbGl0KCduZXdlc3RFcFwiOicpWzFdLnNwbGl0KCd9JylbMF0rJ30nKS5kZXNjO31jYXRjaChlKXt0cnl7dmFyIGh0bT1KU09OLnBhcnNlKHltLnNwbGl0KCdDT1ZFUl9JTkZPID0gJylbMV0uc3BsaXQoJ3ZhciAnKVswXS50cmltKCkpO3ZhciBkZXM9aHRtLnVwZGF0ZV9ub3RpZnlfZGVzYztpZighZGVzKWRlcz1odG0uc2Vjb25kX3RpdGxlO31jYXRjaChlKXt0cnl7dmFyIGE9eW0ubWF0Y2goL3VwZGF0ZVN0cmF0ZWd5XCIuKj9cIiguKj8pXCIvKVsxXTt9Y2F0Y2goZSl7YT0nJzt9dmFyIGRlcz1hK3BhcnNlRG9tRm9ySHRtbCh5bSwnLmJyaWVmLXNjb3JlJiZUZXh0JykrcGFyc2VEb21Gb3JIdG1sKHltLCcuaW5mby11cGRhdGEmJlRleHQnKTt9fXRyeXt2YXIgamlhbmo9cGFyc2VEb21Gb3JIdG1sKHltLCdoZWFkJiZtZXRhW25hbWU9XCJkZXNjcmlwdGlvblwiXSYmY29udGVudCcpO2lmKGppYW5qPT0nJylqaWFuaj15bS5tYXRjaCgvXCJkZXNjXCI6XCIoLio/KVwiLylbMV07fWNhdGNoKGUpe2lmKE1ZX1VSTC5pbmNsdWRlcygncXEnKSlqaWFuaj1odG0uZGVzY3JpcHRpb247fWlmKGppYW5qKWppYW5qPWppYW5qLnJlcGxhY2UoL1tcXFxcc1wiJ10vZywnJyk7ZWxzZSBqaWFuaj0n5pegJztkMS5wdXNoKHt0aXRsZTonPGZvbnQgY29sb3I9XCJwdXJwbGVcIj48c3Ryb25nPjxiaWc+JytuYW0rJzwvYmlnPjwvc3Ryb25nPjwvZm9udD4tLTxmb250IGNvbG9yPVwiYmx1ZVwiPicrKE1ZX1VSTC5pbmNsdWRlcygnYmlsaWJpbGknKT8nYmlsaWJpbGknOihNWV9VUkwuaW5jbHVkZXMoJ3FxJyk/J+iFvuiuryc6KE1ZX1VSTC5pbmNsdWRlcygneW91a3UnKT8n5LyY6YW3Jzon54ix5aWH6Im6JykpKSsnPC9mb250PicrJ1xcXFxu4oCc4oCc54q25oCB77yaJysoZGVzP2Rlczon5pegJykrJ+KAneKAneOAgjxmb250IGNvbG9yPVwiYmx1ZVwiPicrcXVhbisnPC9mb250PicsdXJsOidzZWxlY3Q6Ly97XCJ0aXRsZVwiOiBcIumAieaLqVwiLCBcIm9wdGlvbnNcIiA6IFtcIuaQnOe0olwiLCBcIuWAkuW6j1wiLFwi566A5LuLXCJdLCBjb2w6IDMsIGpzOiBcImlmKGlucHV0PT1cXFxcJ+aQnOe0olxcXFwnKXsnKyghZmkuc298fGZpLnNvWzBdPT0wKSsnP1xcXFwnaGlrZXI6Ly9zZWFyY2g/cz0nK25hbSsnJmdyb3VwPScrKGZpLnNvP2ZpLnNvWzFdOiflhajpg6gnKSsnXFxcXCc6XFxcXCdoaWtlcjovL3NlYXJjaD9zPScrbmFtKycmcnVsZT0nKyhmaS5zbz9maS5zb1sxXTonJykrJyZzaW1wbGU9ZmFsc2VcXFxcJzt9ZWxzZSBpZihpbnB1dD09XFxcXCflgJLluo9cXFxcJyl7cHV0VmFyKFxcXFwnbW9kZWxcXFxcJywxKTtwdXRWYXIoXFxcXCdpaVxcXFwnLCcrZ2V0VmFyKCdpaScpKycpO3JlZnJlc2hQYWdlKGZhbHNlKTtcXFxcJ3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBXFxcXCd9ZWxzZXtldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcXCdoaWtlcjovL3BhZ2UvamlhbmpcXFxcJykpLnJ1bGUpO2ppYW5qKFxcYCcramlhbmorJ1xcYCk7fTtcIn0nLGNvbF90eXBlOid0ZXh0XzEnfSk7ZDEucHVzaCh7Y29sX3R5cGU6J2JpZ19ibGFua19ibG9jayd9KTt0cnl7bGFydT1sYXp5LnJlcGxhY2UoJ2F5dG1QYXJzZShpbnB1dCknLCcnKStcImNpZD1pbnB1dC5zcGxpdCgnIycpWzFdO2lucHV0PWlucHV0LnNwbGl0KCcjJylbMF07dHJ5e3VybD1heXRtUGFyc2UoaW5wdXQpO2lmKHVybC5pbmNsdWRlcygndG9hc3Q6Ly8nKXx8IXVybC5pbmNsdWRlcygnOi8vJyl8fGlucHV0PT11cmwpdXJsPWp4c2I7dHJ5e3BhPXVybC5zcGxpdCgnOycpWzFdLnNwbGl0KCcmJicpO3ZhciB1YT0nJzt2YXIgcmU9Jyc7Zm9yKGkgb2YgcGEpe3RyeXtpZihpLmluY2x1ZGVzKCdVc2VyLUFnZW50JykmJnVhPT0nJyl1YT1pLnNwbGl0KCdAJylbMV0ucmVwbGFjZSgnfScsJycpO31jYXRjaChlKXt9dHJ5e2lmKGkuaW5jbHVkZXMoJ1JlZmVyZXInKSYmcmU9PScnKXJlPWkuc3BsaXQoJ0AnKVsxXS5yZXBsYWNlKCd9JywnJyk7fWNhdGNoKGUpe319fWNhdGNoKGUpe311cmw9dXJsLnNwbGl0KCc7JylbMF07ZGF0PVtdO2RhdC5wdXNoKHVybCk7aWYoY2lkKXtkbT0naHR0cHM6Ly9jb21tZW50LmJpbGliaWxpLmNvbS8nK2NpZCsnLnhtbCc7fWVsc2V7dHJ5e3ZhciB2aWQ9aW5wdXQuc3BsaXQoJy8nKVs2XS5zcGxpdCgnLmh0bScpWzBdO3ZhciBpZD1KU09OLnBhcnNlKGZldGNoKCdodHRwczovL2FjY2Vzcy52aWRlby5xcS5jb20vZGFubXVfbWFuYWdlL3JlZ2lzdD92YXBwaWQ9OTc3NjcyMDYmdnNlY3JldD1jMGJkY2JhZTEyMDY2OWZmZjQyNWQwZWY4NTM2NzQ2MTRhYTY1OWM2MDVhNjEzYTQmcmF3PTEnLCB7aGVhZGVyczp7J1VzZXItQWdlbnQnOlBDX1VBfSxib2R5Onsnd1JlZ2lzdFR5cGUnOjIsJ3ZlY0lkTGlzdCc6W3ZpZF19LG1ldGhvZDonUE9TVCd9KSkuZGF0YS5zdE1hcFt2aWRdLnN0ckRhbk11S2V5Lm1hdGNoKC9bMC05XXs0LH0vZylbMF07aWYoaWQpe3ZhciBjb209W107dXJsPVtdO3ZhciBrPTE7Zm9yKGo9MDs7aj1qKzE2KigzMCprKSl7Zm9yKGk9ajtpPDE2KigzMCprKStqO2k9aSszMCprKXt1cmwucHVzaCh7dXJsOidodHRwOi8vbWZtLnZpZGVvLnFxLmNvbS9kYW5tdT90aW1lc3RhbXA9JytpKycmdGFyZ2V0X2lkPScraWR9KTtpZihqPj02NCozMClrPTQ7fWJhdGNoRmV0Y2godXJsKS5tYXAoZnVuY3Rpb24oYSkge3RyeXsgaCA9IEpTT04ucGFyc2UoYSkuY29tbWVudHM7IH1jYXRjaChlKXt0cnl7aD1KU09OLnBhcnNlKGEubWF0Y2goL3suKn0vKVswXSkuY29tbWVudHM7fWNhdGNoKGUpe2g9W107fX1jb209Y29tLmNvbmNhdChoKTsgfSk7aWYoaD09JycpYnJlYWs7fTtkbT0naGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvZG0uanNvbic7d3JpdGVGaWxlKGRtLEpTT04uc3RyaW5naWZ5KGNvbSkucmVwbGFjZSgvY29udGVudC9nLCd0ZXh0JykucmVwbGFjZSgvdGltZXBvaW50L2csJ3RpbWUnKSk7fWVsc2V7ZG09Jyc7fX1jYXRjaChlKXtkbT0nJzt9fUpTT04uc3RyaW5naWZ5KHt1cmxzOmRhdCxoZWFkZXJzOlt7J1VzZXItQWdlbnQnOnVhLCdSZWZlcmVyJzpyZX1dLGRhbm11OmRtfSk7fWNhdGNoKGUpeyd0b2FzdDovL+ino+aekOWksei0pe+8jOivt+abtOaNouino+aekOaIlueojeWQjumHjeivlSc7fVwiO2lmKGZpLmRtPT0n5YWzJylsYXJ1PWxhenk7fWNhdGNoKGUpe2xhcnU9J1widG9hc3Q6Ly/ml6Dop6PmnpDmj5Lku7bvvIzkvYbov73nlarlkI7ku43lj6/orrDlvZXotrPov7nvvIFcIic7fTt2YXIgZXBsPTA7dmFyIGppPXBhcnNlSW50KGZpLmppP2ZpLmppOjEwLDEwKTt2YXIgaWk9Z2V0VmFyKCdpaScpO2NsZWFyVmFyKCdpaScpO3ZhciBkaXc9dW5kZWZpbmVkO2lmKGlpPT0nJyl7dmFyIGJsaj1NWV9VUkwuc3BsaXQoJyMjJylbMF07aWYobGIuaW5jbHVkZXMoYmxqKSl7aWk9MDtmb3IoaiBvZiBsYi5zcGxpdCgnQEAnKSl7aWYoai5pbmNsdWRlcyhibGopKXtkaXc9ai5zcGxpdCgnJiYnKVszXTticmVhazt9fX1lbHNlIGlpPTE7fXRyeXsgdmFyIGVwPUpTT04ucGFyc2UoeW0uc3BsaXQoJ1wiZXBMaXN0XCI6JylbMV0uc3BsaXQoJ31dJylbMF0rJ31dJykuZmlsdGVyKChhLGopPT57aWYoaWk9PTApe2lmKGRpdyl7aWYoYS50aXRsZT09ZGl3fHxhLmxvbmdUaXRsZT09ZGl3KXtpaT1qKzE7fWlmKGlpPjApe2lmKGlpJWppIT0wKWlpPWlpLWlpJWppKzE7ZWxzZSBpaT1paS1qaSsxO319ZWxzZSBpaT0xO30gaWYoYS5iYWRnZSE9J+mihOWRiicpcmV0dXJuIGE7fSk7dmFyIGVwbD1lcC5sZW5ndGg7ZXA9ZXAuc2xpY2UocGFyc2VJbnQoaWksMTApLTEscGFyc2VJbnQoaWksMTApK2ppLTEpO3ZhciBjaGU9ZmV0Y2goJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL2NhY2hlLnR4dCcse30pO2Zvcih2YXIgaT0wO2k8ZXAubGVuZ3RoO2krKyl7dXJsPWZpLmJpbGk9PSflvIAnJiZjaGUhPScnPyhjaGUuc3BsaXQoJ0BsYXp5UnVsZScpWzBdLnJlcGxhY2UoL2NpZFxcXFw9WzAtOV17NCx9L2csJ2NpZD0nK2VwW2ldLmNpZCkucmVwbGFjZSgvYXZpZFxcXFw9WzAtOV17NCx9L2csJ2F2aWQ9JytlcFtpXS5haWQpKTooJ2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbS9iYW5ndW1pL3BsYXkvZXAnK2VwW2ldLmlkKTtkLnB1c2goeyB0aXRsZTpjb2xvKGVwW2ldLmxvbmdUaXRsZSx1bmRlZmluZWQsZXBbaV0udGl0bGUpLGNvbF90eXBlOidtb3ZpZV8yJywgaW1nOidodHRwOicrZXBbaV0uY292ZXIsIGRlc2M6ZXBbaV0udGl0bGUsdXJsOnVybCsnIycrZXBbaV0uY2lkKycjIycrZXBbaV0udGl0bGUrXCJAbGF6eVJ1bGU9LmpzOlwiK2dldEl0ZW0oJ3JDJykrKGNoZSE9JycmJmZpLmJpbGk9PSflvIAnPyhmaS5kbT09J+W8gCc/Y2hlLnNwbGl0KCdAbGF6eVJ1bGU9LmpzOicpWzFdLnJlcGxhY2UoL1swLTldezQsfSg/PVxcXFwpKS9nLGVwW2ldLmNpZCk6Y2hlLnNwbGl0KCdAbGF6eVJ1bGU9LmpzOicpWzFdLnJlcGxhY2UoL1swLTldezQsfSg/PVxcXFwpKS9nLCd1bmRlZmluZWQnKSk6bGFydSksZXh0cmE6e2lkOnVybH19KTt9fWNhdGNoKGUpe3RyeXtpZihodG0uY2F0ZWdvcnlfbWFwLmluY2x1ZGVzKCfmraPniYcnKSl7dmFyIGY9Jyc7dmFyIGxlPWh0bS52aXBfaWRzLmZpbHRlcigoYSxqKT0+e2lmKGlpPT0wKXtpZihkaXcpe2lmKCgn56ysJysoaisxKSsn6K+dJyk9PWRpdyl7aWk9aisxO31pZihpaT4wKXtpZihpaSVqaSE9MClpaT1paS1paSVqaSsxO2Vsc2UgaWk9aWktamkrMTt9fWVsc2UgaWk9MTt9aWYoZj09NyYmYS5GPT0yKWY9MTtlbHNlIGY9YS5GO2lmKGZpLnlnPT0xfHxmPT0yfHxmPT03KXtyZXR1cm4gYTt9fSk7dmFyIGVwbD1sZS5sZW5ndGg7bGU9bGUuc2xpY2UocGFyc2VJbnQoaWksMTApLTEscGFyc2VJbnQoaWksMTApK2ppLTEpO3ZhciB1cj0oJ2h0dHBzOi8vdi5xcS5jb20veC9jb3Zlci8nK2h0bS5pZCk7dmFyIGg9aWk7Zm9yKHZhciBpIGluIGxlKXt2YXIgeWc9bGVbaV0uRiE9NyYmbGVbaV0uRiE9MjtkLnB1c2goe3RpdGxlOih5Zz8n6aKE5ZGKJzpjb2xvKCfnrKwnK2grJ+ivnScpKSx1cmw6dXIrJy8nK2xlW2ldLlYrJy5odG1sIyPnrKwnK2grJ+ivnScrJ0BsYXp5UnVsZT0uanM6JysoeWc/Jyc6Z2V0SXRlbSgnckMnKSkrbGFydSxjb2xfdHlwZTondGV4dF8zJyxleHRyYTp7aWQ6dXIrJy8nK2xlW2ldLlYrJy5odG1sJ319KTtpZigheWcpaCsrO319fWNhdGNoKGUpe3RyeXt0cnl7dmFyIHY9SlNPTi5wYXJzZSh5bS5zcGxpdCgndmlkZW9JbmZvXCI6JylbMV0uc3BsaXQoJ30nKVswXSsnfScpO31jYXRjaChlKXt2YXIgdj17fTt2LmFpZD15bS5zcGxpdCgnYWxidW1JZFwiOicpWzFdLnNwbGl0KCcsJylbMF07fXZpPUpTT04ucGFyc2UocmVxdWVzdCgnaHR0cHM6Ly9wdWIubS5pcWl5aS5jb20vaDUvbWFpbi92aWRlb0xpc3QvYWxidW0vP2FsYnVtSWQ9Jyt2LmFpZCsnJnNpemU9MTUwMCZwYWdlPTEmbmVlZFByZXZ1ZT1mYWxzZSZuZWVkVmlwUHJldnVlPWZhbHNlJyx7fSkpLmRhdGE7aWYodmkhPScnKXt2PXZpLnZpZGVvczt0cnl7di5mb3JFYWNoKChhLGopPT57aWYoaWk9PTApe2lmKGRpdyl7aWYoYS5wZD09ZGl3fHxhLnZ0PT1kaXcpe2lpPWorMTt9aWYoaWk+MCl7aWYoaWklamkhPTApaWk9aWktaWklamkrMTtlbHNlIGlpPWlpLWppKzE7dGhyb3cgbmV3IEVvcnJvcign5Lit5patJyk7fX1lbHNlIGlpPTE7fX0pO31jYXRjaChlKXt9dmFyIGVwbD12Lmxlbmd0aDt2PXYuc2xpY2UocGFyc2VJbnQoaWksMTApLTEscGFyc2VJbnQoaWksMTApK2ppLTEpO2Q9di5tYXAoYT0+e2EuZGVzYz1hLnBkO2EuaW1nPSgnaHR0cHM6JythLmltYWdlVXJsKTthLnVybD0naHR0cHM6JythLnBhZ2VVcmwrJyMjJythLnBkKydAbGF6eVJ1bGU9LmpzOicrZ2V0SXRlbSgnckMnKStsYXp5O2EudGl0bGU9Y29sbyhhLnZ0LCh1bmRlZmluZWQpLGEucGQpO2EuY29sX3R5cGU9J21vdmllXzInO2EuZXh0cmE9e2lkOidodHRwczonK2EucGFnZVVybH07cmV0dXJuIGE7fSk7fWVsc2V7aT12O2lmKGkmJighaS52dHx8IWkudnQuaW5jbHVkZXMoJ+mihOWRiicpKSlkLnB1c2goe3RpdGxlOmNvbG8oaS5zaG9ydFRpdGxlLHVuZGVmaW5lZCxpLm9yZGVyKSx1cmw6J2h0dHBzOicraS5wYWdlVXJsKycjIycraS5vcmRlcisnQGxhenlSdWxlPS5qczonK2dldEl0ZW0oJ3JDJykrbGF6eSxjb2xfdHlwZTonbW92aWVfMicsaW1nOidodHRwczonK2kuaW1hZ2VVcmwsZGVzYzppLm9yZGVyfSk7fX1jYXRjaChlKXt0cnl7ZD1KU09OLnBhcnNlKGZldGNoKCdodHRwczovL3NlYXJjaC55b3VrdS5jb20vYXBpL3NlYXJjaD9hcHBTY2VuZT1zaG93X2VwaXNvZGUmc2hvd0lkcz0nK3ltLm1hdGNoKC9zaG93SWRcIjpcIiguKj8pXCIvKVsxXSsnJmFwcENhbGxlcj1oNScse2hlYWRlcnM6e1wiVXNlci1BZ2VudFwiOk1PQklMRV9VQX0scmVkaXJlY3Q6ZmFsc2V9KSkuc2VyaXNlc0xpc3Q7dHJ5e2QuZm9yRWFjaCgoYSxqKT0+e2lmKGlpPT0wKXtpZihkaXcpe2lmKGEudGl0bGU9PWRpd3x8YS5kaXNwbGF5TmFtZT09ZGl3KXtpaT1qKzE7fWlmKGlpPjApe2lmKGlpJWppIT0wKWlpPWlpLWlpJWppKzE7ZWxzZSBpaT1paS1qaSsxO3Rocm93IG5ldyBFb3Jyb3IoJ+S4reaWrScpO319ZWxzZSBpaT0xO319KTt9Y2F0Y2goZSl7fXZhciBlcGw9ZC5sZW5ndGg7ZD1kLnNsaWNlKHBhcnNlSW50KGlpLDEwKS0xLHBhcnNlSW50KGlpLDEwKStqaS0xKS5tYXAoYT0+e2EuZGVzYz1hLmRpc3BsYXlOYW1lO2EuaW1nPWEudGh1bWJVcmw7YS51cmw9J2h0dHBzOi8vbS55b3VrdS5jb20vYWxpcGF5X3ZpZGVvL2lkXycrYS52aWRlb0lkKycuaHRtbCMjJythLmRpc3BsYXlOYW1lKydAbGF6eVJ1bGU9LmpzOicrZ2V0SXRlbSgnckMnKStsYXp5O2EudGl0bGU9Y29sbyhhLnRpdGxlLHVuZGVmaW5lZCxhLmRpc3BsYXlOYW1lKTthLmV4dHJhPXtpZDonaHR0cHM6Ly9tLnlvdWt1LmNvbS9hbGlwYXlfdmlkZW8vaWRfJythLnZpZGVvSWQrJy5odG1sJ307cmV0dXJuIGE7fSk7fWNhdGNoKGUpe2QucHVzaCh7dGl0bGU6J+KAnOKAnOS8keaBr+WQp++8jOi/veeVquS5n+S4jeimgei/meS5iOaLvO+8geKAneKAnScsY29sX3R5cGU6J3RleHRfY2VudGVyXzEnfSk7fX19fWZvcihpPTE7aTw9ZXBsO2k9aStqaSl7dmFyIHFqPShpKyctJysoZXBsLShpK2ppLTEpPj0wPyhpK2ppLTEpOmVwbCkpO2QxLnB1c2goe3RpdGxlOmlpPj1pJiYoaWk8PWkramktMSk/KCfigJzigJwnK3FqKyfigJ3igJ0nKTpxaix1cmw6aStcIkBsYXp5UnVsZT0uanM6cHV0VmFyKCdpaScsaW5wdXQpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/mraPlnKjliIfmjaIuLi4nXCIsY29sX3R5cGU6J3Njcm9sbF9idXR0b24nfSk7fWlmKG1vPT0xKWQ9ZC5yZXZlcnNlKCk7ZDE9ZDEuY29uY2F0KGQpO2QxLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO2lmKHltLmluZGV4T2YoJ1wic3NMaXN0XCI6W3snKT4tMSl7ZDEucHVzaCh7dGl0bGU6KGdldFZhcigneGwnKT09JzEnPyfigJzigJziipnmm7TlpJrns7vliJfigJ3igJ0nOifigJjigJjiipXmm7TlpJrns7vliJfigJnigJknKSx1cmw6J2hpa2VyOi8vZW1wdHkjJytnZXRWYXIoJ3hsJykrXFxgQGxhenlSdWxlPS5qczp2YXIgYT1pbnB1dC5zcGxpdCgnIycpWzFdO2lmKGE9PScxJyl7cHV0VmFyMigneGwnLCcnKTt9ZWxzZXtwdXRWYXIyKCd4bCcsJzEnKTt9cmVmcmVzaFBhZ2UoZmFsc2UpO2E9PScxJz8ndG9hc3Q6Ly/lt7LmlLbotbcnOid0b2FzdDovL+W3suWxleW8gCdcXGAsY29sX3R5cGU6J3RleHRfMid9KTt9aWYoTVlfVVJMLnNlYXJjaCgvaXFpeWkuY298eW91a3UuY28vKT09LTEpZDEucHVzaCh7dGl0bGU6KGdldFZhcigndGonKT09JzEnPyfigJzigJziipnmm7TlpJrmjqjojZDigJ3igJ0nOifigJjigJjiipXmm7TlpJrmjqjojZDigJnigJknKSx1cmw6J2hpa2VyOi8vZW1wdHkjJytnZXRWYXIoJ3RqJykrXFxgQGxhenlSdWxlPS5qczp2YXIgYT1pbnB1dC5zcGxpdCgnIycpWzFdO2lmKGE9PScxJyl7cHV0VmFyMigndGonLCcnKTt9ZWxzZXtwdXRWYXIyKCd0aicsJzEnKTt9cmVmcmVzaFBhZ2UoZmFsc2UpO2E9PScxJz8ndG9hc3Q6Ly/lt7LmlLbotbcnOid0b2FzdDovL+W3suWxleW8gCdcXGAsY29sX3R5cGU6J3RleHRfMid9KTtkMS5wdXNoKHtjb2xfdHlwZTonbGluZSd9KTt0cnl7aWYoZ2V0VmFyKCd4bCcpPT0nMScpeyB2YXIgdGo9SlNPTi5wYXJzZSh5bS5zcGxpdCgnXCJzc0xpc3RcIjonKVsxXS5zcGxpdCgnfV0nKVswXSsnfV0nKTsgZm9yKHZhciBvPTA7dGohPW51bGwmJm88dGoubGVuZ3RoO28rKyl7dmFyIGNvdmVyPXRqW29dLmNvdmVyO2lmKCFjb3Zlci5pbmNsdWRlcygnaHR0cCcpKWNvdmVyPSdodHRwOicrY292ZXI7dmFyIGN1PU1ZX1VSTC5pbmNsdWRlcyh0altvXS5pZCk/J+KtkO+4jyc6Jyc7dmFyIHN4PU1ZX1VSTC5pbmNsdWRlcyh0altvXS5pZCk/XCJAbGF6eVJ1bGU9LmpzOnJlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/lt7LliLfmlrDvvIEnO1wiOmdldEl0ZW0oJ2FhJyk7ZDEucHVzaCh7IHRpdGxlOnRqW29dLnRpdGxlK2N1LGltZzpjb3ZlcixkZXNjOnRqW29dLmluZGV4X3Nob3csIHVybDonaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tL2Jhbmd1bWkvcGxheS9zcycrdGpbb10uaWQrJyMjJytuYW0rJyAnK3RqW29dLnRpdGxlKycmJicrJ2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbS9iYW5ndW1pL3BsYXkvc3MnK3RqW29dLmlkKycmJicrY292ZXIrJyMjJytzeCwgZGVzYzp0altvXS5kZXNjLGNvbF90eXBlOidtb3ZpZV8yJyB9KTt9cHV0VmFyMigneGwnLCcnKTt9fWNhdGNoKGUpe31pZihnZXRWYXIoJ3RqJyk9PScxJyl7aWYoTVlfVVJMLmluY2x1ZGVzKCdiaWxpYmlsaScpKXt2YXIgcmVjPUpTT04ucGFyc2UoZmV0Y2goJ2h0dHBzOi8vYXBpLmJpbGliaWxpLmNvbS9wZ2Mvc2Vhc29uL3dlYi9yZWxhdGVkL3JlY29tbWVuZD9zZWFzb25faWQ9JytNWV9VUkwuc3BsaXQoJ3NzJylbMV0se30pKS5kYXRhLnNlYXNvbjtmb3IoaT0wO2k8cmVjLmxlbmd0aDtpKyspe2QxLnB1c2goeyB0aXRsZTpyZWNbaV0udGl0bGUsaW1nOnJlY1tpXS5uZXdfZXAuY292ZXIsZGVzYzpyZWNbaV0ubmV3X2VwLmluZGV4X3Nob3csdXJsOnJlY1tpXS51cmwrJyMjJytyZWNbaV0udGl0bGUrJyYmJytyZWNbaV0udXJsKycmJicrcmVjW2ldLm5ld19lcC5jb3ZlcisnIyMnK2dldEl0ZW0oJ2FhJyksIGNvbF90eXBlOidtb3ZpZV8yJyB9KTt9fWVsc2V7dmFyIGxpcz1wYXJzZURvbUZvckFycmF5KHJlcXVlc3QoJ2h0dHBzOi8vbS52LnFxLmNvbS9wbGF5Lmh0bWw/Y2lkPScrTVlfVVJMLnNwbGl0KCcvJylbNV0uc3BsaXQoJy4nKVswXSx7fSksJy5maWd1cmVzX2xpc3QmJmxpJyk7Zm9yKHZhciBrIG9mIGxpcyl7dmFyIHVyPSdodHRwczovL3YucXEuY29tL3gvY292ZXIvJytwYXJzZURvbUZvckh0bWwoaywnbGkmJmRhdGEtY2lkJykrJy5odG1sJzt2YXIgaW1nPXBhcnNlRG9tRm9ySHRtbChrLCdpbWcmJmRzcmMnKTtpZighaW1nLmluY2x1ZGVzKCdodHRwJykpaW1nPSdodHRwczonK2ltZzt2YXIgdGk9cGFyc2VEb21Gb3JIdG1sKGssJ3N0cm9uZyYmVGV4dCcpO2QxLnB1c2goeyB0aXRsZTp0aSxpbWc6aW1nLGRlc2M6cGFyc2VEb21Gb3JIdG1sKGssJ2EmJlRleHQnKSx1cmw6dXIrJyMjJyt0aSsnJiYnK3VyKycmJicraW1nKycjIycrZ2V0SXRlbSgnYWEnKSwgY29sX3R5cGU6J21vdmllXzInIH0pO319fXB1dFZhcjIoJ3RqJywnJyk7fWNhdGNoKGUpe2QxLnB1c2goe3RpdGxlOifigJzigJzkvJHmga/lkKfvvIzov73nlarkuZ/kuI3opoHov5nkuYjmi7zvvIHigJ3igJ0nLGNvbF90eXBlOid0ZXh0X2NlbnRlcl8xJ30pO31jbGVhckl0ZW0oJ3l6Jyk7YWRkTGlzdGVuZXIoJ29uUmVmcmVzaCcsXCJwdXRWYXIoJ2psJyxwYXJzZUludChnZXRWYXIoJ2psJywnMCcpLDEwKS0xKTtcIik7YWRkTGlzdGVuZXIoJ29uQ2xvc2UnLFwidmFyIGZpPUpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnLHt9KSk7dmFyIGZpcz1KU09OLnBhcnNlKCdcIitmaXMrXCInKTt2YXIgc3RhPWdldFZhcignc3RhJyk7aWYoZ2V0VmFyKCdqbCcpPT0xJiZnZXRWYXIoJ2F4ZScpPT0n6L+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+955Wq5oiQ5Yqf77yBJztcIn1dIiwiaWNvbiI6Imh0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9tb3ZpZS8xMTkuc3ZnIn0=
Add Comment
Please, Sign In to add comment