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

Variables

$_D base64_decode
$_F index.php
$_R 0
$_C1353562110 0

Stats

MD5 b153618fb7e43c4c568f368c80255eb1
Eval Count 2
Decode Time 78 ms