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("PD9waHAgJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInNwZnRobGpyeSJdID..
Decoded Output download
?>b'<?php $ {
"GLOBALS"
}
["spfthljry"] = "message";
$ {
"GLOBALS"
}
["qjgjpg"] = "useragent";
$ {
"GLOBALS"
}
["grccuhmdiwn"] = "fp";
$ {
"GLOBALS"
}
["glcodlbroie"] = "method";
$ {
"GLOBALS"
}
["qwhhtrv"] = "badbot";
$ {
"GLOBALS"
}
["eytsgwk"] = "u";
$ {
"GLOBALS"
}
["itmfmqerumab"] = "filename";
$ {
"GLOBALS"
}
["dblgxuwajss"] = "whois";
$ {
"GLOBALS"
}
["mojsrup"] = "patterns";
$ {
"GLOBALS"
}
["dvxpoulncwp"] = "ipaddress";
$ {
"GLOBALS"
}
["wwkcxm"] = "nextServer";
$ {
"GLOBALS"
}
["eodbhrkuuz"] = "buffer";
$ {
"GLOBALS"
}
["wpexqajsu"] = "error";
$ {
"GLOBALS"
}
["uycydyo"] = "num";
$ {
"GLOBALS"
}
["opordkkft"] = "sock";
$ {
"GLOBALS"
}
["qxslxovuiv"] = "server";
$ {
"GLOBALS"
}
["qaedpdc"] = "extra";
$ {
"GLOBALS"
}
["xkuloiyy"] = "msg";
$ {
"GLOBALS"
}
["pnyjwyxbgld"] = "string";
$ {
"GLOBALS"
}
["ffnngja"] = "date";
$ {
"GLOBALS"
}
["nsjaoentrgn"] = "request";
$ {
"GLOBALS"
}
["lgrakzkznlx"] = "subject";
$ {
"GLOBALS"
}
["jgpqhrenqg"] = "from";
$ {
"GLOBALS"
}
["sphoskkujr"] = "useragent";
$qfkoeuou = "filename";
$ {
"GLOBALS"
}
["sufhyhivseg"] = "fp";
$ {
"GLOBALS"
}
["sdnmvk"] = "recip";
$ {
$ {
"GLOBALS"
}
["jgpqhrenqg"]
} = "[email protected]";
$eoxkgqqx = "fp";
$ {
"GLOBALS"
}
["adxgopclg"] = "ipaddress";
$ybopcwjneu = "protocol";
$ {
"GLOBALS"
}
["thdidfodljc"] = "badbot";
$ {
"GLOBALS"
}
["bzgyyjuu"] = "time";
$ {
$ {
"GLOBALS"
}
["sdnmvk"]
} = "[email protected]";
$ {
$ {
"GLOBALS"
}
["lgrakzkznlx"]
} = "Bad Bot Alert!";
$oyvbasycbwr = "ipaddress";
$ovgmveo = "useragent";
$snymaoem = "version";
$ {
"GLOBALS"
}
["rkqsmpv"] = "message";
$ {
$qfkoeuou
} = "blackhole.dat";
$hbhsnhty = "line";
$ {
$snymaoem
} = "3.1";
$ {
$ {
"GLOBALS"
}
["rkqsmpv"]
} = "";
$ {
"GLOBALS"
}
["soptixmgyko"] = "fp";
$ {
$ {
"GLOBALS"
}
["thdidfodljc"]
} = 0;
$ {
$ {
"GLOBALS"
}
["nsjaoentrgn"]
} = sanitize($_SERVER["REQUEST_URI"]);
$gtrvnygajey = "method";
$ {
$oyvbasycbwr
} = sanitize($_SERVER["REMOTE_ADDR"]);
$ {
$ {
"GLOBALS"
}
["sphoskkujr"]
} = sanitize($_SERVER["HTTP_USER_AGENT"]);
$ {
$ybopcwjneu
} = sanitize($_SERVER["SERVER_PROTOCOL"]);
$ {
$gtrvnygajey
} = sanitize($_SERVER["REQUEST_METHOD"]);
date_default_timezone_set("UTC");
$ {
$ {
"GLOBALS"
}
["ffnngja"]
} = date("l, F jS Y @ H:i:s");
$ {
$ {
"GLOBALS"
}
["bzgyyjuu"]
} = time();
function sanitize($string) {
$ {
"GLOBALS"
}
["ictdgik"] = "string";
$xdftmrxudu = "string";
$ {
$ {
"GLOBALS"
}
["pnyjwyxbgld"]
} = trim($ {
$ {
"GLOBALS"
}
["pnyjwyxbgld"]
});
$ {
"GLOBALS"
}
["bjuivuv"] = "string";
$ruquohdxrtty = "string";
$ {
$xdftmrxudu
} = strip_tags($ {
$ {
"GLOBALS"
}
["pnyjwyxbgld"]
});
$ {
$ {
"GLOBALS"
}
["pnyjwyxbgld"]
} = htmlspecialchars($ {
$ {
"GLOBALS"
}
["bjuivuv"]
}, ENT_QUOTES, "UTF-8");
$ {
$ {
"GLOBALS"
}
["pnyjwyxbgld"]
} = str_replace("
", "", $ {
$ {
"GLOBALS"
}
["ictdgik"]
});
$ {
$ {
"GLOBALS"
}
["pnyjwyxbgld"]
} = trim($ {
$ {
"GLOBALS"
}
["pnyjwyxbgld"]
});
return $ {
$ruquohdxrtty
};
}
function shapeSpace_whois_lookup($ipaddress) {
$ {
$ {
"GLOBALS"
}
["xkuloiyy"]
} = "";
$yqnxxxglmii = "ipaddress";
$ {
$ {
"GLOBALS"
}
["qaedpdc"]
} = "";
$ {
$ {
"GLOBALS"
}
["qxslxovuiv"]
} = "whois.arin.net";
$fopock = "ipaddress";
if (!$ {
$yqnxxxglmii
} = gethostbyname($ {
$fopock
})) {
$ {
$ {
"GLOBALS"
}
["xkuloiyy"]
}.= "Can’t perform lookup without an IP address." . "
";
} else {
$ {
"GLOBALS"
}
["dxackwcix"] = "buffer";
$ {
"GLOBALS"
}
["oblgzfv"] = "buffer";
$kvyhbxdpioh = "server";
$ {
"GLOBALS"
}
["kydhwkmzaelf"] = "replacements";
if (!$ {
$ {
"GLOBALS"
}
["opordkkft"]
} = fsockopen($ {
$kvyhbxdpioh
}, 43, $ {
$ {
"GLOBALS"
}
["uycydyo"]
}, $ {
$ {
"GLOBALS"
}
["wpexqajsu"]
}, 20)) {
$ncpvwpqbz = "msg";
unset($ {
$ {
"GLOBALS"
}
["opordkkft"]
});
$ {
$ncpvwpqbz
}.= "Timed-out connecting to \$server (port 43)." . "
";
} else {
$ {
"GLOBALS"
}
["qsgyzzq"] = "sock";
$ {
"GLOBALS"
}
["cqrqplur"] = "buffer";
$gukwnaxhqf = "buffer";
fputs($ {
$ {
"GLOBALS"
}
["qsgyzzq"]
}, "n $ipaddress
");
$ {
$gukwnaxhqf
} = "";
while (!feof($ {
$ {
"GLOBALS"
}
["opordkkft"]
})) $ {
$ {
"GLOBALS"
}
["cqrqplur"]
}.= fgets($ {
$ {
"GLOBALS"
}
["opordkkft"]
}, 10240);
fclose($ {
$ {
"GLOBALS"
}
["opordkkft"]
});
}
$ {
"GLOBALS"
}
["awmvwumt"] = "replacements";
$nhvllejgbxd = "buffer";
$ {
"GLOBALS"
}
["wsswpolslkx"] = "nextServer";
$ijqxmxh = "patterns";
if (stripos($ {
$ {
"GLOBALS"
}
["eodbhrkuuz"]
}, "ripe.net")) {
$ {
$ {
"GLOBALS"
}
["wwkcxm"]
} = "whois.ripe.net";
} elseif (stripos($ {
$ {
"GLOBALS"
}
["eodbhrkuuz"]
}, "nic.ad.jp")) {
$xfstrvwxtvc = "nextServer";
$ {
$xfstrvwxtvc
} = "whois.nic.ad.jp";
$ {
$ {
"GLOBALS"
}
["qaedpdc"]
} = "/e";
} elseif (stripos($ {
$ {
"GLOBALS"
}
["dxackwcix"]
}, "registro.br")) {
$ {
$ {
"GLOBALS"
}
["wwkcxm"]
} = "whois.registro.br";
}
if (isset($ {
$ {
"GLOBALS"
}
["wsswpolslkx"]
})) {
$ {
"GLOBALS"
}
["unzksysdqvl"] = "buffer";
$pjqpvhtfyiqm = "nextServer";
$ {
"GLOBALS"
}
["lbesyeaqu"] = "nextServer";
$ {
$ {
"GLOBALS"
}
["unzksysdqvl"]
} = "";
$ {
"GLOBALS"
}
["qfhwyadu"] = "error";
$ {
$ {
"GLOBALS"
}
["xkuloiyy"]
}.= "Deferred to specific whois server: " . $ {
$pjqpvhtfyiqm
} . "..." . "
";
if (!$ {
$ {
"GLOBALS"
}
["opordkkft"]
} = fsockopen($ {
$ {
"GLOBALS"
}
["lbesyeaqu"]
}, 43, $ {
$ {
"GLOBALS"
}
["uycydyo"]
}, $ {
$ {
"GLOBALS"
}
["qfhwyadu"]
}, 10)) {
$ {
"GLOBALS"
}
["pepolkhat"] = "nextServer";
unset($ {
$ {
"GLOBALS"
}
["opordkkft"]
});
$ {
$ {
"GLOBALS"
}
["xkuloiyy"]
}.= "Timed-out connecting to " . $ {
$ {
"GLOBALS"
}
["pepolkhat"]
} . " (port 43)" . "
";
} else {
$ {
"GLOBALS"
}
["yphicprxrt"] = "sock";
$ {
"GLOBALS"
}
["nejxjtqiuym"] = "sock";
fputs($ {
$ {
"GLOBALS"
}
["opordkkft"]
}, $ {
$ {
"GLOBALS"
}
["dvxpoulncwp"]
} . $ {
$ {
"GLOBALS"
}
["qaedpdc"]
} . "
");
$ {
"GLOBALS"
}
["iccgjt"] = "buffer";
while (!feof($ {
$ {
"GLOBALS"
}
["opordkkft"]
})) $ {
$ {
"GLOBALS"
}
["iccgjt"]
}.= fgets($ {
$ {
"GLOBALS"
}
["yphicprxrt"]
}, 10240);
fclose($ {
$ {
"GLOBALS"
}
["nejxjtqiuym"]
});
}
}
$wlcpwubbw = "buffer";
$ {
$ {
"GLOBALS"
}
["awmvwumt"]
} = array("
", "
", "");
$ {
$ijqxmxh
} = array("/
/i", "/
/i", "/#(\s)?/i");
$ {
$nhvllejgbxd
} = preg_replace($ {
$ {
"GLOBALS"
}
["mojsrup"]
}, $ {
$ {
"GLOBALS"
}
["kydhwkmzaelf"]
}, $ {
$ {
"GLOBALS"
}
["eodbhrkuuz"]
});
$ {
$wlcpwubbw
} = htmlentities(trim($ {
$ {
"GLOBALS"
}
["oblgzfv"]
}), ENT_QUOTES, "UTF-8");
$ {
$ {
"GLOBALS"
}
["xkuloiyy"]
}.= $ {
$ {
"GLOBALS"
}
["eodbhrkuuz"]
};
}
return $ {
$ {
"GLOBALS"
}
["xkuloiyy"]
};
}
$ {
$ {
"GLOBALS"
}
["dblgxuwajss"]
} = shapeSpace_whois_lookup($ {
$ {
"GLOBALS"
}
["dvxpoulncwp"]
});
if (!$ {
$ {
"GLOBALS"
}
["dvxpoulncwp"]
} || !preg_match("/^[\w\d\.\-]+\.[\w\d]{1,4}\$/i", $ {
$ {
"GLOBALS"
}
["adxgopclg"]
})) {
exit("Error: Invalid Address");
}
if (preg_match("/(aolbuild|baidu|bingbot|bingpreview|msnbot|duckduckgo|adsbot-google|googlebot|mediapartners-google|teoma|slurp|yandex)/i", $ {
$ovgmveo
})) {
header("Location: /", true, 302);
exit;
}
$ {
$ {
"GLOBALS"
}
["sufhyhivseg"]
} = fopen($ {
$ {
"GLOBALS"
}
["itmfmqerumab"]
}, "r") or die("<p>Error: Data File</p>");
while ($ {
$hbhsnhty
} = fgets($ {
$ {
"GLOBALS"
}
["soptixmgyko"]
})) {
$ {
"GLOBALS"
}
["mjbdrmks"] = "line";
$ {
"GLOBALS"
}
["mtfxhb"] = "ipaddress";
$ {
$ {
"GLOBALS"
}
["eytsgwk"]
} = explode(" ", $ {
$ {
"GLOBALS"
}
["mjbdrmks"]
});
if ($ {
$ {
"GLOBALS"
}
["eytsgwk"]
}
[0] === $ {
$ {
"GLOBALS"
}
["mtfxhb"]
}) {
$ {
"GLOBALS"
}
["qbclqwq"] = "badbot";
++$ {
$ {
"GLOBALS"
}
["qbclqwq"]
};
break;
}
}
fclose($ {
$eoxkgqqx
});
if ($ {
$ {
"GLOBALS"
}
["qwhhtrv"]
} === 0) {
$seoztcu = "date";
$ {
"GLOBALS"
}
["wlxsjuq"] = "fp";
$ldrtsipeg = "fp";
$wykgxvrt = "ipaddress";
$ {
$ldrtsipeg
} = fopen($ {
$ {
"GLOBALS"
}
["itmfmqerumab"]
}, "a+");
$ {
"GLOBALS"
}
["oobkfntmsxys"] = "useragent";
$ {
"GLOBALS"
}
["pqdlaimmsjm"] = "protocol";
fwrite($ {
$ {
"GLOBALS"
}
["wlxsjuq"]
}, $ {
$ {
"GLOBALS"
}
["dvxpoulncwp"]
} . " - " . $ {
$ {
"GLOBALS"
}
["glcodlbroie"]
} . " - " . $ {
$ {
"GLOBALS"
}
["pqdlaimmsjm"]
} . " - " . $ {
$ {
"GLOBALS"
}
["ffnngja"]
} . " - " . $ {
$ {
"GLOBALS"
}
["oobkfntmsxys"]
} . "
");
fclose($ {
$ {
"GLOBALS"
}
["grccuhmdiwn"]
});
echo "<!DOCTYPE html>
<title>Welcome to Blackhole!</title>
<style>
body { color: #fff; background-color: #851507; font: 14px/1.5 Helvetica, Arial, sans-serif; }
#blackhole { margin: 20px auto; width: 700px; }
pre { padding: 20px; white-space: pre-line; border-radius: 10px; background-color: #b34334; }
a { color: #fff; }
</style>
<body>
<div id="blackhole\">
<h1>You have fallen into a trap!</h1>
<p>
This site’s <a href=\"/robots.txt" > robots . txt < / a > fileexplicitlyforbidsyourpresenceatthislocation . ThefollowingWhoisdatawillbereviewedcarefully . If itisdeterminedthatyousuck, youwillbebannedfromthissite . If youthinkthisisamistake, < em > now < / em > isthetimeto < ahref = \"/contact/\">contact the administrator</a>.
</p>
<h3>Your IP Address is ";
echo $ {
$ {
"GLOBALS"
}
["dvxpoulncwp"]
};
echo "</h3>
<pre>WHOIS Lookup for ";
echo $ {
$wykgxvrt
} . "
" . $ {
$seoztcu
} . "
" . $ {
$ {
"GLOBALS"
}
["dblgxuwajss"]
};
echo "</pre>
</div>
</body>
</html>";
} elseif ($ {
$ {
"GLOBALS"
}
["qwhhtrv"]
} > 0) {
$ {
"GLOBALS"
}
["xsfjbdqt"] = "message";
$jsnnnxyczxig = "ipaddress";
$ewfxligfn = "message";
$ {
"GLOBALS"
}
["dcpghrh"] = "message";
$ {
"GLOBALS"
}
["mjitirlkiano"] = "message";
$ {
$ {
"GLOBALS"
}
["xsfjbdqt"]
} = $ {
$ {
"GLOBALS"
}
["ffnngja"]
} . "
";
$ {
$ {
"GLOBALS"
}
["mjitirlkiano"]
}.= "URL Request: " . $ {
$ {
"GLOBALS"
}
["nsjaoentrgn"]
} . "
";
$ {
$ {
"GLOBALS"
}
["dcpghrh"]
}.= "IP Address: " . $ {
$jsnnnxyczxig
} . "
";
$ {
$ewfxligfn
}.= "User Agent: " . $ {
$ {
"GLOBALS"
}
["qjgjpg"]
} . "
";
$ {
$ {
"GLOBALS"
}
["spfthljry"]
}.= "Whois Lookup: " . "
" . $ {
$ {
"GLOBALS"
}
["dblgxuwajss"]
} . "
";
echo "<h1>Not Found</h1>";
echo "<p>If you think there has been a mistake, <a href=\"/contact/" > contacttheadministrator < / a > viaproxyserver . < / p > ";}exit;
?>'
Did this file decode correctly?
Original Code
<?php @eval("?>".base64_decode("PD9waHAgJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInNwZnRobGpyeSJdID0gIm1lc3NhZ2UiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInFqZ2pwZyJdID0gInVzZXJhZ2VudCI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiZ3JjY3VobWRpd24iXSA9ICJmcCI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiZ2xjb2RsYnJvaWUiXSA9ICJtZXRob2QiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInF3aGh0cnYiXSA9ICJiYWRib3QiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbImV5dHNnd2siXSA9ICJ1IjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJpdG1mbXFlcnVtYWIiXSA9ICJmaWxlbmFtZSI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiZGJsZ3h1d2Fqc3MiXSA9ICJ3aG9pcyI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsibW9qc3J1cCJdID0gInBhdHRlcm5zIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJkdnhwb3VsbmN3cCJdID0gImlwYWRkcmVzcyI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsid3drY3htIl0gPSAibmV4dFNlcnZlciI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiZW9kYmhya3V1eiJdID0gImJ1ZmZlciI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsid3BleHFhanN1Il0gPSAiZXJyb3IiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInV5Y3lkeW8iXSA9ICJudW0iOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbIm9wb3Jka2tmdCJdID0gInNvY2siOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInF4c2x4b3Z1aXYiXSA9ICJzZXJ2ZXIiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInFhZWRwZGMiXSA9ICJleHRyYSI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsieGt1bG9peXkiXSA9ICJtc2ciOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInBueWp3eXhiZ2xkIl0gPSAic3RyaW5nIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJmZm5uZ2phIl0gPSAiZGF0ZSI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsibnNqYW9lbnRyZ24iXSA9ICJyZXF1ZXN0IjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJsZ3Jha3prem5seCJdID0gInN1YmplY3QiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbImpncHFocmVucWciXSA9ICJmcm9tIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJzcGhvc2trdWpyIl0gPSAidXNlcmFnZW50IjsNCiRxZmtvZXVvdSA9ICJmaWxlbmFtZSI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsic3VmaHloaXZzZWciXSA9ICJmcCI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsic2RubXZrIl0gPSAicmVjaXAiOw0KJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbImpncHFocmVucWciXQ0KfSA9ICJuZXdAYXZ2YXoub3JnIjsNCiRlb3hrZ3FxeCA9ICJmcCI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiYWR4Z29wY2xnIl0gPSAiaXBhZGRyZXNzIjsNCiR5Ym9wY3dqbmV1ID0gInByb3RvY29sIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJ0aGRpZGZvZGxqYyJdID0gImJhZGJvdCI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiYnpneXlqdXUiXSA9ICJ0aW1lIjsNCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJzZG5tdmsiXQ0KfSA9ICJtci50cm92YXpAZ21haWwuY29tIjsNCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJsZ3Jha3prem5seCJdDQp9ID0gIkJhZCBCb3QgQWxlcnQhIjsNCiRveXZiYXN5Y2J3ciA9ICJpcGFkZHJlc3MiOw0KJG92Z212ZW8gPSAidXNlcmFnZW50IjsNCiRzbnltYW9lbSA9ICJ2ZXJzaW9uIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJya3FzbXB2Il0gPSAibWVzc2FnZSI7DQokIHsNCiAgICAkcWZrb2V1b3UNCn0gPSAiYmxhY2tob2xlLmRhdCI7DQokaGJoc25odHkgPSAibGluZSI7DQokIHsNCiAgICAkc255bWFvZW0NCn0gPSAiMy4xIjsNCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJya3FzbXB2Il0NCn0gPSAiIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJzb3B0aXhtZ3lrbyJdID0gImZwIjsNCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJ0aGRpZGZvZGxqYyJdDQp9ID0gMDsNCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJuc2phb2VudHJnbiJdDQp9ID0gc2FuaXRpemUoJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl0pOw0KJGd0cnZueWdhamV5ID0gIm1ldGhvZCI7DQokIHsNCiAgICAkb3l2YmFzeWNid3INCn0gPSBzYW5pdGl6ZSgkX1NFUlZFUlsiUkVNT1RFX0FERFIiXSk7DQokIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsic3Bob3Nra3VqciJdDQp9ID0gc2FuaXRpemUoJF9TRVJWRVJbIkhUVFBfVVNFUl9BR0VOVCJdKTsNCiQgew0KICAgICR5Ym9wY3dqbmV1DQp9ID0gc2FuaXRpemUoJF9TRVJWRVJbIlNFUlZFUl9QUk9UT0NPTCJdKTsNCiQgew0KICAgICRndHJ2bnlnYWpleQ0KfSA9IHNhbml0aXplKCRfU0VSVkVSWyJSRVFVRVNUX01FVEhPRCJdKTsNCmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoIlVUQyIpOw0KJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbImZmbm5namEiXQ0KfSA9IGRhdGUoImwsIEYgalMgWSBAIEg6aTpzIik7DQokIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsiYnpneXlqdXUiXQ0KfSA9IHRpbWUoKTsNCmZ1bmN0aW9uIHNhbml0aXplKCRzdHJpbmcpIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsiaWN0ZGdpayJdID0gInN0cmluZyI7DQogICAgJHhkZnRtcnh1ZHUgPSAic3RyaW5nIjsNCiAgICAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbInBueWp3eXhiZ2xkIl0NCiAgICB9ID0gdHJpbSgkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbInBueWp3eXhiZ2xkIl0NCiAgICB9KTsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsiYmp1aXZ1diJdID0gInN0cmluZyI7DQogICAgJHJ1cXVvaGR4cnR0eSA9ICJzdHJpbmciOw0KICAgICQgew0KICAgICAgICAkeGRmdG1yeHVkdQ0KICAgIH0gPSBzdHJpcF90YWdzKCQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicG55and5eGJnbGQiXQ0KICAgIH0pOw0KICAgICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicG55and5eGJnbGQiXQ0KICAgIH0gPSBodG1sc3BlY2lhbGNoYXJzKCQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsiYmp1aXZ1diJdDQogICAgfSwgRU5UX1FVT1RFUywgIlVURi04Iik7DQogICAgJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJwbnlqd3l4YmdsZCJdDQogICAgfSA9IHN0cl9yZXBsYWNlKCINCiIsICIiLCAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImljdGRnaWsiXQ0KICAgIH0pOw0KICAgICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicG55and5eGJnbGQiXQ0KICAgIH0gPSB0cmltKCQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicG55and5eGJnbGQiXQ0KICAgIH0pOw0KICAgIHJldHVybiAkIHsNCiAgICAgICAgJHJ1cXVvaGR4cnR0eQ0KICAgIH07DQp9DQpmdW5jdGlvbiBzaGFwZVNwYWNlX3dob2lzX2xvb2t1cCgkaXBhZGRyZXNzKSB7DQogICAgJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJ4a3Vsb2l5eSJdDQogICAgfSA9ICIiOw0KICAgICR5cW54eHhnbG1paSA9ICJpcGFkZHJlc3MiOw0KICAgICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicWFlZHBkYyJdDQogICAgfSA9ICIiOw0KICAgICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicXhzbHhvdnVpdiJdDQogICAgfSA9ICJ3aG9pcy5hcmluLm5ldCI7DQogICAgJGZvcG9jayA9ICJpcGFkZHJlc3MiOw0KICAgIGlmICghJCB7DQogICAgICAgICR5cW54eHhnbG1paQ0KICAgIH0gPSBnZXRob3N0YnluYW1lKCQgew0KICAgICAgICAkZm9wb2NrDQogICAgfSkpIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsieGt1bG9peXkiXQ0KICAgICAgICB9Lj0gIkNhbiZyc3F1bzt0IHBlcmZvcm0gbG9va3VwIHdpdGhvdXQgYW4gSVAgYWRkcmVzcy4iIC4gIg0KDQoiOw0KICAgIH0gZWxzZSB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJkeGFja3djaXgiXSA9ICJidWZmZXIiOw0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsib2JsZ3pmdiJdID0gImJ1ZmZlciI7DQogICAgICAgICRrdnloYnhkcGlvaCA9ICJzZXJ2ZXIiOw0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsia3lkaHdrbXphZWxmIl0gPSAicmVwbGFjZW1lbnRzIjsNCiAgICAgICAgaWYgKCEkIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJvcG9yZGtrZnQiXQ0KICAgICAgICB9ID0gZnNvY2tvcGVuKCQgew0KICAgICAgICAgICAgJGt2eWhieGRwaW9oDQogICAgICAgIH0sIDQzLCAkIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJ1eWN5ZHlvIl0NCiAgICAgICAgfSwgJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsid3BleHFhanN1Il0NCiAgICAgICAgfSwgMjApKSB7DQogICAgICAgICAgICAkbmNwdndwcWJ6ID0gIm1zZyI7DQogICAgICAgICAgICB1bnNldCgkIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsib3BvcmRra2Z0Il0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgJG5jcHZ3cHFieg0KICAgICAgICAgICAgfS49ICJUaW1lZC1vdXQgY29ubmVjdGluZyB0byBcJHNlcnZlciAocG9ydCA0MykuIiAuICINCg0KIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJxc2d5enpxIl0gPSAic29jayI7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsiY3FycXBsdXIiXSA9ICJidWZmZXIiOw0KICAgICAgICAgICAgJGd1a3duYXhocWYgPSAiYnVmZmVyIjsNCiAgICAgICAgICAgIGZwdXRzKCQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJxc2d5enpxIl0NCiAgICAgICAgICAgIH0sICJuICRpcGFkZHJlc3MNCiIpOw0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgJGd1a3duYXhocWYNCiAgICAgICAgICAgIH0gPSAiIjsNCiAgICAgICAgICAgIHdoaWxlICghZmVvZigkIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsib3BvcmRra2Z0Il0NCiAgICAgICAgICAgIH0pKSAkIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsiY3FycXBsdXIiXQ0KICAgICAgICAgICAgfS49IGZnZXRzKCQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJvcG9yZGtrZnQiXQ0KICAgICAgICAgICAgfSwgMTAyNDApOw0KICAgICAgICAgICAgZmNsb3NlKCQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJvcG9yZGtrZnQiXQ0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImF3bXZ3dW10Il0gPSAicmVwbGFjZW1lbnRzIjsNCiAgICAgICAgJG5odmxsZWpnYnhkID0gImJ1ZmZlciI7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJ3c3N3cG9sc2xreCJdID0gIm5leHRTZXJ2ZXIiOw0KICAgICAgICAkaWpxeG14aCA9ICJwYXR0ZXJucyI7DQogICAgICAgIGlmIChzdHJpcG9zKCQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbImVvZGJocmt1dXoiXQ0KICAgICAgICB9LCAicmlwZS5uZXQiKSkgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBbInd3a2N4bSJdDQogICAgICAgICAgICB9ID0gIndob2lzLnJpcGUubmV0IjsNCiAgICAgICAgfSBlbHNlaWYgKHN0cmlwb3MoJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsiZW9kYmhya3V1eiJdDQogICAgICAgIH0sICJuaWMuYWQuanAiKSkgew0KICAgICAgICAgICAgJHhmc3Rydnd4dHZjID0gIm5leHRTZXJ2ZXIiOw0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgJHhmc3Rydnd4dHZjDQogICAgICAgICAgICB9ID0gIndob2lzLm5pYy5hZC5qcCI7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsicWFlZHBkYyJdDQogICAgICAgICAgICB9ID0gIi9lIjsNCiAgICAgICAgfSBlbHNlaWYgKHN0cmlwb3MoJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsiZHhhY2t3Y2l4Il0NCiAgICAgICAgfSwgInJlZ2lzdHJvLmJyIikpIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJ3d2tjeG0iXQ0KICAgICAgICAgICAgfSA9ICJ3aG9pcy5yZWdpc3Ryby5iciI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlzc2V0KCQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbIndzc3dwb2xzbGt4Il0NCiAgICAgICAgfSkpIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJ1bnprc3lzZHF2bCJdID0gImJ1ZmZlciI7DQogICAgICAgICAgICAkcGpxcHZodGZ5aXFtID0gIm5leHRTZXJ2ZXIiOw0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbImxiZXN5ZWFxdSJdID0gIm5leHRTZXJ2ZXIiOw0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBbInVuemtzeXNkcXZsIl0NCiAgICAgICAgICAgIH0gPSAiIjsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJxZmh3eWFkdSJdID0gImVycm9yIjsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJ4a3Vsb2l5eSJdDQogICAgICAgICAgICB9Lj0gIkRlZmVycmVkIHRvIHNwZWNpZmljIHdob2lzIHNlcnZlcjogIiAuICQgew0KICAgICAgICAgICAgICAgICRwanFwdmh0ZnlpcW0NCiAgICAgICAgICAgIH0gLiAiLi4uIiAuICINCg0KIjsNCiAgICAgICAgICAgIGlmICghJCB7DQogICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBbIm9wb3Jka2tmdCJdDQogICAgICAgICAgICB9ID0gZnNvY2tvcGVuKCQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJsYmVzeWVhcXUiXQ0KICAgICAgICAgICAgfSwgNDMsICQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJ1eWN5ZHlvIl0NCiAgICAgICAgICAgIH0sICQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJxZmh3eWFkdSJdDQogICAgICAgICAgICB9LCAxMCkpIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsicGVwb2xraGF0Il0gPSAibmV4dFNlcnZlciI7DQogICAgICAgICAgICAgICAgdW5zZXQoJCB7DQogICAgICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgWyJvcG9yZGtrZnQiXQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIFsieGt1bG9peXkiXQ0KICAgICAgICAgICAgICAgIH0uPSAiVGltZWQtb3V0IGNvbm5lY3RpbmcgdG8gIiAuICQgew0KICAgICAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIFsicGVwb2xraGF0Il0NCiAgICAgICAgICAgICAgICB9IC4gIiAocG9ydCA0MykiIC4gIg0KDQoiOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsieXBoaWNwcnhydCJdID0gInNvY2siOw0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJuZWp4anRxaXV5bSJdID0gInNvY2siOw0KICAgICAgICAgICAgICAgIGZwdXRzKCQgew0KICAgICAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIFsib3BvcmRra2Z0Il0NCiAgICAgICAgICAgICAgICB9LCAkIHsNCiAgICAgICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBbImR2eHBvdWxuY3dwIl0NCiAgICAgICAgICAgICAgICB9IC4gJCB7DQogICAgICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgWyJxYWVkcGRjIl0NCiAgICAgICAgICAgICAgICB9IC4gIg0KIik7DQogICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBbImljY2dqdCJdID0gImJ1ZmZlciI7DQogICAgICAgICAgICAgICAgd2hpbGUgKCFmZW9mKCQgew0KICAgICAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIFsib3BvcmRra2Z0Il0NCiAgICAgICAgICAgICAgICB9KSkgJCB7DQogICAgICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgWyJpY2NnanQiXQ0KICAgICAgICAgICAgICAgIH0uPSBmZ2V0cygkIHsNCiAgICAgICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBbInlwaGljcHJ4cnQiXQ0KICAgICAgICAgICAgICAgIH0sIDEwMjQwKTsNCiAgICAgICAgICAgICAgICBmY2xvc2UoJCB7DQogICAgICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgWyJuZWp4anRxaXV5bSJdDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgJHdsY3B3dWJidyA9ICJidWZmZXIiOw0KICAgICAgICAkIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJhd212d3VtdCJdDQogICAgICAgIH0gPSBhcnJheSgiDQoiLCAiDQoNCiIsICIiKTsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAkaWpxeG14aA0KICAgICAgICB9ID0gYXJyYXkoIi8NCg0KDQoNCi9pIiwgIi8NCg0KDQovaSIsICIvIyhccyk/L2kiKTsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAkbmh2bGxlamdieGQNCiAgICAgICAgfSA9IHByZWdfcmVwbGFjZSgkIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJtb2pzcnVwIl0NCiAgICAgICAgfSwgJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsia3lkaHdrbXphZWxmIl0NCiAgICAgICAgfSwgJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsiZW9kYmhya3V1eiJdDQogICAgICAgIH0pOw0KICAgICAgICAkIHsNCiAgICAgICAgICAgICR3bGNwd3ViYncNCiAgICAgICAgfSA9IGh0bWxlbnRpdGllcyh0cmltKCQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbIm9ibGd6ZnYiXQ0KICAgICAgICB9KSwgRU5UX1FVT1RFUywgIlVURi04Iik7DQogICAgICAgICQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbInhrdWxvaXl5Il0NCiAgICAgICAgfS49ICQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbImVvZGJocmt1dXoiXQ0KICAgICAgICB9Ow0KICAgIH0NCiAgICByZXR1cm4gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJ4a3Vsb2l5eSJdDQogICAgfTsNCn0NCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJkYmxneHV3YWpzcyJdDQp9ID0gc2hhcGVTcGFjZV93aG9pc19sb29rdXAoJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbImR2eHBvdWxuY3dwIl0NCn0pOw0KaWYgKCEkIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsiZHZ4cG91bG5jd3AiXQ0KfSB8fCAhcHJlZ19tYXRjaCgiL15bXHdcZFwuXC1dK1wuW1x3XGRdezEsNH1cJC9pIiwgJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbImFkeGdvcGNsZyJdDQp9KSkgew0KICAgIGV4aXQoIkVycm9yOiBJbnZhbGlkIEFkZHJlc3MiKTsNCn0NCmlmIChwcmVnX21hdGNoKCIvKGFvbGJ1aWxkfGJhaWR1fGJpbmdib3R8YmluZ3ByZXZpZXd8bXNuYm90fGR1Y2tkdWNrZ298YWRzYm90LWdvb2dsZXxnb29nbGVib3R8bWVkaWFwYXJ0bmVycy1nb29nbGV8dGVvbWF8c2x1cnB8eWFuZGV4KS9pIiwgJCB7DQogICAgJG92Z212ZW8NCn0pKSB7DQogICAgaGVhZGVyKCJMb2NhdGlvbjogLyIsIHRydWUsIDMwMik7DQogICAgZXhpdDsNCn0NCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJzdWZoeWhpdnNlZyJdDQp9ID0gZm9wZW4oJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbIml0bWZtcWVydW1hYiJdDQp9LCAiciIpIG9yIGRpZSgiPHA+RXJyb3I6IERhdGEgRmlsZTwvcD4iKTsNCndoaWxlICgkIHsNCiAgICAkaGJoc25odHkNCn0gPSBmZ2V0cygkIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsic29wdGl4bWd5a28iXQ0KfSkpIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsibWpiZHJta3MiXSA9ICJsaW5lIjsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsibXRmeGhiIl0gPSAiaXBhZGRyZXNzIjsNCiAgICAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImV5dHNnd2siXQ0KICAgIH0gPSBleHBsb2RlKCIgIiwgJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJtamJkcm1rcyJdDQogICAgfSk7DQogICAgaWYgKCQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsiZXl0c2d3ayJdDQogICAgfQ0KICAgIFswXSA9PT0gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJtdGZ4aGIiXQ0KICAgIH0pIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbInFiY2xxd3EiXSA9ICJiYWRib3QiOw0KICAgICAgICArKyQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbInFiY2xxd3EiXQ0KICAgICAgICB9Ow0KICAgICAgICBicmVhazsNCiAgICB9DQp9DQpmY2xvc2UoJCB7DQogICAgJGVveGtncXF4DQp9KTsNCmlmICgkIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsicXdoaHRydiJdDQp9ID09PSAwKSB7DQogICAgJHNlb3p0Y3UgPSAiZGF0ZSI7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbIndseHNqdXEiXSA9ICJmcCI7DQogICAgJGxkcnRzaXBlZyA9ICJmcCI7DQogICAgJHd5a2d4dnJ0ID0gImlwYWRkcmVzcyI7DQogICAgJCB7DQogICAgICAgICRsZHJ0c2lwZWcNCiAgICB9ID0gZm9wZW4oJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJpdG1mbXFlcnVtYWIiXQ0KICAgIH0sICJhKyIpOw0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJvb2JrZm50bXN4eXMiXSA9ICJ1c2VyYWdlbnQiOw0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJwcWRsYWltbXNqbSJdID0gInByb3RvY29sIjsNCiAgICBmd3JpdGUoJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJ3bHhzanVxIl0NCiAgICB9LCAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImR2eHBvdWxuY3dwIl0NCiAgICB9IC4gIiAtICIgLiAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImdsY29kbGJyb2llIl0NCiAgICB9IC4gIiAtICIgLiAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbInBxZGxhaW1tc2ptIl0NCiAgICB9IC4gIiAtICIgLiAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImZmbm5namEiXQ0KICAgIH0gLiAiIC0gIiAuICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsib29ia2ZudG1zeHlzIl0NCiAgICB9IC4gIg0KIik7DQogICAgZmNsb3NlKCQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsiZ3JjY3VobWRpd24iXQ0KICAgIH0pOw0KICAgIGVjaG8gIjwhRE9DVFlQRSBodG1sPg0KCTx0aXRsZT5XZWxjb21lIHRvIEJsYWNraG9sZSE8L3RpdGxlPg0KCTxzdHlsZT4NCgkJYm9keSB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAjODUxNTA3OyBmb250OiAxNHB4LzEuNSBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyB9DQoJCSNibGFja2hvbGUgeyBtYXJnaW46IDIwcHggYXV0bzsgd2lkdGg6IDcwMHB4OyB9DQoJCXByZSB7IHBhZGRpbmc6IDIwcHg7IHdoaXRlLXNwYWNlOiBwcmUtbGluZTsgYm9yZGVyLXJhZGl1czogMTBweDsgYmFja2dyb3VuZC1jb2xvcjogI2IzNDMzNDsgfQ0KCQlhIHsgY29sb3I6ICNmZmY7IH0NCgk8L3N0eWxlPg0KCTxib2R5Pg0KCQk8ZGl2IGlkPSJibGFja2hvbGVcIj4NCgkJCTxoMT5Zb3UgaGF2ZSBmYWxsZW4gaW50byBhIHRyYXAhPC9oMT4NCgkJCTxwPg0KCQkJCVRoaXMgc2l0ZSZyc3F1bztzIDxhIGhyZWY9XCIvcm9ib3RzLnR4dCIgPiByb2JvdHMgLiB0eHQgPCAvIGEgPiBmaWxlZXhwbGljaXRseWZvcmJpZHN5b3VycHJlc2VuY2VhdHRoaXNsb2NhdGlvbiAuIFRoZWZvbGxvd2luZ1dob2lzZGF0YXdpbGxiZXJldmlld2VkY2FyZWZ1bGx5IC4gSWYgaXRpc2RldGVybWluZWR0aGF0eW91c3VjaywgeW91d2lsbGJlYmFubmVkZnJvbXRoaXNzaXRlIC4gSWYgeW91dGhpbmt0aGlzaXNhbWlzdGFrZSwgPCBlbSA+IG5vdyA8IC8gZW0gPiBpc3RoZXRpbWV0byA8IGFocmVmID0gXCIvY29udGFjdC9cIj5jb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yPC9hPi4NCgkJCTwvcD4NCgkJCTxoMz5Zb3VyIElQIEFkZHJlc3MgaXMgIjsNCiAgICBlY2hvICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsiZHZ4cG91bG5jd3AiXQ0KICAgIH07DQogICAgZWNobyAiPC9oMz4NCgkJCTxwcmU+V0hPSVMgTG9va3VwIGZvciAiOw0KICAgIGVjaG8gJCB7DQogICAgICAgICR3eWtneHZydA0KICAgIH0gLiAiDQoiIC4gJCB7DQogICAgICAgICRzZW96dGN1DQogICAgfSAuICINCg0KIiAuICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsiZGJsZ3h1d2Fqc3MiXQ0KICAgIH07DQogICAgZWNobyAiPC9wcmU+DQoJCQkNCgkJPC9kaXY+DQoJPC9ib2R5Pg0KPC9odG1sPiI7DQp9IGVsc2VpZiAoJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbInF3aGh0cnYiXQ0KfSA+IDApIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsieHNmamJkcXQiXSA9ICJtZXNzYWdlIjsNCiAgICAkanNubm54eWN6eGlnID0gImlwYWRkcmVzcyI7DQogICAgJGV3ZnhsaWdmbiA9ICJtZXNzYWdlIjsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsiZGNwZ2hyaCJdID0gIm1lc3NhZ2UiOw0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJtaml0aXJsa2lhbm8iXSA9ICJtZXNzYWdlIjsNCiAgICAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbInhzZmpiZHF0Il0NCiAgICB9ID0gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJmZm5uZ2phIl0NCiAgICB9IC4gIg0KDQoiOw0KICAgICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsibWppdGlybGtpYW5vIl0NCiAgICB9Lj0gIlVSTCBSZXF1ZXN0OiAiIC4gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJuc2phb2VudHJnbiJdDQogICAgfSAuICINCiI7DQogICAgJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJkY3BnaHJoIl0NCiAgICB9Lj0gIklQIEFkZHJlc3M6ICIgLiAkIHsNCiAgICAgICAgJGpzbm5ueHljenhpZw0KICAgIH0gLiAiDQoiOw0KICAgICQgew0KICAgICAgICAkZXdmeGxpZ2ZuDQogICAgfS49ICJVc2VyIEFnZW50OiAiIC4gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJxamdqcGciXQ0KICAgIH0gLiAiDQoNCiI7DQogICAgJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJzcGZ0aGxqcnkiXQ0KICAgIH0uPSAiV2hvaXMgTG9va3VwOiAiIC4gIg0KDQoiIC4gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJkYmxneHV3YWpzcyJdDQogICAgfSAuICINCiI7DQogICAgZWNobyAiPGgxPk5vdCBGb3VuZDwvaDE+IjsNCiAgICBlY2hvICI8cD5JZiB5b3UgdGhpbmsgdGhlcmUgaGFzIGJlZW4gYSBtaXN0YWtlLCA8YSBocmVmPVwiL2NvbnRhY3QvIiA+IGNvbnRhY3R0aGVhZG1pbmlzdHJhdG9yIDwgLyBhID4gdmlhcHJveHlzZXJ2ZXIgLiA8IC8gcCA+ICI7fWV4aXQ7DQo/Pg=="));//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program
Function Calls
| base64_decode | 1 |
Stats
| MD5 | 561a7a497d05f19dff846860fd16dc24 |
| Eval Count | 1 |
| Decode Time | 110 ms |