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("PD9waHANCiRwYXRoID0gJ0M6XFdpbmRvd3NcU3lzdGVtMzJcZHJpdmVyc1x..
Decoded Output download
?>b'<?php
$path = \'C:\Windows\System32\drivers\etc\lic.txt\';
session_start();
session_destroy();
session_start();
session_regenerate_id();
$sessionid = session_id();
include ("db/db_connect.php");
date_default_timezone_set(\'Asia/Calcutta\');
$ipaddress = $_SERVER["REMOTE_ADDR"];
$updatedatetime = date(\'Y-m-d H:i:s\');
$todaydate = date(\'Y-m-d\');
//Variable Declaration
$errmsg = \'\';
$totalclosingcash = \'\';
if (isset($_REQUEST["frmflag1"])) { $frmflag1 = $_REQUEST["frmflag1"]; } else { $frmflag1 = ""; }
//$frmflag1 = isset($_POST["frmflag1"]);
if ($frmflag1 == \'frmflag1\')
{
if(!file_exists($path))
{
header ("location:login1.php?st=3");
exit;
}
$username = $_POST["username"];
$password = $_POST["password"];
//$query1 = "select * from master_usercreation where username = \'$username\' and password = \'$password\'";
$query1 = "select * from master_employee where username = \'$username\' and password = \'$password\' and status = \'ACTIVE\'";
$exec1 = mysql_query($query1) or die ("Error in Query1".mysql_error());
$rowcount1 = mysql_num_rows($exec1);
$res1 = mysql_fetch_array($exec1);
$lic = file_get_contents($path);
if ($rowcount1 == 0)
{
header ("location:login1.php?st=1");
exit;
}
elseif(trim($lic) != trim($res1[\'license\']))
{
header ("location:login1.php?st=4");
exit;
}
else
{
$expired_date = strtotime($res1[\'expired_date\']. \' +1 day\');
if($expired_date < strtotime("now"))
{
header ("location:login1.php?st=2");
exit;
}
$_SESSION["username"] = $username;
$_SESSION["logintime"] = $updatedatetime;
$query2 = "insert into details_login (username, logintime, openingcash,
lastupdate, lastupdateipaddress, lastupdateusername, sessionid)
value (\'$username\', \'$updatedatetime\', \'$totalclosingcash\',
\'$updatedatetime\', \'$ipaddress\', \'$username\', \'$sessionid\')";
$exec2 = mysql_query($query2) or die ("Error in Query2".mysql_error());
$query4 = "delete from login_restriction where username = \'$username\'";
$exec4 = mysql_query($query4) or die ("Error in Query4".mysql_error());
$query3 = "insert into login_restriction (username, logintime,
lastupdate, lastupdateipaddress, lastupdateusername, sessionid)
value (\'$username\', \'$updatedatetime\',
\'$updatedatetime\', \'$ipaddress\', \'$username\', \'$sessionid\')";
$exec3 = mysql_query($query3) or die ("Error in Query3".mysql_error());
$query1 = "select count(auto_number) as countanum from login_restriction";
$exec1 = mysql_query($query1) or die ("Error in Query1".mysql_error());
$res1 = mysql_fetch_array($exec1);
$logincount = $res1["countanum"];
$query2 = "select * from master_edition where status = \'ACTIVE\'";
$exec2 = mysql_query($query2) or die ("Error in Query2".mysql_error());
$res2 = mysql_fetch_array($exec2);
$res2usercount = $res2["users"];
if ($logincount > $res2usercount)
{
//echo \'inside if\';
header ("location:login1restricted1.php");
exit;
}
//header ("location:mainmenu1.php?st=1");
header ("location:setactivecompany1.php");
}
}
if (isset($_REQUEST["st"])) { $st = $_REQUEST["st"]; } else { $st = ""; }
//$st = isset($_REQUEST["st"]);
if ($st == 1)
{
$errmsg = "Login Failed. Please Try Again With Proper User Id and Password.";
}
elseif ($st == 2)
{
$errmsg = "Session expired. Contact your administrator.";
}
elseif ($st == 3)
{
$errmsg = "Invalid License path. Contact your administrator.";
}
elseif ($st == 4)
{
$errmsg = "License expired/invalid. Contact your administrator.";
}
?>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
background-color: #ffffff;
}
.bodytext3 { FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #3B3B3C; FONT-FAMILY: Tahoma
}
-->
</style>
<link href="datepickerstyle.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/adddate.js"></script>
<script type="text/javascript" src="js/adddate2.js"></script>
<script type="text/javascript" src="js/disablebackenterkey.js"></script>
<script language="javascript">
// to check browser compatibility.
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName = navigator.appName;
var fullVersion = \'\'+parseFloat(navigator.appVersion);
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;
// In MSIE, the true version is after "MSIE" in userAgent
if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
browserName = "Microsoft Internet Explorer";
fullVersion = nAgt.substring(verOffset+5);
}
// In Opera, the true version is after "Opera"
else if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
browserName = "Opera";
fullVersion = nAgt.substring(verOffset+6);
}
// In Chrome, the true version is after "Chrome"
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
browserName = "Chrome";
fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari"
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
browserName = "Safari";
fullVersion = nAgt.substring(verOffset+7);
}
// In Firefox, the true version is after "Firefox"
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
browserName = "Firefox";
fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent
else if ( (nameOffset=nAgt.lastIndexOf(\' \')+1) < (verOffset=nAgt.lastIndexOf(\'/\')) )
{
browserName = nAgt.substring(nameOffset,verOffset);
fullVersion = nAgt.substring(verOffset+1);
if (browserName.toLowerCase()==browserName.toUpperCase()) {
browserName = navigator.appName;
}
}
// trim the fullVersion string at semicolon/space if present
if ((ix=fullVersion.indexOf(";"))!=-1) fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix);
majorVersion = parseInt(\'\'+fullVersion,10);
if (isNaN(majorVersion)) {
fullVersion = \'\'+parseFloat(navigator.appVersion);
majorVersion = parseInt(navigator.appVersion,10);
}
//document.write(\'Browser name = \'+browserName+\'<br>\');
//document.write(\'Full version = \'+fullVersion+\'<br>\');
//document.write(\'Major version = \'+majorVersion+\'<br>\');
//document.write(\'navigator.appName = \'+navigator.appName+\'<br>\');
//document.write(\'navigator.userAgent = \'+navigator.userAgent+\'<br>\');
if (browserName == "Microsoft Internet Explorer")
{
//alert ("You Are Using MSIE.");
//alert (fullVersion);
if (fullVersion >= 6)
{
//alert ("You Are Using Version Greater Than / Equal To 6.");
//window.location = "login1.php";
}
else
{
//alert ("Version Is Less Than 6.");
//alert ("This is not MSIE.");
//window.location = "browserfailed.php?st=versionfailed";
}
}
else
{
//alert ("Version Is Less Than 6.");
//alert ("This is not MSIE.");
//window.location = "browserfailed.php?st=browserfailed";
}
</script>
<script language="javascript">
function process1login1()
{
if (document.form1.username.value == "")
{
alert ("Pleae Enter Your User Id.");
document.form1.username.focus();
return false;
}
else if (document.form1.password.value == "")
{
alert ("Pleae Enter Your Password.");
document.form1.password.focus();
return false;
}
}
function setFocus()
{
document.getElementById("username").focus();
}
</script>
</head>
<body onLoad="return setFocus()">
<table width="101%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td colspan="10" bgcolor="#ffffff"><?php include ("includes/alertmessages1.php"); ?></td>
</tr>
<tr>
<td colspan="10" bgcolor="#ffffff"><?php include ("includes/title1.php"); ?></td>
</tr>
<tr>
<td colspan="10" bgcolor="#ffffff"><?php //include ("includes/menu1.php"); ?> </td>
</tr>
<tr>
<td colspan="10"> </td>
</tr>
<tr>
<td width="1%"> </td>
<td width="2%" valign="top"> </td>
<td width="97%" valign="top">
<form id="form1" name="form1" method="post" action="login1.php" onKeyDown="return disableEnterKey()" onSubmit="return process1login1()">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="tablebackgroundcolor1">
<tr>
<td><table width="400" border="1" align="center" cellpadding="4" cellspacing="0" bordercolor="#666666" id="AutoNumber3" style="border-collapse: collapse">
<tbody>
<tr>
<td colspan="2" align="left" valign="top"
bgcolor="#CCCCCC" class="bodytext3"><div class="bodytext3"><b>User Login</b></div></td>
</tr>
<tr>
<td colspan="2" align="left" valign="top"
bgcolor="<?php if ($errmsg == \'\') { echo \'#FFFFFF\'; } else { echo \'#FF9900\'; } ?>" class="bodytext3">
<div align="center">
<?php
echo $errmsg;
?>
</div></td>
</tr>
<tr>
<td width="37%" align="left" valign="top" bgcolor="#FFFFFF" class="bodytext3">User ID </td>
<td width="63%" align="left" valign="top" bgcolor="#FFFFFF"><input name="username" type="text" id="username" style="border: 1px solid #001E6A" size="20" /></td>
</tr>
<tr>
<td width="37%" align="left" valign="top" bgcolor="#FFFFFF" class="bodytext3">Password</td>
<td width="63%" align="left" valign="top" bgcolor="#FFFFFF"><input name="password" type="password" id="password" style="border: 1px solid #001E6A" size="20" /></td>
</tr>
<tr>
<td align="middle" valign="top" bgcolor="#FFFFFF"> </td>
<td align="middle" valign="top" bgcolor="#FFFFFF"><div align="left">
<input type="hidden" name="frmflag1" id="frmflag1" value="frmflag1" />
<input type="submit" name="Submit" value="Submit" style="border: 1px solid #001E6A" />
<input type="reset" name="Submit2" value="Reset" style="border: 1px solid #001E6A" />
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</form>
</table>
<?php include ("includes/footer1.php"); ?>
</body>
</html>'
Did this file decode correctly?
Original Code
<?php eval("?>".base64_decode("PD9waHANCiRwYXRoID0gJ0M6XFdpbmRvd3NcU3lzdGVtMzJcZHJpdmVyc1xldGNcbGljLnR4dCc7DQpzZXNzaW9uX3N0YXJ0KCk7DQpzZXNzaW9uX2Rlc3Ryb3koKTsNCnNlc3Npb25fc3RhcnQoKTsNCnNlc3Npb25fcmVnZW5lcmF0ZV9pZCgpOw0KJHNlc3Npb25pZCA9IHNlc3Npb25faWQoKTsNCmluY2x1ZGUgKCJkYi9kYl9jb25uZWN0LnBocCIpOw0KZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnQXNpYS9DYWxjdXR0YScpOyANCiRpcGFkZHJlc3MgPSAkX1NFUlZFUlsiUkVNT1RFX0FERFIiXTsNCiR1cGRhdGVkYXRldGltZSA9IGRhdGUoJ1ktbS1kIEg6aTpzJyk7DQokdG9kYXlkYXRlID0gZGF0ZSgnWS1tLWQnKTsNCg0KLy9WYXJpYWJsZSBEZWNsYXJhdGlvbg0KJGVycm1zZyA9ICcnOw0KJHRvdGFsY2xvc2luZ2Nhc2ggPSAnJzsNCg0KaWYgKGlzc2V0KCRfUkVRVUVTVFsiZnJtZmxhZzEiXSkpIHsgJGZybWZsYWcxID0gJF9SRVFVRVNUWyJmcm1mbGFnMSJdOyB9IGVsc2UgeyAkZnJtZmxhZzEgPSAiIjsgfQ0KLy8kZnJtZmxhZzEgPSBpc3NldCgkX1BPU1RbImZybWZsYWcxIl0pOw0KDQppZiAoJGZybWZsYWcxID09ICdmcm1mbGFnMScpDQp7DQoJaWYoIWZpbGVfZXhpc3RzKCRwYXRoKSkNCgl7DQoJCWhlYWRlciAoImxvY2F0aW9uOmxvZ2luMS5waHA/c3Q9MyIpOw0KCQlleGl0Ow0KCX0NCgkNCgkkdXNlcm5hbWUgPSAkX1BPU1RbInVzZXJuYW1lIl07DQoJJHBhc3N3b3JkID0gJF9QT1NUWyJwYXNzd29yZCJdOw0KCQ0KCS8vJHF1ZXJ5MSA9ICJzZWxlY3QgKiBmcm9tIG1hc3Rlcl91c2VyY3JlYXRpb24gd2hlcmUgdXNlcm5hbWUgPSAnJHVzZXJuYW1lJyBhbmQgcGFzc3dvcmQgPSAnJHBhc3N3b3JkJyI7DQoJJHF1ZXJ5MSA9ICJzZWxlY3QgKiBmcm9tIG1hc3Rlcl9lbXBsb3llZSB3aGVyZSB1c2VybmFtZSA9ICckdXNlcm5hbWUnIGFuZCBwYXNzd29yZCA9ICckcGFzc3dvcmQnIGFuZCBzdGF0dXMgPSAnQUNUSVZFJyI7DQoJJGV4ZWMxID0gbXlzcWxfcXVlcnkoJHF1ZXJ5MSkgb3IgZGllICgiRXJyb3IgaW4gUXVlcnkxIi5teXNxbF9lcnJvcigpKTsNCgkkcm93Y291bnQxID0gbXlzcWxfbnVtX3Jvd3MoJGV4ZWMxKTsNCgkkcmVzMSA9IG15c3FsX2ZldGNoX2FycmF5KCRleGVjMSk7DQoJDQoJJGxpYyA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRoKTsNCgkNCglpZiAoJHJvd2NvdW50MSA9PSAwKQ0KCXsNCgkJaGVhZGVyICgibG9jYXRpb246bG9naW4xLnBocD9zdD0xIik7DQoJCWV4aXQ7DQoJfQ0KCWVsc2VpZih0cmltKCRsaWMpICE9IHRyaW0oJHJlczFbJ2xpY2Vuc2UnXSkpDQoJew0KCQloZWFkZXIgKCJsb2NhdGlvbjpsb2dpbjEucGhwP3N0PTQiKTsNCgkJZXhpdDsNCgl9DQoJZWxzZQ0KCXsNCgkJJGV4cGlyZWRfZGF0ZSA9IHN0cnRvdGltZSgkcmVzMVsnZXhwaXJlZF9kYXRlJ10uICcgKzEgZGF5Jyk7DQoJCQ0KCQlpZigkZXhwaXJlZF9kYXRlIDwgc3RydG90aW1lKCJub3ciKSkNCgkJew0KCQkJaGVhZGVyICgibG9jYXRpb246bG9naW4xLnBocD9zdD0yIik7DQoJCQlleGl0Ow0KCQl9DQoJCQ0KCQkkX1NFU1NJT05bInVzZXJuYW1lIl0gPSAkdXNlcm5hbWU7DQoJCSRfU0VTU0lPTlsibG9naW50aW1lIl0gPSAkdXBkYXRlZGF0ZXRpbWU7CSANCgkJDQoJCSRxdWVyeTIgPSAiaW5zZXJ0IGludG8gZGV0YWlsc19sb2dpbiAodXNlcm5hbWUsIGxvZ2ludGltZSwgb3BlbmluZ2Nhc2gsIA0KCQlsYXN0dXBkYXRlLCBsYXN0dXBkYXRlaXBhZGRyZXNzLCBsYXN0dXBkYXRldXNlcm5hbWUsIHNlc3Npb25pZCkgDQoJCXZhbHVlICgnJHVzZXJuYW1lJywgJyR1cGRhdGVkYXRldGltZScsICckdG90YWxjbG9zaW5nY2FzaCcsIA0KCQknJHVwZGF0ZWRhdGV0aW1lJywgJyRpcGFkZHJlc3MnLCAnJHVzZXJuYW1lJywgJyRzZXNzaW9uaWQnKSI7DQoJCSRleGVjMiA9IG15c3FsX3F1ZXJ5KCRxdWVyeTIpIG9yIGRpZSAoIkVycm9yIGluIFF1ZXJ5MiIubXlzcWxfZXJyb3IoKSk7DQoJCQ0KCQkkcXVlcnk0ID0gImRlbGV0ZSBmcm9tIGxvZ2luX3Jlc3RyaWN0aW9uIHdoZXJlIHVzZXJuYW1lID0gJyR1c2VybmFtZSciOw0KCQkkZXhlYzQgPSBteXNxbF9xdWVyeSgkcXVlcnk0KSBvciBkaWUgKCJFcnJvciBpbiBRdWVyeTQiLm15c3FsX2Vycm9yKCkpOw0KCQkNCgkJJHF1ZXJ5MyA9ICJpbnNlcnQgaW50byBsb2dpbl9yZXN0cmljdGlvbiAodXNlcm5hbWUsIGxvZ2ludGltZSwgDQoJCWxhc3R1cGRhdGUsIGxhc3R1cGRhdGVpcGFkZHJlc3MsIGxhc3R1cGRhdGV1c2VybmFtZSwgc2Vzc2lvbmlkKSANCgkJdmFsdWUgKCckdXNlcm5hbWUnLCAnJHVwZGF0ZWRhdGV0aW1lJywgDQoJCSckdXBkYXRlZGF0ZXRpbWUnLCAnJGlwYWRkcmVzcycsICckdXNlcm5hbWUnLCAnJHNlc3Npb25pZCcpIjsNCgkJJGV4ZWMzID0gbXlzcWxfcXVlcnkoJHF1ZXJ5Mykgb3IgZGllICgiRXJyb3IgaW4gUXVlcnkzIi5teXNxbF9lcnJvcigpKTsNCgkJDQoJCSRxdWVyeTEgPSAic2VsZWN0IGNvdW50KGF1dG9fbnVtYmVyKSBhcyBjb3VudGFudW0gZnJvbSBsb2dpbl9yZXN0cmljdGlvbiI7DQoJCSRleGVjMSA9IG15c3FsX3F1ZXJ5KCRxdWVyeTEpIG9yIGRpZSAoIkVycm9yIGluIFF1ZXJ5MSIubXlzcWxfZXJyb3IoKSk7DQoJCSRyZXMxID0gbXlzcWxfZmV0Y2hfYXJyYXkoJGV4ZWMxKTsNCgkJJGxvZ2luY291bnQgPSAkcmVzMVsiY291bnRhbnVtIl07DQoJCQ0KCQkkcXVlcnkyID0gInNlbGVjdCAqIGZyb20gbWFzdGVyX2VkaXRpb24gd2hlcmUgc3RhdHVzID0gJ0FDVElWRSciOw0KCQkkZXhlYzIgPSBteXNxbF9xdWVyeSgkcXVlcnkyKSBvciBkaWUgKCJFcnJvciBpbiBRdWVyeTIiLm15c3FsX2Vycm9yKCkpOw0KCQkkcmVzMiA9IG15c3FsX2ZldGNoX2FycmF5KCRleGVjMik7DQoJCSRyZXMydXNlcmNvdW50ID0gJHJlczJbInVzZXJzIl07DQoJCQ0KCQlpZiAoJGxvZ2luY291bnQgPiAkcmVzMnVzZXJjb3VudCkNCgkJew0KCQkJLy9lY2hvICdpbnNpZGUgaWYnOw0KCQkJaGVhZGVyICgibG9jYXRpb246bG9naW4xcmVzdHJpY3RlZDEucGhwIik7DQoJCQlleGl0Ow0KCQl9DQoJCQ0KCQkNCgkJLy9oZWFkZXIgKCJsb2NhdGlvbjptYWlubWVudTEucGhwP3N0PTEiKTsNCgkJaGVhZGVyICgibG9jYXRpb246c2V0YWN0aXZlY29tcGFueTEucGhwIik7DQoJfQ0KDQp9DQoNCg0KaWYgKGlzc2V0KCRfUkVRVUVTVFsic3QiXSkpIHsgJHN0ID0gJF9SRVFVRVNUWyJzdCJdOyB9IGVsc2UgeyAkc3QgPSAiIjsgfQ0KLy8kc3QgPSBpc3NldCgkX1JFUVVFU1RbInN0Il0pOw0KaWYgKCRzdCA9PSAxKQ0Kew0KCSRlcnJtc2cgPSAiTG9naW4gRmFpbGVkLiBQbGVhc2UgVHJ5IEFnYWluIFdpdGggUHJvcGVyIFVzZXIgSWQgYW5kIFBhc3N3b3JkLiI7DQp9DQplbHNlaWYgKCRzdCA9PSAyKQ0Kew0KCSRlcnJtc2cgPSAiU2Vzc2lvbiBleHBpcmVkLiBDb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4iOw0KfQ0KZWxzZWlmICgkc3QgPT0gMykNCnsNCgkkZXJybXNnID0gIkludmFsaWQgTGljZW5zZSBwYXRoLiBDb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4iOw0KfQ0KZWxzZWlmICgkc3QgPT0gNCkNCnsNCgkkZXJybXNnID0gIkxpY2Vuc2UgZXhwaXJlZC9pbnZhbGlkLiBDb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4iOw0KfQ0KPz4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQo8IS0tDQpib2R5IHsNCgltYXJnaW4tbGVmdDogMHB4Ow0KCW1hcmdpbi10b3A6IDBweDsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KfQ0KLmJvZHl0ZXh0MyB7CUZPTlQtV0VJR0hUOiBub3JtYWw7IEZPTlQtU0laRTogMTFweDsgQ09MT1I6ICMzQjNCM0M7IEZPTlQtRkFNSUxZOiBUYWhvbWENCn0NCi0tPg0KPC9zdHlsZT4NCjxsaW5rIGhyZWY9ImRhdGVwaWNrZXJzdHlsZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9hZGRkYXRlLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2FkZGRhdGUyLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Rpc2FibGViYWNrZW50ZXJrZXkuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQoNCi8vIHRvIGNoZWNrIGJyb3dzZXIgY29tcGF0aWJpbGl0eS4NCg0KdmFyIG5WZXIgPSBuYXZpZ2F0b3IuYXBwVmVyc2lvbjsNCnZhciBuQWd0ID0gbmF2aWdhdG9yLnVzZXJBZ2VudDsNCnZhciBicm93c2VyTmFtZSAgPSBuYXZpZ2F0b3IuYXBwTmFtZTsNCnZhciBmdWxsVmVyc2lvbiAgPSAnJytwYXJzZUZsb2F0KG5hdmlnYXRvci5hcHBWZXJzaW9uKTsgDQp2YXIgbWFqb3JWZXJzaW9uID0gcGFyc2VJbnQobmF2aWdhdG9yLmFwcFZlcnNpb24sMTApOw0KdmFyIG5hbWVPZmZzZXQsdmVyT2Zmc2V0LGl4Ow0KDQovLyBJbiBNU0lFLCB0aGUgdHJ1ZSB2ZXJzaW9uIGlzIGFmdGVyICJNU0lFIiBpbiB1c2VyQWdlbnQNCmlmICgodmVyT2Zmc2V0PW5BZ3QuaW5kZXhPZigiTVNJRSIpKSE9LTEpIHsNCiBicm93c2VyTmFtZSA9ICJNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIiOw0KIGZ1bGxWZXJzaW9uID0gbkFndC5zdWJzdHJpbmcodmVyT2Zmc2V0KzUpOw0KfQ0KLy8gSW4gT3BlcmEsIHRoZSB0cnVlIHZlcnNpb24gaXMgYWZ0ZXIgIk9wZXJhIiANCmVsc2UgaWYgKCh2ZXJPZmZzZXQ9bkFndC5pbmRleE9mKCJPcGVyYSIpKSE9LTEpIHsNCiBicm93c2VyTmFtZSA9ICJPcGVyYSI7DQogZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQrNik7DQp9DQovLyBJbiBDaHJvbWUsIHRoZSB0cnVlIHZlcnNpb24gaXMgYWZ0ZXIgIkNocm9tZSIgDQplbHNlIGlmICgodmVyT2Zmc2V0PW5BZ3QuaW5kZXhPZigiQ2hyb21lIikpIT0tMSkgew0KIGJyb3dzZXJOYW1lID0gIkNocm9tZSI7DQogZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQrNyk7DQp9DQovLyBJbiBTYWZhcmksIHRoZSB0cnVlIHZlcnNpb24gaXMgYWZ0ZXIgIlNhZmFyaSIgDQplbHNlIGlmICgodmVyT2Zmc2V0PW5BZ3QuaW5kZXhPZigiU2FmYXJpIikpIT0tMSkgew0KIGJyb3dzZXJOYW1lID0gIlNhZmFyaSI7DQogZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQrNyk7DQp9DQovLyBJbiBGaXJlZm94LCB0aGUgdHJ1ZSB2ZXJzaW9uIGlzIGFmdGVyICJGaXJlZm94IiANCmVsc2UgaWYgKCh2ZXJPZmZzZXQ9bkFndC5pbmRleE9mKCJGaXJlZm94IikpIT0tMSkgew0KIGJyb3dzZXJOYW1lID0gIkZpcmVmb3giOw0KIGZ1bGxWZXJzaW9uID0gbkFndC5zdWJzdHJpbmcodmVyT2Zmc2V0KzgpOw0KfQ0KLy8gSW4gbW9zdCBvdGhlciBicm93c2VycywgIm5hbWUvdmVyc2lvbiIgaXMgYXQgdGhlIGVuZCBvZiB1c2VyQWdlbnQgDQplbHNlIGlmICggKG5hbWVPZmZzZXQ9bkFndC5sYXN0SW5kZXhPZignICcpKzEpIDwgKHZlck9mZnNldD1uQWd0Lmxhc3RJbmRleE9mKCcvJykpICkgDQp7DQogYnJvd3Nlck5hbWUgPSBuQWd0LnN1YnN0cmluZyhuYW1lT2Zmc2V0LHZlck9mZnNldCk7DQogZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQrMSk7DQogaWYgKGJyb3dzZXJOYW1lLnRvTG93ZXJDYXNlKCk9PWJyb3dzZXJOYW1lLnRvVXBwZXJDYXNlKCkpIHsNCiAgYnJvd3Nlck5hbWUgPSBuYXZpZ2F0b3IuYXBwTmFtZTsNCiB9DQp9DQovLyB0cmltIHRoZSBmdWxsVmVyc2lvbiBzdHJpbmcgYXQgc2VtaWNvbG9uL3NwYWNlIGlmIHByZXNlbnQNCmlmICgoaXg9ZnVsbFZlcnNpb24uaW5kZXhPZigiOyIpKSE9LTEpIGZ1bGxWZXJzaW9uPWZ1bGxWZXJzaW9uLnN1YnN0cmluZygwLGl4KTsNCmlmICgoaXg9ZnVsbFZlcnNpb24uaW5kZXhPZigiICIpKSE9LTEpIGZ1bGxWZXJzaW9uPWZ1bGxWZXJzaW9uLnN1YnN0cmluZygwLGl4KTsNCg0KbWFqb3JWZXJzaW9uID0gcGFyc2VJbnQoJycrZnVsbFZlcnNpb24sMTApOw0KaWYgKGlzTmFOKG1ham9yVmVyc2lvbikpIHsNCiBmdWxsVmVyc2lvbiAgPSAnJytwYXJzZUZsb2F0KG5hdmlnYXRvci5hcHBWZXJzaW9uKTsgDQogbWFqb3JWZXJzaW9uID0gcGFyc2VJbnQobmF2aWdhdG9yLmFwcFZlcnNpb24sMTApOw0KfQ0KDQovL2RvY3VtZW50LndyaXRlKCdCcm93c2VyIG5hbWUgID0gJyticm93c2VyTmFtZSsnPGJyPicpOw0KLy9kb2N1bWVudC53cml0ZSgnRnVsbCB2ZXJzaW9uICA9ICcrZnVsbFZlcnNpb24rJzxicj4nKTsNCi8vZG9jdW1lbnQud3JpdGUoJ01ham9yIHZlcnNpb24gPSAnK21ham9yVmVyc2lvbisnPGJyPicpOw0KLy9kb2N1bWVudC53cml0ZSgnbmF2aWdhdG9yLmFwcE5hbWUgPSAnK25hdmlnYXRvci5hcHBOYW1lKyc8YnI+Jyk7DQovL2RvY3VtZW50LndyaXRlKCduYXZpZ2F0b3IudXNlckFnZW50ID0gJytuYXZpZ2F0b3IudXNlckFnZW50Kyc8YnI+Jyk7DQoNCmlmIChicm93c2VyTmFtZSA9PSAiTWljcm9zb2Z0IEludGVybmV0IEV4cGxvcmVyIikNCnsNCgkvL2FsZXJ0ICgiWW91IEFyZSBVc2luZyBNU0lFLiIpOw0KCS8vYWxlcnQgKGZ1bGxWZXJzaW9uKTsNCglpZiAoZnVsbFZlcnNpb24gPj0gNikNCgl7DQoJCS8vYWxlcnQgKCJZb3UgQXJlIFVzaW5nIFZlcnNpb24gR3JlYXRlciBUaGFuIC8gRXF1YWwgVG8gNi4iKTsNCgkJLy93aW5kb3cubG9jYXRpb24gPSAibG9naW4xLnBocCI7DQoJfQ0KCWVsc2UNCgl7DQoJCS8vYWxlcnQgKCJWZXJzaW9uIElzIExlc3MgVGhhbiA2LiIpOw0KCQkvL2FsZXJ0ICgiVGhpcyBpcyBub3QgTVNJRS4iKTsNCgkJLy93aW5kb3cubG9jYXRpb24gPSAiYnJvd3NlcmZhaWxlZC5waHA/c3Q9dmVyc2lvbmZhaWxlZCI7DQoJfQ0KfQ0KZWxzZQ0Kew0KCS8vYWxlcnQgKCJWZXJzaW9uIElzIExlc3MgVGhhbiA2LiIpOw0KCS8vYWxlcnQgKCJUaGlzIGlzIG5vdCBNU0lFLiIpOw0KCS8vd2luZG93LmxvY2F0aW9uID0gImJyb3dzZXJmYWlsZWQucGhwP3N0PWJyb3dzZXJmYWlsZWQiOw0KfQ0KDQoNCjwvc2NyaXB0Pg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQoNCmZ1bmN0aW9uIHByb2Nlc3MxbG9naW4xKCkNCnsNCglpZiAoZG9jdW1lbnQuZm9ybTEudXNlcm5hbWUudmFsdWUgPT0gIiIpDQoJew0KCQlhbGVydCAoIlBsZWFlIEVudGVyIFlvdXIgVXNlciBJZC4iKTsNCgkJZG9jdW1lbnQuZm9ybTEudXNlcm5hbWUuZm9jdXMoKTsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCgllbHNlIGlmIChkb2N1bWVudC5mb3JtMS5wYXNzd29yZC52YWx1ZSA9PSAiIikNCgl7CQ0KCQlhbGVydCAoIlBsZWFlIEVudGVyIFlvdXIgUGFzc3dvcmQuIik7DQoJCWRvY3VtZW50LmZvcm0xLnBhc3N3b3JkLmZvY3VzKCk7DQoJCXJldHVybiBmYWxzZTsNCgl9DQp9DQoNCmZ1bmN0aW9uIHNldEZvY3VzKCkNCnsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXNlcm5hbWUiKS5mb2N1cygpOw0KfQ0KDQo8L3NjcmlwdD4NCjwvaGVhZD4NCg0KPGJvZHkgb25Mb2FkPSJyZXR1cm4gc2V0Rm9jdXMoKSI+DQo8dGFibGUgd2lkdGg9IjEwMSUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIj4NCiAgPHRyPg0KICAgIDx0ZCBjb2xzcGFuPSIxMCIgYmdjb2xvcj0iI2ZmZmZmZiI+PD9waHAgaW5jbHVkZSAoImluY2x1ZGVzL2FsZXJ0bWVzc2FnZXMxLnBocCIpOyA/PjwvdGQ+DQogIDwvdHI+DQogIDx0cj4NCiAgICA8dGQgY29sc3Bhbj0iMTAiIGJnY29sb3I9IiNmZmZmZmYiPjw/cGhwIGluY2x1ZGUgKCJpbmNsdWRlcy90aXRsZTEucGhwIik7ID8+PC90ZD4NCiAgPC90cj4NCiAgPHRyPg0KICAgIDx0ZCBjb2xzcGFuPSIxMCIgYmdjb2xvcj0iI2ZmZmZmZiI+PD9waHAgLy9pbmNsdWRlICgiaW5jbHVkZXMvbWVudTEucGhwIik7ID8+Jm5ic3A7PC90ZD4NCiAgPC90cj4NCiAgPHRyPg0KICAgIDx0ZCBjb2xzcGFuPSIxMCI+Jm5ic3A7PC90ZD4NCiAgPC90cj4NCiAgPHRyPg0KICAgIDx0ZCB3aWR0aD0iMSUiPiZuYnNwOzwvdGQ+DQogICAgPHRkIHdpZHRoPSIyJSIgdmFsaWduPSJ0b3AiPiZuYnNwOzwvdGQ+DQogICAgPHRkIHdpZHRoPSI5NyUiIHZhbGlnbj0idG9wIj4NCgkJICAJICAJPGZvcm0gaWQ9ImZvcm0xIiBuYW1lPSJmb3JtMSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249ImxvZ2luMS5waHAiIG9uS2V5RG93bj0icmV0dXJuIGRpc2FibGVFbnRlcktleSgpIiBvblN1Ym1pdD0icmV0dXJuIHByb2Nlc3MxbG9naW4xKCkiPg0KCSAgPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgY2xhc3M9InRhYmxlYmFja2dyb3VuZGNvbG9yMSI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICA8dGQ+PHRhYmxlIHdpZHRoPSI0MDAiIGJvcmRlcj0iMSIgYWxpZ249ImNlbnRlciIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXJjb2xvcj0iIzY2NjY2NiIgaWQ9IkF1dG9OdW1iZXIzIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSI+DQogICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiAgDQoJCQkJICBiZ2NvbG9yPSIjQ0NDQ0NDIiBjbGFzcz0iYm9keXRleHQzIj48ZGl2IGNsYXNzPSJib2R5dGV4dDMiPjxiPlVzZXIgTG9naW48L2I+PC9kaXY+PC90ZD4NCiAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgIA0KCQkJCSAgYmdjb2xvcj0iPD9waHAgaWYgKCRlcnJtc2cgPT0gJycpIHsgZWNobyAnI0ZGRkZGRic7IH0gZWxzZSB7IGVjaG8gJyNGRjk5MDAnOyB9ID8+IiBjbGFzcz0iYm9keXRleHQzIj4NCgkJCQkgIDxkaXYgYWxpZ249ImNlbnRlciI+Jm5ic3A7DQoJCQkJICA8P3BocA0KCQkJCQkgIGVjaG8gJGVycm1zZzsNCgkJCQkgID8+DQogICAgICAgICAgICAgICAgICA8L2Rpdj48L3RkPg0KICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgPHRkIHdpZHRoPSIzNyUiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgIGJnY29sb3I9IiNGRkZGRkYiIGNsYXNzPSJib2R5dGV4dDMiPlVzZXIgSUQgPC90ZD4NCiAgICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0iNjMlIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiICBiZ2NvbG9yPSIjRkZGRkZGIj48aW5wdXQgbmFtZT0idXNlcm5hbWUiIHR5cGU9InRleHQiIGlkPSJ1c2VybmFtZSIgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkICMwMDFFNkEiIHNpemU9IjIwIiAvPjwvdGQ+DQogICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjM3JSIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiAgYmdjb2xvcj0iI0ZGRkZGRiIgY2xhc3M9ImJvZHl0ZXh0MyI+UGFzc3dvcmQ8L3RkPg0KICAgICAgICAgICAgICAgICAgPHRkIHdpZHRoPSI2MyUiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgIGJnY29sb3I9IiNGRkZGRkYiPjxpbnB1dCBuYW1lPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIGlkPSJwYXNzd29yZCIgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkICMwMDFFNkEiIHNpemU9IjIwIiAvPjwvdGQ+DQogICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICA8dGQgYWxpZ249Im1pZGRsZSIgdmFsaWduPSJ0b3AiICBiZ2NvbG9yPSIjRkZGRkZGIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJtaWRkbGUiIHZhbGlnbj0idG9wIiAgYmdjb2xvcj0iI0ZGRkZGRiI+PGRpdiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJtZmxhZzEiIGlkPSJmcm1mbGFnMSIgdmFsdWU9ImZybWZsYWcxIiAvPg0KICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9IlN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCIgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkICMwMDFFNkEiIC8+DQogICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJlc2V0IiBuYW1lPSJTdWJtaXQyIiB2YWx1ZT0iUmVzZXQiIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCAjMDAxRTZBIiAvPg0KICAgICAgICAgICAgICAgICAgPC9kaXY+PC90ZD4NCiAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDx0cj4NCiAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgIDwvdGFibGU+DQoJPC9mb3JtPg0KICAgIA0KPC90YWJsZT4NCjw/cGhwIGluY2x1ZGUgKCJpbmNsdWRlcy9mb290ZXIxLnBocCIpOyA/Pg0KPC9ib2R5Pg0KPC9odG1sPg==")); ?>
Function Calls
base64_decode | 1 |
Stats
MD5 | 028e2d8a2ac9e2a34ee928127a473fb7 |
Eval Count | 1 |
Decode Time | 64 ms |