Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php $_F=__FILE__;$_X='Pz48P3BocCAkZDJtMTRuID0gMXJyMXkoInNoNHIybjRtNS5uNXQiLCJ3d3cuc2g0cj..
Decoded Output download
<?php $_F=__FILE__;$_X='Pz48P3BocCAkZDJtMTRuID0gMXJyMXkoInNoNHIybjRtNS5uNXQiLCJ3d3cuc2g0cjJuNG01Lm41dCIpOzRmICggITRuXzFycjF5KCRfU0VSVkVSWydIVFRQX0hPU1QnXSwgJGQybTE0bikgPT09IFRSVUUgKXsgPz48P3BocCA1Y2gyICc8YzVudDVyPjxoNj5JbnYxbDRkIEQybTE0bjwvaDY+PC9jNW50NXI+JzsgZDQ1KCk7IH0gNWxzNSB7ID8+DQo8P3BocA0KMWRkXzFjdDQybignMWRtNG5fbTVuMycsICcxZGRfNV8xbjRtNScpOw0KZjNuY3Q0Mm4gMWRkXzVfMW40bTUoKQ0Kew0KICAgIDFkZF9tNW4zX3AxZzUoX18oJ0UtQW40bTUnLCAnNS0xbjRtNScpLCBfXygnRS1BbjRtNScsICc1LTFuNG01JyksICdtMW4xZzVfMnB0NDJucycsICc1LTFuNG01X2Qxc2hiMjFyZCcsICc1MW40bTVfcDFnNScsICdkMXNoNGMybnMtZjJybTF0LXY0ZDUyJywgJ2knKTsNCiAgICAxZGRfczNibTVuM19wMWc1KCc1LTFuNG01X2Qxc2hiMjFyZCcsIF9fKCdSNWw1MXM1cycsICdyNWw1MXM1cycpLCBfXygnUjVsNTFzNXMnLCAncjVsNTFzNXMnKSwgJ20xbjFnNV8ycHQ0Mm5zJywgJzVkNHQucGhwJyk7DQogICAgMWRkX3MzYm01bjNfcDFnNSgnNS0xbjRtNV9kMXNoYjIxcmQnLCBfXygnQW40bTUgUzVyNDVzJywgJzFuNG01LXM1cjQ1cycpLCBfXygnQW40bTUgUzVyNDVzJywgJzFuNG01LXM1cjQ1cycpLCAnbTFuMWc1XzJwdDQybnMnLCAnNWQ0dC5waHA/cDJzdF90eXA1PTFuNG01Jyk7DQogICAgMWRkX3MzYm01bjNfcDFnNSgnNS0xbjRtNV9kMXNoYjIxcmQnLCBfXygnRzVucjUgTDRzdCcsICdnNW5yNS1sNHN0JyksIF9fKCdHNW5yNSBMNHN0JywgJ2c1bnI1LWw0c3QnKSwgJ20xbjFnNV8ycHQ0Mm5zJywgJzVkNHQtdDFncy5waHA/dDF4Mm4ybXk9ZzVucjVzJnAyc3RfdHlwNT0xbjRtNScpOw0KfQ0KZjNuY3Q0Mm4gNTFuNG01X3AxZzUoKQ0Kew0KICAgIDVjaDIgIjxsNG5rIHI1bD0nc3R5bDVzaDU1dCcgaHI1Zj0nIiAuIGc1dF90NW1wbDF0NV9kNHI1Y3QycnlfM3I0KCkgLiAiLzUxbjRtNS5jc3MnIHR5cDU9J3Q1eHQvY3NzJyBtNWQ0MT0nc2NyNTVuJyAvPiI7DQogICAgNWNoMiAiPGhhPiIgLiBfXygnVzVsYzJtNSB0MiBFLUFuNG01IFN5c3Q1bScsICdkMXNoXzFuNG01JykgLiAiPC9oYT4iOw0KPz4gPGQ0diBjbDFzcz0iNXdyMXBwNXIiPiA8ZDR2IGNsMXNzPSJsNWZ0d3IxcCI+IDxkNHYgY2wxc3M9ImMyM250NXJ6Mm41Ij4gPGQ0diBjbDFzcz0iYzIzbnQxYiI+IDxoYT48ZDR2IGNsMXNzPSJkMXNoNGMybnMgZDFzaDRjMm5zLXY0ZDUyLTFsdG8iPjwvZDR2PiBBbjRtNSBTNXI0NXM8L2hhPiA8c3Axbj48P3BocA0KICAgICRjMjNudF8xbjRtNSA9IHdwX2MyM250X3Ayc3RzKCcxbjRtNScpOw0KICAgIDVjaDIgJGMyM250XzFuNG01LT5wM2JsNHNoOw0KPz48L3NwMW4+IDwvZDR2PiA8ZDR2IGNsMXNzPSJjMjNudDFiIj4gPGhhPjxkNHYgY2wxc3M9ImQxc2g0YzJucyBkMXNoNGMybnMtMWRtNG4tcDFnNSI+PC9kNHY+IFI1bDUxczVzPC9oYT4gPHNwMW4+PD9waHANCiAgICAkYzIzbnRfcDJzdCA9IHdwX2MyM250X3Ayc3RzKCdwMnN0Jyk7DQogICAgNWNoMiAkYzIzbnRfcDJzdC0+cDNibDRzaDsNCj8+PC9zcDFuPiA8L2Q0dj4gPGQ0diBjbDFzcz0iYzIzbnQxYiI+IDxoYT48ZDR2IGNsMXNzPSJkMXNoNGMybnMgZDFzaDRjMm5zLXNoMXI1Ij48L2Q0dj4gRzVucjVzPC9oYT4gPHNwMW4+PD9waHANCiAgICAkYzIzbnRfZzVucjVzID0gd3BfYzIzbnRfdDVybXMoJ2c1bnI1cycpOw0KICAgIDVjaDIgJGMyM250X2c1bnI1czsNCj8+PC9zcDFuPiA8L2Q0dj4gPGQ0diBjbDFzcz0iYzIzbnQxYiI+IDxoYT48ZDR2IGNsMXNzPSJkMXNoNGMybnMgZDFzaDRjMm5zLW01ZDQxLWMyZDUiPjwvZDR2PiBTeXN0NW08L2hhPiA8c3Axbj5hLm88L3NwMW4+IDwvZDR2PiA8L2Q0dj4gPGQ0diBjbDFzcz0icjVjNW50Ij4gPGQ0diBjbDFzcz0icjVjNW50MWIiPiA8aGE+PGQ0diBjbDFzcz0iZDFzaDRjMm5zIGQxc2g0YzJucy1mMnJtMXQtdjRkNTIiPjwvZDR2PiBSNWM1bnQgUzVyNDVzIDxzcDFuPjwxIGhyNWY9Ii93cC0xZG00bi9wMnN0LW41dy5waHA/cDJzdF90eXA1PTFuNG01Ij5BZGQgUzVyNDVzPC8xPjwvc3Axbj48L2hhPiA8M2w+IDw/cGhwDQogICAgJHI1YzVudCA9IG41dyBXUF9RMzVyeSgicDJzdF90eXA1PTFuNG01JnAyc3Rfc3QxdDNzPXAzYmw0c2gmc2gyd3Ayc3RzPTYwIik7DQogICAgd2g0bDUgKCRyNWM1bnQtPmgxdjVfcDJzdHMoKSk6DQogICAgICAgICRyNWM1bnQtPnRoNV9wMnN0KCk7DQo/PiA8bDQ+PDEgaHI1Zj0iPD9waHANCiAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHQ0dGw1PSI8P3BocA0KICAgICAgICB0aDVfdDR0bDUoKTsNCj8+IiB0MXJnNXQ9Il9ibDFuayI+PD9waHANCiAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PjwvMT4gPHNwMW4+PD9waHANCiAgICAgICAgdGg1X3Q0bTUoJ00gaiwgWScpOw0KPz48L3NwMW4+PC9sND4gPD9waHANCiAgICA1bmR3aDRsNTsNCj8+IDwvM2w+IDwvZDR2PiA8ZDR2IGNsMXNzPSJyNWM1bnQxYiI+IDxoYT48ZDR2IGNsMXNzPSJkMXNoNGMybnMgZDFzaDRjMm5zLTFkbTRuLXAxZzUiPjwvZDR2PiBSNWM1bnQgRXA0czJkNXMgPHNwMW4+PDEgaHI1Zj0iL3dwLTFkbTRuL3Ayc3QtbjV3LnBocCI+QWRkIFAyc3Q8LzE+PC9zcDFuPjwvaGE+IDwzbD4gPD9waHANCiAgICAkcjVjNW50ID0gbjV3IFdQX1EzNXJ5KCJwMnN0X3R5cDU9cDJzdCZwMnN0X3N0MXQzcz1wM2JsNHNoJnNoMndwMnN0cz02MCIpOw0KICAgIHdoNGw1ICgkcjVjNW50LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAkcjVjNW50LT50aDVfcDJzdCgpOw0KPz4gPGw0PjwxIGhyNWY9Ijw/cGhwDQogICAgICAgIHRoNV9wNXJtMWw0bmsoKTsNCj8+IiB0NHRsNT0iPD9waHANCiAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PiIgdDFyZzV0PSJfYmwxbmsiPjw/cGhwDQogICAgICAgIHRoNV90NHRsNSgpOw0KPz48LzE+IDxzcDFuPjw/cGhwDQogICAgICAgIHRoNV90NG01KCdNIGosIFknKTsNCj8+PC9zcDFuPjwvbDQ+IDw/cGhwDQogICAgNW5kd2g0bDU7DQo/PiA8LzNsPiA8L2Q0dj4gPC9kNHY+IDwvZDR2PiA8ZDR2IGNsMXNzPSJyNGdodHdyMXAiPiA8ZDR2IGNsMXNzPSJyNXAycnQiPjwxIGhyNWY9Imh0dHBzOi8vd3d3LmYxYzViMjJrLmMybS9tNXNzMWc1cy83dTB1OWUwMDlvYWE2ZWUiIHQxcmc1dD0iX2JsMW5rIj48ZDR2IGNsMXNzPSJkMXNoNGMybnMgZDFzaDRjMm5zLW01ZzFwaDJuNSI+PC9kNHY+IFI1cDJydCBCM2c8LzE+PC9kNHY+IDwvZDR2PiA8L2Q0dj4gPGQ0diBjbDFzcz0icDJ3NXI1ZCI+UDJ3NXI1ZCBieSA8MSBocjVmPSJodHRwOi8vd3d3LjVyMmwxYnMuYzJtIiB0MXJnNXQ9Il9ibDFuayIgdDR0bDU9IkVyMk0yZDUiPkVyMk0yZDU8LzE+PC9kNHY+IDw/cGhwDQp9DQoxZGRfMWN0NDJuKCd3NGRnNXRzXzRuNHQnLCAnbDF0NXN0X3c0ZGc1dCcpOw0KZjNuY3Q0Mm4gbDF0NXN0X3c0ZGc1dCgpDQp7DQogICAgcjVnNHN0NXJfdzRkZzV0KCdsMXQ1c3RfdzRkZzV0XzRuZjInKTsNCn0NCmNsMXNzIGwxdDVzdF93NGRnNXRfNG5mMiA1eHQ1bmRzIFdQX1c0ZGc1dA0Kew0KICAgIGYzbmN0NDJuIGwxdDVzdF93NGRnNXRfNG5mMigpDQogICAgew0KICAgICAgICAkdGg0cy0+V1BfVzRkZzV0KCdsMXQ1c3RfdzRkZzV0XzRuZjInLCAnbDF0NXN0IEVwNHMyZDVzJywgJHc0ZGc1dF8ycHMpOw0KICAgIH0NCiAgICBwM2JsNGMgZjNuY3Q0Mm4gZjJybSgkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA0ZiAoNHNzNXQoJDRuc3QxbmM1WyduMW01J10pICYmIDRzczV0KCQ0bnN0MW5jNVsndDJ0MWwnXSkpIHsNCiAgICAgICAgICAgICRuMW01ICA9ICQ0bnN0MW5jNVsnbjFtNSddOw0KICAgICAgICAgICAgJHQydDFsID0gJDRuc3QxbmM1Wyd0MnQxbCddOw0KICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgJG4xbTUgID0gX18oJycsICdzcnNfdzRkZzV0X3Q0dGw1Jyk7DQogICAgICAgICAgICAkdDJ0MWwgPSBfXygnJywgJ3Nyc193NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgfQ0KPz4gPHA+VDR0bDU6IDw0bnAzdCBjbDFzcz0idzRkNWYxdCIgbjFtNT0iPD9waHANCiAgICAgICAgNWNoMiAkdGg0cy0+ZzV0X2Y0NWxkX24xbTUoJ24xbTUnKTsNCj8+IiB0eXA1PSJ0NXh0IiB2MWwzNT0iPD9waHANCiAgICAgICAgNWNoMiA1c2NfMXR0cigkbjFtNSk7DQo/PiIgLz48L3A+IDxwPkQ0c3BsMXk6IDw0bnAzdCBjbDFzcz0idzRkNWYxdCIgbjFtNT0iPD9waHANCiAgICAgICAgNWNoMiAkdGg0cy0+ZzV0X2Y0NWxkX24xbTUoJ3QydDFsJyk7DQo/PiIgdHlwNT0ibjNtYjVyIiBtNG49ImkiIHYxbDM1PSI8P3BocA0KICAgICAgICA1Y2gyIDVzY18xdHRyKCR0MnQxbCk7DQo/PiIgLz48L3A+IDw/cGhwDQogICAgfQ0KICAgIGYzbmN0NDJuIDNwZDF0NSgkbjV3XzRuc3QxbmM1LCAkMmxkXzRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgJDRuc3QxbmM1ICAgICAgICAgID0gJDJsZF80bnN0MW5jNTsNCiAgICAgICAgJDRuc3QxbmM1WyduMW01J10gID0gKCE1bXB0eSgkbjV3XzRuc3QxbmM1WyduMW01J10pKSA/IHN0cjRwX3QxZ3MoJG41d180bnN0MW5jNVsnbjFtNSddKSA6ICcnOw0KICAgICAgICAkNG5zdDFuYzVbJ3QydDFsJ10gPSAoITVtcHR5KCRuNXdfNG5zdDFuYzVbJ3QydDFsJ10pKSA/IHN0cjRwX3QxZ3MoJG41d180bnN0MW5jNVsndDJ0MWwnXSkgOiAnJzsNCiAgICAgICAgcjV0M3JuICQ0bnN0MW5jNTsNCiAgICB9DQogICAgZjNuY3Q0Mm4gdzRkZzV0KCQxcmdzLCAkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA1eHRyMWN0KCQxcmdzKTsNCiAgICAgICAgNWNoMiAkYjVmMnI1X3c0ZGc1dDsNCiAgICAgICAgJG4xbTUgID0gMXBwbHlfZjRsdDVycygndzRkZzV0X3Q0dGw1JywgJDRuc3QxbmM1WyduMW01J10pOw0KICAgICAgICAkdDJ0MWwgPSA1bXB0eSgkNG5zdDFuYzVbJ3QydDFsJ10pID8gJyZuYnNwOycgOiAkNG5zdDFuYzVbJ3QydDFsJ107DQogICAgICAgIDRmICghNW1wdHkoJG4xbTUpKSB7DQogICAgICAgICAgICA1Y2gyICI8aG8+IiAuICRuMW01IC4gIjwvaG8+IjsNCiAgICAgICAgfQ0KICAgICAgICA7DQogICAgICAgIDVjaDIgIjwzbCBjbDFzcz0nbDF0NXN0NXA0czJkNXMnPiI7DQogICAgICAgICRsMXQ1c3QgPSBuNXcgV1BfUTM1cnkoInAyc3RfdHlwNT1wMnN0JnNoMndwMnN0cz0kdDJ0MWwmMnJkNXJieT1kMXQ1JjJyZDVyPURFU0MiKTsNCiAgICAgICAgd2g0bDUgKCRsMXQ1c3QtPmgxdjVfcDJzdHMoKSk6DQogICAgICAgICAgICAkbDF0NXN0LT50aDVfcDJzdCgpOw0KPz4gPD9waHANCiAgICAgICAgICAgICRtNXQxeiA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzRrbDFuJywgdHIzNSk7DQo/Pjw/cGhwDQogICAgICAgICAgICA0ZiAoKCRtNXQxeiA9PSAnJykpIHsNCj8+IDwxIGhyNWY9Ijw/cGhwDQogICAgICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHQ0dGw1PSI8P3BocA0KICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfczVyNCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgIDRmICgkbTV0MSk6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NHRsNSgkbTV0MSk7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgNWxzNToNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAnUzVyNDVzIE4ydCBGMjNuZCc7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgNW5kNGY7DQo/PiA8P3BocA0KICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNWIxcjMnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz4iPjxsND4gPGQ0diBjbDFzcz0ibDVmdHMiPiA8c3AxbiBjbDFzcz0idjRkNTIgczNiIj5TVUI8L3NwMW4+IDwvZDR2PiA8ZDR2IGNsMXNzPSJyNGdodHMiPjw/cGhwDQogICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQogICAgICAgICAgICAgICAgNGYgKCRtNXQxKToNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgNWNoMiBnNXRfdGg1X3Q0dGw1KCRtNXQxKTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICA1bHM1Og0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICdTNXI0NXMgTjJ0IEYyM25kJzsNCj8+PD9waHANCiAgICAgICAgICAgICAgICA1bmQ0ZjsNCj8+IEVwcy4gPD9waHANCiAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzFkZDVkJywgdHIzNSk7DQogICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PC9kNHY+IDwvbDQ+PC8xPiA8P3BocA0KICAgICAgICAgICAgfSA1bHM1IHsNCj8+PD9waHANCiAgICAgICAgICAgIH0NCj8+IDw/cGhwDQogICAgICAgIDVuZHdoNGw1Ow0KICAgICAgICA1Y2gyICI8LzNsPiI7DQogICAgICAgIDVjaDIgJDFmdDVyX3c0ZGc1dDsNCiAgICB9DQp9DQoxZGRfMWN0NDJuKCd3NGRnNXRzXzRuNHQnLCAnY2gxdDFuZzJfdzRkZzV0Jyk7DQpmM25jdDQybiBjaDF0MW5nMl93NGRnNXQoKQ0Kew0KICAgIHI1ZzRzdDVyX3c0ZGc1dCgnY2gxdDFuZzJfdzRkZzV0XzRuZjInKTsNCn0NCmNsMXNzIGNoMXQxbmcyX3c0ZGc1dF80bmYyIDV4dDVuZHMgV1BfVzRkZzV0DQp7DQogICAgZjNuY3Q0Mm4gY2gxdDFuZzJfdzRkZzV0XzRuZjIoKQ0KICAgIHsNCiAgICAgICAgJHRoNHMtPldQX1c0ZGc1dCgnY2gxdDFuZzJfdzRkZzV0XzRuZjInLCAnQ2gxdDFuZzIgVzRkZzV0JywgJHc0ZGc1dF8ycHMpOw0KICAgIH0NCiAgICBwM2JsNGMgZjNuY3Q0Mm4gZjJybSgkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA0ZiAoNHNzNXQoJDRuc3QxbmM1WyduMW01J10pICYmIDRzczV0KCQ0bnN0MW5jNVsnZDJtMTRuJ10pKSB7DQogICAgICAgICAgICAkbjFtNSAgID0gJDRuc3QxbmM1WyduMW01J107DQogICAgICAgICAgICAkZDJtMTRuID0gJDRuc3QxbmM1WydkMm0xNG4nXTsNCiAgICAgICAgfSA1bHM1IHsNCiAgICAgICAgICAgICRuMW01ICAgPSBfXygnJywgJ2N0aF93NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgICAgICRkMm0xNG4gPSBfXygnJywgJ2N0aF93NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgfQ0KPz4gPHA+VDR0bDU6IDw0bnAzdCBjbDFzcz0idzRkNWYxdCIgbjFtNT0iPD9waHANCiAgICAgICAgNWNoMiAkdGg0cy0+ZzV0X2Y0NWxkX24xbTUoJ24xbTUnKTsNCj8+IiB0eXA1PSJ0NXh0IiB2MWwzNT0iPD9waHANCiAgICAgICAgNWNoMiA1c2NfMXR0cigkbjFtNSk7DQo/PiIgLz48L3A+IDxwPkNoMXQxbmcyIE4xbTU6IDw0bnAzdCBjbDFzcz0idzRkNWYxdCIgbjFtNT0iPD9waHANCiAgICAgICAgNWNoMiAkdGg0cy0+ZzV0X2Y0NWxkX24xbTUoJ2QybTE0bicpOw0KPz4iIHR5cDU9InQ1eHQiIHYxbDM1PSI8P3BocA0KICAgICAgICA1Y2gyIDVzY18xdHRyKCRkMm0xNG4pOw0KPz4iIC8+PC9wPiA8P3BocA0KICAgIH0NCiAgICBmM25jdDQybiAzcGQxdDUoJG41d180bnN0MW5jNSwgJDJsZF80bnN0MW5jNSkNCiAgICB7DQogICAgICAgICQ0bnN0MW5jNSAgICAgICAgICAgPSAkMmxkXzRuc3QxbmM1Ow0KICAgICAgICAkNG5zdDFuYzVbJ24xbTUnXSAgID0gKCE1bXB0eSgkbjV3XzRuc3QxbmM1WyduMW01J10pKSA/IHN0cjRwX3QxZ3MoJG41d180bnN0MW5jNVsnbjFtNSddKSA6ICcnOw0KICAgICAgICAkNG5zdDFuYzVbJ2QybTE0biddID0gKCE1bXB0eSgkbjV3XzRuc3QxbmM1WydkMm0xNG4nXSkpID8gc3RyNHBfdDFncygkbjV3XzRuc3QxbmM1WydkMm0xNG4nXSkgOiAnJzsNCiAgICAgICAgcjV0M3JuICQ0bnN0MW5jNTsNCiAgICB9DQogICAgZjNuY3Q0Mm4gdzRkZzV0KCQxcmdzLCAkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA1eHRyMWN0KCQxcmdzKTsNCiAgICAgICAgNWNoMiAkYjVmMnI1X3c0ZGc1dDsNCiAgICAgICAgJG4xbTUgICA9IDFwcGx5X2Y0bHQ1cnMoJ3c0ZGc1dF90NHRsNScsICQ0bnN0MW5jNVsnbjFtNSddKTsNCiAgICAgICAgJGQybTE0biA9IDVtcHR5KCQ0bnN0MW5jNVsnZDJtMTRuJ10pID8gJyZuYnNwOycgOiAkNG5zdDFuYzVbJ2QybTE0biddOw0KICAgICAgICA0ZiAoITVtcHR5KCRuMW01KSkgew0KICAgICAgICAgICAgNWNoMiAiPGhvPiIgLiAkbjFtNSAuICI8L2hvPiI7DQogICAgICAgIH0NCiAgICAgICAgOw0KICAgICAgICA1Y2gyICI8ZDR2IDRkPVwiY2gxdDFuZzJcIj48c2NyNHB0IDRkPVwiYzRkMDBhMDAwMDA3OWllODk2ZWFhOVwiIGQxdDEtY2Yxc3luYz1cImYxbHM1XCIgMXN5bmMgc3JjPVwiLy9zdC5jaDF0MW5nMi5jMm0vanMvZ3ovNW1iLmpzXCIgc3R5bDU9XCJ3NGR0aDogbzAwcHg7aDU0Z2h0OiB1YTBweDtcIj57XCJoMW5kbDVcIjpcIiRkMm0xNG5cIixcIjFyY2hcIjpcImpzXCIsXCJzdHlsNXNcIjp7XCIxXCI6XCI2OTZCNkFcIixcImJcIjpldSxcImNcIjpcIjk5OTk5OVwiLFwiZFwiOlwiQ0NDQ0NDXCIsXCI1XCI6XCIwMDAwMDBcIixcImdcIjpcIkZlRmVGdVwiLFwiaFwiOlwiMDAwMDAwXCIsXCI0XCI6OGUsXCJqXCI6XCJGZUZlRnVcIixcImtcIjpcImVlZWVlZVwiLFwibFwiOlwiYWFhYWFhXCIsXCJtXCI6XCIwMDAwMDBcIixcIm5cIjpcIkZGRkZGRlwiLFwicVwiOlwiNjk2QjZBXCIsXCJyXCI6ZTYsXCJzXCI6NixcInRcIjowLFwidlwiOjAsXCJ3XCI6MH19PC9zY3I0cHQ+PC9kNHY+XG4iOw0KICAgICAgICA1Y2gyICQxZnQ1cl93NGRnNXQ7DQogICAgfQ0KfQ0KMWRkXzFjdDQybigndzRkZzV0c180bjR0JywgJ3AycDNsMXJfdzRkZzV0Jyk7DQpmM25jdDQybiBwMnAzbDFyX3c0ZGc1dCgpDQp7DQogICAgcjVnNHN0NXJfdzRkZzV0KCdwMnAzbDFyX3c0ZGc1dF80bmYyJyk7DQp9DQpjbDFzcyBwMnAzbDFyX3c0ZGc1dF80bmYyIDV4dDVuZHMgV1BfVzRkZzV0DQp7DQogICAgZjNuY3Q0Mm4gcDJwM2wxcl93NGRnNXRfNG5mMigpDQogICAgew0KICAgICAgICAkdGg0cy0+V1BfVzRkZzV0KCdwMnAzbDFyX3c0ZGc1dF80bmYyJywgJ1AycDNsMXIgQW40bTUnLCAkdzRkZzV0XzJwcyk7DQogICAgfQ0KICAgIHAzYmw0YyBmM25jdDQybiBmMnJtKCQ0bnN0MW5jNSkNCiAgICB7DQogICAgICAgIDRmICg0c3M1dCgkNG5zdDFuYzVbJ24xbTUnXSkgJiYgNHNzNXQoJDRuc3QxbmM1Wyd0MnQxbCddKSkgew0KICAgICAgICAgICAgJG4xbTUgID0gJDRuc3QxbmM1WyduMW01J107DQogICAgICAgICAgICAkdDJ0MWwgPSAkNG5zdDFuYzVbJ3QydDFsJ107DQogICAgICAgIH0gNWxzNSB7DQogICAgICAgICAgICAkbjFtNSAgPSBfXygnJywgJ3Nyc193NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgICAgICR0MnQxbCA9IF9fKCcnLCAnc3JzX3c0ZGc1dF90NHRsNScpOw0KICAgICAgICB9DQo/PiA8cD5UNHRsNTogPDRucDN0IGNsMXNzPSJ3NGQ1ZjF0IiBuMW01PSI8P3BocA0KICAgICAgICA1Y2gyICR0aDRzLT5nNXRfZjQ1bGRfbjFtNSgnbjFtNScpOw0KPz4iIHR5cDU9InQ1eHQiIHYxbDM1PSI8P3BocA0KICAgICAgICA1Y2gyIDVzY18xdHRyKCRuMW01KTsNCj8+IiAvPjwvcD4gPHA+RDRzcGwxeTogPDRucDN0IGNsMXNzPSJ3NGQ1ZjF0IiBuMW01PSI8P3BocA0KICAgICAgICA1Y2gyICR0aDRzLT5nNXRfZjQ1bGRfbjFtNSgndDJ0MWwnKTsNCj8+IiB0eXA1PSJuM21iNXIiIG00bj0iaSIgdjFsMzU9Ijw/cGhwDQogICAgICAgIDVjaDIgNXNjXzF0dHIoJHQydDFsKTsNCj8+IiAvPjwvcD4gPD9waHANCiAgICB9DQogICAgZjNuY3Q0Mm4gM3BkMXQ1KCRuNXdfNG5zdDFuYzUsICQybGRfNG5zdDFuYzUpDQogICAgew0KICAgICAgICAkNG5zdDFuYzUgICAgICAgICAgPSAkMmxkXzRuc3QxbmM1Ow0KICAgICAgICAkNG5zdDFuYzVbJ24xbTUnXSAgPSAoITVtcHR5KCRuNXdfNG5zdDFuYzVbJ24xbTUnXSkpID8gc3RyNHBfdDFncygkbjV3XzRuc3QxbmM1WyduMW01J10pIDogJyc7DQogICAgICAgICQ0bnN0MW5jNVsndDJ0MWwnXSA9ICghNW1wdHkoJG41d180bnN0MW5jNVsndDJ0MWwnXSkpID8gc3RyNHBfdDFncygkbjV3XzRuc3QxbmM1Wyd0MnQxbCddKSA6ICcnOw0KICAgICAgICByNXQzcm4gJDRuc3QxbmM1Ow0KICAgIH0NCiAgICBmM25jdDQybiB3NGRnNXQoJDFyZ3MsICQ0bnN0MW5jNSkNCiAgICB7DQogICAgICAgIDV4dHIxY3QoJDFyZ3MpOw0KICAgICAgICA1Y2gyICRiNWYycjVfdzRkZzV0Ow0KICAgICAgICAkbjFtNSAgPSAxcHBseV9mNGx0NXJzKCd3NGRnNXRfdDR0bDUnLCAkNG5zdDFuYzVbJ24xbTUnXSk7DQogICAgICAgICR0MnQxbCA9IDVtcHR5KCQ0bnN0MW5jNVsndDJ0MWwnXSkgPyAnJm5ic3A7JyA6ICQ0bnN0MW5jNVsndDJ0MWwnXTsNCiAgICAgICAgNGYgKCE1bXB0eSgkbjFtNSkpIHsNCiAgICAgICAgICAgIDVjaDIgIjxobz4iIC4gJG4xbTUgLiAiPC9obz4iOw0KICAgICAgICB9DQogICAgICAgIDsNCiAgICAgICAgNWNoMiAiPDNsPiI7DQogICAgICAgICR0MnAxbjRtNSA9IG41dyBXUF9RMzVyeSgicDJzdF90eXA1PTFuNG01JnNoMndwMnN0cz0kdDJ0MWwmdl9zMnJ0Ynk9djQ1d3Mmdl8ycmQ1cmJ5PWQ1c2MiKTsNCiAgICAgICAgd2g0bDUgKCR0MnAxbjRtNS0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgICAgICR0MnAxbjRtNS0+dGg1X3Ayc3QoKTsNCj8+IDxsND4gPGQ0diBjbDFzcz0iYjJyIj48ZDR2IGNsMXNzPSJsNG00dCI+PDEgaHI1Zj0iPD9waHANCiAgICAgICAgICAgIHRoNV9wNXJtMWw0bmsoKTsNCj8+IiB0NHRsNT0iPD9waHANCiAgICAgICAgICAgIHRoNV90NHRsNSgpOw0KPz4iPjw/cGhwDQogICAgICAgICAgICA0ZiAoaDFzX3Ayc3RfdGgzbWJuMTRsKCkpIHsNCj8+PD9waHANCiAgICAgICAgICAgICAgICB0aDVfcDJzdF90aDNtYm4xNGwoMXJyMXkoDQogICAgICAgICAgICAgICAgICAgICd0NHRsNScgPT4gJycgLiBnNXRfdGg1X3Q0dGw1KCkgLiAnJw0KICAgICAgICAgICAgICAgICkpOw0KPz48P3BocA0KICAgICAgICAgICAgfSA1bHM1IHsNCj8+PDRtZyBzcmM9Ijw/cGhwDQogICAgICAgICAgICAgICAgNWNoMiBnNXRfdDVtcGwxdDVfZDRyNWN0MnJ5XzNyNCgpOw0KPz4vNG0xZzVzL24ydGgzbWIucG5nIi8+PD9waHANCiAgICAgICAgICAgIH0NCj8+PC8xPjwvZDR2PjwvZDR2PiA8ZDR2IGNsMXNzPSJyNGdodCI+IDxzcDFuIGNsMXNzPSJ0NHRsNSI+PDEgaHI1Zj0iPD9waHANCiAgICAgICAgICAgIHRoNV9wNXJtMWw0bmsoKTsNCj8+IiByNWw9Ijw/cGhwDQogICAgICAgICAgICB0aDVfSUQoKTsNCj8+Ij48P3BocA0KICAgICAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PjwvMT48L3NwMW4+IDxzcDFuIGNsMXNzPSJsMXQ1c3QiPjw/cGhwDQogICAgICAgICAgICAkdjFsMzV6ID0gZzV0X3RoNV9JRCgkcDJzdC0+SUQsICIxbjRtNSIsIHRyMzUpOw0KPz48P3BocA0KICAgICAgICAgICAgJGw0c3RzNXI0ID0gbjV3IFdQX1EzNXJ5KDFycjF5KA0KICAgICAgICAgICAgICAgICdzaDJ3cDJzdHMnID0+ICc2JywNCiAgICAgICAgICAgICAgICAncDJzdF90eXA1JyA9PiAncDJzdCcsDQogICAgICAgICAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyXzVwNHMyZDViMXIzJywNCiAgICAgICAgICAgICAgICAnbTV0MV92MWwzNScgPT4gJ3RyMzUnLA0KICAgICAgICAgICAgICAgICcycmQ1cmJ5JyA9PiAnNXIyXzVwNHMyZDViMXIzJywNCiAgICAgICAgICAgICAgICAnMnJkNXInID0+ICdERVNDJywNCiAgICAgICAgICAgICAgICAnbTV0MV9rNXknID0+ICc1cjJfczVyNCcsDQogICAgICAgICAgICAgICAgJ201dDFfdjFsMzUnID0+ICR2MWwzNXoNCiAgICAgICAgICAgICkpOw0KPz48P3BocA0KICAgICAgICAgICAgNGYgKCRsNHN0czVyNC0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgICAgICAgICB3aDRsNSAoJGw0c3RzNXI0LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAgICAgICAgICAgICAkbDRzdHM1cjQtPnRoNV9wMnN0KCk7DQo/PjwxIGhyNWY9Ijw/cGhwDQogICAgICAgICAgICAgICAgICAgIHRoNV9wNXJtMWw0bmsoKTsNCj8+Ij48P3BocA0KICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgNGYgKCRtNXQxKToNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NHRsNSgkbTV0MSk7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgIDVsczU6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdTNXI0NXMgTjJ0IEYyM25kJzsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgNW5kNGY7DQo/PiBFcHMuIDw/cGhwDQogICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNWIxcjMnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl8xZGQ1ZCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48LzE+PD9waHANCiAgICAgICAgICAgICAgICA1bmR3aDRsNTsNCj8+PD9waHANCiAgICAgICAgICAgIDVsczU6DQo/Pi08P3BocA0KICAgICAgICAgICAgNW5kNGY7DQo/Pjw/cGhwDQogICAgICAgICAgICB3cF9yNXM1dF9xMzVyeSgpOw0KPz48L3NwMW4+PC9kNHY+IDwvbDQ+IDw/cGhwDQogICAgICAgIDVuZHdoNGw1Ow0KICAgICAgICA1Y2gyICI8LzNsPiI7DQogICAgICAgIDVjaDIgJDFmdDVyX3c0ZGc1dDsNCiAgICB9DQp9DQoxZGRfMWN0NDJuKCd3NGRnNXRzXzRuNHQnLCAnczVyNDVzX3c0ZGc1dCcpOw0KZjNuY3Q0Mm4gczVyNDVzX3c0ZGc1dCgpDQp7DQogICAgcjVnNHN0NXJfdzRkZzV0KCdzNXI0NXNfdzRkZzV0XzRuZjInKTsNCn0NCmNsMXNzIHM1cjQ1c193NGRnNXRfNG5mMiA1eHQ1bmRzIFdQX1c0ZGc1dA0Kew0KICAgIGYzbmN0NDJuIHM1cjQ1c193NGRnNXRfNG5mMigpDQogICAgew0KICAgICAgICAkdGg0cy0+V1BfVzRkZzV0KCdzNXI0NXNfdzRkZzV0XzRuZjInLCAnTjV3IFM1cjQ1cycsICR3NGRnNXRfMnBzKTsNCiAgICB9DQogICAgcDNibDRjIGYzbmN0NDJuIGYycm0oJDRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgNGYgKDRzczV0KCQ0bnN0MW5jNVsnbjFtNSddKSAmJiA0c3M1dCgkNG5zdDFuYzVbJ3QydDFsJ10pKSB7DQogICAgICAgICAgICAkbjFtNSAgPSAkNG5zdDFuYzVbJ24xbTUnXTsNCiAgICAgICAgICAgICR0MnQxbCA9ICQ0bnN0MW5jNVsndDJ0MWwnXTsNCiAgICAgICAgfSA1bHM1IHsNCiAgICAgICAgICAgICRuMW01ICA9IF9fKCcnLCAnc3JzX3c0ZGc1dF90NHRsNScpOw0KICAgICAgICAgICAgJHQydDFsID0gX18oJycsICdzcnNfdzRkZzV0X3Q0dGw1Jyk7DQogICAgICAgIH0NCj8+IDxwPlQ0dGw1OiA8NG5wM3QgY2wxc3M9Inc0ZDVmMXQiIG4xbTU9Ijw/cGhwDQogICAgICAgIDVjaDIgJHRoNHMtPmc1dF9mNDVsZF9uMW01KCduMW01Jyk7DQo/PiIgdHlwNT0idDV4dCIgdjFsMzU9Ijw/cGhwDQogICAgICAgIDVjaDIgNXNjXzF0dHIoJG4xbTUpOw0KPz4iIC8+PC9wPiA8cD5ENHNwbDF5OiA8NG5wM3QgY2wxc3M9Inc0ZDVmMXQiIG4xbTU9Ijw/cGhwDQogICAgICAgIDVjaDIgJHRoNHMtPmc1dF9mNDVsZF9uMW01KCd0MnQxbCcpOw0KPz4iIHR5cDU9Im4zbWI1ciIgbTRuPSJpIiB2MWwzNT0iPD9waHANCiAgICAgICAgNWNoMiA1c2NfMXR0cigkdDJ0MWwpOw0KPz4iIC8+PC9wPiA8P3BocA0KICAgIH0NCiAgICBmM25jdDQybiAzcGQxdDUoJG41d180bnN0MW5jNSwgJDJsZF80bnN0MW5jNSkNCiAgICB7DQogICAgICAgICQ0bnN0MW5jNSAgICAgICAgICA9ICQybGRfNG5zdDFuYzU7DQogICAgICAgICQ0bnN0MW5jNVsnbjFtNSddICA9ICghNW1wdHkoJG41d180bnN0MW5jNVsnbjFtNSddKSkgPyBzdHI0cF90MWdzKCRuNXdfNG5zdDFuYzVbJ24xbTUnXSkgOiAnJzsNCiAgICAgICAgJDRuc3QxbmM1Wyd0MnQxbCddID0gKCE1bXB0eSgkbjV3XzRuc3QxbmM1Wyd0MnQxbCddKSkgPyBzdHI0cF90MWdzKCRuNXdfNG5zdDFuYzVbJ3QydDFsJ10pIDogJyc7DQogICAgICAgIHI1dDNybiAkNG5zdDFuYzU7DQogICAgfQ0KICAgIGYzbmN0NDJuIHc0ZGc1dCgkMXJncywgJDRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgNXh0cjFjdCgkMXJncyk7DQogICAgICAgIDVjaDIgJGI1ZjJyNV93NGRnNXQ7DQogICAgICAgICRuMW01ICA9IDFwcGx5X2Y0bHQ1cnMoJ3c0ZGc1dF90NHRsNScsICQ0bnN0MW5jNVsnbjFtNSddKTsNCiAgICAgICAgJHQydDFsID0gNW1wdHkoJDRuc3QxbmM1Wyd0MnQxbCddKSA/ICcmbmJzcDsnIDogJDRuc3QxbmM1Wyd0MnQxbCddOw0KICAgICAgICA0ZiAoITVtcHR5KCRuMW01KSkgew0KICAgICAgICAgICAgNWNoMiAiPGhvPiIgLiAkbjFtNSAuICI8L2hvPiI7DQogICAgICAgIH0NCiAgICAgICAgOw0KICAgICAgICA1Y2gyICI8M2w+IjsNCiAgICAgICAgJHQycDFuNG01ID0gbjV3IFdQX1EzNXJ5KCJwMnN0X3R5cDU9MW40bTUmc2gyd3Ayc3RzPSR0MnQxbCYycmQ1cmJ5PWQxdDUmMnJkNXI9REVTQyIpOw0KICAgICAgICB3aDRsNSAoJHQycDFuNG01LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAgICAgJHQycDFuNG01LT50aDVfcDJzdCgpOw0KPz4gPGw0PiA8ZDR2IGNsMXNzPSJiMnIiPjxkNHYgY2wxc3M9Imw0bTR0Ij48MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHQ0dGw1PSI8P3BocA0KICAgICAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PiI+PD9waHANCiAgICAgICAgICAgIDRmIChoMXNfcDJzdF90aDNtYm4xNGwoKSkgew0KPz48P3BocA0KICAgICAgICAgICAgICAgIHRoNV9wMnN0X3RoM21ibjE0bCgxcnIxeSgNCiAgICAgICAgICAgICAgICAgICAgJ3Q0dGw1JyA9PiAnJyAuIGc1dF90aDVfdDR0bDUoKSAuICcnDQogICAgICAgICAgICAgICAgKSk7DQo/Pjw/cGhwDQogICAgICAgICAgICB9IDVsczUgew0KPz48NG1nIHNyYz0iPD9waHANCiAgICAgICAgICAgICAgICA1Y2gyIGc1dF90NW1wbDF0NV9kNHI1Y3QycnlfM3I0KCk7DQo/Pi80bTFnNXMvbjJ0aDNtYi5wbmciLz48P3BocA0KICAgICAgICAgICAgfQ0KPz48LzE+PC9kNHY+PC9kNHY+IDxkNHYgY2wxc3M9InI0Z2h0Ij4gPHNwMW4gY2wxc3M9InQ0dGw1Ij48MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHI1bD0iPD9waHANCiAgICAgICAgICAgIHRoNV9JRCgpOw0KPz4iPjw/cGhwDQogICAgICAgICAgICB0aDVfdDR0bDUoKTsNCj8+PC8xPjwvc3Axbj4gPHNwMW4gY2wxc3M9ImwxdDVzdCI+PD9waHANCiAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NXJtX2w0c3QoJHAyc3QtPklELCAnZzVucjVzJywgJycsICcsICcsICcnKTsNCj8+PC9zcDFuPiA8L2Q0dj4gPC9sND4gPD9waHANCiAgICAgICAgNW5kd2g0bDU7DQogICAgICAgIDVjaDIgIjwvM2w+IjsNCiAgICAgICAgNWNoMiAkMWZ0NXJfdzRkZzV0Ow0KICAgIH0NCn0NCjFkZF8xY3Q0Mm4oJ3c0ZGc1dHNfNG40dCcsICcxZHM0ZDVfdzRkZzV0Jyk7DQpmM25jdDQybiAxZHM0ZDVfdzRkZzV0KCkNCnsNCiAgICByNWc0c3Q1cl93NGRnNXQoJzFkczRkNV93NGRnNXRfNG5mMicpOw0KfQ0KY2wxc3MgMWRzNGQ1X3c0ZGc1dF80bmYyIDV4dDVuZHMgV1BfVzRkZzV0DQp7DQogICAgZjNuY3Q0Mm4gMWRzNGQ1X3c0ZGc1dF80bmYyKCkNCiAgICB7DQogICAgICAgICR0aDRzLT5XUF9XNGRnNXQoJzFkczRkNV93NGRnNXRfNG5mMicsICdJa2wxbiBvMDBweCcsICR3NGRnNXRfMnBzKTsNCiAgICB9DQogICAgcDNibDRjIGYzbmN0NDJuIGYycm0oJDRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgNGYgKDRzczV0KCQ0bnN0MW5jNVsnbjFtNSddKSAmJiA0c3M1dCgkNG5zdDFuYzVbJ3Q1eHQnXSkpIHsNCiAgICAgICAgICAgICRuMW01ID0gJDRuc3QxbmM1WyduMW01J107DQogICAgICAgICAgICAkdDV4dCA9ICQ0bnN0MW5jNVsndDV4dCddOw0KICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgJG4xbTUgPSAnJzsNCiAgICAgICAgICAgICR0NXh0ID0gJyc7DQogICAgICAgIH0NCj8+IDxwPlQ0dGw1OiA8NG5wM3QgY2wxc3M9Inc0ZDVmMXQiIG4xbTU9Ijw/cGhwDQogICAgICAgIDVjaDIgJHRoNHMtPmc1dF9mNDVsZF9uMW01KCduMW01Jyk7DQo/PiIgdHlwNT0idDV4dCIgdjFsMzU9Ijw/cGhwDQogICAgICAgIDVjaDIgNXNjXzF0dHIoJG4xbTUpOw0KPz4iIC8+PC9wPiA8cD5DMmQ1IEFkcyBvMDBweDogPHQ1eHQxcjUxIGNsMXNzPSJ3NGQ1ZjF0IiByMndzPSI2ZSIgYzJscz0iYTAiIDRkPSI8P3BocA0KICAgICAgICA1Y2gyICR0aDRzLT5nNXRfZjQ1bGRfNGQoJ3Q1eHQnKTsNCj8+IiBuMW01PSI8P3BocA0KICAgICAgICA1Y2gyICR0aDRzLT5nNXRfZjQ1bGRfbjFtNSgndDV4dCcpOw0KPz4iPjw/cGhwDQogICAgICAgIDVjaDIgc3RyNHBzbDFzaDVzKCR0NXh0KTsNCj8+PC90NXh0MXI1MT48L3A+IDw/cGhwDQogICAgfQ0KICAgIGYzbmN0NDJuIDNwZDF0NSgkbjV3XzRuc3QxbmM1LCAkMmxkXzRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgJDRuc3QxbmM1ICAgICAgICAgPSAkMmxkXzRuc3QxbmM1Ow0KICAgICAgICAkNG5zdDFuYzVbJ24xbTUnXSA9ICghNW1wdHkoJG41d180bnN0MW5jNVsnbjFtNSddKSkgPyBzdHI0cF90MWdzKCRuNXdfNG5zdDFuYzVbJ24xbTUnXSkgOiAnJzsNCiAgICAgICAgJDRuc3QxbmM1Wyd0NXh0J10gPSBzdHI0cHNsMXNoNXMoJG41d180bnN0MW5jNVsndDV4dCddKTsNCiAgICAgICAgcjV0M3JuICQ0bnN0MW5jNTsNCiAgICB9DQogICAgZjNuY3Q0Mm4gdzRkZzV0KCQxcmdzLCAkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA1eHRyMWN0KCQxcmdzKTsNCiAgICAgICAgNWNoMiAkYjVmMnI1X3c0ZGc1dDsNCiAgICAgICAgJHQ1eHQgPSAkNG5zdDFuYzVbJ3Q1eHQnXTsNCiAgICAgICAgNWNoMiAiPGQ0diBjbDFzcz1cIjFkc28wMFwiPiR0NXh0PC9kNHY+IjsNCiAgICAgICAgNWNoMiAkMWZ0NXJfdzRkZzV0Ow0KICAgIH0NCn0NCjFkZF8xY3Q0Mm4oJ3c0ZGc1dHNfNG40dCcsICdmMW5zcDFnNV93NGRnNXQnKTsNCmYzbmN0NDJuIGYxbnNwMWc1X3c0ZGc1dCgpDQp7DQogICAgcjVnNHN0NXJfdzRkZzV0KCdmMW5zcDFnNV93NGRnNXRfNG5mMicpOw0KfQ0KY2wxc3MgZjFuc3AxZzVfdzRkZzV0XzRuZjIgNXh0NW5kcyBXUF9XNGRnNXQNCnsNCiAgICBmM25jdDQybiBmMW5zcDFnNV93NGRnNXRfNG5mMigpDQogICAgew0KICAgICAgICAkdGg0cy0+V1BfVzRkZzV0KCdmMW5zcDFnNV93NGRnNXRfNG5mMicsICdGMW5zcDFnNScsICR3NGRnNXRfMnBzKTsNCiAgICB9DQogICAgcDNibDRjIGYzbmN0NDJuIGYycm0oJDRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgNGYgKDRzczV0KCQ0bnN0MW5jNVsnbjFtNSddKSAmJiA0c3M1dCgkNG5zdDFuYzVbJzFkZHI1c3MnXSkpIHsNCiAgICAgICAgICAgICRuMW01ICAgID0gJDRuc3QxbmM1WyduMW01J107DQogICAgICAgICAgICAkMWRkcjVzcyA9ICQ0bnN0MW5jNVsnMWRkcjVzcyddOw0KICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgJG4xbTUgICAgPSBfXygnJywgJ3Nyc193NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgICAgICQxZGRyNXNzID0gX18oJycsICdzcnNfdzRkZzV0X3Q0dGw1Jyk7DQogICAgICAgIH0NCj8+IDxwPlQ0dGw1OiA8NG5wM3QgY2wxc3M9Inc0ZDVmMXQiIG4xbTU9Ijw/cGhwDQogICAgICAgIDVjaDIgJHRoNHMtPmc1dF9mNDVsZF9uMW01KCduMW01Jyk7DQo/PiIgdHlwNT0idDV4dCIgdjFsMzU9Ijw/cGhwDQogICAgICAgIDVjaDIgNXNjXzF0dHIoJG4xbTUpOw0KPz4iIC8+PC9wPiA8cD5BZGRyNXNzOiA8NG5wM3QgY2wxc3M9Inc0ZDVmMXQiIG4xbTU9Ijw/cGhwDQogICAgICAgIDVjaDIgJHRoNHMtPmc1dF9mNDVsZF9uMW01KCcxZGRyNXNzJyk7DQo/PiIgdHlwNT0idDV4dCIgdjFsMzU9Ijw/cGhwDQogICAgICAgIDVjaDIgNXNjXzF0dHIoJDFkZHI1c3MpOw0KPz4iIC8+PC9wPiA8P3BocA0KICAgIH0NCiAgICBmM25jdDQybiAzcGQxdDUoJG41d180bnN0MW5jNSwgJDJsZF80bnN0MW5jNSkNCiAgICB7DQogICAgICAgICQ0bnN0MW5jNSAgICAgICAgICAgID0gJDJsZF80bnN0MW5jNTsNCiAgICAgICAgJDRuc3QxbmM1WyduMW01J10gICAgPSAoITVtcHR5KCRuNXdfNG5zdDFuYzVbJ24xbTUnXSkpID8gc3RyNHBfdDFncygkbjV3XzRuc3QxbmM1WyduMW01J10pIDogJyc7DQogICAgICAgICQ0bnN0MW5jNVsnMWRkcjVzcyddID0gKCE1bXB0eSgkbjV3XzRuc3QxbmM1WycxZGRyNXNzJ10pKSA/IHN0cjRwX3QxZ3MoJG41d180bnN0MW5jNVsnMWRkcjVzcyddKSA6ICcnOw0KICAgICAgICByNXQzcm4gJDRuc3QxbmM1Ow0KICAgIH0NCiAgICBmM25jdDQybiB3NGRnNXQoJDFyZ3MsICQ0bnN0MW5jNSkNCiAgICB7DQogICAgICAgIDV4dHIxY3QoJDFyZ3MpOw0KICAgICAgICA1Y2gyICRiNWYycjVfdzRkZzV0Ow0KICAgICAgICAkbjFtNSAgICA9IDFwcGx5X2Y0bHQ1cnMoJ3c0ZGc1dF90NHRsNScsICQ0bnN0MW5jNVsnbjFtNSddKTsNCiAgICAgICAgJDFkZHI1c3MgPSA1bXB0eSgkNG5zdDFuYzVbJzFkZHI1c3MnXSkgPyAnJm5ic3A7JyA6ICQ0bnN0MW5jNVsnMWRkcjVzcyddOw0KICAgICAgICA0ZiAoITVtcHR5KCRuMW01KSkgew0KICAgICAgICAgICAgNWNoMiAiPGhvPiIgLiAkbjFtNSAuICI8L2hvPiI7DQogICAgICAgIH0NCiAgICAgICAgOw0KICAgICAgICA1Y2gyICI8ZDR2IGNsMXNzPSdmMW5zcDFnNSc+IjsNCj8+IDxkNHYgY2wxc3M9ImZiLWw0azUtYjJ4IiBkMXQxLWhyNWY9Ijw/cGhwDQogICAgICAgIDVjaDIgJDFkZHI1c3M7DQo/PiIgZDF0MS1jMmwycnNjaDVtNT0ibDRnaHQiIGQxdDEtc2gydy1mMWM1cz0idHIzNSIgZDF0MS1oNTFkNXI9ImYxbHM1IiBkMXQxLXN0cjUxbT0iZjFsczUiIGQxdDEtc2gydy1iMnJkNXI9ImYxbHM1Ij48L2Q0dj4gPD9waHANCiAgICAgICAgNWNoMiAiPC9kNHY+IjsNCiAgICAgICAgNWNoMiAkMWZ0NXJfdzRkZzV0Ow0KICAgIH0NCn0NCmYzbmN0NDJuIDFuNG01KCkNCnsNCiAgICAkbDFiNWxzID0gMXJyMXkoDQogICAgICAgICduMW01JyA9PiBfeCgnQW40bTUnLCAnUDJzdCBUeXA1IEc1bjVyMWwgTjFtNScsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnczRuZzNsMXJfbjFtNScgPT4gX3goJ0FuNG01JywgJ1Ayc3QgVHlwNSBTNG5nM2wxciBOMW01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICdtNW4zX24xbTUnID0+IF9fKCdBbjRtNScsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAncDFyNW50XzR0NW1fYzJsMm4nID0+IF9fKCdQMXI1bnQgQW40bTU6JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICcxbGxfNHQ1bXMnID0+IF9fKCdBbGwgQW40bTVzJywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICd2NDV3XzR0NW0nID0+IF9fKCdWNDV3IEFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICcxZGRfbjV3XzR0NW0nID0+IF9fKCdBZGQgTjV3IEFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICcxZGRfbjV3JyA9PiBfXygnQWRkIEFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICc1ZDR0XzR0NW0nID0+IF9fKCdFZDR0IEFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICczcGQxdDVfNHQ1bScgPT4gX18oJ1VwZDF0NSBBbjRtNScsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnczUxcmNoXzR0NW1zJyA9PiBfXygnUzUxcmNoIEFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICduMnRfZjIzbmQnID0+IF9fKCdOMnQgZjIzbmQnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJ24ydF9mMjNuZF80bl90cjFzaCcgPT4gX18oJ04ydCBmMjNuZCA0biBUcjFzaCcsICd0NXh0X2QybTE0bicpDQogICAgKTsNCiAgICAkMXJncyAgID0gMXJyMXkoDQogICAgICAgICdsMWI1bCcgPT4gX18oJzFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICdkNXNjcjRwdDQybicgPT4gX18oJ0luZjIgQW40bTUnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJ2wxYjVscycgPT4gJGwxYjVscywNCiAgICAgICAgJ3MzcHAycnRzJyA9PiAxcnIxeSgNCiAgICAgICAgICAgICd0NHRsNScsDQogICAgICAgICAgICAnNWQ0dDJyJywNCiAgICAgICAgICAgICd0aDNtYm4xNGwnLA0KICAgICAgICAgICAgJ2MybW01bnRzJw0KICAgICAgICApLA0KICAgICAgICAndDF4Mm4ybTQ1cycgPT4gMXJyMXkoDQogICAgICAgICAgICAnZzVucjVzJw0KICAgICAgICApLA0KICAgICAgICAnaDQ1cjFyY2g0YzFsJyA9PiBmMWxzNSwNCiAgICAgICAgJ3AzYmw0YycgPT4gdHIzNSwNCiAgICAgICAgJ3NoMndfMzQnID0+IHRyMzUsDQogICAgICAgICdzaDJ3XzRuX201bjMnID0+IGYxbHM1LA0KICAgICAgICAnc2gyd180bl9uMXZfbTVuM3MnID0+IHRyMzUsDQogICAgICAgICdzaDJ3XzRuXzFkbTRuX2IxcicgPT4gdHIzNSwNCiAgICAgICAgJ201bjNfcDJzNHQ0Mm4nID0+IGksDQogICAgICAgICdtNW4zXzRjMm4nID0+ICdkMXNoNGMybnMtZjJybXMnLA0KICAgICAgICAnYzFuXzV4cDJydCcgPT4gdHIzNSwNCiAgICAgICAgJ2gxc18xcmNoNHY1JyA9PiB0cjM1LA0KICAgICAgICAnNXhjbDNkNV9mcjJtX3M1MXJjaCcgPT4gZjFsczUsDQogICAgICAgICdwM2JsNGNseV9xMzVyeTFibDUnID0+IHRyMzUsDQogICAgICAgICdjMXAxYjRsNHR5X3R5cDUnID0+ICdwMWc1Jw0KICAgICk7DQogICAgcjVnNHN0NXJfcDJzdF90eXA1KCcxbjRtNScsICQxcmdzKTsNCn0NCjFkZF8xY3Q0Mm4oJzRuNHQnLCAnMW40bTUnLCAwKTsNCmYzbmN0NDJuIGc1bnI1cygpDQp7DQogICAgJGwxYjVscyA9IDFycjF5KA0KICAgICAgICAnbjFtNScgPT4gX3goJ0c1bnI1cycsICdUMXgybjJteSBHNW41cjFsIE4xbTUnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJ3M0bmczbDFyX24xbTUnID0+IF94KCdHNW5yNXMnLCAnVDF4Mm4ybXkgUzRuZzNsMXIgTjFtNScsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnbTVuM19uMW01JyA9PiBfXygnRzVucjVzJywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICcxbGxfNHQ1bXMnID0+IF9fKCdBbGwgRzVucjVzJywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICdwMXI1bnRfNHQ1bScgPT4gX18oJ1AxcjVudCBHNW5yNScsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAncDFyNW50XzR0NW1fYzJsMm4nID0+IF9fKCdQMXI1bnQgRzVucjU6JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICduNXdfNHQ1bV9uMW01JyA9PiBfXygnTjV3IEc1bnI1IE4xbTUnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJzFkZF9uNXdfNHQ1bScgPT4gX18oJ0FkZCBONXcgRzVucjUnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJzVkNHRfNHQ1bScgPT4gX18oJ0VkNHQgRzVucjUnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJzNwZDF0NV80dDVtJyA9PiBfXygnVXBkMXQ1IEc1bnI1JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICdzNXAxcjF0NV80dDVtc193NHRoX2MybW0xcycgPT4gX18oJ1M1cDFyMXQ1IEc1bnI1cyB3NHRoIGMybW0xcycsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnczUxcmNoXzR0NW1zJyA9PiBfXygnUzUxcmNoIEc1bnI1cycsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnMWRkXzJyX3I1bTJ2NV80dDVtcycgPT4gX18oJ0FkZCAyciByNW0ydjUgZzVucjVzJywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICdjaDIyczVfZnIybV9tMnN0XzNzNWQnID0+IF9fKCdDaDIyczUgZnIybSB0aDUgbTJzdCAzczVkIGc1bnI1cycsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnbjJ0X2YyM25kJyA9PiBfXygnTjJ0IEYyM25kJywgJ3Q1eHRfZDJtMTRuJykNCiAgICApOw0KICAgICQxcmdzICAgPSAxcnIxeSgNCiAgICAgICAgJ2wxYjVscycgPT4gJGwxYjVscywNCiAgICAgICAgJ2g0NXIxcmNoNGMxbCcgPT4gZjFsczUsDQogICAgICAgICdwM2JsNGMnID0+IHRyMzUsDQogICAgICAgICdzaDJ3XzM0JyA9PiB0cjM1LA0KICAgICAgICAnc2gyd18xZG00bl9jMmwzbW4nID0+IHRyMzUsDQogICAgICAgICdzaDJ3XzRuX24xdl9tNW4zcycgPT4gdHIzNSwNCiAgICAgICAgJ3NoMndfdDFnY2wyM2QnID0+IHRyMzUNCiAgICApOw0KICAgIHI1ZzRzdDVyX3QxeDJuMm15KCdnNW5yNXMnLCAxcnIxeSgNCiAgICAgICAgJzFuNG01Jw0KICAgICksICQxcmdzKTsNCn0NCjFkZF8xY3Q0Mm4oJzRuNHQnLCAnZzVucjVzJywgMCk7DQoxZGRfMWN0NDJuKCd3NGRnNXRzXzRuNHQnLCAnZ25yX3c0ZGc1dCcpOw0KZjNuY3Q0Mm4gZ25yX3c0ZGc1dCgpDQp7DQogICAgcjVnNHN0NXJfdzRkZzV0KCdnbnJfdzRkZzV0XzRuZjInKTsNCn0NCmNsMXNzIGducl93NGRnNXRfNG5mMiA1eHQ1bmRzIFdQX1c0ZGc1dA0Kew0KICAgIGYzbmN0NDJuIGducl93NGRnNXRfNG5mMigpDQogICAgew0KICAgICAgICAkdGg0cy0+V1BfVzRkZzV0KCdnbnJfdzRkZzV0XzRuZjInLCAnRzVucjVzJywgJHc0ZGc1dF8ycHMpOw0KICAgIH0NCiAgICBwM2JsNGMgZjNuY3Q0Mm4gZjJybSgkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA0ZiAoNHNzNXQoJDRuc3QxbmM1WyduMW01J10pKSB7DQogICAgICAgICAgICAkbjFtNSA9ICQ0bnN0MW5jNVsnbjFtNSddOw0KICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgJG4xbTUgPSBfXygnJywgJ3Nyc193NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgfQ0KPz4gPHA+VDR0bDU6IDw0bnAzdCBjbDFzcz0idzRkNWYxdCIgbjFtNT0iPD9waHANCiAgICAgICAgNWNoMiAkdGg0cy0+ZzV0X2Y0NWxkX24xbTUoJ24xbTUnKTsNCj8+IiB0eXA1PSJ0NXh0IiB2MWwzNT0iPD9waHANCiAgICAgICAgNWNoMiA1c2NfMXR0cigkbjFtNSk7DQo/PiIgLz48L3A+IDw/cGhwDQogICAgfQ0KICAgIGYzbmN0NDJuIDNwZDF0NSgkbjV3XzRuc3QxbmM1LCAkMmxkXzRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgJDRuc3QxbmM1ICAgICAgICAgPSAkMmxkXzRuc3QxbmM1Ow0KICAgICAgICAkNG5zdDFuYzVbJ24xbTUnXSA9ICghNW1wdHkoJG41d180bnN0MW5jNVsnbjFtNSddKSkgPyBzdHI0cF90MWdzKCRuNXdfNG5zdDFuYzVbJ24xbTUnXSkgOiAnJzsNCiAgICAgICAgcjV0M3JuICQ0bnN0MW5jNTsNCiAgICB9DQogICAgZjNuY3Q0Mm4gdzRkZzV0KCQxcmdzLCAkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA1eHRyMWN0KCQxcmdzKTsNCiAgICAgICAgNWNoMiAkYjVmMnI1X3c0ZGc1dDsNCiAgICAgICAgJG4xbTUgPSAxcHBseV9mNGx0NXJzKCd3NGRnNXRfdDR0bDUnLCAkNG5zdDFuYzVbJ24xbTUnXSk7DQogICAgICAgIDRmICghNW1wdHkoJG4xbTUpKSB7DQogICAgICAgICAgICA1Y2gyICI8aG8+IiAuICRuMW01IC4gIjwvaG8+IjsNCiAgICAgICAgfQ0KICAgICAgICA7DQogICAgICAgIDVjaDIgIjxkNHYgY2wxc3M9J2c1bnI1dzRkZzV0Jz4iOw0KPz4gPD9waHANCi8vbDRzdCB0NXJtcyA0biAxIGc0djVuIHQxeDJuMm15DQokdDF4Mm4ybXkgPSAnZzVucjVzJzsNCiR0MXhfdDVybXMgPSBnNXRfdDVybXMoJHQxeDJuMm15LCduM21iNXI9NmUnKTsNCj8+DQo8P3BocA0KZjJyNTFjaCAoJHQxeF90NXJtcyAxcyAkdDF4X3Q1cm0pIHsNCjVjaDIgJzxzcDFuPicgLiAnPDEgaHI1Zj0iJyAuIDVzY18xdHRyKGc1dF90NXJtX2w0bmsoJHQxeF90NXJtLCAkdDF4Mm4ybXkpKSAuICciIHQ0dGw1PSInIC4gc3ByNG50ZiggX18oICJWNDV3IDFsbCBzNXI0NXMgNG4gJXMiICksICR0MXhfdDVybS0+bjFtNSApIC4gJyIgJyAuICc+JyAuICR0MXhfdDVybS0+bjFtNS4nPC8xPjwvc3Axbj4nOw0KfQ0KPz4gPD9waHANCiAgICAgICAgNWNoMiAiPC9kNHY+IjsNCiAgICAgICAgNWNoMiAkMWZ0NXJfdzRkZzV0Ow0KICAgIH0NCn0NCmYzbmN0NDJuIHI1YzJtbTVuZDVkKCR0MnQxbCkNCnsNCj8+IDxkNHYgY2wxc3M9InI1azJtNW5kMXM0Ij4gPGhhPlI1YzJtNW5kNWQgQW40bTU8L2hhPiA8P3BocA0KICAgICRyNWM1biA9IG41dyBXUF9RMzVyeSgicDJzdF90eXA1PTFuNG01JjJyZDVyYnk9cjFuZCZzaDJ3cDJzdHM9JHQydDFsIik7DQogICAgd2g0bDUgKCRyNWM1bi0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgJHI1YzVuLT50aDVfcDJzdCgpOw0KPz4gPDEgY2wxc3M9InM1cjQ1cyIgaHI1Zj0iPD9waHANCiAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHI1bD0iPD9waHANCiAgICAgICAgdGg1X0lEKCk7DQo/PiI+PD9waHANCiAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PjwvMT4mbmJzcDsmbmJzcDsgPD9waHANCiAgICA1bmR3aDRsNTsNCj8+IDw/cGhwDQogICAgd3BfcjVzNXRfcDJzdGQxdDEoKTsNCj8+IDwvZDR2PiA8P3BocA0KfQ0KZjNuY3Q0Mm4gcDJwM2wxcl9zYygkMXR0cykNCnsNCiAgICA1eHRyMWN0KHNoMnJ0YzJkNV8xdHRzKDFycjF5KA0KICAgICAgICAnYzIzbnQnID0+ICc2ZScNCiAgICApLCAkMXR0cykpOw0KPz4gPDNsIGNsMXNzPSJyMW5rIj4gPD9waHANCiAgICAkcjFuayAgICAgICAgID0gMDsNCiAgICAkdDJwczVyNDVwMnN0ID0gbjV3IFdQX1EzNXJ5KCJwMnN0X3R5cDU9MW40bTUmc2gyd3Ayc3RzPSRjMjNudCZtNXQxX2s1eT13cGJfcDJzdF92NDV3c19jMjNudCYycmQ1cmJ5PW01dDFfdjFsMzVfbjNtJjJyZDVyPURFU0MiKTsNCiAgICB3aDRsNSAoJHQycHM1cjQ1cDJzdC0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgJHQycHM1cjQ1cDJzdC0+dGg1X3Ayc3QoKTsNCiAgICAgICAgJHIxbmsrKzsNCj8+IDxsND4gPGQ0diBjbDFzcz0icjEiPjw/cGhwDQogICAgICAgIDVjaDIgJHIxbms7DQo/PjwvZDR2PiA8ZDR2IGNsMXNzPSJtNGQiPiA8MSBocjVmPSI8P3BocA0KICAgICAgICB0aDVfcDVybTFsNG5rKCk7DQo/PiI+PGg2Pjw/cGhwDQogICAgICAgIHRoNV90NHRsNSgpOw0KPz48L2g2PjwvMT4gPD9waHANCiAgICAgICAgdGg1XzV4YzVycHQoKTsNCj8+IDwvZDR2PiA8P3BocA0KICAgICAgICA0ZiAoaDFzX3Ayc3RfdGgzbWJuMTRsKCkpIHsNCj8+PD9waHANCiAgICAgICAgICAgIHRoNV9wMnN0X3RoM21ibjE0bCgpOw0KPz48P3BocA0KICAgICAgICB9IDVsczUgew0KPz48NG1nIHNyYz0iPD9waHANCiAgICAgICAgICAgIDVjaDIgZzV0X3Q1bXBsMXQ1X2Q0cjVjdDJyeV8zcjQoKTsNCj8+LzRtMWc1cy9uMnRoM21iLnBuZyIgLz48P3BocA0KICAgICAgICB9DQo/PiA8L2w0PiA8P3BocA0KICAgIDVuZHdoNGw1Ow0KPz4gPC8zbD4gPD9waHANCn0NCjFkZF9zaDJydGMyZDUoJ3AycDNsMXInLCAncDJwM2wxcl9zYycpOw0KZjNuY3Q0Mm4gMm5nMjRuZ19zYygkMXR0cykNCnsNCiAgICA1eHRyMWN0KHNoMnJ0YzJkNV8xdHRzKDFycjF5KA0KICAgICAgICAnYzIzbnQnID0+ICc2ZScNCiAgICApLCAkMXR0cykpOw0KPz4gPDNsIGNsMXNzPSJwMnAzbDFyIj4gPD9waHANCiAgICAkMm5nMjRuZ3M1cjQ1cyA9IDJmX2c1dF8ycHQ0Mm4oJzJuZzI0bmdzNXI0NXMnKTsNCiAgICA0ZiAoKCQybmcyNG5nczVyNDVzID09ICcnKSkgew0KPz48P3BocA0KICAgIH0gNWxzNSB7DQo/PiA8P3BocA0KICAgICAgICAkbXlwMnN0cyAgPSAxcnIxeSgNCiAgICAgICAgICAgICdzaDJ3cDJzdHMnID0+ICRjMjNudCwNCiAgICAgICAgICAgICdwMnN0X3R5cDUnID0+ICcxbjRtNScsDQogICAgICAgICAgICAnMnJkNXJieScgPT4gJ3Q0dGw1JywNCiAgICAgICAgICAgICcycmQ1cicgPT4gJ0FTQycsDQogICAgICAgICAgICAnbTV0MV9rNXknID0+ICc1cjJfc3QxdDNzJywNCiAgICAgICAgICAgICdtNXQxX3YxbDM1JyA9PiAnT25nMjRuZycNCiAgICAgICAgKTsNCiAgICAgICAgJHdwX3EzNXJ5ID0gbjNsbDsNCiAgICAgICAgJHdwX3EzNXJ5ID0gbjV3IFdQX1EzNXJ5KCk7DQogICAgICAgICR3cF9xMzVyeS0+cTM1cnkoJG15cDJzdHMpOw0KPz4gPD9waHANCiAgICAgICAgd2g0bDUgKCR3cF9xMzVyeS0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgICAgICR3cF9xMzVyeS0+dGg1X3Ayc3QoKTsNCj8+IDxsND4gPD9waHANCiAgICAgICAgICAgIDVjaDIgJHIxbms7DQo/PiA8MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iPiA8P3BocA0KICAgICAgICAgICAgNGYgKGgxc19wMnN0X3RoM21ibjE0bCgpKSB7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgdGg1X3Ayc3RfdGgzbWJuMTRsKCk7DQo/Pjw/cGhwDQogICAgICAgICAgICB9IDVsczUgew0KPz48NG1nIHNyYz0iPD9waHANCiAgICAgICAgICAgICAgICA1Y2gyIGc1dF90NW1wbDF0NV9kNHI1Y3QycnlfM3I0KCk7DQo/Pi80bTFnNXMvbjJ0aDNtYi5wbmciIC8+PD9waHANCiAgICAgICAgICAgIH0NCj8+IDxkNHYgY2wxc3M9InQ0dGw1Ij48P3BocA0KICAgICAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PjwvZDR2PiA8LzE+IDwvbDQ+IDw/cGhwDQogICAgICAgIDVuZHdoNGw1Ow0KPz4gPD9waHANCiAgICB9DQo/PiA8LzNsPiA8P3BocA0KfQ0KMWRkX3NoMnJ0YzJkNSgnMm5nMjRuZycsICcybmcyNG5nX3NjJyk7DQpmM25jdDQybiBkcjJwX3NjKCQxdHRzKQ0Kew0KICAgIDV4dHIxY3Qoc2gycnRjMmQ1XzF0dHMoMXJyMXkoDQogICAgICAgICdjMjNudCcgPT4gJzZlJw0KICAgICksICQxdHRzKSk7DQo/PiA8M2wgY2wxc3M9InAycDNsMXIiPiA8P3BocA0KICAgICRkcjJwczVyNDVzID0gMmZfZzV0XzJwdDQybignZHIycHM1cjQ1cycpOw0KICAgIDRmICgoJGRyMnBzNXI0NXMgPT0gJycpKSB7DQo/Pjw/cGhwDQogICAgfSA1bHM1IHsNCj8+IDw/cGhwDQogICAgICAgICRteXAyc3RzICA9IDFycjF5KA0KICAgICAgICAgICAgJ3NoMndwMnN0cycgPT4gJGMyM250LA0KICAgICAgICAgICAgJ3Ayc3RfdHlwNScgPT4gJzFuNG01JywNCiAgICAgICAgICAgICcycmQ1cmJ5JyA9PiAndDR0bDUnLA0KICAgICAgICAgICAgJzJyZDVyJyA9PiAnQVNDJywNCiAgICAgICAgICAgICdtNXQxX2s1eScgPT4gJzVyMl9zdDF0M3MnLA0KICAgICAgICAgICAgJ201dDFfdjFsMzUnID0+ICdEcjJwcDVkJw0KICAgICAgICApOw0KICAgICAgICAkd3BfcTM1cnkgPSBuM2xsOw0KICAgICAgICAkd3BfcTM1cnkgPSBuNXcgV1BfUTM1cnkoKTsNCiAgICAgICAgJHdwX3EzNXJ5LT5xMzVyeSgkbXlwMnN0cyk7DQo/PiA8P3BocA0KICAgICAgICB3aDRsNSAoJHdwX3EzNXJ5LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAgICAgJHdwX3EzNXJ5LT50aDVfcDJzdCgpOw0KPz4gPGw0PiA8P3BocA0KICAgICAgICAgICAgNWNoMiAkcjFuazsNCj8+IDwxIGhyNWY9Ijw/cGhwDQogICAgICAgICAgICB0aDVfcDVybTFsNG5rKCk7DQo/PiI+IDw/cGhwDQogICAgICAgICAgICA0ZiAoaDFzX3Ayc3RfdGgzbWJuMTRsKCkpIHsNCj8+PD9waHANCiAgICAgICAgICAgICAgICB0aDVfcDJzdF90aDNtYm4xNGwoKTsNCj8+PD9waHANCiAgICAgICAgICAgIH0gNWxzNSB7DQo/Pjw0bWcgc3JjPSI8P3BocA0KICAgICAgICAgICAgICAgIDVjaDIgZzV0X3Q1bXBsMXQ1X2Q0cjVjdDJyeV8zcjQoKTsNCj8+LzRtMWc1cy9uMnRoM21iLnBuZyIgLz48P3BocA0KICAgICAgICAgICAgfQ0KPz4gPGQ0diBjbDFzcz0idDR0bDUiPjw/cGhwDQogICAgICAgICAgICB0aDVfdDR0bDUoKTsNCj8+PC9kNHY+IDwvMT4gPC9sND4gPD9waHANCiAgICAgICAgNW5kd2g0bDU7DQo/PiA8P3BocA0KICAgIH0NCj8+IDwvM2w+IDw/cGhwDQp9DQoxZGRfc2gycnRjMmQ1KCdkcjJwcDVkJywgJ2RyMnBfc2MnKTsNCmYzbmN0NDJuIGc1bnI1X3NjKCkNCnsNCj8+IDxkNHYgY2wxc3M9Imc1bnI1cyI+IDwzbD4gPD9waHANCiAgICAkdDF4Mm4ybXkgID0gJ2c1bnI1cyc7DQogICAgJHQxeF90NXJtcyA9IGc1dF90NXJtcygkdDF4Mm4ybXkpOw0KPz4gPD9waHANCiAgICBmMnI1MWNoICgkdDF4X3Q1cm1zIDFzICR0MXhfdDVybSkgew0KICAgICAgICA1Y2gyICc8bDQ+JyAuICc8MSBocjVmPSInIC4gNXNjXzF0dHIoZzV0X3Q1cm1fbDRuaygkdDF4X3Q1cm0sICR0MXgybjJteSkpIC4gJyIgdDR0bDU9IicgLiBzcHI0bnRmKF9fKCJWNDV3IDFsbCBzNXI0IDRuIGc1bnI1ICVzIiksICR0MXhfdDVybS0+bjFtNSkgLiAnIiAnIC4gJz4nIC4gJHQxeF90NXJtLT5uMW01IC4gJzwvMT48L2w0Pic7DQogICAgfQ0KPz4gPC8zbD4gPC9kNHY+IDw/cGhwDQp9DQoxZGRfc2gycnRjMmQ1KCdnNW5yNScsICdnNW5yNV9zYycpOw0KZjNuY3Q0Mm4gMW40bTU0bmYyKCkNCnsNCj8+IDxkNHYgY2wxc3M9Imw0c3Q0bmYyIj4gPDNsPiA8bDQ+PGI+SjFwMW41czU8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfajFwMW41czUnLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L2w0PiA8bDQ+PGI+VHlwNTwvYj46IDw/cGhwDQogICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl90eXA1JywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PC9sND4gPGw0PjxiPkVwNHMyZDVzPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDUnLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L2w0PiA8bDQ+PGI+U3QxdDNzPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3N0MXQzcycsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/PjwvbDQ+IDxsND48Yj5BNHI1ZDwvYj46IDw/cGhwDQogICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl90MXkxbmcnLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L2w0PiA8bDQ+PGI+UHIyZDNjNXJzPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3ByMmQzczVyJywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PC9sND4gPGw0Pjw/cGhwDQogICAgNWNoMiBnNXRfdGg1X3Q1cm1fbDRzdCgkcDJzdC0+SUQsICdnNW5yNXMnLCAnPGI+RzVucjVzPC9iPjogJywgJywgJywgJycpOw0KPz48L2w0PiA8bDQ+PGI+RDNyMXQ0Mm48L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfZDNyMXM0JywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PC9sND4gPGw0PjxiPlNjMnI1PC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3NrMnInLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L2w0PiA8bDQ+PGI+RjFuczNiPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX2YxbnMzYicsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/PjwvbDQ+IDwvM2w+IDwvZDR2PiA8P3BocA0KfQ0KZjNuY3Q0Mm4gNXA0czJkNXMoKQ0Kew0KPz4gPGQ0diA0ZD0iNXA0czJkNXMiPjwvZDR2PiA8ZDR2IGNsMXNzPSI1cDRzMmQ1bDRzdCI+IDxkNHYgY2wxc3M9InQ0dCI+PD9waHANCiAgICB0aDVfdDR0bDUoKTsNCj8+IEVwNHMyZDVzIEw0c3Q8L2Q0dj4gPDNsPiA8bDQgY2wxc3M9InQycCI+IDxzcDFuIGNsMXNzPSJ0NiI+RXA0czJkNSBUNHRsNTwvc3Axbj4gPHNwMW4gY2wxc3M9InRhIj5EMXQ1IEFkZDVkPC9zcDFuPiA8c3AxbiBjbDFzcz0idG8iPlcxdGNoPC9zcDFuPiA8L2w0PiA8P3BocA0KICAgICR2MWwzNXogPSBnNXRfdGg1X0lEKCRwMnN0LT5JRCwgIjFuNG01IiwgdHIzNSk7DQo/Pjw/cGhwDQogICAgJGw0c3RzNXI0ID0gbjV3IFdQX1EzNXJ5KDFycjF5KA0KICAgICAgICAnc2gyd3Ayc3RzJyA9PiAnNjAwMCcsDQogICAgICAgICdwMnN0X3R5cDUnID0+ICdwMnN0JywNCiAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyXzVwNHMyZDViMXIzJywNCiAgICAgICAgJ201dDFfdjFsMzUnID0+ICd0cjM1JywNCiAgICAgICAgJzJyZDVyYnknID0+ICc1cjJfNXA0czJkNWIxcjMnLA0KICAgICAgICAnMnJkNXInID0+ICdBU0MnLA0KICAgICAgICAnbTV0MV9rNXknID0+ICc1cjJfczVyNCcsDQogICAgICAgICdtNXQxX3YxbDM1JyA9PiAkdjFsMzV6DQogICAgKSk7DQo/Pjw/cGhwDQogICAgd2g0bDUgKCRsNHN0czVyNC0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgJGw0c3RzNXI0LT50aDVfcDJzdCgpOw0KPz4gPGw0PiA8c3AxbiBjbDFzcz0idDYiPiA8MSBocjVmPSI8P3BocA0KICAgICAgICB0aDVfcDVybTFsNG5rKCk7DQo/PiI+RXA0czJkNSA8P3BocA0KICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgICAgIDVjaDIgJG01dDE7DQo/Pjw/cGhwDQogICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfMWRkNWQnLCB0cjM1KTsNCiAgICAgICAgNWNoMiAkbTV0MTsNCj8+PC8xPiA8L3NwMW4+IDxzcDFuIGNsMXNzPSJ0YSI+IDw/cGhwDQogICAgICAgIDVjaDIgaDNtMW5fdDRtNV9kNGZmKGc1dF90aDVfdDRtNSgnVScpLCBjM3JyNW50X3Q0bTUoJ3Q0bTVzdDFtcCcpKSAuICcgMWcyJzsNCj8+IDwvc3Axbj4gPHNwMW4gY2wxc3M9InRvIj48MSBocjVmPSI8P3BocA0KICAgICAgICB0aDVfcDVybTFsNG5rKCk7DQo/PiI+U3QxcnQgVzF0Y2g0bmchPC8xPjwvc3Axbj4gPC9sND4gPD9waHANCiAgICA1bmR3aDRsNTsNCj8+IDwvM2w+IDwvZDR2PiA8P3BocA0KfQ0KZjNuY3Q0Mm4gNXA0czJkNXQ0dGw1KCkNCnsNCj8+IDw/cGhwDQogICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQogICAgNGYgKCRtNXQxKToNCj8+PD9waHANCiAgICAgICAgNWNoMiBnNXRfdGg1X3Q0dGw1KCRtNXQxKTsNCj8+PD9waHANCiAgICA1bHM1Og0KPz48P3BocA0KICAgICAgICA1Y2gyICdTNXI0NXMgTjJ0IEYyM25kJzsNCj8+PD9waHANCiAgICA1bmQ0ZjsNCj8+IEVwNHMyZDUgPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzFkZDVkJywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+IDw/cGhwDQp9DQpmM25jdDQybiBzNWw1Y3Q1cDRzMmQ1KCkNCnsNCj8+IDxzNWw1Y3QgbjFtNT0iNXA0czJkNSIgNGQ9IjVwNHMyZDVzIiAybmNoMW5nNT0idzRuZDJ3LjJwNW4odGg0cy4ycHQ0Mm5zW3RoNHMuczVsNWN0NWRJbmQ1eF0udjFsMzUsJ19ibDFuaycpIj4gPDJwdDQybiB2MWwzNT0iMCI+UzVsNWN0IEVwNHMyZDVzPC8ycHQ0Mm4+IDw/cGhwDQogICAgJHYxbDM1eiA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCj8+IDw/cGhwDQogICAgJGw0c3RzNXI0ID0gbjV3IFdQX1EzNXJ5KDFycjF5KA0KICAgICAgICAnc2gyd3Ayc3RzJyA9PiAnNjAwMCcsDQogICAgICAgICdwMnN0X3R5cDUnID0+ICdwMnN0JywNCiAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyXzVwNHMyZDViMXIzJywNCiAgICAgICAgJ201dDFfdjFsMzUnID0+ICd0cjM1JywNCiAgICAgICAgJzJyZDVyYnknID0+ICc1cjJfNXA0czJkNWIxcjMnLA0KICAgICAgICAnMnJkNXInID0+ICdERVNDJywNCiAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyX3M1cjQnLA0KICAgICAgICAnbTV0MV92MWwzNScgPT4gJHYxbDM1eg0KICAgICkpOw0KPz4gPD9waHANCiAgICB3aDRsNSAoJGw0c3RzNXI0LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAkbDRzdHM1cjQtPnRoNV9wMnN0KCk7DQo/PiA8MnB0NDJuIHYxbDM1PSI8P3BocA0KICAgICAgICB0aDVfcDVybTFsNG5rKCk7DQo/PiI+RXA0czJkNSA8P3BocA0KICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgICAgIDVjaDIgJG01dDE7DQo/Pjw/cGhwDQogICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfMWRkNWQnLCB0cjM1KTsNCiAgICAgICAgNWNoMiAkbTV0MTsNCj8+IDwvMnB0NDJuPiA8P3BocA0KICAgIDVuZHdoNGw1Ow0KPz4gPD9waHANCiAgICB3cF9yNXM1dF9xMzVyeSgpOw0KPz4gPC9zNWw1Y3Q+IDw/cGhwDQp9DQpmM25jdDQybiA1cDRzMmQ1bjF2NCgpDQp7DQo/PiANCjxkNHYgY2wxc3M9Im4xdjVwcyI+DQo8ZDR2IGNsMXNzPSJudnMiPjw/cGhwDQogICAgcHI1djQyM3NfcDJzdF9sNG5rKCclbDRuaycsICdwcjV2NDIzcyBFcDRzMmQ1JywgVFJVRSk7DQo/PjwvZDR2Pg0KPGQ0diBjbDFzcz0ibnZzIG52c2MiPg0KPD9waHAgczVsNWN0NXA0czJkNSgpOyA/Pg0KPC9kNHY+DQo8ZDR2IGNsMXNzPSJudnMiPjw/cGhwDQogICAgbjV4dF9wMnN0X2w0bmsoJyVsNG5rJywgJ241eHQgRXA0czJkNScsIFRSVUUpOw0KPz48L2Q0dj48L2Q0dj4gPD9waHANCn0NCmYzbmN0NDJuIHY0ZDUybTRycjJyKCkNCnsNCj8+IDwzbCBjbDFzcz0ibTRycjJyIj4gPD9waHANCiAgICAkYzIzbnQ1ciA9IDA7DQogICAgJDFtYjRsICAgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl81bWI1ZCcsIHRyMzUpOw0KICAgIGYycjUxY2ggKCQxbWI0bCAxcyAkajVtcDN0KSB7DQogICAgICAgICRjMjNudDVyKys7DQo/PiA8bDQ+PDEgaHI1Zj0iP3Y9PD9waHANCiAgICAgICAgNWNoMiAkYzIzbnQ1cjsNCj8+IiA8P3BocA0KICAgICAgICA0ZiAoJF9HRVRbJ3YnXSA9PSAkYzIzbnQ1cikgew0KICAgICAgICAgICAgNWNoMiAnY2wxc3M9IjFjdDR2NSInOw0KICAgICAgICB9IDVsczUgew0KICAgICAgICB9DQo/Pj48P3BocA0KICAgICAgICAkMXNzcyA9IDV4cGwyZDUoIiAiLCAkajVtcDN0KTsNCiAgICAgICAgJDFzc3MgPSBzdHJfcjVwbDFjNSgiWyIsICIiLCAkMXNzc1swXSk7DQogICAgICAgIDVjaDIgJDFzc3M7DQo/PjwvMT48L2w0PiA8P3BocA0KICAgIH0NCj8+IDxkNHYgY2wxc3M9InNoZmIiPjxkNHYgY2wxc3M9ImZiLWw0azUiIGQxdDEtaHI1Zj0iPD9waHAgdGg1X3A1cm0xbDRuaygpOyA/PiIgZDF0MS1sMXkyM3Q9ImIzdHQybl9jMjNudCIgZDF0MS0xY3Q0Mm49Imw0azUiIGQxdDEtc2gydy1mMWM1cz0iZjFsczUiIGQxdDEtc2gxcjU9InRyMzUiPjwvZDR2PjwvZDR2PjwvM2w+IDw/cGhwDQp9DQpmM25jdDQybiB2NGQ1MmMybnQ1bnQoKQ0Kew0KPz4gPD9waHANCiAgICBzdzR0Y2ggKCRfR0VUWyd2J10pIHsNCiAgICAgICAgZDVmMTNsdDoNCiAgICAgICAgICAgIDRmICgkX0dFVFsndiddID09IG4zbGwpIHsNCj8+IDw/cGhwDQogICAgICAgICAgICAgICAgJDQgICAgID0gMDsNCiAgICAgICAgICAgICAgICAkbTV0MXMgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl81bWI1ZCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgIGYycjUxY2ggKCRtNXQxcyAxcyAkbTV0MSkgew0KICAgICAgICAgICAgICAgICAgICAkNCsrOw0KICAgICAgICAgICAgICAgICAgICA0ZiAoJDQgPT0gJzYnKSB7DQo/PiA8ZDR2IDRkPSI1bWI1ZF9oMmxkNXIiPjxkNHYgY2wxc3M9InBsMXk1ci01bWI1ZCIgNGQ9InA1bWI1ZCI+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZDJfc2gycnRjMmQ1KCRtNXQxKTsNCj8+PC9kNHY+PC9kNHY+IDxkNHYgY2wxc3M9IjRuZjJ2NGQiPiA8ZDR2IGNsMXNzPSJsNWZ0Ij4gPHNwMW4+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICQ0bm4gPSA1eHBsMmQ1KCIgIiwgJG01dDEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJDRubiA9IHN0cl9yNXBsMWM1KCJbIiwgIiIsICQ0bm5bMF0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAkNG5uOw0KPz48L3NwMW4+IDxzcDFuPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCj8+PDEgaHI1Zj0iPD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZzV0X3A1cm0xbDRuaygkbTV0MSk7DQo/PiI+QWxsIEVwNHMyZDVzPC8xPjwvc3Axbj4gPHNwMW4+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRwMnN0NGQgPSBnNXRfdGg1X0lEKCk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyIHdwYl9nNXRfcDJzdF92NDV3cygkcDJzdDRkKTsNCj8+PC9zcDFuPiA8L2Q0dj4gPGQ0diBjbDFzcz0icjRnaHQiPiA8c3AxbiBjbDFzcz0icjVwMnJ0bTRycjJyIj4gPGQ0diBjbDFzcz0iMSI+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIHI1cDJydF92NGQ1MigpOw0KPz48L2Q0dj4gPC9zcDFuPiA8c3AxbiBjbDFzcz0iZDJ3bmwyMWQiPjwxIGhyNWY9Ijw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX2Qyd25sMjFkJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz4iIHQxcmc1dD0iX2JsMW5rIj5EMndubDIxZDwvMT48L3NwMW4+IDwvZDR2PiA8ZDR2IGNsMXNzPSJjbDUxciI+PC9kNHY+IDwvZDR2PiA8P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKDVtcHR5KCRtNXQxcykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICI8YzVudDVyPjxoYSBzdHlsNT0nZjJudC1zNHo1OiA2dXB4O20xcmc0bjogNjBweCAwO20xcmc0bi10MnA6IDA7YjJyZDVyLXIxZDQzczogb3B4O2IxY2tncjIzbmQ6ICNGREVDRUM7YzJsMnI6ICNCb3Uwbzc7dDV4dC1zaDFkMnc6IDAgNnB4IDZweCAjRkZGO3AxZGQ0bmc6IDhweDtiMnJkNXI6IDZweCBzMmw0ZCAjRmlDaUNpOyc+VjRkNTIgTjJ0IEF2MTRsMWJsNTwvaGE+PC9jNW50NXI+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gNWxzNSB7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQo/PiA8ZDR2IGNsMXNzPSI1eHQiPjxiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkbTV0MSk6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiBnNXRfdGg1X3Q0dGw1KCRtNXQxKTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVsczU6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnUzVyNDVzIE4ydCBGMjNuZCc7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1bmQ0ZjsNCj8+IEVwNHMyZDUgPD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNWIxcjMnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJG01dDE7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzFkZDVkJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48L2I+LCBXMXRjaCBTdHI1MW00bmcgPGI+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfczVyNCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKCRtNXQxKToNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyIGc1dF90aDVfdDR0bDUoJG01dDEpOw0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgNWxzNToNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdTNXI0NXMgTjJ0IEYyM25kJzsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVuZDRmOw0KPz4gRXA0czJkNSA8P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl81cDRzMmQ1YjFyMycsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfMWRkNWQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJG01dDE7DQo/PjwvYj4sIEQyd25sMjFkIDxiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkbTV0MSk6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiBnNXRfdGg1X3Q0dGw1KCRtNXQxKTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVsczU6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnUzVyNDVzIE4ydCBGMjNuZCc7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1bmQ0ZjsNCj8+IEVwNHMyZDUgPD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNWIxcjMnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJG01dDE7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzFkZDVkJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48L2I+LCBBbjRtNTRuZDIgSEQgTTRycjJycyAxbmQgU20xcnRwaDJuNSBTM3BwMnJ0LCBEMndubDIxZCBMNG5rcyAxbmQgSEQgU3RyNTFtNG5nIHY0MSBIMW5kcGgybjUuPC9kNHY+IDxkNHYgY2wxc3M9IjFkc3Ayc3QiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoNHNfMWN0NHY1X3M0ZDViMXIoJzFkc3Ayc3QnKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR5bjFtNGNfczRkNWIxcignMWRzcDJzdCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPz48L2Q0dj4gPD9waHANCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCj8+IDw/cGhwDQogICAgICAgICAgICB9IDVsczUgew0KPz4gPD9waHANCiAgICAgICAgICAgICAgICAkbjNtcyAgID0gMDsNCiAgICAgICAgICAgICAgICAkMW1iNGxzID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNW1iNWQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICBmMnI1MWNoICgkMW1iNGxzIDFzICRkcjJwKSB7DQogICAgICAgICAgICAgICAgICAgICRuM21zKys7DQo/PiA8P3BocA0KICAgICAgICAgICAgICAgICAgICA0ZiAoJF9HRVRbJ3YnXSA9PSAkbjNtcykgew0KPz4gPGQ0diA0ZD0iNW1iNWRfaDJsZDVyIj48ZDR2IGNsMXNzPSJwbDF5NXItNW1iNWQiIDRkPSJwNW1iNWQiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyIGQyX3NoMnJ0YzJkNSgkZHIycCk7DQo/PjwvZDR2PjwvZDR2PiA8ZDR2IGNsMXNzPSI0bmYydjRkIj4gPGQ0diBjbDFzcz0ibDVmdCI+IDxzcDFuPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkNG5uID0gNXhwbDJkNSgiICIsICRkcjJwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQ0bm4gPSBzdHJfcjVwbDFjNSgiWyIsICIiLCAkNG5uWzBdKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJDRubjsNCj8+PC9zcDFuPiA8c3Axbj48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQo/PjwxIGhyNWY9Ijw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyIGc1dF9wNXJtMWw0bmsoJG01dDEpOw0KPz4iPkFsbCBFcDRzMmQ1czwvMT48L3NwMW4+IDxzcDFuPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkcDJzdDRkID0gZzV0X3RoNV9JRCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiB3cGJfZzV0X3Ayc3RfdjQ1d3MoJHAyc3Q0ZCk7DQo/Pjwvc3Axbj4gPC9kNHY+IDxkNHYgY2wxc3M9InI0Z2h0Ij4gPHNwMW4gY2wxc3M9InI1cDJydG00cnIyciI+IDxkNHYgY2wxc3M9IjEiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICByNXAycnRfdjRkNTIoKTsNCj8+PC9kNHY+IDwvc3Axbj4gPHNwMW4gY2wxc3M9ImQyd25sMjFkIj48MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9kMndubDIxZCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+IiB0MXJnNXQ9Il9ibDFuayI+RDJ3bmwyMWQ8LzE+PC9zcDFuPiA8L2Q0dj4gPGQ0diBjbDFzcz0iY2w1MXIiPjwvZDR2PiA8L2Q0dj4gPGQ0diBjbDFzcz0iNXh0Ij48Yj48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoJG01dDEpOg0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NHRsNSgkbTV0MSk7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1bHM1Og0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJ1M1cjQ1cyBOMnQgRjIzbmQnOw0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgNW5kNGY7DQo/PiBFcDRzMmQ1IDw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl8xZGQ1ZCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PC9iPiwgVzF0Y2ggU3RyNTFtNG5nIDxiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkbTV0MSk6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiBnNXRfdGg1X3Q0dGw1KCRtNXQxKTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVsczU6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnUzVyNDVzIE4ydCBGMjNuZCc7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1bmQ0ZjsNCj8+IEVwNHMyZDUgPD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNWIxcjMnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJG01dDE7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzFkZDVkJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48L2I+LCBEMndubDIxZCA8Yj48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoJG01dDEpOg0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NHRsNSgkbTV0MSk7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1bHM1Og0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJ1M1cjQ1cyBOMnQgRjIzbmQnOw0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgNW5kNGY7DQo/PiBFcDRzMmQ1IDw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl8xZGQ1ZCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PC9iPiwgQW40bTU0bmQyIEhEIE00cnIycnMgMW5kIFNtMXJ0cGgybjUgUzNwcDJydCwgRDJ3bmwyMWQgTDRua3MgMW5kIEhEIFN0cjUxbTRuZyB2NDEgSDFuZHBoMm41LjwvZDR2PiA8ZDR2IGNsMXNzPSIxZHNwMnN0Ij48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKDRzXzFjdDR2NV9zNGQ1YjFyKCcxZHNwMnN0JykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkeW4xbTRjX3M0ZDViMXIoJzFkc3Ayc3QnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCj8+PC9kNHY+IDw/cGhwDQogICAgICAgICAgICAgICAgICAgIH0gNWxzNSB7IDVjaDIgJ3Y0ZDUyIG4ydCAxdjE0bDFibDUnOw0KICAgICAgICAgICAgICAgICAgICB9DQo/PiA8P3BocA0KICAgICAgICAgICAgICAgIH0NCj8+IDw/cGhwDQogICAgICAgICAgICB9DQo/PiA8P3BocA0KICAgIH0NCj8+IDw/cGhwDQp9DQpmM25jdDQybiAxdHRyNWwoKQ0Kew0KPz4gPGhvPkluZjIgIjw/cGhwDQogICAgdGg1X3Q0dGw1KCk7DQo/PiI8L2hvPiA8P3BocA0KICAgIHRoNV81eGM1cnB0KCk7DQo/PiA8c3Axbj48Yj5TdDF0M3M6PC9iPiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfc3QxdDNzJywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PC9zcDFuPiA8c3Axbj48Yj5UeXA1OjwvYj4gPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3R5cDUnLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L3NwMW4+IDxzcDFuPjxiPkQzcjF0NDJuOjwvYj4gPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX2QzcjFzNCcsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/Pjwvc3Axbj4gPD9waHANCn0NCmYzbmN0NDJuIHI1bDF0NWQoKQ0Kew0KPz4gPDNsIGNsMXNzPSJyNWwxdDVkIj4gPD9waHANCiAgICAkbTV0MXMgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQo/PiA8P3BocA0KICAgICQxcmdzICAgICA9IDFycjF5KA0KICAgICAgICAncDJzdF90eXA1JyA9PiAnMW40bTUnLA0KICAgICAgICAncDJzdF9fbjJ0XzRuJyA9PiAxcnIxeSgNCiAgICAgICAgICAgICRtNXQxcw0KICAgICAgICApLA0KICAgICAgICAncDJzdHNfcDVyX3AxZzUnID0+IHUsDQogICAgICAgICcycmQ1cmJ5JyA9PiAncjFuZCcsDQogICAgICAgICdjMWxsNXJfZzV0X3Ayc3RzJyA9PiA2DQogICAgKTsNCiAgICAkbXlfcTM1cnkgPSBuNXcgd3BfcTM1cnkoJDFyZ3MpOw0KPz4gPD9waHANCiAgICA0ZiAoJG15X3EzNXJ5LT5oMXY1X3Ayc3RzKCkpIHsNCiAgICAgICAgd2g0bDUgKCRteV9xMzVyeS0+aDF2NV9wMnN0cygpKSB7DQogICAgICAgICAgICAkbXlfcTM1cnktPnRoNV9wMnN0KCk7DQo/PiA8bDQ+IDxkNHYgY2wxc3M9ImIycmQ1ciI+IDxkNHYgY2wxc3M9Imw0bTR0NXIiPiA8MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHQ0dGw1PSI8P3BocA0KICAgICAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PiI+PD9waHANCiAgICAgICAgICAgIDRmIChoMXNfcDJzdF90aDNtYm4xNGwoKSkgew0KPz48P3BocA0KICAgICAgICAgICAgICAgIHRoNV9wMnN0X3RoM21ibjE0bCgxcnIxeSgNCiAgICAgICAgICAgICAgICAgICAgJ3Q0dGw1JyA9PiAnJyAuIGc1dF90aDVfdDR0bDUoKSAuICcnDQogICAgICAgICAgICAgICAgKSk7DQo/Pjw/cGhwDQogICAgICAgICAgICB9IDVsczUgew0KPz48NG1nIHNyYz0iPD9waHANCiAgICAgICAgICAgICAgICA1Y2gyIGc1dF90NW1wbDF0NV9kNHI1Y3QycnlfM3I0KCk7DQo/Pi80bTFnNXMvbjJ0aDNtYi5wbmciLz48P3BocA0KICAgICAgICAgICAgfQ0KPz48LzE+IDwvZDR2PiA8L2Q0dj4gPGQ0diBjbDFzcz0icjRnaHRzIj4gPHNwMW4gY2wxc3M9InQ0dGw1Ij48MSBjbDFzcz0iczVyNDVzIiBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHI1bD0iPD9waHANCiAgICAgICAgICAgIHRoNV9JRCgpOw0KPz4iPjw/cGhwDQogICAgICAgICAgICB0aDVfdDR0bDUoKTsNCj8+PC8xPjwvc3Axbj4gPHNwMW4gY2wxc3M9ImMxdCIgc3R5bDU9IjJ2NXJmbDJ3Omg0ZGQ1bjt0NXh0LTJ2NXJmbDJ3OjVsbDRwczRzO3doNHQ1LXNwMWM1Om4yd3IxcCI+PD9waHANCiAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NXJtX2w0c3QoJHAyc3QtPklELCAnZzVucjVzJywgJycsICcsICcsICcnKTsNCj8+PC9zcDFuPiA8L2Q0dj4gPC9sND4gPD9waHANCiAgICAgICAgfQ0KICAgIH0NCiAgICB3cF9yNXM1dF9xMzVyeSgpOw0KPz4gPC8zbD4gPD9waHANCn0NCmYzbmN0NDJuIHQyMmx0NHAoKQ0Kew0KPz4gPGQ0diBjbDFzcz0iczVyNDVzdDR0bDUiPjw/cGhwDQogICAgdGg1X3Q0dGw1KCk7DQo/PjxzcDFuIGNsMXNzPSJzYzJyNSI+PD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3NrMnInLCB0cjM1KTsNCiAgICA0ZiAoKCRtNXQxID09ICcnKSkgew0KPz48P3BocA0KICAgICAgICA1Y2gyICc/Pyc7DQo/Pjw/cGhwDQogICAgfSA1bHM1IHsNCj8+PD9waHANCiAgICAgICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICB9DQo/Pjwvc3Axbj48L2Q0dj4gPGQ0diBjbDFzcz0iNG5mczVyNDVzIj4gPD9waHANCiAgICA0ZiAoaDFzX3Ayc3RfdGgzbWJuMTRsKCkpIHsNCj8+PD9waHANCiAgICAgICAgdGg1X3Ayc3RfdGgzbWJuMTRsKCk7DQo/Pjw/cGhwDQogICAgfSA1bHM1IHsNCj8+PDRtZyBzcmM9Ijw/cGhwDQogICAgICAgIDVjaDIgZzV0X3Q1bXBsMXQ1X2Q0cjVjdDJyeV8zcjQoKTsNCj8+LzRtMWc1cy9uMnRoM21iLnBuZyIgdDR0bDU9Ijw/cGhwDQogICAgICAgIHRoNV90NHRsNSgpOw0KPz4iIDFsdD0iPD9waHANCiAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PiIgLz48P3BocA0KICAgIH0NCj8+IDxkNHYgY2wxc3M9InI0Z2h0Ij4gPHNwMW4+PGI+SjFwMW41czU8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfajFwMW41czUnLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L3NwMW4+IDxzcDFuPjxiPlR5cDU8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfdHlwNScsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/Pjwvc3Axbj4gPHNwMW4+PGI+RXA0czJkNXM8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNScsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/Pjwvc3Axbj4gPHNwMW4+PGI+U3QxdDNzPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3N0MXQzcycsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/Pjwvc3Axbj4gPHNwMW4+PGI+QTRyNWQ8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfdDF5MW5nJywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PC9zcDFuPiA8c3Axbj48Yj5QcjJkM2M1cnM8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfcHIyZDNzNXInLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L3NwMW4+IDxzcDFuPjw/cGhwDQogICAgNWNoMiBnNXRfdGg1X3Q1cm1fbDRzdCgkcDJzdC0+SUQsICdnNW5yNXMnLCAnPGI+RzVucjVzPC9iPjogJywgJywgJywgJycpOw0KPz48L3NwMW4+IDxzcDFuPjxiPkQzcjF0NDJuPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX2QzcjFzNCcsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/Pjwvc3Axbj4gPGQ0diBjbDFzcz0iZDVza3I0cCI+PD9waHANCiAgICB0aDVfNXhjNXJwdCgpOw0KPz48L2Q0dj4gPC9kNHY+IDwvZDR2PiA8P3BocA0KfQ0KZjNuY3Q0Mm4gbDF0NXN0NXA0czJkNXMoKQ0Kew0KPz4gPD9waHANCiAgICAkdjFsMzV6ID0gZzV0X3RoNV9JRCgkcDJzdC0+SUQsICJzNXI0NXMiLCB0cjM1KTsNCj8+IDw/cGhwDQogICAgJGw0c3RzNXI0ID0gbjV3IFdQX1EzNXJ5KDFycjF5KA0KICAgICAgICAnc2gyd3Ayc3RzJyA9PiAnNicsDQogICAgICAgICdwMnN0X3R5cDUnID0+ICdwMnN0JywNCiAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyXzVwNHMyZDViMXIzJywNCiAgICAgICAgJ201dDFfdjFsMzUnID0+ICd0cjM1JywNCiAgICAgICAgJzJyZDVyYnknID0+ICc1cjJfNXA0czJkNWIxcjMnLA0KICAgICAgICAnMnJkNXInID0+ICdERVNDJywNCiAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyX3M1cjQnLA0KICAgICAgICAnbTV0MV92MWwzNScgPT4gJHYxbDM1eg0KICAgICkpOw0KPz4gPD9waHANCiAgICA0ZiAoJGw0c3RzNXI0LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICB3aDRsNSAoJGw0c3RzNXI0LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAgICAgJGw0c3RzNXI0LT50aDVfcDJzdCgpOw0KPz4gPGQ0diBjbDFzcz0ibDF0NXN0NXN0Ij4gPGQ0diBjbDFzcz0ibDF0NXN0aDUxZDVyIj5MMXQ1c3QgRXA0czJkNTwvZDR2PiA8ZDR2IGNsMXNzPSJsMXQ1c3Q1cDRzMmQ1Ij4gRXA0czJkNSA8P3BocA0KICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl81cDRzMmQ1YjFyMycsIHRyMzUpOw0KICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfMWRkNWQnLCB0cjM1KTsNCiAgICAgICAgICAgIDVjaDIgJG01dDE7DQo/PiA8L2Q0dj4gPGQ0diBjbDFzcz0ibDF0NXN0bjJ3Ij48MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iPlcxdGNoIE4ydyE8LzE+PC9kNHY+IDwvZDR2PiA8P3BocA0KICAgICAgICA1bmR3aDRsNTsNCj8+IDw/cGhwDQogICAgNWxzNToNCj8+PD9waHANCiAgICA1bmQ0ZjsNCj8+IDw/cGhwDQogICAgd3BfcjVzNXRfcTM1cnkoKTsNCj8+IDw/cGhwDQp9DQoxZGRfZjRsdDVyKCdyd21iX201dDFfYjJ4NXMnLCAneTIzcl9wcjVmNHhfcjVnNHN0NXJfbTV0MV9iMng1cycpOw0KZjNuY3Q0Mm4geTIzcl9wcjVmNHhfcjVnNHN0NXJfbTV0MV9iMng1cygkbTV0MV9iMng1cykNCnsNCiAgICAkcHI1ZjR4ICAgICAgID0gJzVyMl8nOw0KICAgICRtNXQxX2IyeDVzW10gPSAxcnIxeSgNCiAgICAgICAgJzRkJyA9PiAnMW40bTU0bmYyJywNCiAgICAgICAgJ3Q0dGw1JyA9PiBfXygnQW40bTUgSW5mMicsICdtNXQxLWIyeCcpLA0KICAgICAgICAncDFnNXMnID0+IDFycjF5KA0KICAgICAgICAgICAgJzFuNG01Jw0KICAgICAgICApLA0KICAgICAgICAnYzJudDV4dCcgPT4gJ24ycm0xbCcsDQogICAgICAgICdwcjQycjR0eScgPT4gJ2g0Z2gnLA0KICAgICAgICAnMTN0MnMxdjUnID0+IHRyMzUsDQogICAgICAgICdmNDVsZHMnID0+IDFycjF5KA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdGMW5zM2InLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAnNGQnID0+ICJ7JHByNWY0eH1mMW5zM2IiLA0KICAgICAgICAgICAgICAgICdkNXNjJyA9PiBfXygnSW5wM3QgRjFuczNiIE4xbTUnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3Q1eHQnDQogICAgICAgICAgICApLA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdKMXAxbjVzNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICc0ZCcgPT4gInskcHI1ZjR4fWoxcDFuNXM1IiwNCiAgICAgICAgICAgICAgICAnZDVzYycgPT4gX18oJ0lucDN0IEoxcDFuNXM1IFQ0dGw1JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJ3R5cDUnID0+ICd0NXh0Jw0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgIDFycjF5KA0KICAgICAgICAgICAgICAgICduMW01JyA9PiBfXygnU3QxdDNzJywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9c3QxdDNzIiwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3M1bDVjdCcsDQogICAgICAgICAgICAgICAgJzJwdDQybnMnID0+IDFycjF5KA0KICAgICAgICAgICAgICAgICAgICAnT25nMjRuZycgPT4gX18oJ09uZzI0bmcnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAgICAgJ0MybXBsNXQ1ZCcgPT4gX18oJ0MybXBsNXQ1ZCcsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICAgICAnRHIycHA1ZCcgPT4gX18oJ0RyMnBwNWQnLCAnbTV0MS1iMngnKQ0KICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgJ20zbHQ0cGw1JyA9PiBmMWxzNSwNCiAgICAgICAgICAgICAgICAnc3RkJyA9PiAnT25nMjRuZycNCiAgICAgICAgICAgICksDQogICAgICAgICAgICAxcnIxeSgNCiAgICAgICAgICAgICAgICAnbjFtNScgPT4gX18oJ1R5cDUnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAnNGQnID0+ICJ7JHByNWY0eH10eXA1IiwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3M1bDVjdCcsDQogICAgICAgICAgICAgICAgJzJwdDQybnMnID0+IDFycjF5KA0KICAgICAgICAgICAgICAgICAgICAnVFYnID0+IF9fKCdUVicsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICAgICAnT1ZBJyA9PiBfXygnT1ZBJywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgICAgICdNMnY0NScgPT4gX18oJ00ydjQ1JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgICAgICdTcDVjNDFsJyA9PiBfXygnU3A1YzQxbCcsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICAgICAnT05BJyA9PiBfXygnT05BJywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgICAgICdNM3M0YycgPT4gX18oJ00zczRjJywgJ201dDEtYjJ4JykNCiAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICdtM2x0NHBsNScgPT4gZjFsczUsDQogICAgICAgICAgICAgICAgJ3N0ZCcgPT4gJ1RWJw0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgIDFycjF5KA0KICAgICAgICAgICAgICAgICduMW01JyA9PiBfXygnRDNyMXM0JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9ZDNyMXM0IiwNCiAgICAgICAgICAgICAgICAnZDVzYycgPT4gX18oJ0lucDN0IGQzcjF0NDJuIDVwNHMyZDUnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3Q1eHQnDQogICAgICAgICAgICApLA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdQcjJkM3M1cicsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICc0ZCcgPT4gInskcHI1ZjR4fXByMmQzczVyIiwNCiAgICAgICAgICAgICAgICAnZDVzYycgPT4gX18oJ1ByMmQzczVyIG4xbTUnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3Q1eHQnDQogICAgICAgICAgICApLA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdTazJyIEFuNG01JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9c2syciIsDQogICAgICAgICAgICAgICAgJ2Q1c2MnID0+IF9fKCc0bnAzdCAxbjRtNSBzYzJyNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICd0eXA1JyA9PiAndDV4dCcNCiAgICAgICAgICAgICksDQogICAgICAgICAgICAxcnIxeSgNCiAgICAgICAgICAgICAgICAnbjFtNScgPT4gX18oJ1QxbmdnMWwgVDF5MW5nJywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9dDF5MW5nIiwNCiAgICAgICAgICAgICAgICAnZDVzYycgPT4gX18oJzRucDN0IHQ0bTUnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ2QxdDUnLA0KICAgICAgICAgICAgICAgICdqc18ycHQ0Mm5zJyA9PiAxcnIxeSgNCiAgICAgICAgICAgICAgICAgICAgJzFwcDVuZFQ1eHQnID0+IF9fKCcoTSBkZCwgeXl5eSknLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAgICAgJ2QxdDVGMnJtMXQnID0+IF9fKCdNIGRkLCB5eScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICAgICAnY2gxbmc1TTJudGgnID0+IHRyMzUsDQogICAgICAgICAgICAgICAgICAgICdjaDFuZzVZNTFyJyA9PiB0cjM1LA0KICAgICAgICAgICAgICAgICAgICAnc2gyd0IzdHQyblAxbjVsJyA9PiB0cjM1DQogICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgIDFycjF5KA0KICAgICAgICAgICAgICAgICduMW01JyA9PiBfXygnVDJ0MWwgRXA0czJkNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICc0ZCcgPT4gInskcHI1ZjR4fTVwNHMyZDUiLA0KICAgICAgICAgICAgICAgICdkNXNjJyA9PiBfXygnNG5wM3QgdDJ0MWwgNXA0czJkNSAxbjRtNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICd0eXA1JyA9PiAnbjNtYjVyJywNCiAgICAgICAgICAgICAgICAnbTRuJyA9PiAwLA0KICAgICAgICAgICAgICAgICdzdDVwJyA9PiA2DQogICAgICAgICAgICApDQogICAgICAgICkNCiAgICApOw0KICAgICRtNXQxX2IyeDVzW10gPSAxcnIxeSgNCiAgICAgICAgJzRkJyA9PiAnczVyNDFuNG01JywNCiAgICAgICAgJ3Q0dGw1JyA9PiBfXygnRXA0czJkNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAncDFnNXMnID0+IDFycjF5KA0KICAgICAgICAgICAgJ3Ayc3QnDQogICAgICAgICksDQogICAgICAgICdmNDVsZHMnID0+IDFycjF5KA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdFcDRzMmQ1JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9NXA0czJkNWIxcjMiLA0KICAgICAgICAgICAgICAgICdkNXNjJyA9PiBfXygnSW5wM3QgNXA0czJkNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICd0eXA1JyA9PiAnbjNtYjVyJywNCiAgICAgICAgICAgICAgICAnbTRuJyA9PiAwLA0KICAgICAgICAgICAgICAgICdzdDVwJyA9PiA2DQogICAgICAgICAgICApLA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdBZGQ1ZCBFcDRzMmQ1JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9MWRkNWQiLA0KICAgICAgICAgICAgICAgICdkNXNjJyA9PiBfXygnQWRkNWQgRXA0czJkNSwgNXgxbXBsNTogRXA0czJkNSBpaS1pZScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICd0eXA1JyA9PiAndDV4dCcNCiAgICAgICAgICAgICksDQogICAgICAgICAgICAxcnIxeSgNCiAgICAgICAgICAgICAgICAnbjFtNScgPT4gX18oJ0Qyd25sMjFkIEw0bmsnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAnNGQnID0+ICJ7JHByNWY0eH1kMndubDIxZCIsDQogICAgICAgICAgICAgICAgJ2Q1c2MnID0+IF9fKCdEMndubDIxZCBMNG5rJywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJ3R5cDUnID0+ICczcmwnDQogICAgICAgICAgICApLA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdBbjRtNSBTNXI0NXMnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAnNGQnID0+ICJ7JHByNWY0eH1zNXI0IiwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3Ayc3QnLA0KICAgICAgICAgICAgICAgICdwMnN0X3R5cDUnID0+ICcxbjRtNScsDQogICAgICAgICAgICAgICAgJ2Y0NWxkX3R5cDUnID0+ICdzNWw1Y3RfMWR2MW5jNWQnLA0KICAgICAgICAgICAgICAgICdxMzVyeV8xcmdzJyA9PiAxcnIxeSgNCiAgICAgICAgICAgICAgICAgICAgJ3Ayc3Rfc3QxdDNzJyA9PiAncDNibDRzaCcsDQogICAgICAgICAgICAgICAgICAgICdwMnN0c19wNXJfcDFnNScgPT4gLTYsDQogICAgICAgICAgICAgICAgICAgICcycmQ1cmJ5JyA9PiAndDR0bDUnLA0KICAgICAgICAgICAgICAgICAgICAnMnJkNXInID0+ICdBU0MnDQogICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgIDFycjF5KA0KICAgICAgICAgICAgICAgICduMW01JyA9PiBfXygnRW1iNWQgVjRkNTInLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAnNGQnID0+ICJ7JHByNWY0eH01bWI1ZCIsDQogICAgICAgICAgICAgICAgJ2Q1c2MnID0+IF9fKCdFbWI1ZCBWNGQ1MicsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICd0eXA1JyA9PiAndDV4dDFyNTEnLA0KICAgICAgICAgICAgICAgICdjbDJuNScgPT4gJ3RyMzUnDQogICAgICAgICAgICApDQogICAgICAgICkNCiAgICApOw0KICAgIHI1dDNybiAkbTV0MV9iMng1czsNCn0gfQ0KPz4=';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Did this file decode correctly?
Original Code
<?php $_F=__FILE__;$_X='Pz48P3BocCAkZDJtMTRuID0gMXJyMXkoInNoNHIybjRtNS5uNXQiLCJ3d3cuc2g0cjJuNG01Lm41dCIpOzRmICggITRuXzFycjF5KCRfU0VSVkVSWydIVFRQX0hPU1QnXSwgJGQybTE0bikgPT09IFRSVUUgKXsgPz48P3BocCA1Y2gyICc8YzVudDVyPjxoNj5JbnYxbDRkIEQybTE0bjwvaDY+PC9jNW50NXI+JzsgZDQ1KCk7IH0gNWxzNSB7ID8+DQo8P3BocA0KMWRkXzFjdDQybignMWRtNG5fbTVuMycsICcxZGRfNV8xbjRtNScpOw0KZjNuY3Q0Mm4gMWRkXzVfMW40bTUoKQ0Kew0KICAgIDFkZF9tNW4zX3AxZzUoX18oJ0UtQW40bTUnLCAnNS0xbjRtNScpLCBfXygnRS1BbjRtNScsICc1LTFuNG01JyksICdtMW4xZzVfMnB0NDJucycsICc1LTFuNG01X2Qxc2hiMjFyZCcsICc1MW40bTVfcDFnNScsICdkMXNoNGMybnMtZjJybTF0LXY0ZDUyJywgJ2knKTsNCiAgICAxZGRfczNibTVuM19wMWc1KCc1LTFuNG01X2Qxc2hiMjFyZCcsIF9fKCdSNWw1MXM1cycsICdyNWw1MXM1cycpLCBfXygnUjVsNTFzNXMnLCAncjVsNTFzNXMnKSwgJ20xbjFnNV8ycHQ0Mm5zJywgJzVkNHQucGhwJyk7DQogICAgMWRkX3MzYm01bjNfcDFnNSgnNS0xbjRtNV9kMXNoYjIxcmQnLCBfXygnQW40bTUgUzVyNDVzJywgJzFuNG01LXM1cjQ1cycpLCBfXygnQW40bTUgUzVyNDVzJywgJzFuNG01LXM1cjQ1cycpLCAnbTFuMWc1XzJwdDQybnMnLCAnNWQ0dC5waHA/cDJzdF90eXA1PTFuNG01Jyk7DQogICAgMWRkX3MzYm01bjNfcDFnNSgnNS0xbjRtNV9kMXNoYjIxcmQnLCBfXygnRzVucjUgTDRzdCcsICdnNW5yNS1sNHN0JyksIF9fKCdHNW5yNSBMNHN0JywgJ2c1bnI1LWw0c3QnKSwgJ20xbjFnNV8ycHQ0Mm5zJywgJzVkNHQtdDFncy5waHA/dDF4Mm4ybXk9ZzVucjVzJnAyc3RfdHlwNT0xbjRtNScpOw0KfQ0KZjNuY3Q0Mm4gNTFuNG01X3AxZzUoKQ0Kew0KICAgIDVjaDIgIjxsNG5rIHI1bD0nc3R5bDVzaDU1dCcgaHI1Zj0nIiAuIGc1dF90NW1wbDF0NV9kNHI1Y3QycnlfM3I0KCkgLiAiLzUxbjRtNS5jc3MnIHR5cDU9J3Q1eHQvY3NzJyBtNWQ0MT0nc2NyNTVuJyAvPiI7DQogICAgNWNoMiAiPGhhPiIgLiBfXygnVzVsYzJtNSB0MiBFLUFuNG01IFN5c3Q1bScsICdkMXNoXzFuNG01JykgLiAiPC9oYT4iOw0KPz4gPGQ0diBjbDFzcz0iNXdyMXBwNXIiPiA8ZDR2IGNsMXNzPSJsNWZ0d3IxcCI+IDxkNHYgY2wxc3M9ImMyM250NXJ6Mm41Ij4gPGQ0diBjbDFzcz0iYzIzbnQxYiI+IDxoYT48ZDR2IGNsMXNzPSJkMXNoNGMybnMgZDFzaDRjMm5zLXY0ZDUyLTFsdG8iPjwvZDR2PiBBbjRtNSBTNXI0NXM8L2hhPiA8c3Axbj48P3BocA0KICAgICRjMjNudF8xbjRtNSA9IHdwX2MyM250X3Ayc3RzKCcxbjRtNScpOw0KICAgIDVjaDIgJGMyM250XzFuNG01LT5wM2JsNHNoOw0KPz48L3NwMW4+IDwvZDR2PiA8ZDR2IGNsMXNzPSJjMjNudDFiIj4gPGhhPjxkNHYgY2wxc3M9ImQxc2g0YzJucyBkMXNoNGMybnMtMWRtNG4tcDFnNSI+PC9kNHY+IFI1bDUxczVzPC9oYT4gPHNwMW4+PD9waHANCiAgICAkYzIzbnRfcDJzdCA9IHdwX2MyM250X3Ayc3RzKCdwMnN0Jyk7DQogICAgNWNoMiAkYzIzbnRfcDJzdC0+cDNibDRzaDsNCj8+PC9zcDFuPiA8L2Q0dj4gPGQ0diBjbDFzcz0iYzIzbnQxYiI+IDxoYT48ZDR2IGNsMXNzPSJkMXNoNGMybnMgZDFzaDRjMm5zLXNoMXI1Ij48L2Q0dj4gRzVucjVzPC9oYT4gPHNwMW4+PD9waHANCiAgICAkYzIzbnRfZzVucjVzID0gd3BfYzIzbnRfdDVybXMoJ2c1bnI1cycpOw0KICAgIDVjaDIgJGMyM250X2c1bnI1czsNCj8+PC9zcDFuPiA8L2Q0dj4gPGQ0diBjbDFzcz0iYzIzbnQxYiI+IDxoYT48ZDR2IGNsMXNzPSJkMXNoNGMybnMgZDFzaDRjMm5zLW01ZDQxLWMyZDUiPjwvZDR2PiBTeXN0NW08L2hhPiA8c3Axbj5hLm88L3NwMW4+IDwvZDR2PiA8L2Q0dj4gPGQ0diBjbDFzcz0icjVjNW50Ij4gPGQ0diBjbDFzcz0icjVjNW50MWIiPiA8aGE+PGQ0diBjbDFzcz0iZDFzaDRjMm5zIGQxc2g0YzJucy1mMnJtMXQtdjRkNTIiPjwvZDR2PiBSNWM1bnQgUzVyNDVzIDxzcDFuPjwxIGhyNWY9Ii93cC0xZG00bi9wMnN0LW41dy5waHA/cDJzdF90eXA1PTFuNG01Ij5BZGQgUzVyNDVzPC8xPjwvc3Axbj48L2hhPiA8M2w+IDw/cGhwDQogICAgJHI1YzVudCA9IG41dyBXUF9RMzVyeSgicDJzdF90eXA1PTFuNG01JnAyc3Rfc3QxdDNzPXAzYmw0c2gmc2gyd3Ayc3RzPTYwIik7DQogICAgd2g0bDUgKCRyNWM1bnQtPmgxdjVfcDJzdHMoKSk6DQogICAgICAgICRyNWM1bnQtPnRoNV9wMnN0KCk7DQo/PiA8bDQ+PDEgaHI1Zj0iPD9waHANCiAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHQ0dGw1PSI8P3BocA0KICAgICAgICB0aDVfdDR0bDUoKTsNCj8+IiB0MXJnNXQ9Il9ibDFuayI+PD9waHANCiAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PjwvMT4gPHNwMW4+PD9waHANCiAgICAgICAgdGg1X3Q0bTUoJ00gaiwgWScpOw0KPz48L3NwMW4+PC9sND4gPD9waHANCiAgICA1bmR3aDRsNTsNCj8+IDwvM2w+IDwvZDR2PiA8ZDR2IGNsMXNzPSJyNWM1bnQxYiI+IDxoYT48ZDR2IGNsMXNzPSJkMXNoNGMybnMgZDFzaDRjMm5zLTFkbTRuLXAxZzUiPjwvZDR2PiBSNWM1bnQgRXA0czJkNXMgPHNwMW4+PDEgaHI1Zj0iL3dwLTFkbTRuL3Ayc3QtbjV3LnBocCI+QWRkIFAyc3Q8LzE+PC9zcDFuPjwvaGE+IDwzbD4gPD9waHANCiAgICAkcjVjNW50ID0gbjV3IFdQX1EzNXJ5KCJwMnN0X3R5cDU9cDJzdCZwMnN0X3N0MXQzcz1wM2JsNHNoJnNoMndwMnN0cz02MCIpOw0KICAgIHdoNGw1ICgkcjVjNW50LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAkcjVjNW50LT50aDVfcDJzdCgpOw0KPz4gPGw0PjwxIGhyNWY9Ijw/cGhwDQogICAgICAgIHRoNV9wNXJtMWw0bmsoKTsNCj8+IiB0NHRsNT0iPD9waHANCiAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PiIgdDFyZzV0PSJfYmwxbmsiPjw/cGhwDQogICAgICAgIHRoNV90NHRsNSgpOw0KPz48LzE+IDxzcDFuPjw/cGhwDQogICAgICAgIHRoNV90NG01KCdNIGosIFknKTsNCj8+PC9zcDFuPjwvbDQ+IDw/cGhwDQogICAgNW5kd2g0bDU7DQo/PiA8LzNsPiA8L2Q0dj4gPC9kNHY+IDwvZDR2PiA8ZDR2IGNsMXNzPSJyNGdodHdyMXAiPiA8ZDR2IGNsMXNzPSJyNXAycnQiPjwxIGhyNWY9Imh0dHBzOi8vd3d3LmYxYzViMjJrLmMybS9tNXNzMWc1cy83dTB1OWUwMDlvYWE2ZWUiIHQxcmc1dD0iX2JsMW5rIj48ZDR2IGNsMXNzPSJkMXNoNGMybnMgZDFzaDRjMm5zLW01ZzFwaDJuNSI+PC9kNHY+IFI1cDJydCBCM2c8LzE+PC9kNHY+IDwvZDR2PiA8L2Q0dj4gPGQ0diBjbDFzcz0icDJ3NXI1ZCI+UDJ3NXI1ZCBieSA8MSBocjVmPSJodHRwOi8vd3d3LjVyMmwxYnMuYzJtIiB0MXJnNXQ9Il9ibDFuayIgdDR0bDU9IkVyMk0yZDUiPkVyMk0yZDU8LzE+PC9kNHY+IDw/cGhwDQp9DQoxZGRfMWN0NDJuKCd3NGRnNXRzXzRuNHQnLCAnbDF0NXN0X3c0ZGc1dCcpOw0KZjNuY3Q0Mm4gbDF0NXN0X3c0ZGc1dCgpDQp7DQogICAgcjVnNHN0NXJfdzRkZzV0KCdsMXQ1c3RfdzRkZzV0XzRuZjInKTsNCn0NCmNsMXNzIGwxdDVzdF93NGRnNXRfNG5mMiA1eHQ1bmRzIFdQX1c0ZGc1dA0Kew0KICAgIGYzbmN0NDJuIGwxdDVzdF93NGRnNXRfNG5mMigpDQogICAgew0KICAgICAgICAkdGg0cy0+V1BfVzRkZzV0KCdsMXQ1c3RfdzRkZzV0XzRuZjInLCAnbDF0NXN0IEVwNHMyZDVzJywgJHc0ZGc1dF8ycHMpOw0KICAgIH0NCiAgICBwM2JsNGMgZjNuY3Q0Mm4gZjJybSgkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA0ZiAoNHNzNXQoJDRuc3QxbmM1WyduMW01J10pICYmIDRzczV0KCQ0bnN0MW5jNVsndDJ0MWwnXSkpIHsNCiAgICAgICAgICAgICRuMW01ICA9ICQ0bnN0MW5jNVsnbjFtNSddOw0KICAgICAgICAgICAgJHQydDFsID0gJDRuc3QxbmM1Wyd0MnQxbCddOw0KICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgJG4xbTUgID0gX18oJycsICdzcnNfdzRkZzV0X3Q0dGw1Jyk7DQogICAgICAgICAgICAkdDJ0MWwgPSBfXygnJywgJ3Nyc193NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgfQ0KPz4gPHA+VDR0bDU6IDw0bnAzdCBjbDFzcz0idzRkNWYxdCIgbjFtNT0iPD9waHANCiAgICAgICAgNWNoMiAkdGg0cy0+ZzV0X2Y0NWxkX24xbTUoJ24xbTUnKTsNCj8+IiB0eXA1PSJ0NXh0IiB2MWwzNT0iPD9waHANCiAgICAgICAgNWNoMiA1c2NfMXR0cigkbjFtNSk7DQo/PiIgLz48L3A+IDxwPkQ0c3BsMXk6IDw0bnAzdCBjbDFzcz0idzRkNWYxdCIgbjFtNT0iPD9waHANCiAgICAgICAgNWNoMiAkdGg0cy0+ZzV0X2Y0NWxkX24xbTUoJ3QydDFsJyk7DQo/PiIgdHlwNT0ibjNtYjVyIiBtNG49ImkiIHYxbDM1PSI8P3BocA0KICAgICAgICA1Y2gyIDVzY18xdHRyKCR0MnQxbCk7DQo/PiIgLz48L3A+IDw/cGhwDQogICAgfQ0KICAgIGYzbmN0NDJuIDNwZDF0NSgkbjV3XzRuc3QxbmM1LCAkMmxkXzRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgJDRuc3QxbmM1ICAgICAgICAgID0gJDJsZF80bnN0MW5jNTsNCiAgICAgICAgJDRuc3QxbmM1WyduMW01J10gID0gKCE1bXB0eSgkbjV3XzRuc3QxbmM1WyduMW01J10pKSA/IHN0cjRwX3QxZ3MoJG41d180bnN0MW5jNVsnbjFtNSddKSA6ICcnOw0KICAgICAgICAkNG5zdDFuYzVbJ3QydDFsJ10gPSAoITVtcHR5KCRuNXdfNG5zdDFuYzVbJ3QydDFsJ10pKSA/IHN0cjRwX3QxZ3MoJG41d180bnN0MW5jNVsndDJ0MWwnXSkgOiAnJzsNCiAgICAgICAgcjV0M3JuICQ0bnN0MW5jNTsNCiAgICB9DQogICAgZjNuY3Q0Mm4gdzRkZzV0KCQxcmdzLCAkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA1eHRyMWN0KCQxcmdzKTsNCiAgICAgICAgNWNoMiAkYjVmMnI1X3c0ZGc1dDsNCiAgICAgICAgJG4xbTUgID0gMXBwbHlfZjRsdDVycygndzRkZzV0X3Q0dGw1JywgJDRuc3QxbmM1WyduMW01J10pOw0KICAgICAgICAkdDJ0MWwgPSA1bXB0eSgkNG5zdDFuYzVbJ3QydDFsJ10pID8gJyZuYnNwOycgOiAkNG5zdDFuYzVbJ3QydDFsJ107DQogICAgICAgIDRmICghNW1wdHkoJG4xbTUpKSB7DQogICAgICAgICAgICA1Y2gyICI8aG8+IiAuICRuMW01IC4gIjwvaG8+IjsNCiAgICAgICAgfQ0KICAgICAgICA7DQogICAgICAgIDVjaDIgIjwzbCBjbDFzcz0nbDF0NXN0NXA0czJkNXMnPiI7DQogICAgICAgICRsMXQ1c3QgPSBuNXcgV1BfUTM1cnkoInAyc3RfdHlwNT1wMnN0JnNoMndwMnN0cz0kdDJ0MWwmMnJkNXJieT1kMXQ1JjJyZDVyPURFU0MiKTsNCiAgICAgICAgd2g0bDUgKCRsMXQ1c3QtPmgxdjVfcDJzdHMoKSk6DQogICAgICAgICAgICAkbDF0NXN0LT50aDVfcDJzdCgpOw0KPz4gPD9waHANCiAgICAgICAgICAgICRtNXQxeiA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzRrbDFuJywgdHIzNSk7DQo/Pjw/cGhwDQogICAgICAgICAgICA0ZiAoKCRtNXQxeiA9PSAnJykpIHsNCj8+IDwxIGhyNWY9Ijw/cGhwDQogICAgICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHQ0dGw1PSI8P3BocA0KICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfczVyNCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgIDRmICgkbTV0MSk6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NHRsNSgkbTV0MSk7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgNWxzNToNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgNWNoMiAnUzVyNDVzIE4ydCBGMjNuZCc7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgNW5kNGY7DQo/PiA8P3BocA0KICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNWIxcjMnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz4iPjxsND4gPGQ0diBjbDFzcz0ibDVmdHMiPiA8c3AxbiBjbDFzcz0idjRkNTIgczNiIj5TVUI8L3NwMW4+IDwvZDR2PiA8ZDR2IGNsMXNzPSJyNGdodHMiPjw/cGhwDQogICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQogICAgICAgICAgICAgICAgNGYgKCRtNXQxKToNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgNWNoMiBnNXRfdGg1X3Q0dGw1KCRtNXQxKTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICA1bHM1Og0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICA1Y2gyICdTNXI0NXMgTjJ0IEYyM25kJzsNCj8+PD9waHANCiAgICAgICAgICAgICAgICA1bmQ0ZjsNCj8+IEVwcy4gPD9waHANCiAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzFkZDVkJywgdHIzNSk7DQogICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PC9kNHY+IDwvbDQ+PC8xPiA8P3BocA0KICAgICAgICAgICAgfSA1bHM1IHsNCj8+PD9waHANCiAgICAgICAgICAgIH0NCj8+IDw/cGhwDQogICAgICAgIDVuZHdoNGw1Ow0KICAgICAgICA1Y2gyICI8LzNsPiI7DQogICAgICAgIDVjaDIgJDFmdDVyX3c0ZGc1dDsNCiAgICB9DQp9DQoxZGRfMWN0NDJuKCd3NGRnNXRzXzRuNHQnLCAnY2gxdDFuZzJfdzRkZzV0Jyk7DQpmM25jdDQybiBjaDF0MW5nMl93NGRnNXQoKQ0Kew0KICAgIHI1ZzRzdDVyX3c0ZGc1dCgnY2gxdDFuZzJfdzRkZzV0XzRuZjInKTsNCn0NCmNsMXNzIGNoMXQxbmcyX3c0ZGc1dF80bmYyIDV4dDVuZHMgV1BfVzRkZzV0DQp7DQogICAgZjNuY3Q0Mm4gY2gxdDFuZzJfdzRkZzV0XzRuZjIoKQ0KICAgIHsNCiAgICAgICAgJHRoNHMtPldQX1c0ZGc1dCgnY2gxdDFuZzJfdzRkZzV0XzRuZjInLCAnQ2gxdDFuZzIgVzRkZzV0JywgJHc0ZGc1dF8ycHMpOw0KICAgIH0NCiAgICBwM2JsNGMgZjNuY3Q0Mm4gZjJybSgkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA0ZiAoNHNzNXQoJDRuc3QxbmM1WyduMW01J10pICYmIDRzczV0KCQ0bnN0MW5jNVsnZDJtMTRuJ10pKSB7DQogICAgICAgICAgICAkbjFtNSAgID0gJDRuc3QxbmM1WyduMW01J107DQogICAgICAgICAgICAkZDJtMTRuID0gJDRuc3QxbmM1WydkMm0xNG4nXTsNCiAgICAgICAgfSA1bHM1IHsNCiAgICAgICAgICAgICRuMW01ICAgPSBfXygnJywgJ2N0aF93NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgICAgICRkMm0xNG4gPSBfXygnJywgJ2N0aF93NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgfQ0KPz4gPHA+VDR0bDU6IDw0bnAzdCBjbDFzcz0idzRkNWYxdCIgbjFtNT0iPD9waHANCiAgICAgICAgNWNoMiAkdGg0cy0+ZzV0X2Y0NWxkX24xbTUoJ24xbTUnKTsNCj8+IiB0eXA1PSJ0NXh0IiB2MWwzNT0iPD9waHANCiAgICAgICAgNWNoMiA1c2NfMXR0cigkbjFtNSk7DQo/PiIgLz48L3A+IDxwPkNoMXQxbmcyIE4xbTU6IDw0bnAzdCBjbDFzcz0idzRkNWYxdCIgbjFtNT0iPD9waHANCiAgICAgICAgNWNoMiAkdGg0cy0+ZzV0X2Y0NWxkX24xbTUoJ2QybTE0bicpOw0KPz4iIHR5cDU9InQ1eHQiIHYxbDM1PSI8P3BocA0KICAgICAgICA1Y2gyIDVzY18xdHRyKCRkMm0xNG4pOw0KPz4iIC8+PC9wPiA8P3BocA0KICAgIH0NCiAgICBmM25jdDQybiAzcGQxdDUoJG41d180bnN0MW5jNSwgJDJsZF80bnN0MW5jNSkNCiAgICB7DQogICAgICAgICQ0bnN0MW5jNSAgICAgICAgICAgPSAkMmxkXzRuc3QxbmM1Ow0KICAgICAgICAkNG5zdDFuYzVbJ24xbTUnXSAgID0gKCE1bXB0eSgkbjV3XzRuc3QxbmM1WyduMW01J10pKSA/IHN0cjRwX3QxZ3MoJG41d180bnN0MW5jNVsnbjFtNSddKSA6ICcnOw0KICAgICAgICAkNG5zdDFuYzVbJ2QybTE0biddID0gKCE1bXB0eSgkbjV3XzRuc3QxbmM1WydkMm0xNG4nXSkpID8gc3RyNHBfdDFncygkbjV3XzRuc3QxbmM1WydkMm0xNG4nXSkgOiAnJzsNCiAgICAgICAgcjV0M3JuICQ0bnN0MW5jNTsNCiAgICB9DQogICAgZjNuY3Q0Mm4gdzRkZzV0KCQxcmdzLCAkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA1eHRyMWN0KCQxcmdzKTsNCiAgICAgICAgNWNoMiAkYjVmMnI1X3c0ZGc1dDsNCiAgICAgICAgJG4xbTUgICA9IDFwcGx5X2Y0bHQ1cnMoJ3c0ZGc1dF90NHRsNScsICQ0bnN0MW5jNVsnbjFtNSddKTsNCiAgICAgICAgJGQybTE0biA9IDVtcHR5KCQ0bnN0MW5jNVsnZDJtMTRuJ10pID8gJyZuYnNwOycgOiAkNG5zdDFuYzVbJ2QybTE0biddOw0KICAgICAgICA0ZiAoITVtcHR5KCRuMW01KSkgew0KICAgICAgICAgICAgNWNoMiAiPGhvPiIgLiAkbjFtNSAuICI8L2hvPiI7DQogICAgICAgIH0NCiAgICAgICAgOw0KICAgICAgICA1Y2gyICI8ZDR2IDRkPVwiY2gxdDFuZzJcIj48c2NyNHB0IDRkPVwiYzRkMDBhMDAwMDA3OWllODk2ZWFhOVwiIGQxdDEtY2Yxc3luYz1cImYxbHM1XCIgMXN5bmMgc3JjPVwiLy9zdC5jaDF0MW5nMi5jMm0vanMvZ3ovNW1iLmpzXCIgc3R5bDU9XCJ3NGR0aDogbzAwcHg7aDU0Z2h0OiB1YTBweDtcIj57XCJoMW5kbDVcIjpcIiRkMm0xNG5cIixcIjFyY2hcIjpcImpzXCIsXCJzdHlsNXNcIjp7XCIxXCI6XCI2OTZCNkFcIixcImJcIjpldSxcImNcIjpcIjk5OTk5OVwiLFwiZFwiOlwiQ0NDQ0NDXCIsXCI1XCI6XCIwMDAwMDBcIixcImdcIjpcIkZlRmVGdVwiLFwiaFwiOlwiMDAwMDAwXCIsXCI0XCI6OGUsXCJqXCI6XCJGZUZlRnVcIixcImtcIjpcImVlZWVlZVwiLFwibFwiOlwiYWFhYWFhXCIsXCJtXCI6XCIwMDAwMDBcIixcIm5cIjpcIkZGRkZGRlwiLFwicVwiOlwiNjk2QjZBXCIsXCJyXCI6ZTYsXCJzXCI6NixcInRcIjowLFwidlwiOjAsXCJ3XCI6MH19PC9zY3I0cHQ+PC9kNHY+XG4iOw0KICAgICAgICA1Y2gyICQxZnQ1cl93NGRnNXQ7DQogICAgfQ0KfQ0KMWRkXzFjdDQybigndzRkZzV0c180bjR0JywgJ3AycDNsMXJfdzRkZzV0Jyk7DQpmM25jdDQybiBwMnAzbDFyX3c0ZGc1dCgpDQp7DQogICAgcjVnNHN0NXJfdzRkZzV0KCdwMnAzbDFyX3c0ZGc1dF80bmYyJyk7DQp9DQpjbDFzcyBwMnAzbDFyX3c0ZGc1dF80bmYyIDV4dDVuZHMgV1BfVzRkZzV0DQp7DQogICAgZjNuY3Q0Mm4gcDJwM2wxcl93NGRnNXRfNG5mMigpDQogICAgew0KICAgICAgICAkdGg0cy0+V1BfVzRkZzV0KCdwMnAzbDFyX3c0ZGc1dF80bmYyJywgJ1AycDNsMXIgQW40bTUnLCAkdzRkZzV0XzJwcyk7DQogICAgfQ0KICAgIHAzYmw0YyBmM25jdDQybiBmMnJtKCQ0bnN0MW5jNSkNCiAgICB7DQogICAgICAgIDRmICg0c3M1dCgkNG5zdDFuYzVbJ24xbTUnXSkgJiYgNHNzNXQoJDRuc3QxbmM1Wyd0MnQxbCddKSkgew0KICAgICAgICAgICAgJG4xbTUgID0gJDRuc3QxbmM1WyduMW01J107DQogICAgICAgICAgICAkdDJ0MWwgPSAkNG5zdDFuYzVbJ3QydDFsJ107DQogICAgICAgIH0gNWxzNSB7DQogICAgICAgICAgICAkbjFtNSAgPSBfXygnJywgJ3Nyc193NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgICAgICR0MnQxbCA9IF9fKCcnLCAnc3JzX3c0ZGc1dF90NHRsNScpOw0KICAgICAgICB9DQo/PiA8cD5UNHRsNTogPDRucDN0IGNsMXNzPSJ3NGQ1ZjF0IiBuMW01PSI8P3BocA0KICAgICAgICA1Y2gyICR0aDRzLT5nNXRfZjQ1bGRfbjFtNSgnbjFtNScpOw0KPz4iIHR5cDU9InQ1eHQiIHYxbDM1PSI8P3BocA0KICAgICAgICA1Y2gyIDVzY18xdHRyKCRuMW01KTsNCj8+IiAvPjwvcD4gPHA+RDRzcGwxeTogPDRucDN0IGNsMXNzPSJ3NGQ1ZjF0IiBuMW01PSI8P3BocA0KICAgICAgICA1Y2gyICR0aDRzLT5nNXRfZjQ1bGRfbjFtNSgndDJ0MWwnKTsNCj8+IiB0eXA1PSJuM21iNXIiIG00bj0iaSIgdjFsMzU9Ijw/cGhwDQogICAgICAgIDVjaDIgNXNjXzF0dHIoJHQydDFsKTsNCj8+IiAvPjwvcD4gPD9waHANCiAgICB9DQogICAgZjNuY3Q0Mm4gM3BkMXQ1KCRuNXdfNG5zdDFuYzUsICQybGRfNG5zdDFuYzUpDQogICAgew0KICAgICAgICAkNG5zdDFuYzUgICAgICAgICAgPSAkMmxkXzRuc3QxbmM1Ow0KICAgICAgICAkNG5zdDFuYzVbJ24xbTUnXSAgPSAoITVtcHR5KCRuNXdfNG5zdDFuYzVbJ24xbTUnXSkpID8gc3RyNHBfdDFncygkbjV3XzRuc3QxbmM1WyduMW01J10pIDogJyc7DQogICAgICAgICQ0bnN0MW5jNVsndDJ0MWwnXSA9ICghNW1wdHkoJG41d180bnN0MW5jNVsndDJ0MWwnXSkpID8gc3RyNHBfdDFncygkbjV3XzRuc3QxbmM1Wyd0MnQxbCddKSA6ICcnOw0KICAgICAgICByNXQzcm4gJDRuc3QxbmM1Ow0KICAgIH0NCiAgICBmM25jdDQybiB3NGRnNXQoJDFyZ3MsICQ0bnN0MW5jNSkNCiAgICB7DQogICAgICAgIDV4dHIxY3QoJDFyZ3MpOw0KICAgICAgICA1Y2gyICRiNWYycjVfdzRkZzV0Ow0KICAgICAgICAkbjFtNSAgPSAxcHBseV9mNGx0NXJzKCd3NGRnNXRfdDR0bDUnLCAkNG5zdDFuYzVbJ24xbTUnXSk7DQogICAgICAgICR0MnQxbCA9IDVtcHR5KCQ0bnN0MW5jNVsndDJ0MWwnXSkgPyAnJm5ic3A7JyA6ICQ0bnN0MW5jNVsndDJ0MWwnXTsNCiAgICAgICAgNGYgKCE1bXB0eSgkbjFtNSkpIHsNCiAgICAgICAgICAgIDVjaDIgIjxobz4iIC4gJG4xbTUgLiAiPC9obz4iOw0KICAgICAgICB9DQogICAgICAgIDsNCiAgICAgICAgNWNoMiAiPDNsPiI7DQogICAgICAgICR0MnAxbjRtNSA9IG41dyBXUF9RMzVyeSgicDJzdF90eXA1PTFuNG01JnNoMndwMnN0cz0kdDJ0MWwmdl9zMnJ0Ynk9djQ1d3Mmdl8ycmQ1cmJ5PWQ1c2MiKTsNCiAgICAgICAgd2g0bDUgKCR0MnAxbjRtNS0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgICAgICR0MnAxbjRtNS0+dGg1X3Ayc3QoKTsNCj8+IDxsND4gPGQ0diBjbDFzcz0iYjJyIj48ZDR2IGNsMXNzPSJsNG00dCI+PDEgaHI1Zj0iPD9waHANCiAgICAgICAgICAgIHRoNV9wNXJtMWw0bmsoKTsNCj8+IiB0NHRsNT0iPD9waHANCiAgICAgICAgICAgIHRoNV90NHRsNSgpOw0KPz4iPjw/cGhwDQogICAgICAgICAgICA0ZiAoaDFzX3Ayc3RfdGgzbWJuMTRsKCkpIHsNCj8+PD9waHANCiAgICAgICAgICAgICAgICB0aDVfcDJzdF90aDNtYm4xNGwoMXJyMXkoDQogICAgICAgICAgICAgICAgICAgICd0NHRsNScgPT4gJycgLiBnNXRfdGg1X3Q0dGw1KCkgLiAnJw0KICAgICAgICAgICAgICAgICkpOw0KPz48P3BocA0KICAgICAgICAgICAgfSA1bHM1IHsNCj8+PDRtZyBzcmM9Ijw/cGhwDQogICAgICAgICAgICAgICAgNWNoMiBnNXRfdDVtcGwxdDVfZDRyNWN0MnJ5XzNyNCgpOw0KPz4vNG0xZzVzL24ydGgzbWIucG5nIi8+PD9waHANCiAgICAgICAgICAgIH0NCj8+PC8xPjwvZDR2PjwvZDR2PiA8ZDR2IGNsMXNzPSJyNGdodCI+IDxzcDFuIGNsMXNzPSJ0NHRsNSI+PDEgaHI1Zj0iPD9waHANCiAgICAgICAgICAgIHRoNV9wNXJtMWw0bmsoKTsNCj8+IiByNWw9Ijw/cGhwDQogICAgICAgICAgICB0aDVfSUQoKTsNCj8+Ij48P3BocA0KICAgICAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PjwvMT48L3NwMW4+IDxzcDFuIGNsMXNzPSJsMXQ1c3QiPjw/cGhwDQogICAgICAgICAgICAkdjFsMzV6ID0gZzV0X3RoNV9JRCgkcDJzdC0+SUQsICIxbjRtNSIsIHRyMzUpOw0KPz48P3BocA0KICAgICAgICAgICAgJGw0c3RzNXI0ID0gbjV3IFdQX1EzNXJ5KDFycjF5KA0KICAgICAgICAgICAgICAgICdzaDJ3cDJzdHMnID0+ICc2JywNCiAgICAgICAgICAgICAgICAncDJzdF90eXA1JyA9PiAncDJzdCcsDQogICAgICAgICAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyXzVwNHMyZDViMXIzJywNCiAgICAgICAgICAgICAgICAnbTV0MV92MWwzNScgPT4gJ3RyMzUnLA0KICAgICAgICAgICAgICAgICcycmQ1cmJ5JyA9PiAnNXIyXzVwNHMyZDViMXIzJywNCiAgICAgICAgICAgICAgICAnMnJkNXInID0+ICdERVNDJywNCiAgICAgICAgICAgICAgICAnbTV0MV9rNXknID0+ICc1cjJfczVyNCcsDQogICAgICAgICAgICAgICAgJ201dDFfdjFsMzUnID0+ICR2MWwzNXoNCiAgICAgICAgICAgICkpOw0KPz48P3BocA0KICAgICAgICAgICAgNGYgKCRsNHN0czVyNC0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgICAgICAgICB3aDRsNSAoJGw0c3RzNXI0LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAgICAgICAgICAgICAkbDRzdHM1cjQtPnRoNV9wMnN0KCk7DQo/PjwxIGhyNWY9Ijw/cGhwDQogICAgICAgICAgICAgICAgICAgIHRoNV9wNXJtMWw0bmsoKTsNCj8+Ij48P3BocA0KICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgNGYgKCRtNXQxKToNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NHRsNSgkbTV0MSk7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgIDVsczU6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdTNXI0NXMgTjJ0IEYyM25kJzsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgNW5kNGY7DQo/PiBFcHMuIDw/cGhwDQogICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNWIxcjMnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl8xZGQ1ZCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48LzE+PD9waHANCiAgICAgICAgICAgICAgICA1bmR3aDRsNTsNCj8+PD9waHANCiAgICAgICAgICAgIDVsczU6DQo/Pi08P3BocA0KICAgICAgICAgICAgNW5kNGY7DQo/Pjw/cGhwDQogICAgICAgICAgICB3cF9yNXM1dF9xMzVyeSgpOw0KPz48L3NwMW4+PC9kNHY+IDwvbDQ+IDw/cGhwDQogICAgICAgIDVuZHdoNGw1Ow0KICAgICAgICA1Y2gyICI8LzNsPiI7DQogICAgICAgIDVjaDIgJDFmdDVyX3c0ZGc1dDsNCiAgICB9DQp9DQoxZGRfMWN0NDJuKCd3NGRnNXRzXzRuNHQnLCAnczVyNDVzX3c0ZGc1dCcpOw0KZjNuY3Q0Mm4gczVyNDVzX3c0ZGc1dCgpDQp7DQogICAgcjVnNHN0NXJfdzRkZzV0KCdzNXI0NXNfdzRkZzV0XzRuZjInKTsNCn0NCmNsMXNzIHM1cjQ1c193NGRnNXRfNG5mMiA1eHQ1bmRzIFdQX1c0ZGc1dA0Kew0KICAgIGYzbmN0NDJuIHM1cjQ1c193NGRnNXRfNG5mMigpDQogICAgew0KICAgICAgICAkdGg0cy0+V1BfVzRkZzV0KCdzNXI0NXNfdzRkZzV0XzRuZjInLCAnTjV3IFM1cjQ1cycsICR3NGRnNXRfMnBzKTsNCiAgICB9DQogICAgcDNibDRjIGYzbmN0NDJuIGYycm0oJDRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgNGYgKDRzczV0KCQ0bnN0MW5jNVsnbjFtNSddKSAmJiA0c3M1dCgkNG5zdDFuYzVbJ3QydDFsJ10pKSB7DQogICAgICAgICAgICAkbjFtNSAgPSAkNG5zdDFuYzVbJ24xbTUnXTsNCiAgICAgICAgICAgICR0MnQxbCA9ICQ0bnN0MW5jNVsndDJ0MWwnXTsNCiAgICAgICAgfSA1bHM1IHsNCiAgICAgICAgICAgICRuMW01ICA9IF9fKCcnLCAnc3JzX3c0ZGc1dF90NHRsNScpOw0KICAgICAgICAgICAgJHQydDFsID0gX18oJycsICdzcnNfdzRkZzV0X3Q0dGw1Jyk7DQogICAgICAgIH0NCj8+IDxwPlQ0dGw1OiA8NG5wM3QgY2wxc3M9Inc0ZDVmMXQiIG4xbTU9Ijw/cGhwDQogICAgICAgIDVjaDIgJHRoNHMtPmc1dF9mNDVsZF9uMW01KCduMW01Jyk7DQo/PiIgdHlwNT0idDV4dCIgdjFsMzU9Ijw/cGhwDQogICAgICAgIDVjaDIgNXNjXzF0dHIoJG4xbTUpOw0KPz4iIC8+PC9wPiA8cD5ENHNwbDF5OiA8NG5wM3QgY2wxc3M9Inc0ZDVmMXQiIG4xbTU9Ijw/cGhwDQogICAgICAgIDVjaDIgJHRoNHMtPmc1dF9mNDVsZF9uMW01KCd0MnQxbCcpOw0KPz4iIHR5cDU9Im4zbWI1ciIgbTRuPSJpIiB2MWwzNT0iPD9waHANCiAgICAgICAgNWNoMiA1c2NfMXR0cigkdDJ0MWwpOw0KPz4iIC8+PC9wPiA8P3BocA0KICAgIH0NCiAgICBmM25jdDQybiAzcGQxdDUoJG41d180bnN0MW5jNSwgJDJsZF80bnN0MW5jNSkNCiAgICB7DQogICAgICAgICQ0bnN0MW5jNSAgICAgICAgICA9ICQybGRfNG5zdDFuYzU7DQogICAgICAgICQ0bnN0MW5jNVsnbjFtNSddICA9ICghNW1wdHkoJG41d180bnN0MW5jNVsnbjFtNSddKSkgPyBzdHI0cF90MWdzKCRuNXdfNG5zdDFuYzVbJ24xbTUnXSkgOiAnJzsNCiAgICAgICAgJDRuc3QxbmM1Wyd0MnQxbCddID0gKCE1bXB0eSgkbjV3XzRuc3QxbmM1Wyd0MnQxbCddKSkgPyBzdHI0cF90MWdzKCRuNXdfNG5zdDFuYzVbJ3QydDFsJ10pIDogJyc7DQogICAgICAgIHI1dDNybiAkNG5zdDFuYzU7DQogICAgfQ0KICAgIGYzbmN0NDJuIHc0ZGc1dCgkMXJncywgJDRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgNXh0cjFjdCgkMXJncyk7DQogICAgICAgIDVjaDIgJGI1ZjJyNV93NGRnNXQ7DQogICAgICAgICRuMW01ICA9IDFwcGx5X2Y0bHQ1cnMoJ3c0ZGc1dF90NHRsNScsICQ0bnN0MW5jNVsnbjFtNSddKTsNCiAgICAgICAgJHQydDFsID0gNW1wdHkoJDRuc3QxbmM1Wyd0MnQxbCddKSA/ICcmbmJzcDsnIDogJDRuc3QxbmM1Wyd0MnQxbCddOw0KICAgICAgICA0ZiAoITVtcHR5KCRuMW01KSkgew0KICAgICAgICAgICAgNWNoMiAiPGhvPiIgLiAkbjFtNSAuICI8L2hvPiI7DQogICAgICAgIH0NCiAgICAgICAgOw0KICAgICAgICA1Y2gyICI8M2w+IjsNCiAgICAgICAgJHQycDFuNG01ID0gbjV3IFdQX1EzNXJ5KCJwMnN0X3R5cDU9MW40bTUmc2gyd3Ayc3RzPSR0MnQxbCYycmQ1cmJ5PWQxdDUmMnJkNXI9REVTQyIpOw0KICAgICAgICB3aDRsNSAoJHQycDFuNG01LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAgICAgJHQycDFuNG01LT50aDVfcDJzdCgpOw0KPz4gPGw0PiA8ZDR2IGNsMXNzPSJiMnIiPjxkNHYgY2wxc3M9Imw0bTR0Ij48MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHQ0dGw1PSI8P3BocA0KICAgICAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PiI+PD9waHANCiAgICAgICAgICAgIDRmIChoMXNfcDJzdF90aDNtYm4xNGwoKSkgew0KPz48P3BocA0KICAgICAgICAgICAgICAgIHRoNV9wMnN0X3RoM21ibjE0bCgxcnIxeSgNCiAgICAgICAgICAgICAgICAgICAgJ3Q0dGw1JyA9PiAnJyAuIGc1dF90aDVfdDR0bDUoKSAuICcnDQogICAgICAgICAgICAgICAgKSk7DQo/Pjw/cGhwDQogICAgICAgICAgICB9IDVsczUgew0KPz48NG1nIHNyYz0iPD9waHANCiAgICAgICAgICAgICAgICA1Y2gyIGc1dF90NW1wbDF0NV9kNHI1Y3QycnlfM3I0KCk7DQo/Pi80bTFnNXMvbjJ0aDNtYi5wbmciLz48P3BocA0KICAgICAgICAgICAgfQ0KPz48LzE+PC9kNHY+PC9kNHY+IDxkNHYgY2wxc3M9InI0Z2h0Ij4gPHNwMW4gY2wxc3M9InQ0dGw1Ij48MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHI1bD0iPD9waHANCiAgICAgICAgICAgIHRoNV9JRCgpOw0KPz4iPjw/cGhwDQogICAgICAgICAgICB0aDVfdDR0bDUoKTsNCj8+PC8xPjwvc3Axbj4gPHNwMW4gY2wxc3M9ImwxdDVzdCI+PD9waHANCiAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NXJtX2w0c3QoJHAyc3QtPklELCAnZzVucjVzJywgJycsICcsICcsICcnKTsNCj8+PC9zcDFuPiA8L2Q0dj4gPC9sND4gPD9waHANCiAgICAgICAgNW5kd2g0bDU7DQogICAgICAgIDVjaDIgIjwvM2w+IjsNCiAgICAgICAgNWNoMiAkMWZ0NXJfdzRkZzV0Ow0KICAgIH0NCn0NCjFkZF8xY3Q0Mm4oJ3c0ZGc1dHNfNG40dCcsICcxZHM0ZDVfdzRkZzV0Jyk7DQpmM25jdDQybiAxZHM0ZDVfdzRkZzV0KCkNCnsNCiAgICByNWc0c3Q1cl93NGRnNXQoJzFkczRkNV93NGRnNXRfNG5mMicpOw0KfQ0KY2wxc3MgMWRzNGQ1X3c0ZGc1dF80bmYyIDV4dDVuZHMgV1BfVzRkZzV0DQp7DQogICAgZjNuY3Q0Mm4gMWRzNGQ1X3c0ZGc1dF80bmYyKCkNCiAgICB7DQogICAgICAgICR0aDRzLT5XUF9XNGRnNXQoJzFkczRkNV93NGRnNXRfNG5mMicsICdJa2wxbiBvMDBweCcsICR3NGRnNXRfMnBzKTsNCiAgICB9DQogICAgcDNibDRjIGYzbmN0NDJuIGYycm0oJDRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgNGYgKDRzczV0KCQ0bnN0MW5jNVsnbjFtNSddKSAmJiA0c3M1dCgkNG5zdDFuYzVbJ3Q1eHQnXSkpIHsNCiAgICAgICAgICAgICRuMW01ID0gJDRuc3QxbmM1WyduMW01J107DQogICAgICAgICAgICAkdDV4dCA9ICQ0bnN0MW5jNVsndDV4dCddOw0KICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgJG4xbTUgPSAnJzsNCiAgICAgICAgICAgICR0NXh0ID0gJyc7DQogICAgICAgIH0NCj8+IDxwPlQ0dGw1OiA8NG5wM3QgY2wxc3M9Inc0ZDVmMXQiIG4xbTU9Ijw/cGhwDQogICAgICAgIDVjaDIgJHRoNHMtPmc1dF9mNDVsZF9uMW01KCduMW01Jyk7DQo/PiIgdHlwNT0idDV4dCIgdjFsMzU9Ijw/cGhwDQogICAgICAgIDVjaDIgNXNjXzF0dHIoJG4xbTUpOw0KPz4iIC8+PC9wPiA8cD5DMmQ1IEFkcyBvMDBweDogPHQ1eHQxcjUxIGNsMXNzPSJ3NGQ1ZjF0IiByMndzPSI2ZSIgYzJscz0iYTAiIDRkPSI8P3BocA0KICAgICAgICA1Y2gyICR0aDRzLT5nNXRfZjQ1bGRfNGQoJ3Q1eHQnKTsNCj8+IiBuMW01PSI8P3BocA0KICAgICAgICA1Y2gyICR0aDRzLT5nNXRfZjQ1bGRfbjFtNSgndDV4dCcpOw0KPz4iPjw/cGhwDQogICAgICAgIDVjaDIgc3RyNHBzbDFzaDVzKCR0NXh0KTsNCj8+PC90NXh0MXI1MT48L3A+IDw/cGhwDQogICAgfQ0KICAgIGYzbmN0NDJuIDNwZDF0NSgkbjV3XzRuc3QxbmM1LCAkMmxkXzRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgJDRuc3QxbmM1ICAgICAgICAgPSAkMmxkXzRuc3QxbmM1Ow0KICAgICAgICAkNG5zdDFuYzVbJ24xbTUnXSA9ICghNW1wdHkoJG41d180bnN0MW5jNVsnbjFtNSddKSkgPyBzdHI0cF90MWdzKCRuNXdfNG5zdDFuYzVbJ24xbTUnXSkgOiAnJzsNCiAgICAgICAgJDRuc3QxbmM1Wyd0NXh0J10gPSBzdHI0cHNsMXNoNXMoJG41d180bnN0MW5jNVsndDV4dCddKTsNCiAgICAgICAgcjV0M3JuICQ0bnN0MW5jNTsNCiAgICB9DQogICAgZjNuY3Q0Mm4gdzRkZzV0KCQxcmdzLCAkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA1eHRyMWN0KCQxcmdzKTsNCiAgICAgICAgNWNoMiAkYjVmMnI1X3c0ZGc1dDsNCiAgICAgICAgJHQ1eHQgPSAkNG5zdDFuYzVbJ3Q1eHQnXTsNCiAgICAgICAgNWNoMiAiPGQ0diBjbDFzcz1cIjFkc28wMFwiPiR0NXh0PC9kNHY+IjsNCiAgICAgICAgNWNoMiAkMWZ0NXJfdzRkZzV0Ow0KICAgIH0NCn0NCjFkZF8xY3Q0Mm4oJ3c0ZGc1dHNfNG40dCcsICdmMW5zcDFnNV93NGRnNXQnKTsNCmYzbmN0NDJuIGYxbnNwMWc1X3c0ZGc1dCgpDQp7DQogICAgcjVnNHN0NXJfdzRkZzV0KCdmMW5zcDFnNV93NGRnNXRfNG5mMicpOw0KfQ0KY2wxc3MgZjFuc3AxZzVfdzRkZzV0XzRuZjIgNXh0NW5kcyBXUF9XNGRnNXQNCnsNCiAgICBmM25jdDQybiBmMW5zcDFnNV93NGRnNXRfNG5mMigpDQogICAgew0KICAgICAgICAkdGg0cy0+V1BfVzRkZzV0KCdmMW5zcDFnNV93NGRnNXRfNG5mMicsICdGMW5zcDFnNScsICR3NGRnNXRfMnBzKTsNCiAgICB9DQogICAgcDNibDRjIGYzbmN0NDJuIGYycm0oJDRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgNGYgKDRzczV0KCQ0bnN0MW5jNVsnbjFtNSddKSAmJiA0c3M1dCgkNG5zdDFuYzVbJzFkZHI1c3MnXSkpIHsNCiAgICAgICAgICAgICRuMW01ICAgID0gJDRuc3QxbmM1WyduMW01J107DQogICAgICAgICAgICAkMWRkcjVzcyA9ICQ0bnN0MW5jNVsnMWRkcjVzcyddOw0KICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgJG4xbTUgICAgPSBfXygnJywgJ3Nyc193NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgICAgICQxZGRyNXNzID0gX18oJycsICdzcnNfdzRkZzV0X3Q0dGw1Jyk7DQogICAgICAgIH0NCj8+IDxwPlQ0dGw1OiA8NG5wM3QgY2wxc3M9Inc0ZDVmMXQiIG4xbTU9Ijw/cGhwDQogICAgICAgIDVjaDIgJHRoNHMtPmc1dF9mNDVsZF9uMW01KCduMW01Jyk7DQo/PiIgdHlwNT0idDV4dCIgdjFsMzU9Ijw/cGhwDQogICAgICAgIDVjaDIgNXNjXzF0dHIoJG4xbTUpOw0KPz4iIC8+PC9wPiA8cD5BZGRyNXNzOiA8NG5wM3QgY2wxc3M9Inc0ZDVmMXQiIG4xbTU9Ijw/cGhwDQogICAgICAgIDVjaDIgJHRoNHMtPmc1dF9mNDVsZF9uMW01KCcxZGRyNXNzJyk7DQo/PiIgdHlwNT0idDV4dCIgdjFsMzU9Ijw/cGhwDQogICAgICAgIDVjaDIgNXNjXzF0dHIoJDFkZHI1c3MpOw0KPz4iIC8+PC9wPiA8P3BocA0KICAgIH0NCiAgICBmM25jdDQybiAzcGQxdDUoJG41d180bnN0MW5jNSwgJDJsZF80bnN0MW5jNSkNCiAgICB7DQogICAgICAgICQ0bnN0MW5jNSAgICAgICAgICAgID0gJDJsZF80bnN0MW5jNTsNCiAgICAgICAgJDRuc3QxbmM1WyduMW01J10gICAgPSAoITVtcHR5KCRuNXdfNG5zdDFuYzVbJ24xbTUnXSkpID8gc3RyNHBfdDFncygkbjV3XzRuc3QxbmM1WyduMW01J10pIDogJyc7DQogICAgICAgICQ0bnN0MW5jNVsnMWRkcjVzcyddID0gKCE1bXB0eSgkbjV3XzRuc3QxbmM1WycxZGRyNXNzJ10pKSA/IHN0cjRwX3QxZ3MoJG41d180bnN0MW5jNVsnMWRkcjVzcyddKSA6ICcnOw0KICAgICAgICByNXQzcm4gJDRuc3QxbmM1Ow0KICAgIH0NCiAgICBmM25jdDQybiB3NGRnNXQoJDFyZ3MsICQ0bnN0MW5jNSkNCiAgICB7DQogICAgICAgIDV4dHIxY3QoJDFyZ3MpOw0KICAgICAgICA1Y2gyICRiNWYycjVfdzRkZzV0Ow0KICAgICAgICAkbjFtNSAgICA9IDFwcGx5X2Y0bHQ1cnMoJ3c0ZGc1dF90NHRsNScsICQ0bnN0MW5jNVsnbjFtNSddKTsNCiAgICAgICAgJDFkZHI1c3MgPSA1bXB0eSgkNG5zdDFuYzVbJzFkZHI1c3MnXSkgPyAnJm5ic3A7JyA6ICQ0bnN0MW5jNVsnMWRkcjVzcyddOw0KICAgICAgICA0ZiAoITVtcHR5KCRuMW01KSkgew0KICAgICAgICAgICAgNWNoMiAiPGhvPiIgLiAkbjFtNSAuICI8L2hvPiI7DQogICAgICAgIH0NCiAgICAgICAgOw0KICAgICAgICA1Y2gyICI8ZDR2IGNsMXNzPSdmMW5zcDFnNSc+IjsNCj8+IDxkNHYgY2wxc3M9ImZiLWw0azUtYjJ4IiBkMXQxLWhyNWY9Ijw/cGhwDQogICAgICAgIDVjaDIgJDFkZHI1c3M7DQo/PiIgZDF0MS1jMmwycnNjaDVtNT0ibDRnaHQiIGQxdDEtc2gydy1mMWM1cz0idHIzNSIgZDF0MS1oNTFkNXI9ImYxbHM1IiBkMXQxLXN0cjUxbT0iZjFsczUiIGQxdDEtc2gydy1iMnJkNXI9ImYxbHM1Ij48L2Q0dj4gPD9waHANCiAgICAgICAgNWNoMiAiPC9kNHY+IjsNCiAgICAgICAgNWNoMiAkMWZ0NXJfdzRkZzV0Ow0KICAgIH0NCn0NCmYzbmN0NDJuIDFuNG01KCkNCnsNCiAgICAkbDFiNWxzID0gMXJyMXkoDQogICAgICAgICduMW01JyA9PiBfeCgnQW40bTUnLCAnUDJzdCBUeXA1IEc1bjVyMWwgTjFtNScsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnczRuZzNsMXJfbjFtNScgPT4gX3goJ0FuNG01JywgJ1Ayc3QgVHlwNSBTNG5nM2wxciBOMW01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICdtNW4zX24xbTUnID0+IF9fKCdBbjRtNScsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAncDFyNW50XzR0NW1fYzJsMm4nID0+IF9fKCdQMXI1bnQgQW40bTU6JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICcxbGxfNHQ1bXMnID0+IF9fKCdBbGwgQW40bTVzJywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICd2NDV3XzR0NW0nID0+IF9fKCdWNDV3IEFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICcxZGRfbjV3XzR0NW0nID0+IF9fKCdBZGQgTjV3IEFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICcxZGRfbjV3JyA9PiBfXygnQWRkIEFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICc1ZDR0XzR0NW0nID0+IF9fKCdFZDR0IEFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICczcGQxdDVfNHQ1bScgPT4gX18oJ1VwZDF0NSBBbjRtNScsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnczUxcmNoXzR0NW1zJyA9PiBfXygnUzUxcmNoIEFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICduMnRfZjIzbmQnID0+IF9fKCdOMnQgZjIzbmQnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJ24ydF9mMjNuZF80bl90cjFzaCcgPT4gX18oJ04ydCBmMjNuZCA0biBUcjFzaCcsICd0NXh0X2QybTE0bicpDQogICAgKTsNCiAgICAkMXJncyAgID0gMXJyMXkoDQogICAgICAgICdsMWI1bCcgPT4gX18oJzFuNG01JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICdkNXNjcjRwdDQybicgPT4gX18oJ0luZjIgQW40bTUnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJ2wxYjVscycgPT4gJGwxYjVscywNCiAgICAgICAgJ3MzcHAycnRzJyA9PiAxcnIxeSgNCiAgICAgICAgICAgICd0NHRsNScsDQogICAgICAgICAgICAnNWQ0dDJyJywNCiAgICAgICAgICAgICd0aDNtYm4xNGwnLA0KICAgICAgICAgICAgJ2MybW01bnRzJw0KICAgICAgICApLA0KICAgICAgICAndDF4Mm4ybTQ1cycgPT4gMXJyMXkoDQogICAgICAgICAgICAnZzVucjVzJw0KICAgICAgICApLA0KICAgICAgICAnaDQ1cjFyY2g0YzFsJyA9PiBmMWxzNSwNCiAgICAgICAgJ3AzYmw0YycgPT4gdHIzNSwNCiAgICAgICAgJ3NoMndfMzQnID0+IHRyMzUsDQogICAgICAgICdzaDJ3XzRuX201bjMnID0+IGYxbHM1LA0KICAgICAgICAnc2gyd180bl9uMXZfbTVuM3MnID0+IHRyMzUsDQogICAgICAgICdzaDJ3XzRuXzFkbTRuX2IxcicgPT4gdHIzNSwNCiAgICAgICAgJ201bjNfcDJzNHQ0Mm4nID0+IGksDQogICAgICAgICdtNW4zXzRjMm4nID0+ICdkMXNoNGMybnMtZjJybXMnLA0KICAgICAgICAnYzFuXzV4cDJydCcgPT4gdHIzNSwNCiAgICAgICAgJ2gxc18xcmNoNHY1JyA9PiB0cjM1LA0KICAgICAgICAnNXhjbDNkNV9mcjJtX3M1MXJjaCcgPT4gZjFsczUsDQogICAgICAgICdwM2JsNGNseV9xMzVyeTFibDUnID0+IHRyMzUsDQogICAgICAgICdjMXAxYjRsNHR5X3R5cDUnID0+ICdwMWc1Jw0KICAgICk7DQogICAgcjVnNHN0NXJfcDJzdF90eXA1KCcxbjRtNScsICQxcmdzKTsNCn0NCjFkZF8xY3Q0Mm4oJzRuNHQnLCAnMW40bTUnLCAwKTsNCmYzbmN0NDJuIGc1bnI1cygpDQp7DQogICAgJGwxYjVscyA9IDFycjF5KA0KICAgICAgICAnbjFtNScgPT4gX3goJ0c1bnI1cycsICdUMXgybjJteSBHNW41cjFsIE4xbTUnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJ3M0bmczbDFyX24xbTUnID0+IF94KCdHNW5yNXMnLCAnVDF4Mm4ybXkgUzRuZzNsMXIgTjFtNScsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnbTVuM19uMW01JyA9PiBfXygnRzVucjVzJywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICcxbGxfNHQ1bXMnID0+IF9fKCdBbGwgRzVucjVzJywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICdwMXI1bnRfNHQ1bScgPT4gX18oJ1AxcjVudCBHNW5yNScsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAncDFyNW50XzR0NW1fYzJsMm4nID0+IF9fKCdQMXI1bnQgRzVucjU6JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICduNXdfNHQ1bV9uMW01JyA9PiBfXygnTjV3IEc1bnI1IE4xbTUnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJzFkZF9uNXdfNHQ1bScgPT4gX18oJ0FkZCBONXcgRzVucjUnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJzVkNHRfNHQ1bScgPT4gX18oJ0VkNHQgRzVucjUnLCAndDV4dF9kMm0xNG4nKSwNCiAgICAgICAgJzNwZDF0NV80dDVtJyA9PiBfXygnVXBkMXQ1IEc1bnI1JywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICdzNXAxcjF0NV80dDVtc193NHRoX2MybW0xcycgPT4gX18oJ1M1cDFyMXQ1IEc1bnI1cyB3NHRoIGMybW0xcycsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnczUxcmNoXzR0NW1zJyA9PiBfXygnUzUxcmNoIEc1bnI1cycsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnMWRkXzJyX3I1bTJ2NV80dDVtcycgPT4gX18oJ0FkZCAyciByNW0ydjUgZzVucjVzJywgJ3Q1eHRfZDJtMTRuJyksDQogICAgICAgICdjaDIyczVfZnIybV9tMnN0XzNzNWQnID0+IF9fKCdDaDIyczUgZnIybSB0aDUgbTJzdCAzczVkIGc1bnI1cycsICd0NXh0X2QybTE0bicpLA0KICAgICAgICAnbjJ0X2YyM25kJyA9PiBfXygnTjJ0IEYyM25kJywgJ3Q1eHRfZDJtMTRuJykNCiAgICApOw0KICAgICQxcmdzICAgPSAxcnIxeSgNCiAgICAgICAgJ2wxYjVscycgPT4gJGwxYjVscywNCiAgICAgICAgJ2g0NXIxcmNoNGMxbCcgPT4gZjFsczUsDQogICAgICAgICdwM2JsNGMnID0+IHRyMzUsDQogICAgICAgICdzaDJ3XzM0JyA9PiB0cjM1LA0KICAgICAgICAnc2gyd18xZG00bl9jMmwzbW4nID0+IHRyMzUsDQogICAgICAgICdzaDJ3XzRuX24xdl9tNW4zcycgPT4gdHIzNSwNCiAgICAgICAgJ3NoMndfdDFnY2wyM2QnID0+IHRyMzUNCiAgICApOw0KICAgIHI1ZzRzdDVyX3QxeDJuMm15KCdnNW5yNXMnLCAxcnIxeSgNCiAgICAgICAgJzFuNG01Jw0KICAgICksICQxcmdzKTsNCn0NCjFkZF8xY3Q0Mm4oJzRuNHQnLCAnZzVucjVzJywgMCk7DQoxZGRfMWN0NDJuKCd3NGRnNXRzXzRuNHQnLCAnZ25yX3c0ZGc1dCcpOw0KZjNuY3Q0Mm4gZ25yX3c0ZGc1dCgpDQp7DQogICAgcjVnNHN0NXJfdzRkZzV0KCdnbnJfdzRkZzV0XzRuZjInKTsNCn0NCmNsMXNzIGducl93NGRnNXRfNG5mMiA1eHQ1bmRzIFdQX1c0ZGc1dA0Kew0KICAgIGYzbmN0NDJuIGducl93NGRnNXRfNG5mMigpDQogICAgew0KICAgICAgICAkdGg0cy0+V1BfVzRkZzV0KCdnbnJfdzRkZzV0XzRuZjInLCAnRzVucjVzJywgJHc0ZGc1dF8ycHMpOw0KICAgIH0NCiAgICBwM2JsNGMgZjNuY3Q0Mm4gZjJybSgkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA0ZiAoNHNzNXQoJDRuc3QxbmM1WyduMW01J10pKSB7DQogICAgICAgICAgICAkbjFtNSA9ICQ0bnN0MW5jNVsnbjFtNSddOw0KICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgJG4xbTUgPSBfXygnJywgJ3Nyc193NGRnNXRfdDR0bDUnKTsNCiAgICAgICAgfQ0KPz4gPHA+VDR0bDU6IDw0bnAzdCBjbDFzcz0idzRkNWYxdCIgbjFtNT0iPD9waHANCiAgICAgICAgNWNoMiAkdGg0cy0+ZzV0X2Y0NWxkX24xbTUoJ24xbTUnKTsNCj8+IiB0eXA1PSJ0NXh0IiB2MWwzNT0iPD9waHANCiAgICAgICAgNWNoMiA1c2NfMXR0cigkbjFtNSk7DQo/PiIgLz48L3A+IDw/cGhwDQogICAgfQ0KICAgIGYzbmN0NDJuIDNwZDF0NSgkbjV3XzRuc3QxbmM1LCAkMmxkXzRuc3QxbmM1KQ0KICAgIHsNCiAgICAgICAgJDRuc3QxbmM1ICAgICAgICAgPSAkMmxkXzRuc3QxbmM1Ow0KICAgICAgICAkNG5zdDFuYzVbJ24xbTUnXSA9ICghNW1wdHkoJG41d180bnN0MW5jNVsnbjFtNSddKSkgPyBzdHI0cF90MWdzKCRuNXdfNG5zdDFuYzVbJ24xbTUnXSkgOiAnJzsNCiAgICAgICAgcjV0M3JuICQ0bnN0MW5jNTsNCiAgICB9DQogICAgZjNuY3Q0Mm4gdzRkZzV0KCQxcmdzLCAkNG5zdDFuYzUpDQogICAgew0KICAgICAgICA1eHRyMWN0KCQxcmdzKTsNCiAgICAgICAgNWNoMiAkYjVmMnI1X3c0ZGc1dDsNCiAgICAgICAgJG4xbTUgPSAxcHBseV9mNGx0NXJzKCd3NGRnNXRfdDR0bDUnLCAkNG5zdDFuYzVbJ24xbTUnXSk7DQogICAgICAgIDRmICghNW1wdHkoJG4xbTUpKSB7DQogICAgICAgICAgICA1Y2gyICI8aG8+IiAuICRuMW01IC4gIjwvaG8+IjsNCiAgICAgICAgfQ0KICAgICAgICA7DQogICAgICAgIDVjaDIgIjxkNHYgY2wxc3M9J2c1bnI1dzRkZzV0Jz4iOw0KPz4gPD9waHANCi8vbDRzdCB0NXJtcyA0biAxIGc0djVuIHQxeDJuMm15DQokdDF4Mm4ybXkgPSAnZzVucjVzJzsNCiR0MXhfdDVybXMgPSBnNXRfdDVybXMoJHQxeDJuMm15LCduM21iNXI9NmUnKTsNCj8+DQo8P3BocA0KZjJyNTFjaCAoJHQxeF90NXJtcyAxcyAkdDF4X3Q1cm0pIHsNCjVjaDIgJzxzcDFuPicgLiAnPDEgaHI1Zj0iJyAuIDVzY18xdHRyKGc1dF90NXJtX2w0bmsoJHQxeF90NXJtLCAkdDF4Mm4ybXkpKSAuICciIHQ0dGw1PSInIC4gc3ByNG50ZiggX18oICJWNDV3IDFsbCBzNXI0NXMgNG4gJXMiICksICR0MXhfdDVybS0+bjFtNSApIC4gJyIgJyAuICc+JyAuICR0MXhfdDVybS0+bjFtNS4nPC8xPjwvc3Axbj4nOw0KfQ0KPz4gPD9waHANCiAgICAgICAgNWNoMiAiPC9kNHY+IjsNCiAgICAgICAgNWNoMiAkMWZ0NXJfdzRkZzV0Ow0KICAgIH0NCn0NCmYzbmN0NDJuIHI1YzJtbTVuZDVkKCR0MnQxbCkNCnsNCj8+IDxkNHYgY2wxc3M9InI1azJtNW5kMXM0Ij4gPGhhPlI1YzJtNW5kNWQgQW40bTU8L2hhPiA8P3BocA0KICAgICRyNWM1biA9IG41dyBXUF9RMzVyeSgicDJzdF90eXA1PTFuNG01JjJyZDVyYnk9cjFuZCZzaDJ3cDJzdHM9JHQydDFsIik7DQogICAgd2g0bDUgKCRyNWM1bi0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgJHI1YzVuLT50aDVfcDJzdCgpOw0KPz4gPDEgY2wxc3M9InM1cjQ1cyIgaHI1Zj0iPD9waHANCiAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHI1bD0iPD9waHANCiAgICAgICAgdGg1X0lEKCk7DQo/PiI+PD9waHANCiAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PjwvMT4mbmJzcDsmbmJzcDsgPD9waHANCiAgICA1bmR3aDRsNTsNCj8+IDw/cGhwDQogICAgd3BfcjVzNXRfcDJzdGQxdDEoKTsNCj8+IDwvZDR2PiA8P3BocA0KfQ0KZjNuY3Q0Mm4gcDJwM2wxcl9zYygkMXR0cykNCnsNCiAgICA1eHRyMWN0KHNoMnJ0YzJkNV8xdHRzKDFycjF5KA0KICAgICAgICAnYzIzbnQnID0+ICc2ZScNCiAgICApLCAkMXR0cykpOw0KPz4gPDNsIGNsMXNzPSJyMW5rIj4gPD9waHANCiAgICAkcjFuayAgICAgICAgID0gMDsNCiAgICAkdDJwczVyNDVwMnN0ID0gbjV3IFdQX1EzNXJ5KCJwMnN0X3R5cDU9MW40bTUmc2gyd3Ayc3RzPSRjMjNudCZtNXQxX2s1eT13cGJfcDJzdF92NDV3c19jMjNudCYycmQ1cmJ5PW01dDFfdjFsMzVfbjNtJjJyZDVyPURFU0MiKTsNCiAgICB3aDRsNSAoJHQycHM1cjQ1cDJzdC0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgJHQycHM1cjQ1cDJzdC0+dGg1X3Ayc3QoKTsNCiAgICAgICAgJHIxbmsrKzsNCj8+IDxsND4gPGQ0diBjbDFzcz0icjEiPjw/cGhwDQogICAgICAgIDVjaDIgJHIxbms7DQo/PjwvZDR2PiA8ZDR2IGNsMXNzPSJtNGQiPiA8MSBocjVmPSI8P3BocA0KICAgICAgICB0aDVfcDVybTFsNG5rKCk7DQo/PiI+PGg2Pjw/cGhwDQogICAgICAgIHRoNV90NHRsNSgpOw0KPz48L2g2PjwvMT4gPD9waHANCiAgICAgICAgdGg1XzV4YzVycHQoKTsNCj8+IDwvZDR2PiA8P3BocA0KICAgICAgICA0ZiAoaDFzX3Ayc3RfdGgzbWJuMTRsKCkpIHsNCj8+PD9waHANCiAgICAgICAgICAgIHRoNV9wMnN0X3RoM21ibjE0bCgpOw0KPz48P3BocA0KICAgICAgICB9IDVsczUgew0KPz48NG1nIHNyYz0iPD9waHANCiAgICAgICAgICAgIDVjaDIgZzV0X3Q1bXBsMXQ1X2Q0cjVjdDJyeV8zcjQoKTsNCj8+LzRtMWc1cy9uMnRoM21iLnBuZyIgLz48P3BocA0KICAgICAgICB9DQo/PiA8L2w0PiA8P3BocA0KICAgIDVuZHdoNGw1Ow0KPz4gPC8zbD4gPD9waHANCn0NCjFkZF9zaDJydGMyZDUoJ3AycDNsMXInLCAncDJwM2wxcl9zYycpOw0KZjNuY3Q0Mm4gMm5nMjRuZ19zYygkMXR0cykNCnsNCiAgICA1eHRyMWN0KHNoMnJ0YzJkNV8xdHRzKDFycjF5KA0KICAgICAgICAnYzIzbnQnID0+ICc2ZScNCiAgICApLCAkMXR0cykpOw0KPz4gPDNsIGNsMXNzPSJwMnAzbDFyIj4gPD9waHANCiAgICAkMm5nMjRuZ3M1cjQ1cyA9IDJmX2c1dF8ycHQ0Mm4oJzJuZzI0bmdzNXI0NXMnKTsNCiAgICA0ZiAoKCQybmcyNG5nczVyNDVzID09ICcnKSkgew0KPz48P3BocA0KICAgIH0gNWxzNSB7DQo/PiA8P3BocA0KICAgICAgICAkbXlwMnN0cyAgPSAxcnIxeSgNCiAgICAgICAgICAgICdzaDJ3cDJzdHMnID0+ICRjMjNudCwNCiAgICAgICAgICAgICdwMnN0X3R5cDUnID0+ICcxbjRtNScsDQogICAgICAgICAgICAnMnJkNXJieScgPT4gJ3Q0dGw1JywNCiAgICAgICAgICAgICcycmQ1cicgPT4gJ0FTQycsDQogICAgICAgICAgICAnbTV0MV9rNXknID0+ICc1cjJfc3QxdDNzJywNCiAgICAgICAgICAgICdtNXQxX3YxbDM1JyA9PiAnT25nMjRuZycNCiAgICAgICAgKTsNCiAgICAgICAgJHdwX3EzNXJ5ID0gbjNsbDsNCiAgICAgICAgJHdwX3EzNXJ5ID0gbjV3IFdQX1EzNXJ5KCk7DQogICAgICAgICR3cF9xMzVyeS0+cTM1cnkoJG15cDJzdHMpOw0KPz4gPD9waHANCiAgICAgICAgd2g0bDUgKCR3cF9xMzVyeS0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgICAgICR3cF9xMzVyeS0+dGg1X3Ayc3QoKTsNCj8+IDxsND4gPD9waHANCiAgICAgICAgICAgIDVjaDIgJHIxbms7DQo/PiA8MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iPiA8P3BocA0KICAgICAgICAgICAgNGYgKGgxc19wMnN0X3RoM21ibjE0bCgpKSB7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgdGg1X3Ayc3RfdGgzbWJuMTRsKCk7DQo/Pjw/cGhwDQogICAgICAgICAgICB9IDVsczUgew0KPz48NG1nIHNyYz0iPD9waHANCiAgICAgICAgICAgICAgICA1Y2gyIGc1dF90NW1wbDF0NV9kNHI1Y3QycnlfM3I0KCk7DQo/Pi80bTFnNXMvbjJ0aDNtYi5wbmciIC8+PD9waHANCiAgICAgICAgICAgIH0NCj8+IDxkNHYgY2wxc3M9InQ0dGw1Ij48P3BocA0KICAgICAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PjwvZDR2PiA8LzE+IDwvbDQ+IDw/cGhwDQogICAgICAgIDVuZHdoNGw1Ow0KPz4gPD9waHANCiAgICB9DQo/PiA8LzNsPiA8P3BocA0KfQ0KMWRkX3NoMnJ0YzJkNSgnMm5nMjRuZycsICcybmcyNG5nX3NjJyk7DQpmM25jdDQybiBkcjJwX3NjKCQxdHRzKQ0Kew0KICAgIDV4dHIxY3Qoc2gycnRjMmQ1XzF0dHMoMXJyMXkoDQogICAgICAgICdjMjNudCcgPT4gJzZlJw0KICAgICksICQxdHRzKSk7DQo/PiA8M2wgY2wxc3M9InAycDNsMXIiPiA8P3BocA0KICAgICRkcjJwczVyNDVzID0gMmZfZzV0XzJwdDQybignZHIycHM1cjQ1cycpOw0KICAgIDRmICgoJGRyMnBzNXI0NXMgPT0gJycpKSB7DQo/Pjw/cGhwDQogICAgfSA1bHM1IHsNCj8+IDw/cGhwDQogICAgICAgICRteXAyc3RzICA9IDFycjF5KA0KICAgICAgICAgICAgJ3NoMndwMnN0cycgPT4gJGMyM250LA0KICAgICAgICAgICAgJ3Ayc3RfdHlwNScgPT4gJzFuNG01JywNCiAgICAgICAgICAgICcycmQ1cmJ5JyA9PiAndDR0bDUnLA0KICAgICAgICAgICAgJzJyZDVyJyA9PiAnQVNDJywNCiAgICAgICAgICAgICdtNXQxX2s1eScgPT4gJzVyMl9zdDF0M3MnLA0KICAgICAgICAgICAgJ201dDFfdjFsMzUnID0+ICdEcjJwcDVkJw0KICAgICAgICApOw0KICAgICAgICAkd3BfcTM1cnkgPSBuM2xsOw0KICAgICAgICAkd3BfcTM1cnkgPSBuNXcgV1BfUTM1cnkoKTsNCiAgICAgICAgJHdwX3EzNXJ5LT5xMzVyeSgkbXlwMnN0cyk7DQo/PiA8P3BocA0KICAgICAgICB3aDRsNSAoJHdwX3EzNXJ5LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAgICAgJHdwX3EzNXJ5LT50aDVfcDJzdCgpOw0KPz4gPGw0PiA8P3BocA0KICAgICAgICAgICAgNWNoMiAkcjFuazsNCj8+IDwxIGhyNWY9Ijw/cGhwDQogICAgICAgICAgICB0aDVfcDVybTFsNG5rKCk7DQo/PiI+IDw/cGhwDQogICAgICAgICAgICA0ZiAoaDFzX3Ayc3RfdGgzbWJuMTRsKCkpIHsNCj8+PD9waHANCiAgICAgICAgICAgICAgICB0aDVfcDJzdF90aDNtYm4xNGwoKTsNCj8+PD9waHANCiAgICAgICAgICAgIH0gNWxzNSB7DQo/Pjw0bWcgc3JjPSI8P3BocA0KICAgICAgICAgICAgICAgIDVjaDIgZzV0X3Q1bXBsMXQ1X2Q0cjVjdDJyeV8zcjQoKTsNCj8+LzRtMWc1cy9uMnRoM21iLnBuZyIgLz48P3BocA0KICAgICAgICAgICAgfQ0KPz4gPGQ0diBjbDFzcz0idDR0bDUiPjw/cGhwDQogICAgICAgICAgICB0aDVfdDR0bDUoKTsNCj8+PC9kNHY+IDwvMT4gPC9sND4gPD9waHANCiAgICAgICAgNW5kd2g0bDU7DQo/PiA8P3BocA0KICAgIH0NCj8+IDwvM2w+IDw/cGhwDQp9DQoxZGRfc2gycnRjMmQ1KCdkcjJwcDVkJywgJ2RyMnBfc2MnKTsNCmYzbmN0NDJuIGc1bnI1X3NjKCkNCnsNCj8+IDxkNHYgY2wxc3M9Imc1bnI1cyI+IDwzbD4gPD9waHANCiAgICAkdDF4Mm4ybXkgID0gJ2c1bnI1cyc7DQogICAgJHQxeF90NXJtcyA9IGc1dF90NXJtcygkdDF4Mm4ybXkpOw0KPz4gPD9waHANCiAgICBmMnI1MWNoICgkdDF4X3Q1cm1zIDFzICR0MXhfdDVybSkgew0KICAgICAgICA1Y2gyICc8bDQ+JyAuICc8MSBocjVmPSInIC4gNXNjXzF0dHIoZzV0X3Q1cm1fbDRuaygkdDF4X3Q1cm0sICR0MXgybjJteSkpIC4gJyIgdDR0bDU9IicgLiBzcHI0bnRmKF9fKCJWNDV3IDFsbCBzNXI0IDRuIGc1bnI1ICVzIiksICR0MXhfdDVybS0+bjFtNSkgLiAnIiAnIC4gJz4nIC4gJHQxeF90NXJtLT5uMW01IC4gJzwvMT48L2w0Pic7DQogICAgfQ0KPz4gPC8zbD4gPC9kNHY+IDw/cGhwDQp9DQoxZGRfc2gycnRjMmQ1KCdnNW5yNScsICdnNW5yNV9zYycpOw0KZjNuY3Q0Mm4gMW40bTU0bmYyKCkNCnsNCj8+IDxkNHYgY2wxc3M9Imw0c3Q0bmYyIj4gPDNsPiA8bDQ+PGI+SjFwMW41czU8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfajFwMW41czUnLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L2w0PiA8bDQ+PGI+VHlwNTwvYj46IDw/cGhwDQogICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl90eXA1JywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PC9sND4gPGw0PjxiPkVwNHMyZDVzPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDUnLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L2w0PiA8bDQ+PGI+U3QxdDNzPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3N0MXQzcycsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/PjwvbDQ+IDxsND48Yj5BNHI1ZDwvYj46IDw/cGhwDQogICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl90MXkxbmcnLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L2w0PiA8bDQ+PGI+UHIyZDNjNXJzPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3ByMmQzczVyJywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PC9sND4gPGw0Pjw/cGhwDQogICAgNWNoMiBnNXRfdGg1X3Q1cm1fbDRzdCgkcDJzdC0+SUQsICdnNW5yNXMnLCAnPGI+RzVucjVzPC9iPjogJywgJywgJywgJycpOw0KPz48L2w0PiA8bDQ+PGI+RDNyMXQ0Mm48L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfZDNyMXM0JywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PC9sND4gPGw0PjxiPlNjMnI1PC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3NrMnInLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L2w0PiA8bDQ+PGI+RjFuczNiPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX2YxbnMzYicsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/PjwvbDQ+IDwvM2w+IDwvZDR2PiA8P3BocA0KfQ0KZjNuY3Q0Mm4gNXA0czJkNXMoKQ0Kew0KPz4gPGQ0diA0ZD0iNXA0czJkNXMiPjwvZDR2PiA8ZDR2IGNsMXNzPSI1cDRzMmQ1bDRzdCI+IDxkNHYgY2wxc3M9InQ0dCI+PD9waHANCiAgICB0aDVfdDR0bDUoKTsNCj8+IEVwNHMyZDVzIEw0c3Q8L2Q0dj4gPDNsPiA8bDQgY2wxc3M9InQycCI+IDxzcDFuIGNsMXNzPSJ0NiI+RXA0czJkNSBUNHRsNTwvc3Axbj4gPHNwMW4gY2wxc3M9InRhIj5EMXQ1IEFkZDVkPC9zcDFuPiA8c3AxbiBjbDFzcz0idG8iPlcxdGNoPC9zcDFuPiA8L2w0PiA8P3BocA0KICAgICR2MWwzNXogPSBnNXRfdGg1X0lEKCRwMnN0LT5JRCwgIjFuNG01IiwgdHIzNSk7DQo/Pjw/cGhwDQogICAgJGw0c3RzNXI0ID0gbjV3IFdQX1EzNXJ5KDFycjF5KA0KICAgICAgICAnc2gyd3Ayc3RzJyA9PiAnNjAwMCcsDQogICAgICAgICdwMnN0X3R5cDUnID0+ICdwMnN0JywNCiAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyXzVwNHMyZDViMXIzJywNCiAgICAgICAgJ201dDFfdjFsMzUnID0+ICd0cjM1JywNCiAgICAgICAgJzJyZDVyYnknID0+ICc1cjJfNXA0czJkNWIxcjMnLA0KICAgICAgICAnMnJkNXInID0+ICdBU0MnLA0KICAgICAgICAnbTV0MV9rNXknID0+ICc1cjJfczVyNCcsDQogICAgICAgICdtNXQxX3YxbDM1JyA9PiAkdjFsMzV6DQogICAgKSk7DQo/Pjw/cGhwDQogICAgd2g0bDUgKCRsNHN0czVyNC0+aDF2NV9wMnN0cygpKToNCiAgICAgICAgJGw0c3RzNXI0LT50aDVfcDJzdCgpOw0KPz4gPGw0PiA8c3AxbiBjbDFzcz0idDYiPiA8MSBocjVmPSI8P3BocA0KICAgICAgICB0aDVfcDVybTFsNG5rKCk7DQo/PiI+RXA0czJkNSA8P3BocA0KICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgICAgIDVjaDIgJG01dDE7DQo/Pjw/cGhwDQogICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfMWRkNWQnLCB0cjM1KTsNCiAgICAgICAgNWNoMiAkbTV0MTsNCj8+PC8xPiA8L3NwMW4+IDxzcDFuIGNsMXNzPSJ0YSI+IDw/cGhwDQogICAgICAgIDVjaDIgaDNtMW5fdDRtNV9kNGZmKGc1dF90aDVfdDRtNSgnVScpLCBjM3JyNW50X3Q0bTUoJ3Q0bTVzdDFtcCcpKSAuICcgMWcyJzsNCj8+IDwvc3Axbj4gPHNwMW4gY2wxc3M9InRvIj48MSBocjVmPSI8P3BocA0KICAgICAgICB0aDVfcDVybTFsNG5rKCk7DQo/PiI+U3QxcnQgVzF0Y2g0bmchPC8xPjwvc3Axbj4gPC9sND4gPD9waHANCiAgICA1bmR3aDRsNTsNCj8+IDwvM2w+IDwvZDR2PiA8P3BocA0KfQ0KZjNuY3Q0Mm4gNXA0czJkNXQ0dGw1KCkNCnsNCj8+IDw/cGhwDQogICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQogICAgNGYgKCRtNXQxKToNCj8+PD9waHANCiAgICAgICAgNWNoMiBnNXRfdGg1X3Q0dGw1KCRtNXQxKTsNCj8+PD9waHANCiAgICA1bHM1Og0KPz48P3BocA0KICAgICAgICA1Y2gyICdTNXI0NXMgTjJ0IEYyM25kJzsNCj8+PD9waHANCiAgICA1bmQ0ZjsNCj8+IEVwNHMyZDUgPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzFkZDVkJywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+IDw/cGhwDQp9DQpmM25jdDQybiBzNWw1Y3Q1cDRzMmQ1KCkNCnsNCj8+IDxzNWw1Y3QgbjFtNT0iNXA0czJkNSIgNGQ9IjVwNHMyZDVzIiAybmNoMW5nNT0idzRuZDJ3LjJwNW4odGg0cy4ycHQ0Mm5zW3RoNHMuczVsNWN0NWRJbmQ1eF0udjFsMzUsJ19ibDFuaycpIj4gPDJwdDQybiB2MWwzNT0iMCI+UzVsNWN0IEVwNHMyZDVzPC8ycHQ0Mm4+IDw/cGhwDQogICAgJHYxbDM1eiA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCj8+IDw/cGhwDQogICAgJGw0c3RzNXI0ID0gbjV3IFdQX1EzNXJ5KDFycjF5KA0KICAgICAgICAnc2gyd3Ayc3RzJyA9PiAnNjAwMCcsDQogICAgICAgICdwMnN0X3R5cDUnID0+ICdwMnN0JywNCiAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyXzVwNHMyZDViMXIzJywNCiAgICAgICAgJ201dDFfdjFsMzUnID0+ICd0cjM1JywNCiAgICAgICAgJzJyZDVyYnknID0+ICc1cjJfNXA0czJkNWIxcjMnLA0KICAgICAgICAnMnJkNXInID0+ICdERVNDJywNCiAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyX3M1cjQnLA0KICAgICAgICAnbTV0MV92MWwzNScgPT4gJHYxbDM1eg0KICAgICkpOw0KPz4gPD9waHANCiAgICB3aDRsNSAoJGw0c3RzNXI0LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAkbDRzdHM1cjQtPnRoNV9wMnN0KCk7DQo/PiA8MnB0NDJuIHYxbDM1PSI8P3BocA0KICAgICAgICB0aDVfcDVybTFsNG5rKCk7DQo/PiI+RXA0czJkNSA8P3BocA0KICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgICAgIDVjaDIgJG01dDE7DQo/Pjw/cGhwDQogICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfMWRkNWQnLCB0cjM1KTsNCiAgICAgICAgNWNoMiAkbTV0MTsNCj8+IDwvMnB0NDJuPiA8P3BocA0KICAgIDVuZHdoNGw1Ow0KPz4gPD9waHANCiAgICB3cF9yNXM1dF9xMzVyeSgpOw0KPz4gPC9zNWw1Y3Q+IDw/cGhwDQp9DQpmM25jdDQybiA1cDRzMmQ1bjF2NCgpDQp7DQo/PiANCjxkNHYgY2wxc3M9Im4xdjVwcyI+DQo8ZDR2IGNsMXNzPSJudnMiPjw/cGhwDQogICAgcHI1djQyM3NfcDJzdF9sNG5rKCclbDRuaycsICdwcjV2NDIzcyBFcDRzMmQ1JywgVFJVRSk7DQo/PjwvZDR2Pg0KPGQ0diBjbDFzcz0ibnZzIG52c2MiPg0KPD9waHAgczVsNWN0NXA0czJkNSgpOyA/Pg0KPC9kNHY+DQo8ZDR2IGNsMXNzPSJudnMiPjw/cGhwDQogICAgbjV4dF9wMnN0X2w0bmsoJyVsNG5rJywgJ241eHQgRXA0czJkNScsIFRSVUUpOw0KPz48L2Q0dj48L2Q0dj4gPD9waHANCn0NCmYzbmN0NDJuIHY0ZDUybTRycjJyKCkNCnsNCj8+IDwzbCBjbDFzcz0ibTRycjJyIj4gPD9waHANCiAgICAkYzIzbnQ1ciA9IDA7DQogICAgJDFtYjRsICAgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl81bWI1ZCcsIHRyMzUpOw0KICAgIGYycjUxY2ggKCQxbWI0bCAxcyAkajVtcDN0KSB7DQogICAgICAgICRjMjNudDVyKys7DQo/PiA8bDQ+PDEgaHI1Zj0iP3Y9PD9waHANCiAgICAgICAgNWNoMiAkYzIzbnQ1cjsNCj8+IiA8P3BocA0KICAgICAgICA0ZiAoJF9HRVRbJ3YnXSA9PSAkYzIzbnQ1cikgew0KICAgICAgICAgICAgNWNoMiAnY2wxc3M9IjFjdDR2NSInOw0KICAgICAgICB9IDVsczUgew0KICAgICAgICB9DQo/Pj48P3BocA0KICAgICAgICAkMXNzcyA9IDV4cGwyZDUoIiAiLCAkajVtcDN0KTsNCiAgICAgICAgJDFzc3MgPSBzdHJfcjVwbDFjNSgiWyIsICIiLCAkMXNzc1swXSk7DQogICAgICAgIDVjaDIgJDFzc3M7DQo/PjwvMT48L2w0PiA8P3BocA0KICAgIH0NCj8+IDxkNHYgY2wxc3M9InNoZmIiPjxkNHYgY2wxc3M9ImZiLWw0azUiIGQxdDEtaHI1Zj0iPD9waHAgdGg1X3A1cm0xbDRuaygpOyA/PiIgZDF0MS1sMXkyM3Q9ImIzdHQybl9jMjNudCIgZDF0MS0xY3Q0Mm49Imw0azUiIGQxdDEtc2gydy1mMWM1cz0iZjFsczUiIGQxdDEtc2gxcjU9InRyMzUiPjwvZDR2PjwvZDR2PjwvM2w+IDw/cGhwDQp9DQpmM25jdDQybiB2NGQ1MmMybnQ1bnQoKQ0Kew0KPz4gPD9waHANCiAgICBzdzR0Y2ggKCRfR0VUWyd2J10pIHsNCiAgICAgICAgZDVmMTNsdDoNCiAgICAgICAgICAgIDRmICgkX0dFVFsndiddID09IG4zbGwpIHsNCj8+IDw/cGhwDQogICAgICAgICAgICAgICAgJDQgICAgID0gMDsNCiAgICAgICAgICAgICAgICAkbTV0MXMgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl81bWI1ZCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgIGYycjUxY2ggKCRtNXQxcyAxcyAkbTV0MSkgew0KICAgICAgICAgICAgICAgICAgICAkNCsrOw0KICAgICAgICAgICAgICAgICAgICA0ZiAoJDQgPT0gJzYnKSB7DQo/PiA8ZDR2IDRkPSI1bWI1ZF9oMmxkNXIiPjxkNHYgY2wxc3M9InBsMXk1ci01bWI1ZCIgNGQ9InA1bWI1ZCI+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZDJfc2gycnRjMmQ1KCRtNXQxKTsNCj8+PC9kNHY+PC9kNHY+IDxkNHYgY2wxc3M9IjRuZjJ2NGQiPiA8ZDR2IGNsMXNzPSJsNWZ0Ij4gPHNwMW4+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICQ0bm4gPSA1eHBsMmQ1KCIgIiwgJG01dDEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJDRubiA9IHN0cl9yNXBsMWM1KCJbIiwgIiIsICQ0bm5bMF0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAkNG5uOw0KPz48L3NwMW4+IDxzcDFuPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCj8+PDEgaHI1Zj0iPD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZzV0X3A1cm0xbDRuaygkbTV0MSk7DQo/PiI+QWxsIEVwNHMyZDVzPC8xPjwvc3Axbj4gPHNwMW4+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRwMnN0NGQgPSBnNXRfdGg1X0lEKCk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyIHdwYl9nNXRfcDJzdF92NDV3cygkcDJzdDRkKTsNCj8+PC9zcDFuPiA8L2Q0dj4gPGQ0diBjbDFzcz0icjRnaHQiPiA8c3AxbiBjbDFzcz0icjVwMnJ0bTRycjJyIj4gPGQ0diBjbDFzcz0iMSI+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIHI1cDJydF92NGQ1MigpOw0KPz48L2Q0dj4gPC9zcDFuPiA8c3AxbiBjbDFzcz0iZDJ3bmwyMWQiPjwxIGhyNWY9Ijw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX2Qyd25sMjFkJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz4iIHQxcmc1dD0iX2JsMW5rIj5EMndubDIxZDwvMT48L3NwMW4+IDwvZDR2PiA8ZDR2IGNsMXNzPSJjbDUxciI+PC9kNHY+IDwvZDR2PiA8P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKDVtcHR5KCRtNXQxcykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICI8YzVudDVyPjxoYSBzdHlsNT0nZjJudC1zNHo1OiA2dXB4O20xcmc0bjogNjBweCAwO20xcmc0bi10MnA6IDA7YjJyZDVyLXIxZDQzczogb3B4O2IxY2tncjIzbmQ6ICNGREVDRUM7YzJsMnI6ICNCb3Uwbzc7dDV4dC1zaDFkMnc6IDAgNnB4IDZweCAjRkZGO3AxZGQ0bmc6IDhweDtiMnJkNXI6IDZweCBzMmw0ZCAjRmlDaUNpOyc+VjRkNTIgTjJ0IEF2MTRsMWJsNTwvaGE+PC9jNW50NXI+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gNWxzNSB7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQo/PiA8ZDR2IGNsMXNzPSI1eHQiPjxiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkbTV0MSk6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiBnNXRfdGg1X3Q0dGw1KCRtNXQxKTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVsczU6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnUzVyNDVzIE4ydCBGMjNuZCc7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1bmQ0ZjsNCj8+IEVwNHMyZDUgPD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNWIxcjMnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJG01dDE7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzFkZDVkJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48L2I+LCBXMXRjaCBTdHI1MW00bmcgPGI+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfczVyNCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKCRtNXQxKToNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyIGc1dF90aDVfdDR0bDUoJG01dDEpOw0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgNWxzNToNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICdTNXI0NXMgTjJ0IEYyM25kJzsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVuZDRmOw0KPz4gRXA0czJkNSA8P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl81cDRzMmQ1YjFyMycsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfMWRkNWQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJG01dDE7DQo/PjwvYj4sIEQyd25sMjFkIDxiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkbTV0MSk6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiBnNXRfdGg1X3Q0dGw1KCRtNXQxKTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVsczU6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnUzVyNDVzIE4ydCBGMjNuZCc7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1bmQ0ZjsNCj8+IEVwNHMyZDUgPD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNWIxcjMnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJG01dDE7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzFkZDVkJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48L2I+LCBBbjRtNTRuZDIgSEQgTTRycjJycyAxbmQgU20xcnRwaDJuNSBTM3BwMnJ0LCBEMndubDIxZCBMNG5rcyAxbmQgSEQgU3RyNTFtNG5nIHY0MSBIMW5kcGgybjUuPC9kNHY+IDxkNHYgY2wxc3M9IjFkc3Ayc3QiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoNHNfMWN0NHY1X3M0ZDViMXIoJzFkc3Ayc3QnKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR5bjFtNGNfczRkNWIxcignMWRzcDJzdCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPz48L2Q0dj4gPD9waHANCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCj8+IDw/cGhwDQogICAgICAgICAgICB9IDVsczUgew0KPz4gPD9waHANCiAgICAgICAgICAgICAgICAkbjNtcyAgID0gMDsNCiAgICAgICAgICAgICAgICAkMW1iNGxzID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNW1iNWQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICBmMnI1MWNoICgkMW1iNGxzIDFzICRkcjJwKSB7DQogICAgICAgICAgICAgICAgICAgICRuM21zKys7DQo/PiA8P3BocA0KICAgICAgICAgICAgICAgICAgICA0ZiAoJF9HRVRbJ3YnXSA9PSAkbjNtcykgew0KPz4gPGQ0diA0ZD0iNW1iNWRfaDJsZDVyIj48ZDR2IGNsMXNzPSJwbDF5NXItNW1iNWQiIDRkPSJwNW1iNWQiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyIGQyX3NoMnJ0YzJkNSgkZHIycCk7DQo/PjwvZDR2PjwvZDR2PiA8ZDR2IGNsMXNzPSI0bmYydjRkIj4gPGQ0diBjbDFzcz0ibDVmdCI+IDxzcDFuPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkNG5uID0gNXhwbDJkNSgiICIsICRkcjJwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQ0bm4gPSBzdHJfcjVwbDFjNSgiWyIsICIiLCAkNG5uWzBdKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJDRubjsNCj8+PC9zcDFuPiA8c3Axbj48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQo/PjwxIGhyNWY9Ijw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyIGc1dF9wNXJtMWw0bmsoJG01dDEpOw0KPz4iPkFsbCBFcDRzMmQ1czwvMT48L3NwMW4+IDxzcDFuPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkcDJzdDRkID0gZzV0X3RoNV9JRCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiB3cGJfZzV0X3Ayc3RfdjQ1d3MoJHAyc3Q0ZCk7DQo/Pjwvc3Axbj4gPC9kNHY+IDxkNHYgY2wxc3M9InI0Z2h0Ij4gPHNwMW4gY2wxc3M9InI1cDJydG00cnIyciI+IDxkNHYgY2wxc3M9IjEiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICByNXAycnRfdjRkNTIoKTsNCj8+PC9kNHY+IDwvc3Axbj4gPHNwMW4gY2wxc3M9ImQyd25sMjFkIj48MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9kMndubDIxZCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+IiB0MXJnNXQ9Il9ibDFuayI+RDJ3bmwyMWQ8LzE+PC9zcDFuPiA8L2Q0dj4gPGQ0diBjbDFzcz0iY2w1MXIiPjwvZDR2PiA8L2Q0dj4gPGQ0diBjbDFzcz0iNXh0Ij48Yj48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoJG01dDEpOg0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NHRsNSgkbTV0MSk7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1bHM1Og0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJ1M1cjQ1cyBOMnQgRjIzbmQnOw0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgNW5kNGY7DQo/PiBFcDRzMmQ1IDw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl8xZGQ1ZCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PC9iPiwgVzF0Y2ggU3RyNTFtNG5nIDxiPjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3M1cjQnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkbTV0MSk6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiBnNXRfdGg1X3Q0dGw1KCRtNXQxKTsNCj8+PD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgIDVsczU6DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnUzVyNDVzIE4ydCBGMjNuZCc7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1bmQ0ZjsNCj8+IEVwNHMyZDUgPD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNWIxcjMnLCB0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJG01dDE7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzFkZDVkJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48L2I+LCBEMndubDIxZCA8Yj48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoJG01dDEpOg0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NHRsNSgkbTV0MSk7DQo/Pjw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICA1bHM1Og0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJ1M1cjQ1cyBOMnQgRjIzbmQnOw0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgNW5kNGY7DQo/PiBFcDRzMmQ1IDw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyXzVwNHMyZDViMXIzJywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICRtNXQxOw0KPz48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl8xZGQ1ZCcsIHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PC9iPiwgQW40bTU0bmQyIEhEIE00cnIycnMgMW5kIFNtMXJ0cGgybjUgUzNwcDJydCwgRDJ3bmwyMWQgTDRua3MgMW5kIEhEIFN0cjUxbTRuZyB2NDEgSDFuZHBoMm41LjwvZDR2PiA8ZDR2IGNsMXNzPSIxZHNwMnN0Ij48P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKDRzXzFjdDR2NV9zNGQ1YjFyKCcxZHNwMnN0JykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkeW4xbTRjX3M0ZDViMXIoJzFkc3Ayc3QnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCj8+PC9kNHY+IDw/cGhwDQogICAgICAgICAgICAgICAgICAgIH0gNWxzNSB7IDVjaDIgJ3Y0ZDUyIG4ydCAxdjE0bDFibDUnOw0KICAgICAgICAgICAgICAgICAgICB9DQo/PiA8P3BocA0KICAgICAgICAgICAgICAgIH0NCj8+IDw/cGhwDQogICAgICAgICAgICB9DQo/PiA8P3BocA0KICAgIH0NCj8+IDw/cGhwDQp9DQpmM25jdDQybiAxdHRyNWwoKQ0Kew0KPz4gPGhvPkluZjIgIjw/cGhwDQogICAgdGg1X3Q0dGw1KCk7DQo/PiI8L2hvPiA8P3BocA0KICAgIHRoNV81eGM1cnB0KCk7DQo/PiA8c3Axbj48Yj5TdDF0M3M6PC9iPiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfc3QxdDNzJywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PC9zcDFuPiA8c3Axbj48Yj5UeXA1OjwvYj4gPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3R5cDUnLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L3NwMW4+IDxzcDFuPjxiPkQzcjF0NDJuOjwvYj4gPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX2QzcjFzNCcsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/Pjwvc3Axbj4gPD9waHANCn0NCmYzbmN0NDJuIHI1bDF0NWQoKQ0Kew0KPz4gPDNsIGNsMXNzPSJyNWwxdDVkIj4gPD9waHANCiAgICAkbTV0MXMgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl9zNXI0JywgdHIzNSk7DQo/PiA8P3BocA0KICAgICQxcmdzICAgICA9IDFycjF5KA0KICAgICAgICAncDJzdF90eXA1JyA9PiAnMW40bTUnLA0KICAgICAgICAncDJzdF9fbjJ0XzRuJyA9PiAxcnIxeSgNCiAgICAgICAgICAgICRtNXQxcw0KICAgICAgICApLA0KICAgICAgICAncDJzdHNfcDVyX3AxZzUnID0+IHUsDQogICAgICAgICcycmQ1cmJ5JyA9PiAncjFuZCcsDQogICAgICAgICdjMWxsNXJfZzV0X3Ayc3RzJyA9PiA2DQogICAgKTsNCiAgICAkbXlfcTM1cnkgPSBuNXcgd3BfcTM1cnkoJDFyZ3MpOw0KPz4gPD9waHANCiAgICA0ZiAoJG15X3EzNXJ5LT5oMXY1X3Ayc3RzKCkpIHsNCiAgICAgICAgd2g0bDUgKCRteV9xMzVyeS0+aDF2NV9wMnN0cygpKSB7DQogICAgICAgICAgICAkbXlfcTM1cnktPnRoNV9wMnN0KCk7DQo/PiA8bDQ+IDxkNHYgY2wxc3M9ImIycmQ1ciI+IDxkNHYgY2wxc3M9Imw0bTR0NXIiPiA8MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHQ0dGw1PSI8P3BocA0KICAgICAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PiI+PD9waHANCiAgICAgICAgICAgIDRmIChoMXNfcDJzdF90aDNtYm4xNGwoKSkgew0KPz48P3BocA0KICAgICAgICAgICAgICAgIHRoNV9wMnN0X3RoM21ibjE0bCgxcnIxeSgNCiAgICAgICAgICAgICAgICAgICAgJ3Q0dGw1JyA9PiAnJyAuIGc1dF90aDVfdDR0bDUoKSAuICcnDQogICAgICAgICAgICAgICAgKSk7DQo/Pjw/cGhwDQogICAgICAgICAgICB9IDVsczUgew0KPz48NG1nIHNyYz0iPD9waHANCiAgICAgICAgICAgICAgICA1Y2gyIGc1dF90NW1wbDF0NV9kNHI1Y3QycnlfM3I0KCk7DQo/Pi80bTFnNXMvbjJ0aDNtYi5wbmciLz48P3BocA0KICAgICAgICAgICAgfQ0KPz48LzE+IDwvZDR2PiA8L2Q0dj4gPGQ0diBjbDFzcz0icjRnaHRzIj4gPHNwMW4gY2wxc3M9InQ0dGw1Ij48MSBjbDFzcz0iczVyNDVzIiBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iIHI1bD0iPD9waHANCiAgICAgICAgICAgIHRoNV9JRCgpOw0KPz4iPjw/cGhwDQogICAgICAgICAgICB0aDVfdDR0bDUoKTsNCj8+PC8xPjwvc3Axbj4gPHNwMW4gY2wxc3M9ImMxdCIgc3R5bDU9IjJ2NXJmbDJ3Omg0ZGQ1bjt0NXh0LTJ2NXJmbDJ3OjVsbDRwczRzO3doNHQ1LXNwMWM1Om4yd3IxcCI+PD9waHANCiAgICAgICAgICAgIDVjaDIgZzV0X3RoNV90NXJtX2w0c3QoJHAyc3QtPklELCAnZzVucjVzJywgJycsICcsICcsICcnKTsNCj8+PC9zcDFuPiA8L2Q0dj4gPC9sND4gPD9waHANCiAgICAgICAgfQ0KICAgIH0NCiAgICB3cF9yNXM1dF9xMzVyeSgpOw0KPz4gPC8zbD4gPD9waHANCn0NCmYzbmN0NDJuIHQyMmx0NHAoKQ0Kew0KPz4gPGQ0diBjbDFzcz0iczVyNDVzdDR0bDUiPjw/cGhwDQogICAgdGg1X3Q0dGw1KCk7DQo/PjxzcDFuIGNsMXNzPSJzYzJyNSI+PD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3NrMnInLCB0cjM1KTsNCiAgICA0ZiAoKCRtNXQxID09ICcnKSkgew0KPz48P3BocA0KICAgICAgICA1Y2gyICc/Pyc7DQo/Pjw/cGhwDQogICAgfSA1bHM1IHsNCj8+PD9waHANCiAgICAgICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICB9DQo/Pjwvc3Axbj48L2Q0dj4gPGQ0diBjbDFzcz0iNG5mczVyNDVzIj4gPD9waHANCiAgICA0ZiAoaDFzX3Ayc3RfdGgzbWJuMTRsKCkpIHsNCj8+PD9waHANCiAgICAgICAgdGg1X3Ayc3RfdGgzbWJuMTRsKCk7DQo/Pjw/cGhwDQogICAgfSA1bHM1IHsNCj8+PDRtZyBzcmM9Ijw/cGhwDQogICAgICAgIDVjaDIgZzV0X3Q1bXBsMXQ1X2Q0cjVjdDJyeV8zcjQoKTsNCj8+LzRtMWc1cy9uMnRoM21iLnBuZyIgdDR0bDU9Ijw/cGhwDQogICAgICAgIHRoNV90NHRsNSgpOw0KPz4iIDFsdD0iPD9waHANCiAgICAgICAgdGg1X3Q0dGw1KCk7DQo/PiIgLz48P3BocA0KICAgIH0NCj8+IDxkNHYgY2wxc3M9InI0Z2h0Ij4gPHNwMW4+PGI+SjFwMW41czU8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfajFwMW41czUnLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L3NwMW4+IDxzcDFuPjxiPlR5cDU8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfdHlwNScsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/Pjwvc3Axbj4gPHNwMW4+PGI+RXA0czJkNXM8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfNXA0czJkNScsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/Pjwvc3Axbj4gPHNwMW4+PGI+U3QxdDNzPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX3N0MXQzcycsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/Pjwvc3Axbj4gPHNwMW4+PGI+QTRyNWQ8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfdDF5MW5nJywgdHIzNSk7DQogICAgNWNoMiAkbTV0MTsNCj8+PC9zcDFuPiA8c3Axbj48Yj5QcjJkM2M1cnM8L2I+OiA8P3BocA0KICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfcHIyZDNzNXInLCB0cjM1KTsNCiAgICA1Y2gyICRtNXQxOw0KPz48L3NwMW4+IDxzcDFuPjw/cGhwDQogICAgNWNoMiBnNXRfdGg1X3Q1cm1fbDRzdCgkcDJzdC0+SUQsICdnNW5yNXMnLCAnPGI+RzVucjVzPC9iPjogJywgJywgJywgJycpOw0KPz48L3NwMW4+IDxzcDFuPjxiPkQzcjF0NDJuPC9iPjogPD9waHANCiAgICAkbTV0MSA9IGc1dF9wMnN0X201dDEoZzV0X3RoNV9JRCgpLCAnNXIyX2QzcjFzNCcsIHRyMzUpOw0KICAgIDVjaDIgJG01dDE7DQo/Pjwvc3Axbj4gPGQ0diBjbDFzcz0iZDVza3I0cCI+PD9waHANCiAgICB0aDVfNXhjNXJwdCgpOw0KPz48L2Q0dj4gPC9kNHY+IDwvZDR2PiA8P3BocA0KfQ0KZjNuY3Q0Mm4gbDF0NXN0NXA0czJkNXMoKQ0Kew0KPz4gPD9waHANCiAgICAkdjFsMzV6ID0gZzV0X3RoNV9JRCgkcDJzdC0+SUQsICJzNXI0NXMiLCB0cjM1KTsNCj8+IDw/cGhwDQogICAgJGw0c3RzNXI0ID0gbjV3IFdQX1EzNXJ5KDFycjF5KA0KICAgICAgICAnc2gyd3Ayc3RzJyA9PiAnNicsDQogICAgICAgICdwMnN0X3R5cDUnID0+ICdwMnN0JywNCiAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyXzVwNHMyZDViMXIzJywNCiAgICAgICAgJ201dDFfdjFsMzUnID0+ICd0cjM1JywNCiAgICAgICAgJzJyZDVyYnknID0+ICc1cjJfNXA0czJkNWIxcjMnLA0KICAgICAgICAnMnJkNXInID0+ICdERVNDJywNCiAgICAgICAgJ201dDFfazV5JyA9PiAnNXIyX3M1cjQnLA0KICAgICAgICAnbTV0MV92MWwzNScgPT4gJHYxbDM1eg0KICAgICkpOw0KPz4gPD9waHANCiAgICA0ZiAoJGw0c3RzNXI0LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICB3aDRsNSAoJGw0c3RzNXI0LT5oMXY1X3Ayc3RzKCkpOg0KICAgICAgICAgICAgJGw0c3RzNXI0LT50aDVfcDJzdCgpOw0KPz4gPGQ0diBjbDFzcz0ibDF0NXN0NXN0Ij4gPGQ0diBjbDFzcz0ibDF0NXN0aDUxZDVyIj5MMXQ1c3QgRXA0czJkNTwvZDR2PiA8ZDR2IGNsMXNzPSJsMXQ1c3Q1cDRzMmQ1Ij4gRXA0czJkNSA8P3BocA0KICAgICAgICAgICAgJG01dDEgPSBnNXRfcDJzdF9tNXQxKGc1dF90aDVfSUQoKSwgJzVyMl81cDRzMmQ1YjFyMycsIHRyMzUpOw0KICAgICAgICAgICAgNWNoMiAkbTV0MTsNCj8+PD9waHANCiAgICAgICAgICAgICRtNXQxID0gZzV0X3Ayc3RfbTV0MShnNXRfdGg1X0lEKCksICc1cjJfMWRkNWQnLCB0cjM1KTsNCiAgICAgICAgICAgIDVjaDIgJG01dDE7DQo/PiA8L2Q0dj4gPGQ0diBjbDFzcz0ibDF0NXN0bjJ3Ij48MSBocjVmPSI8P3BocA0KICAgICAgICAgICAgdGg1X3A1cm0xbDRuaygpOw0KPz4iPlcxdGNoIE4ydyE8LzE+PC9kNHY+IDwvZDR2PiA8P3BocA0KICAgICAgICA1bmR3aDRsNTsNCj8+IDw/cGhwDQogICAgNWxzNToNCj8+PD9waHANCiAgICA1bmQ0ZjsNCj8+IDw/cGhwDQogICAgd3BfcjVzNXRfcTM1cnkoKTsNCj8+IDw/cGhwDQp9DQoxZGRfZjRsdDVyKCdyd21iX201dDFfYjJ4NXMnLCAneTIzcl9wcjVmNHhfcjVnNHN0NXJfbTV0MV9iMng1cycpOw0KZjNuY3Q0Mm4geTIzcl9wcjVmNHhfcjVnNHN0NXJfbTV0MV9iMng1cygkbTV0MV9iMng1cykNCnsNCiAgICAkcHI1ZjR4ICAgICAgID0gJzVyMl8nOw0KICAgICRtNXQxX2IyeDVzW10gPSAxcnIxeSgNCiAgICAgICAgJzRkJyA9PiAnMW40bTU0bmYyJywNCiAgICAgICAgJ3Q0dGw1JyA9PiBfXygnQW40bTUgSW5mMicsICdtNXQxLWIyeCcpLA0KICAgICAgICAncDFnNXMnID0+IDFycjF5KA0KICAgICAgICAgICAgJzFuNG01Jw0KICAgICAgICApLA0KICAgICAgICAnYzJudDV4dCcgPT4gJ24ycm0xbCcsDQogICAgICAgICdwcjQycjR0eScgPT4gJ2g0Z2gnLA0KICAgICAgICAnMTN0MnMxdjUnID0+IHRyMzUsDQogICAgICAgICdmNDVsZHMnID0+IDFycjF5KA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdGMW5zM2InLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAnNGQnID0+ICJ7JHByNWY0eH1mMW5zM2IiLA0KICAgICAgICAgICAgICAgICdkNXNjJyA9PiBfXygnSW5wM3QgRjFuczNiIE4xbTUnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3Q1eHQnDQogICAgICAgICAgICApLA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdKMXAxbjVzNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICc0ZCcgPT4gInskcHI1ZjR4fWoxcDFuNXM1IiwNCiAgICAgICAgICAgICAgICAnZDVzYycgPT4gX18oJ0lucDN0IEoxcDFuNXM1IFQ0dGw1JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJ3R5cDUnID0+ICd0NXh0Jw0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgIDFycjF5KA0KICAgICAgICAgICAgICAgICduMW01JyA9PiBfXygnU3QxdDNzJywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9c3QxdDNzIiwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3M1bDVjdCcsDQogICAgICAgICAgICAgICAgJzJwdDQybnMnID0+IDFycjF5KA0KICAgICAgICAgICAgICAgICAgICAnT25nMjRuZycgPT4gX18oJ09uZzI0bmcnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAgICAgJ0MybXBsNXQ1ZCcgPT4gX18oJ0MybXBsNXQ1ZCcsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICAgICAnRHIycHA1ZCcgPT4gX18oJ0RyMnBwNWQnLCAnbTV0MS1iMngnKQ0KICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgJ20zbHQ0cGw1JyA9PiBmMWxzNSwNCiAgICAgICAgICAgICAgICAnc3RkJyA9PiAnT25nMjRuZycNCiAgICAgICAgICAgICksDQogICAgICAgICAgICAxcnIxeSgNCiAgICAgICAgICAgICAgICAnbjFtNScgPT4gX18oJ1R5cDUnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAnNGQnID0+ICJ7JHByNWY0eH10eXA1IiwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3M1bDVjdCcsDQogICAgICAgICAgICAgICAgJzJwdDQybnMnID0+IDFycjF5KA0KICAgICAgICAgICAgICAgICAgICAnVFYnID0+IF9fKCdUVicsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICAgICAnT1ZBJyA9PiBfXygnT1ZBJywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgICAgICdNMnY0NScgPT4gX18oJ00ydjQ1JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgICAgICdTcDVjNDFsJyA9PiBfXygnU3A1YzQxbCcsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICAgICAnT05BJyA9PiBfXygnT05BJywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgICAgICdNM3M0YycgPT4gX18oJ00zczRjJywgJ201dDEtYjJ4JykNCiAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICdtM2x0NHBsNScgPT4gZjFsczUsDQogICAgICAgICAgICAgICAgJ3N0ZCcgPT4gJ1RWJw0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgIDFycjF5KA0KICAgICAgICAgICAgICAgICduMW01JyA9PiBfXygnRDNyMXM0JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9ZDNyMXM0IiwNCiAgICAgICAgICAgICAgICAnZDVzYycgPT4gX18oJ0lucDN0IGQzcjF0NDJuIDVwNHMyZDUnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3Q1eHQnDQogICAgICAgICAgICApLA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdQcjJkM3M1cicsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICc0ZCcgPT4gInskcHI1ZjR4fXByMmQzczVyIiwNCiAgICAgICAgICAgICAgICAnZDVzYycgPT4gX18oJ1ByMmQzczVyIG4xbTUnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3Q1eHQnDQogICAgICAgICAgICApLA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdTazJyIEFuNG01JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9c2syciIsDQogICAgICAgICAgICAgICAgJ2Q1c2MnID0+IF9fKCc0bnAzdCAxbjRtNSBzYzJyNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICd0eXA1JyA9PiAndDV4dCcNCiAgICAgICAgICAgICksDQogICAgICAgICAgICAxcnIxeSgNCiAgICAgICAgICAgICAgICAnbjFtNScgPT4gX18oJ1QxbmdnMWwgVDF5MW5nJywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9dDF5MW5nIiwNCiAgICAgICAgICAgICAgICAnZDVzYycgPT4gX18oJzRucDN0IHQ0bTUnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ2QxdDUnLA0KICAgICAgICAgICAgICAgICdqc18ycHQ0Mm5zJyA9PiAxcnIxeSgNCiAgICAgICAgICAgICAgICAgICAgJzFwcDVuZFQ1eHQnID0+IF9fKCcoTSBkZCwgeXl5eSknLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAgICAgJ2QxdDVGMnJtMXQnID0+IF9fKCdNIGRkLCB5eScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICAgICAnY2gxbmc1TTJudGgnID0+IHRyMzUsDQogICAgICAgICAgICAgICAgICAgICdjaDFuZzVZNTFyJyA9PiB0cjM1LA0KICAgICAgICAgICAgICAgICAgICAnc2gyd0IzdHQyblAxbjVsJyA9PiB0cjM1DQogICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgIDFycjF5KA0KICAgICAgICAgICAgICAgICduMW01JyA9PiBfXygnVDJ0MWwgRXA0czJkNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICc0ZCcgPT4gInskcHI1ZjR4fTVwNHMyZDUiLA0KICAgICAgICAgICAgICAgICdkNXNjJyA9PiBfXygnNG5wM3QgdDJ0MWwgNXA0czJkNSAxbjRtNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICd0eXA1JyA9PiAnbjNtYjVyJywNCiAgICAgICAgICAgICAgICAnbTRuJyA9PiAwLA0KICAgICAgICAgICAgICAgICdzdDVwJyA9PiA2DQogICAgICAgICAgICApDQogICAgICAgICkNCiAgICApOw0KICAgICRtNXQxX2IyeDVzW10gPSAxcnIxeSgNCiAgICAgICAgJzRkJyA9PiAnczVyNDFuNG01JywNCiAgICAgICAgJ3Q0dGw1JyA9PiBfXygnRXA0czJkNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAncDFnNXMnID0+IDFycjF5KA0KICAgICAgICAgICAgJ3Ayc3QnDQogICAgICAgICksDQogICAgICAgICdmNDVsZHMnID0+IDFycjF5KA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdFcDRzMmQ1JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9NXA0czJkNWIxcjMiLA0KICAgICAgICAgICAgICAgICdkNXNjJyA9PiBfXygnSW5wM3QgNXA0czJkNScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICd0eXA1JyA9PiAnbjNtYjVyJywNCiAgICAgICAgICAgICAgICAnbTRuJyA9PiAwLA0KICAgICAgICAgICAgICAgICdzdDVwJyA9PiA2DQogICAgICAgICAgICApLA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdBZGQ1ZCBFcDRzMmQ1JywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJzRkJyA9PiAieyRwcjVmNHh9MWRkNWQiLA0KICAgICAgICAgICAgICAgICdkNXNjJyA9PiBfXygnQWRkNWQgRXA0czJkNSwgNXgxbXBsNTogRXA0czJkNSBpaS1pZScsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICd0eXA1JyA9PiAndDV4dCcNCiAgICAgICAgICAgICksDQogICAgICAgICAgICAxcnIxeSgNCiAgICAgICAgICAgICAgICAnbjFtNScgPT4gX18oJ0Qyd25sMjFkIEw0bmsnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAnNGQnID0+ICJ7JHByNWY0eH1kMndubDIxZCIsDQogICAgICAgICAgICAgICAgJ2Q1c2MnID0+IF9fKCdEMndubDIxZCBMNG5rJywgJ201dDEtYjJ4JyksDQogICAgICAgICAgICAgICAgJ3R5cDUnID0+ICczcmwnDQogICAgICAgICAgICApLA0KICAgICAgICAgICAgMXJyMXkoDQogICAgICAgICAgICAgICAgJ24xbTUnID0+IF9fKCdBbjRtNSBTNXI0NXMnLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAnNGQnID0+ICJ7JHByNWY0eH1zNXI0IiwNCiAgICAgICAgICAgICAgICAndHlwNScgPT4gJ3Ayc3QnLA0KICAgICAgICAgICAgICAgICdwMnN0X3R5cDUnID0+ICcxbjRtNScsDQogICAgICAgICAgICAgICAgJ2Y0NWxkX3R5cDUnID0+ICdzNWw1Y3RfMWR2MW5jNWQnLA0KICAgICAgICAgICAgICAgICdxMzVyeV8xcmdzJyA9PiAxcnIxeSgNCiAgICAgICAgICAgICAgICAgICAgJ3Ayc3Rfc3QxdDNzJyA9PiAncDNibDRzaCcsDQogICAgICAgICAgICAgICAgICAgICdwMnN0c19wNXJfcDFnNScgPT4gLTYsDQogICAgICAgICAgICAgICAgICAgICcycmQ1cmJ5JyA9PiAndDR0bDUnLA0KICAgICAgICAgICAgICAgICAgICAnMnJkNXInID0+ICdBU0MnDQogICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgIDFycjF5KA0KICAgICAgICAgICAgICAgICduMW01JyA9PiBfXygnRW1iNWQgVjRkNTInLCAnbTV0MS1iMngnKSwNCiAgICAgICAgICAgICAgICAnNGQnID0+ICJ7JHByNWY0eH01bWI1ZCIsDQogICAgICAgICAgICAgICAgJ2Q1c2MnID0+IF9fKCdFbWI1ZCBWNGQ1MicsICdtNXQxLWIyeCcpLA0KICAgICAgICAgICAgICAgICd0eXA1JyA9PiAndDV4dDFyNTEnLA0KICAgICAgICAgICAgICAgICdjbDJuNScgPT4gJ3RyMzUnDQogICAgICAgICAgICApDQogICAgICAgICkNCiAgICApOw0KICAgIHI1dDNybiAkbTV0MV9iMng1czsNCn0gfQ0KPz4=';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Function Calls
| strtr | 1 |
| ereg_replace | 1 |
| base64_decode | 2 |
Stats
| MD5 | bb95bc7ad03b93d6a2ffb11a3434b5b8 |
| Eval Count | 1 |
| Decode Time | 625 ms |