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("PD9waHANCnJlcXVpcmUgX19ESVJfXyAuICcvY2xhc3Nlcy9Kd3RIYW5kbGV..
Decoded Output download
?>b'<?php
require __DIR__ . \'/classes/JwtHandler.php\';
class Auth extends JwtHandler
{
protected $db;
protected $headers;
protected $data;
protected $token;
public function __construct($db, $headers,$data=[])
{
parent::__construct();
$this->db = $db;
$this->db->exec("set names utf8mb4");
$this->headers = $headers;
$this->data = $data;
//var_dump($headers);
}
public function isValid($tp)
{
if (array_key_exists(\'Authorization\', $this->headers) && preg_match(\'/Bearer\s(\S+)/\', $this->headers[\'Authorization\'], $matches)) {
$data = $this->jwtDecodeData($matches[1]);
if ( $tp == 1 &&
isset($data[\'data\']->user_id) &&
$user = $this->fetchStd($data[\'data\']->user_id,$this->headers[\'stdid\'])
) :
return $user;
elseif ( $tp == 3 &&
isset($data[\'data\']->user_id) &&
$pay = $this->fetchPay($data[\'data\']->user_id, $this->data->VOUCHER)
) :
return $pay;
elseif( $tp == 2 &&
isset($data[\'data\']->user_id) &&
$user = $this->CreatPay( $this->data,$data[\'data\']->user_id)) :
return $user;
else :
return [
\'status\' => 404,
"success" => 0,
"message" => $data[\'message\'],
];
endif;
} else {
return [
\'status\' => 500,
"success" => 0,
"message" => "Token not found in request"
];
}
}
protected function fetchUser($user_id)
{
try {
$fetch_user_by_id = "SELECT `name`,`email`,`bank`,`university`,`ip` FROM `users` WHERE `id`=:id";
$query_stmt = $this->db->prepare($fetch_user_by_id);
$query_stmt->bindValue(\':id\', $user_id, PDO::PARAM_INT);
$query_stmt->execute();
if ($query_stmt->rowCount()) :
return $query_stmt->fetch(PDO::FETCH_ASSOC);
else :
return false;
endif;
} catch (PDOException $e) {
return null;
}
}
protected function fetchStd($user_id,$stdid)
{
try {
if (
!isset($stdid)
|| empty(trim($stdid))
) :
$fields = [\'fields\' => [ \'STDID\']];
return $this->msg(0, 422, \'Please Fill in all Required Fields!GET\', $fields);
endif;
$rs_user = $this->fetchUser($user_id);
$bank = $rs_user[\'bank\'];
$user_university = $rs_user[\'university\'];
$fetch_user_by_id = "SELECT \' . $user_university . \' AS UNI,\'REGISTRATION\' as SYSTYPE, f.title01 AS FAC, s.fac FACID, s.universityno as STDID, s.name01 NAME, s.amt as AMT FROM reg.students AS s INNER JOIN reg.faculties f ON f.code = s.fac WHERE s.active=1001 AND s.universityno =:STDIDS";
$query_stmt = $this->db->prepare($fetch_user_by_id);
$query_stmt->bindValue(\':STDIDS\', $stdid, PDO::PARAM_INT);
$query_stmt->execute();
if ($query_stmt->rowCount()) :
return $query_stmt->fetch(PDO::FETCH_ASSOC);
else :
return $this->msg(0, 404, \'Student Not Found!\');
endif;
} catch (PDOException $e) {
return null;
}
}
protected function CreatPay($payData,$user_id)
{
try {
if (
!isset($payData->STUDENTSID)
|| !isset($payData->AMOUNT)
|| !isset($payData->BANKDATE)
|| !isset($payData->VOUCHERNO)
|| !isset($payData->BRANCH)
|| empty(trim($payData->STUDENTSID))
|| empty(trim($payData->AMOUNT))
|| empty(trim($payData->BANKDATE))
|| empty(trim($payData->VOUCHERNO))
|| empty(trim($payData->BRANCH))
) :
$fields = [\'fields\' => [\'STUDENTSID\', \'AMOUNT\', \'VOUCHERNO\', \'BANKDATE\', \'branch\']];
return $this->msg(0, 422, \'Please Fill in all Required Fields!\', $fields);
endif;
$rs_user = $this->fetchUser($user_id);
$bank = $rs_user[\'bank\'];
$user_university = $rs_user[\'university\'];
if(isset($user_university)):
//The Entry Data var_dump($rs_user);
// $insert_query = "INSERT INTO `users`(`name`,`email`,`password`) VALUES(:name,:email,:password)";
$insert_query = "INSERT INTO reg.paymentsv3 (universityno, amount, bankdate, voucher_no, branch, bank_short_code, university)
VALUES (:STUDENTSID, :AMOUNT, NOW(), :VOUCHERNO, :BRANCH, :BANK, :university)";
$insert_stmt = $this->db->prepare($insert_query);
// DATA BINDING
$insert_stmt->bindValue(\':STUDENTSID\',$payData->STUDENTSID, PDO::PARAM_INT);
$insert_stmt->bindValue(\':AMOUNT\',$payData->AMOUNT, PDO::PARAM_INT);
$insert_stmt->bindValue(\':VOUCHERNO\',$payData->VOUCHERNO, PDO::PARAM_STR);
$insert_stmt->bindValue(\':BRANCH\',$payData->BRANCH, PDO::PARAM_STR);
$insert_stmt->bindValue(\':BANK\',$bank, PDO::PARAM_STR);
$insert_stmt->bindValue(\':university\',$user_university, PDO::PARAM_STR);
$insert_stmt->execute();
$lastId = $this->db->lastInsertId();
return $this->msg(1, 200,\'You have successfully Payment.(\'.$lastId.\')\');
else :
return $this->msg(0, 404, \'Page Not Found!\');
endif;
} catch (PDOException $e) {
return null;
}
}
protected function fetchPay($user_id,$voucher_no)
{
try {
if (
!isset($voucher_no)
|| empty(trim($voucher_no))
) :
$fields = [\'fields\' => [ \'VOUCHERNO\']];
return $this->msg(0, 422, \'Please Fill in all Required Fields!\', $fields);
endif;
$rs_user = $this->fetchUser($user_id);
$bank = $rs_user[\'bank\'];
$user_university = $rs_user[\'university\'];
$fetch_user_by_id = "SELECT id AS ID, universityno STUDENTID, amount AMT, bankdate BANKDATE, voucher_no VOUCHER, branch BRANCH,1 DONE, bank_short_code BANK, university UNIVERSITY FROM reg.paymentsv3 WHERE bank_short_code= :BANK && voucher_no = :VOUCHER";
$query_stmt = $this->db->prepare($fetch_user_by_id);
$query_stmt->bindValue(\':BANK\', $bank, PDO::PARAM_INT);
$query_stmt->bindValue(\':VOUCHER\', $voucher_no, PDO::PARAM_INT);
$query_stmt->execute();
if ($query_stmt->rowCount()) :
return $query_stmt->fetch(PDO::FETCH_ASSOC);
else :
return $this->msg(0, 404, \'Payment Not Found!\');
endif;
} catch (PDOException $e) {
return null;
}
}
}
'
Did this file decode correctly?
Original Code
<?php eval("?>".base64_decode("PD9waHANCnJlcXVpcmUgX19ESVJfXyAuICcvY2xhc3Nlcy9Kd3RIYW5kbGVyLnBocCc7DQoNCmNsYXNzIEF1dGggZXh0ZW5kcyBKd3RIYW5kbGVyDQp7DQogICAgcHJvdGVjdGVkICRkYjsNCiAgICBwcm90ZWN0ZWQgJGhlYWRlcnM7DQogICAgcHJvdGVjdGVkICRkYXRhOw0KICAgIHByb3RlY3RlZCAkdG9rZW47DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGRiLCAkaGVhZGVycywkZGF0YT1bXSkNCiAgICB7DQogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoKTsNCiAgICAgICAgJHRoaXMtPmRiID0gJGRiOw0KICAgICAgICAkdGhpcy0+ZGItPmV4ZWMoInNldCBuYW1lcyB1dGY4bWI0Iik7DQogICAgICAgICR0aGlzLT5oZWFkZXJzID0gJGhlYWRlcnM7DQogICAgICAgICR0aGlzLT5kYXRhID0gJGRhdGE7DQoJCS8vdmFyX2R1bXAoJGhlYWRlcnMpOw0KICAgDQogICAgfQ0KIA0KICAgIHB1YmxpYyBmdW5jdGlvbiBpc1ZhbGlkKCR0cCkNCiAgICB7DQoNCiAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ0F1dGhvcml6YXRpb24nLCAkdGhpcy0+aGVhZGVycykgJiYgcHJlZ19tYXRjaCgnL0JlYXJlclxzKFxTKykvJywgJHRoaXMtPmhlYWRlcnNbJ0F1dGhvcml6YXRpb24nXSwgJG1hdGNoZXMpKSB7DQoNCiAgICAgICAgICAgICRkYXRhID0gJHRoaXMtPmp3dERlY29kZURhdGEoJG1hdGNoZXNbMV0pOw0KICAgICAgICAgICAgaWYgKCAkdHAgPT0gMSAmJg0KICAgICAgICAgICAgICAgIGlzc2V0KCRkYXRhWydkYXRhJ10tPnVzZXJfaWQpICYmIA0KICAgICAgICAgICAgICAgICAkdXNlciA9ICR0aGlzLT5mZXRjaFN0ZCgkZGF0YVsnZGF0YSddLT51c2VyX2lkLCR0aGlzLT5oZWFkZXJzWydzdGRpZCddKQ0KICAgICAgICAgICAgKSA6DQogICAgICAgICAgICAgICAgcmV0dXJuICR1c2VyOw0KICAgICAgICAgICAgZWxzZWlmICggJHRwID09IDMgJiYNCiAgICAgICAgICAgICAgICBpc3NldCgkZGF0YVsnZGF0YSddLT51c2VyX2lkKSAmJiANCiAgICAgICAgICAgICAgICAgJHBheSA9ICR0aGlzLT5mZXRjaFBheSgkZGF0YVsnZGF0YSddLT51c2VyX2lkLCAkdGhpcy0+ZGF0YS0+Vk9VQ0hFUikNCiAgICAgICAgICAgICkgOg0KICAgICAgICAgICAgICAgIHJldHVybiAkcGF5Ow0KICAgICAgICAgICAgZWxzZWlmKCAkdHAgPT0gMiAmJg0KICAgICAgICAgICAgaXNzZXQoJGRhdGFbJ2RhdGEnXS0+dXNlcl9pZCkgJiYgDQogICAgICAgICAgICAgJHVzZXIgPSAkdGhpcy0+Q3JlYXRQYXkoICR0aGlzLT5kYXRhLCRkYXRhWydkYXRhJ10tPnVzZXJfaWQpKSAgOg0KICAgICAgICAgICAgIHJldHVybiAkdXNlcjsNCiAgICAgICAgICAgIGVsc2UgOg0KICAgICAgICAgICAgICAgIHJldHVybiBbDQogICAgICAgICAgICAgICAgICAgICdzdGF0dXMnID0+IDQwNCwNCiAgICAgICAgICAgICAgICAgICAgInN1Y2Nlc3MiID0+IDAsDQogICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIiA9PiAgJGRhdGFbJ21lc3NhZ2UnXSwNCiAgICAgICAgICAgICAgICBdOw0KICAgICAgICAgICAgZW5kaWY7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICByZXR1cm4gWw0KICAgICAgICAgICAgICAgICdzdGF0dXMnID0+IDUwMCwNCiAgICAgICAgICAgICAgICAic3VjY2VzcyIgPT4gMCwNCiAgICAgICAgICAgICAgICAibWVzc2FnZSIgPT4gIlRva2VuIG5vdCBmb3VuZCBpbiByZXF1ZXN0Ig0KICAgICAgICAgICAgXTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmZXRjaFVzZXIoJHVzZXJfaWQpDQogICAgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAkZmV0Y2hfdXNlcl9ieV9pZCA9ICJTRUxFQ1QgYG5hbWVgLGBlbWFpbGAsYGJhbmtgLGB1bml2ZXJzaXR5YCxgaXBgIEZST00gYHVzZXJzYCBXSEVSRSBgaWRgPTppZCI7DQogICAgICAgICAgICAkcXVlcnlfc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkZmV0Y2hfdXNlcl9ieV9pZCk7DQogICAgICAgICAgICAkcXVlcnlfc3RtdC0+YmluZFZhbHVlKCc6aWQnLCAkdXNlcl9pZCwgUERPOjpQQVJBTV9JTlQpOw0KICAgICAgICAgICAgJHF1ZXJ5X3N0bXQtPmV4ZWN1dGUoKTsNCiAgICAgICAgICAgIGlmICgkcXVlcnlfc3RtdC0+cm93Q291bnQoKSkgOg0KICAgICAgICAgICAgICAgIHJldHVybiAkcXVlcnlfc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQogICAgICAgICAgICBlbHNlIDoNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICBlbmRpZjsNCiAgICAgICAgfSBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7DQogICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmZXRjaFN0ZCgkdXNlcl9pZCwkc3RkaWQpDQogICAgew0KCQkNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGlmICgNCiAgICAgICAgICAgICAgICAhaXNzZXQoJHN0ZGlkKQ0KICAgICAgICAgICAgICAgIHx8IGVtcHR5KHRyaW0oJHN0ZGlkKSkNCiAgICAgICAgICAgICkgOg0KICAgICAgICAgICAgJGZpZWxkcyA9IFsnZmllbGRzJyA9PiBbICdTVERJRCddXTsNCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXNnKDAsIDQyMiwgJ1BsZWFzZSBGaWxsIGluIGFsbCBSZXF1aXJlZCBGaWVsZHMhR0VUJywgJGZpZWxkcyk7DQogICAgICAgICAgICBlbmRpZjsNCg0KICAgICAgICAgICANCiAgICAgICAgICAgICAkcnNfdXNlciA9ICR0aGlzLT5mZXRjaFVzZXIoJHVzZXJfaWQpOw0KICAgICAgICAgICAgJGJhbmsgPSAkcnNfdXNlclsnYmFuayddOw0KICAgICAgICAgICAgJHVzZXJfdW5pdmVyc2l0eSA9ICRyc191c2VyWyd1bml2ZXJzaXR5J107DQoNCiAgICAgICAgICAgICAkZmV0Y2hfdXNlcl9ieV9pZCA9ICJTRUxFQ1QgJyAuICR1c2VyX3VuaXZlcnNpdHkgLiAnIEFTIFVOSSwnUkVHSVNUUkFUSU9OJyBhcyBTWVNUWVBFLCBmLnRpdGxlMDEgQVMgRkFDLCBzLmZhYyBGQUNJRCwgcy51bml2ZXJzaXR5bm8gYXMgU1RESUQsIHMubmFtZTAxIE5BTUUsIHMuYW10IGFzIEFNVCAJRlJPTSByZWcuc3R1ZGVudHMgQVMgcyAgSU5ORVIgSk9JTiByZWcuZmFjdWx0aWVzIGYgT04gZi5jb2RlID0gcy5mYWMgV0hFUkUgcy5hY3RpdmU9MTAwMSBBTkQgcy51bml2ZXJzaXR5bm8gPTpTVERJRFMiOw0KICAgICAgICAgDQogICAgICAgICAgICAkcXVlcnlfc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkZmV0Y2hfdXNlcl9ieV9pZCk7DQogICAgICAgICAgICAkcXVlcnlfc3RtdC0+YmluZFZhbHVlKCc6U1RESURTJywgJHN0ZGlkLCBQRE86OlBBUkFNX0lOVCk7DQogICAgICAgICAgICAkcXVlcnlfc3RtdC0+ZXhlY3V0ZSgpOw0KICAgICAgICAgICAgaWYgKCRxdWVyeV9zdG10LT5yb3dDb3VudCgpKSA6DQogICAgICAgICAgICByZXR1cm4gJHF1ZXJ5X3N0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KICAgICAgICAgICAgZWxzZSA6DQogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5tc2coMCwgNDA0LCAnU3R1ZGVudCBOb3QgRm91bmQhJyk7DQogICAgICAgICAgICBlbmRpZjsNCiAgICAgICAgfSBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7DQogICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gQ3JlYXRQYXkoJHBheURhdGEsJHVzZXJfaWQpDQogICAgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgICFpc3NldCgkcGF5RGF0YS0+U1RVREVOVFNJRCkNCiAgICAgICAgICAgICAgICB8fCAhaXNzZXQoJHBheURhdGEtPkFNT1VOVCkNCiAgICAgICAgICAgICAgICB8fCAhaXNzZXQoJHBheURhdGEtPkJBTktEQVRFKQ0KICAgICAgICAgICAgICAgIHx8ICFpc3NldCgkcGF5RGF0YS0+Vk9VQ0hFUk5PKQ0KICAgICAgICAgICAgICAgIHx8ICFpc3NldCgkcGF5RGF0YS0+QlJBTkNIKQ0KICAgICAgICAgICAgICAgIHx8IGVtcHR5KHRyaW0oJHBheURhdGEtPlNUVURFTlRTSUQpKQ0KICAgICAgICAgICAgICAgIHx8IGVtcHR5KHRyaW0oJHBheURhdGEtPkFNT1VOVCkpDQogICAgICAgICAgICAgICAgfHwgZW1wdHkodHJpbSgkcGF5RGF0YS0+QkFOS0RBVEUpKQ0KICAgICAgICAgICAgICAgIHx8IGVtcHR5KHRyaW0oJHBheURhdGEtPlZPVUNIRVJOTykpDQogICAgICAgICAgICAgICAgfHwgZW1wdHkodHJpbSgkcGF5RGF0YS0+QlJBTkNIKSkNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgKSA6DQogICAgICAgICAgICAkZmllbGRzID0gWydmaWVsZHMnID0+IFsnU1RVREVOVFNJRCcsICdBTU9VTlQnLCAnVk9VQ0hFUk5PJywgJ0JBTktEQVRFJywgJ2JyYW5jaCddXTsNCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXNnKDAsIDQyMiwgJ1BsZWFzZSBGaWxsIGluIGFsbCBSZXF1aXJlZCBGaWVsZHMhJywgJGZpZWxkcyk7DQogICAgICAgICAgICBlbmRpZjsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgICRyc191c2VyID0gJHRoaXMtPmZldGNoVXNlcigkdXNlcl9pZCk7DQogICAgICAgICAgICAkYmFuayA9ICRyc191c2VyWydiYW5rJ107DQogICAgICAgICAgICAkdXNlcl91bml2ZXJzaXR5ID0gJHJzX3VzZXJbJ3VuaXZlcnNpdHknXTsNCiAgICAgICAgICAgICBpZihpc3NldCgkdXNlcl91bml2ZXJzaXR5KSk6DQogICAgICAgICAgICAgLy9UaGUgRW50cnkgRGF0YSB2YXJfZHVtcCgkcnNfdXNlcik7IA0KICAgICAgICAgICAgLy8gICRpbnNlcnRfcXVlcnkgPSAiSU5TRVJUIElOVE8gYHVzZXJzYChgbmFtZWAsYGVtYWlsYCxgcGFzc3dvcmRgKSBWQUxVRVMoOm5hbWUsOmVtYWlsLDpwYXNzd29yZCkiOw0KICAgICAgICAgICAgICRpbnNlcnRfcXVlcnkgPSAiSU5TRVJUIElOVE8gcmVnLnBheW1lbnRzdjMJKHVuaXZlcnNpdHlubywgYW1vdW50LCBiYW5rZGF0ZSwgdm91Y2hlcl9ubywgYnJhbmNoLCBiYW5rX3Nob3J0X2NvZGUsIHVuaXZlcnNpdHkpDQogICAgICAgICAgICAgVkFMVUVTICg6U1RVREVOVFNJRCwgOkFNT1VOVCwgTk9XKCksIDpWT1VDSEVSTk8sIDpCUkFOQ0gsIDpCQU5LLCA6dW5pdmVyc2l0eSkiOw0KDQogICAgICAgICAgICAgJGluc2VydF9zdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRpbnNlcnRfcXVlcnkpOw0KDQogICAgICAgICAgICAgLy8gREFUQSBCSU5ESU5HDQogICAgICAgICAgICAgJGluc2VydF9zdG10LT5iaW5kVmFsdWUoJzpTVFVERU5UU0lEJywkcGF5RGF0YS0+U1RVREVOVFNJRCwgUERPOjpQQVJBTV9JTlQpOw0KICAgICAgICAgICAgICRpbnNlcnRfc3RtdC0+YmluZFZhbHVlKCc6QU1PVU5UJywkcGF5RGF0YS0+QU1PVU5ULCBQRE86OlBBUkFNX0lOVCk7DQogICAgICAgICAgICAgJGluc2VydF9zdG10LT5iaW5kVmFsdWUoJzpWT1VDSEVSTk8nLCRwYXlEYXRhLT5WT1VDSEVSTk8sIFBETzo6UEFSQU1fU1RSKTsNCiAgICAgICAgICAgICAkaW5zZXJ0X3N0bXQtPmJpbmRWYWx1ZSgnOkJSQU5DSCcsJHBheURhdGEtPkJSQU5DSCwgUERPOjpQQVJBTV9TVFIpOw0KICAgICAgICAgICAgICRpbnNlcnRfc3RtdC0+YmluZFZhbHVlKCc6QkFOSycsJGJhbmssIFBETzo6UEFSQU1fU1RSKTsNCiAgICAgICAgICAgICAkaW5zZXJ0X3N0bXQtPmJpbmRWYWx1ZSgnOnVuaXZlcnNpdHknLCR1c2VyX3VuaXZlcnNpdHksIFBETzo6UEFSQU1fU1RSKTsNCiAgICAgICAgICAgICAkaW5zZXJ0X3N0bXQtPmV4ZWN1dGUoKTsNCiAgICAgICAgICAgICAkbGFzdElkID0gJHRoaXMtPmRiLT5sYXN0SW5zZXJ0SWQoKTsgICANCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXNnKDEsIDIwMCwnWW91IGhhdmUgc3VjY2Vzc2Z1bGx5IFBheW1lbnQuKCcuJGxhc3RJZC4nKScpOw0KICAgICAgICAgICAgZWxzZSA6DQogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5tc2coMCwgNDA0LCAnUGFnZSBOb3QgRm91bmQhJyk7DQogICAgICAgICAgICBlbmRpZjsNCiAgICAgICAgfSBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7DQogICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmZXRjaFBheSgkdXNlcl9pZCwkdm91Y2hlcl9ubykNCiAgICB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBpZiAoDQogICAgICAgICAgICAgICAgIWlzc2V0KCR2b3VjaGVyX25vKQ0KICAgICAgICAgICAgICAgIHx8IGVtcHR5KHRyaW0oJHZvdWNoZXJfbm8pKQ0KICAgICAgICAgICAgKSA6DQogICAgICAgICAgICAkZmllbGRzID0gWydmaWVsZHMnID0+IFsgJ1ZPVUNIRVJOTyddXTsNCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXNnKDAsIDQyMiwgJ1BsZWFzZSBGaWxsIGluIGFsbCBSZXF1aXJlZCBGaWVsZHMhJywgJGZpZWxkcyk7DQogICAgICAgICAgICBlbmRpZjsNCg0KICAgICAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgJHJzX3VzZXIgPSAkdGhpcy0+ZmV0Y2hVc2VyKCR1c2VyX2lkKTsNCiAgICAgICAgICAgICRiYW5rID0gJHJzX3VzZXJbJ2JhbmsnXTsNCiAgICAgICAgICAgICR1c2VyX3VuaXZlcnNpdHkgPSAkcnNfdXNlclsndW5pdmVyc2l0eSddOw0KDQogICAgICAgICAgICAgJGZldGNoX3VzZXJfYnlfaWQgPSAiU0VMRUNUIGlkIEFTIElELCB1bml2ZXJzaXR5bm8gU1RVREVOVElELCBhbW91bnQgQU1ULCBiYW5rZGF0ZSBCQU5LREFURSwgdm91Y2hlcl9ubyBWT1VDSEVSLCBicmFuY2ggQlJBTkNILDEgRE9ORSwgYmFua19zaG9ydF9jb2RlIEJBTkssIHVuaXZlcnNpdHkgVU5JVkVSU0lUWSAgRlJPTSByZWcucGF5bWVudHN2MyBXSEVSRSBiYW5rX3Nob3J0X2NvZGU9IDpCQU5LICYmIHZvdWNoZXJfbm8gPSA6Vk9VQ0hFUiI7DQogICAgICAgICANCiAgICAgICAgICAgICRxdWVyeV9zdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRmZXRjaF91c2VyX2J5X2lkKTsNCiAgICAgICAgICAgICRxdWVyeV9zdG10LT5iaW5kVmFsdWUoJzpCQU5LJywgJGJhbmssIFBETzo6UEFSQU1fSU5UKTsNCiAgICAgICAgICAgICRxdWVyeV9zdG10LT5iaW5kVmFsdWUoJzpWT1VDSEVSJywgJHZvdWNoZXJfbm8sIFBETzo6UEFSQU1fSU5UKTsNCiAgICAgICAgICAgICRxdWVyeV9zdG10LT5leGVjdXRlKCk7DQogICAgICAgICAgICBpZiAoJHF1ZXJ5X3N0bXQtPnJvd0NvdW50KCkpIDoNCiAgICAgICAgICAgIHJldHVybiAkcXVlcnlfc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQogICAgICAgICAgICBlbHNlIDoNCiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm1zZygwLCA0MDQsICdQYXltZW50IE5vdCBGb3VuZCEnKTsNCiAgICAgICAgICAgIGVuZGlmOw0KICAgICAgICB9IGNhdGNoIChQRE9FeGNlcHRpb24gJGUpIHsNCiAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9DQogICAgfQ0KDQoNCn0NCg==")); ?>
Function Calls
base64_decode | 1 |
Stats
MD5 | 184539d8a4bc5836b86736d07089702c |
Eval Count | 1 |
Decode Time | 55 ms |