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 $_F=__FILE__;$_C1353562110='Pz48PzF5MQoKRUQgKCFEbjhZWkU0OF9URkVRWlEoIl9fYW5aNGw0YWYi..
Decoded Output download
?><?php
if (!function_exists("__autoload")) {
include("../lib/app_top.php");
}
$page_ctl = new page_access_ctl($db);
if ($page_ctl->hasPermission('456', $_SESSION[SESSION_VAR_NAME]['role'])) {
$Page = new page($db);
$userAccessRight = $Page->accesspermissions('456', $_SESSION[SESSION_VAR_NAME]['role']);
$no_userAccessRight = count($userAccessRight);
$access_type = array();
foreach ($userAccessRight as $p_ar) {
array_push($access_type, $p_ar['type']);
}
if (in_array('5', $access_type)) {
//$format = base64_decode($_REQUEST['format']);
$data = '';
$line = "";
$format = '.' . $_REQUEST['format'];
//Save File Operation
$savename = 'master_report_' . time() . $format;
//Word Identifier
if ($format == '.doc') {
$file_format = "msword";
$separator = " ";
$tab_border = '0'; //Table Border
}
//Excel Identifier
else if ($format == '.xls') {
$file_format = "vnd.ms-excel";
$separator = " ";
}
//CSV Identifier
else if ($format == '.csv') {
$file_format = "text/octect-stream";
$separator = ",";
}
//PDF Identifier
else if ($format == '.pdf') {
$tab_border = '1'; //Table Border
//require_once('../resources/tcpdf/config/lang/eng.php');
require_once('../resources/tcpdf/tcpdf.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('DMACQ');
$pdf->SetTitle($savename);
$pdf->SetSubject($mod_name);
$pdf->SetKeywords('Index Master Report');
// set default header data
$pdf->SetKeywords('Index, Index master Report');
//$pdf->SetPdfHeaderTitle('Deal Room Task Manager');
// set default header data
//$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING);
//$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE ,'gg ' , 'sfsdf sd');
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//set some language-dependent strings
$pdf->setLanguageArray($l);
// ---------------------------------------------------------
// set default font subsetting mode
$pdf->setFontSubsetting(true);
// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
//$pdf->SetFont('Arial', '', 14, '', true);
$pdf->SetFont('', '', 8, '', true);
// Add a page
// This method has several options, check the source code documentation for more information.
$pdf->AddPage();
}
// Set some content to print
$mid = decrypt_url($_REQUEST['mid'], APP_ENCRYPTION_SALT);
$Index_Master = new index_master($db);
$indexmaster_details = $Index_Master->getIndexMaster_ById($mid);
$Index_Group = new index_group($db);
$index_master_rights = $Index_Master->getIndexMasterRights($_SESSION[SESSION_VAR_NAME]['user_id'], $mid);
if ($_SESSION[SESSION_VAR_NAME]['role'] == 1 || $_SESSION[SESSION_VAR_NAME]['role'] == 2 || $index_master_rights[0]['im_report_exportprint_r'] == 1) {
$Imaster_report = new Imaster_Report($db);
$Imaster_Report_type = new Imaster_Report_Type($db);
$id = $_POST['id'];
$no_id = count($_REQUEST['id']);
$generated_by = $_SESSION[SESSION_VAR_NAME]['fname'] . ' ' . $_SESSION[SESSION_VAR_NAME]['lname'];
$app_title = APP_COMPANY;
$c_time = DATE_TIME;
$report_info = " Index Master Report- (" . $indexmaster_details[0]['index_master'] . ")";
if ($format == '.pdf' || $format == '.doc') {
$line = '';
$header_section = '<tr><td colspan="6"> Report Info : ' . $report_info . '</td></tr>';
$header_section .= '<tr><td colspan="6"> Generated By : ' . $generated_by . '</td></tr>';
$header_section .= '<tr><td colspan="6"> Date : ' . $c_time . '</td></tr>';
$line .= '<tr>
<td align="center">#</td>
<th>Report Name</th>
<th>Report Type</th>
<th>Period</th>
<th>Period Duration</th>
<th>Index Master Fields</th>
</tr>';
if (empty($no_id)) {
$line .= '<tr><td align="center" colspan="6">Records Unavailable!</td></tr>';
} else {
for ($i = 0; $i < $no_id; $i++) {
$Imaster_report->setId($_REQUEST['id'][$i]);
$record_details = $Imaster_report->getReportById();
$line .= '<tr><td>' . ($i + 1) . '</td>';
$line .= '<td>' . $record_details[0]['name'] . '</td>';
$line .= '<td>';
$Imaster_Report_type->setId($record_details[0]['report_type']);
$Imaster_Report_type_details = $Imaster_Report_type->getReportTypeById();
$line .= $Imaster_Report_type_details[0]['report_type'] . '</td>';
if ($record_details[0]['period'] == '') {
$line .= '<td>NA</td>';
} else
$line .= '<td>' . $record_details[0]['period'] . '</td>';
// $line .= '<td>' . $record_details[0]['period_duration'] . '</td>';
if ($record_details[0]['period_duration'] == 0 && $record_details[0]['period'] == 'Days') {
$line .= '<td><b>' . 'Today' . '</b></td>';
} else if ($record_details[0]['period_duration'] != 0) {
$line .= '<td>' . $record_details[0]['period_duration'] . '</td>';
} else {
$line .= '<td>' . 'NA' . '</td>';
}
$line .= '<td>';
$fields_display = array();
$field_id = explode(',', $record_details[0]['index_master_fields']);
for ($f = 0; $f < count($field_id); $f++) {
$field_details = $Index_Master->getIndexField_ById($field_id[$f]);
array_push($fields_display, $field_details[0]['field_name']);
}
$line .= @join(',', $fields_display) . '</td></tr>';
}
}
} elseif ($format == '.xls' || $format == '.csv') {
$line = '';
$header_section = 'Report Info : ' . $report_info . $separator . "
";
$header_section .= 'Generated By : ' . $generated_by . $separator . "
";
$header_section .= 'Date : ' . $c_time . $separator . "
";
$line .= '#' . $separator .
'Report Name' . $separator .
'Report Type' . $separator .
'Period' . $separator . 'Period Duration' . $separator .
'Index Master Fields' . $separator . "
";
if (empty($no_id)) {
$line .= 'Records Unavailable!' . $separator . "
";
} else {
for ($i = 0; $i < $no_id; $i++) {
$Imaster_report->setId($_REQUEST['id'][$i]);
$record_details = $Imaster_report->getReportById();
$line .= ($i + 1) . $separator;
$line .= $record_details[0]['name'] . $separator;
$Imaster_Report_type->setId($record_details[0]['report_type']);
$Imaster_Report_type_details = $Imaster_Report_type->getReportTypeById();
$line .= $Imaster_Report_type_details[0]['report_type'] . $separator;
$line .= $record_details[0]['period'] . $separator;
if ($record_details[0]['period_duration'] == 0 && $record_details[0]['period'] == 'Days') {
$line .= 'Today' . $separator;
} else if ($record_details[0]['period_duration'] != 0) {
$line .= $record_details[0]['period_duration'] . $separator;
} else {
$line .= 'NA' . $separator;
}
$fields_display = array();
$field_id = explode(',', $record_details[0]['index_master_fields']);
for ($f = 0; $f < count($field_id); $f++) {
$field_details = $Index_Master->getIndexField_ById($field_id[$f]);
array_push($fields_display, $field_details[0]['field_name']);
}
$line .= @join('#', $fields_display) . $separator;
$index_group_details = $Index_Group->getIndexGroup_ById($record_details[0]['index_group_id']);
$line .= $separator;
$index_fields_display = array();
$index_field_id = explode(',', $record_details[0]['index_group_fields']);
for ($f1 = 0; $f1 < count($index_field_id); $f1++) {
if ($record_details[0]['report_type'] != 7) {
$index_field_details = $Index_Group->getIndexField_ById($index_field_id[$f1]);
array_push($index_fields_display, $index_field_details[0]['field_name']);
} else {
$field_details = $Index_Group->getDropDownValue($index_field_id[$f1]);
array_push($index_fields_display, $field_details[0]['field_values']);
}
}
$line .= $separator . "
";
}
}
}
$data = $header_section . $line;
//PDF Identifier
if ($format == '.pdf') {
// Print text using writeHTMLCell()
$pdf->writeHTMLCell($w = 0, $h = 0, $x = '', $y = '', "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"1\">$header$data</table>", $border = 0, $ln = 1, $fill = 0, $reseth = true, $align = '', $autopadding = true);
// ---------------------------------------------------------
// Close and output PDF document
// This method has several options, check the source code documentation for more information.
$pdf->Output($savename, 'I');
}
//Word/Excel/CSV Identifier
else {
header("Content-type: application/$file_type;charset=utf-8");
header("Content-Disposition: attachment; filename=" . $savename);
header("Pragma: no-cache");
header("Expires: 0");
if ($format == '.doc') {
print "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=" . $tab_border . ">$data</table>";
} else {
print "$data";
}
}
//============================================================+
// END OF FILE
//============================================================+
$Log = new log($db);
$Log->setUserName($_SESSION[SESSION_VAR_NAME]['fname'] . " " . $_SESSION[SESSION_VAR_NAME]['mname'] . " " . $_SESSION[SESSION_VAR_NAME]['lname']);
$Log->setUserEmail($_SESSION[SESSION_VAR_NAME]['email']);
$Log->setUserOrg($_SESSION[SESSION_VAR_NAME]['org']);
$Log->setIpAddress($_SERVER["REMOTE_ADDR"]);
$Log->setMainModule("Index Master");
$Log->setSubModule("Master Report Dashboard");
$Log->setTrigger("Export");
$log_msg = $format . "File Exported" . date("Y/m/d");
$Log->setTriggerProcess($log_msg);
$Log->setLogDatetime(DATE_TIME);
$addLog = $Log->addLogDetail();
} else {
include("../error_403.php");
}
} else {
include("../error_403.php");
}
} else {
$page_ctl->log_indirect_access();
include("../error_403.php");
}
?>
Did this file decode correctly?
Original Code
<?php $_F=__FILE__;$_C1353562110='Pz48PzF5MQoKRUQgKCFEbjhZWkU0OF9URkVRWlEoIl9fYW5aNGw0YWYiKSkgewogICAgRThZbG5mVCgiLi4vbEVzL2ExMV9aNDEuMXkxIik7Cn0KJDFhM1RfWVpsID0gOFR6IDFhM1RfYVlZVFFRX1labCgkZnMpOwpFRCAoJDFhM1RfWVpsLT55YVFjVFh3RVFRRTQ4KCdQNUInLCAkX2dxZ2cwOXBbZ3FnZzA5cF83QWRfcEFXcV1bJ1g0bFQnXSkpIHsKCiAgICAkY2EzVCA9IDhUeiAxYTNUKCRmcyk7CiAgICAkblFUWEFZWVRRUWRFM3laID0gJGNhM1QtPmFZWVRRUTFUWHdFUVFFNDhRKCdQNUInLCAkX2dxZ2cwOXBbZ3FnZzA5cF83QWRfcEFXcV1bJ1g0bFQnXSk7CiAgICAkODRfblFUWEFZWVRRUWRFM3laID0gWTRuOFooJG5RVFhBWVlUUVFkRTN5Wik7CiAgICAkYVlZVFFRX1pOMVQgPSBhWFhhTigpOwogICAgRDRYVGFZeSAoJG5RVFhBWVlUUVFkRTN5WiBhUSAkMV9hWCkgewogICAgICAgIGFYWGFOXzFuUXkoJGFZWVRRUV9aTjFULCAkMV9hWFsnWk4xVCddKTsKICAgIH0KICAgIEVEIChFOF9hWFhhTignNScsICRhWVlUUVFfWk4xVCkpIHsKCgovLyRENFh3YVogPSBzYVFUQlBfZlRZNGZUKCRfZHFTdXFnTFsnRDRYd2FaJ10pOwoKCgogICAgICAgICRmYVphID0gJyc7CiAgICAgICAgJGxFOFQgPSAiIjsKICAgICAgICAkRDRYd2FaID0gJy4nIC4gJF9kcVN1cWdMWydENFh3YVonXTsKCi8vZ2FrVCBlRWxUIDkxVFhhWkU0OAogICAgICAgICRRYWtUOGF3VCA9ICd3YVFaVFhfWFQxNFhaXycgLiBaRXdUKCkgLiAkRDRYd2FaOwoKLy9VNFhmIDBmVDhaRURFVFgKICAgICAgICBFRCAoJEQ0WHdhWiA9PSAnLmY0WScpIHsKICAgICAgICAgICAgJERFbFRfRDRYd2FaID0gIndRejRYZiI7CiAgICAgICAgICAgICRRVDFhWGFaNFggPSAiXFoiOwoKICAgICAgICAgICAgJFphc19zNFhmVFggPSAnbyc7IC8vTGFzbFQgcjRYZlRYCiAgICAgICAgfQoKLy9xRllUbCAwZlQ4WkVERVRYCiAgICAgICAgVGxRVCBFRCAoJEQ0WHdhWiA9PSAnLkZsUScpIHsKICAgICAgICAgICAgJERFbFRfRDRYd2FaID0gIms4Zi53US1URllUbCI7CiAgICAgICAgICAgICRRVDFhWGFaNFggPSAiXFoiOwogICAgICAgIH0KCi8vUmc3IDBmVDhaRURFVFgKICAgICAgICBUbFFUIEVEICgkRDRYd2FaID09ICcuWVFrJykgewogICAgICAgICAgICAkREVsVF9ENFh3YVogPSAiWlRGWi80WVpUWVotUVpYVGF3IjsKICAgICAgICAgICAgJFFUMWFYYVo0WCA9ICIsIjsKICAgICAgICB9CgovL2N4ZSAwZlQ4WkVERVRYCiAgICAgICAgVGxRVCBFRCAoJEQ0WHdhWiA9PSAnLjFmRCcpIHsKCiAgICAgICAgICAgICRaYXNfczRYZlRYID0gJ00nOyAvL0xhc2xUIHI0WGZUWAogICAgICAgICAgICAvL1hUbW5FWFRfNDhZVCgnLi4vWFRRNG5YWVRRL1pZMWZEL1k0OERFMy9sYTgzL1Q4My4xeTEnKTsKICAgICAgICAgICAgWFRtbkVYVF80OFlUKCcuLi9YVFE0blhZVFEvWlkxZkQvWlkxZkQuMXkxJyk7CgogICAgICAgICAgICAvLyBZWFRhWlQgOFR6IGN4ZSBmNFlud1Q4WgogICAgICAgICAgICAkMWZEID0gOFR6IExSY3hlKGN4ZV9jQVZxXzlkMHFwTEFMMDlwLCBjeGVfdXAwTCwgY3hlX2NBVnFfZTlkV0FMLCBaWG5ULCAndUxlLXQnLCBEYWxRVCk7CgogICAgICAgICAgICAvLyBRVFogZjRZbndUOFogRThENFh3YVpFNDgKICAgICAgICAgICAgJDFmRC0+Z1RaUlhUYVo0WChjeGVfUmRxQUw5ZCk7CiAgICAgICAgICAgICQxZkQtPmdUWkFuWnk0WCgneFdBUlMnKTsKICAgICAgICAgICAgJDFmRC0+Z1RaTEVabFQoJFFha1Q4YXdUKTsKICAgICAgICAgICAgJDFmRC0+Z1RaZ25zdlRZWigkdzRmXzhhd1QpOwogICAgICAgICAgICAkMWZELT5nVFoyVE56NFhmUSgnMDhmVEYgV2FRWlRYIGRUMTRYWicpOwoKICAgICAgICAgICAgLy8gUVRaIGZURGFubFogeVRhZlRYIGZhWmEKICAgICAgICAgICAgJDFmRC0+Z1RaMlROejRYZlEoJzA4ZlRGLCAwOGZURiB3YVFaVFggZFQxNFhaJyk7CiAgICAgICAgICAgIC8vJDFmRC0+Z1RaY2ZET1RhZlRYTEVabFQoJ3hUYWwgZDQ0dyBMYVFoIFdhOGEzVFgnKTsKICAgICAgICAgICAgLy8gUVRaIGZURGFubFogeVRhZlRYIGZhWmEKICAgICAgICAgICAgLy8kMWZELT5nVFpPVGFmVFh4YVphKGN4ZV9PcUF4cWRfSjlWOSwgY3hlX09xQXhxZF9KOVY5X1UweExPLCBjeGVfT3FBeHFkX0wwTEpxLicgb29NJywgY3hlX09xQXhxZF9nTGQwcFYpOwogICAgICAgICAgICAvLyQxZkQtPmdUWk9UYWZUWHhhWmEoY3hlX09xQXhxZF9KOVY5LCBjeGVfT3FBeHFkX0o5VjlfVTB4TE8sIGN4ZV9PcUF4cWRfTDBMSnEgLCczMyAnICwgJ1FEUWZEIFFmJyk7CiAgICAgICAgICAgICQxZkQtPmdUWk9UYWZUWHhhWmEoY3hlX09xQXhxZF9KOVY5LCBjeGVfT3FBeHFkX0o5VjlfVTB4TE8sIGN4ZV9PcUF4cWRfTDBMSnEsIGN4ZV9PcUF4cWRfZ0xkMHBWKTsKCiAgICAgICAgICAgIC8vIFFUWiB5VGFmVFggYThmIEQ0NFpUWCBENDhaUQogICAgICAgICAgICAkMWZELT5RVFpPVGFmVFhlNDhaKEFYWGFOKGN4ZV9lOXBMX3BBV3FfV0EwcCwgJycsIGN4ZV9lOXBMX2cwanFfV0EwcCkpOwogICAgICAgICAgICAkMWZELT5RVFplNDRaVFhlNDhaKEFYWGFOKGN4ZV9lOXBMX3BBV3FfeEFMQSwgJycsIGN4ZV9lOXBMX2cwanFfeEFMQSkpOwoKICAgICAgICAgICAgLy8gUVRaIGZURGFubFogdzQ4NFExYVlUZiBENDhaCiAgICAgICAgICAgICQxZkQtPmdUWnhURGFubFpXNDg0UTFhWVRmZTQ4WihjeGVfZTlwTF9XOXA5Z2NBUnF4KTsKCiAgICAgICAgICAgIC8vUVRaIHdhWDNFOFEKICAgICAgICAgICAgJDFmRC0+Z1RaV2FYM0U4UShjeGVfV0FkVjBwX0pxZUwsIGN4ZV9XQWRWMHBfTDljLCBjeGVfV0FkVjBwX2QwVk9MKTsKICAgICAgICAgICAgJDFmRC0+Z1RaT1RhZlRYV2FYM0U4KGN4ZV9XQWRWMHBfT3FBeHFkKTsKICAgICAgICAgICAgJDFmRC0+Z1RaZTQ0WlRYV2FYM0U4KGN4ZV9XQWRWMHBfZTk5THFkKTsKCiAgICAgICAgICAgIC8vUVRaIGFuWjQgMWEzVCBzWFRhaFEKICAgICAgICAgICAgJDFmRC0+Z1RaQW5aNGNhM1RyWFRhaChMZHVxLCBjeGVfV0FkVjBwX3I5TEw5Vyk7CgogICAgICAgICAgICAvL1FUWiBFd2EzVCBRWWFsVCBEYVlaNFgKICAgICAgICAgICAgJDFmRC0+UVRaMHdhM1RnWWFsVChjeGVfMFdBVnFfZ1JBSnFfZEFMMDkpOwoKICAgICAgICAgICAgLy9RVFogUTR3VCBsYTgzbmEzVC1mVDFUOGZUOFogUVpYRTgzUQogICAgICAgICAgICAkMWZELT5RVFpKYTgzbmEzVEFYWGFOKCRsKTsKCiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgICAvLyBRVFogZlREYW5sWiBENDhaIFFuc1FUWlpFODMgdzRmVAogICAgICAgICAgICAkMWZELT5RVFplNDhaZ25zUVRaWkU4MyhaWG5UKTsKCiAgICAgICAgICAgIC8vIGdUWiBENDhaCiAgICAgICAgICAgIC8vIGZUdmFrblFhOFEgRVEgYSB1TGUtdCB1OEVZNGZUIEQ0OFosIEVEIE40biA0OGxOIDhUVGYgWjQKICAgICAgICAgICAgLy8gMVhFOFogUVphOGZhWGYgQWdSMDAgWXlhWFEsIE40biBZYTggblFUIFk0WFQgRDQ4WlEgbEVoVAogICAgICAgICAgICAvLyB5VGxrVFpFWWEgNFggWkV3VFEgWjQgWFRmbllUIERFbFQgUUVHVC4KICAgICAgICAgICAgLy8kMWZELT5nVFplNDhaKCdBWEVhbCcsICcnLCBNUCwgJycsIFpYblQpOwogICAgICAgICAgICAkMWZELT5nVFplNDhaKCcnLCAnJywgdCwgJycsIFpYblQpOwoKICAgICAgICAgICAgLy8gQWZmIGEgMWEzVAogICAgICAgICAgICAvLyBMeUVRIHdUWnk0ZiB5YVEgUVRrVFhhbCA0MVpFNDhRLCBZeVRZaCBaeVQgUTRuWFlUIFk0ZlQgZjRZbndUOFphWkU0OCBENFggdzRYVCBFOEQ0WHdhWkU0OC4KICAgICAgICAgICAgJDFmRC0+QWZmY2EzVCgpOwogICAgICAgIH0KLy8gZ1RaIFE0d1QgWTQ4WlQ4WiBaNCAxWEU4WgoKICAgICAgICAkd0VmID0gZlRZWE4xWl9uWGwoJF9kcVN1cWdMWyd3RWYnXSwgQWNjX3FwUmQ2Y0wwOXBfZ0FKTCk7CiAgICAgICAgJDA4ZlRGX1dhUVpUWCA9IDhUeiBFOGZURl93YVFaVFgoJGZzKTsKICAgICAgICAkRThmVEZ3YVFaVFhfZlRaYUVsUSA9ICQwOGZURl9XYVFaVFgtPjNUWjA4ZlRGV2FRWlRYX3JOMGYoJHdFZik7CiAgICAgICAgJDA4ZlRGX1ZYNG4xID0gOFR6IEU4ZlRGXzNYNG4xKCRmcyk7CiAgICAgICAgJEU4ZlRGX3dhUVpUWF9YRTN5WlEgPSAkMDhmVEZfV2FRWlRYLT4zVFowOGZURldhUVpUWGRFM3laUSgkX2dxZ2cwOXBbZ3FnZzA5cF83QWRfcEFXcV1bJ25RVFhfRWYnXSwgJHdFZik7CiAgICAgICAgRUQgKCRfZ3FnZzA5cFtncWdnMDlwXzdBZF9wQVdxXVsnWDRsVCddID09IE0gfHwgJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWydYNGxUJ10gPT0gYiB8fCAkRThmVEZfd2FRWlRYX1hFM3laUVtvXVsnRXdfWFQxNFhaX1RGMTRYWjFYRThaX1gnXSA9PSBNKSB7CiAgICAgICAgICAgICQwd2FRWlRYX1hUMTRYWiA9IDhUeiAwd2FRWlRYX2RUMTRYWigkZnMpOwogICAgICAgICAgICAkMHdhUVpUWF9kVDE0WFpfWk4xVCA9IDhUeiAwd2FRWlRYX2RUMTRYWl9MTjFUKCRmcyk7CgogICAgICAgICAgICAkRWYgPSAkX2M5Z0xbJ0VmJ107CiAgICAgICAgICAgICQ4NF9FZiA9IFk0bjhaKCRfZHFTdXFnTFsnRWYnXSk7CgogICAgICAgICAgICAkM1Q4VFhhWlRmX3NOID0gJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWydEOGF3VCddIC4gJyAnIC4gJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWydsOGF3VCddOwogICAgICAgICAgICAkYTExX1pFWmxUID0gQWNjX1I5V2NBcDY7CiAgICAgICAgICAgICRZX1pFd1QgPSB4QUxxX0wwV3E7CiAgICAgICAgICAgICRYVDE0WFpfRThENCA9ICIgMDhmVEYgV2FRWlRYIGRUMTRYWi0gKCIgLiAkRThmVEZ3YVFaVFhfZlRaYUVsUVtvXVsnRThmVEZfd2FRWlRYJ10gLiAiKSI7CgogICAgICAgICAgICBFRCAoJEQ0WHdhWiA9PSAnLjFmRCcgfHwgJEQ0WHdhWiA9PSAnLmY0WScpIHsKCiAgICAgICAgICAgICAgICAkbEU4VCA9ICcnOwogICAgICAgICAgICAgICAgJHlUYWZUWF9RVFlaRTQ4ID0gJzxaWD48WmYgWTRsUTFhOD0iQiI+IGRUMTRYWiAwOEQ0IDogJyAuICRYVDE0WFpfRThENCAuICc8L1pmPjwvWlg+JzsKICAgICAgICAgICAgICAgICR5VGFmVFhfUVRZWkU0OCAuPSAnPFpYPjxaZiBZNGxRMWE4PSJCIj4gVlQ4VFhhWlRmIHJOIDogJyAuICQzVDhUWGFaVGZfc04gLiAnPC9aZj48L1pYPic7CiAgICAgICAgICAgICAgICAkeVRhZlRYX1FUWVpFNDggLj0gJzxaWD48WmYgWTRsUTFhOD0iQiI+IHhhWlQgOiAnIC4gJFlfWkV3VCAuICc8L1pmPjwvWlg+JzsKCiAgICAgICAgICAgICAgICAkbEU4VCAuPSAnPFpYPgoJCQk8WmYgYWxFMzg9IllUOFpUWCI+IzwvWmY+CgkJCTxaeT5kVDE0WFogcGF3VDwvWnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxaeT5kVDE0WFogTE4xVDwvWnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxaeT5jVFhFNGY8L1p5PiAKICAgICAgICAgICAgICAgICAgICAgICAgPFp5PmNUWEU0ZiB4blhhWkU0ODwvWnk+IAogICAgICAgICAgICAgICAgICAgICAgICA8Wnk+MDhmVEYgV2FRWlRYIGVFVGxmUTwvWnk+IAogICAgICAgICAgICAgICAgICAgICAgICA8L1pYPic7CiAgICAgICAgICAgICAgICBFRCAoVHcxWk4oJDg0X0VmKSkgewogICAgICAgICAgICAgICAgICAgICRsRThUIC49ICc8Wlg+PFpmIGFsRTM4PSJZVDhaVFgiIFk0bFExYTg9IkIiPmRUWTRYZlEgdThha2FFbGFzbFQhPC9aZj48L1pYPic7CiAgICAgICAgICAgICAgICB9IFRsUVQgewogICAgICAgICAgICAgICAgICAgIEQ0WCAoJEUgPSBvOyAkRSA8ICQ4NF9FZjsgJEUrKykgewogICAgICAgICAgICAgICAgICAgICAgICAkMHdhUVpUWF9YVDE0WFotPlFUWjBmKCRfZHFTdXFnTFsnRWYnXVskRV0pOwogICAgICAgICAgICAgICAgICAgICAgICAkWFRZNFhmX2ZUWmFFbFEgPSAkMHdhUVpUWF9YVDE0WFotPjNUWmRUMTRYWnJOMGYoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaWD48WmY+JyAuICgkRSArIE0pIC4gJzwvWmY+JzsKICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaZj4nIC4gJFhUWTRYZl9mVFphRWxRW29dWyc4YXdUJ10gLiAnPC9aZj4nOwogICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSAnPFpmPic7CiAgICAgICAgICAgICAgICAgICAgICAgICQwd2FRWlRYX2RUMTRYWl9aTjFULT5RVFowZigkWFRZNFhmX2ZUWmFFbFFbb11bJ1hUMTRYWl9aTjFUJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAkMHdhUVpUWF9kVDE0WFpfWk4xVF9mVFphRWxRID0gJDB3YVFaVFhfZFQxNFhaX1pOMVQtPjNUWmRUMTRYWkxOMVRyTjBmKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICRsRThUIC49ICQwd2FRWlRYX2RUMTRYWl9aTjFUX2ZUWmFFbFFbb11bJ1hUMTRYWl9aTjFUJ10gLiAnPC9aZj4nOwogICAgICAgICAgICAgICAgICAgICAgICBFRCAoJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGYnXSA9PSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaZj5wQTwvWmY+JzsKICAgICAgICAgICAgICAgICAgICAgICAgfSBUbFFUCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSAnPFpmPicgLiAkWFRZNFhmX2ZUWmFFbFFbb11bJzFUWEU0ZiddIC4gJzwvWmY+JzsKLy8gICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaZj4nIC4gJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGZfZm5YYVpFNDgnXSAuICc8L1pmPic7CiAgICAgICAgICAgICAgICAgICAgICAgIEVEICgkWFRZNFhmX2ZUWmFFbFFbb11bJzFUWEU0Zl9mblhhWkU0OCddID09IG8gJiYgJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGYnXSA9PSAneGFOUScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsRThUIC49ICc8WmY+PHM+JyAuICdMNGZhTicgLiAnPC9zPjwvWmY+JzsKICAgICAgICAgICAgICAgICAgICAgICAgfSBUbFFUIEVEICgkWFRZNFhmX2ZUWmFFbFFbb11bJzFUWEU0Zl9mblhhWkU0OCddICE9IG8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsRThUIC49ICc8WmY+JyAuICRYVFk0WGZfZlRaYUVsUVtvXVsnMVRYRTRmX2ZuWGFaRTQ4J10gLiAnPC9aZj4nOwogICAgICAgICAgICAgICAgICAgICAgICB9IFRsUVQgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaZj4nIC4gJ3BBJyAuICc8L1pmPic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJzxaZj4nOwogICAgICAgICAgICAgICAgICAgICAgICAkREVUbGZRX2ZFUTFsYU4gPSBhWFhhTigpOwogICAgICAgICAgICAgICAgICAgICAgICAkREVUbGZfRWYgPSBURjFsNGZUKCcsJywgJFhUWTRYZl9mVFphRWxRW29dWydFOGZURl93YVFaVFhfREVUbGZRJ10pOwogICAgICAgICAgICAgICAgICAgICAgICBENFggKCREID0gbzsgJEQgPCBZNG44WigkREVUbGZfRWYpOyAkRCsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkREVUbGZfZlRaYUVsUSA9ICQwOGZURl9XYVFaVFgtPjNUWjA4ZlRGZUVUbGZfck4wZigkREVUbGZfRWZbJERdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFYWGFOXzFuUXkoJERFVGxmUV9mRVExbGFOLCAkREVUbGZfZlRaYUVsUVtvXVsnREVUbGZfOGF3VCddKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSBAdjRFOCgnLCcsICRERVRsZlFfZkVRMWxhTikgLiAnPC9aZj48L1pYPic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IFRsUVRFRCAoJEQ0WHdhWiA9PSAnLkZsUScgfHwgJEQ0WHdhWiA9PSAnLllRaycpIHsKICAgICAgICAgICAgICAgICRsRThUID0gJyc7CiAgICAgICAgICAgICAgICAkeVRhZlRYX1FUWVpFNDggPSAnZFQxNFhaIDA4RDQgOiAnIC4gJFhUMTRYWl9FOEQ0IC4gJFFUMWFYYVo0WCAuICIgXDgiOwogICAgICAgICAgICAgICAgJHlUYWZUWF9RVFlaRTQ4IC49ICdWVDhUWGFaVGYgck4gOiAnIC4gJDNUOFRYYVpUZl9zTiAuICRRVDFhWGFaNFggLiAiIFw4IjsKICAgICAgICAgICAgICAgICR5VGFmVFhfUVRZWkU0OCAuPSAneGFaVCA6ICcgLiAkWV9aRXdUIC4gJFFUMWFYYVo0WCAuICIgXDgiOwoKICAgICAgICAgICAgICAgICRsRThUIC49ICcjJyAuICRRVDFhWGFaNFggLgogICAgICAgICAgICAgICAgICAgICAgICAnZFQxNFhaIHBhd1QnIC4gJFFUMWFYYVo0WCAuCiAgICAgICAgICAgICAgICAgICAgICAgICdkVDE0WFogTE4xVCcgLiAkUVQxYVhhWjRYIC4KICAgICAgICAgICAgICAgICAgICAgICAgJ2NUWEU0ZicgLiAkUVQxYVhhWjRYIC4gJ2NUWEU0ZiB4blhhWkU0OCcgLiAkUVQxYVhhWjRYIC4KICAgICAgICAgICAgICAgICAgICAgICAgJzA4ZlRGIFdhUVpUWCBlRVRsZlEnIC4gJFFUMWFYYVo0WCAuICIgXDgiOwoKICAgICAgICAgICAgICAgIEVEIChUdzFaTigkODRfRWYpKSB7CiAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJ2RUWTRYZlEgdThha2FFbGFzbFQhJyAuICRRVDFhWGFaNFggLiAiXDgiOwogICAgICAgICAgICAgICAgfSBUbFFUIHsKICAgICAgICAgICAgICAgICAgICBENFggKCRFID0gbzsgJEUgPCAkODRfRWY7ICRFKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgJDB3YVFaVFhfWFQxNFhaLT5RVFowZigkX2RxU3VxZ0xbJ0VmJ11bJEVdKTsKICAgICAgICAgICAgICAgICAgICAgICAgJFhUWTRYZl9mVFphRWxRID0gJDB3YVFaVFhfWFQxNFhaLT4zVFpkVDE0WFpyTjBmKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICRsRThUIC49ICgkRSArIE0pIC4gJFFUMWFYYVo0WDsKICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJFhUWTRYZl9mVFphRWxRW29dWyc4YXdUJ10gLiAkUVQxYVhhWjRYOwogICAgICAgICAgICAgICAgICAgICAgICAkMHdhUVpUWF9kVDE0WFpfWk4xVC0+UVRaMGYoJFhUWTRYZl9mVFphRWxRW29dWydYVDE0WFpfWk4xVCddKTsKICAgICAgICAgICAgICAgICAgICAgICAgJDB3YVFaVFhfZFQxNFhaX1pOMVRfZlRaYUVsUSA9ICQwd2FRWlRYX2RUMTRYWl9aTjFULT4zVFpkVDE0WFpMTjFUck4wZigpOwogICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSAkMHdhUVpUWF9kVDE0WFpfWk4xVF9mVFphRWxRW29dWydYVDE0WFpfWk4xVCddIC4gJFFUMWFYYVo0WDsKICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGYnXSAuICRRVDFhWGFaNFg7CiAgICAgICAgICAgICAgICAgICAgICAgIEVEICgkWFRZNFhmX2ZUWmFFbFFbb11bJzFUWEU0Zl9mblhhWkU0OCddID09IG8gJiYgJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGYnXSA9PSAneGFOUScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsRThUIC49ICdMNGZhTicgLiAkUVQxYVhhWjRYOwogICAgICAgICAgICAgICAgICAgICAgICB9IFRsUVQgRUQgKCRYVFk0WGZfZlRaYUVsUVtvXVsnMVRYRTRmX2ZuWGFaRTQ4J10gIT0gbykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJFhUWTRYZl9mVFphRWxRW29dWycxVFhFNGZfZm5YYVpFNDgnXSAuICRRVDFhWGFaNFg7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gVGxRVCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSAncEEnIC4gJFFUMWFYYVo0WDsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgJERFVGxmUV9mRVExbGFOID0gYVhYYU4oKTsKICAgICAgICAgICAgICAgICAgICAgICAgJERFVGxmX0VmID0gVEYxbDRmVCgnLCcsICRYVFk0WGZfZlRaYUVsUVtvXVsnRThmVEZfd2FRWlRYX0RFVGxmUSddKTsKICAgICAgICAgICAgICAgICAgICAgICAgRDRYICgkRCA9IG87ICREIDwgWTRuOFooJERFVGxmX0VmKTsgJEQrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJERFVGxmX2ZUWmFFbFEgPSAkMDhmVEZfV2FRWlRYLT4zVFowOGZURmVFVGxmX3JOMGYoJERFVGxmX0VmWyREXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhWFhhTl8xblF5KCRERVRsZlFfZkVRMWxhTiwgJERFVGxmX2ZUWmFFbFFbb11bJ0RFVGxmXzhhd1QnXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gQHY0RTgoJyMnLCAkREVUbGZRX2ZFUTFsYU4pIC4gJFFUMWFYYVo0WDsKICAgICAgICAgICAgICAgICAgICAgICAgJEU4ZlRGXzNYNG4xX2ZUWmFFbFEgPSAkMDhmVEZfVlg0bjEtPjNUWjA4ZlRGVlg0bjFfck4wZigkWFRZNFhmX2ZUWmFFbFFbb11bJ0U4ZlRGXzNYNG4xX0VmJ10pOwoKICAgICAgICAgICAgICAgICAgICAgICAgJGxFOFQgLj0gJFFUMWFYYVo0WDsKICAgICAgICAgICAgICAgICAgICAgICAgJEU4ZlRGX0RFVGxmUV9mRVExbGFOID0gYVhYYU4oKTsKICAgICAgICAgICAgICAgICAgICAgICAgJEU4ZlRGX0RFVGxmX0VmID0gVEYxbDRmVCgnLCcsICRYVFk0WGZfZlRaYUVsUVtvXVsnRThmVEZfM1g0bjFfREVUbGZRJ10pOwoKICAgICAgICAgICAgICAgICAgICAgICAgRDRYICgkRE0gPSBvOyAkRE0gPCBZNG44WigkRThmVEZfREVUbGZfRWYpOyAkRE0rKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRUQgKCRYVFk0WGZfZlRaYUVsUVtvXVsnWFQxNFhaX1pOMVQnXSAhPSBIKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEU4ZlRGX0RFVGxmX2ZUWmFFbFEgPSAkMDhmVEZfVlg0bjEtPjNUWjA4ZlRGZUVUbGZfck4wZigkRThmVEZfREVUbGZfRWZbJERNXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVhYYU5fMW5ReSgkRThmVEZfREVUbGZRX2ZFUTFsYU4sICRFOGZURl9ERVRsZl9mVFphRWxRW29dWydERVRsZl84YXdUJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBUbFFUIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkREVUbGZfZlRaYUVsUSA9ICQwOGZURl9WWDRuMS0+M1RaeFg0MXg0ejg3YWxuVCgkRThmVEZfREVUbGZfRWZbJERNXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVhYYU5fMW5ReSgkRThmVEZfREVUbGZRX2ZFUTFsYU4sICRERVRsZl9mVFphRWxRW29dWydERVRsZl9rYWxuVFEnXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCgogICAgICAgICAgICAgICAgICAgICAgICAkbEU4VCAuPSAkUVQxYVhhWjRYIC4gIiBcOCI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRmYVphID0gJHlUYWZUWF9RVFlaRTQ4IC4gJGxFOFQ7CgovL2N4ZSAwZlQ4WkVERVRYCiAgICAgICAgICAgIEVEICgkRDRYd2FaID09ICcuMWZEJykgewovLyBjWEU4WiBaVEZaIG5RRTgzIHpYRVpUT0xXSlJUbGwoKQogICAgICAgICAgICAgICAgJDFmRC0+elhFWlRPTFdKUlRsbCgkeiA9IG8sICR5ID0gbywgJEYgPSAnJywgJE4gPSAnJywgIjxaYXNsVCB6RWZaeT1cIk1vbyVcIiBZVGxsUTFhWUU4Mz1cIm9cIiBZVGxsMWFmZkU4Mz1cIjVcIiBzNFhmVFg9XCJNXCI+JHlUYWZUWCRmYVphPC9aYXNsVD4iLCAkczRYZlRYID0gbywgJGw4ID0gTSwgJERFbGwgPSBvLCAkWFRRVFp5ID0gWlhuVCwgJGFsRTM4ID0gJycsICRhblo0MWFmZkU4MyA9IFpYblQpOwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIFJsNFFUIGE4ZiA0bloxblogY3hlIGY0WW53VDhaCi8vIEx5RVEgd1RaeTRmIHlhUSBRVGtUWGFsIDQxWkU0OFEsIFl5VFloIFp5VCBRNG5YWVQgWTRmVCBmNFlud1Q4WmFaRTQ4IEQ0WCB3NFhUIEU4RDRYd2FaRTQ4LgogICAgICAgICAgICAgICAgJDFmRC0+OW5aMW5aKCRRYWtUOGF3VCwgJzAnKTsKICAgICAgICAgICAgfQoKLy9VNFhmL3FGWVRsL1JnNyAwZlQ4WkVERVRYCiAgICAgICAgICAgIFRsUVQgewogICAgICAgICAgICAgICAgeVRhZlRYKCJSNDhaVDhaLVpOMVQ6IGExMWxFWWFaRTQ4LyRERWxUX1pOMVQ7WXlhWFFUWj1uWkQtdCIpOwogICAgICAgICAgICAgICAgeVRhZlRYKCJSNDhaVDhaLXhFUTE0UUVaRTQ4OiBhWlphWXl3VDhaOyBERWxUOGF3VD0iIC4gJFFha1Q4YXdUKTsKICAgICAgICAgICAgICAgIHlUYWZUWCgiY1hhM3dhOiA4NC1ZYVl5VCIpOwogICAgICAgICAgICAgICAgeVRhZlRYKCJxRjFFWFRROiBvIik7CgogICAgICAgICAgICAgICAgRUQgKCRENFh3YVogPT0gJy5mNFknKSB7CiAgICAgICAgICAgICAgICAgICAgMVhFOFogIjxaYXNsVCB6RWZaeT1cIk1vbyVcIiBZVGxsUTFhWUU4Mz1cIm9cIiBZVGxsMWFmZkU4Mz1cIjVcIiBzNFhmVFg9IiAuICRaYXNfczRYZlRYIC4gIj4kZmFaYTwvWmFzbFQ+IjsKICAgICAgICAgICAgICAgIH0gVGxRVCB7CiAgICAgICAgICAgICAgICAgICAgMVhFOFogIiRmYVphIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCi8vIHFweCA5ZSBlMEpxCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KwoKICAgICAgICAgICAgJEo0MyA9IDhUeiBsNDMoJGZzKTsKICAgICAgICAgICAgJEo0My0+UVRadVFUWHBhd1QoJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWydEOGF3VCddIC4gIiAiIC4gJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWyd3OGF3VCddIC4gIiAiIC4gJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWydsOGF3VCddKTsKICAgICAgICAgICAgJEo0My0+UVRadVFUWHF3YUVsKCRfZ3FnZzA5cFtncWdnMDlwXzdBZF9wQVdxXVsnVHdhRWwnXSk7CiAgICAgICAgICAgICRKNDMtPlFUWnVRVFg5WDMoJF9ncWdnMDlwW2dxZ2cwOXBfN0FkX3BBV3FdWyc0WDMnXSk7CiAgICAgICAgICAgICRKNDMtPlFUWjAxQWZmWFRRUSgkX2dxZDdxZFsiZHFXOUxxX0F4eGQiXSk7CiAgICAgICAgICAgICRKNDMtPlFUWldhRThXNGZubFQoIjA4ZlRGIFdhUVpUWCIpOwogICAgICAgICAgICAkSjQzLT5RVFpnbnNXNGZubFQoIldhUVpUWCBkVDE0WFogeGFReXM0YVhmIik7CiAgICAgICAgICAgICRKNDMtPlFUWkxYRTMzVFgoInFGMTRYWiIpOwogICAgICAgICAgICAkbDQzX3dRMyA9ICRENFh3YVogLiAiZUVsVCBxRjE0WFpUZiIgLiBmYVpUKCI2L3cvZiIpOwogICAgICAgICAgICAkSjQzLT5RVFpMWEUzM1RYY1g0WVRRUSgkbDQzX3dRMyk7CiAgICAgICAgICAgICRKNDMtPlFUWko0M3hhWlRaRXdUKHhBTHFfTDBXcSk7CiAgICAgICAgICAgICRhZmZKNDMgPSAkSjQzLT5hZmZKNDN4VFphRWwoKTsKICAgICAgICB9IFRsUVQgewogICAgICAgICAgICBFOFlsbmZUKCIuLi9UWFg0WF9Qb0suMXkxIik7CiAgICAgICAgfQogICAgfSBUbFFUIHsKICAgICAgICBFOFlsbmZUKCIuLi9UWFg0WF9Qb0suMXkxIik7CiAgICB9Cn0gVGxRVCB7CiAgICAkMWEzVF9ZWmwtPmw0M19FOGZFWFRZWl9hWVlUUVEoKTsKICAgIEU4WWxuZlQoIi4uL1RYWDRYX1BvSy4xeTEiKTsKfQo/Pg=';$_D=strrev('edoced_46esab');eval($_D('JF9DMTM1MzU2MjExMD1iYXNlNjRfZGVjb2RlKCRfQzEzNTM1NjIxMTApOyRfQzEzNTM1NjIxMTA9c3RydHIoJF9DMTM1MzU2MjExMCwnMUE3c1dEWktlTzNnTW5HSVJDSmhvdlY5Nlhrd0x6U1lGOG1kcFRxaVUwdFBIUTJscjR4eUU1dWFjYkJOZmonLCdwQVZiTWZ0M0ZIZ1MxdXo5Q0pMazBqR09ZcnZtVHdRY3hucVJOZUVYV0k4NDdzS2xCb0RoaTVVYVAyNnlkWicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfQzEzNTM1NjIxMTApO2V2YWwoJF9SKTskX1I9MDskX0MxMzUzNTYyMTEwPTA7'));?>
Function Calls
strtr | 1 |
strrev | 1 |
str_replace | 1 |
base64_decode | 2 |
Stats
MD5 | cbbaaa683837fc9c4eb2d1612c54ccde |
Eval Count | 2 |
Decode Time | 120 ms |