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='Pz48P3oyegoKNEYgKCFGOTdqeTRCN19SWTRDeUMoIl9fZjl5QlBCZmci..
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'])) {
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$Data_Table = new data_table($db);
$index_master_id = $_REQUEST['index_master_id'];
$index_master_rec_value = $_REQUEST['index_master_value'];
$pid = $_REQUEST['pid'];
//print_r($index_fields);
$IndexMaster = new index_master($db);
$aColumns = array('id', 'id');
$fields_arr = array();
$fields_id = array();
$index_query_all = "";
//echo $index_query_all;
//print_r($aColumns);
//$fields_join = join(',', $fields_arr);
/* * * * * * * * Easy set variables * * * * * * * * */
//print_r($aColumns);
$rights = new doc_rights($db);
$Data_Table->set_aColumns($aColumns);
/* Indexed column (used for fast and accurate table cardinality) */
$sIndexColumn = "id";
$Data_Table->set_sIndexColumn($sIndexColumn);
/* DB table to use */
$sTable = "master_group_project_doc_link";
$Data_Table->set_sTable($sTable);
$Data_Table->set_sIndexColumn($sIndexColumn);
$Data_Table->set_sEcho($_REQUEST['sEcho']);
$Data_Table->set_iDisplayStart($_REQUEST['iDisplayStart']);
$Data_Table->set_iDisplayLength($_REQUEST['iDisplayLength']);
$Data_Table->set_iSortCol_0($_REQUEST['iSortCol_0']);
$Data_Table->set_iSortingCols($_REQUEST['iSortingCols']);
//* * * * * * * * * Ordering * * * * * * *
$sOrder = "";
if (isset($_REQUEST['iSortCol_0'])) {
$sOrder = "ORDER BY ";
for ($i = 0; $i < intval($_REQUEST['iSortingCols']); $i++) {
if ($_REQUEST['bSortable_' . intval($_REQUEST['iSortCol_' . $i])] == "true") {
$sOrder .= $aColumns[intval($_REQUEST['iSortCol_' . $i])] . " " . ($_REQUEST['sSortDir_' . $i] === 'asc' ? 'asc' : 'desc') . ", ";
}
}
$sOrder = substr_replace($sOrder, "", -2);
if ($sOrder == "ORDER BY") {
$sOrder = "";
}
}
$Data_Table->set_sOrder($sOrder);
$sWhere = "";
/* Individual column filtering */
for ($i = 0; $i < count($aColumns); $i++) {
if (isset($_REQUEST['bSearchable_' . $i]) && $_REQUEST['bSearchable_' . $i] == "true" && $_REQUEST['sSearch_' . $i] != '') {
if ($sWhere == "") {
$sWhere = "WHERE ";
} else {
$sWhere .= " AND ";
}
$sWhere .= $aColumns[$i] . " LIKE '%" . $_REQUEST['sSearch_' . $i] . "%' ";
}
}
$Data_Table->set_sWhere($sWhere);
if (empty($sOrder) || $sOrder == '') {
$sOrder = 'ORDER BY m.id DESC';
$Data_Table->set_sOrder($sOrder);
}
if (isset($Data_Table->iDisplayStart) && $Data_Table->iDisplayLength != '-1') {
$Data_Table->sLimit = "LIMIT " . intval($Data_Table->iDisplayStart) . ", " . intval($Data_Table->iDisplayLength);
}
$id_array = array();
$Category = new category($db);
$category_detail = $Category->getUser_AccessCategoriesByUserId($_SESSION[SESSION_VAR_NAME]['user_id']);
//echo $Data_Table->DataTable_Output();
$IndexMaster->setIndexMasterId($index_master_id);
//$IndexMaster->setFieldId();
$join_per = '';
if (!($_SESSION[SESSION_VAR_NAME]['role'] == 1 || $_SESSION[SESSION_VAR_NAME]['role'] == 2)) {
if (APP_DB == "MYSQL") {
$join_per .= " LEFT JOIN doc_set_dropdown_values dsv on dsv.id = p.doc_type LEFT JOIN doc_page_tag dpt on dpt.doc_id = p.id
JOIN doc_set_permissions as ds ON ds.user_group = '" . $_SESSION[SESSION_VAR_NAME]['role'] . "' AND IF(p.doc_type = 0, ds.doc_set_dropdown_value_id = dpt.index_field_value,ds.doc_set_dropdown_value_id = p.doc_type) AND IF(ds.view_r = 1, 1, IF(ds.privateview_r = 1, p.user_id = '" . $_SESSION[SESSION_VAR_NAME]['user_id'] . "', 0)) ";
} else {
$join_per .= " LEFT JOIN doc_set_dropdown_values dsv on dsv.id = p.doc_type LEFT JOIN doc_page_tag dpt on dpt.doc_id = p.id
JOIN doc_set_permissions as ds ON ds.user_group = '" . $_SESSION[SESSION_VAR_NAME]['role'] . "' AND (ds.doc_set_dropdown_value_id = dpt.index_field_value or ds.doc_set_dropdown_value_id = p.doc_type) AND iIF(ds.view_r = 1, 1, iIF(ds.privateview_r = 1,(select top 1 [user].id from [user] where [user].id= '" . $_SESSION[SESSION_VAR_NAME]['user_id'] . "'), 0))<>'' ";
}
} else {
$join_per .= " LEFT JOIN doc_set_dropdown_values dsv on dsv.id = p.doc_type LEFT JOIN doc_page_tag dpt on dpt.doc_id = p.id";
}
if ($category_detail[0]['cate'] == '') {
$category_detail[0]['cate'] = '0';
}
//print_r($category_detail);
//die;
$rResult = $IndexMaster->getDocDetailsByIndexMasterRecord($index_master_rec_value, $index_master_id, $Data_Table->sOrder, $Data_Table->sLimit, $category_detail, $join_per);
if (APP_DB == "MSSQL") {
$rResult1 = $IndexMaster->getDocDetailsByIndexMasterRecord_all($index_master_rec_value, $index_master_id, $Data_Table->sOrder, $Data_Table->sLimit, $category_detail, $join_per);
}//print_r($rResult);
$rResult = array_map("unserialize", array_unique(array_map("serialize", $rResult)));
$Data_Table->rResult = $rResult;
//hjj
//$count=count($IndexMaster);
if (APP_DB == "MSSQL") {
$sQuery = "SELECT FOUND_ROWS() as FOUND_ROWS";
$rResultFilterTotal = $Data_Table->DataTable_Query($sQuery);
$Data_Table->iFilteredTotal = $rResult1[0]['count_1'];
} else {
$sQuery = "SELECT FOUND_ROWS() as FOUND_ROWS";
$rResultFilterTotal = $Data_Table->DataTable_Query($sQuery);
$Data_Table->iFilteredTotal = $rResultFilterTotal[0]['FOUND_ROWS'];
}
$output = array(
"sEcho" => intval($Data_Table->sEcho),
"iTotalRecords" => $Data_Table->DataTable_iTotal(),
"iTotalDisplayRecords" => $Data_Table->iFilteredTotal,
"aaData" => array()
);
$File = new file_manager($db);
//$Data_Table->rResult = $rResult;
$Category = new category($db);
for ($x = 0; $x < count($Data_Table->rResult); $x++) {
$doc_id = $Data_Table->rResult[$x]['doc_id'];
$tag = '';
$row = array();
$doc_details = $File->getDoc_ByID($doc_id);
$record_details = $doc_details;
// echo '<pre>';print_r($doc_details);
$row[] = $doc_details[0]['doc_id'];
if (!$_SESSION[SESSION_VAR_NAME]['empdash']['dash_flag']) {
$link = '<a href="index.php?rq=' . encrypt_url("dms/dms_preview_user.php", APP_ENCRYPTION_SALT) . '&pid=' . encrypt_url($pid, APP_ENCRYPTION_SALT) . '&id=' . encrypt_url($doc_details[0]['id'], APP_ENCRYPTION_SALT) . '&itag=' . encrypt_url('imodule', APP_ENCRYPTION_SALT) . '" title="Preview" class="table_tool_link" target="_blank">' . $doc_details[0]['new_title'] . '</a> ';
} else {
$link = '<a href="index.php?rq=' . encrypt_url("employee/dms_preview_user.php", APP_ENCRYPTION_SALT) . '&pid=' . encrypt_url($pid, APP_ENCRYPTION_SALT) . '&id=' . encrypt_url($doc_details[0]['id'], APP_ENCRYPTION_SALT) . '&itag=' . encrypt_url('imodule', APP_ENCRYPTION_SALT) . '" title="Preview" class="table_tool_link" target= "_blank" >' . $doc_details[0]['new_title'] . '</a>';
}
if ($doc_details[0]['doc_delete'] == 1) {
$row[] = $link . ' <span class="badge badge-warning">Archived</span>';
} else {
$row[] = $link;
}
// $row[]='';
$doc_set = new doc_set($db);
$doc_set_value = $doc_set->get_dropdown_field_value_by_id($doc_details[0]['doc_type']);
if (empty($doc_set_value)) {
$page_tag = new doc_rights($db);
$tag_details = $page_tag->getPageTags($record_details[0]['id']);
if (!empty($tag_details)) {
for ($t = 0; $t < count($tag_details); $t++) {
$doc_per_view_flag = false;
$doc_per_edit_flag = false;
$doc_per_delete_flag = false;
$doc_per_download_flag = false;
$Doc_Set_Obj = new doc_set($db);
$doc_set_fields_arr = $Doc_Set_Obj->get_user_dropdpown_rights_by_dropdownValId($_SESSION[SESSION_VAR_NAME]['role'], $tag_details[$t]['index_field_value']);
if (!empty($doc_set_fields_arr)) {
if ($doc_set_fields_arr[0]['view_r']) {
$doc_per_view_flag = true;
}
}
if ($doc_per_view_flag || ($_SESSION[SESSION_VAR_NAME]['role'] == 1 || $_SESSION[SESSION_VAR_NAME]['role'] == 2)) {
$pages = @explode(",", $tag_details[$t]['page_no']);
$start = 0;
$end = 0;
if (count($pages) == 0) {
} else if (count($pages) == 1) {
$start = $pages[0];
$end = $pages[0];
} else {
$start = $pages[0];
$end = $pages[count($pages) - 1];
}
$dir = rand(11111, 9999999999);
if ($tag_details[$t]['index_field_value'] != '') {
//$val_t = $index->getDropDownValue($tag_details[$t]['index_field_value']);
$val_t = $doc_set->get_dropdown_field_value_by_id($tag_details[$t]['index_field_value']);
//$val_t = $details[0]['dropdown_name'] . '.pdf';
if (empty($latest_page_tag_search)) {
$tag .= "<br><a href='index.php?rq=" . encrypt_url('dms/tag_preview.php', APP_ENCRYPTION_SALT) . "&dir=" . $dir . "&id=" . encrypt_url($record_details[0]['id'], APP_ENCRYPTION_SALT) . "&pid=" . encrypt_url($pid, APP_ENCRYPTION_SALT) . "&page_tag_id1=" . $tag_details[$t]['id'] . "' target='_blank'><font color ='green'>" . $val_t[0]['dropdown_name'] . ' ' . '(page No : ' . $start . "-" . $end . ')' . "</font></a>";
} else {
if (in_array($tag_details[$t]['index_field_id'] . '__' . $tag_details[$t]['index_field_value'], $latest_page_tag_search)) {
$tag .= "<br><a href='index.php?rq=" . encrypt_url('dms/tag_preview.php', APP_ENCRYPTION_SALT) . "&dir=" . $dir . "&id=" . encrypt_url($record_details[0]['id'], APP_ENCRYPTION_SALT) . "&pid=" . encrypt_url($pid, APP_ENCRYPTION_SALT) . "&page_tag_id1=" . $tag_details[$t]['id'] . "' target='_blank'><font color ='green'>" . $val_t[0]['dropdown_name'] . ' ' . '(page No : ' . $start . "-" . $end . ')' . "</font></a>";
}
}
} else {
$tag .= "<br><a href='index.php?rq=" . encrypt_url('dms/tag_preview.php', APP_ENCRYPTION_SALT) . "&dir=" . $dir . "&id=" . encrypt_url($record_details[0]['id'], APP_ENCRYPTION_SALT) . "&pid=" . encrypt_url($pid, APP_ENCRYPTION_SALT) . "&page_tag_id1=" . $tag_details[$t]['id'] . "' target='_blank'><font color ='green'>" . $tag_details[$t]['tags'] . ' ' . '(page No : ' . $start . "-" . $end . ')' . "</font></a>";
}
}
}
}
$row[] = $tag;
} else {
$doc_desc = '';
$doc_desc = '<span title="' . trim($doc_set_value[0]['description']) . '">' . $doc_set_value[0]['dropdown_name'];
if ($doc_set_value[0]['description'] != '') {
$doc_desc .= ' <i class="icon-info-sign"></i>';
}
$doc_desc .= '</span>';
$row[] = $doc_desc;
}
$sel_parent_category_details = $Category->getCategoryByID($doc_details[0]['category_id']);
/* * *************************** */
$stack = array();
$parent = $sel_parent_category_details[0]['parent_id'];
array_push($stack, $sel_parent_category_details[0]['parent_id']);
while ($parent != 0) {
$category_details = $Category->getCategoryByID($parent);
$parent = $category_details[0]['parent_id'];
array_push($stack, $parent);
}
$stack = array_reverse($stack);
array_shift($stack);
array_push($stack, $doc_details[0]['category_id']);
$category_path = array();
for ($p = 1; $p < count($stack); $p++) {
$parent_category_details_1 = $Category->getCategoryByID($stack[$p]);
array_push($category_path, $parent_category_details_1[0]['category']);
}
$row[] = @join(' > ', $category_path);
ob_start();
include '../employee/data_actions_employee.php';
//echo 'action';
$action_data = ob_get_contents();
ob_end_clean();
$row[] = $action_data;
$output['aaData'][] = $row;
}
//print_r($row);
//echo count($Data_Table->rResult);
//print_r($output['aaData']);
echo json_encode($output);
//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
} else {
echo "You are not authorised to view";
}
} else {
$page_ctl->log_indirect_access();
include("../error_403.php");
}
?>
Did this file decode correctly?
Original Code
<?php $_F=__FILE__;$_C1353562110='Pz48P3oyegoKNEYgKCFGOTdqeTRCN19SWTRDeUMoIl9fZjl5QlBCZmciKSkgewogICAgNDdqUDlnUigiLi4vUDRUL2Z6el95QnouejJ6Iik7Cn0KJHpmNlJfanlQID0gN1JKIHpmNlJfZmpqUkNDX2p5UCgkZ1QpOwo0RiAoJHpmNlJfanlQLT4yZkNlUlEwNENDNEI3KCdNdWgnLCAkX3ZPdnZhU29bdk92dmFTb19aQUhfb0FzT11bJ1FCUFInXSkpIHsKICAgIDRGICg0Q0NSeSgkX3ZPSFpPSFsnMUdHZV9LX0hPbm1PdkdPRV94YUcxJ10pICYmICFSMHp5cCgkX3ZPSFpPSFsnMUdHZV9LX0hPbm1PdkdPRV94YUcxJ10pICYmIEN5UXlCUEJKUlEoJF92T0haT0hbJzFHR2VfS19IT25tT3ZHT0VfeGFHMSddKSA9PSAnWTBQMnl5elFSTjlSQ3knKSB7CgogICAgICAgICRFZnlmX0dmVFBSID0gN1JKIGdmeWZfeWZUUFIoJGdUKTsKICAgICAgICAkNDdnUllfMGZDeVJRXzRnID0gJF9IT25tT3ZHWyc0N2dSWV8wZkN5UlFfNGcnXTsKICAgICAgICAkNDdnUllfMGZDeVJRX1FSal81ZlA5UiA9ICRfSE9ubU92R1snNDdnUllfMGZDeVJRXzVmUDlSJ107CiAgICAgICAgJHo0ZyA9ICRfSE9ubU92R1snejRnJ107Ci8velE0N3lfUSgkNDdnUllfRjRSUGdDKTsKICAgICAgICAkYTdnUllzZkN5UlEgPSA3UkogNDdnUllfMGZDeVJRKCRnVCk7CiAgICAgICAgJGZxQlA5MDdDID0gZlFRZnAoJzRnJywgJzRnJyk7CiAgICAgICAgJEY0UlBnQ19mUVEgPSBmUVFmcCgpOwogICAgICAgICRGNFJQZ0NfNGcgPSBmUVFmcCgpOwoKICAgICAgICAkNDdnUllfTjlSUXBfZlBQID0gIiI7CgoKLy9SajJCICQ0N2dSWV9OOVJRcF9mUFA7Ci8velE0N3lfUSgkZnFCUDkwN0MpOwovLyRGNFJQZ0NfVkI0NyA9IFZCNDcoJywnLCAkRjRSUGdDX2ZRUSk7CgogICAgICAgIC8qICAgICAgICAgKiAqICogKiAqICogKiAgT2ZDcCBDUnkgNWZRNGZUUFJDICAgKiAqICogKiAqICogKiAqICovCgovL3pRNDd5X1EoJGZxQlA5MDdDKTsKICAgICAgICAkUTQ2MnlDID0gN1JKIGdCal9RNDYyeUMoJGdUKTsKICAgICAgICAkRWZ5Zl9HZlRQUi0+Q1J5X2ZxQlA5MDdDKCRmcUJQOTA3Qyk7CgogICAgICAgIC8qIGE3Z1JZUmcgakJQOTA3ICg5Q1JnIEZCUSBGZkN5IGY3ZyBmamo5UWZ5UiB5ZlRQUiBqZlFnNDdmUDR5cCkgKi8KCiAgICAgICAgJENhN2dSWXFCUDkwNyA9ICI0ZyI7CiAgICAgICAgJEVmeWZfR2ZUUFItPkNSeV9DYTdnUllxQlA5MDcoJENhN2dSWXFCUDkwNyk7CgogICAgICAgIC8qIEVkIHlmVFBSIHlCIDlDUiAqLwogICAgICAgICRDR2ZUUFIgPSAiMGZDeVJRXzZRQjl6X3pRQlZSanlfZ0JqX1A0N0kiOwogICAgICAgICRFZnlmX0dmVFBSLT5DUnlfQ0dmVFBSKCRDR2ZUUFIpOwogICAgICAgICRFZnlmX0dmVFBSLT5DUnlfQ2E3Z1JZcUJQOTA3KCRDYTdnUllxQlA5MDcpOwoKICAgICAgICAkRWZ5Zl9HZlRQUi0+Q1J5X0NPajJCKCRfSE9ubU92R1snQ09qMkInXSk7CiAgICAgICAgJEVmeWZfR2ZUUFItPkNSeV80RTRDelBmcHZ5ZlF5KCRfSE9ubU92R1snNEU0Q3pQZnB2eWZReSddKTsKICAgICAgICAkRWZ5Zl9HZlRQUi0+Q1J5XzRFNEN6UGZwTFI3NnkyKCRfSE9ubU92R1snNEU0Q3pQZnBMUjc2eTInXSk7CgogICAgICAgICRFZnlmX0dmVFBSLT5DUnlfNHZCUXlxQlBfOCgkX0hPbm1PdkdbJzR2QlF5cUJQXzgnXSk7CiAgICAgICAgJEVmeWZfR2ZUUFItPkNSeV80dkJReTQ3NnFCUEMoJF9IT25tT3ZHWyc0dkJReTQ3NnFCUEMnXSk7CgoKLy8qICogKiAqICogKiAqICogKiBTUWdSUTQ3NiAqICogKiAqICogKiAqIAogICAgICAgICRDU1FnUlEgPSAiIjsKCiAgICAgICAgNEYgKDRDQ1J5KCRfSE9ubU92R1snNHZCUXlxQlBfOCddKSkgewogICAgICAgICAgICAkQ1NRZ1JRID0gIlNIRU9IIGR0ICAiOwogICAgICAgICAgICBGQlEgKCQ0ID0gODsgJDQgPCA0N3k1ZlAoJF9IT25tT3ZHWyc0dkJReTQ3NnFCUEMnXSk7ICQ0KyspIHsKCiAgICAgICAgICAgICAgICA0RiAoJF9IT25tT3ZHWydUdkJReWZUUFJfJyAuIDQ3eTVmUCgkX0hPbm1PdkdbJzR2QlF5cUJQXycgLiAkNF0pXSA9PSAieVE5UiIpIHsKICAgICAgICAgICAgICAgICAgICAkQ1NRZ1JRIC49ICRmcUJQOTA3Q1s0N3k1ZlAoJF9IT25tT3ZHWyc0dkJReXFCUF8nIC4gJDRdKV0gLiAiICIgLiAoJF9IT25tT3ZHWydDdkJReUU0UV8nIC4gJDRdID09PSAnZkNqJyA/ICdmQ2onIDogJ2dSQ2onKSAuICIsICI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRDU1FnUlEgPSBDOVRDeVFfUVJ6UGZqUigkQ1NRZ1JRLCAiIiwgLVUpOwoKICAgICAgICAgICAgNEYgKCRDU1FnUlEgPT0gIlNIRU9IIGR0IikgewogICAgICAgICAgICAgICAgJENTUWdSUSA9ICIiOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRFZnlmX0dmVFBSLT5DUnlfQ1NRZ1JRKCRDU1FnUlEpOwoKCiAgICAgICAgJEN4MlJRUiA9ICIiOwoKCiAgICAgICAgLyogYTdnNDU0ZzlmUCBqQlA5MDcgRjRQeVJRNDc2ICovCiAgICAgICAgRkJRICgkNCA9IDg7ICQ0IDwgakI5N3koJGZxQlA5MDdDKTsgJDQrKykgewoKICAgICAgICAgICAgNEYgKDRDQ1J5KCRfSE9ubU92R1snVHZSZlFqMmZUUFJfJyAuICQ0XSkgJiYgJF9IT25tT3ZHWydUdlJmUWoyZlRQUl8nIC4gJDRdID09ICJ5UTlSIiAmJiAkX0hPbm1PdkdbJ0N2UmZRajJfJyAuICQ0XSAhPSAnJykgewogICAgICAgICAgICAgICAgNEYgKCRDeDJSUVIgPT0gIiIpIHsKICAgICAgICAgICAgICAgICAgICAkQ3gyUlFSID0gIngxT0hPICI7CiAgICAgICAgICAgICAgICB9IFJQQ1IgewogICAgICAgICAgICAgICAgICAgICRDeDJSUVIgLj0gIiBBb0UgIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRDeDJSUVIgLj0gJGZxQlA5MDdDWyQ0XSAuICIgTGFXTyAnJSIgLiAkX0hPbm1PdkdbJ0N2UmZRajJfJyAuICQ0XSAuICIlJyAiOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkRWZ5Zl9HZlRQUi0+Q1J5X0N4MlJRUigkQ3gyUlFSKTsKCgogICAgICAgIDRGIChSMHp5cCgkQ1NRZ1JRKSB8fCAkQ1NRZ1JRID09ICcnKSB7CiAgICAgICAgICAgICRDU1FnUlEgPSAnU0hFT0ggZHQgMC40ZyBFT3ZxJzsKICAgICAgICAgICAgJEVmeWZfR2ZUUFItPkNSeV9DU1FnUlEoJENTUWdSUSk7CiAgICAgICAgfQoKICAgICAgICA0RiAoNENDUnkoJEVmeWZfR2ZUUFItPjRFNEN6UGZwdnlmUXkpICYmICRFZnlmX0dmVFBSLT40RTRDelBmcExSNzZ5MiAhPSAnLWInKSB7CiAgICAgICAgICAgICRFZnlmX0dmVFBSLT5DTDQwNHkgPSAiTGFzYUcgIiAuIDQ3eTVmUCgkRWZ5Zl9HZlRQUi0+NEU0Q3pQZnB2eWZReSkgLiAiLCAiIC4gNDd5NWZQKCRFZnlmX0dmVFBSLT40RTRDelBmcExSNzZ5Mik7CiAgICAgICAgfQogICAgICAgICQ0Z19mUVFmcCA9IGZRUWZwKCk7CgogICAgICAgICRxZnlSNkJRcCA9IDdSSiBqZnlSNkJRcCgkZ1QpOwogICAgICAgICRqZnlSNkJRcF9nUnlmNFAgPSAkcWZ5UjZCUXAtPjZSeW1DUlFfQWpqUkNDcWZ5UjZCUTRSQ2RwbUNSUWFnKCRfdk92dmFTb1t2T3Z2YVNvX1pBSF9vQXNPXVsnOUNSUV80ZyddKTsKCi8vUmoyQiAkRWZ5Zl9HZlRQUi0+RWZ5ZkdmVFBSX1M5eXo5eSgpOwogICAgICAgICRhN2dSWXNmQ3lSUS0+Q1J5YTdnUllzZkN5UlFhZygkNDdnUllfMGZDeVJRXzRnKTsKLy8kYTdnUllzZkN5UlEtPkNSeXI0UlBnYWcoKTsKICAgICAgICAkVkI0N196UlEgPSAnJzsKICAgICAgICA0RiAoISgkX3ZPdnZhU29bdk92dmFTb19aQUhfb0FzT11bJ1FCUFInXSA9PSBiIHx8ICRfdk92dmFTb1t2T3Z2YVNvX1pBSF9vQXNPXVsnUUJQUiddID09IFUpKSB7CiAgICAgICAgICAgIDRGIChBZWVfRWQgPT0gInN0dm5MIikgewogICAgICAgICAgICAgICAgJFZCNDdfelJRIC49ICIgTE9yRyBsU2FvIGdCal9DUnlfZ1FCemdCSjdfNWZQOVJDIGdDNSBCNyBnQzUuNGcgPSB6LmdCal95cHpSIExPckcgbFNhbyBnQmpfemY2Ul95ZjYgZ3p5IEI3IGd6eS5nQmpfNGcgPSB6LjRnCiAgICAgICAgICAgIGxTYW8gZ0JqX0NSeV96UlEwNENDNEI3QyBmQyBnQyBTbyBnQy45Q1JRXzZRQjl6ID0gJyIgLiAkX3ZPdnZhU29bdk92dmFTb19aQUhfb0FzT11bJ1FCUFInXSAuICInIEFvRSAgIGFyKHouZ0JqX3lwelIgPSA4LCBnQy5nQmpfQ1J5X2dRQnpnQko3XzVmUDlSXzRnID0gZ3p5LjQ3Z1JZX0Y0UlBnXzVmUDlSLGdDLmdCal9DUnlfZ1FCemdCSjdfNWZQOVJfNGcgPSB6LmdCal95cHpSKSAgQW9FIGFyKGdDLjU0UkpfUSA9IGIsIGIsIGFyKGdDLnpRNDVmeVI1NFJKX1EgPSBiLCB6LjlDUlFfNGcgPSAnIiAuICRfdk92dmFTb1t2T3Z2YVNvX1pBSF9vQXNPXVsnOUNSUV80ZyddIC4gIicsIDgpKSAiOwogICAgICAgICAgICB9IFJQQ1IgewogICAgICAgICAgICAgICAgJFZCNDdfelJRIC49ICIgTE9yRyBsU2FvIGdCal9DUnlfZ1FCemdCSjdfNWZQOVJDIGdDNSBCNyBnQzUuNGcgPSB6LmdCal95cHpSIExPckcgbFNhbyBnQmpfemY2Ul95ZjYgZ3p5IEI3IGd6eS5nQmpfNGcgPSB6LjRnCiAgICAgICAgICAgIGxTYW8gZ0JqX0NSeV96UlEwNENDNEI3QyBmQyBnQyBTbyBnQy45Q1JRXzZRQjl6ID0gJyIgLiAkX3ZPdnZhU29bdk92dmFTb19aQUhfb0FzT11bJ1FCUFInXSAuICInIEFvRSAgKGdDLmdCal9DUnlfZ1FCemdCSjdfNWZQOVJfNGcgPSBnenkuNDdnUllfRjRSUGdfNWZQOVIgQlEgZ0MuZ0JqX0NSeV9nUUJ6Z0JKN181ZlA5Ul80ZyA9ICB6LmdCal95cHpSKSAgIEFvRSA0YXIoZ0MuNTRSSl9RID0gYiwgYiwgNGFyKGdDLnpRNDVmeVI1NFJKX1EgPSBiLChDUlBSankgeUJ6IGIgWzlDUlFdLjRnIEZRQjAgWzlDUlFdIEoyUlFSIFs5Q1JRXS40Zz0gJyIgLiAkX3ZPdnZhU29bdk92dmFTb19aQUhfb0FzT11bJzlDUlFfNGcnXSAuICInKSwgOCkpPD4nJyAiOwogICAgICAgICAgICB9CiAgICAgICAgfSBSUENSIHsKICAgICAgICAgICAgJFZCNDdfelJRIC49ICIgTE9yRyBsU2FvIGdCal9DUnlfZ1FCemdCSjdfNWZQOVJDIGdDNSBCNyBnQzUuNGcgPSB6LmdCal95cHpSIExPckcgbFNhbyBnQmpfemY2Ul95ZjYgZ3p5IEI3IGd6eS5nQmpfNGcgPSB6LjRnIjsKICAgICAgICB9CiAgICAgICAgNEYgKCRqZnlSNkJRcF9nUnlmNFBbOF1bJ2pmeVInXSA9PSAnJykgewogICAgICAgICAgICAkamZ5UjZCUXBfZ1J5ZjRQWzhdWydqZnlSJ10gPSAnOCc7CiAgICAgICAgfQogICAgICAgIC8velE0N3lfUSgkamZ5UjZCUXBfZ1J5ZjRQKTsKICAgICAgICAvL2c0UjsKICAgICAgICAkUUhSQzlQeSA9ICRhN2dSWXNmQ3lSUS0+NlJ5RUJqRVJ5ZjRQQ2RwYTdnUllzZkN5UlFIUmpCUWcoJDQ3Z1JZXzBmQ3lSUV9RUmpfNWZQOVIsICQ0N2dSWV8wZkN5UlFfNGcsICRFZnlmX0dmVFBSLT5DU1FnUlEsICRFZnlmX0dmVFBSLT5DTDQwNHksICRqZnlSNkJRcF9nUnlmNFAsICRWQjQ3X3pSUSk7CiAgICAgICAgNEYgKEFlZV9FZCA9PSAic3Z2bkwiKSB7CiAgICAgICAgICAgICRRSFJDOVB5YiA9ICRhN2dSWXNmQ3lSUS0+NlJ5RUJqRVJ5ZjRQQ2RwYTdnUllzZkN5UlFIUmpCUWdfZlBQKCQ0N2dSWV8wZkN5UlFfUVJqXzVmUDlSLCAkNDdnUllfMGZDeVJRXzRnLCAkRWZ5Zl9HZlRQUi0+Q1NRZ1JRLCAkRWZ5Zl9HZlRQUi0+Q0w0MDR5LCAkamZ5UjZCUXBfZ1J5ZjRQLCAkVkI0N196UlEpOwogICAgICAgIH0vL3pRNDd5X1EoJFFIUkM5UHkpOwoKCgogICAgICAgICRRSFJDOVB5ID0gZlFRZnBfMGZ6KCI5N0NSUTRmUDRrUiIsIGZRUWZwXzk3NE45UihmUVFmcF8wZnooIkNSUTRmUDRrUiIsICRRSFJDOVB5KSkpOwogICAgICAgICRFZnlmX0dmVFBSLT5RSFJDOVB5ID0gJFFIUkM5UHk7Ci8vMlZWCi8vJGpCOTd5PWpCOTd5KCRhN2dSWXNmQ3lSUSk7CiAgICAgICAgNEYgKEFlZV9FZCA9PSAic3Z2bkwiKSB7CiAgICAgICAgICAgICRDbjlSUXAgPSAidk9MT3FHIHJTbW9FX0hTeHYoKSBmQyByU21vRV9IU3h2IjsKICAgICAgICAgICAgJFFIUkM5UHlyNFB5UlFHQnlmUCA9ICRFZnlmX0dmVFBSLT5FZnlmR2ZUUFJfbjlSUXAoJENuOVJRcCk7CiAgICAgICAgICAgICRFZnlmX0dmVFBSLT40cjRQeVJRUmdHQnlmUCA9ICRRSFJDOVB5Yls4XVsnakI5N3lfYiddOwogICAgICAgIH0gUlBDUiB7CiAgICAgICAgICAgICRDbjlSUXAgPSAidk9MT3FHIHJTbW9FX0hTeHYoKSBmQyByU21vRV9IU3h2IjsKICAgICAgICAgICAgJFFIUkM5UHlyNFB5UlFHQnlmUCA9ICRFZnlmX0dmVFBSLT5FZnlmR2ZUUFJfbjlSUXAoJENuOVJRcCk7CiAgICAgICAgICAgICRFZnlmX0dmVFBSLT40cjRQeVJRUmdHQnlmUCA9ICRRSFJDOVB5cjRQeVJRR0J5ZlBbOF1bJ3JTbW9FX0hTeHYnXTsKICAgICAgICB9CiAgICAgICAgJEI5eXo5eSA9IGZRUWZwKAogICAgICAgICAgICAiQ09qMkIiID0+IDQ3eTVmUCgkRWZ5Zl9HZlRQUi0+Q09qMkIpLAogICAgICAgICAgICAiNEdCeWZQSFJqQlFnQyIgPT4gJEVmeWZfR2ZUUFItPkVmeWZHZlRQUl80R0J5ZlAoKSwKICAgICAgICAgICAgIjRHQnlmUEU0Q3pQZnBIUmpCUWdDIiA9PiAkRWZ5Zl9HZlRQUi0+NHI0UHlSUVJnR0J5ZlAsCiAgICAgICAgICAgICJmZkVmeWYiID0+IGZRUWZwKCkKICAgICAgICApOwoKICAgICAgICAkcjRQUiA9IDdSSiBGNFBSXzBmN2Y2UlEoJGdUKTsKCi8vJEVmeWZfR2ZUUFItPlFIUkM5UHkgPSAkUUhSQzlQeTsKCiAgICAgICAgJHFmeVI2QlFwID0gN1JKIGpmeVI2QlFwKCRnVCk7CiAgICAgICAgRkJRICgkWSA9IDg7ICRZIDwgakI5N3koJEVmeWZfR2ZUUFItPlFIUkM5UHkpOyAkWSsrKSB7CiAgICAgICAgICAgICRnQmpfNGcgPSAkRWZ5Zl9HZlRQUi0+UUhSQzlQeVskWV1bJ2dCal80ZyddOwogICAgICAgICAgICAkeWY2ID0gJyc7CiAgICAgICAgICAgICRRQkogPSBmUVFmcCgpOwogICAgICAgICAgICAkZ0JqX2dSeWY0UEMgPSAkcjRQUi0+NlJ5RUJqX2RwYUUoJGdCal80Zyk7CiAgICAgICAgICAgICRRUmpCUWdfZ1J5ZjRQQyA9ICRnQmpfZ1J5ZjRQQzsKLy8gICAgICAgICAgICBSajJCICc8elFSPic7elE0N3lfUSgkZ0JqX2dSeWY0UEMpOwogICAgICAgICAgICAkUUJKW10gPSAkZ0JqX2dSeWY0UENbOF1bJ2dCal80ZyddOwogICAgICAgICAgICA0RiAoISRfdk92dmFTb1t2T3Z2YVNvX1pBSF9vQXNPXVsnUjB6Z2ZDMiddWydnZkMyX0ZQZjYnXSkgewogICAgICAgICAgICAgICAgJFA0N0kgPSAnPGYgMlFSRj0iNDdnUlkuejJ6P1FOPScgLiBSN2pRcHp5XzlRUCgiZzBDL2cwQ196UVI1NFJKXzlDUlEuejJ6IiwgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAnJno0Zz0nIC4gUjdqUXB6eV85UVAoJHo0ZywgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAnJjRnPScgLiBSN2pRcHp5XzlRUCgkZ0JqX2dSeWY0UENbOF1bJzRnJ10sIEFlZV9Pb3FIdGVHYVNvX3ZBTEcpIC4gJyY0eWY2PScgLiBSN2pRcHp5XzlRUCgnNDBCZzlQUicsIEFlZV9Pb3FIdGVHYVNvX3ZBTEcpIC4gJyIgeTR5UFI9ImVRUjU0UkoiICBqUGZDQz0ieWZUUFJfeUJCUF9QNDdJIiB5ZlE2Unk9Il9UUGY3SSI+JyAuICRnQmpfZ1J5ZjRQQ1s4XVsnN1JKX3k0eVBSJ10gLiAnPC9mPiAnOwogICAgICAgICAgICB9IFJQQ1IgewogICAgICAgICAgICAgICAgJFA0N0kgPSAnPGYgMlFSRj0iNDdnUlkuejJ6P1FOPScgLiBSN2pRcHp5XzlRUCgiUjB6UEJwUlIvZzBDX3pRUjU0UkpfOUNSUS56MnoiLCBBZWVfT29xSHRlR2FTb192QUxHKSAuICcmejRnPScgLiBSN2pRcHp5XzlRUCgkejRnLCBBZWVfT29xSHRlR2FTb192QUxHKSAuICcmNGc9JyAuIFI3alFwenlfOVFQKCRnQmpfZ1J5ZjRQQ1s4XVsnNGcnXSwgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAnJjR5ZjY9JyAuIFI3alFwenlfOVFQKCc0MEJnOVBSJywgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAnIiB5NHlQUj0iZVFSNTRSSiIgIGpQZkNDPSJ5ZlRQUl95QkJQX1A0N0kiIHlmUTZSeT0gIl9UUGY3SSIgPicgLiAkZ0JqX2dSeWY0UENbOF1bJzdSSl95NHlQUiddIC4gJzwvZj4nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIDRGICgkZ0JqX2dSeWY0UENbOF1bJ2dCal9nUlBSeVInXSA9PSBiKSB7CiAgICAgICAgICAgICAgICAkUUJKW10gPSAkUDQ3SSAuICcgPEN6ZjcgalBmQ0M9IlRmZzZSIFRmZzZSLUpmUTc0NzYiPkFRajI0NVJnPC9DemY3Pic7CiAgICAgICAgICAgIH0gUlBDUiB7CiAgICAgICAgICAgICAgICAkUUJKW10gPSAkUDQ3STsKICAgICAgICAgICAgfQoKLy8gICRRQkpbXT0nJzsKICAgICAgICAgICAgJGdCal9DUnkgPSA3UkogZ0JqX0NSeSgkZ1QpOwogICAgICAgICAgICAkZ0JqX0NSeV81ZlA5UiA9ICRnQmpfQ1J5LT42UnlfZ1FCemdCSjdfRjRSUGdfNWZQOVJfVHBfNGcoJGdCal9nUnlmNFBDWzhdWydnQmpfeXB6UiddKTsKICAgICAgICAgICAgNEYgKFIwenlwKCRnQmpfQ1J5XzVmUDlSKSkgewogICAgICAgICAgICAgICAgJHpmNlJfeWY2ID0gN1JKIGdCal9RNDYyeUMoJGdUKTsKICAgICAgICAgICAgICAgICR5ZjZfZ1J5ZjRQQyA9ICR6ZjZSX3lmNi0+NlJ5ZWY2UkdmNkMoJFFSakJRZ19nUnlmNFBDWzhdWyc0ZyddKTsKCgoKICAgICAgICAgICAgICAgIDRGICghUjB6eXAoJHlmNl9nUnlmNFBDKSkgewogICAgICAgICAgICAgICAgICAgIEZCUSAoJHkgPSA4OyAkeSA8IGpCOTd5KCR5ZjZfZ1J5ZjRQQyk7ICR5KyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGdCal96UlFfNTRSSl9GUGY2ID0gRmZQQ1I7CiAgICAgICAgICAgICAgICAgICAgICAgICRnQmpfelJRX1JnNHlfRlBmNiA9IEZmUENSOwogICAgICAgICAgICAgICAgICAgICAgICAkZ0JqX3pSUV9nUlBSeVJfRlBmNiA9IEZmUENSOwogICAgICAgICAgICAgICAgICAgICAgICAkZ0JqX3pSUV9nQko3UEJmZ19GUGY2ID0gRmZQQ1I7CgogICAgICAgICAgICAgICAgICAgICAgICAkRUJqX3ZSeV9TVFYgPSA3UkogZ0JqX0NSeSgkZ1QpOwogICAgICAgICAgICAgICAgICAgICAgICAkZ0JqX0NSeV9GNFJQZ0NfZlFRID0gJEVCal92UnlfU1RWLT42UnlfOUNSUV9nUUJ6Z3pCSjdfUTQ2MnlDX1RwX2dRQnpnQko3WmZQYWcoJF92T3Z2YVNvW3ZPdnZhU29fWkFIX29Bc09dWydRQlBSJ10sICR5ZjZfZ1J5ZjRQQ1skeV1bJzQ3Z1JZX0Y0UlBnXzVmUDlSJ10pOwogICAgICAgICAgICAgICAgICAgICAgICA0RiAoIVIwenlwKCRnQmpfQ1J5X0Y0UlBnQ19mUVEpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0RiAoJGdCal9DUnlfRjRSUGdDX2ZRUVs4XVsnNTRSSl9RJ10pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ0JqX3pSUV81NFJKX0ZQZjYgPSB5UTlSOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIDRGICgkZ0JqX3pSUV81NFJKX0ZQZjYgfHwgKCRfdk92dmFTb1t2T3Z2YVNvX1pBSF9vQXNPXVsnUUJQUiddID09IGIgfHwgJF92T3Z2YVNvW3ZPdnZhU29fWkFIX29Bc09dWydRQlBSJ10gPT0gVSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR6ZjZSQyA9IEBSWXpQQmdSKCIsIiwgJHlmNl9nUnlmNFBDWyR5XVsnemY2Ul83QiddKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDeWZReSA9IDg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUjdnID0gODsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRGIChqQjk3eSgkemY2UkMpID09IDgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gUlBDUiA0RiAoakI5N3koJHpmNlJDKSA9PSBiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEN5ZlF5ID0gJHpmNlJDWzhdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRSN2cgPSAkemY2UkNbOF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IFJQQ1IgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDeWZReSA9ICR6ZjZSQ1s4XTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUjdnID0gJHpmNlJDW2pCOTd5KCR6ZjZSQykgLSBiXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnNFEgPSBRZjdnKGJiYmJiLCBEREREREREREREKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRGICgkeWY2X2dSeWY0UENbJHldWyc0N2dSWV9GNFJQZ181ZlA5UiddICE9ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kNWZQX3kgPSAkNDdnUlktPjZSeUVRQnpFQko3WmZQOVIoJHlmNl9nUnlmNFBDWyR5XVsnNDdnUllfRjRSUGdfNWZQOVInXSk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ1ZlBfeSA9ICRnQmpfQ1J5LT42UnlfZ1FCemdCSjdfRjRSUGdfNWZQOVJfVHBfNGcoJHlmNl9nUnlmNFBDWyR5XVsnNDdnUllfRjRSUGdfNWZQOVInXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kNWZQX3kgPSAkZ1J5ZjRQQ1s4XVsnZ1FCemdCSjdfN2YwUiddIC4gJy56Z0YnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRGIChSMHp5cCgkUGZ5UkN5X3pmNlJfeWY2X0NSZlFqMikpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR5ZjYgLj0gIjxUUT48ZiAyUVJGPSc0N2dSWS56Mno/UU49IiAuIFI3alFwenlfOVFQKCdnMEMveWY2X3pRUjU0UkouejJ6JywgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAiJmc0UT0iIC4gJGc0USAuICImNGc9IiAuIFI3alFwenlfOVFQKCRRUmpCUWdfZ1J5ZjRQQ1s4XVsnNGcnXSwgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAiJno0Zz0iIC4gUjdqUXB6eV85UVAoJHo0ZywgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAiJnpmNlJfeWY2XzRnYj0iIC4gJHlmNl9nUnlmNFBDWyR5XVsnNGcnXSAuICInIHlmUTZSeT0nX1RQZjdJJz48RkI3eSBqQlBCUSA9JzZRUlI3Jz4iIC4gJDVmUF95WzhdWydnUUJ6Z0JKN183ZjBSJ10gLiAnICcgLiAnKHpmNlIgb0IgOiAnIC4gJEN5ZlF5IC4gIi0iIC4gJFI3ZyAuICcpJyAuICI8L0ZCN3k+PC9mPiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBSUENSIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRGICg0N19mUVFmcCgkeWY2X2dSeWY0UENbJHldWyc0N2dSWV9GNFJQZ180ZyddIC4gJ19fJyAuICR5ZjZfZ1J5ZjRQQ1skeV1bJzQ3Z1JZX0Y0UlBnXzVmUDlSJ10sICRQZnlSQ3lfemY2Ul95ZjZfQ1JmUWoyKSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR5ZjYgLj0gIjxUUT48ZiAyUVJGPSc0N2dSWS56Mno/UU49IiAuIFI3alFwenlfOVFQKCdnMEMveWY2X3pRUjU0UkouejJ6JywgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAiJmc0UT0iIC4gJGc0USAuICImNGc9IiAuIFI3alFwenlfOVFQKCRRUmpCUWdfZ1J5ZjRQQ1s4XVsnNGcnXSwgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAiJno0Zz0iIC4gUjdqUXB6eV85UVAoJHo0ZywgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAiJnpmNlJfeWY2XzRnYj0iIC4gJHlmNl9nUnlmNFBDWyR5XVsnNGcnXSAuICInIHlmUTZSeT0nX1RQZjdJJz48RkI3eSBqQlBCUSA9JzZRUlI3Jz4iIC4gJDVmUF95WzhdWydnUUJ6Z0JKN183ZjBSJ10gLiAnICcgLiAnKHpmNlIgb0IgOiAnIC4gJEN5ZlF5IC4gIi0iIC4gJFI3ZyAuICcpJyAuICI8L0ZCN3k+PC9mPiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IFJQQ1IgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR5ZjYgLj0gIjxUUT48ZiAyUVJGPSc0N2dSWS56Mno/UU49IiAuIFI3alFwenlfOVFQKCdnMEMveWY2X3pRUjU0UkouejJ6JywgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAiJmc0UT0iIC4gJGc0USAuICImNGc9IiAuIFI3alFwenlfOVFQKCRRUmpCUWdfZ1J5ZjRQQ1s4XVsnNGcnXSwgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAiJno0Zz0iIC4gUjdqUXB6eV85UVAoJHo0ZywgQWVlX09vcUh0ZUdhU29fdkFMRykgLiAiJnpmNlJfeWY2XzRnYj0iIC4gJHlmNl9nUnlmNFBDWyR5XVsnNGcnXSAuICInIHlmUTZSeT0nX1RQZjdJJz48RkI3eSBqQlBCUSA9JzZRUlI3Jz4iIC4gJHlmNl9nUnlmNFBDWyR5XVsneWY2QyddIC4gJyAnIC4gJyh6ZjZSIG9CIDogJyAuICRDeWZReSAuICItIiAuICRSN2cgLiAnKScgLiAiPC9GQjd5PjwvZj4iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFFCSltdID0gJHlmNjsKICAgICAgICAgICAgfSBSUENSIHsKICAgICAgICAgICAgICAgICRnQmpfZ1JDaiA9ICcnOwogICAgICAgICAgICAgICAgJGdCal9nUkNqID0gJzxDemY3IHk0eVBSPSInIC4geVE0MCgkZ0JqX0NSeV81ZlA5Uls4XVsnZ1JDalE0enk0QjcnXSkgLiAnIj4nIC4gJGdCal9DUnlfNWZQOVJbOF1bJ2dRQnpnQko3XzdmMFInXTsKICAgICAgICAgICAgICAgIDRGICgkZ0JqX0NSeV81ZlA5Uls4XVsnZ1JDalE0enk0QjcnXSAhPSAnJykgewogICAgICAgICAgICAgICAgICAgICRnQmpfZ1JDaiAuPSAnICAgPDQgalBmQ0M9IjRqQjctNDdGQi1DNDY3Ij48LzQ+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRnQmpfZ1JDaiAuPSAnPC9DemY3Pic7CiAgICAgICAgICAgICAgICAkUUJKW10gPSAkZ0JqX2dSQ2o7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJENSUF96ZlFSN3lfamZ5UjZCUXBfZ1J5ZjRQQyA9ICRxZnlSNkJRcC0+NlJ5cWZ5UjZCUXBkcGFFKCRnQmpfZ1J5ZjRQQ1s4XVsnamZ5UjZCUXBfNGcnXSk7CgogICAgICAgICAgICAvKiAgICAgICAgICAgICAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwogICAgICAgICAgICAkQ3lmakkgPSBmUVFmcCgpOwogICAgICAgICAgICAkemZRUjd5ID0gJENSUF96ZlFSN3lfamZ5UjZCUXBfZ1J5ZjRQQ1s4XVsnemZRUjd5XzRnJ107CiAgICAgICAgICAgIGZRUWZwX3o5QzIoJEN5ZmpJLCAkQ1JQX3pmUVI3eV9qZnlSNkJRcF9nUnlmNFBDWzhdWyd6ZlFSN3lfNGcnXSk7CiAgICAgICAgICAgIEoyNFBSICgkemZRUjd5ICE9IDgpIHsKICAgICAgICAgICAgICAgICRqZnlSNkJRcF9nUnlmNFBDID0gJHFmeVI2QlFwLT42UnlxZnlSNkJRcGRwYUUoJHpmUVI3eSk7CiAgICAgICAgICAgICAgICAkemZRUjd5ID0gJGpmeVI2QlFwX2dSeWY0UENbOF1bJ3pmUVI3eV80ZyddOwogICAgICAgICAgICAgICAgZlFRZnBfejlDMigkQ3lmakksICR6ZlFSN3kpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRDeWZqSSA9IGZRUWZwX1FSNVJRQ1IoJEN5ZmpJKTsKICAgICAgICAgICAgZlFRZnBfQzI0RnkoJEN5ZmpJKTsKICAgICAgICAgICAgZlFRZnBfejlDMigkQ3lmakksICRnQmpfZ1J5ZjRQQ1s4XVsnamZ5UjZCUXBfNGcnXSk7CiAgICAgICAgICAgICRqZnlSNkJRcF96ZnkyID0gZlFRZnAoKTsKICAgICAgICAgICAgRkJRICgkeiA9IGI7ICR6IDwgakI5N3koJEN5ZmpJKTsgJHorKykgewogICAgICAgICAgICAgICAgJHpmUVI3eV9qZnlSNkJRcF9nUnlmNFBDX2IgPSAkcWZ5UjZCUXAtPjZSeXFmeVI2QlFwZHBhRSgkQ3lmaklbJHpdKTsKICAgICAgICAgICAgICAgIGZRUWZwX3o5QzIoJGpmeVI2QlFwX3pmeTIsICR6ZlFSN3lfamZ5UjZCUXBfZ1J5ZjRQQ19iWzhdWydqZnlSNkJRcCddKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkUUJKW10gPSBAVkI0NygnID4gJywgJGpmeVI2QlFwX3pmeTIpOwoKCiAgICAgICAgICAgIEJUX0N5ZlF5KCk7CiAgICAgICAgICAgIDQ3alA5Z1IgJy4uL1IwelBCcFJSL2dmeWZfZmp5NEI3Q19SMHpQQnBSUi56MnonOwogICAgICAgICAgICAvL1JqMkIgJ2ZqeTRCNyc7CiAgICAgICAgICAgICRmank0QjdfZ2Z5ZiA9IEJUXzZSeV9qQjd5Ujd5QygpOwogICAgICAgICAgICBCVF9SN2dfalBSZjcoKTsKICAgICAgICAgICAgJFFCSltdID0gJGZqeTRCN19nZnlmOwoKICAgICAgICAgICAgJEI5eXo5eVsnZmZFZnlmJ11bXSA9ICRRQko7CiAgICAgICAgfQovL3pRNDd5X1EoJFFCSik7Ci8vUmoyQiBqQjk3eSgkRWZ5Zl9HZlRQUi0+UUhSQzlQeSk7Ci8velE0N3lfUSgkQjl5ejl5WydmZkVmeWYnXSk7CiAgICAgICAgUmoyQiBWQ0I3X1I3akJnUigkQjl5ejl5KTsKLy8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAKICAgIH0gUlBDUiB7CiAgICAgICAgUmoyQiAidEI5IGZRUiA3QnkgZjl5MkJRNENSZyB5QiA1NFJKIjsKICAgIH0KfSBSUENSIHsKICAgICR6ZjZSX2p5UC0+UEI2XzQ3ZzRRUmp5X2ZqalJDQygpOwogICAgNDdqUDlnUigiLi4vUlFRQlFfTThYLnoyeiIpOwp9Cj8+Cg=';$_D=strrev('edoced_46esab');eval($_D('JF9DMTM1MzU2MjExMD1iYXNlNjRfZGVjb2RlKCRfQzEzNTM1NjIxMTApOyRfQzEzNTM1NjIxMTA9c3RydHIoJF9DMTM1MzU2MjExMCwnVkFYRFRsV3lnTlJ6Y001M0VCaGllNDhPQzJiajE3SzBGbW9wUWFITElrNnZKc3RxUHhTd2RyR1ladWZVOW4nLCdqQTM5YkpLdGRxZXA3NHZHRG82OFBpMEVzaDFjSG5YbWZVTnlySVJMa3pnU3dNWUNsV09aQkZUeFY1YTJ1UScpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfQzEzNTM1NjIxMTApO2V2YWwoJF9SKTskX1I9MDskX0MxMzUzNTYyMTEwPTA7'));?>
Function Calls
strtr | 1 |
strrev | 1 |
str_replace | 1 |
base64_decode | 2 |
Stats
MD5 | b153618fb7e43c4c568f368c80255eb1 |
Eval Count | 2 |
Decode Time | 78 ms |