Your IP : 216.73.216.170


Current Path : /var/www/iplanru/data/www/www.i-plan.ru/ai-bolit/
Upload File :
Current File : /var/www/iplanru/data/www/www.i-plan.ru/ai-bolit/ai-bolit-hoster.php

<?php
///////////////////////////////////////////////////////////////////////////
// Version: HOSTER-30.1.1
// Copyright 2018-2020 CloudLinux Software Inc.
///////////////////////////////////////////////////////////////////////////

ini_set('memory_limit', '1G');
ini_set('xdebug.max_nesting_level', 500);

define('SHORT_PHP_TAG', strtolower(ini_get('short_open_tag')) == 'on' || strtolower(ini_get('short_open_tag')) == 1);

//////////////////////////////////////////////////////////////////////////
$vars = new Variables();
$lang = 'RU';
$snum = '';

if (isCli()) {
    if (strpos('--eng', $argv[$argc - 1]) !== false) {
        $lang = 'EN';
    }
} else {
    define('NEED_REPORT', true);
}

Translate::setLang($lang);

// put 1 for expert mode, 0 for basic check and 2 for paranoid mode
// установите 1 для режима "Обычное сканирование", 0 для быстрой проверки и 2 для параноидальной проверки (диагностика при лечении сайтов)
define('AI_EXPERT_MODE', 2);

define('AI_HOSTER', 1);

define('CLOUD_ASSIST_LIMIT', 5000);

$defaults = array(
    'path'                  => __DIR__,
    'scan_all_files'        => (AI_EXPERT_MODE == 2), // full scan (rather than just a .js, .php, .html, .htaccess)
    'scan_delay'            => 0, // delay in file scanning to reduce system load
    'max_size_to_scan'      => '650K',
    'max_size_to_cloudscan' => '650K',
    'no_rw_dir'             => 0,
    'skip_ext'              => '',
    'skip_cache'            => false,
    'report_mask'           => JSONReport::REPORT_MASK_FULL,
    'use_template_in_path'  => false,
);

define('DEBUG_MODE', 0);
define('DEBUG_PERFORMANCE', 0);

define('AIBOLIT_START_TIME', time());
define('START_TIME', microtime(true));

define('DIR_SEPARATOR', '/');

define('AIBOLIT_MAX_NUMBER', 200);

define('MIN_FILE_SIZE_FOR_CHECK', 14); //14b - The minimum possible file size for the initial checking
define('MAX_FILE_SIZE_FOR_CHECK', 268435456); //256Mb - The maximum possible file size for the initial checking


define('DOUBLECHECK_FILE', 'AI-BOLIT-DOUBLECHECK.php');

if ((isset($_SERVER['OS']) && stripos('Win', $_SERVER['OS']) !== false)) {
    define('DIR_SEPARATOR', '\\');
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (!(function_exists("file_put_contents") && is_callable("file_put_contents"))) {
    echo "#####################################################\n";
    echo "file_put_contents() is disabled. Cannot proceed.\n";
    echo "#####################################################\n";
    exit;
}

define('AI_VERSION', 'HOSTER-30.1.1');

////////////////////////////////////////////////////////////////////////////

$l_Res = '';

$g_SpecificExt = false;

$g_UpdatedJsonLog      = 0;
$g_FileInfo            = array();
$g_Iframer             = array();
$g_PHPCodeInside       = array();
$g_Base64              = array();
$g_HeuristicDetected   = array();
$g_HeuristicType       = array();
$g_UnixExec            = array();
$g_UnsafeFilesFound    = array();
$g_HiddenFiles         = array();

$g_RegExpStat = array();

error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
srand(time());

set_time_limit(0);
ini_set('max_execution_time', '900000');
ini_set('realpath_cache_size', '16M');
ini_set('realpath_cache_ttl', '1200');
ini_set('pcre.backtrack_limit', '1000000');
ini_set('pcre.recursion_limit', '200000');
ini_set('pcre.jit', '1');

$filter = new FileFilter();

$finder = new Finder($filter);

if (!function_exists('stripos')) {
    function stripos($par_Str, $par_Entry, $Offset = 0) {
        return strpos(strtolower($par_Str), strtolower($par_Entry), $Offset);
    }
}

/**
 * Determine php script is called from the command line interface
 * @return bool
 */
function isCli() {
    return PHP_SAPI == 'cli';
}

/**
 * Print to console
 * @param mixed $text
 * @param bool $add_lb Add line break
 * @return void
 */
function stdOut($text, $add_lb = true) {
    if (!isCli()) {
        return;
    }

    if (is_bool($text)) {
        $text = $text ? 'true' : 'false';
    } else if (is_null($text)) {
        $text = 'null';
    }
    if (!is_scalar($text)) {
        $text = print_r($text, true);
    }

    if ((!BOOL_RESULT) && (!JSON_STDOUT)) {
        @fwrite(STDOUT, $text . ($add_lb ? "\n" : ''));
    }
}

/**
 * Print progress
 *
 * @param int $num Current file
 * @param     $par_File
 * @param     $vars
 */
function printProgress($num, $par_File, $vars) {
    global $g_Base64, $g_Iframer, $g_UpdatedJsonLog, $g_AddPrefix, $g_NoPrefix;

    $total_files     = $vars->foundTotalFiles;
    $elapsed_time    = microtime(true) - START_TIME;
    $percent         = number_format($total_files ? $num * 100 / $total_files : 0, 1);
    $stat            = '';
    $left_files      = 0;
    $left_time       = 0;
    $elapsed_seconds = 0;

    if ($elapsed_time >= 1) {
        $elapsed_seconds = round($elapsed_time, 0);
        $fs              = floor($num / $elapsed_seconds);
        $left_files      = $total_files - $num;
        if ($fs > 0) {
            $left_time = ($left_files / $fs); //ceil($left_files / $fs);
            $stat      = ' [Avg: ' . round($fs, 2) . ' files/s' . ($left_time > 0 ? ' Left: ' . AibolitHelpers::seconds2Human($left_time) : '') . '] [Mlw:' . (count($vars->criticalPHP) + count($g_Base64) + count($vars->warningPHP)) . '|' . (count($vars->criticalJS) + count($g_Iframer) + count($vars->phishing)) . ']';
        }
    }

    $l_FN = substr($par_File, -60);

    $text = "$percent% [$l_FN] $num of {$total_files}. " . $stat;
    $text = str_pad($text, 160, ' ', STR_PAD_RIGHT);
    stdOut(str_repeat(chr(8), 160) . $text, false);


    $data = array(
        'self' => __FILE__,
        'started' => AIBOLIT_START_TIME,
        'updated' => time(),
        'progress' => $percent,
        'time_elapsed' => $elapsed_seconds,
        'time_left' => round($left_time),
        'files_left' => $left_files,
        'files_total' => $total_files,
        'current_file' => substr($g_AddPrefix . str_replace($g_NoPrefix, '', $par_File), -160)
    );

    if (function_exists('aibolit_onProgressUpdate')) {
        aibolit_onProgressUpdate($data);
    }

    if (defined('PROGRESS_LOG_FILE') && (time() - $g_UpdatedJsonLog > 1)) {
        if (function_exists('json_encode')) {
            file_put_contents(PROGRESS_LOG_FILE, json_encode($data));
        } else {
            file_put_contents(PROGRESS_LOG_FILE, serialize($data));
        }

        $g_UpdatedJsonLog = time();
    }

    if (defined('SHARED_MEMORY')) {
        shmop_write(SHARED_MEMORY, str_repeat("\0", shmop_size(SHARED_MEMORY)), 0);
        if (function_exists('json_encode')) {
            shmop_write(SHARED_MEMORY, json_encode($data), 0);
        } else {
            shmop_write(SHARED_MEMORY, serialize($data), 0);
        }
    }
}

if (isCli()) {

    $cli_options = array(
        'y' => 'deobfuscate',
        'c:' => 'avdb:',
        'm:' => 'memory:',
        's:' => 'size:',
        'a' => 'all',
        'd:' => 'delay:',
        'l:' => 'list:',
        'r:' => 'report:',
        'f' => 'fast',
        'j:' => 'file:',
        'p:' => 'path:',
        'q' => 'quite',
        'e:' => 'cms:',
        'x:' => 'mode:',
        'k:' => 'skip:',
        'n' => 'sc',
        'o:' => 'json_report:',
        't:' => 'php_report:',
        'z:' => 'progress:',
        'g:' => 'handler:',
        'b' => 'smart',
        'u:' => 'username:',
        'h' => 'help'
    );

    $cli_longopts = array(
        'deobfuscate',
        'avdb:',
        'cmd:',
        'noprefix:',
        'addprefix:',
        'scan:',
        'one-pass',
        'smart',
        'with-2check',
        'skip-cache',
        'username:',
        'no-html',
        'json-stdout',
        'listing:',
        'encode-b64-fn',
        'cloud-assist:',
        'cloudscan-size:',
        'with-suspicious',
        'rapid-account-scan:',
        'rapid-account-scan-type:',
        'extended-report',
        'factory-config:',
        'shared-mem-progress:',
        'create-shared-mem',
        'max-size-scan-bytes:',
        'input-fn-b64-encoded',
        'use-heuristics',
        'use-heuristics-suspicious',
        'resident',
        'detached:',
        'log:',
        'log-level:',
        'use-template-in-path',
        'ignore-list:',
        'ignore-filenames:',
        'only-filepaths:',
        'skip-files-older:',
        'skip-root-owner',
        'skip-system-owner',
        'follow-symlink',
        'ignore-quarantine',
        'quiet',
        'use-filters',
        'csv_report:'
    );

    $cli_longopts = array_merge($cli_longopts, array_values($cli_options));

    $reports = [];

    $options = getopt(implode('', array_keys($cli_options)), $cli_longopts);

    if (isset($options['h']) || isset($options['help'])) {
        $memory_limit = ini_get('memory_limit');
        echo <<<HELP
Revisium AI-Bolit - an Intelligent Malware File Scanner for Websites.

Usage: php {$_SERVER['PHP_SELF']} [OPTIONS] [PATH]
Current default path is: {$defaults['path']}

  -j, --file=FILE                       Full path to single file to check
  -p, --path=PATH                       Directory path to scan, by default the file directory is used
                                        Current path: {$defaults['path']}
      --use-template-in-path            Use template in path(-p, --path). For example: /home*/*/public_html
  -p, --listing=FILE                    Scan files from the listing. E.g. --listing=/tmp/myfilelist.txt
                                            Use --listing=stdin to get listing from stdin stream
      --extended-report                 To expand the report
      --ignore-list=FILE                This file will be contain the list of ignored files when scanning. 
                                        The files are base64-encoded and occupy one line for one file.
      --ignore-filenames=<templates>    Skip files with the same name by template. Example: *.php,*abc.abc,config.*
      --only-filepaths=<templates>      Take only the paths matching this pattern. Example: /check/*.php,*.abc
      --skip-files-older=UNIXTIME       If set then we ignore the files created or modified earlier than the specified date
      --skip-root-owner                 If set, we skip root's owner files
      --skip-system-owner               If set, we skip system's owner files
      --follow-symlink                  If set then we follow symlink
      --ignore-quarantine               If set, we ignore the files in the folder ".imunify.quarantined" if root is owner of it
  -x, --mode=INT                        Set scan mode. 0 - for basic, 1 - for expert and 2 for paranoic.
  -k, --skip=jpg,...                    Skip specific extensions. E.g. --skip=jpg,gif,png,xls,pdf
      --scan=php,...                    Scan only specific extensions. E.g. --scan=php,htaccess,js
      --cloud-assist=TOKEN              Enable cloud assisted scanning. Disabled by default.
      --with-suspicious                 Detect suspicious files. Disabled by default.
      --rapid-account-scan=<dir>        Enable rapid account scan. Use <dir> for base db dir. Need to set only root permissions(700)
      --rapid-account-scan-type=<type>  Type rapid account scan. <type> = NONE|ALL|SUSPICIOUS, def:SUSPICIOUS
      --use-heuristics                  Enable heuristic algorithms and mark found files as malicious.
      --use-heuristics-suspicious       Enable heuristic algorithms and mark found files as suspicious.
  -r, --report=PATH
  -o, --json_report=FILE                Full path to create json-file with a list of found malware
      --csv_report=FILE                 Full path to create csv-file with a list of found malware
  -l, --list=FILE                       Full path to create plain text file with a list of found malware
      --no-html                         Disable HTML report
      --encode-b64-fn                   Encode file names in a report with base64 (for internal usage)
      --input-fn-b64-encoded            Base64 encoded input filenames in listing or stdin
      --smart                           Enable smart mode (skip cache files and optimize scanning)
  -m, --memory=SIZE                     Maximum amount of memory a script may consume. Current value: $memory_limit
                                        Can take shorthand byte values (1M, 1G...)
  -s, --size=SIZE                       Scan files are smaller than SIZE with signatures. 0 - All files. Current value: {$defaults['max_size_to_scan']}
      --max-size-scan-bytes=SIZE        Scan first <bytes> for large(can set by --size) files with signatures.
      --cloudscan-size                  Scan files are smaller than SIZE with cloud assisted scan. 0 - All files. Current value: {$defaults['max_size_to_cloudscan']}
  -d, --delay=INT                       Delay in milliseconds when scanning files to reduce load on the file system (Default: 1)
  -a, --all                             Scan all files (by default scan. js,. php,. html,. htaccess)
      --one-pass                        Do not calculate remaining time
      --with-2check                     Create or use AI-BOLIT-DOUBLECHECK.php file

  -z, --progress=FILE                   Runtime progress of scanning, saved to the file, full path required. 
      --shared-mem-progress=<ID>        Runtime progress of scanning, saved to the shared memory <ID>.
      --create-shared-mem               Need to create shared memory segment <ID> for --shared-mem-progress. 
  -u, --username=<username>             Run scanner with specific user id and group id, e.g. --username=www-data
  -g, --hander=FILE                     External php handler for different events, full path to php file required.
      --cmd="command [args...]"         Run command after scanning

      --help                            Display this help and exit

* Mandatory arguments listed below are required for both full and short way of usage.

HELP;
        exit;
    }

    $l_FastCli = false;

    if ((isset($options['memory']) && !empty($options['memory']) && ($memory = $options['memory'])) || (isset($options['m']) && !empty($options['m']) && ($memory = $options['m']))) {
        $memory = AibolitHelpers::getBytes($memory);
        if ($memory > 0) {
            $defaults['memory_limit'] = $memory;
            ini_set('memory_limit', $memory);
        }
    }


    $avdb = '';
    if ((isset($options['avdb']) && !empty($options['avdb']) && ($avdb = $options['avdb'])) || (isset($options['c']) && !empty($options['c']) && ($avdb = $options['c']))) {
        if (file_exists($avdb)) {
            $defaults['avdb'] = $avdb;
        }
    }

    if ((isset($options['file']) && !empty($options['file']) && ($file = $options['file']) !== false) || (isset($options['j']) && !empty($options['j']) && ($file = $options['j']) !== false)) {
        define('SCAN_FILE', $file);
    }


    if (isset($options['deobfuscate']) || isset($options['y'])) {
        define('AI_DEOBFUSCATE', true);
    }

    if ((isset($options['list']) && !empty($options['list']) && ($file = $options['list']) !== false) || (isset($options['l']) && !empty($options['l']) && ($file = $options['l']) !== false)) {
        $reports[PlainReport::class] = $file;
    }

    if(isset($options['with-2check'])) {
        $reports[DoublecheckReport::class] = DOUBLECHECK_FILE;
    }

    if ((isset($options['listing']) && !empty($options['listing']) && ($listing = $options['listing']) !== false)) {

        if (file_exists($listing) && is_file($listing) && is_readable($listing)) {
            define('LISTING_FILE', $listing);
        }

        if ($listing == 'stdin') {
            define('LISTING_FILE', $listing);
        }
    }
    
    if ((isset($options['ignore-list']) && !empty($options['ignore-list']) && ($ignore_list_file = $options['ignore-list']) !== false)) {
        if (file_exists($ignore_list_file) && is_file($ignore_list_file) && is_readable($ignore_list_file)) {
            $filter->setIgnoreListFile($ignore_list_file);
        }
    }
    
    if ((isset($options['ignore-filenames']) && !empty($options['ignore-filenames']) && ($ignore_filenames = $options['ignore-filenames']) !== false)) {
        $filter->setIgnoreFilenames($ignore_filenames);
    }
    
    
    if ((isset($options['only-filepaths']) && !empty($options['only-filepaths']) && ($only_filepathes = $options['only-filepaths']) !== false)) {
        $filter->setOnlyFilepaths($only_filepathes);
    }
    
    
    if ((isset($options['skip-files-older']) && !empty($options['skip-files-older']) && ($skip_files_older = $options['skip-files-older']) !== false)) {
        $filter->setSkipFilesOlder($skip_files_older);
    }
    
    if (isset($options['skip-root-owner'])) {
        $filter->setSkipRootOwner();
    }

    if (isset($options['skip-system-owner'])) {
        $max_min_uid = getMaxMinUid();
        $vars->maxMinUid = $max_min_uid;
        $filter->setSkipSystemOwner($max_min_uid);
        unset($max_min_uid);
    }

    if (isset($options['follow-symlink'])) {
        $filter->setFollowSymlink();
    }
    
    if (isset($options['ignore-quarantine'])) {
        $filter->setIgnoreQuarantine();
    }

    if (isset($options['use-filters'])) {
        $filter->setImunifyFilters();
    }
    
    if ((isset($options['json_report']) && !empty($options['json_report']) && ($file = $options['json_report']) !== false) || (isset($options['o']) && !empty($options['o']) && ($file = $options['o']) !== false)) {
        $reports[JSONReport::class] = $file;

        if (!function_exists('json_encode')) {
            die('json_encode function is not available. Enable json extension in php.ini');
        }
    }

    if (isset($options['csv_report']) && !empty($options['csv_report']) && ($file = $options['csv_report']) !== false)  {
        $reports[CSVReport::class] = $file;
    }

    if ((isset($options['php_report']) && !empty($options['php_report']) && ($file = $options['php_report']) !== false) || (isset($options['t']) && !empty($options['t']) && ($file = $options['t']) !== false)) {
        $reports[PHPReport::class] = $file;
    }

    $env_log = getenv('AIBOLIT_RESIDENT_LOG');
    $env_log_level = getenv('AIBOLIT_RESIDENT_LOG_LEVEL');

    if ((isset($options['log']) && !empty($options['log']) && ($log_file = $options['log']) !== false) || ($env_log !== false && ($log_file = $env_log) !== false)) {
        define('LOG_FILE', $log_file);
    }

    if ((isset($options['log-level']) && !empty($options['log-level']) && ($log_level = $options['log-level']) !== false) || ($env_log_level !== false && ($log_level = $env_log_level) !== false)) {
        define('LOG_LEVEL', $log_level);
    }

    if (defined('LOG_FILE') && !defined('LOG_LEVEL')) {
        define('LOG_LEVEL', 'INFO');
    }

    if ((isset($options['handler']) && !empty($options['handler']) && ($file = $options['handler']) !== false) || (isset($options['g']) && !empty($options['g']) && ($file = $options['g']) !== false)) {
        if (file_exists($file)) {
            define('AIBOLIT_EXTERNAL_HANDLER', $file);
        }
    }

    if ((isset($options['progress']) && !empty($options['progress']) && ($file = $options['progress']) !== false) || (isset($options['z']) && !empty($options['z']) && ($file = $options['z']) !== false)) {
        define('PROGRESS_LOG_FILE', $file);
    }

    if (isset($options['create-shared-mem'])) {
        define('CREATE_SHARED_MEMORY', true);
    } else {
        define('CREATE_SHARED_MEMORY', false);
    }

    if (isset($options['shared-mem-progress']) && !empty($options['shared-mem-progress']) && ($sh_mem = $options['shared-mem-progress']) !== false) {
        if (CREATE_SHARED_MEMORY) {
            @$shid = shmop_open((int)$sh_mem, "n", 0666, 5000);
        } else {
            @$shid = shmop_open((int)$sh_mem, "w", 0, 0);
        }
        if (!empty($shid)) {
            define('SHARED_MEMORY', $shid);
        } else {
            die('Error with shared-memory.');
        }
    }

    if ((isset($options['size']) && ($size = $options['size']) !== false) || (isset($options['s']) && ($size = $options['s']) !== false)) {
        $size                         = AibolitHelpers::getBytes($size);
        $defaults['max_size_to_scan'] = $size > 0 ? $size : 0;
    }

    if (isset($options['cloudscan-size']) && !empty($options['cloudscan-size']) && ($cloudscan_size = $options['cloudscan-size']) !== false) {
        $cloudscan_size                         = AibolitHelpers::getBytes($cloudscan_size);
        $defaults['max_size_to_cloudscan'] = $cloudscan_size > 0 ? $cloudscan_size : 0;
    }

    if (isset($options['max-size-scan-bytes']) && !empty($options['max-size-scan-bytes'])) {
        define('MAX_SIZE_SCAN_BYTES', AibolitHelpers::getBytes($options['max-size-scan-bytes']));
    } else {
        define('MAX_SIZE_SCAN_BYTES', 0);
    }

    if ((isset($options['username']) && !empty($options['username']) && ($username = $options['username']) !== false) || (isset($options['u']) && !empty($options['u']) && ($username = $options['u']) !== false)) {

        if (!empty($username) && ($info = posix_getpwnam($username)) !== false) {
            posix_setgid($info['gid']);
            posix_setuid($info['uid']);
            $defaults['userid']  = $info['uid'];
            $defaults['groupid'] = $info['gid'];
        } else {
            echo ('Invalid username');
            exit(-1);
        }
    }

    if ((isset($options['file']) && !empty($options['file']) && ($file = $options['file']) !== false) || ((isset($options['j']) && !empty($options['j']) && ($file = $options['j']) !== false) && (isset($options['q'])))) {
        $BOOL_RESULT = true;
    }

    if (isset($options['json-stdout'])) {
        define('JSON_STDOUT', true);
    } else {
        define('JSON_STDOUT', false);
    }

    if (isset($options['f'])) {
        $l_FastCli = true;
    }

    if (isset($options['q']) || isset($options['quite']) || isset($options['quiet'])) {
        $BOOL_RESULT = true;
    }

    if (isset($options['x'])) {
        define('AI_EXPERT', $options['x']);
    } else if (isset($options['mode'])) {
        define('AI_EXPERT', $options['mode']);
    } else {
        define('AI_EXPERT', AI_EXPERT_MODE);
    }

    if (AI_EXPERT < 2) {
        $g_SpecificExt              = true;
        $defaults['scan_all_files'] = false;
    } else {
        $defaults['scan_all_files'] = true;
    }

    define('BOOL_RESULT', $BOOL_RESULT);

    if ((isset($options['delay']) && !empty($options['delay']) && ($delay = $options['delay']) !== false) || (isset($options['d']) && !empty($options['d']) && ($delay = $options['d']) !== false)) {
        $delay = (int) $delay;
        if (!($delay < 0)) {
            $defaults['scan_delay'] = $delay;
        }
    }

    if ((isset($options['skip']) && !empty($options['skip']) && ($ext_list = $options['skip']) !== false) || (isset($options['k']) && !empty($options['k']) && ($ext_list = $options['k']) !== false)) {
        $defaults['skip_ext'] = $ext_list;
    }

    if (isset($options['n']) || isset($options['skip-cache'])) {
        $defaults['skip_cache'] = true;
    }

    if (isset($options['scan'])) {
        $ext_list = strtolower(trim($options['scan'], " ,\t\n\r\0\x0B"));
        if ($ext_list != '') {
            $l_FastCli        = true;
            $filter->setSensitiveExt($ext_list);
            $g_SensitiveFiles = $filter->getSensitiveExt();
            $g_SpecificExt = true;
        }
    }
    
    if (isset($options['cloud-assist'])) {
        define('CLOUD_ASSIST_TOKEN', $options['cloud-assist']);
    }
    

    if (isset($options['rapid-account-scan'])) {
        define('RAPID_ACCOUNT_SCAN', $options['rapid-account-scan']);
    }
    
    if (defined('RAPID_ACCOUNT_SCAN')) {
        if (isset($options['rapid-account-scan-type'])) {
            define('RAPID_ACCOUNT_SCAN_TYPE', $options['rapid-account-scan-type']);
        }
        else {
            define('RAPID_ACCOUNT_SCAN_TYPE', 'SUSPICIOUS');
        }
    }

    if (isset($options['with-suspicious'])) {
        define('AI_EXTRA_WARN', true);
    }

    if (isset($options['extended-report'])) {
        define('EXTENDED_REPORT', true);
    }

    if (isset($options['all'])||isset($options['a'])) {
        $defaults['scan_all_files'] = true;
        $g_SpecificExt              = false;
    }

    if (isset($options['cms'])) {
        define('CMS', $options['cms']);
    } else if (isset($options['e'])) {
        define('CMS', $options['e']);
    }


    if (!defined('SMART_SCAN')) {
        define('SMART_SCAN', 0);
    }

    if (!defined('AI_DEOBFUSCATE')) {
        define('AI_DEOBFUSCATE', false);
    }

    if (!defined('AI_EXTRA_WARN')) {
        define('AI_EXTRA_WARN', false);
    }


    $l_SpecifiedPath = false;
    if ((isset($options['path']) && !empty($options['path']) && ($path = $options['path']) !== false) 
        || (isset($options['p']) && !empty($options['p']) && ($path = $options['p']) !== false)
    ) {
        $defaults['path'] = $path;
        $l_SpecifiedPath  = true;
    }
    
    $defaults['use_template_in_path'] = isset($options['use-template-in-path']);
    
    if (isset($options['noprefix']) && !empty($options['noprefix']) && ($g_NoPrefix = $options['noprefix']) !== false) {
    } else {
        $g_NoPrefix = '';
    }

    if (isset($options['addprefix']) && !empty($options['addprefix']) && ($g_AddPrefix = $options['addprefix']) !== false) {
    } else {
        $g_AddPrefix = '';
    }

    if (isset($options['use-heuristics'])) {
        define('USE_HEURISTICS', true);
    }

    if (isset($options['use-heuristics-suspicious'])) {
        define('USE_HEURISTICS_SUSPICIOUS', true);
    }

    if (defined('USE_HEURISTICS') && defined('USE_HEURISTICS_SUSPICIOUS')) {
        die('You can not use --use-heuristic and --use-heuristic-suspicious the same time.');
    }

    $l_SuffixReport = str_replace('/var/www', '', $defaults['path']);
    $l_SuffixReport = str_replace('/home', '', $l_SuffixReport);
    $l_SuffixReport = preg_replace('~[/\\\.\s]~', '_', $l_SuffixReport);
    $l_SuffixReport .= "-" . rand(1, 999999);

    if ((isset($options['report']) && ($report = $options['report']) !== false) || (isset($options['r']) && ($report = $options['r']) !== false)) {
        $report = str_replace('@PATH@', $l_SuffixReport, $report);
        $report = str_replace('@RND@', rand(1, 999999), $report);
        $report = str_replace('@DATE@', date('d-m-Y-h-i'), $report);
        define('REPORT', $report);
        define('NEED_REPORT', true);
    }

    if (isset($options['no-html'])) {
        define('REPORT', 'no@email.com');
    }

    defined('ENCODE_FILENAMES_WITH_BASE64') || define('ENCODE_FILENAMES_WITH_BASE64', isset($options['encode-b64-fn']));
    
    defined('INPUT_FILENAMES_BASE64_ENCODED') || define('INPUT_FILENAMES_BASE64_ENCODED', isset($options['input-fn-b64-encoded']));

    defined('REPORT') || define('REPORT', 'AI-BOLIT-REPORT-' . $l_SuffixReport . '-' . date('d-m-Y_H-i') . '.html');

    $last_arg = max(1, sizeof($_SERVER['argv']) - 1);
    if (isset($_SERVER['argv'][$last_arg])) {
        $path = $_SERVER['argv'][$last_arg];
        if (substr($path, 0, 1) != '-' 
            && (substr($_SERVER['argv'][$last_arg - 1], 0, 1) != '-'
                || array_key_exists(substr($_SERVER['argv'][$last_arg - 1], -1), $cli_options)
            )
        ) {
            $defaults['path'] = $path;
        }
    }

    define('ONE_PASS', isset($options['one-pass']));
    
    // BEGIN of configuring the factory
    $factoryConfig = [
        RapidAccountScan::class             => RapidAccountScan::class,
        RapidScanStorage::class             => RapidScanStorage::class,
        CloudAssistedStorage::class         => CloudAssistedStorage::class,
        DbFolderSpecification::class        => DbFolderSpecification::class,
        CriticalFileSpecification::class    => CriticalFileSpecification::class,
        CloudAssistedRequest::class         => CloudAssistedRequest::class,
        CSVReport::class                    => CSVReport::class,
        JSONReport::class                   => JSONReport::class,
        PHPReport::class                    => PHPReport::class,
        PlainReport::class                  => PlainReport::class,
        DoublecheckReport::class            => DoublecheckReport::class,
        HTMLReport::class                   => HTMLReport::class,
        DetachedMode::class                 => DetachedMode::class,
        ResidentMode::class                 => ResidentMode::class,
        Logger::class                       => Logger::class,
    ];

    if (isset($options['factory-config'])) {
        $optionalFactoryConfig = require($options['factory-config']);
        $factoryConfig = array_merge($factoryConfig, $optionalFactoryConfig);
    }

    Factory::configure($factoryConfig);
    // END of configuring the factory

} else {
    define('AI_EXPERT', AI_EXPERT_MODE);
    define('ONE_PASS', true);
}

if (ONE_PASS && defined('CLOUD_ASSIST_TOKEN')) {
    die('Both parameters(one-pass and cloud-assist) not supported');
}

if (defined('RAPID_ACCOUNT_SCAN') && !defined('CLOUD_ASSIST_TOKEN')) { 
    die('CloudScan should be enabled');
}

if (defined('CREATE_SHARED_MEMORY') && CREATE_SHARED_MEMORY == true && !defined('SHARED_MEMORY')) {
    die('shared-mem-progress should be enabled and ID specified.');
}

if (defined('RAPID_ACCOUNT_SCAN')) {
    if (!mkdir(RAPID_ACCOUNT_SCAN, 0700, true) && !is_dir(RAPID_ACCOUNT_SCAN)) {
        throw new Exception(sprintf('Directory "%s" was not created', RAPID_ACCOUNT_SCAN));
    }
    $specification = Factory::instance()->create(DbFolderSpecification::class);
    if (!$specification->satisfiedBy(RAPID_ACCOUNT_SCAN)) {
        @unlink(RAPID_ACCOUNT_SCAN);
        die('Rapid DB folder error! Please check the folder.');
    }
}

if (defined('RAPID_ACCOUNT_SCAN_TYPE') && !in_array(RAPID_ACCOUNT_SCAN_TYPE, array('NONE', 'ALL', 'SUSPICIOUS'))) {
    die('Wrong Rapid account scan type');
}

if (defined('RAPID_ACCOUNT_SCAN') && !extension_loaded('leveldb')) { 
    die('LevelDB extension needed for Rapid DB');
}

$vars->blackFiles = [];

if (DEBUG_MODE || DEBUG_PERFORMANCE) {
    $debug = new DebugMode(DEBUG_MODE, DEBUG_PERFORMANCE);
} else {
    $debug = null;
}

$vars->signs = new LoadSignaturesForScan(isset($defaults['avdb']) ? $defaults['avdb'] : null, AI_EXPERT, DEBUG_PERFORMANCE);

if ($vars->signs->getResult() == $vars->signs::SIGN_EXTERNAL) {
    stdOut('Loaded external signatures from ' . $defaults['avdb']);
} else if ($vars->signs->getResult() == $vars->signs::SIGN_IMPORT) {
    stdOut('Loaded ' . __DIR__ . '/ai-bolit.sig signatures from ai-bolit.sig');
} else if (is_object($debug) && $vars->signs->getResult() == $vars->signs::SIGN_ERROR) {
    $debug->QCR_Debug('Import ai-bolit.sig ' . $vars->signs->getLastError());
}

if (is_object($debug)) {
    $debug->QCR_Debug();
}

if (isset($defaults['userid'])) {
    stdOut('Running from ' . $defaults['userid'] . ':' . $defaults['groupid']);
}

if (AI_EXTRA_WARN) {
    $sign_count = $vars->signs->getDBCountWithSuspicious();
} else {
    $sign_count = $vars->signs->getDBCount();
}

stdOut('Malware signatures: ' . $sign_count);

if ($g_SpecificExt) {
    stdOut("Scan specific extensions: " . implode(',', $g_SensitiveFiles));
}

// Black list database
try {
    $file = __DIR__ . '/AIBOLIT-BINMALWARE.db';
    if (isset($defaults['avdb'])) {
        $file = dirname($defaults['avdb']) . '/AIBOLIT-BINMALWARE.db';
    }
    $vars->blacklist = FileHashMemoryDb::open($file);
    stdOut("Binary malware signatures: " . ceil($vars->blacklist->count()));
} catch (Exception $e) {
    $vars->blacklist = null;
}

if (DEBUG_PERFORMANCE) {
    stdOut("Debug Performance Scan");
}

// Init
define('MAX_PREVIEW_LEN', 120);

if (defined('AIBOLIT_EXTERNAL_HANDLER')) {
    include_once(AIBOLIT_EXTERNAL_HANDLER);
    stdOut("\nLoaded external handler: " . AIBOLIT_EXTERNAL_HANDLER . "\n");
    if (function_exists("aibolit_onStart")) {
        aibolit_onStart();
    }
}

// Perform full scan when running from command line

if ($l_FastCli) {
    $defaults['scan_all_files'] = 0;
}

define('SCAN_ALL_FILES', (bool) $defaults['scan_all_files']);
define('SCAN_DELAY', (int) $defaults['scan_delay']);
define('MAX_SIZE_TO_SCAN', AibolitHelpers::getBytes($defaults['max_size_to_scan']));
define('MAX_SIZE_TO_CLOUDSCAN', AibolitHelpers::getBytes($defaults['max_size_to_cloudscan']));

if (SCAN_ALL_FILES) {
    $filter->setScanAll();
}

if ($defaults['memory_limit'] && ($defaults['memory_limit'] = AibolitHelpers::getBytes($defaults['memory_limit'])) > 0) {
    ini_set('memory_limit', $defaults['memory_limit']);
    stdOut("Changed memory limit to " . $defaults['memory_limit']);
}

if (realpath($defaults['path']) === false) {
    define('ROOT_PATH', $defaults['path']);
} else {
    define('ROOT_PATH', realpath($defaults['path']));
}

if (!ROOT_PATH) {
    if (isCli()) {
        die(stdOut("Directory '{$defaults['path']}' not found!"));
    }
} elseif (!$defaults['use_template_in_path'] && !is_readable(ROOT_PATH) && isCli()) {
    die2(stdOut("Cannot read directory '" . ROOT_PATH . "'!"));
}

define('CURRENT_DIR', getcwd());
if(!$defaults['use_template_in_path']) {
    chdir(ROOT_PATH);
}

if (isCli() && REPORT !== '' && REPORT !== 'no@email.com') {
    $report      = str_replace('\\', '/', REPORT);
    $abs         = strpos($report, '/') === 0 ? DIR_SEPARATOR : '';
    $report      = array_values(array_filter(explode('/', $report)));
    $report_file = array_pop($report);
    $report_path = realpath($abs . implode(DIR_SEPARATOR, $report));

    define('REPORT_FILE', $report_file);
    define('REPORT_PATH', $report_path);

    if (REPORT_FILE && REPORT_PATH && is_file(REPORT_PATH . DIR_SEPARATOR . REPORT_FILE)) {
        @unlink(REPORT_PATH . DIR_SEPARATOR . REPORT_FILE);
    }

    if (!isset($options['no-html']) && defined('REPORT_FILE')) {
        $reports[HTMLReport::class] = REPORT_PATH . DIR_SEPARATOR . REPORT_FILE;
    }
}

if (defined('REPORT_PATH')) {
    $l_ReportDirName = REPORT_PATH;
}

$vars->options = $options;

$path                       = $defaults['path'];
$report_mask                = $defaults['report_mask'];
$extended_report            = defined('EXTENDED_REPORT') && EXTENDED_REPORT;
$rapid_account_scan_report  = defined('RAPID_ACCOUNT_SCAN');

$max_size_to_scan = AibolitHelpers::getBytes(MAX_SIZE_TO_SCAN);
$max_size_to_scan = $max_size_to_scan > 0 ? $max_size_to_scan : AibolitHelpers::getBytes('1m');
$max_size_to_scan = AibolitHelpers::bytes2Human($max_size_to_scan);

$use_doublecheck = isset($options['with-2check']) && file_exists(DOUBLECHECK_FILE);

$reportFactory = function ($reports) use ($vars, $path, $db_meta_info, $report_mask, $extended_report,
    $rapid_account_scan_report, $g_AddPrefix, $g_NoPrefix, $snum, $max_size_to_scan, $g_SpecificExt, $use_doublecheck) {
    foreach($reports as $report_class => $file) {
        yield Factory::instance()->create($report_class, [$vars->signs->_Mnemo, $path,
            $vars->signs->getDBLocation(), $vars->signs->getDBMetaInfoVersion(),
            $report_mask, $extended_report, $rapid_account_scan_report, AI_VERSION, AI_HOSTER,
            AI_EXTRA_WARN, AI_EXPERT, SMART_SCAN, ROOT_PATH, SCAN_ALL_FILES, $g_SpecificExt,
            DOUBLECHECK_FILE, $use_doublecheck, START_TIME, $snum, $max_size_to_scan, $g_AddPrefix, $g_NoPrefix,
            isset($reports[CSVReport::class]), $file, JSON_STDOUT]);
    }
};

define('QUEUE_FILENAME', ($l_ReportDirName != '' ? $l_ReportDirName . '/' : '') . 'AI-BOLIT-QUEUE-' . md5($defaults['path']) . '-' . rand(1000, 9999) . '.txt');

if (isset($options['detached'])) {
    $detached = Factory::instance()->create(DetachedMode::class, [$finder, $debug, $options['detached'], $vars, START_TIME, $reportFactory]);
    if (defined('LISTING_FILE')) {
        $detached->scanListing(LISTING_FILE, INPUT_FILENAMES_BASE64_ENCODED);
    }
    else {
        $detached->scanDirectories(ROOT_PATH);
    }
    exit(0);
}

if (isset($options['resident'])) {
    $logger = null;
    $levels = explode(',', LOG_LEVEL);
    $logger = new Logger(LOG_FILE, $levels);
    Factory::instance()->create(ResidentMode::class, [$finder, $debug, $reportFactory, $vars->signs, $vars->blacklist, $logger, $vars->maxMinUid]);
    exit(0);
}

////////////////////////////////////////////////////////////////////////////

if (!isCli()) {
    header('Content-type: text/html; charset=utf-8');
}

if (!$defaults['use_template_in_path'] && !is_readable(ROOT_PATH)) {
    echo Translate::getStr('warning.folder_read_permission');
    exit;
}

if (isCli()) {
    if (defined('REPORT_PATH') && REPORT_PATH) {
        if (!is_writable(REPORT_PATH)) {
            die2("\nCannot write report. Report dir " . REPORT_PATH . " is not writable.");
        }

        else if (!REPORT_FILE) {
            die2("\nCannot write report. Report filename is empty.");
        }

        else if (($file = REPORT_PATH . DIR_SEPARATOR . REPORT_FILE) && is_file($file) && !is_writable($file)) {
            die2("\nCannot write report. Report file '$file' exists but is not writable.");
        }
    }
}


// detect version CMS
$g_CmsListDetector = null;
if (!$defaults['use_template_in_path']) {
    $g_KnownCMS        = [];
    $g_CmsListDetector = new CmsVersionDetector(ROOT_PATH);
    $l_CmsDetectedNum  = $g_CmsListDetector->getCmsNumber();
    for ($tt = 0; $tt < $l_CmsDetectedNum; $tt++) {
        $vars->CMS[] = $g_CmsListDetector->getCmsName($tt) . ' v' . AibolitHelpers::makeSafeFn($g_CmsListDetector->getCmsVersion($tt), $g_AddPrefix, $g_NoPrefix);
    }
}


$g_DirIgnoreList = array();
$g_IgnoreList    = array();
$g_UrlIgnoreList = array();
$g_KnownList     = array();

$g_AiBolitAbsolutePath = __DIR__;

$l_IgnoreFilename    = $g_AiBolitAbsolutePath . '/.aignore';
$l_DirIgnoreFilename = $g_AiBolitAbsolutePath . '/.adirignore';
$l_UrlIgnoreFilename = $g_AiBolitAbsolutePath . '/.aurlignore';

if (file_exists($l_IgnoreFilename)) {
    $l_IgnoreListRaw = file($l_IgnoreFilename);
    for ($i = 0, $iMax = count($l_IgnoreListRaw); $i < $iMax; $i++) {
        $g_IgnoreList[] = explode("\t", trim($l_IgnoreListRaw[$i]));
    }
    unset($l_IgnoreListRaw);
}

if (file_exists($l_UrlIgnoreFilename)) {
    $g_UrlIgnoreList = file($l_UrlIgnoreFilename);

    for ($i = 0, $iMax = count($g_UrlIgnoreList); $i < $iMax; $i++) {
        $g_UrlIgnoreList[$i] = trim($g_UrlIgnoreList[$i]);
    }
}

$filter->setIgnoreListPatterns($l_DirIgnoreFilename);

if (SMART_SCAN) {
    $filter->setSmartScan();
    $g_DirIgnoreList = array_merge($g_DirIgnoreList, $l_SkipMask);
}

if (is_object($debug)) {
    $debug->QCR_Debug();
}


$defaults['skip_ext'] = strtolower(trim($defaults['skip_ext']));
if ($defaults['skip_ext'] != '') {
    $filter->setIgnoreExt($defaults['skip_ext']);
    $g_IgnoredExt = explode(',', $defaults['skip_ext']);
    for ($i = 0, $iMax = count($g_IgnoredExt); $i < $iMax; $i++) {
        $g_IgnoredExt[$i] = trim($g_IgnoredExt[$i]);
    }

    if (is_object($debug)) {
        $debug->QCR_Debug('Skip files with extensions: ' . implode(',', $g_IgnoredExt));
    }

    stdOut('Skip extensions: ' . implode(',', $g_IgnoredExt));
}

$use_listingfile = defined('LISTING_FILE');

$listing = false;

if ($use_doublecheck) {
    $listing = DOUBLECHECK_FILE;
} elseif ($use_listingfile) {
    $listing = LISTING_FILE;
}
$base64_encoded = INPUT_FILENAMES_BASE64_ENCODED;

try {
    $scan = new Scanner($finder, $vars, $debug);
    if (defined('SCAN_FILE')) {
        // scan single file
        $filepath = INPUT_FILENAMES_BASE64_ENCODED ? FilepathEscaper::decodeFilepathByBase64(SCAN_FILE) : SCAN_FILE;
        stdOut("Start scanning file '" . $filepath . "'.");
        if (file_exists($filepath) && is_file($filepath) && is_readable($filepath)) {
            $vars->foundTotalFiles = 1;
            $s_file[] = $filepath;
            $base64_encoded = false;
        } else {
            stdOut("Error:" . $filepath . " either is not a file or readable");
        }
    } elseif ($listing) {
        //scan listing
        if ($listing == 'stdin') {
            $lines = explode("\n", getStdin());
        } else {
            $lines = new SplFileObject($listing);
            $lines->setFlags(SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE);
        }
        if (is_array($lines)) {
            $vars->foundTotalFiles = count($lines);
        } else if ($lines instanceof SplFileObject) {
            $lines->seek($lines->getSize());
            $vars->foundTotalFiles = $lines->key();
            $lines->seek(0);
        }

        $s_file = $lines;
        stdOut("Start scanning the list from '" . $listing . "'.\n");
    } else {
        //scan by path
        $base64_encoded = true;
        file_exists(QUEUE_FILENAME) && unlink(QUEUE_FILENAME);
        $scan->QCR_ScanDirectories(ROOT_PATH);
        stdOut("Found $vars->foundTotalFiles files in $vars->foundTotalDirs directories.");
        stdOut("Start scanning '" . ROOT_PATH . "'.\n");

        if (is_object($debug)) {
            $debug->QCR_Debug();
        }
        stdOut(str_repeat(' ', 160), false);
        $s_file = new SplFileObject(QUEUE_FILENAME);
        $s_file->setFlags(SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE);
    }

    $scan->QCR_GoScan($s_file, null, $base64_encoded, $use_doublecheck);
    unset($s_file);
    @unlink(QUEUE_FILENAME);
    $vars->foundTotalDirs  = $vars->totalFolder;

    if (defined('PROGRESS_LOG_FILE') && file_exists(PROGRESS_LOG_FILE)) {
        @unlink(PROGRESS_LOG_FILE);
    }
    if (CREATE_SHARED_MEMORY) {
        shmop_delete(SHARED_MEMORY);
    }
    if (defined('SHARED_MEMORY')) {
        shmop_close(SHARED_MEMORY);
    }
} catch (Exception $e) {
    if (is_object($debug)) {
        $debug->QCR_Debug($e->getMessage());
    }
}
if (is_object($debug)) {
    $debug->QCR_Debug();
}

if (true) {
    $g_HeuristicDetected = array();
    $g_Iframer           = array();
    $g_Base64            = array();
}

list($snum, $i) = $scan->whitelisting();


////////////////////////////////////////////////////////////////////////////
if (AI_HOSTER) {
    $g_IframerFragment       = array();
    $g_Iframer               = array();
    $vars->redirect          = array();
    $vars->doorway           = array();
    $g_EmptyLink             = array();
    $g_HeuristicType         = array();
    $g_HeuristicDetected     = array();
    $vars->adwareList            = array();
    $vars->phishing              = array();
    $g_PHPCodeInside         = array();
    $g_PHPCodeInsideFragment = array();
    $vars->bigFiles              = array();
    $vars->redirectPHPFragment  = array();
    $g_EmptyLinkSrc          = array();
    $g_Base64Fragment        = array();
    $g_UnixExec              = array();
    $vars->phishingSigFragment   = array();
    $vars->phishingFragment      = array();
    $g_PhishingSig           = array();
    $g_IframerFragment       = array();
    $vars->CMS                  = array();
    $vars->adwareListFragment    = array();
}

if (BOOL_RESULT && (!defined('NEED_REPORT'))) {
    if ((count($vars->criticalPHP) > 0) || (count($vars->criticalJS) > 0) || (count($g_PhishingSig) > 0)) {
        exit(2);
    } else {
        exit(0);
    }
}
////////////////////////////////////////////////////////////////////////////

$time_taken = AibolitHelpers::seconds2Human(microtime(true) - START_TIME);



stdOut("\nBuilding report [ mode = " . AI_EXPERT . " ]\n");

//stdOut("\nLoaded signatures: " . count($g_FlexDBShe) . " / " . count($g_JSVirSig) . "\n");

////////////////////////////////////////////////////////////////////////////

$scan_time = round(microtime(true) - START_TIME, 1);

foreach($reportFactory($reports) as $report) {
    $report->generateReport($vars, $scan_time);
    $res = $report->write();
    if ($res !== '') {
        stdOut($res);
    }
}
stdOut("\n");

if (!AI_HOSTER) {
    stdOut("Building list of vulnerable scripts " . count($vars->vulnerable));
}


stdOut("Building list of shells " . count($vars->criticalPHP));

stdOut("Building list of js " . count($vars->criticalJS));

stdOut("Building list of unread files " . count($vars->notRead));

if (!AI_HOSTER) {
    stdOut("Building list of phishing pages " . count($vars->phishing));

    stdOut('Building list of redirects ' . count($vars->redirect));

    stdOut("Building list of symlinks " . count($vars->symLinks));

}

if (AI_EXTRA_WARN) {
    stdOut("Building list of suspicious files " . count($vars->warningPHP));
}
////////////////////////////////////
if (!AI_HOSTER) {
    stdOut("Building list of adware " . count($vars->adwareList));

    stdOut("Building list of bigfiles " . count($vars->bigFiles));

    stdOut("Building list of doorways " . count($vars->doorway));
}

if (!defined('REPORT') || REPORT === '') {
    die2('Report not written.');
}


stdOut("Scanning complete! Time taken: " . AibolitHelpers::seconds2Human($scan_time));

if (DEBUG_PERFORMANCE) {
    $debug->printPerfomanceStats();
    die();
}

stdOut("\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
stdOut("Attention! DO NOT LEAVE either ai-bolit.php or AI-BOLIT-REPORT-<xxxx>-<yy>.html \nfile on server. COPY it locally then REMOVE from server. ");
stdOut("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");

if (isset($options['cmd'])) {
    stdOut("Run \"{$options['cmd']}\" ");
    system($options['cmd']);
}

if (is_object($debug)) {
    $debug->QCR_Debug();
}

# exit with code

$l_EC1 = count($vars->criticalPHP);
$l_EC2 = count($vars->criticalJS) + count($vars->phishing) + count($vars->warningPHP);
$code  = 0;

if ($l_EC1 > 0) {
    $code = 2;
} else {
    if ($l_EC2 > 0) {
        $code = 1;
    }
}

$stat = array(
    'php_malware'   => count($vars->criticalPHP),
    'cloudhash'     => count($vars->blackFiles),
    'js_malware'    => count($vars->criticalJS),
    'phishing'      => count($vars->phishing)
);

if (function_exists('aibolit_onComplete')) {
    aibolit_onComplete($code, $stat);
}

stdOut('Exit code ' . $code);
exit($code);

############################################# END ###############################################

function getStdin()
{
    $stdin  = '';
    $f      = @fopen('php://stdin', 'r');
    while($line = fgets($f))
    {
        $stdin .= $line;
    }
    fclose($f);
    return $stdin;
}

function die2($str) {
    if (function_exists('aibolit_onFatalError')) {
        aibolit_onFatalError($str);
    }
    die($str);
}


function getMaxMinUid($path = '/etc/login.defs')
{
    $uid_min = 1000;
    $uid_max = 60000;
    if (!file_exists($path)) {
        $release = new OsReleaseInfo();
        $ver = $release->getOsVersion();
        if ($release->isIdLikeCentos() && $ver && (strpos($ver, '6') === 0)) {
            $uid_min = 500;
            $uid_max = 60000;
        }
        unset($ver);
        return [$uid_min, $uid_max];
    }

    $file = file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    foreach ($file as $line) {
        $line = trim($line);
        if (strpos($line, 'UID_MIN') === 0) {
            list($key, $value) = preg_split('~\s+~', trim($line), 2, PREG_SPLIT_NO_EMPTY);
            $uid_min = intval(trim($value));
        }
        if (strpos($line, 'UID_MAX') === 0) {
            list($key, $value) = preg_split('~\s+~', trim($line), 2, PREG_SPLIT_NO_EMPTY);
            $uid_max = intval(trim($value));
        }
    }
    return [$uid_min, $uid_max];
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// The following instructions should be written the same pattern,
/// because they are replaced by file content while building a release.
/// See the release_aibolit_ru.sh file for details.


class AibolitHelpers
{
    /**
     * Format bytes to human readable
     *
     * @param int $bytes
     *
     * @return string
     */
    public static function bytes2Human($bytes)
    {
        if ($bytes < 1024) {
            return $bytes . ' b';
        } elseif (($kb = $bytes / 1024) < 1024) {
            return number_format($kb, 2) . ' Kb';
        } elseif (($mb = $kb / 1024) < 1024) {
            return number_format($mb, 2) . ' Mb';
        } elseif (($gb = $mb / 1024) < 1024) {
            return number_format($gb, 2) . ' Gb';
        } else {
            return number_format($gb / 1024, 2) . 'Tb';
        }
    }

    /**
     * Seconds to human readable
     * @param int $seconds
     * @return string
     */
    public static function seconds2Human($seconds)
    {
        $r        = '';
        $_seconds = floor($seconds);
        $ms       = $seconds - $_seconds;
        $seconds  = $_seconds;
        if ($hours = floor($seconds / 3600)) {
            $r .= $hours . ' h ';
            $seconds %= 3600;
        }

        if ($minutes = floor($seconds / 60)) {
            $r .= $minutes . ' m ';
            $seconds %= 60;
        }

        if ($minutes < 3) {
            $r .= ' ' . (string)($seconds + ($ms > 0 ? round($ms) : 0)) . ' s';
        }

        return $r;
    }

    /**
     * Get bytes from shorthand byte values (1M, 1G...)
     * @param int|string $val
     * @return int
     */
    public static function getBytes($val)
    {
        $val  = trim($val);
        $last = strtolower($val[strlen($val) - 1]);
        switch ($last) {
            case 't':
                $val *= 1024;
            case 'g':
                $val *= 1024;
            case 'm':
                $val *= 1024;
            case 'k':
                $val *= 1024;
        }
        return intval($val);
    }

    /**
     * Convert dangerous chars to html entities
     *
     * @param        $par_Str
     * @param string $addPrefix
     * @param string $noPrefix
     * @param bool   $replace_path
     *
     * @return string
     */
    public static function makeSafeFn($par_Str, $addPrefix = '', $noPrefix = '', $replace_path = false)
    {
        if ($replace_path) {
            $lines = explode("\n", $par_Str);
            array_walk($lines, static function(&$n) use ($addPrefix, $noPrefix) {
                $n = $addPrefix . str_replace($noPrefix, '', $n);
            });

            $par_Str = implode("\n", $lines);
        }

        return htmlspecialchars($par_Str, ENT_SUBSTITUTE | ENT_QUOTES);
    }


    public static function myCheckSum($str)
    {
        return hash('crc32b', $str);
    }

}


class Variables
{
    public $structure = array();
    public $totalFolder = 0;
    public $totalFiles = 0;
    public $adwareList = array();
    public $criticalPHP = array();
    public $phishing = array();
    public $CMS = array();
    public $redirect = array();
    public $redirectPHPFragment = array();
    public $criticalJS = array();
    public $criticalJSFragment = array();
    public $blackFiles = array();
    public $notRead = array();
    public $bigFiles = array();
    public $criticalPHPSig = array();
    public $criticalPHPFragment = array();
    public $phishingSigFragment = array();
    public $phishingFragment = array();
    public $criticalJSSig = array();
    public $adwareListFragment = array();
    public $warningPHPSig = array();
    public $warningPHPFragment = array();
    public $warningPHP = array();
    public $blacklist = null;
    public $vulnerable = array();
    public $crc = 0;

    public $counter = 0;
    public $foundTotalDirs = 0;
    public $foundTotalFiles = 0;
    public $files_and_ignored = 0;
    public $doorway = array();
    public $symLinks = array();
    public $skippedFolders = array();

    public $hashtable = null;
    public $fileinfo = null;
    public $rescanCount = 0;

    public $maxMinUid = array();
    public $options = array();

    public $signs = array();
}



class Logger
{
    /**
     * $log_file - path and log file name
     * @var string
     */
    protected $log_file;
    /**
     * $file - file
     * @var string
     */
    protected $file;
    /**
     * dateFormat
     * @var string
     */
    protected $dateFormat = 'd-M-Y H:i:s';

    /**
     * @var array
     */
    const LEVELS  = ['ERROR' => 1, 'DEBUG' => 2,  'INFO' => 4, 'ALL' => 7];

    /**
     * @var int
     */
    private $level;

    /**
     * Class constructor
     *
     * @param string       $log_file - path and filename of log
     * @param string|array $level    - Level of logging
     *
     * @throws Exception
     */
    public function __construct($log_file = null, $level = 'INFO')
    {
        if (!$log_file) {
            return;
        }
        if (is_array($level)) {
            foreach ($level as $v) {
                if (!isset(self::LEVELS[$v])) {
                    $v = 'INFO';
                }
                $this->level |= self::LEVELS[$v];
            }
        } else {
            if (isset(self::LEVELS[$level])) {
                $this->level = self::LEVELS[$level];
            } else {
                $this->level = self::LEVELS['INFO'];
            }
        }

        $this->log_file = $log_file;
        //Create log file if it doesn't exist.
        if (!file_exists($log_file)) {
            fopen($log_file, 'w') or exit("Can't create $log_file!");
        }
        //Check permissions of file.
        if (!is_writable($log_file)) {
            //throw exception if not writable
            throw new Exception('ERROR: Unable to write to file!', 1);
        }
    }

    /**
     * Info method (write info message)
     * @param string $message
     * @return void
     */
    public function info($message)
    {
        if ($this->level & self::LEVELS['INFO']) {
            $this->writeLog($message, 'INFO');
        }

    }
    /**
     * Debug method (write debug message)
     * @param string $message
     * @return void
     */
    public function debug($message)
    {
        if ($this->level & self::LEVELS['DEBUG']) {
            $this->writeLog($message, 'DEBUG');
        }
    }
    /**
     * Error method (write error message)
     * @param string $message
     * @return void
     */
    public function error($message)
    {
        if ($this->level & self::LEVELS['ERROR']) {
            $this->writeLog($message, 'ERROR');
        }
    }

    /**
     * Write to log file
     * @param string $message
     * @param string $level
     * @return void
     */
    public function writeLog($message, $level)
    {
        if (!$this->log_file) {
            return;
        }
        // open log file
        if (!is_resource($this->file)) {
            $this->openLog();
        }
        //Grab time - based on timezone in php.ini
        $time = date($this->dateFormat);
        // Write time & message to end of file
        fwrite($this->file, "[$time] : [$level] - $message" . PHP_EOL);
    }
    /**
     * Open log file
     * @return void
     */
    private function openLog()
    {
        $openFile = $this->log_file;
        // 'a' option = place pointer at end of file
        $this->file = fopen($openFile, 'a') or exit("Can't open $openFile!");
    }
    /**
     * Class destructor
     */
    public function __destruct()
    {
        if ($this->file) {
            fclose($this->file);
        }
    }
}


class LoadSignaturesForScan
{
    private $sig_db             = array();
    private $sig_db_meta_info   = array();
    private $sig_db_location    = 'internal';

    private $mode;
    private $debug;

    public $_DBShe;
    public $X_DBShe;
    public $_FlexDBShe;
    public $X_FlexDBShe;
    public $XX_FlexDBShe;
    public $_ExceptFlex;
    public $_AdwareSig;
    public $_PhishingSig;
    public $_JSVirSig;
    public $X_JSVirSig;
    public $_SusDB;
    public $_SusDBPrio;
    public $_DeMapper;
    public $_Mnemo;

    public $whiteUrls;
    public $blackUrls;
    public $ownUrl = null;

    private $count;
    private $count_susp;
    private $result = 0;
    private $last_error = '';

    const SIGN_INTERNAL = 1;
    const SIGN_EXTERNAL = 2;
    const SIGN_IMPORT = 3;
    const SIGN_ERROR = 9;

    public function __construct($avdb_file, $mode, $debug)
    {
        $this->mode = $mode;
        $this->debug = $debug;
        $this->sig_db_meta_info = array(
            'build-date'    => 'n/a',
            'version'       => 'n/a',
            'release-type'  => 'n/a',
        );

        if ($avdb_file && file_exists($avdb_file)) {
            $avdb = explode("\n", gzinflate(base64_decode(str_rot13(strrev(trim(file_get_contents($avdb_file)))))));
            $this->sig_db_location  = 'external';

            $this->_DBShe       = explode("\n", base64_decode($avdb[0]));
            $this->X_DBShe      = explode("\n", base64_decode($avdb[1]));
            $this->_FlexDBShe   = explode("\n", base64_decode($avdb[2]));
            $this->X_FlexDBShe  = explode("\n", base64_decode($avdb[3]));
            $this->XX_FlexDBShe = explode("\n", base64_decode($avdb[4]));
            $this->_ExceptFlex  = explode("\n", base64_decode($avdb[5]));
            $this->_AdwareSig   = explode("\n", base64_decode($avdb[6]));
            $this->_PhishingSig = explode("\n", base64_decode($avdb[7]));
            $this->_JSVirSig    = explode("\n", base64_decode($avdb[8]));
            $this->X_JSVirSig   = explode("\n", base64_decode($avdb[9]));
            $this->_SusDB       = explode("\n", base64_decode($avdb[10]));
            $this->_SusDBPrio   = explode("\n", base64_decode($avdb[11]));
            $this->_DeMapper    = array_combine(explode("\n", base64_decode($avdb[12])), explode("\n", base64_decode($avdb[13])));
            $this->_Mnemo       = @array_flip(@array_combine(explode("\n", base64_decode($avdb[14])), explode("\n", base64_decode($avdb[15]))));

            // get meta information
            $avdb_meta_info = json_decode(base64_decode($avdb[16]), true);

            $this->sig_db_meta_info['build-date'] = $avdb_meta_info ? $avdb_meta_info['build-date'] : 'n/a';
            $this->sig_db_meta_info['version'] = $avdb_meta_info ? $avdb_meta_info['version'] : 'n/a';
            $this->sig_db_meta_info['release-type'] = $avdb_meta_info ? $avdb_meta_info['release-type'] : 'n/a';

            if (count($this->_DBShe) <= 1) {
                $this->_DBShe = array();
            }

            if (count($this->X_DBShe) <= 1) {
                $this->X_DBShe = array();
            }

            if (count($this->_FlexDBShe) <= 1) {
                $this->_FlexDBShe = array();
            }

            if (count($this->X_FlexDBShe) <= 1) {
                $this->X_FlexDBShe = array();
            }

            if (count($this->XX_FlexDBShe) <= 1) {
                $this->XX_FlexDBShe = array();
            }

            if (count($this->_ExceptFlex) <= 1) {
                $this->_ExceptFlex = array();
            }

            if (count($this->_AdwareSig) <= 1) {
                $this->_AdwareSig = array();
            }

            if (count($this->_PhishingSig) <= 1) {
                $this->_PhishingSig = array();
            }

            if (count($this->X_JSVirSig) <= 1) {
                $this->X_JSVirSig = array();
            }

            if (count($this->_JSVirSig) <= 1) {
                $this->_JSVirSig = array();
            }

            if (count($this->_SusDB) <= 1) {
                $this->_SusDB = array();
            }

            if (count($this->_SusDBPrio) <= 1) {
                $this->_SusDBPrio = array();
            }

            $this->result = self::SIGN_EXTERNAL;
        } else {
            InternalSignatures::init();
            $this->_DBShe       = InternalSignatures::$_DBShe;
            $this->X_DBShe      = InternalSignatures::$X_DBShe;
            $this->_FlexDBShe   = InternalSignatures::$_FlexDBShe;
            $this->X_FlexDBShe  = InternalSignatures::$X_FlexDBShe;
            $this->XX_FlexDBShe = InternalSignatures::$XX_FlexDBShe;
            $this->_ExceptFlex  = InternalSignatures::$_ExceptFlex;
            $this->_AdwareSig   = InternalSignatures::$_AdwareSig;
            $this->_PhishingSig = InternalSignatures::$_PhishingSig;
            $this->_JSVirSig    = InternalSignatures::$_JSVirSig;
            $this->X_JSVirSig   = InternalSignatures::$X_JSVirSig;
            $this->_SusDB       = InternalSignatures::$_SusDB;
            $this->_SusDBPrio   = InternalSignatures::$_SusDBPrio;
            $this->_DeMapper    = InternalSignatures::$_DeMapper;
            $this->_Mnemo       = InternalSignatures::$_Mnemo;

            // get meta information
            $avdb_meta_info = InternalSignatures::$db_meta_info;

            $this->sig_db_meta_info['build-date'] = $avdb_meta_info ? $avdb_meta_info['build-date'] : 'n/a';
            $this->sig_db_meta_info['version'] = $avdb_meta_info ? $avdb_meta_info['version'] : 'n/a';
            $this->sig_db_meta_info['release-type'] = $avdb_meta_info ? $avdb_meta_info['release-type'] : 'n/a';

            $this->result = self::SIGN_INTERNAL;
        }

        // use only basic signature subset
        if ($mode < 2) {
            $this->X_FlexDBShe  = array();
            $this->XX_FlexDBShe = array();
            $this->X_JSVirSig   = array();
        }

        // Load custom signatures
        if (file_exists(__DIR__ . '/ai-bolit.sig')) {
            try {
                $s_file = new SplFileObject(__DIR__ . '/ai-bolit.sig');
                $s_file->setFlags(SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE);
                foreach ($s_file as $line) {
                    $this->_FlexDBShe[] = preg_replace('#\G(?:[^~\\\\]+|\\\\.)*+\K~#', '\\~', $line); // escaping ~
                }

                $this->result = self::SIGN_IMPORT;
                $s_file = null; // file handler is closed
            }
            catch (Exception $e) {
                $this->result = self::SIGN_ERROR;
                $this->last_error = $e->getMessage();
            }
        }

        $this->count = count($this->_JSVirSig) + count($this->X_JSVirSig) + count($this->_DBShe) + count($this->X_DBShe) + count($this->_FlexDBShe) + count($this->X_FlexDBShe) + count($this->XX_FlexDBShe);
        $this->count_susp = $this->count + count($this->_SusDB);

        if (!$debug) {
            $this->OptimizeSignatures();
        }

        $this->_DBShe  = array_map('strtolower', $this->_DBShe);
        $this->X_DBShe = array_map('strtolower', $this->X_DBShe);
    }

    private function OptimizeSignatures()
    {
        ($this->mode == 2) && ($this->_FlexDBShe = array_merge($this->_FlexDBShe, $this->X_FlexDBShe, $this->XX_FlexDBShe));
        ($this->mode == 1) && ($this->_FlexDBShe = array_merge($this->_FlexDBShe, $this->X_FlexDBShe));
        $this->X_FlexDBShe = $this->XX_FlexDBShe = array();

        ($this->mode == 2) && ($this->_JSVirSig = array_merge($this->_JSVirSig, $this->X_JSVirSig));
        $this->X_JSVirSig = array();

        $count = count($this->_FlexDBShe);

        for ($i = 0; $i < $count; $i++) {
            if ($this->_FlexDBShe[$i] == '[a-zA-Z0-9_]+?\(\s*[a-zA-Z0-9_]+?=\s*\)')
                $this->_FlexDBShe[$i] = '\((?<=[a-zA-Z0-9_].)\s*[a-zA-Z0-9_]++=\s*\)';
            if ($this->_FlexDBShe[$i] == '([^\?\s])\({0,1}\.[\+\*]\){0,1}\2[a-z]*e')
                $this->_FlexDBShe[$i] = '(?J)\.[+*](?<=(?<d>[^\?\s])\(..|(?<d>[^\?\s])..)\)?\g{d}[a-z]*e';
            if ($this->_FlexDBShe[$i] == '$[a-zA-Z0-9_]\{\d+\}\s*\.$[a-zA-Z0-9_]\{\d+\}\s*\.$[a-zA-Z0-9_]\{\d+\}\s*\.')
                $this->_FlexDBShe[$i] = '\$[a-zA-Z0-9_]\{\d+\}\s*\.\$[a-zA-Z0-9_]\{\d+\}\s*\.\$[a-zA-Z0-9_]\{\d+\}\s*\.';

            $this->_FlexDBShe[$i] = str_replace('http://.+?/.+?\.php\?a', 'http://[^?\s]++(?<=\.php)\?a', $this->_FlexDBShe[$i]);
            $this->_FlexDBShe[$i] = preg_replace('~\[a-zA-Z0-9_\]\+\K\?~', '+', $this->_FlexDBShe[$i]);
            $this->_FlexDBShe[$i] = preg_replace('~^\\\\[d]\+&@~', '&@(?<=\d..)', $this->_FlexDBShe[$i]);
            $this->_FlexDBShe[$i] = str_replace('\s*[\'"]{0,1}.+?[\'"]{0,1}\s*', '.+?', $this->_FlexDBShe[$i]);
            $this->_FlexDBShe[$i] = str_replace('[\'"]{0,1}.+?[\'"]{0,1}', '.+?', $this->_FlexDBShe[$i]);

            $this->_FlexDBShe[$i] = preg_replace('~^\[\'"\]\{0,1\}\.?|^@\*|^\\\\s\*~', '', $this->_FlexDBShe[$i]);
        }

        $this->optSig($this->_FlexDBShe);

        $this->optSig($this->_JSVirSig);
        $this->optSig($this->_AdwareSig);
        $this->optSig($this->_PhishingSig);
        $this->optSig($this->_SusDB);
        //optSig($g_SusDBPrio);
        //optSig($g_ExceptFlex);

        // convert exception rules
        $cnt = count($this->_ExceptFlex);
        for ($i = 0; $i < $cnt; $i++) {
            $this->_ExceptFlex[$i] = trim(Normalization::normalize($this->_ExceptFlex[$i]));
            if ($this->_ExceptFlex[$i] == '')
                unset($this->_ExceptFlex[$i]);
        }

        $this->_ExceptFlex = array_values($this->_ExceptFlex);
    }

    private function optSig(&$sigs)
    {
        $sigs = array_unique($sigs);

        // Add SigId
        foreach ($sigs as &$s) {
            $s .= '(?<X' . AibolitHelpers::myCheckSum($s) . '>)';
        }
        unset($s);

        $fix = array(
            '([^\?\s])\({0,1}\.[\+\*]\){0,1}\2[a-z]*e' => '(?J)\.[+*](?<=(?<d>[^\?\s])\(..|(?<d>[^\?\s])..)\)?\g{d}[a-z]*e',
            'http://.+?/.+?\.php\?a' => 'http://[^?\s]++(?<=\.php)\?a',
            '\s*[\'"]{0,1}.+?[\'"]{0,1}\s*' => '.+?',
            '[\'"]{0,1}.+?[\'"]{0,1}' => '.+?'
        );

        $sigs = str_replace(array_keys($fix), array_values($fix), $sigs);

        $fix = array(
            '~^\\\\[d]\+&@~' => '&@(?<=\d..)',
            '~^((\[\'"\]|\\\\s|@)(\{0,1\}\.?|[?*]))+~' => ''
        );

        $sigs = preg_replace(array_keys($fix), array_values($fix), $sigs);

        $this->optSigCheck($sigs);

        $tmp = array();
        foreach ($sigs as $i => $s) {
            if (!preg_match('~^(?>(?!\.[*+]|\\\\\d)(?:\\\\.|\[.+?\]|.))+$~', $s)) {
                unset($sigs[$i]);
                $tmp[] = $s;
            }
        }

        usort($sigs, 'strcasecmp');
        $txt = implode("\n", $sigs);

        for ($i = 24; $i >= 1; ($i > 4) ? $i -= 4 : --$i) {
            $txt = preg_replace_callback('#^((?>(?:\\\\.|\\[.+?\\]|[^(\n]|\((?:\\\\.|[^)(\n])++\))(?:[*?+]\+?|\{\d+(?:,\d*)?\}[+?]?|)){' . $i . ',})[^\n]*+(?:\\n\\1(?![{?*+]).+)+#im', [$this, 'optMergePrefixes'], $txt);
        }

        $sigs = array_merge(explode("\n", $txt), $tmp);

        $this->optSigCheck($sigs);
    }

    private function optMergePrefixes($m)
    {
        $limit = 8000;

        $prefix     = $m[1];
        $prefix_len = strlen($prefix);

        $len = $prefix_len;
        $r   = array();

        $suffixes = array();
        foreach (explode("\n", $m[0]) as $line) {

            if (strlen($line) > $limit) {
                $r[] = $line;
                continue;
            }

            $s = substr($line, $prefix_len);
            $len += strlen($s);
            if ($len > $limit) {
                if (count($suffixes) == 1) {
                    $r[] = $prefix . $suffixes[0];
                } else {
                    $r[] = $prefix . '(?:' . implode('|', $suffixes) . ')';
                }
                $suffixes = array();
                $len      = $prefix_len + strlen($s);
            }
            $suffixes[] = $s;
        }

        if (!empty($suffixes)) {
            if (count($suffixes) == 1) {
                $r[] = $prefix . $suffixes[0];
            } else {
                $r[] = $prefix . '(?:' . implode('|', $suffixes) . ')';
            }
        }

        return implode("\n", $r);
    }

    private function optMergePrefixes_Old($m)
    {
        $prefix     = $m[1];
        $prefix_len = strlen($prefix);

        $suffixes = array();
        foreach (explode("\n", $m[0]) as $line) {
            $suffixes[] = substr($line, $prefix_len);
        }

        return $prefix . '(?:' . implode('|', $suffixes) . ')';
    }

    /*
     * Checking errors in pattern
     */
    private function optSigCheck(&$sigs)
    {
        $result = true;

        foreach ($sigs as $k => $sig) {
            if (trim($sig) == "") {
                if ($this->debug) {
                    echo ("************>>>>> EMPTY\n     pattern: " . $sig . "\n");
                }
                unset($sigs[$k]);
                $result = false;
            }

            if (@preg_match('~' . $sig . '~smiS', '') === false) {
                $error = error_get_last();
                if ($this->debug) {
                    echo ("************>>>>> " . $error['message'] . "\n     pattern: " . $sig . "\n");
                }
                unset($sigs[$k]);
                $result = false;
            }
        }

        return $result;
    }

    public static function getSigId($l_Found)
    {
        foreach ($l_Found as $key => &$v) {
            if (is_string($key) && $v[1] != -1 && strlen($key) == 9) {
                return substr($key, 1);
            }
        }

        return null;
    }

    public function setOwnUrl($url)
    {
        if (isset($this->blackUrls)) {
            foreach ($this->blackUrls->getDb() as $black) {
                if (preg_match('~' . $black . '~msi', $url)) {
                    $this->ownUrl = null;
                    return;
                }
            }
        }
        $this->ownUrl = $url;
    }

    public function getOwnUrl()
    {
        return $this->ownUrl;
    }

    public function getDBLocation()
    {
        return $this->sig_db_location;
    }

    public function getDB()
    {
        return $this->sig_db;
    }

    public function getDBMetaInfo()
    {
        return $this->sig_db_meta_info;
    }

    public function getDBMetaInfoVersion()
    {
        return $this->sig_db_meta_info['version'];
    }

    public function getDBCount()
    {
        return $this->count;
    }

    public function getDBCountWithSuspicious()
    {
        return $this->count_susp;
    }

    public function getResult()
    {
        return $this->result;
    }

    public function getLastError()
    {
        return $this->last_error;
    }
}


class InternalSignatures
{
    public static $_DBShe;
    public static $X_DBShe;
    public static $_FlexDBShe;
    public static $X_FlexDBShe;
    public static $XX_FlexDBShe;
    public static $_ExceptFlex;
    public static $_AdwareSig;
    public static $_PhishingSig;
    public static $_JSVirSig;
    public static $X_JSVirSig;
    public static $_SusDB;
    public static $_SusDBPrio;
    public static $_DeMapper;
    public static $_Mnemo;
    public static $db_meta_info;

    public static function init()
    {
        //BEGIN_SIG 09/09/2020 12:34:29
self::$_DBShe = unserialize(gzinflate(/*1599644069*/base64_decode("S7QysKquBQA=")));
self::$X_DBShe = unserialize(gzinflate(/*1599644069*/base64_decode("S7QysKquBQA=")));
self::$_FlexDBShe = unserialize(gzinflate(/*1599644069*/base64_decode("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")));
self::$X_FlexDBShe = unserialize(gzinflate(/*1599644069*/base64_decode("S7QysKquBQA=")));
self::$XX_FlexDBShe = unserialize(gzinflate(/*1599644069*/base64_decode("S7QysKquBQA=")));
self::$_ExceptFlex = unserialize(gzinflate(/*1599644069*/base64_decode("S7QysKquBQA=")));
self::$_AdwareSig = unserialize(gzinflate(/*1599644069*/base64_decode("S7QysKquBQA=")));
self::$_PhishingSig = unserialize(gzinflate(/*1599644069*/base64_decode("S7QysKquBQA=")));
self::$_JSVirSig = unserialize(gzinflate(/*1599644069*/base64_decode("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")));
self::$X_JSVirSig = unserialize(gzinflate(/*1599644069*/base64_decode("S7QysKquBQA=")));
self::$_SusDB = unserialize(gzinflate(/*1599644069*/base64_decode("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")));
self::$_SusDBPrio = unserialize(gzinflate(/*1599644069*/base64_decode("S7QysKquBQA=")));
self::$_Mnemo = @array_flip(unserialize(gzinflate(/*1599644069*/base64_decode("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"))));
self::$_DeMapper = unserialize(base64_decode("YTo1OntzOjEwOiJ3aXphcmQucGhwIjtzOjM3OiJjbGFzcyBXZWxjb21lU3RlcCBleHRlbmRzIENXaXphcmRTdGVwIjtzOjE3OiJ1cGRhdGVfY2xpZW50LnBocCI7czozNzoieyBDVXBkYXRlQ2xpZW50OjpBZGRNZXNzYWdlMkxvZygiZXhlYyI7czoxMToiaW5jbHVkZS5waHAiO3M6NDg6IkdMT0JBTFNbIlVTRVIiXS0+SXNBdXRob3JpemVkKCkgJiYgJGFyQXV0aFJlc3VsdCI7czo5OiJzdGFydC5waHAiO3M6NjA6IkJYX1JPT1QuJy9tb2R1bGVzL21haW4vY2xhc3Nlcy9nZW5lcmFsL3VwZGF0ZV9kYl91cGRhdGVyLnBocCI7czoxMDoiaGVscGVyLnBocCI7czo1ODoiSlBsdWdpbkhlbHBlcjo6Z2V0UGx1Z2luKCJzeXN0ZW0iLCJvbmVjbGlja2NoZWNrb3V0X3ZtMyIpOyI7fQ=="));
self::$db_meta_info = unserialize(base64_decode("YTozOntzOjEwOiJidWlsZC1kYXRlIjtzOjEwOiIxNTk5NjQ0MDI3IjtzOjc6InZlcnNpb24iO3M6MTM6IjIwMjAwOTA5LTM3MDQiO3M6MTI6InJlbGVhc2UtdHlwZSI7czoxMDoicHJvZHVjdGlvbiI7fQ=="));

//END_SIG
    }
}

class CmsVersionDetector
{
    const CMS_BITRIX = 'Bitrix';
    const CMS_WORDPRESS = 'WordPress';
    const CMS_JOOMLA = 'Joomla';
    const CMS_DLE = 'Data Life Engine';
    const CMS_IPB = 'Invision Power Board';
    const CMS_WEBASYST = 'WebAsyst';
    const CMS_OSCOMMERCE = 'OsCommerce';
    const CMS_DRUPAL = 'Drupal';
    const CMS_MODX = 'MODX';
    const CMS_INSTANTCMS = 'Instant CMS';
    const CMS_PHPBB = 'PhpBB';
    const CMS_VBULLETIN = 'vBulletin';
    const CMS_SHOPSCRIPT = 'PHP ShopScript Premium';
    
    const CMS_VERSION_UNDEFINED = '0.0';

    private $root_path;
    private $versions;
    private $types;

    public function __construct($root_path = '.') {
        $this->root_path = $root_path;
        $this->versions  = array();
        $this->types     = array();

        $version = '';

        $dir_list   = $this->getDirList($root_path);
        $dir_list[] = $root_path;

        foreach ($dir_list as $dir) {
            if ($this->checkBitrix($dir, $version)) {
                $this->addCms(self::CMS_BITRIX, $version);
            }

            if ($this->checkWordpress($dir, $version)) {
                $this->addCms(self::CMS_WORDPRESS, $version);
            }

            if ($this->checkJoomla($dir, $version)) {
                $this->addCms(self::CMS_JOOMLA, $version);
            }

            if ($this->checkDle($dir, $version)) {
                $this->addCms(self::CMS_DLE, $version);
            }

            if ($this->checkIpb($dir, $version)) {
                $this->addCms(self::CMS_IPB, $version);
            }

            if ($this->checkWebAsyst($dir, $version)) {
                $this->addCms(self::CMS_WEBASYST, $version);
            }

            if ($this->checkOsCommerce($dir, $version)) {
                $this->addCms(self::CMS_OSCOMMERCE, $version);
            }

            if ($this->checkDrupal($dir, $version)) {
                $this->addCms(self::CMS_DRUPAL, $version);
            }

            if ($this->checkMODX($dir, $version)) {
                $this->addCms(self::CMS_MODX, $version);
            }

            if ($this->checkInstantCms($dir, $version)) {
                $this->addCms(self::CMS_INSTANTCMS, $version);
            }

            if ($this->checkPhpBb($dir, $version)) {
                $this->addCms(self::CMS_PHPBB, $version);
            }

            if ($this->checkVBulletin($dir, $version)) {
                $this->addCms(self::CMS_VBULLETIN, $version);
            }

            if ($this->checkPhpShopScript($dir, $version)) {
                $this->addCms(self::CMS_SHOPSCRIPT, $version);
            }

        }
    }

    function getDirList($target) {
        $remove      = array(
            '.',
            '..'
        );
        $directories = array_diff(scandir($target), $remove);

        $res = array();

        foreach ($directories as $value) {
            if (is_dir($target . '/' . $value)) {
                $res[] = $target . '/' . $value;
            }
        }

        return $res;
    }

    function isCms($name, $version) {
        for ($i = 0, $iMax = count($this->types); $i < $iMax; $i++) {
            if ((strpos($this->types[$i], $name) !== false) && (strpos($this->versions[$i], $version) !== false)) {
                return true;
            }
        }

        return false;
    }

    function getCmsList() {
        return $this->types;
    }

    function getCmsVersions() {
        return $this->versions;
    }

    function getCmsNumber() {
        return count($this->types);
    }

    function getCmsName($index = 0) {
        return $this->types[$index];
    }

    function getCmsVersion($index = 0) {
        return $this->versions[$index];
    }

    private function addCms($type, $version) {
        $this->types[]    = $type;
        $this->versions[] = $version;
    }

    private function checkBitrix($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/bitrix')) {
            $res = true;

            $tmp_content = @file_get_contents($this->root_path . '/bitrix/modules/main/classes/general/version.php');
            if (preg_match('|define\("SM_VERSION","(.+?)"\)|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

        }

        return $res;
    }

    private function checkWordpress($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/wp-admin')) {
            $res = true;

            $tmp_content = @file_get_contents($dir . '/wp-includes/version.php');
            if (preg_match('|\$wp_version\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }
        }

        return $res;
    }

    private function checkJoomla($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/libraries/joomla')) {
            $res = true;

            // for 1.5.x
            $tmp_content = @file_get_contents($dir . '/libraries/joomla/version.php');
            if (preg_match('|var\s+\$RELEASE\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];

                if (preg_match('|var\s+\$DEV_LEVEL\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) {
                    $version .= '.' . $tmp_ver[1];
                }
            }

            // for 1.7.x
            $tmp_content = @file_get_contents($dir . '/includes/version.php');
            if (preg_match('|public\s+\$RELEASE\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];

                if (preg_match('|public\s+\$DEV_LEVEL\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) {
                    $version .= '.' . $tmp_ver[1];
                }
            }


            // for 2.5.x and 3.x
            $tmp_content = @file_get_contents($dir . '/libraries/cms/version/version.php');

            if (preg_match('|const\s+RELEASE\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];

                if (preg_match('|const\s+DEV_LEVEL\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) {
                    $version .= '.' . $tmp_ver[1];
                }
            }

        }

        return $res;
    }

    private function checkDle($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/engine/engine.php')) {
            $res = true;

            $tmp_content = @file_get_contents($dir . '/engine/data/config.php');
            if (preg_match('|\'version_id\'\s*=>\s*"(.+?)"|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

            $tmp_content = @file_get_contents($dir . '/install.php');
            if (preg_match('|\'version_id\'\s*=>\s*"(.+?)"|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

        }

        return $res;
    }

    private function checkIpb($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/ips_kernel')) {
            $res = true;

            $tmp_content = @file_get_contents($dir . '/ips_kernel/class_xml.php');
            if (preg_match('|IP.Board\s+v([0-9\.]+)|si', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

        }

        return $res;
    }

    private function checkWebAsyst($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/wbs/installer')) {
            $res = true;

            $tmp_content = @file_get_contents($dir . '/license.txt');
            if (preg_match('|v([0-9\.]+)|si', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

        }

        return $res;
    }

    private function checkOsCommerce($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/includes/version.php')) {
            $res = true;

            $tmp_content = @file_get_contents($dir . '/includes/version.php');
            if (preg_match('|([0-9\.]+)|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

        }

        return $res;
    }

    private function checkDrupal($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/sites/all')) {
            $res = true;

            $tmp_content = @file_get_contents($dir . '/CHANGELOG.txt');
            if (preg_match('|Drupal\s+([0-9\.]+)|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

        }

        if (file_exists($dir . '/core/lib/Drupal.php')) {
            $res = true;

            $tmp_content = @file_get_contents($dir . '/core/lib/Drupal.php');
            if (preg_match('|VERSION\s*=\s*\'(\d+\.\d+\.\d+)\'|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

        }

        if (file_exists($dir . 'modules/system/system.info')) {
            $res = true;

            $tmp_content = @file_get_contents($dir . 'modules/system/system.info');
            if (preg_match('|version\s*=\s*"\d+\.\d+"|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

        }

        return $res;
    }

    private function checkMODX($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/manager/assets')) {
            $res = true;

            // no way to pick up version
        }

        return $res;
    }

    private function checkInstantCms($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/plugins/p_usertab')) {
            $res = true;

            $tmp_content = @file_get_contents($dir . '/index.php');
            if (preg_match('|InstantCMS\s+v([0-9\.]+)|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

        }

        return $res;
    }

    private function checkPhpBb($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/includes/acp')) {
            $res = true;

            $tmp_content = @file_get_contents($dir . '/config.php');
            if (preg_match('|phpBB\s+([0-9\.x]+)|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

        }

        return $res;
    }

    private function checkVBulletin($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        // removed dangerous code from here, see DEF-10390 for details

        return $res;
    }

    private function checkPhpShopScript($dir, &$version) {
        $version = self::CMS_VERSION_UNDEFINED;
        $res     = false;

        if (file_exists($dir . '/install/consts.php')) {
            $res = true;

            $tmp_content = @file_get_contents($dir . '/install/consts.php');
            if (preg_match('|STRING_VERSION\',\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

        }

        return $res;
    }
}


class CloudAssistedRequest
{
    const API_URL = 'https://api.imunify360.com/api/hashes/check'; 

    private $timeout    = 60;
    private $server_id  = '';

    public function __construct($server_id, $timeout = 60) 
    {
        $this->server_id    = $server_id;
        $this->timeout      = $timeout;
    }

    public function checkFilesByHash($list_of_hashes = array())
    {
        if (empty($list_of_hashes)) {
            return array(
                [], 
                [],
                [],
                'white'             => [],
                'black'             => [],
                'verdicts_black'    => [],
            );
        }

        $result = $this->request($list_of_hashes);

        $white          = isset($result['white'])           ? $result['white']          : [];
        $black          = isset($result['black'])           ? $result['black']          : [];
        $verdicts_black = isset($result['verdicts_black'])  ? $result['verdicts_black'] : [];

        return [
            $white,
            $black,
            $verdicts_black,
            'white'             => $white,
            'black'             => $black,
            'verdicts_black'    => $verdicts_black,
        ];
    }
    
    // /////////////////////////////////////////////////////////////////////////

    private function request($list_of_hashes)
    {
        $url = self::API_URL . '?server_id=' . urlencode($this->server_id) . '&indexed=1';

        $data = array(
            'hashes' => $list_of_hashes,
        );

        $json_hashes = json_encode($data);

        $info = [];
        try {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL            , $url);
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST  , 'POST');
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , false);
            curl_setopt($ch, CURLOPT_TIMEOUT        , $this->timeout);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT , $this->timeout);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER , true);
            curl_setopt($ch, CURLOPT_HTTPHEADER     , array('Content-Type: application/json'));
            curl_setopt($ch, CURLOPT_POSTFIELDS     , $json_hashes);
            $response_data  = curl_exec($ch);
            $info           = curl_getinfo($ch);
            $errno          = curl_errno($ch);
            curl_close($ch);
        }
        catch (Exception $e) {
            throw new Exception($e->getMessage());
        }

        $http_code      = isset($info['http_code']) ? $info['http_code'] : 0;
        if ($http_code !== 200) {
            if ($errno == 28) {
                throw new Exception('Reuqest timeout! Return code: ' . $http_code . ' Curl error num: ' . $errno);
            }
            throw new Exception('Invalid response from the Cloud Assisted server! Return code: ' . $http_code . ' Curl error num: ' . $errno);
        }
        $result = json_decode($response_data, true);
        if (is_null($result)) {
            throw new Exception('Invalid json format in the response!');
        }
        if (isset($result['error'])) {
            throw new Exception('API server returned error!');
        }
        if (!isset($result['result'])) {
            throw new Exception('API server returned error! Cannot find field "result".');
        }

        return $result['result'];
    }
}

/**
 * Class Report
 */
abstract class Report
{
    const MAX_ROWS = 15000;
    const AIBOLIT_MAX_NUMBER = 200;

    /**
     * Report constructor.
     * @param $mnemo
     * @param $path
     * @param $db_location
     * @param $db_meta_info_version
     * @param $report_mask
     * @param $extended_report
     * @param $rapid_account_scan
     * @param $ai_version
     * @param $ai_hoster
     * @param $ai_extra_warn
     * @param $ai_expert
     * @param $ai_smart
     * @param $root_path
     * @param $scan_all
     * @param $specific_ext
     * @param $doublecheck
     * @param $use_doublecheck
     * @param $start
     * @param $snum
     * @param $max_size
     * @param $add_prefix
     * @param $no_prefix
     * @param $small
     * @param $file
     * @param $echo
     */
    public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report,
        $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all,
        $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix, $small, $file, $echo)
    {

    }

    /**
     * Generate report
     * @param $vars
     * @param $scan_time
     * @return mixed
     */
    public function generateReport($vars, $scan_time)
    {

    }

    /**
     * Write report to file and return string to stdout after write attempt
     * @return string
     */
    public function write()
    {

    }

    protected static function convertToUTF8($text)
    {
        if (function_exists('mb_convert_encoding')) {
            $text = @mb_convert_encoding($text, 'utf-8', 'auto');
            $text = @mb_convert_encoding($text, 'UTF-8', 'UTF-8');
        }

        return $text;
    }

}

/**
 * Class JSONReport report all data to JSON
 */
class JSONReport extends Report
{
    const REPORT_MASK_DOORWAYS  = 1<<2;
    const REPORT_MASK_SUSP      = 1<<3;
    const REPORT_MASK_FULL      = self::REPORT_MASK_DOORWAYS | self::REPORT_MASK_SUSP;
    
    protected $raw_report;
    private $extended_report;
    private $rapid_account_scan;
    private $ai_extra_warn;
    private $ai_hoster;
    private $report_mask;
    private $noPrefix;
    private $addPrefix;
    private $mnemo;
    private $small;
    protected $file;
    private $echo;

    public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report,
        $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all,
        $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix,
        $small = false, $file = false, $echo = false)
    {
        $this->mnemo = $mnemo;
        $this->ai_extra_warn = $ai_extra_warn;
        $this->extended_report = $extended_report;
        $this->rapid_account_scan = $rapid_account_scan;
        $this->ai_hoster = $ai_hoster;
        $this->report_mask = $report_mask;
        $this->addPrefix = $add_prefix;
        $this->noPrefix = $no_prefix;
        $this->small = $small;
        $this->echo = $echo;

        $this->raw_report = [];
        $this->raw_report['summary'] = array(
            'scan_path'     => $path,
            'report_time'   => time(),
            'ai_version'    => $ai_version,
            'db_location'   => $db_location,
            'db_version'    => $db_meta_info_version,
        );

        $this->file = $file;

        if($this->file) {
            @unlink($this->file);
            @unlink($this->file . '.tmp');
        }
    }

    public function generateReport($vars, $scan_time)
    {
        $tmp = clone $vars;
        if (!$this->small) {
            $tmp->criticalPHP = array_slice($tmp->criticalPHP, 0, self::MAX_ROWS);
            $tmp->criticalJS = array_slice($tmp->criticalJS, 0, self::MAX_ROWS);
            $tmp->notRead = array_slice($tmp->notRead, 0, self::AIBOLIT_MAX_NUMBER);
            $tmp->symLinks = array_slice($tmp->symLinks, 0, self::AIBOLIT_MAX_NUMBER);
            $tmp->warningPHP = array_slice($tmp->warningPHP, 0, self::AIBOLIT_MAX_NUMBER);
            $tmp->bigFiles = array_slice($tmp->bigFiles, 0, self::AIBOLIT_MAX_NUMBER);
            $tmp->doorway = array_slice($tmp->doorway, 0, self::AIBOLIT_MAX_NUMBER);
            $this->generateJSONTables($tmp);
        }

        $this->generateSummary($tmp, $scan_time);

    }

    private function generateSummary($vars, $scan_time)
    {
        $summary_counters                       = array();
        $summary_counters['redirect']           = count($vars->redirect);
        $summary_counters['critical_php']       = count($vars->criticalPHP);
        $summary_counters['critical_js']        = count($vars->criticalJS);
        $summary_counters['cloudhash']          = count($vars->blackFiles);
        $summary_counters['phishing']           = count($vars->phishing);
        $summary_counters['unix_exec']          = 0; // count($g_UnixExec);
        $summary_counters['iframes']            = 0; // count($g_Iframer);
        $summary_counters['not_read']           = count($vars->notRead);
        $summary_counters['base64']             = 0; // count($g_Base64);
        $summary_counters['heuristics']         = 0; // count($g_HeuristicDetected);
        $summary_counters['symlinks']           = count($vars->symLinks);
        $summary_counters['big_files_skipped']  = count($vars->bigFiles);
        $summary_counters['suspicious']         = count($vars->warningPHP);

        $this->raw_report['summary']['counters'] = $summary_counters;
        $this->raw_report['summary']['total_files'] = $vars->foundTotalFiles;
        $this->raw_report['summary']['scan_time'] = $scan_time;

        if ($this->extended_report && $this->rapid_account_scan) {
            $this->raw_report['summary']['counters']['rescan_count'] = $vars->rescanCount;
        }
    }

    private function generateJSONTables($vars)
    {
        $this->raw_report['vulners'] = $this->getRawJsonVuln($vars->vulnerable, $vars);

        if (count($vars->criticalPHP) > 0) {
            $this->raw_report['php_malware'] = $this->getRawJson($vars->criticalPHP, $vars, $vars->criticalPHPFragment, $vars->criticalPHPSig);
        }

        if (count($vars->blackFiles) > 0) {
            $this->raw_report['cloudhash'] = $this->getRawBlackData($vars->blackFiles);
        }

        if (count($vars->criticalJS) > 0) {
            $this->raw_report['js_malware'] = $this->getRawJson($vars->criticalJS, $vars, $vars->criticalJSFragment, $vars->criticalJSSig);
        }

        if (count($vars->notRead) > 0) {
            $this->raw_report['not_read'] = $vars->notRead;
        }

        if ($this->ai_hoster) {
            if (count($vars->phishing) > 0) {
                $this->raw_report['phishing'] = $this->getRawJson($vars->phishing, $vars, $vars->phishingFragment, $vars->phishingSigFragment);
            }
            if (count($vars->redirect) > 0) {
                $this->raw_report['redirect'] = $this->getRawJson($vars->redirect, $vars, $vars->redirectPHPFragment);
            }
            if (count($vars->symLinks) > 0) {
                $this->raw_report['sym_links'] = $vars->symLinks;
            }
        }
        else {
            if (count($vars->adwareList) > 0) {
                $this->raw_report['adware'] = $this->getRawJson($vars->adwareList, $vars, $vars->adwareListFragment);
            }
            if (count($vars->bigFiles) > 0) {
                $this->raw_report['big_files'] = $this->getRawJson($vars->bigFiles, $vars);
            }
            if ((count($vars->doorway) > 0) && JSONReport::checkMask($this->report_mask, JSONReport::REPORT_MASK_DOORWAYS)) {
                $this->raw_report['doorway'] = $this->getRawJson($vars->doorway, $vars);
            }
            if (count($vars->CMS) > 0) {
                $this->raw_report['cms'] = $vars->CMS;
            }
        }

        if ($this->ai_extra_warn) {
            if ((count($vars->warningPHP) > 0) && JSONReport::checkMask($this->report_mask, JSONReport::REPORT_MASK_FULL)) {
                $this->raw_report['suspicious'] = $this->getRawJson($vars->warningPHP, $vars, $vars->warningPHPFragment, $vars->warningPHPSig);
            }
        }
    }
    
    public static function checkMask($mask, $need)
    {
        return (($mask & $need) == $need);
    }
    
    public function write()
    {
        $ret = '';
        $res = @json_encode($this->raw_report);
        if ($this->file!== '.' && $l_FH = fopen($this->file . '.tmp', 'w')) {
            fputs($l_FH, $res);
            fclose($l_FH);
            if (rename($this->file . '.tmp', $this->file)) {
                $ret = "Report written to '$this->file'.";
            } else {
                $ret = "Cannot create '$this->file'.";
            }
        }
        if ($this->echo) {
            echo $res;
        }
        return $ret;
    }

    ////////////////////////////////////////////////////////////////////////////
    
    private function getRawJsonVuln($par_List, $vars) 
    {
        $results = array();
        $l_Src   = array(
            '&quot;',
            '&lt;',
            '&gt;',
            '&amp;',
            '&#039;',
            '<' . '?php.'
        );
        $l_Dst   = array(
            '"',
            '<',
            '>',
            '&',
            '\'',
            '<' . '?php '
        );

        for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) {
            $l_Pos      = $par_List[$i]['ndx'];

            $fn = $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]);
            if (ENCODE_FILENAMES_WITH_BASE64) {
                $res['fn'] = base64_encode($fn);
            } else {
                $res['fn']  = self::convertToUTF8($fn);
            }

            $res['sig'] = $par_List[$i]['id'];

            $res['ct']    = $vars->structure['c'][$l_Pos];
            $res['mt']    = $vars->structure['m'][$l_Pos];
            $res['et']    = $vars->structure['e'][$l_Pos];
            $res['sz']    = $vars->structure['s'][$l_Pos];
            $res['sigid'] = 'vuln_' . md5($vars->structure['n'][$l_Pos] . $par_List[$i]['id']);

            $results[] = $res;
        }

        return $results;
    }

    private function getRawJson($par_List, $vars, $par_Details = null, $par_SigId = null) 
    {
        $results = array();
        $l_Src   = array(
            '&quot;',
            '&lt;',
            '&gt;',
            '&amp;',
            '&#039;',
            '<' . '?php.'
        );
        $l_Dst   = array(
            '"',
            '<',
            '>',
            '&',
            '\'',
            '<' . '?php '
        );

        for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) {
            if ($par_SigId != null) {
                $l_SigId = 'id_' . $par_SigId[$i];
            } else {
                $l_SigId = 'id_n' . rand(1000000, 9000000);
            }

            $l_Pos     = $par_List[$i];

            $fn = $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]);
            if (ENCODE_FILENAMES_WITH_BASE64) {
                $res['fn'] = base64_encode($fn);
            } else {
                $res['fn']  = self::convertToUTF8($fn);
            }

            if ($par_Details != null) {
                $res['sig'] = preg_replace('|(L\d+).+__AI_MARKER__|smi', '[$1]: ...', $par_Details[$i]);
                $res['sig'] = preg_replace('/[^\x20-\x7F]/', '.', $res['sig']);
                $res['sig'] = preg_replace('/__AI_LINE1__(\d+)__AI_LINE2__/', '[$1] ', $res['sig']);
                $res['sig'] = preg_replace('/__AI_MARKER__/', ' @!!!>', $res['sig']);
                $res['sig'] = str_replace($l_Src, $l_Dst, $res['sig']);
            }

            $res['sig'] = self::convertToUTF8($res['sig']);

            $res['ct']    = $vars->structure['c'][$l_Pos];
            $res['mt']    = $vars->structure['m'][$l_Pos];
            $res['sz']    = $vars->structure['s'][$l_Pos];
            $res['et']    = $vars->structure['e'][$l_Pos];
            $res['hash']  = $vars->structure['crc'][$l_Pos];
            $res['sigid'] = $l_SigId;
            if (isset($vars->structure['sha256'][$l_Pos])) {
                $res['sha256'] = $vars->structure['sha256'][$l_Pos];
            } else {
                $res['sha256'] = '';
            }


            if (isset($par_SigId) && isset($this->mnemo[$par_SigId[$i]])) {
                $res['sn'] = $this->mnemo[$par_SigId[$i]];
            } else {
                $res['sn'] = '';
            }

            $results[] = $res;
        }

        return $results;
    }

    private function getRawBlackData($black_list)
    {
        $result = array();
        foreach ($black_list as $filename => $hash)
        {
            try {
                $stat = stat($filename);
                $sz   = $stat['size'];
                $ct   = $stat['ctime'];
                $mt   = $stat['mtime'];
            }
            catch (Exception $e) {
                continue;
            }

            $result[] = array(
                'fn'    => $filename,
                'sig'   => '',
                'ct'    => $ct,
                'mt'    => $mt,
                'et'    => $hash['ts'],
                'sz'    => $sz,
                'hash'  => $hash['h'],
                'sigid' => crc32($filename),
                'sn'    => isset($hash['sn']) ? $hash['sn'] : 'cld',
            );
        }
        return $result;
    }
}


/**
 * Class JSONReport report all data to JSON
 */
class PHPReport extends JSONReport
{
    public function write()
    {
        $ret = '';
        $res = @serialize($this->raw_report);
        if ($l_FH = fopen($this->file . '.tmp', 'w')) {
            fputs($l_FH, $res);
            fclose($l_FH);
            if (rename($this->file . '.tmp', $this->file)) {
                $ret = "Report written to '$this->file'.";
            } else {
                $ret = "Cannot create '$this->file'.";
            }
        }
        return $ret;
    }

    ////////////////////////////////////////////////////////////////////////////
}


/**
 * Class PlainReport report to text file
 */
class PlainReport extends Report
{
    private $extended_report;
    private $rapid_account_scan;
    private $ai_extra_warn;
    private $ai_hoster;
    private $noPrefix;
    private $addPrefix;
    private $mnemo;
    private $file;
    private $raw_report;

    public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report,
        $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all,
        $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix,
        $small = false, $file = false, $echo = false)
    {
        $this->mnemo = $mnemo;
        $this->ai_extra_warn = $ai_extra_warn;
        $this->extended_report = $extended_report;
        $this->rapid_account_scan = $rapid_account_scan;
        $this->ai_hoster = $ai_hoster;
        $this->addPrefix = $add_prefix;
        $this->noPrefix = $no_prefix;
        $this->file = $file;

        if($this->file) {
            @unlink($this->file);
            @unlink($this->file . '.tmp');
        }

        $this->raw_report = '';
        if (function_exists("gethostname") && is_callable("gethostname")) {
            $l_HostName = gethostname();
        } else {
            $l_HostName = '???';
        }

        $this->raw_report = "# Malware list detected by AI-Bolit (https://revisium.com/ai/) on " . date("d/m/Y H:i:s", time()) . " " . $l_HostName . "\n\n";
    }

    public function generateReport($vars, $scan_time = false)
    {
        if (!$this->ai_hoster) {
            foreach ($vars->vulnerable as $l_Item) {
                $this->raw_report .= '[VULNERABILITY] ' . $this->replacePathArray($vars->structure['n'][$l_Item['ndx']]) . ' - ' . $l_Item['id'] . "\n";
            }

            $this->raw_report .= "\n";
        }

        if (count($vars->criticalPHP) > 0) {
            $this->raw_report .= '[SERVER MALWARE]' . "\n" . $this->printPlainList(array_slice($vars->criticalPHP, 0, self::MAX_ROWS), $vars,  $vars->criticalPHPFragment) . "\n";
        }

        if (count($vars->criticalJS) > 0) {
            $this->raw_report .= '[CLIENT MALWARE / JS]' . "\n" . $this->printPlainList(array_slice($vars->criticalJS, 0, self::MAX_ROWS), $vars,  $vars->criticalJSFragment) . "\n";
        }

        if (count($vars->notRead) > 0) {
            $this->raw_report .= '[SCAN ERROR / SKIPPED]' . "\n" . $this->printPlainList(array_slice($vars->notRead, 0, self::AIBOLIT_MAX_NUMBER), $vars) . "\n\n";
        }

        if (count($vars->symLinks) > 0) {
            $this->raw_report .= '[SYMLINKS]' . "\n" . $this->printPlainList(array_slice($vars->symLinks, 0, self::AIBOLIT_MAX_NUMBER), $vars) . "\n\n";
        }

        if (!$this->ai_hoster) {
            if (count($vars->phishing) > 0) {
                $this->raw_report .= '[PHISHING]' . "\n" . $this->printPlainList($vars->phishing, $vars,  $vars->phishingFragment) . "\n";
            }
            if (count($vars->redirect) > 0) {
                $this->raw_report .= printList($vars->redirect, $vars, $vars->redirectPHPFragment);
            }
        }

        if ($this->ai_extra_warn) {
            if (count($vars->warningPHP) > 0) {
                $this->raw_report .= '[SUSPICIOUS]' . "\n" . $this->printPlainList(array_slice($vars->warningPHP, 0, self::AIBOLIT_MAX_NUMBER), $vars,  $vars->warningPHPFragment) . "\n";
            }
        }

        if (!$this->ai_hoster) {
            if (count($vars->adwareList) > 0) {
                $this->raw_report .= '[ADWARE]' . "\n" . $this->printPlainList($vars->adwareList, $vars,  $vars->adwareListFragment) . "\n";
            }
            if (count($vars->bigFiles) > 0) {
                $this->raw_report .= '[BIG FILES / SKIPPED]' . "\n" . $this->printPlainList(array_slice($vars->bigFiles, 0, self::AIBOLIT_MAX_NUMBER), $vars) . "\n\n";
            }
        }

        $this->raw_report = preg_replace('|__AI_LINE1__|smi', '[', $this->raw_report);
        $this->raw_report = preg_replace('|__AI_LINE2__|smi', '] ', $this->raw_report);
        $this->raw_report = preg_replace('|__AI_MARKER__|smi', ' %> ', $this->raw_report);
    }

    public function write()
    {
        $ret = '';
        if ($l_FH = fopen($this->file . '.tmp', "w")) {
            fputs($l_FH, $this->raw_report);
            fclose($l_FH);
        }
        if (rename($this->file . '.tmp', $this->file)) {
            $ret = "Report written to '$this->file'.";
        } else {
            $ret = "Cannot create '$this->file'.";
        }
        return $ret;
    }

    ////////////////////////////////////////////////////////////////////////////
    private function printPlainList($par_List, $vars, $par_Details = null) {

        $l_Result = "";

        $l_Src = array(
            '&quot;',
            '&lt;',
            '&gt;',
            '&amp;',
            '&#039;'
        );
        $l_Dst = array(
            '"',
            '<',
            '>',
            '&',
            '\''
        );

        for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) {
            $l_Pos = $par_List[$i];

            if ($par_Details != null) {

                $l_Body = preg_replace('|(L\d+).+__AI_MARKER__|smi', '$1: ...', $par_Details[$i]);
                $l_Body = preg_replace('/[^\x20-\x7F]/', '.', $l_Body);
                $l_Body = str_replace($l_Src, $l_Dst, $l_Body);

            } else {
                $l_Body = '';
            }

            if (is_file($vars->structure['n'][$l_Pos])) {
                $l_Result .= $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]) . "\t\t\t" . $l_Body . "\n";
            } else {
                $l_Result .= $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$par_List[$i]]) . "\n";
            }

        }
        return $l_Result;
    }

    private function replacePathArray($par_Arr) {
        array_walk($par_Arr, function(&$n) {
            $n = $this->addPrefix . str_replace($this->noPrefix, '', $n);
        });
        return $par_Arr;
    }
}


/**
 * Class CSVReport report table data to CSV
 */
class CSVReport extends Report
{
    const CRITICAL_PHP  = 'p';
    const CRITICAL_JS   = 'j';
    const SUSPICIOUS    = 's';
    const PHISHING      = 'h';
    const VULNERABLE    = 'v';
    const CLOUDHASH     = 'c';

    const BIG_FILES     = 'b';
    const NOT_READ      = 'n';
    const DOORWAY       = 'd';
    const SYMLINKS      = 'm';
    const ADWARE        = 'a';
    const CMS           = 'e';

    private $extended_report;
    private $rapid_account_scan;
    private $ai_extra_warn;
    private $ai_hoster;
    private $noPrefix;
    private $addPrefix;
    private $mnemo;
    private $file;

    public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report,
        $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all,
        $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix,
        $small = false, $file = false, $echo = false)
    {
        $this->mnemo = $mnemo;
        $this->ai_extra_warn = $ai_extra_warn;
        $this->extended_report = $extended_report;
        $this->rapid_account_scan = $rapid_account_scan;
        $this->ai_hoster = $ai_hoster;
        $this->addPrefix = $add_prefix;
        $this->noPrefix = $no_prefix;
        $this->file = $file;

        if($this->file) {
            @unlink($this->file);
            @unlink($this->file . '.tmp');
        }
    }

    public function generateReport($vars, $scan_time = false)
    {
        $this->writeRawCSVVuln($vars->vulnerable, $vars);

        if (count($vars->criticalPHP) > 0) {
            $this->writeRawCSV($vars->criticalPHP, $vars, self::CRITICAL_PHP, $vars->criticalPHPFragment, $vars->criticalPHPSig);
        }

        if (count($vars->blackFiles) > 0) {
            $this->writeRawBlackData($vars->blackFiles);
        }

        if (count($vars->criticalJS) > 0) {
            $this->writeRawCSV($vars->criticalJS, $vars, self::CRITICAL_JS, $vars->criticalJSFragment, $vars->criticalJSSig);
        }

        if (count($vars->notRead) > 0) {
            $this->writeListCSV(self::NOT_READ, $vars->notRead);
        }

        if ($this->ai_hoster) {
            if (count($vars->phishing) > 0) {
                $this->writeRawCSV($vars->phishing, $vars, self::PHISHING, $vars->phishingFragment, $vars->phishingSigFragment);
            }
            if (count($vars->symLinks) > 0) {
                $this->writeListCSV(self::SYMLINKS, $vars->symLinks);
            }
        }
        else {
            if (count($vars->adwareList) > 0) {
                $this->writeRawCSV($vars->adwareList, $vars, self::ADWARE, $vars->adwareListFragment);
            }
            if (count($vars->bigFiles) > 0) {
                $this->writeRawCSV($vars->bigFiles, $vars, self::BIG_FILES);
            }
            if (count($vars->doorway) > 0) {
                $this->writeRawCSV($vars->doorway, $vars, self::DOORWAY);
            }
            if (count($vars->CMS) > 0) {
                $this->writeListCSV(self::CMS, $vars->CMS);
            }
        }

        if ($this->ai_extra_warn) {
            if (count($vars->warningPHP) > 0) {
                $this->writeRawCSV($vars->warningPHP, $vars, self::SUSPICIOUS, $vars->warningPHPFragment, $vars->warningPHPSig);
            }
        }
    }

    public function write()
    {
        $ret = '';
        if ($this->file) {
            if (rename($this->file . '.tmp', $this->file)) {
                $ret = "Report written to '$this->file'.";
            } else {
                $ret = "Cannot create '$this->file'.";
            }
        }
        return $ret;
    }

    ////////////////////////////////////////////////////////////////////////////
    private function writeRawCSVVuln($par_List, $vars)
    {
        if (count($par_List) === 0) {
            return;
        }
        $fh = fopen($this->file . '.tmp', "a+");
        for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) {
            $res = [];
            $l_Pos      = $par_List[$i]['ndx'];

            $res[] = self::VULNERABLE;
            $fn = $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]);
            if (ENCODE_FILENAMES_WITH_BASE64) {
                $res[] = base64_encode($fn);
            } else {
                $res[]  = self::convertToUTF8($fn);
            }

            $res[] = $par_List[$i]['id'];
            $res[] = $vars->structure['c'][$l_Pos];
            $res[] = $vars->structure['m'][$l_Pos];
            $res[] = $vars->structure['s'][$l_Pos];
            $res[] = $vars->structure['e'][$l_Pos];
            $res[] = 'vuln_' . md5($vars->structure['n'][$l_Pos] . $par_List[$i]['id']);
            $res[] = '';
            $res[] = '';
            $res[] = '';
            fputcsv($fh, $res);
        }
        fflush($fh);
        fclose($fh);
    }

    private function writeListCSV($section, $list)
    {
        if (count($list) === 0) {
            return;
        }
        $fh = fopen($this->file . '.tmp', "a+");
        for ($i = 0, $iMax = count($list); $i < $iMax; $i++) {
            $res = [];
            $res[] = $section;
            $res[] = $list[$i];
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';
            fputcsv($fh, $res);
        }
        fflush($fh);
        fclose($fh);
    }

    private function writeRawCSV($par_List, $vars, $section = '', $par_Details = null, $par_SigId = null)
    {
        if (count($par_List) === 0) {
            return;
        }
        $fh = fopen($this->file . '.tmp', "a+");
        $l_Src   = array(
            '&quot;',
            '&lt;',
            '&gt;',
            '&amp;',
            '&#039;',
            '<' . '?php.',
            '\\'
        );
        $l_Dst   = array(
            '"',
            '<',
            '>',
            '&',
            '\'',
            '<' . '?php ',
            ''
        );

        for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) {
            $res = [];
            $res[] = $section;
            if ($par_SigId != null) {
                $l_SigId = 'id_' . $par_SigId[$i];
            } else {
                $l_SigId = 'id_n' . rand(1000000, 9000000);
            }

            $l_Pos     = $par_List[$i];

            $fn = $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]);
            if (ENCODE_FILENAMES_WITH_BASE64) {
                $res[] = base64_encode($fn);
            } else {
                $res[]  = self::convertToUTF8($fn);
            }

            if ($par_Details != null) {
                $sig = preg_replace('|(L\d+).+__AI_MARKER__|smi', '[$1]: ...', $par_Details[$i]);
                $sig = preg_replace('/[^\x20-\x7F]/', '.', $sig);
                $sig = preg_replace('/__AI_LINE1__(\d+)__AI_LINE2__/', '[$1] ', $sig);
                $sig = preg_replace('/__AI_MARKER__/', ' @!!!>', $sig);
                $sig = str_replace($l_Src, $l_Dst, $sig);
                $sig = self::convertToUTF8($sig);
            }

            $res[]    = $sig;
            $res[]    = $vars->structure['c'][$l_Pos];
            $res[]    = $vars->structure['m'][$l_Pos];
            $res[]    = $vars->structure['s'][$l_Pos];
            $res[]    = $vars->structure['e'][$l_Pos];
            $res[]    = $l_SigId;
            $res[]    = $vars->structure['crc'][$l_Pos];

            if (isset($par_SigId) && isset($this->mnemo[$par_SigId[$i]])) {
                $res[] = $this->mnemo[$par_SigId[$i]];
            } else {
                $res[] = '';
            }

            if (isset($vars->structure['sha256'][$l_Pos])) {
                $res[] = $vars->structure['sha256'][$l_Pos];
            } else {
                $res[] = '';
            }
            fputcsv($fh, $res);
        }
        fflush($fh);
        fclose($fh);
    }

    private function writeRawBlackData($black_list)
    {
        if (count($black_list) === 0) {
            return;
        }
        $fh = fopen($this->file . '.tmp', "a+");
        foreach ($black_list as $filename => $hash)
        {
            $res = [];
            try {
                $stat = stat($filename);
                $sz   = $stat['size'];
                $ct   = $stat['ctime'];
                $mt   = $stat['mtime'];
            }
            catch (Exception $e) {
                continue;
            }
            $res[] = self::CLOUDHASH;
            $res[] = $filename;
            $res[] = '';
            $res[] = $ct;
            $res[] = $mt;
            $res[] = $sz;
            $res[] = $hash['ts'];
            $res[] = crc32($filename);
            $res[] = $hash['h'];
            $res[] = isset($hash['sn']) ? $hash['sn'] : 'cld';
            $res[] = '';

            fputcsv($fh, $res);
        }
        fflush($fh);
        fclose($fh);
    }
}


/**
 * Class DoublecheckReport generate doublecheck file
 */
class DoublecheckReport extends Report
{
    private $raw_report;
    private $skip = false;
    private $file = false;
    private $res = '';

    public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report,
        $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all,
        $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix,
        $small = false, $file = false, $echo = false)
    {
        $this->raw_report = [];

        $this->file = $file;

        if(file_exists($this->file)) {
            $this->skip = true;
            $this->res .= $this->file . ' already exists.' . PHP_EOL;
        } else if ($l_FH = fopen($this->file . '.tmp', 'w')) {
            fputs($l_FH, '<?php die("Forbidden"); ?>' . "\n");
            fclose($l_FH);
        } else {
            $this->skip = true;
            $this->res .= 'Error! Cannot create ' . $this->file . PHP_EOL;
        }
    }

    public function generateReport($vars, $scan_time)
    {
        if ($this->skip) {
            return;
        }

        $l_CurrPath = dirname(__FILE__);

        if (!isset($vars->criticalPHP)) {
            $vars->criticalPHP = array();
        }
        if (!isset($vars->criticalJS)) {
            $vars->criticalJS = array();
        }
        if (!isset($vars->phishing)) {
            $vars->phishing = array();
        }
        if (!isset($vars->adwareList)) {
            $vars->adwareList = array();
        }
        if (!isset($vars->redirect)) {
            $vars->redirect = array();
        }

        $this->raw_report = array_merge($vars->criticalPHP, $vars->criticalJS, $vars->phishing, $vars->adwareList, $vars->redirect);
        $this->raw_report = array_values(array_unique($this->raw_report));

        for ($i = 0, $iMax = count($this->raw_report); $i < $iMax; $i++) {
            $this->raw_report[$i] = str_replace($l_CurrPath, '.', $vars->structure['n'][$this->raw_report[$i]]);
        }

        $this->raw_report = array_values(array_unique($this->raw_report));
        if (count($this->raw_report) === 0) {
            $this->skip = true;
            unlink($this->file . '.tmp');
        }
    }
    
    public function write()
    {
        $ret = '';
        if ($this->skip) {
            return $this->res;
        }
        $fh = fopen($this->file . '.tmp', "a+");
        for ($i = 0, $iMax = count($this->raw_report); $i < $iMax; $i++) {
            fputs($fh, $this->raw_report[$i] . "\n");
        }
        fclose($fh);
        if (rename($this->file . '.tmp', $this->file)) {
            $ret = "Report written to '$this->file'.";
        } else {
            $ret = "Cannot create '$this->file'.";
        }
        return $ret;
    }
}


/**
 * Class HTMLReport report all data to HTML
 */
class HTMLReport extends Report
{
    const REPORT_MASK_DOORWAYS  = 1<<2;
    const REPORT_MASK_SUSP      = 1<<3;
    const REPORT_MASK_FULL      = self::REPORT_MASK_DOORWAYS | self::REPORT_MASK_SUSP;
    
    private $raw_report;
    private $extended_report;
    private $rapid_account_scan;
    private $ai_extra_warn;
    private $ai_hoster;
    private $report_mask;
    private $noPrefix;
    private $addPrefix;
    private $mnemo;
    private $small;
    private $file;
    private $echo;
    private $template;
    private $max_size;
    private $start;
    private $doublecheck;

    public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report,
        $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all,
        $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix,
        $small = false, $file = false, $echo = false)
    {
        $this->mnemo = $mnemo;
        $this->ai_extra_warn = $ai_extra_warn;
        $this->extended_report = $extended_report;
        $this->rapid_account_scan = $rapid_account_scan;
        $this->ai_hoster = $ai_hoster;
        $this->report_mask = $report_mask;
        $this->addPrefix = $add_prefix;
        $this->noPrefix = $no_prefix;
        $this->small = $small;
        $this->echo = $echo;
        $this->max_size = $max_size;
        $this->start = $start;
        $this->doublecheck = $doublecheck;

        $this->raw_report = '';
        $this->file = $file;

        if($this->file) {
            @unlink($this->file);
            @unlink($this->file . '.tmp');
        }

        if (file_exists(dirname(__FILE__) . '/ai-design.html')) {
            $this->template = Template::create(file_get_contents(dirname(__FILE__) . '/ai-design.html'));
        } else {
            $this->template = Template::create(TemplateList::MAIN_PAGE);
            $this->template->set('msg1', Translate::getStr('data_table.length_menu'));
            $this->template->set('msg2', Translate::getStr('data_table.zero_records'));
            $this->template->set('msg3', Translate::getStr('data_table.info'));
            $this->template->set('msg4', Translate::getStr('data_table.info_empty'));
            $this->template->set('msg5', Translate::getStr('data_table.info_filtered'));
            $this->template->set('msg6', Translate::getStr('data_table.search'));
            $this->template->set('msg7', Translate::getStr('data_table.paginate.first'));
            $this->template->set('msg8', Translate::getStr('data_table.paginate.previous'));
            $this->template->set('msg9', Translate::getStr('data_table.paginate.next'));
            $this->template->set('msg10', Translate::getStr('data_table.paginate.last'));
            $this->template->set('msg11', Translate::getStr('data_table.aria.sort_ascending'));
            $this->template->set('msg12', Translate::getStr('data_table.aria.sort_descending'));
        }

        $this->template->set('MAIN_TITLE', Translate::getStr('header.scan_report_title'));

        $this->template->set('MODE', $ai_expert . '/' . $ai_smart);

        if (AI_EXPERT == 0) {
            $this->raw_report .= '<div class="rep">' . Translate::getStr('scan.offer_modes_after_express') . '</div>';
        }

        $this->template->set('HEAD_TITLE', Translate::getStr('report_for') . $this->addPrefix . str_replace($this->noPrefix, '', $root_path));

        $this->template->set('SERVICE_INFO', htmlspecialchars("[" . @ini_get('mbstring.internal_encoding') . "][" . $snum . "]"));

        $this->template->set('PATH_URL', (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $this->addPrefix . str_replace($this->noPrefix, '', $this->addSlash($root_path))));

        $this->template->set('VERSION', $ai_version);

        $this->template->set('WARN_QUICK', (($scan_all || $specific_ext) ? '' : Translate::getStr('notice.scan_express', [$doublecheck])));

        if ($use_doublecheck) {
            if (Translate::getStr('file.scanned_manual', [$this->doublecheck, $this->doublecheck]) != '') {
                $this->raw_report .= '<div class="rep">' . Translate::getStr('file.scanned_manual', [$this->doublecheck, $this->doublecheck]) . '</div>';
            }
        }
    }

    public function generateReport($vars, $scan_time)
    {
        $l_ShowOffer = false;

        $this->template->set('SCANNED', Translate::getStr('info.files_checked', [$vars->totalFolder, $vars->totalFiles]));

        $l_Summary = '<div class="title">' . Translate::getStr('report.summary') . '</div>';
        $l_Summary .= '<table cellspacing=0 border=0>';

        if (count($vars->redirect) > 0) {
            $l_Summary .= $this->makeSummary(Translate::getStr('mobile_redirects'), count($vars->redirect), 'crit');
        }

        if (count($vars->criticalPHP) > 0) {
            $l_Summary .= $this->makeSummary(Translate::getStr('malware'), count($vars->criticalPHP), "crit");
        }

        if (count($vars->criticalJS) > 0) {
            $l_Summary .= $this->makeSummary(Translate::getStr('js_virused'), count($vars->criticalJS), "crit");
        }

        if (count($vars->phishing) > 0) {
            $l_Summary .= $this->makeSummary(Translate::getStr('phishing_pages'), count($vars->phishing), "crit");
        }

        if (count($vars->notRead) > 0) {
            $l_Summary .= $this->makeSummary(Translate::getStr('error.read_file'), count($vars->notRead), "crit");
        }

        if (count($vars->warningPHP) > 0) {
            $l_Summary .= $this->makeSummary(Translate::getStr('suspicious'), count($vars->warningPHP), "warn");
        }

        if (count($vars->bigFiles) > 0) {
            $l_Summary .= $this->makeSummary(Translate::getStr('skipped_large_file'), count($vars->bigFiles), "warn");
        }

        if (count($vars->symLinks) > 0) {
            $l_Summary .= $this->makeSummary(Translate::getStr('link.symbolic'), count($vars->symLinks), "warn");
        }

        $l_Summary .= "</table>";

        $l_ArraySummary                      = array();
        $l_ArraySummary["redirect"]          = count($vars->redirect);
        $l_ArraySummary["critical_php"]      = count($vars->criticalPHP);
        $l_ArraySummary["critical_js"]       = count($vars->criticalJS);
        $l_ArraySummary["phishing"]          = count($vars->phishing);
        $l_ArraySummary["unix_exec"]         = 0; // count($g_UnixExec);
        $l_ArraySummary["iframes"]           = 0; // count($g_Iframer);
        $l_ArraySummary["not_read"]          = count($vars->notRead);
        $l_ArraySummary["base64"]            = 0; // count($g_Base64);
        $l_ArraySummary["heuristics"]        = 0; // count($g_HeuristicDetected);
        $l_ArraySummary["symlinks"]          = count($vars->symLinks);
        $l_ArraySummary["big_files_skipped"] = count($vars->bigFiles);
        $l_ArraySummary["suspicious"]        = count($vars->warningPHP);

        if (function_exists('json_encode')) {
            $l_Summary .= "<!--[json]" . json_encode($l_ArraySummary) . "[/json]-->";
        }

        $l_Summary .= "<div class=details style=\"margin: 20px 20px 20px 0\">" . Translate::getStr('notice.files_may_not_malicious') . "</div>\n";

        $this->template->set('SUMMARY', $l_Summary);

        $this->raw_report .= Translate::getStr('critical.title');

        if(!$this->ai_hoster) {
            if (count($vars->vulnerable) > 0) {
                $this->raw_report .= '<div class="note_vir">' . Translate::getStr('script.vulnerable') . ' (' . count($vars->vulnerable) . ')</div><div class="crit">';
                foreach ($vars->vulnerable as $l_Item) {
                    $this->raw_report .= '<li>' . AibolitHelpers::makeSafeFn($vars->structure['n'][$l_Item['ndx']], $this->addPrefix, $this->noPrefix, true) . ' - ' . $l_Item['id'] . '</li>';
                }
                $this->raw_report .= '</div><p>' . PHP_EOL;
            }
        }

        if (count($vars->criticalPHP) > 0) {
            $criticalPHP              = array_slice($vars->criticalPHP, 0, self::MAX_ROWS);
            $this->raw_report .= '<div class="note_vir">' . Translate::getStr('detected.shell_scripts') . ' (' . count($criticalPHP) . ')</div><div class="crit">';
            $this->raw_report .= $this->printList($criticalPHP, $vars, $vars->criticalPHPFragment, $vars->criticalPHPSig, 'table_crit');
            $this->raw_report .= '</div>' . PHP_EOL;
            $l_ShowOffer = true;
        } else {
            $this->raw_report .= '<div class="ok"><b>' . Translate::getStr('not_detected.shell_scripts') . '</b></div>';
        }

        if (count($vars->criticalJS) > 0) {
            $criticalJS              = array_slice($vars->criticalJS, 0, self::MAX_ROWS);
            $this->raw_report .= '<div class="note_vir">' . Translate::getStr('detected.javascript') . ' (' . count($criticalJS) . ')</div><div class="crit">';
            $this->raw_report .= $this->printList($criticalJS, $vars, $vars->criticalJSFragment, $vars->criticalJSSig, 'table_vir');
            $this->raw_report .= "</div>" . PHP_EOL;

            $l_ShowOffer = true;
        }

        if (count($vars->notRead) > 0) {
            $notRead               = array_slice($vars->notRead, 0, self::AIBOLIT_MAX_NUMBER);
            $this->raw_report .= '<div class="note_vir">' . Translate::getStr('warning.reading_error') . ' (' . count($notRead) . ')</div><div class="crit">';
            $this->raw_report .= $this->printList($notRead, $vars);
            $this->raw_report .= "</div><div class=\"spacer\"></div>" . PHP_EOL;
        }

        if (!$this->ai_hoster) {
            if (count($vars->phishing) > 0) {
                $this->raw_report .= '<div class="note_vir">' . Translate::getStr('detected.phishing_pages') . ' (' . count($vars->phishing) . ')</div><div class="crit">';
                $this->raw_report .= $this->printList($vars->phishing, $vars, $vars->phishingFragment, $vars->phishingSigFragment, 'table_vir');
                $this->raw_report .= "</div>" . PHP_EOL;

                $l_ShowOffer = true;
            }

            if (count($vars->redirect) > 0) {
                $l_ShowOffer             = true;
                $this->raw_report .= '<div class="note_vir">' . Translate::getStr('suspicion.htaccess') . ' (' . count($vars->redirect) . ')</div><div class="crit">';
                $this->raw_report .= "</div>" . PHP_EOL;
            }

            if (count($vars->symLinks) > 0) {
                $symLinks               = array_slice($vars->symLinks, 0, self::AIBOLIT_MAX_NUMBER);
                $this->raw_report .= '<div class="note_vir">' . Translate::getStr('symlinks') . ' (' . count($symLinks) . ')</div><div class="crit">';
                $this->raw_report .= nl2br(AibolitHelpers::makeSafeFn(implode("\n", $symLinks), $this->addPrefix, $this->noPrefix, true));
                $this->raw_report .= "</div><div class=\"spacer\"></div>";
            }
        }
        if ($this->ai_extra_warn) {
            $l_WarningsNum = count($vars->warningPHP);
            if ($l_WarningsNum > 0) {
                $this->raw_report .= "<div style=\"margin-top: 20px\" class=\"title\">" . Translate::getStr('warnings') . "</div>";
            }
            if ($l_WarningsNum > 0) {
                $warningPHP              = array_slice($vars->warningPHP, 0, self::AIBOLIT_MAX_NUMBER);
                $this->raw_report .= '<div class="note_warn">' . Translate::getStr('suspicion.code') . ' (' . count($warningPHP) . ')</div><div class="warn">';
                $this->raw_report .= $this->printList($warningPHP, $vars, $vars->warningPHPFragment, $vars->warningPHPSig, 'table_warn');
                $this->raw_report .= '</div>' . PHP_EOL;
            }
        }
        if (!$this->ai_hoster) {
            $l_WarningsNum = count($vars->bigFiles) + count($vars->adwareList) + count($vars->doorway) + count($vars->warningPHP) + count($vars->skippedFolders);

            if ($l_WarningsNum > 0) {
                $this->raw_report .= "<div style=\"margin-top: 20px\" class=\"title\">" . Translate::getStr('warnings') . "</div>";
            }

            if (count($vars->adwareList) > 0) {
                $this->raw_report .= '<div class="note_warn">' . Translate::getStr('detected.bad_links') . '</div><div class="warn">';
                $this->raw_report .= $this->printList($vars->adwareList, $vars, $vars->adwareListFragment);
                $this->raw_report .= "</div>" . PHP_EOL;
            }

            if (count($vars->bigFiles) > 0) {
                $bigFiles               = array_slice($vars->bigFiles, 0, self::AIBOLIT_MAX_NUMBER);
                $this->raw_report .= "<div class=\"note_warn\">" . Translate::getStr('skipped.large_file', [$this->max_size]) . '</div><div class="warn">';
                $this->raw_report .= $this->printList($bigFiles, $vars);
                $this->raw_report .= "</div>";
            }

            if (count($vars->doorway) > 0) {
                $doorway              = array_slice($vars->doorway, 0, self::AIBOLIT_MAX_NUMBER);
                $this->raw_report .= '<div class="note_warn">' . Translate::getStr('suspicion.doorway') . '</div><div class="warn">';
                $this->raw_report .= nl2br(AibolitHelpers::makeSafeFn(implode("\n", $doorway), $this->addPrefix, $this->noPrefix, true));
                $this->raw_report .= "</div>" . PHP_EOL;

            }

            if (count($vars->CMS) > 0) {
                $this->raw_report .= "<div class=\"note_warn\">" . Translate::getStr('founded_CMS') . "<br/>";
                $this->raw_report .= nl2br(AibolitHelpers::makeSafeFn(implode("\n", $vars->CMS), $this->addPrefix, $this->noPrefix));
                $this->raw_report .= "</div>";
            }
        }

        if (function_exists('memory_get_peak_usage')) {
            $this->template->set('MEMORY', Translate::getStr('memory_used') . AibolitHelpers::bytes2Human(memory_get_peak_usage()));
        }

        if ($l_ShowOffer) {
            $this->template->set('OFFER', Translate::getStr('offer.when_has_critical'));
        } else {
            $this->template->set('OFFER', Translate::getStr('offer.when_no_critical'));
        }

        $this->template->set('OFFER_OUR_PRODUCTS', Translate::getStr('offer_our_products'));

        $this->template->set('CAUTION', Translate::getStr('сaution.aibolit_file'));

        $this->template->set('CREDITS', Translate::getStr('info.non_commercial_use'));

        $this->template->set('FOOTER', Translate::getStr('footer'));

        $this->template->set('STAT', Translate::getStr('info.time_elapsed', [$scan_time, date('d-m-Y в H:i:s', floor($this->start)), date('d-m-Y в H:i:s')]));

////////////////////////////////////////////////////////////////////////////
        $this->template->set('MAIN_CONTENT', $this->raw_report);
    }
    
    public function write()
    {
        $ret = '';
        $res = $this->template->render();
        if ($l_FH = fopen($this->file . '.tmp', "w")) {
            fputs($l_FH, $res);
            fclose($l_FH);
        }
        if (rename($this->file . '.tmp', $this->file)) {
            $ret = "Report written to '$this->file'.";
        } else {
            $ret = "Cannot create '$this->file'.";
        }
        return $ret;
    }

    ////////////////////////////////////////////////////////////////////////////

    /////////////////////////////////////////////////////////////////////////////////////

    private function makeSummary($par_Str, $par_Number, $par_Style)
    {
        return '<tr><td class="' . $par_Style . '" width=400>' . $par_Str . '</td><td class="' . $par_Style . '">' . $par_Number . '</td></tr>';
    }

    private function printList($par_List, $vars, $par_Details = null, $par_SigId = null, $par_TableName = null)
    {

        $i = 0;

        if ($par_TableName == null) {
            $par_TableName = 'table_' . rand(1000000, 9000000);
        }

        $l_Result = '';
        $l_Result .= "<div class=\"flist\"><table cellspacing=1 cellpadding=4 border=0 id=\"" . $par_TableName . "\">";

        $l_Result .= "<thead><tr class=\"tbgh" . ($i % 2) . "\">";
        $l_Result .= "<th width=70%>" . Translate::getStr('path') . "</th>";
        $l_Result .= "<th>" . Translate::getStr('property_change') . "</th>";
        $l_Result .= "<th>" . Translate::getStr('content_change') . "</th>";
        $l_Result .= "<th width=90>" . Translate::getStr('size') . "</th>";
        $l_Result .= "<th width=0 class=\"hidd\">CRC32</th>";
        $l_Result .= "<th width=0 class=\"hidd\"></th>";
        $l_Result .= "<th width=0 class=\"hidd\"></th>";
        $l_Result .= "<th width=0 class=\"hidd\"></th>";

        $l_Result .= "</tr></thead><tbody>";

        for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) {
            if ($par_SigId != null) {
                $l_SigId = 'id_' . $par_SigId[$i];
            } else {
                $l_SigId = 'id_z' . rand(1000000, 9000000);
            }

            $l_Pos = $par_List[$i];

            $l_Creat = $vars->structure['c'][$l_Pos] > 0 ? date("d/m/Y H:i:s", $vars->structure['c'][$l_Pos]) : '-';
            $l_Modif = $vars->structure['m'][$l_Pos] > 0 ? date("d/m/Y H:i:s", $vars->structure['m'][$l_Pos]) : '-';
            $l_Size  = $vars->structure['s'][$l_Pos] > 0 ? AibolitHelpers::bytes2Human($vars->structure['s'][$l_Pos]) : '-';

            if ($par_Details != null) {
                $l_WithMarker = preg_replace('|__AI_MARKER__|smi', '<span class="marker">&nbsp;</span>', $par_Details[$i]);
                $l_WithMarker = preg_replace('|__AI_LINE1__|smi', '<span class="line_no">', $l_WithMarker);
                $l_WithMarker = preg_replace('|__AI_LINE2__|smi', '</span>', $l_WithMarker);

                $l_Body = '<div class="details">';

                if ($par_SigId != null) {
                    $l_Body .= '<a href="#" onclick="return hsig(\'' . $l_SigId . '\')">[x]</a> ';
                }

                $l_Body .= $l_WithMarker . '</div>';
            } else {
                $l_Body = '';
            }

            $l_Result .= '<tr class="tbg' . ($i % 2) . '" o="' . $l_SigId . '">';

            if (is_file($vars->structure['n'][$l_Pos])) {
                $l_Result .= '<td><div class="it"><a class="it">' . AibolitHelpers::makeSafeFn($this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]), $this->addPrefix, $this->noPrefix) . '</a></div>' . $l_Body . '</td>';
            } else {
                $l_Result .= '<td><div class="it"><a class="it">' . AibolitHelpers::makeSafeFn($this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$par_List[$i]]), $this->addPrefix, $this->noPrefix) . '</a></div></td>';
            }

            $l_Result .= '<td align=center><div class="ctd">' . $l_Creat . '</div></td>';
            $l_Result .= '<td align=center><div class="ctd">' . $l_Modif . '</div></td>';
            $l_Result .= '<td align=center><div class="ctd">' . $l_Size . '</div></td>';
            $l_Result .= '<td class="hidd"><div class="hidd">' . $vars->structure['crc'][$l_Pos] . '</div></td>';
            $l_Result .= '<td class="hidd"><div class="hidd">' . 'x' . '</div></td>';
            $l_Result .= '<td class="hidd"><div class="hidd">' . $vars->structure['m'][$l_Pos] . '</div></td>';
            $l_Result .= '<td class="hidd"><div class="hidd">' . $l_SigId . '</div></td>';
            $l_Result .= '</tr>';

        }

        $l_Result .= "</tbody></table></div><div class=clear style=\"margin: 20px 0 0 0\"></div>";

        return $l_Result;
    }

    private function addSlash($dir)
    {
        return rtrim($dir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
    }
}


class CloudAssistedFiles
{
    private $white = [];
    private $black = [];

    public function __construct(CloudAssistedRequest $car, $file_list, $vars)
    {
        $list_of_hash       = [];
        $list_of_filepath   = [];
        foreach ($file_list as $index => $filepath)
        {
            if (!file_exists($filepath) || !is_readable($filepath) || is_dir($filepath)) {
                continue;
            }
            try {
                $list_of_hash[]     = hash('sha256', file_get_contents($filepath));
                $list_of_filepath[] = $filepath;
            }
            catch (Exception $e) {
                
            }
        }
        unset($file_list);
        if ($vars->hashtable !== null) {
            $vars->hashtable->add($list_of_filepath, $list_of_hash);
        }
        try {
            list($white_raw, $black_raw, $verdicts_black_raw) = $car->checkFilesByHash($list_of_hash);
        }
        catch (Exception $e) {
            throw $e;
        }
        
        $this->white = $this->getListOfFile($white_raw, $list_of_hash, $list_of_filepath);
        $this->black = $this->getListOfFile($black_raw, $list_of_hash, $list_of_filepath, $verdicts_black_raw);

        unset($white_raw, $black_raw, $verdicts_black_raw, $list_of_hash, $list_of_filepath);
    }
    
    public function getWhiteList()
    {
        return $this->white;
    }

    public function getBlackList()
    {
        return $this->black;
    }
    
    // =========================================================================
    
    private function getListOfFile($data_raw, $list_of_hash, $list_of_filepath, $verdicts = [])
    {
        $result = [];
        foreach ($data_raw as $index => $hash_index)
        {
            if (!isset($list_of_hash[$hash_index])) {
                continue;
            }
            $hash_result = [
                'h'     => $list_of_hash[$hash_index],
                'ts'    => time(),
            ];
            if ($verdicts) {
                if (!isset($verdicts[$index])) {
                    throw new Exception('Wrong CloudAssisted format. List of verdicts has structure different from main list.');
                }
                $hash_result['sn'] = $verdicts[$index];
            }
            $result[$list_of_filepath[$hash_index]] = $hash_result;
        }
        return $result;
    }    
}


class DetachedMode
{
    protected $workdir;
    protected $scan_id;
    protected $pid_file;
    protected $report_file;
    protected $csvreport_file;
    protected $done_file;
    protected $vars;
    protected $start_time;
    protected $json_report;
    protected $sock_file;
    protected $reports;
    protected $finder;
    protected $debug;

    public function __construct($finder, $debug, $scan_id, $vars, $start_time, $json_report, $basedir = '/var/imunify360/aibolit/run', $sock_file = '/var/run/defence360agent/generic_sensor.sock.2')
    {
        $this->scan_id  = $scan_id;
        $this->vars     = $vars;
        $this->setWorkDir($basedir, $scan_id);
        $this->pid_file     = $this->workdir . '/pid';
        $this->report_file  = $this->workdir . '/report.json';
        $this->csvreport_file  = $this->workdir . '/report.csv';
        $this->done_file    = $this->workdir . '/done';
        $this->start_time   = $start_time;
        $this->json_report  = $json_report;
        $this->setSocketFile($sock_file);
        $this->savePid();
        $this->checkWorkDir($this->workdir);
        if (isset($vars->options['json_report']) && !empty($vars->options['json_report']) && $vars->options['json_report'] !== '.') {
            $this->report_file  = $vars->options['json_report'];
        }
        if (isset($vars->options['csv_report']) && !empty($vars->options['csv_report']) && $vars->options['csv_report'] !== '.') {
            $this->csvreport_file  = $vars->options['csv_report'];
            $this->reports[CSVReport::class] = $this->csvreport_file;
        }
        $this->reports[JSONReport::class] = $this->report_file;
        $this->finder = $finder;
        $this->debug = $debug;
    }
    
    public function scanListing($listing, $use_base64)
    {
        $this->checkList($listing);
        $this->scanFilesFromListingFile($listing, $use_base64);
        $this->writeReport();
        $this->complete();
    }
    
    public function scanDirectories($dir)
    {
        file_exists(QUEUE_FILENAME) && unlink(QUEUE_FILENAME);
        $scan = new Scanner($this->finder, $this->vars);
        if (method_exists($scan, 'QCR_ScanDirectories')) {
            $scan->QCR_ScanDirectories($dir);
        }
        $this->scanFilesFromListingFile(QUEUE_FILENAME, true);
        file_exists(QUEUE_FILENAME) && unlink(QUEUE_FILENAME);
        $this->writeReport();
        $this->complete();
        unset($scan);
    }

    // /////////////////////////////////////////////////////////////////////////
    
    protected function scanFilesFromListingFile($list_filepath, $use_base64 = false)
    {
        if (!is_file($list_filepath) || !is_readable($list_filepath)) {
            $this->vars->foundTotalFiles = 0;
            return;
        }
        $s_file = new SplFileObject($list_filepath);
        $s_file->setFlags(SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE);
        
        $s_file->seek($s_file->getSize());
        $this->vars->foundTotalFiles = $s_file->key();
        $s_file->seek(0);

        $scan = new Scanner($this->finder, $this->vars);
        if (method_exists($scan, 'QCR_GoScan')) {
            $scan->QCR_GoScan($s_file, null, $use_base64, false);
            $scan->whitelisting();
        }
        unset($scan);
        unset($s_file);
    }

    protected function checkWorkDir($workdir)
    {
        if (!file_exists($workdir) && !mkdir($workdir) && !is_dir($workdir)) {
            die('Error! Cannot create workdir ' . $workdir . ' for detached scan.');
        } elseif (file_exists($workdir) && !is_writable($workdir)) {
            die('Error! Workdir ' . $workdir . ' is not writable.');
        } 
    }
    
    protected function checkList($listing)
    {
        if (!file_exists($listing) || !is_readable($listing)) {
            die('Error! Listing file ' . $listing . ' not exists or not readable');
        }
    }

    protected function savePid()
    {
        file_put_contents($this->pid_file, strval(getmypid()));
    }

    protected function writeReport()
    {
        $scan_time = round(microtime(true) - $this->start_time, 1);

        foreach($this->json_report->call($this, $this->reports) as $json_report) {
            $json_report->generateReport($this->vars, $scan_time);
            $json_report->write();
        }
    }

    protected function complete()
    {
        @touch($this->done_file);
        $complete = array(
            'method' => 'MALWARE_SCAN_COMPLETE',
            'scan_id' => $this->scan_id,
        );
        $json_complete = json_encode($complete) . "\n";
        $socket = fsockopen('unix://' . $this->sock_file);
        stream_set_blocking($socket, false);
        fwrite($socket, $json_complete);
        fclose($socket);
    }

    protected function setWorkDir($dir, $scan_id)
    {
        $this->workdir = $dir . '/' . $scan_id;
    }

    protected function setSocketFile($sock)
    {
        $this->sock_file = $sock;
    }
}


/**
 * Class ResidentMode used to stay aibolit alive in memory and wait for a job.
 */
class ResidentMode
{
    /**
     * parent dir for all resident aibolit related
     * @var string
     */
    protected $resident_dir;
    /**
     * directory for all jobs to be processed by aibolit
     * @var string
     */
    protected $resident_in_dir;
    /**
     * directory with all the malicious files reports to be processed by imunify
     * @var string
     */
    protected $resident_out_dir;
    /**
     * resident aibolit pid
     * @var string
     */
    protected $aibolit_pid;
    /**
     * file lock used to make sure we start only one aibolit
     * @var string
     */
    protected $aibolit_start_lock;
    /**
     * status file used to make sure aibolit didn't get stuck
     * @var string
     */
    protected $aibolit_status_file;
    /**
     * number of seconds while aibolit will stay alive, while not receiving any work
     * @var int
     */
    protected $stay_alive;
    /**
     * maximum number of seconds without updating ABOLIT_STATUS_FILE,
     * used to track if AIBOLIT is stuck, should be killed
     * @var int
     */
    protected $stuck_timeout;
    /**
     * number of seconds scripts would wait for aibolit to finish / send signal
     * @var int
     */
    protected $upload_timeout;
    /**
     * max number of files to pick
     * @var int
     */
    protected $max_files_per_notify_scan;
    /**
     * timestamp of last scan
     * @var int
     */
    protected $last_scan_time;
    /**
     * time to sleep between lifecycle iterations in microseconds
     */
    protected $sleep_time;

    protected $scannedNotify = 0;

    protected $report;

    protected $logger;

    protected $resident_in_dir_notify;
    protected $resident_in_dir_upload;
    protected $blacklist;
    protected $watchdog_socket;
    protected $activation_socket;
    protected $systemd = false;
    protected $interval = 0;
    protected $lastKeepAlive = 0;

    protected $maxMinUid = array();
    protected $signs;
    protected $finder;

    const JOB_UPLOAD = 'upload';
    const JOB_NOTIFY = 'notify';

    protected $upload_jobs = [];
    protected $notify_jobs = [];

    /**
     * ResidentMode constructor.
     *
     * @param             $finder
     * @param             $debug
     * @param Closure     $report
     * @param             $signs
     * @param null        $blacklist
     * @param Logger|null $logger
     * @param array       $maxMinUid
     * @param string      $resident_dir
     * @param int         $stay_alive
     * @param int         $stuck_timeout
     * @param int         $upload_timeout
     * @param int         $max_files_per_notify_scan
     * @param int         $sleep_time
     */
    public function __construct(
        $finder,
        $debug,
        Closure $report,
        $signs,
        $blacklist = null,
        Logger $logger = null,
        $maxMinUid = array(),
        $resident_dir = '/var/imunify360/aibolit/resident',
        $stay_alive = 30,
        $stuck_timeout = 5,
        $upload_timeout = 10,
        $max_files_per_notify_scan = 500,
        $sleep_time = 100000
    ) {
        $this->signs = $signs;
        $this->setResidentDir($resident_dir);
        $this->resident_in_dir = $this->resident_dir . '/in';
        $this->resident_in_dir_upload = $this->resident_in_dir . '/upload-jobs';
        $this->resident_in_dir_notify = $this->resident_in_dir . '/notify-jobs';
        $this->resident_out_dir = $this->resident_dir . '/out';
        $this->aibolit_pid = $this->resident_dir . '/aibolit.pid';
        $this->aibolit_start_lock = $this->resident_dir . '/start.lock';
        $this->aibolit_status_file = $this->resident_dir . '/aibolit.status';
        $this->stay_alive = $stay_alive;
        $this->stuck_timeout = $stuck_timeout;
        $this->upload_timeout = $upload_timeout;
        if (!empty($max_files_per_notify_scan)) {
            $this->max_files_per_notify_scan = $max_files_per_notify_scan;
        }
        $this->sleep_time = $sleep_time;
        $this->report = $report;
        $this->blacklist = $blacklist;
        $this->logger = $logger;
        $this->maxMinUid = $maxMinUid;

        umask(0);
        if (!file_exists($this->resident_dir)) {
            if (!mkdir($this->resident_dir, 0777, true) && !is_dir($this->resident_dir)) {
                throw new Exception(sprintf('Directory "%s" was not created', $this->resident_dir));
            }
        }
        if (!file_exists($this->resident_in_dir)) {
            if (!mkdir($this->resident_in_dir, 0755) && !is_dir($this->resident_in_dir)) {
                throw new Exception(sprintf('Directory "%s" was not created', $this->resident_in_dir));
            }
        }
        if (!file_exists($this->resident_out_dir)) {
            if (!mkdir($this->resident_out_dir, 0755) && !is_dir($this->resident_out_dir)) {
                throw new Exception(sprintf('Directory "%s" was not created', $this->resident_out_dir));
            }
        }
        if (!file_exists($this->resident_in_dir_notify)) {
            if (!mkdir($this->resident_in_dir_notify, 0700) && !is_dir($this->resident_in_dir_notify)) {
                throw new Exception(sprintf('Directory "%s" was not created', $this->resident_in_dir_notify));
            }
        }
        if (!file_exists($this->resident_in_dir_upload)) {
            if (!mkdir($this->resident_in_dir_upload, 01777) && !is_dir($this->resident_in_dir_upload)) {
                throw new Exception(sprintf('Directory "%s" was not created', $this->resident_in_dir_upload));
            }
        }

        $this->checkSpecs();

        $addr = getenv('NOTIFY_SOCKET');
        if ($addr[0] == '@') {
            $addr = "\0";
        }

        if ($addr) {
            $this->systemd = true;
        }

        if ($this->systemd) {
            $this->watchdog_socket = fsockopen('udg://' . $addr);
            stream_set_blocking($this->watchdog_socket, false);

            $this->activation_socket = fopen('php://fd/3', 'r');
            if ($this->activation_socket === false) {
                die("Something went wrong with activation socket.");
            }
            stream_set_blocking($this->activation_socket, false);

            if (getenv('WATCHDOG_USEC') !== false) {
                $this->interval = intval(getenv('WATCHDOG_USEC'));
            } else {
                $this->interval = 1000000;
            }
        }
        $this->finder = $finder;
        $this->debug = isset($debug) ? $debug : null;
        $this->lifeCycle();
    }

    protected function isRootWriteable($folder)
    {
        if (!file_exists($folder) || !is_dir($folder)) {
            return false;
        }

        $owner_id = (int)fileowner($folder);
        if (function_exists('posix_getpwuid')) {
            $owner = posix_getpwuid($owner_id);
            if (!isset($owner['name']) || $owner['name'] !== 'root') {
                return false;
            }
        } elseif ($owner_id != 0) {
            return false;
        }

        $perms = fileperms($folder);
        if (($perms & 0x0100)                           // owner r
            && ($perms & 0x0080)                        // owner w
            && ($perms & 0x0040) && !($perms & 0x0800)  // owner x
            && !($perms & 0x0010)                       // group without w
            && !($perms & 0x0002)                       // other without w
        ) {
            return true;
        }
        return false;
    }

    protected function isWorldWriteable($folder)
    {
        if (!file_exists($folder) || !is_dir($folder)) {
            return false;
        }

        $perms = fileperms($folder);
        if (($perms & 0x0004)                           // other r
            && ($perms & 0x0002)                        // other w
            && ($perms & 0x0200)                        // sticky bit
        ) {
            return true;
        }
        return false;
    }

    protected function checkSpecs()
    {
        if (!extension_loaded('posix')) {
            die('Error! For resident scan need posix extension.');
        } elseif (!$this->isRootWriteable($this->resident_in_dir_notify)) {
            die('Error! Notify in dir ' . $this->resident_in_dir_notify . ' must be root writeable.');
        } elseif (!$this->isWorldWriteable($this->resident_in_dir_upload)) {
            die('Error! Upload in dir ' . $this->resident_in_dir_upload . ' must be world writeable.');
        }
    }

    protected function setResidentDir($dir)
    {
        $this->resident_dir = $dir;
    }

    protected function writeReport($vars, $scan_time, $type, $file)
    {
        $file = basename($file);
        $critPHP = count($vars->criticalPHP);
        $critJS = count($vars->criticalJS);
        $black = count($vars->blackFiles);
        $warning = count($vars->warningPHP);
        $malware = ($critPHP > 0)
            || ($critJS > 0)
            || ($black > 0)
            || ($warning > 0);
        if ($malware) {
            $this->debugLog("Job {$file}: Found malware. PHP: {$critPHP}; JS: {$critJS}; Black: {$black}; SUS: {$warning}");
        } else {
            $this->debugLog("Job {$file}: No malware found.");
        }
        if ($type == 'upload') {
            $pid = (int)basename($file, '.upload_job');
            if ($malware) {
                $this->debugLog("Job {$file}: Sending SIGUSR1 to {$pid}");
                posix_kill($pid, SIGUSR1);
            } else {
                $this->debugLog("Job {$file}: Sending SIGUSR2 to {$pid}");
                posix_kill($pid, SIGUSR2);
            }
        } elseif ($type == 'notify' && $malware) {
            $filename = basename($file, '.notify_job');
            $reports[JSONReport::class] = $this->resident_out_dir . '/' . $filename . '.report';
            foreach($this->report->call($this, $reports) as $report) {
                $report->generateReport($vars, $scan_time);
                $this->debugLog("Job {$file}: Creating report for job in {$filename}.report");
                $report->write();
            }
            unset($reports);
        }
    }

    /**
     * @param string $pattern
     * @param string $type
     *
     * @return bool
     */
    protected function isJobFileExists($pattern, $type)
    {
        if ($type === self::JOB_UPLOAD) {
            if (empty($this->upload_jobs)) {
                $this->upload_jobs = glob($this->resident_in_dir . $pattern);
                if (!empty($this->upload_jobs)) {
                    return true;
                }
            } else {
                return true;
            }
        }

        if ($type === self::JOB_NOTIFY) {
            if (empty($this->notify_jobs)) {
                $this->notify_jobs = glob($this->resident_in_dir . $pattern);
                if (!empty($this->notify_jobs)) {
                    return true;
                }
            } else {
                return true;
            }
        }
        return false;
    }

    protected function isUploadJob()
    {
        if ($this->isJobFileExists('/upload-jobs/*.upload_job', self::JOB_UPLOAD)) {
            return true;
        }
        return false;
    }

    protected function scanJob($job_file, $type)
    {
        $start_time = microtime(true);

        $vars = new Variables();
        $vars->blacklist = $this->blacklist;
        $vars->maxMinUid = $type == 'notify' ? $this->maxMinUid : [];
        $vars->signs = $this->signs;

        $files_to_scan = array();
        $count = 0;

        $job = json_decode(file_get_contents($job_file));
        $file = basename($job_file);

        $this->debugLog("Job {$file} received from queue.");

        if ($type == 'notify') {
            $files_to_scan = $job->files;
            $count = count($files_to_scan);
            $this->debugLog("Job {$file}: notify. {$count} files to be scanned");

            if ($count > $this->max_files_per_notify_scan) {
                $this->debugLog("Job {$file}: Too many files to scan. Job skipped.");
                // TODO: show a warning: too many files to scan, the job was skipped
                return true;
            }

            if ($this->scannedNotify + $count > $this->max_files_per_notify_scan) {
                $this->scannedNotify = 0;
                unset($vars, $files_to_scan);

                return false;
            } else {
                $this->scannedNotify += $count;
            }
        } elseif ($type == 'upload') {
            $files_to_scan = $job->files;
            $count = count($files_to_scan);
            $this->debugLog("Job {$file}: upload. {$count} files to be scanned");

            if ($count > 1) {
                $this->debugLog("Job {$file}: Too many files to scan. Job skipped.");
                // TODO: show a warning: too many files to scan, the job was skipped
                return true;
            }
        }

        $vars->foundTotalFiles = $count;
        $scan = new Scanner($this->finder, $vars, $this->debug);
        if (method_exists($scan, 'QCR_GoScan')) {
            if ($this->systemd) {
                $scan->QCR_GoScan($files_to_scan, array($this, 'keepAlive'), true, false);
            } else {
                $scan->QCR_GoScan($files_to_scan, null, true, false);
            }

            $scan->whitelisting();
        }

        $scan_time = round(microtime(true) - $start_time, 1);

        $this->last_scan_time = time();
        $this->writeReport($vars, $scan_time, $type, $job_file);

        unset($vars, $files_to_scan, $scan);

        if (defined('PROGRESS_LOG_FILE') && file_exists(PROGRESS_LOG_FILE)) {
            @unlink(PROGRESS_LOG_FILE);
        }

        if (defined('CREATE_SHARED_MEMORY') && CREATE_SHARED_MEMORY) {
            shmop_delete(SHARED_MEMORY);
        }

        if (defined('SHARED_MEMORY')) {
            shmop_close(SHARED_MEMORY);
        }

        return true;
    }

    protected function isNotifyJob()
    {
        if ($this->isJobFileExists('/notify-jobs/*.notify_job', self::JOB_NOTIFY)) {
            return true;
        }
        return false;
    }

    protected function scanUploadJob()
    {
        if (!empty($this->upload_jobs)) {
            foreach ($this->upload_jobs as $index => $upload_job) {
                $this->scanJob($upload_job, 'upload');
                $file = basename($upload_job);
                $this->debugLog("Job {$file}: Removing job.");
                unlink($upload_job);
                unset($this->upload_jobs[$index]);
            }
        }
    }

    protected function scanNotifyJob()
    {
        if (!empty($this->notify_jobs)) {
            foreach ($this->notify_jobs as $index => $job) {
                $res = $this->scanJob($job, 'notify');
                if ($res) {
                    $file = basename($job);
                    $this->debugLog("Job {$file}: Removing job.");
                    unlink($job);
                    unset($this->notify_jobs[$index]);
                } else {
                    break;
                }
            }
        }
    }

    public function keepAlive()
    {
        if ((int)((microtime(true) - $this->lastKeepAlive) * 1000000) > $this->interval / 2) {
            stream_get_contents($this->activation_socket);
            fwrite($this->watchdog_socket, 'WATCHDOG=1');
            $this->lastKeepAlive = microtime(true);
        }
    }

    protected function lifeCycle()
    {
        $this->debugLog("Starting resident-mode loop.");
        $this->last_scan_time = time();
        while (true) {
            if ($this->systemd) {
                $this->keepAlive();
            }
            while ($this->isUploadJob()) {
                $this->scanUploadJob();
            }

            while ($this->isNotifyJob() && !$this->isUploadJob()) {
                $this->scanNotifyJob();
            }
            if ($this->last_scan_time + $this->stay_alive < time()) {
                $this->debugLog("No more jobs. Shutting down.");
                break;
            }
            touch($this->aibolit_status_file);
            usleep($this->sleep_time); // 1/10 of second by default
        }
        if ($this->systemd) {
            fclose($this->watchdog_socket);
            fclose($this->activation_socket);
        }
        unlink($this->aibolit_status_file);
    }

    protected function debugLog($message)
    {
        if ($this->logger === null) {
            return;
        }
        $this->logger->debug($message);
    }
}



class DebugMode
{
    private $debugMode = false;
    private $debugPerfomance = false;
    private $perfomance_stats = [];

    public function __construct($debugMode, $debugPerfomance)
    {
        $this->debugMode = $debugMode;
        $this->debugPerfomance = $debugPerfomance;
    }

    public function QCR_Debug($par_Str = "")
    {
        if ($this->debugMode) {
            return;
        }

        $l_MemInfo = ' ';
        if (function_exists('memory_get_usage')) {
            $l_MemInfo .= ' curmem=' . AibolitHelpers::bytes2Human(memory_get_usage());
        }

        if (function_exists('memory_get_peak_usage')) {
            $l_MemInfo .= ' maxmem=' . AibolitHelpers::bytes2Human(memory_get_peak_usage());
        }

        stdOut("\n" . date('H:i:s') . ': ' . $par_Str . $l_MemInfo . "\n");
    }

    public function getDebugMode()
    {
        return $this->debugMode;
    }

    public function getDebugPerfomance()
    {
        return $this->debugPerfomance;
    }

    public function addPerfomanceItem($item, $time)
    {
        $this->perfomance_stats[$item] = isset($this->perfomance_stats[$item]) ? $this->perfomance_stats[$item] + $time : 0;
    }

    public function printPerfomanceStats()
    {
        $keys = array_keys($this->perfomance_stats);
        for ($i = 0, $iMax = count($keys); $i < $iMax; $i++) {
            $this->perfomance_stats[$keys[$i]] = round($this->perfomance_stats[$keys[$i]] * 1000000);
        }

        arsort($this->perfomance_stats);

        foreach ($this->perfomance_stats as $r => $v) {
            echo $v . "\t\t" . $r . "\n";
        }
    }
}


class FileInfo
{
    private $index = 0;
    private $inode = 0;
    private $filename = '';
    private $size = 0;
    private $created = 0;
    private $modified = 0;
    private $hash = 0;
    private $sha256 = 0;
    private $sha1file = 0;
    private $content = '';
    private $norm_content = '';
    private $is_binary = 0;
    private $hashtable = null;

    /**
     * @return int|string
     */
    public function getSha1file()
    {
        if ($this->sha1file == 0) {
            $this->sha1file = sha1_file($this->filename);
        }
        return $this->sha1file;
    }

    public function __construct($filename, $index, $hashtable = null)
    {
        $this->index = $index;
        $this->filename = $filename;
        $this->hashtable = $hashtable;
    }

    /**
     * @return bool
     */
    public function isBinary()
    {
        $header = '';
        if ($this->is_binary === 0) {
            if ($this->content == '') {
                $header = @file_get_contents($this->filename, false, null, 0, 4);
            } else {
                $header = substr($this->content, 0, 4);
            }
            if ($header === chr(127) . 'ELF') {
                $this->is_binary = true;
            } else {
                $this->is_binary = false;
            }
            unset($header);
        }
        return $this->is_binary;
    }

    /**
     * @return false|mixed|string
     */
    public function getContent()
    {
        if ($this->content == '') {
            $this->content = @file_get_contents($this->filename);
        }
        return $this->content;
    }

    /**
     * @return string
     */
    public function getContentWithoutSpaces($max_size = false)
    {
        if($this->norm_content !== '') {
            return $this->norm_content;
        }
        if (!$max_size) {
            $this->norm_content = Normalization::strip_whitespace($this->getContent());
        } else if(is_numeric($max_size)) {
            $this->norm_content = Normalization::strip_whitespace($this->getContentBytes($max_size));
        }
        return $this->norm_content;
    }

    public function getContentBytes($max_bytes)
    {
        if ($this->content == '') {
            $this->content = @file_get_contents($this->filename, false, null, 0, $max_bytes);
        }
        return $this->content;
    }

    /**
     * @param $text
     * @return string
     */
    private function _hash_($text)
    {
        static $r;

        if (empty($r)) {
            for ($i = 0; $i < 256; $i++) {
                if ($i < 33 or $i > 127) {
                    $r[chr($i)] = '';
                }
            }
        }

        return sha1(strtr($text, $r));
    }

    /**
     * @return integer
     */
    public function getIndex()
    {
        return $this->index;
    }

    /**
     * @return string
     */
    public function getFilename()
    {
        return $this->filename;
    }

    private function _setStat()
    {
        $info = stat($this->filename);
        $this->size = $info['size'];
        $this->created = $info['ctime'];
        $this->modified = $info['mtime'];
        $this->inode = $info['ino'];
    }

    /**
     * @return int|mixed
     */
    public function getSize()
    {
        if ($this->size == 0) {
            $this->_setStat();
        }
        return $this->size;
    }

    /**
     * @return int|mixed
     */
    public function getInode()
    {
        if ($this->inode == 0) {
            $this->_setStat();
        }
        return $this->inode;
    }

    /**
     * @return int|mixed
     */
    public function getCreated()
    {
        if ($this->created == 0) {
            $this->_setStat();
        }
        return $this->created;
    }

    /**
     * @return int|mixed
     */
    public function getModified()
    {
        if ($this->modified == 0) {
            $this->_setStat();
        }
        return $this->modified;
    }

    /**
     * @return int|string
     */
    public function getHash()
    {
        if ($this->hash == 0) {
            $this->hash = $this->_hash_($this->getContentWithoutSpaces());
        }
        return $this->hash;
    }

    /**
     * @return int|string
     */
    public function getSha256()
    {
        if ($this->hashtable !== null && $this->hashtable->get($this->filename) !== false) {
            $this->sha256 = $this->hashtable->get($this->filename);
        }
        if ($this->sha256 == 0) {
            $this->sha256 = hash('sha256', $this->getContent());
        }
        return $this->sha256;
    }
}



class HashTable
{
    private $hashes = [];

    public function add($paths, $hashes)
    {
        $this->hashes[0] = $paths;
        $this->hashes[1] = $hashes;
    }

    public function get($filename)
    {
        $index = array_search($filename, $this->hashes[0]);
        if ($index === false) {
            return false;
        }
        return $this->hashes[1][$index];
    }
}


class Finder
{
    const MAX_ALLOWED_PHP_HTML_IN_DIR = 600;

    private $sym_links              = [];
    private $skipped_folders        = [];
    private $doorways               = [];

    private $total_dir_counter      = 0;
    private $total_files_counter    = 0;
    private $checked_hashes         = [];

    private $initial_dir            = '';
    private $initial_level          = null;
    private $level_limit            = null;

    private $filter;

    public function __construct($filter = null, $level_limit = null)
    {
        $this->filter = $filter;
        $this->level_limit = $level_limit;
    }

    private function linkResolve($path)
    {
        return realpath($path);
    }

    private function resolve($path, $follow_symlinks)
    {
        if (!$follow_symlinks || !is_link($path)) {
            return $path;
        }
        return $this->linkResolve($path);
    }

    private function isPathCheckedAlready($path)
    {
        $root_hash = crc32($path);
        if (isset($this->checked_hashes[$root_hash])) {
            return true;
        }
        $this->checked_hashes[$root_hash] = '';
        return false;
    }

    private function walk($path, $follow_symlinks)
    {
        $level = substr_count($path, '/');
        if (isset($this->level_limit) && (($level - $this->initial_level + 1) > $this->level_limit)) {
            return;
        }
        $l_DirCounter          = 0;
        $l_DoorwayFilesCounter = 0;

        if ($follow_symlinks && $this->isPathCheckedAlready($path)) {
            return;
        }

        # will not iterate dir, if it should be ignored
        if (!$this->filter->needToScan($path, false, true)) {
            $this->skipped_folders[] = $path;
            return;
        }
        $dirh = @opendir($path);
        if ($dirh === false) {
            return;
        }

        while (($entry = readdir($dirh)) !== false) {
            if ($entry == '.' || $entry == '..') {
                continue;
            }
            $entry = $path . DIRECTORY_SEPARATOR . $entry;
            if (is_link($entry)) {

                $this->sym_links[] = $entry;

                if (!$follow_symlinks) {
                    continue;
                }
                $real_path = $this->resolve($entry, true);
            } else {
                $real_path = $entry;
            }
            if (is_dir($entry)) {
                $l_DirCounter++;
                if ($l_DirCounter > self::MAX_ALLOWED_PHP_HTML_IN_DIR) {
                    $this->doorways[]  = $path;
                    $l_DirCounter = -655360;
                }
                $this->total_dir_counter++;
                yield from $this->walk($real_path, $follow_symlinks);
            } else if (is_file($entry)) {
                $stat = stat($entry);
                if (!$stat) {
                    continue;
                }
                if (is_callable([$this->filter, 'checkShortExt']) && $this->filter->checkShortExt($entry)) {
                    $l_DoorwayFilesCounter++;
                    if ($l_DoorwayFilesCounter > self::MAX_ALLOWED_PHP_HTML_IN_DIR) {
                        $this->doorways[]           = $path;
                        $l_DoorwayFilesCounter = -655360;
                    }
                }
                if ($follow_symlinks && $this->isPathCheckedAlready($real_path)) {
                    continue;
                }
                $need_to_scan = $this->filter->needToScan($real_path, $stat);
                if ($need_to_scan) {
                    $this->total_files_counter++;
                    yield $real_path;
                }
            }
        }
        closedir($dirh);
    }

    private function expandPath($path, $follow_symlinks)
    {
        if ($path) {
            if (is_dir($path)) {
                yield from $this->walk($path, $follow_symlinks);
            } else {
                $need_to_scan = $this->filter->needToScan($path);
                if ($need_to_scan) {
                    yield $path;
                }
            }
        }
    }

    public function find($target)
    {
        if ($target === '/') {
            $target = '/*';
        }
        if (is_string($target) && substr($target, -1) == DIRECTORY_SEPARATOR) {
            $target = substr($target, 0, -1);
        }

        # We shouldn't use iglob for list of paths,
        # cause they cannot contain * or regexp
        # but can contain invalid sequence e.g. [9-0]
        if (is_callable([$this->filter, 'generateCheckers'])) {
            $this->filter->generateCheckers();
        }
        $paths = is_array($target) ? $target : new GlobIterator($target, FilesystemIterator::CURRENT_AS_PATHNAME);
        foreach ($paths as $path) {
            $this->initial_dir = realpath($path);
            $this->initial_level = substr_count($this->initial_dir, '/');
            $path = $this->linkResolve($path);
            yield from $this->expandPath($path, $this->filter->isFollowSymlink());
        }
    }

    private function convertTemplatesToRegexp($templates)
    {
        return '~(' . str_replace([',', '.', '*'], ['|', '\\.', '.*'], $templates) . ')~i';
    }

    public function setLevelLimit($level)
    {
        $this->level_limit = $level;
    }

    public function getSymlinks()
    {
        return $this->sym_links;
    }

    public function getDoorways()
    {
        return $this->doorways;
    }

    public function skippedDirs()
    {
        return $this->skipped_folders;
    }

    public function getTotalDirs()
    {
        return $this->total_dir_counter;
    }

    public function getTotalFiles()
    {
        return $this->total_files_counter;
    }
}

class FileFilter
{
    const LOG_AND_MAIL_PATTERN = [
        '/sess\_\w*$',
        '/stat/usage\_\w+\.html',
        '/stat/site\_\w+\.html',
        '/webstat/awstats.*\.txt',
        '/awstats/awstats.*\.txt',
        '/awstats/.{1,80}\.pl',
        '/awstats/.{1,80}\.html',
        '/logs/error\_log\..*',
        '/logs/xferlog\..*',
        '/logs/access\_log\..*',
        '/domlogs/.+',
        '/logs/cron\..*',
        '/logs/exceptions/.+\.log(?:\.\d)?(?:\.gz)?$',
        '/mail(?:/[^/]+)*/[^,]+,S=[^,]+,W=.+',
        '/mail(?:/[^/]+)*/[^,]+,S=.+',
        '/mail(?:/[^/]+)*/storage/u\.[0-9]+',
        '/mail(?:/[^/]+)*/storage/m\.[0-9]+',
        '/Maildir(?:/[^/]+)*/[^,]+,S=[^,]+,W=.+',
        '/Maildir(?:/[^/]+)*/[^,]+,S=.+',
        '^/var/ossec/.*',
    ];

    const IMUNIFY_LOG_PATTERN = [
        '/var/log/imunify360/acronis-installer\.log$',
        '/var/log/imunify360/console\.log(?:\.\d)?(?:\.gz)?$',
        '/var/log/imunify360/debug\.log$',
        '/var/log/imunify360/error\.log$',
        '/var/log/install-mod\_remoteip\.log(?:\.\d{1.4})?(?:\.pid)?r$',
        '/var/log/imunify360/malware\_scan\_\d{10}\.log$',
        '/var/log/imunify360/network\.log$',
        '/var/log/imunify360/process\_message\.log$',
        '/var/log/imunify360-webshield/access.log(?:-\d{8})?(?:.gz)?$',
        '/var/log/imunify360-webshield/error.log(?:-\d{8})?(?:.gz)?$',
        '/.revisium_antivirus_cache/.revisium\d+/',
        '/admin/plib/modules/revisium-antivirus/library/externals/',
    ];

    const IMUNIFY_DIRS = [
        '/etc/cagefs/conf.d/ai-bolit.cfg',
        '/etc/cagefs/conf.d/clamav.cfg',
        '/etc/cagefs/exclude/imunify360',
        '/etc/chkserv.d/imunify-antivirus',
        '/etc/chkserv.d/imunify360-agent',
        '/etc/cron.daily/imunify-antivirus.cron',
        '/etc/cron.daily/imunify360.cron',
        '/etc/imunify360-webshield',
        '/etc/imunify360',
        '/etc/logrotate.d/imunify360',
        '/etc/nginx/conf.d/i360.remoteip.conf',
        '/etc/sysconfig/imunify360',
        '/opt/ai-bolit',
        '/opt/alt/python35/bin/imunify360-agent',
        '/opt/alt/python35/bin/imunify360-command-wrapper',
        '/opt/alt/python35/lib/python3.5/site-packages/defence360agent',
        '/opt/alt/python35/share/imunify360',
        '/run/chkservd/imunify360-webshield',
        '/run/chkservd/restart_track/imunify360-webshield',
        '/run/imunify360-webshield.pid',
        '/usr/bin/imunify-antivirus',
        '/usr/bin/imunify360-agent',
        '/usr/bin/imunify360-command-wrapper',
        '/usr/lib/systemd/system/imunify-antivirus.service',
        '/usr/lib/systemd/system/imunify360-pure.service',
        '/usr/lib/systemd/system/imunify360-webshield',
        '/usr/lib/systemd/system/imunify360.service',
        '/usr/local/cpanel/base/frontend/paper_lantern/imunify',
        '/usr/local/directadmin/plugins/Imunify',
        '/usr/sbin/imunify360-webshield',
        '/var/cache/imunify360-webshield',
        '/var/cpanel/apps',
        '/var/imunify360',
        '/var/log/cloudlinux-backup-util'
    ];

    const SHORT_LIST_EXT = [
        'php',
        'php3',
        'php4',
        'php5',
        'php7',
        'pht',
        'html',
        'htm',
        'phtml',
        'shtml',
        'khtml',
        '',
        'ico',
        'txt'
    ];

    const SUSPICIOUS_EXT = [
        'cgi',
        'pl',
        'o',
        'so',
        'py',
        'sh',
        'phtml',
        'php3',
        'php4',
        'php5',
        'php6',
        'php7',
        'pht',
        'shtml'
    ];

    private $sensitiveExt = [
        'php',
        'js',
        'json',
        'htaccess',
        'html',
        'htm',
        'tpl',
        'inc',
        'css',
        'txt',
        'sql',
        'ico',
        '',
        'susp',
        'suspected',
        'zip',
        'tar'
    ];

    const SKIP_SMART_MASK = [
        '/template_\w{32}.css',
        '/cache/templates/.{1,150}\.tpl\.php',
        '/system/cache/templates_c/\w{1,40}\.php',
        '/assets/cache/rss/\w{1,60}',
        '/cache/minify/minify_\w{32}',
        '/cache/page/\w{32}\.php',
        '/cache/object/\w{1,10}/\w{1,10}/\w{1,10}/\w{32}\.php',
        '/cache/wp-cache-\d{32}\.php',
        '/cache/page/\w{32}\.php_expire',
        '/cache/page/\w{32}-cache-page-\w{32}\.php',
        '\w{32}-cache-com_content-\w{32}\.php',
        '\w{32}-cache-mod_custom-\w{32}\.php',
        '\w{32}-cache-mod_templates-\w{32}\.php',
        '\w{32}-cache-_system-\w{32}\.php',
        '/cache/twig/\w{1,32}/\d+/\w{1,100}\.php',
        '/autoptimize/js/autoptimize_\w{32}\.js',
        '/bitrix/cache/\w{32}\.php',
        '/bitrix/cache/.{1,200}/\w{32}\.php',
        '/bitrix/cache/iblock_find/',
        '/bitrix/managed_cache/MYSQL/user_option/[^/]+/',
        '/bitrix/cache/s1/bitrix/catalog\.section/',
        '/bitrix/cache/s1/bitrix/catalog\.element/',
        '/bitrix/cache/s1/bitrix/menu/',
        '/catalog.element/[^/]+/[^/]+/\w{32}\.php',
        '/bitrix/managed\_cache/.{1,150}/\.\w{32}\.php',
        '/core/cache/mgr/smarty/default/.{1,100}\.tpl\.php',
        '/core/cache/resource/web/resources/[0-9]{1,50}\.cache\.php',
        '/smarty/compiled/SC/.{1,100}/%%.{1,200}\.php',
        '/smarty/.{1,150}\.tpl\.php',
        '/smarty/compile/.{1,150}\.tpl\.cache\.php',
        '/files/templates_c/.{1,150}\.html\.php',
        '/uploads/javascript_global/.{1,150}\.js',
        '/assets/cache/rss/\w{32}',
        'сore/cache/resource/web/resources/\d+\.cache\.php',
        '/assets/cache/docid_\d+_\w{32}\.pageCache\.php',
        '/t3-assets/dev/t3/.{1,150}-cache-\w{1,20}-.{1,150}\.php',
        '/t3-assets/js/js-\w{1,30}\.js',
        '/temp/cache/SC/.{1,100}/\.cache\..{1,100}\.php',
        '/tmp/sess\_\w{32}$',
        '/assets/cache/docid\_.{1,100}\.pageCache\.php',
        '/stat/usage\_\w{1,100}\.html',
        '/stat/site\_\w{1,100}\.html',
        '/gallery/item/list/\w{1,100}\.cache\.php',
        '/core/cache/registry/.{1,100}/ext-.{1,100}\.php',
        '/core/cache/resource/shk\_/\w{1,50}\.cache\.php',
        '/cache/\w{1,40}/\w+-cache-\w+-\w{32,40}\.php',
        '/webstat/awstats.{1,150}\.txt',
        '/awstats/awstats.{1,150}\.txt',
        '/awstats/.{1,80}\.pl',
        '/awstats/.{1,80}\.html',
        '/inc/min/styles_\w+\.min\.css',
        '/inc/min/styles_\w+\.min\.js',
        '/logs/error\_log\.', '/logs/xferlog\.',
        '/logs/access_log\.',
        '/logs/cron\.',
        '/logs/exceptions/.{1,200}\.log$',
        '/hyper-cache/[^/]{1,50}/[^/]{1,50}/[^/]{1,50}/index\.html',
        '/mail/new/[^,]+,S=[^,]+,W=',
        '/mail/new/[^,]=,S=',
        '/application/logs/\d+/\d+/\d+\.php',
        '/sites/default/files/js/js_\w{32}\.js',
        '/yt-assets/\w{32}\.css',
        '/wp-content/cache/object/\w{1,5}/\w{1,5}/\w{32}\.php',
        '/catalog\.section/\w{1,5}/\w{1,5}/\w{32}\.php',
        '/simpla/design/compiled/[\w\.]{40,60}\.php',
        '/compile/\w{2}/\w{2}/\w{2}/[\w.]{40,80}\.php',
        '/sys-temp/static-cache/[^/]{1,60}/userCache/[\w\./]{40,100}\.php',
        '/session/sess_\w{32}',
        '/webstat/awstats\.[\w\./]{3,100}\.html',
        '/stat/webalizer\.current',
        '/stat/usage_\d+\.html'
    ];

    private $ignoreExt              = [];
    private $ignoreListPatterns     = [];

    private $ignoreList             = null;
    private $ignoreFilenameByRegexp = null;
    private $onlyFilepathRegexp     = null;
    private $skipFilesOlder         = null;
    private $initialDir             = null;

    private $file_checkers          = [];
    private $dir_checkers           = [];
    private $excludes               = [];

    private $check_is_not_root;
    private $check_is_not_system;
    private $check_is_file;
    private $ignore_quar;
    private $check_file_older;
    private $check_ignore_file;
    private $check_ignore_filename_template;
    private $check_only_filepath_template;
    private $check_scope;
    private $check_ext;
    private $ignore_ext;
    private $check_short_ext;
    private $ignore_path_pattern;

    private $skipRootOwner          = false;
    private $skipSystemOwner        = false;
    private $followSymlink          = false;
    private $ignoreQuarantine       = false;
    private $scanAllExt             = false;
    private $smartScan              = false;
    private $imunify_filters        = false;

    private $ignored_av_admin       = false;
    private $ignored_av_internal    = false;
    private $admin_watched          = false;



    private $ignore_symlink = true;
    private $match_patterns = [];
    private $no_match_patterns = [];

    private $ignored_av_admin_file      = '/etc/sysconfig/imunify360/malware-filters-admin-conf/processed/ignored/av-admin.txt';
    private $ignored_av_internal_file   = '/etc/sysconfig/imunify360/malware-filters-admin-conf/processed/ignored/av-internal.txt';
    private $admin_watched_file         = '/etc/sysconfig/imunify360/malware-filters-admin-conf/admin/watched.txt';
    private $basedirs_file              = '/etc/sysconfig/imunify360/malware-filters-admin-conf/processed/basedirs-list.txt';

    private function getIgnoredAVAdmin()
    {
        if (!$this->ignored_av_admin) {
            $this->ignored_av_admin = trim(file_get_contents($this->ignored_av_admin_file));
        }
        return $this->ignored_av_admin;
    }

    private function getIgnoredAVInternal()
    {
        if (!$this->ignored_av_internal) {
            $this->ignored_av_internal = trim(file_get_contents($this->ignored_av_internal_file));
        }
        return $this->ignored_av_internal;
    }

    private function getBaseDirs()
    {
        return file($this->basedirs_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    }

    private function fixTrailingSlash($path)
    {
        if ($path[0] !== '/') {
            $path = '/' . $path;
        }
        return $path;
    }

    private function resolveBaseDirs($basedirs, $path)
    {
        $result = [];
        $tmp = substr($path, 1);
        $tmp = $this->fixTrailingSlash($tmp);
        foreach ($basedirs as $dir) {
            $result [] = $dir . $tmp;
        }
        return $result;
    }

    private function processWatchedItems($basedirs, $paths)
    {
        $result = [];
        foreach ($paths as $item) {
            $item = trim($item);
            if ($item[0] === '#') {
                continue;
            } else if ($item[0] === '+') {
                $result = array_merge($result, $this->resolveBaseDirs($basedirs, $item));
            } else {
                $result[] = $item;
            }
        }
        return $result;
    }

    private function getAdminWatched()
    {
        if (!$this->admin_watched) {
            $this->admin_watched = [];
            $basedirs = $this->getBaseDirs();
            $paths = file($this->admin_watched_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
            $this->admin_watched = $this->processWatchedItems($basedirs, $paths);
        }
        return $this->admin_watched;
    }

    public function setSmartScan()
    {
        $this->smartScan = true;
    }

    public function isSmartScan()
    {
        return $this->smartScan;
    }

    public function setImunifyFilters()
    {
        $this->imunify_filters = true;
    }

    public function setScanAll()
    {
        $this->scanAllExt = true;
    }

    public function setIgnoreExt($ext_list)
    {
        if (!$ext_list) {
            return;
        }

        $this->ignoreExt = explode(',', $ext_list);
        for ($i = 0, $iMax = count($this->ignoreExt); $i < $iMax; $i++) {
            $this->ignoreExt[$i] = trim($this->ignoreExt[$i]);
        }
        $this->ignoreExt = array_flip($this->ignoreExt);
    }

    public function setSensitiveExt($ext_list)
    {
        if (!$ext_list) {
            return;
        }

        $this->sensitiveExt = explode(",", $ext_list);
        for ($i = 0, $iMax = count($this->sensitiveExt); $i < $iMax; $i++) {
            if ($this->sensitiveExt[$i] == '.') {
                $this->sensitiveExt[$i] = '';
            }
        }
        $this->sensitiveExt = array_flip($this->sensitiveExt);
    }

    public function getSensitiveExt()
    {
        return array_flip($this->sensitiveExt);
    }

    public function setIgnoreListPatterns($filepath)
    {
        if (!file_exists($filepath) || !is_file($filepath) || !is_readable($filepath)) {
            return;
        }
        $this->ignoreListPatterns = [];
        $content = file_get_contents($filepath);
        $list = explode("\n", $content);
        foreach ($list as $pattern) {
            if (trim($pattern) == '') {
                continue;
            }
            $this->ignoreListPatterns[] = $pattern;
        }
    }

    public function __construct()
    {
        $this->sensitiveExt = array_merge($this->sensitiveExt, self::SUSPICIOUS_EXT);
        $this->sensitiveExt = array_flip($this->sensitiveExt);

        $this->ignore_quar = function ($file) {
            if (strpos($file, '/.imunify.quarantined') !== false) {
                $st = stat($file);
                if (!$st) {
                    return false;
                }
                return $st['uid'] !== 0;
            }
            return true;
        };

        $this->ignore_excludes = function ($file) {
            $tree = $this->getTree($file);
            if ($this->pathRelatesTo($tree, $this->excludes)) {
                return false;
            }
            return true;
        };

        $this->check_file_older = function ($file) {
            return (@filemtime($file) > $this->skipFilesOlder) || (@filectime($file) > $this->skipFilesOlder);
        };

        $this->check_ignore_file = function ($file) {
            $tree = $this->getTree($file);
            if ($this->pathRelatesTo($tree, $this->ignoreList, true)) {
                return false;
            }
            return true;
        };

        $this->check_ignore_filename_template = function ($file) {
            return !preg_match($this->ignoreFilenameByRegexp, basename($file));
        };

        $this->check_only_filepath_template = function ($file) {
            return preg_match($this->onlyFilepathRegexp, $file);
        };

        $this->check_is_not_root = function ($file) {
            $stat = stat($file);
            return $stat['gid'] !== 0 && $stat['uid'] !== 0;
        };

        $this->check_is_not_system = function ($file) {
            $stat = stat($file);
            return ($stat['uid'] >= $this->skipSystemOwner[0] && $stat['uid'] <= $this->skipSystemOwner[1]);
        };

        $this->check_is_file = function ($file) {
            return is_file($file);
        };

        $this->check_file_patterns = function ($file) {
            foreach($this->match_patterns as $pattern) {
                $match = fnmatch($pattern, $file);
                if ($match) {
                    return $match;
                }
            }
            return false;
        };

        $this->check_file_not_patterns = function ($file) {
            foreach($this->no_match_patterns as $pattern) {
                $match = fnmatch($pattern, $file);
                if ($match) {
                    return !$match;
                }
            }
            return true;
        };

        $this->ignore_symlink = function ($file) {
            return !is_link($file);
        };

        $this->check_scope = function ($file) {
            return strpos($file, $this->initialDir) === 0;
        };

        $this->ignore_dots = function ($file) {
            return !($file == '.' || $file == '..');
        };

        $this->check_ext = function ($file) {
            if ($this->scanAllExt) {
                return true;
            }
            $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
            return isset($this->sensitiveExt[$ext]);
        };

        $this->ignore_ext = function ($file) {
            $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
            return !isset($this->ignoreExt[$ext]);
        };

        $this->check_short_ext = function ($file) {
            $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
            return in_array($ext, self::SHORT_LIST_EXT);
        };

        $this->ignore_path_pattern = function ($file) {
            foreach ($this->ignoreListPatterns as $pattern) {
                if (($pattern != '') && preg_match('#' . $pattern . '#', $file)) {
                    return false;
                }
            }
            return true;
        };

        $this->imunify_filter = function ($file) {
            if (preg_match('~' . $this->getIgnoredAVAdmin() . '~msi', $file)) {
                return false;
            }

            if (preg_match('~' . $this->getIgnoredAVInternal() . '~msi', $file)) {
                foreach ($this->getAdminWatched() as $rec_watched) {
                    if (fnmatch($rec_watched, $file)) {
                        return true;
                    }
                }
                return false;
            }
            return true;
        };

        $this->excludes = array_flip(self::IMUNIFY_DIRS);

        $this->file_checkers[] = $this->ignore_path_pattern;
        $this->file_checkers[] = $this->check_is_file;
        $this->file_checkers[] = $this->check_ext;
        $this->file_checkers[] = $this->ignore_excludes;
        $this->dir_checkers[] = $this->ignore_path_pattern;
        $this->dir_checkers[] = $this->ignore_excludes;
        $this->dir_checkers[] = $this->ignore_dots;
    }

    public function setIgnoreListFile($filepath)
    {
        if (!file_exists($filepath) || !is_file($filepath) || !is_readable($filepath)) {
            return;
        }
        $this->ignoreList = [];
        $content = file_get_contents($filepath);
        $list = explode("\n", $content);
        foreach ($list as $base64_filepath) {
            if ($base64_filepath !== '') {
                $this->ignoreList[$base64_filepath] = '';
            }
        }
    }

    public function setIgnoreFilenames($templates)
    {
        if (!$templates) {
            return;
        }

        $this->no_match_patterns = explode(',', $templates);
        for ($i = 0, $iMax = count($this->no_match_patterns); $i < $iMax; $i++) {
            $this->no_match_patterns[$i] = trim($this->no_match_patterns[$i]);
        }
    }

    public function setOnlyFilepaths($templates)
    {
        if (empty($templates)) {
            return;
        }
        $this->match_patterns = explode(',', $templates);
        for ($i = 0, $iMax = count($this->match_patterns); $i < $iMax; $i++) {
            $this->match_patterns[$i] = trim($this->match_patterns[$i]);
        }
    }

    public function setSkipFilesOlder($unix_timestamp)
    {
        $this->skipFilesOlder = $unix_timestamp;
    }

    public function setSkipRootOwner()
    {
        $this->skipRootOwner = true;
    }

    public function setSkipSystemOwner($min_max_uid)
    {
        if (is_array($min_max_uid)) {
            $this->skipSystemOwner = $min_max_uid;
        }
    }

    public function setFollowSymlink()
    {
        $this->followSymlink = true;
    }

    public function isFollowSymlink()
    {
        return $this->followSymlink;
    }


    public function setIgnoreQuarantine()
    {
        $this->ignoreQuarantine = true;
    }

    public function generateCheckers()
    {
        $file_checkers = $this->file_checkers;
        if ($this->match_patterns) {
            $file_checkers[] = $this->check_file_patterns;
        }
        if ($this->no_match_patterns) {
            $file_checkers[] = $this->check_file_not_patterns;
        }
        if ($this->skipRootOwner) {
            $file_checkers[] = $this->check_is_not_root;
        }
        if ($this->skipSystemOwner && is_array($this->skipSystemOwner)) {
            $file_checkers[] = $this->check_is_not_system;
        }

        $dir_checkers = $this->dir_checkers;

        if(!$this->followSymlink) {
            $dir_checkers[] = $this->ignore_symlink;
        }

        if ($this->ignoreQuarantine) {
            $dir_checkers[] = $this->ignore_quar;
        }

        if ($this->skipFilesOlder) {
            $file_checkers[] = $this->check_file_older;
        }

        if ($this->ignoreFilenameByRegexp) {
            $file_checkers[] = $this->check_ignore_filename_template;
        }

        if (!empty($this->ignoreList)) {
            $file_checkers[] = $this->check_ignore_file;
            $dir_checkers[] = $this->check_ignore_file;
        }

        if ($this->onlyFilepathRegexp) {
            $file_checkers[] = $this->check_only_filepath_template;
        }

        if (!empty($this->ignoreExt)) {
            $file_checkers[] = $this->ignore_ext;
        }

        if ($this->imunify_filters) {
            $file_checkers[] = $this->imunify_filter;
        }

        $this->ignoreListPatterns = array_merge($this->ignoreListPatterns, self::IMUNIFY_LOG_PATTERN, self::LOG_AND_MAIL_PATTERN);

        if($this->smartScan) {
            $this->ignoreListPatterns = array_merge($this->ignoreListPatterns, self::SKIP_SMART_MASK);
        }

        $this->file_checkers = $file_checkers;
        $this->dir_checkers = $dir_checkers;
    }

    public function getFileCheckers()
    {
        return $this->file_checkers;
    }

    public function getDirCheckers()
    {
        return $this->dir_checkers;
    }

    private function check($file, $where, $stat = false)
    {

        if (!$file) {
            return false;
        }
        if (!$stat) {
            $stat = stat($file);
        }
        foreach ($where as $func) {
            if(empty($func)) {
                continue;
            }
            if (!$func($file, $stat)) {

                return false;
            }
        }
        return true;
    }

    public function needToScan($file, $stat = false, $only_dir = false)
    {
        if (!$file) {
            return false;
        }

        if (!$stat) {
            $stat = @stat($file);
            if (!$stat) {
                return false;
            }
        }

        if (!$only_dir && !$this->check($file, $this->getFileCheckers(), $stat)) {
            return false;
        }

        if (!$this->check($file, $this->getDirCheckers(), $stat)) {
            return false;
        }

        return true;
    }

    private function getTree($file)
    {
        $tree = [];
        $path = $file;
        $i = 1;
        while ($path !== '.' && $path !== '/') {
            $path = dirname($path, $i);
            $tree[] = $path;
            $i++;
        }
        $tree[] = $file;
        return $tree;
    }

    private function pathRelatesTo($tree, $pathes, $base64 = false)
    {
        foreach ($tree as $path) {
            if ($base64) {
                $path = base64_encode($path);
            }
            if (isset($pathes[$path])) {
                return true;
            }
        }
        return false;
    }

    public function checkShortExt($path)
    {
        return $this->check_short_ext->call($this, $path);
    }
    
}


class Scanner
{
    private $addPrefix;
    private $noPrefix;
    private $finder;
    private $vars;
    private $debug;

    public function __construct($finder, $vars, $debug = null)
    {
        $this->addPrefix = isset($vars->options['addprefix']) ? $vars->options['addprefix'] : '';
        $this->noPrefix = isset($vars->options['noprefix']) ? $vars->options['noprefix'] : '';;
        $this->finder = $finder;
        $this->vars = $vars;
        $this->suspicious = isset($vars->options['with-suspicious']);
        $this->debug = $debug;
    }

    private function CloudAssitedFilter($files_list)
    {
        $black_files = [];
        $white_files = [];
        try {
            $car                = Factory::instance()->create(CloudAssistedRequest::class, [CLOUD_ASSIST_TOKEN]);
            $cloud_assist_files = new CloudAssistedFiles($car, $files_list, $this->vars);
            $white_files        = $cloud_assist_files->getWhiteList();
            $black_files        = $cloud_assist_files->getBlackList();
            unset($cloud_assist_files);
        }
        catch (\Exception $e) {
            fwrite(STDERR, 'Warning: [CAS] ' . $e->getMessage() . PHP_EOL);
            if (isset($this->debug)) {
                $this->debug->QCR_Debug($e->getMessage());
            }

        }
        $this->vars->blackFiles = array_diff_assoc(array_merge($this->vars->blackFiles, $black_files), $white_files);
        return array_diff($files_list, array_keys($black_files), array_keys($white_files));
    }

    public function QCR_ScanDirectories($l_RootDir)
    {
        static $l_Buffer = '';

        if (isset($this->debug)) {
            $this->debug->QCR_Debug('Scan ' . $l_RootDir);
        }

        $listFiles = $this->finder->find($l_RootDir);
        foreach ($listFiles as $l_FileName) {
            if (ONE_PASS) {
                $this->QCR_ScanFile($l_FileName, $this->vars, null, $this->vars->counter++);
            } else {
                $l_Buffer .= FilepathEscaper::encodeFilepathByBase64($l_FileName) . "\n";
            }

            $this->vars->counter++;

            if (strlen($l_Buffer) > 32000) {
                file_put_contents(QUEUE_FILENAME, $l_Buffer, FILE_APPEND) || die2("Cannot write to file " . QUEUE_FILENAME);
                $l_Buffer = '';
            }

        }
        $this->vars->symLinks = $this->finder->getSymlinks();
        $this->vars->doorway = $this->finder->getDoorways();
        $this->vars->foundTotalDirs = $this->finder->getTotalDirs();
        $this->vars->foundTotalFiles = $this->finder->getTotalFiles();

        if (!empty($l_Buffer)
            && (isset($this->vars->options['use-template-in-path'])
                || $l_RootDir == ROOT_PATH
            )
        ) {
            file_put_contents(QUEUE_FILENAME, $l_Buffer, FILE_APPEND) || die2("Cannot write to file " . QUEUE_FILENAME);
            $l_Buffer = '';
        }
        unset($listFiles);
    }

    public function QCR_GoScan($s_file, $callback = null, $base64_encoded = true, $skip_first_line = false)
    {
        if (isset($this->debug)) {
            $this->debug->QCR_Debug('QCR_GoScan ');
        }
        try {
            $i = 0;
            $filesForCloudAssistedScan = [];

            foreach ($s_file as $index => $filepath_encoded) {
                if ($callback !== null) {
                    $this->callCallback($callback);
                }

                if ($skip_first_line && $index == 0) {
                    $i = 1;
                    continue;
                }

                $filepath = $base64_encoded ? FilepathEscaper::decodeFilepathByBase64($filepath_encoded) : $filepath_encoded;

                if (!file_exists($filepath) || !is_file($filepath) || !is_readable($filepath)) {
                    continue;
                }

                if (!empty($this->vars->maxMinUid)) {
                    $stat = stat($filepath);
                    if (!($stat['uid'] >= $this->vars->maxMinUid[0] && $this->stat['uid'] <= $this->vars->maxMinUid[1])) {
                        continue;
                    }
                }

                $filesize = filesize($filepath);
                if ($filesize > MAX_FILE_SIZE_FOR_CHECK || $filesize < MIN_FILE_SIZE_FOR_CHECK) {
                    continue;
                }

                if (substr($filepath, -1) == DIR_SEPARATOR || !defined('CLOUD_ASSIST_TOKEN')) {
                    $this->QCR_ScanFile($filepath, $this->vars, $callback, $i++);
                    continue;
                }

                if ($this->isFileTooBigForCloudscan($filesize)) {
                    $this->QCR_ScanFile($filepath, $this->vars, $callback, $i++);
                    continue;
                }

                // collecting files to scan with Cloud Assistant
                $filesForCloudAssistedScan[] = $filepath;
            }

            if (count($filesForCloudAssistedScan) == 0) {
                return;
            }

            if (defined('RAPID_ACCOUNT_SCAN')) {
                $cloud_assited_storage = Factory::instance()->create(CloudAssistedStorage::class, [RAPID_ACCOUNT_SCAN]);
                $storage = Factory::instance()->create(RapidScanStorage::class, [RAPID_ACCOUNT_SCAN]);
                /** @var RapidAccountScan $scanner */
                $scanner = Factory::instance()->create(RapidAccountScan::class, [$this, $storage, $cloud_assited_storage, &$this->vars, $i]);
                $scanner->scan($filesForCloudAssistedScan, $this->vars, constant('RapidAccountScan::RESCAN_' . RAPID_ACCOUNT_SCAN_TYPE));
                if ($scanner->getStrError()) {
                    if (isset($this->debug)) {
                        $this->debug->QCR_Debug('Rapid scan log: ' . $scanner->getStrError());
                    }
                }
                $this->vars->rescanCount += $scanner->getRescanCount();
            } else {
                $scan_bufer_files = function ($files_list, &$i) use ($callback) {
                    $this->vars->hashtable = new HashTable();
                    $files_to_scan = $this->CloudAssitedFilter($files_list);
                    foreach ($files_to_scan as $filepath) {
                        $this->QCR_ScanFile($filepath, $this->vars, $callback, $i++);
                    }
                    $this->vars->hashtable = null;
                };
                $files_bufer = [];
                foreach ($filesForCloudAssistedScan as $l_Filename) {
                    $files_bufer[] = $l_Filename;
                    if (count($files_bufer) >= CLOUD_ASSIST_LIMIT) {
                        $scan_bufer_files($files_bufer, $i);
                        $files_bufer = [];
                    }
                }
                if (count($files_bufer)) {
                    $scan_bufer_files($files_bufer, $i);
                }
                unset($files_bufer);
            }
        } catch (Exception $e) {
            if (isset($this->debug)) {
                $this->debug->QCR_Debug($e->getMessage());
            }
        }
    }

    public function QCR_ScanFile($l_Filename, $vars, $callback = null, $i = 0, $show_progress = true)
    {

        $return = array(RapidScanStorageRecord::RX_GOOD, '', '');
        $g_SkipNextCheck = false;

        /** @var CriticalFileSpecification $criticalFileSpecification */
        $criticalFileSpecification = Factory::instance()->create(CriticalFileSpecification::class);

        if ($vars->fileinfo !== null) {
            if ($l_Filename !== $vars->fileinfo->getFilename()) {
                unset($file);
                $vars->fileinfo = null;
            }
        }

        if ($vars->fileinfo == null) {
            $file = new FileInfo($l_Filename, $i, $vars->hashtable);
            $vars->fileinfo = $file;
        }

        $file = $vars->fileinfo;
        $vars->crc = 0;

        $l_CriticalDetected = false;

        if (substr($l_Filename, -1) == DIR_SEPARATOR) {
            // FOLDER
            $vars->structure['n'][$i] = $l_Filename;
            $vars->totalFolder++;
            printProgress($vars->files_and_ignored, $l_Filename, $vars);
            unset($file);
            $vars->fileinfo = null;

            return null;
        }

        if (isset($this->debug)) {
            $this->debug->QCR_Debug('Scan file ' . $l_Filename);
        }

        if ($show_progress) {
            printProgress(++$vars->files_and_ignored, $l_Filename, $vars);
        }

        $l_Ext = strtolower(pathinfo($l_Filename, PATHINFO_EXTENSION));
        $l_Content = '';

        if ($file->isBinary()) {
            if(defined('USE_HEURISTICS') || defined('USE_HEURISTICS_SUSPICIOUS')) {
                $vars->crc = $file->getSha1file();
                $this->AddResult($file, $i, $vars);

                if (defined('USE_HEURISTICS')) {
                    $vars->criticalPHP[] = $i;
                    $vars->criticalPHPFragment[] = 'SMW-HEUR-ELF';
                    $vars->criticalPHPSig[] = 'SMW-HEUR-ELF';
                }

                if (defined('USE_HEURISTICS_SUSPICIOUS')) {
                    $vars->warningPHP[] = $i;
                    $vars->warningPHPFragment[] = 'SMW-HEUR-ELF';
                    $vars->warningPHPSig[] = 'SMW-HEUR-ELF';
                }

                $return = array(RapidScanStorageRecord::HEURISTIC, 'SMW-HEUR-ELF', 'SMW-HEUR-ELF');
                unset($file);
                $vars->fileinfo = null;

                return $return;
            }
            unset($file);
            $vars->fileinfo = null;
            return null;
        }

        // FILE
        $is_too_big = $this->isFileTooBigForScanWithSignatures($file->getSize());
        $hash = $file->getSha1file();
        $l_TSStartScan = microtime(true);
        if ($this->check_binmalware($hash)) {
            $vars->totalFiles++;

            $vars->crc = $hash;

            $this->AddResult($file, $i, $vars);

            $vars->criticalPHP[] = $i;
            $vars->criticalPHPFragment[] = "BIN-" . $vars->crc;
            $vars->criticalPHPSig[] = "bin_" . $vars->crc;
            $return = array(RapidScanStorageRecord::RX_MALWARE, "bin_" . $vars->crc, "BIN-" . $vars->crc);
        } elseif (!MAX_SIZE_SCAN_BYTES && $is_too_big) {
            $vars->bigFiles[] = $i;

            if (function_exists('aibolit_onBigFile')) {
                aibolit_onBigFile($l_Filename);
            }

            $this->AddResult($file, $i, $vars);

            if ((!AI_HOSTER) && $criticalFileSpecification->satisfiedBy($l_Ext, 'extensions')) {
                $vars->criticalPHP[]         = $i;
                $vars->criticalPHPFragment[] = "BIG FILE. SKIPPED.";
                $vars->criticalPHPSig[]      = "big_1";
            }
        } else {
            $vars->totalFiles++;
            $file_type = filetype($l_Filename);
            if ($file_type == 'file' || (isset($vars->options['follow-symlink']) && $file_type == 'link')) {
                if ($is_too_big && MAX_SIZE_SCAN_BYTES) {
                    $l_Content  = $file->getContentBytes(MAX_SIZE_SCAN_BYTES);
                } else {
                    $l_Content  = $file->getContent();
                }
                $l_Unwrapped = $file->getContentWithoutSpaces(MAX_SIZE_SCAN_BYTES);
            }
            if (($l_Content == '' || $l_Unwrapped == '') && $file->getSize() > 0) {
                $vars->notRead[] = $i;
                if (function_exists('aibolit_onReadError')) {
                    aibolit_onReadError($l_Filename, 'io');
                }
                $return = array(RapidScanStorageRecord::CONFLICT, 'notread','');
                $this->AddResult('[io] ' . $l_Filename, $i, $vars);
                unset($file);
                $vars->fileinfo = null;
                return $return;
            }

            // ignore itself
            if (strpos($l_Content, 'b48ff5faef01347e58a53cfcc7d357b7') !== false) {
                unset($file);
                $vars->fileinfo = null;
                return false;
            }

            $vars->crc = $file->getHash();

            $l_UnicodeContent = Encoding::detectUTFEncoding($l_Content);
            //$l_Unwrapped = $l_Content;

            // check vulnerability in files
            $l_CriticalDetected = $this->CheckVulnerability($l_Filename, $i, $l_Content, $vars);

            if ($l_UnicodeContent !== false) {
                if (Encoding::iconvSupported()) {
                    $l_Unwrapped = Encoding::convertToCp1251($l_UnicodeContent, $l_Unwrapped);
                } else {
                    $vars->notRead[] = $i;
                    if (function_exists('aibolit_onReadError')) {
                        aibolit_onReadError($l_Filename, 'ec');
                    }
                    $return = array(RapidScanStorageRecord::CONFLICT, 'no_iconv', '');
                    $this->AddResult('[ec] ' . $l_Filename, $i, $vars);
                }
            }

            // critical
            $g_SkipNextCheck = false;

            if ((!AI_HOSTER) || AI_DEOBFUSCATE) {
                $l_DeobfObj = new Deobfuscator($l_Unwrapped, $l_Content);
                $l_DeobfType = $l_DeobfObj->getObfuscateType($l_Unwrapped);
            }

            if (isset($l_DeobfType) && $l_DeobfType != '') {
                $l_Unwrapped = $l_DeobfObj->deobfuscate();
                $g_SkipNextCheck = $this->checkFalsePositives($l_Filename, $l_Unwrapped, $l_DeobfType, $vars);
            } else {
                if (DEBUG_MODE) {
                    stdOut("\n...... NOT OBFUSCATED\n");
                }
            }

            $l_Unwrapped = Normalization::normalize($l_Unwrapped);

            $precheck = function ($type, $content) use ($l_Ext, $criticalFileSpecification) {
                $critical_params = [
                    'CriticalPHP'           => ['extensions', 'critical_content'],
                    'CriticalPHP_2'         => ['extensions', 'critical_content'],
                    'CriticalPHP_3'         => ['extensions', 'critical_content'],
                    'CriticalPHP_4'         => ['extensions', 'critical_content'],
                    'CriticalPHP_5'         => ['extensions', 'critical_content'],
                    'CriticalPHPGIF'        => ['extensions', 'critical_content'],
                    'CriticalPHPUploader'   => ['extensions', 'critical_content'],
                    'CriticalJS'            => ['js_extensions', 'critical_js_content'],
                    'CriticalJS_PARA'       => ['js_extensions', 'critical_js_content'],
                    'Phishing'              => ['phish_extensions', 'critical_phish_content'],
                ];

                if (!SMART_SCAN || !isset($critical_params[$type])) {
                    return true;
                }

                if (isset($check_params[$type])) {
                    $this->satisfiedBySmartScan($criticalFileSpecification, $l_Ext, $content, $check_params[$type][0], $check_params[$type][1]);
                }
            };

            $processResult = function ($checker, $content, $l_Pos, $l_SigId, &$return) use (&$vars, $l_Ext, $i) {
                $checkers = [
                    'CriticalPHP'           =>     ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'],
                    'CriticalPHP_2'         =>     ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'],
                    'CriticalPHP_3'         =>     ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'],
                    'CriticalPHP_4'         =>     ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'],
                    'CriticalPHP_5'         =>     ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'],
                    'CriticalPHPGIF'        =>     ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'],
                    'CriticalPHPUploader'   =>     ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'],
                    'CriticalJS'            =>     ['criticalJS', 'criticalJSFragment', 'criticalJSSig'],
                    'CriticalJS_PARA'       =>     ['criticalJS', 'criticalJSFragment', 'criticalJSSig'],
                    'WarningPHP'            =>     ['warningPHP', 'warningPHPFragment', 'warningPHPSig'],
                    'Phishing'              =>     ['phishing', 'phishingFragment', 'phishingSigFragment'],
                    'Adware'                =>     ['adwareList', 'adwareListFragment'],
                ];

                if (strpos($checker, 'Critical') !== false) {
                    if ($l_Ext == 'js') {
                        $checker = 'CriticalJS';
                    }
                    $return = array(RapidScanStorageRecord::RX_MALWARE, $l_SigId, $this->getFragment($content, $l_Pos));
                }

                if ($checker == 'WarningPHP' || $checker == 'Phishing') {
                    $return = array(RapidScanStorageRecord::RX_SUSPICIOUS, $l_SigId, $this->getFragment($content, $l_Pos));
                }

                $vars->{$checkers[$checker][0]}[] = $i;
                $vars->{$checkers[$checker][1]}[] = $this->getFragment($content, $l_Pos);
                if (isset($checkers[$checker][2])) {
                    $vars->{$checkers[$checker][2]}[] = $l_SigId;
                }
            };



            $l_Pos = 0;
            $l_SigId = '';
            if (!$g_SkipNextCheck) {
                $checkers['CriticalPHP'] = true;
                if (AI_EXPERT_MODE > 0) {
                    $checkers['CriticalPHP_3'] = true;
                }
                if (AI_EXPERT_MODE > 1) {
                    $checkers['CriticalPHP_2'] = true;
                }
                $checkers['CriticalPHP_4'] = true;
                if (AI_EXPERT_MODE > 0) {
                    $checkers['CriticalPHP_5'] = true;
                }
                if (!AI_HOSTER && AI_EXPERT > 0 && $l_Ext == 'php') {
                    $checkers['CriticalPHPGIF'] = true;
                }
                if (!AI_HOSTER && AI_EXPERT > 1 && strpos($l_Ext, 'ph') !== false) {
                    $checkers['CriticalPHPUploader'] = true;
                }
                $checkers['CriticalJS'] = false;
                if (AI_EXPERT_MODE > 1) {
                    $checkers['CriticalJS_PARA'] = false;
                }


                if ($this->suspicious) {
                    $checkers['WarningPHP'] = false;
                    $checkers['Phishing'] = true;
                    $checkers['Adware'] = false;
                }

                $g_SkipNextCheck = ScanUnit::QCR_ScanContent($checkers, $l_Unwrapped, $l_Content, $vars->signs, $this->debug, $precheck,
                    $processResult, $return);
            }


            if (!$g_SkipNextCheck && isset($checkers['Adware'])) {
                // articles
                if (stripos($l_Filename, 'article_index')) {
                    $vars->adwareList[]     = $i;
                    $l_CriticalDetected = true;
                }
            }
        } // end of if (!$g_SkipNextCheck) {

        //printProgress(++$_files_and_ignored, $l_Filename);
        $this->delayWithCallback(SCAN_DELAY, $callback);
        $l_TSEndScan = microtime(true);
        if ($l_TSEndScan - $l_TSStartScan >= 0.5) {
            $this->delayWithCallback(SCAN_DELAY, $callback);
        }

        if ($g_SkipNextCheck || $l_CriticalDetected) {
            $this->AddResult($file, $i, $vars);
        }

        unset($file);
        $vars->fileinfo = null;
        unset($l_Unwrapped);
        unset($l_Content);

        return $return;
    }

    private function callCallback($callback)
    {
        if ($callback !== null) {
            call_user_func($callback);
        }
    }

    private function delayWithCallback($delay, $callback)
    {
        $delay *= 1000;
        $this->callCallback($callback);
        while ($delay > 500000) {
            $delay -= 500000;
            usleep(500000);
            $this->callCallback($callback);
        }
        usleep($delay);
        $this->callCallback($callback);
    }

    public function AddResult($file, $i, $vars)
    {
        if (is_string($file)) {
            $vars->structure['n'][$i]   = $file;
            return;
        }
        $vars->structure['n'][$i]   = $file->getFilename();
        $vars->structure['s'][$i]   = $file->getSize();
        $vars->structure['c'][$i]   = $file->getCreated();
        $vars->structure['m'][$i]   = $file->getModified();
        $vars->structure['e'][$i]   = time();
        $vars->structure['crc'][$i] = $vars->crc;

        if (!$this->isFileTooBigForScanWithSignatures($file->getSize())) {
            $vars->structure['sha256'][$i] = $file->getSha256();
        }
    }

    private function satisfiedBySmartScan($fs, $ext, $content, $ext_table, $content_table)
    {
        $skip = $fs->satisfiedBy($ext, $ext_table) && $fs->satisfiedByContent($content, $content_table);
        if ($skip && DEBUG_MODE) {
            echo "Skipped file, not critical.\n";
        }
        return $skip;
    }

///////////////////////////////////////////////////////////////////////////

    private function CheckVulnerability($par_Filename, $par_Index, $par_Content, $vars)
    {
        global $g_CmsListDetector, $defaults;

        $use_cms_detector = ($g_CmsListDetector instanceof CmsVersionDetector);

        if (!$use_cms_detector && !$defaults['use_template_in_path']) {
            return false;
        }

        $l_Vuln = array();

        $par_Filename = strtolower($par_Filename);

        if ((strpos($par_Filename, 'libraries/joomla/session/session.php') !== false) && (strpos($par_Content, '&& filter_var($_SERVER[\'HTTP_X_FORWARDED_FOR') === false)) {
            $l_Vuln['id']   = 'RCE : https://docs.joomla.org/Security_hotfixes_for_Joomla_EOL_versions';
            $l_Vuln['ndx']  = $par_Index;
            $vars->vulnerable[] = $l_Vuln;
            return true;
        }

        if ($use_cms_detector
            && (strpos($par_Filename, 'administrator/components/com_media/helpers/media.php') !== false)
            && (strpos($par_Content, '$format == \'\' || $format == false ||') === false)
        ) {
            if ($g_CmsListDetector->isCms(CmsVersionDetector::CMS_JOOMLA, '1.5')) {
                $l_Vuln['id']   = 'AFU : https://docs.joomla.org/Security_hotfixes_for_Joomla_EOL_versions';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }

        if ($use_cms_detector
            && (strpos($par_Filename, 'joomla/filesystem/file.php') !== false)
            && (strpos($par_Content, '$file = rtrim($file, \'.\');') === false)
        ) {
            if ($g_CmsListDetector->isCms(CmsVersionDetector::CMS_JOOMLA, '1.5')) {
                $l_Vuln['id']   = 'AFU : https://docs.joomla.org/Security_hotfixes_for_Joomla_EOL_versions';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }

        if ((strpos($par_Filename, 'editor/filemanager/upload/test.html') !== false) || (stripos($par_Filename, 'editor/filemanager/browser/default/connectors/php/') !== false) || (stripos($par_Filename, 'editor/filemanager/connectors/uploadtest.html') !== false) || (strpos($par_Filename, 'editor/filemanager/browser/default/connectors/test.html') !== false)) {
            $l_Vuln['id']   = 'AFU : FCKEDITOR : http://www.exploit-db.com/exploits/17644/ & /exploit/249';
            $l_Vuln['ndx']  = $par_Index;
            $vars->vulnerable[] = $l_Vuln;
            return true;
        }

        if ((strpos($par_Filename, 'inc_php/image_view.class.php') !== false) || (strpos($par_Filename, '/inc_php/framework/image_view.class.php') !== false)) {
            if (strpos($par_Content, 'showImageByID') === false) {
                $l_Vuln['id']   = 'AFU : REVSLIDER : http://www.exploit-db.com/exploits/35385/';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }

        if (strpos($par_Filename, 'includes/database/database.inc') !== false) {
            if (strpos($par_Content, 'foreach ($data as $i => $value)') !== false) {
                $l_Vuln['id']   = 'SQLI : DRUPAL : CVE-2014-3704';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }

        if (strpos($par_Filename, 'engine/classes/min/index.php') !== false) {
            if (strpos($par_Content, 'tr_replace(chr(0)') === false) {
                $l_Vuln['id']   = 'AFD : MINIFY : CVE-2013-6619';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }

        if ((strpos($par_Filename, 'timthumb.php') !== false) || (strpos($par_Filename, 'thumb.php') !== false) || (strpos($par_Filename, 'cache.php') !== false) || (strpos($par_Filename, '_img.php') !== false)) {
            if (strpos($par_Content, 'code.google.com/p/timthumb') !== false && strpos($par_Content, '2.8.14') === false) {
                $l_Vuln['id']   = 'RCE : TIMTHUMB : CVE-2011-4106,CVE-2014-4663';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }

        if (strpos($par_Filename, 'components/com_rsform/helpers/rsform.php') !== false) {
            if (preg_match('~define\s*\(\s*\'_rsform_version\'\s*,\s*\'([^\']+)\'\s*\)\s*;~msi', $par_Content, $version)) {
                $version = $version[1];
                if (version_compare($version, '1.5.2') !== 1) {
                    $l_Vuln['id']   = 'RCE : RSFORM : rsform.php, LINE 1605';
                    $l_Vuln['ndx']  = $par_Index;
                    $vars->vulnerable[] = $l_Vuln;
                    return true;
                }
            }
            return false;
        }


        if (strpos($par_Filename, 'fancybox-for-wordpress/fancybox.php') !== false) {
            if (strpos($par_Content, '\'reset\' == $_REQUEST[\'action\']') !== false) {
                $l_Vuln['id']   = 'CODE INJECTION : FANCYBOX';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }


        if (strpos($par_Filename, 'cherry-plugin/admin/import-export/upload.php') !== false) {
            if (strpos($par_Content, 'verify nonce') === false) {
                $l_Vuln['id']   = 'AFU : Cherry Plugin';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }


        if (strpos($par_Filename, 'tiny_mce/plugins/tinybrowser/tinybrowser.php') !== false) {
            $l_Vuln['id']   = 'AFU : TINYMCE : http://www.exploit-db.com/exploits/9296/';
            $l_Vuln['ndx']  = $par_Index;
            $vars->vulnerable[] = $l_Vuln;

            return true;
        }

        if (strpos($par_Filename, '/bx_1c_import.php') !== false) {
            if (strpos($par_Content, '$_GET[\'action\']=="getfiles"') !== false) {
                $l_Vuln['id']   = 'AFD : https://habrahabr.ru/company/dsec/blog/326166/';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;

                return true;
            }
        }

        if (strpos($par_Filename, 'scripts/setup.php') !== false) {
            if (strpos($par_Content, 'PMA_Config') !== false) {
                $l_Vuln['id']   = 'CODE INJECTION : PHPMYADMIN : http://1337day.com/exploit/5334';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }

        if (strpos($par_Filename, '/uploadify.php') !== false) {
            if (strpos($par_Content, 'move_uploaded_file($tempFile,$targetFile') !== false) {
                $l_Vuln['id']   = 'AFU : UPLOADIFY : CVE: 2012-1153';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }

        if (strpos($par_Filename, 'com_adsmanager/controller.php') !== false) {
            if (strpos($par_Content, 'move_uploaded_file($file[\'tmp_name\'], $tempPath.\'/\'.basename($file[') !== false) {
                $l_Vuln['id']   = 'AFU : https://revisium.com/ru/blog/adsmanager_afu.html';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }

        if (strpos($par_Filename, 'wp-content/plugins/wp-mobile-detector/resize.php') !== false) {
            if (strpos($par_Content, 'file_put_contents($path, file_get_contents($_REQUEST[\'src\']));') !== false) {
                $l_Vuln['id']   = 'AFU : https://www.pluginvulnerabilities.com/2016/05/31/aribitrary-file-upload-vulnerability-in-wp-mobile-detector/';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }


        if (strpos($par_Filename, 'core/lib/drupal.php') !== false) {
            $version = '';
            if (preg_match('|VERSION\s*=\s*\'(8\.\d+\.\d+)\'|smi', $par_Content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

            if (($version !== '') && (version_compare($version, '8.5.1', '<'))) {
                $l_Vuln['id']   = 'Drupageddon 2 : SA-CORE-2018–002';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }


            return false;
        }

        if (strpos($par_Filename, 'changelog.txt') !== false) {
            $version = '';
            if (preg_match('|Drupal\s+(7\.\d+),|smi', $par_Content, $tmp_ver)) {
                $version = $tmp_ver[1];
            }

            if (($version !== '') && (version_compare($version, '7.58', '<'))) {
                $l_Vuln['id']   = 'Drupageddon 2 : SA-CORE-2018–002';
                $l_Vuln['ndx']  = $par_Index;
                $vars->vulnerable[] = $l_Vuln;
                return true;
            }

            return false;
        }

        if (strpos($par_Filename, 'phpmailer.php') !== false) {
            $l_Detect = false;
            if (strpos($par_Content, 'PHPMailer') !== false) {
                $l_Found = preg_match('~Version:\s*(\d+)\.(\d+)\.(\d+)~', $par_Content, $l_Match);

                if ($l_Found) {
                    $l_Version = $l_Match[1] * 1000 + $l_Match[2] * 100 + $l_Match[3];

                    if ($l_Version < 2520) {
                        $l_Detect = true;
                    }
                }

                if (!$l_Found) {

                    $l_Found = preg_match('~Version\s*=\s*\'(\d+)\.*(\d+)\.(\d+)~i', $par_Content, $l_Match);
                    if ($l_Found) {
                        $l_Version = $l_Match[1] * 1000 + $l_Match[2] * 100 + $l_Match[3];
                        if ($l_Version < 5220) {
                            $l_Detect = true;
                        }
                    }
                }

                if ($l_Detect) {
                    $l_Vuln['id']   = 'RCE : CVE-2016-10045, CVE-2016-10031';
                    $l_Vuln['ndx']  = $par_Index;
                    $vars->vulnerable[] = $l_Vuln;
                    return true;
                }
            }

            return false;
        }
    }

    private function checkFalsePositives($l_Filename, $l_Unwrapped, $l_DeobfType, $vars)
    {

        if ($l_DeobfType != '') {
            if (DEBUG_MODE) {
                stdOut("\n-----------------------------------------------------------------------------\n");
                stdOut("[DEBUG]" . $l_Filename . "\n");
                stdOut("\n...... $l_DeobfType ...........\n");
                var_dump($l_Unwrapped);
                stdOut("\n");
            }

            switch ($l_DeobfType) {
                case 'Bitrix':
                    foreach ($vars->signs->_DeMapper as $fkey => $fvalue) {
                        if (DEBUG_MODE) {
                            stdOut("[$fkey] => [$fvalue]\n");
                        }

                        if ((strpos($l_Filename, $fkey) !== false) && (strpos($l_Unwrapped, $fvalue) !== false)) {
                            if (DEBUG_MODE) {
                                stdOut("\n[DEBUG] *** SKIP: False Positive\n");
                            }

                            return true;
                        }
                    }
                    break;
            }


            return false;
        }
    }

    private function getFragment($par_Content, $par_Pos)
    {

        $l_MaxChars = MAX_PREVIEW_LEN;

        $par_Content = preg_replace('/[\x00-\x1F\x80-\xFF]/', '~', $par_Content);

        $l_MaxLen   = strlen($par_Content);
        $l_RightPos = min($par_Pos + $l_MaxChars, $l_MaxLen);
        $l_MinPos   = max(0, $par_Pos - $l_MaxChars);

        $l_FoundStart = substr($par_Content, 0, $par_Pos);
        $l_FoundStart = str_replace("\r", '', $l_FoundStart);
        $l_LineNo     = strlen($l_FoundStart) - strlen(str_replace("\n", '', $l_FoundStart)) + 1;


        $l_Res = '__AI_LINE1__' . $l_LineNo . "__AI_LINE2__  " . ($l_MinPos > 0 ? '…' : '') . substr($par_Content, $l_MinPos, $par_Pos - $l_MinPos) . '__AI_MARKER__' . substr($par_Content, $par_Pos, $l_RightPos - $par_Pos - 1);

        $l_Res = AibolitHelpers::makeSafeFn(Normalization::normalize($l_Res), $this->addPrefix, $this->noPrefix);

        $l_Res = str_replace('~', ' ', $l_Res);

        $l_Res = preg_replace('~[\s\t]+~', ' ', $l_Res);

        $l_Res = str_replace('' . '?php', '' . '?php ', $l_Res);

        return $l_Res;
    }

    /**
     * @return array
     */
    public function whitelisting()
    {
        // whitelist
        $snum = 0;
        $list = $this->check_whitelist($this->vars->structure['crc'], $snum);
        $keys = array(
            'criticalPHP',
            'criticalJS',
            'g_Iframer',
            'g_Base64',
            'phishing',
            'adwareList',
            'g_Redirect',
            'warningPHP'
        );

        foreach ($keys as $p) {
            if (empty($this->vars->{$p})) {
                continue;
            }
            $p_Fragment = $p . 'Fragment';
            $p_Sig      = $p . 'Sig';

            if ($p == 'g_Redirect') {
                $p_Fragment = $p . 'PHPFragment';
            }
            elseif ($p == 'g_Phishing') {
                $p_Sig = $p . 'SigFragment';
            }

            $count = count($this->vars->{$p});
            for ($i = 0; $i < $count; $i++) {
                $id = $this->vars->{$p}[$i];
                if ($this->vars->structure['crc'][$id] !== 0 && in_array($this->vars->structure['crc'][$id], $list)) {
                    unset($this->vars->{$p}[$i], $this->vars->{$p_Sig}[$i], $this->vars->{$p_Fragment}[$i]);
                }
            }

            $this->vars->{$p}             = array_values($this->vars->{$p});
            $this->vars->{$p_Fragment}    = array_values($this->vars->{$p_Fragment});
            if (!empty($this->vars->{$p_Sig})) {
                $this->vars->{$p_Sig} = array_values($this->vars->{$p_Sig});
            }
        }
        return array($snum, $i);
    }

    public function check_whitelist($list, &$snum)
    {
        if (empty($list)) {
            return array();
        }

        $avdb = '';
        $file = dirname(__FILE__) . '/AIBOLIT-WHITELIST.db';
        if ((isset($this->vars->options['avdb']) && !empty($this->vars->options['avdb']) && ($avdb = $this->vars->options['avdb'])) || (isset($this->vars->options['c']) && !empty($this->vars->options['c']) && ($avdb = $this->vars->options['c']))) {
            if (file_exists($avdb)) {
                $file = dirname($avdb) . '/AIBOLIT-WHITELIST.db';
            }
        }

        try {
            $db = FileHashMemoryDb::open($file);
        } catch (Exception $e) {
            stdOut("\nAn error occurred while loading the white list database from " . $file . "\n");
            return array();
        }

        $snum = $db->count();
        stdOut("\nLoaded " . ceil($snum) . " known files from " . $file . "\n");

        return $db->find($list);
    }

    private function check_binmalware($hash)
    {
        if (isset($this->vars->blacklist)) {
            return count($this->vars->blacklist->find(array($hash))) > 0;
        }

        return false;
    }

///////////////////////////////////////////////////////////////////////////

    private function isFileTooBigForScanWithSignatures($filesize)
    {
        return (MAX_SIZE_TO_SCAN > 0 && $filesize > MAX_SIZE_TO_SCAN) || ($filesize < 0);
    }

    private function isFileTooBigForCloudscan($filesize)
    {
        return (MAX_SIZE_TO_CLOUDSCAN > 0 && $filesize > MAX_SIZE_TO_CLOUDSCAN) || ($filesize < 0);
    }
}


class ScanUnit
{
    public static function QCR_ScanContent($checkers, $l_Unwrapped, $l_Content, $signs, $debug = null, $precheck = null, $processResult = null, &$return = null)
    {
        foreach ($checkers as $checker => $full) {
            $l_pos = 0;
            $l_SignId = '';
            if (isset($precheck) && is_callable($precheck)) {
                if (!$precheck($checker, $l_Unwrapped) || ($full && !$precheck($checker, $l_Content))) {
                    continue;
                }
            }
            $flag = ScanCheckers::{$checker}($l_Unwrapped, $l_pos, $l_SignId, $signs, $debug);
            if ($flag && isset($processResult) && is_callable($processResult)) {
                $processResult($checker, $l_Unwrapped, $l_pos, $l_SignId, $return);
            }

            if (!$flag && $full) {
                $flag = ScanCheckers::{$checker}($l_Content, $l_pos, $l_SignId, $signs, $debug);
                if ($flag && isset($processResult) && is_callable($processResult)) {
                    $processResult($checker, $l_Content, $l_pos, $l_SignId, $return);
                }
            }
            if ($flag) {
                return true;
            }
        }
        return false;
    }
}


class ScanCheckers
{
    const URL_GRAB = '~(?:https?:)?\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+\~#=]{2,256}\.[a-z]{2,4}\b(?:[-a-zA-Z0-9@:%_\+.\~#?&/=]*)~msi';

    public static function WarningPHP($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        foreach ($signs->_SusDB as $l_Item) {
            if (preg_match('~' . $l_Item . '~smiS', $l_Content, $l_Found, PREG_OFFSET_CAPTURE)) {
                if (!self::CheckException($l_Content, $l_Found, $signs)) {
                    $l_Pos   = $l_Found[0][1];
                    $l_SigId = LoadSignaturesForScan::getSigId($l_Found);
                    return true;
                }
            }
        }
        return false;
    }

///////////////////////////////////////////////////////////////////////////
    public static function Adware($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        $l_Res = false;

        foreach ($signs->_AdwareSig as $l_Item) {
            $offset = 0;
            while (preg_match('~' . $l_Item . '~smi', $l_Content, $l_Found, PREG_OFFSET_CAPTURE, $offset)) {
                if (!self::CheckException($l_Content, $l_Found, $signs)) {
                    $l_Pos = $l_Found[0][1];
                    $l_SigId = 'adware';
                    return true;
                }

                $offset = $l_Found[0][1] + 1;
            }
        }

        return $l_Res;
    }

///////////////////////////////////////////////////////////////////////////
    public static function CheckException(&$l_Content, &$l_Found, $signs, $debug = null)
    {
        $l_FoundStrPlus = substr($l_Content, max($l_Found[0][1] - 10, 0), 70);

        foreach ($signs->_ExceptFlex as $l_ExceptItem) {
            if (@preg_match('~' . $l_ExceptItem . '~smi', $l_FoundStrPlus, $l_Detected)) {
                return true;
            }
        }

        return false;
    }

///////////////////////////////////////////////////////////////////////////
    public static function Phishing($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        $l_Res = false;

        foreach ($signs->_PhishingSig as $l_Item) {
            $offset = 0;
            while (preg_match('~' . $l_Item . '~smi', $l_Content, $l_Found, PREG_OFFSET_CAPTURE, $offset)) {
                if (!self::CheckException($l_Content, $l_Found, $signs)) {
                    $l_Pos   = $l_Found[0][1];
                    $l_SigId = LoadSignaturesForScan::getSigId($l_Found);

                    if (is_object($debug) && $debug->getDebugMode() == true) {
                        echo "Phis: $l_Content matched [$l_Item] in $l_Pos\n";
                    }

                    return $l_Pos;
                }
                $offset = $l_Found[0][1] + 1;

            }
        }

        return $l_Res;
    }

///////////////////////////////////////////////////////////////////////////
    public static function CriticalJS($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        $l_Res = false;

        foreach ($signs->_JSVirSig as $l_Item) {
            $offset = 0;
            if (is_object($debug) && $debug->getDebugPerfomance() == true) {
                $stat_start = microtime(true);
            }

            while (preg_match('~' . $l_Item . '~smi', $l_Content, $l_Found, PREG_OFFSET_CAPTURE, $offset)) {
                if (!self::CheckException($l_Content, $l_Found, $signs)) {
                    $l_Pos   = $l_Found[0][1];
                    $l_SigId = LoadSignaturesForScan::getSigId($l_Found);

                    if (is_object($debug) && $debug->getDebugMode() == true) {
                        echo "JS: $l_Content matched [$l_Item] in $l_Pos\n";
                    }

                    $l_Res = true;
                    break;
                }

                $offset = $l_Found[0][1] + 1;

            }

            if (is_object($debug) && $debug->getDebugPerfomance() == true) {
                $stat_stop = microtime(true);
                $debug->addPerfomanceItem($l_Item, $stat_stop - $stat_start);
            }

        }

        return $l_Res;
    }

    public static function CriticalJS_PARA($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        foreach ($signs->X_JSVirSig as $l_Item) {
            if (is_object($debug) && $debug->getDebugPerfomance() == true) {
                $stat_start = microtime(true);
            }

            if (preg_match('~' . $l_Item . '~smi', $l_Content, $l_Found, PREG_OFFSET_CAPTURE)) {
                if (!self::CheckException($l_Content, $l_Found, $signs)) {
                    $l_Pos   = $l_Found[0][1];
                    //$l_SigId = myCheckSum($l_Item);
                    $l_SigId = LoadSignaturesForScan::getSigId($l_Found);

                    if (is_object($debug) && $debug->getDebugMode() == true) {
                        echo "JS PARA: $l_Content matched [$l_Item] in $l_Pos\n";
                    }
                    return true;
                }
            }

            if (is_object($debug) && $debug->getDebugPerfomance() == true) {
                $stat_stop = microtime(true);
                $debug->addPerfomanceItem($l_Item, $stat_stop - $stat_start);
            }
        }
        return false;
    }

///////////////////////////////////////////////////////////////////////////
    public static function CriticalPHPGIF($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        if (strpos($l_Content, 'GIF89') === 0) {
            $l_Pos = 0;
            $l_SigId = 'GIF';
            if (is_object($debug) && $debug->getDebugMode() == true) {
                echo "CRIT 6: $l_Content matched [GIF] in $l_Pos\n";
            }

            return true;
        }
        return false;
    }

    public static function CriticalPHPUploader($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        // detect uploaders / droppers
        $l_Found = null;
        if ((strlen($l_Content) < 2048) && ((($l_Pos = strpos($l_Content, 'multipart/form-data')) > 0) || (($l_Pos = strpos($l_Content, '$_FILE[') > 0)) || (($l_Pos = strpos($l_Content, 'move_uploaded_file')) > 0) || (preg_match('|\bcopy\s*\(|smi', $l_Content, $l_Found, PREG_OFFSET_CAPTURE)))) {
            if ($l_Found != null) {
                $l_Pos = $l_Found[0][1];
                $l_SigId = 'uploader';
            }
            if (is_object($debug) && $debug->getDebugMode() == true) {
                echo "CRIT 7: $l_Content matched [uploader] in $l_Pos\n";
            }

            return true;
        }
    }

    public static function CriticalPHP_3($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        foreach ($signs->X_FlexDBShe as $l_Item) {
            if (is_object($debug) && $debug->getDebugPerfomance() == true) {
                $stat_start = microtime(true);
            }

            if (preg_match('~' . $l_Item . '~smiS', $l_Content, $l_Found, PREG_OFFSET_CAPTURE)) {
                if (!self::CheckException($l_Content, $l_Found, $signs)) {
                    $l_Pos   = $l_Found[0][1];
                    $l_SigId = LoadSignaturesForScan::getSigId($l_Found);

                    if (is_object($debug) && $debug->getDebugMode() == true) {
                        echo "CRIT 3: $l_Content matched [$l_Item] in $l_Pos\n";
                    }

                    return true;
                }
            }

            if (is_object($debug) && $debug->getDebugPerfomance() == true) {
                $stat_stop = microtime(true);
                $debug->addPerfomanceItem($l_Item, $stat_stop - $stat_start);
            }
        }
        return false;
    }

    public static function CriticalPHP_2($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        foreach ($signs->XX_FlexDBShe as $l_Item) {
            if (is_object($debug) && $debug->getDebugPerfomance() == true) {
                $stat_start = microtime(true);
            }

            if (preg_match('~' . $l_Item . '~smiS', $l_Content, $l_Found, PREG_OFFSET_CAPTURE)) {
                if (!self::CheckException($l_Content, $l_Found, $signs)) {
                    $l_Pos   = $l_Found[0][1];
                    $l_SigId = LoadSignaturesForScan::getSigId($l_Found);

                    if (is_object($debug) && $debug->getDebugMode() == true) {
                        echo "CRIT 2: $l_Content matched [$l_Item] in $l_Pos\n";
                    }

                    return true;
                }
            }

            if (is_object($debug) && $debug->getDebugPerfomance() == true) {
                $stat_stop = microtime(true);
                $debug->addPerfomanceItem($l_Item, $stat_stop - $stat_start);
            }
        }
        return false;
    }

    public static function CriticalPHP_4($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        $l_Content_lo = strtolower($l_Content);

        foreach ($signs->_DBShe as $l_Item) {
            $l_Pos = strpos($l_Content_lo, $l_Item);
            if ($l_Pos !== false) {
                $l_SigId = AibolitHelpers::myCheckSum($l_Item);

                if (is_object($debug) && $debug->getDebugMode() == true) {
                    echo "CRIT 4: $l_Content matched [$l_Item] in $l_Pos\n";
                }

                return true;
            }
        }
        return false;
    }

    public static function CriticalPHP_5($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        $l_Content_lo = strtolower($l_Content);

        foreach ($signs->X_DBShe as $l_Item) {
            $l_Pos = strpos($l_Content_lo, $l_Item);
            if ($l_Pos !== false) {
                $l_SigId = AibolitHelpers::myCheckSum($l_Item);

                if (is_object($debug) && $debug->getDebugMode() == true) {
                    echo "CRIT 5: $l_Content matched [$l_Item] in $l_Pos\n";
                }

                return true;
            }
        }
        return false;
    }

    public static function CriticalPHP($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        foreach ($signs->_FlexDBShe as $l_Item) {
            $offset = 0;

            if (is_object($debug) && $debug->getDebugPerfomance() == true) {
                $stat_start = microtime(true);
            }
            while (preg_match('~' . $l_Item . '~smiS', $l_Content, $l_Found, PREG_OFFSET_CAPTURE, $offset)) {
                if (!self::CheckException($l_Content, $l_Found, $signs)) {
                    $l_Pos   = $l_Found[0][1];
                    //$l_SigId = myCheckSum($l_Item);
                    $l_SigId = LoadSignaturesForScan::getSigId($l_Found);

                    if (is_object($debug) && $debug->getDebugMode() == true) {
                        echo "CRIT 1: $l_Content matched [$l_Item] in $l_Pos\n";
                    }

                    return true;
                }

                $offset = $l_Found[0][1] + 1;

            }
            if (is_object($debug) && $debug->getDebugPerfomance() == true) {
                $stat_stop = microtime(true);
                $debug->addPerfomanceItem($l_Item, $stat_stop - $stat_start);
            }

        }

        return false;
    }

    public static function isOwnUrl($url, $own)
    {
        if (isset($own) && preg_match('~' . $own . '~msi', $url)) {
            return true;
        }
        return false;
    }

    public static function isUrlInList($url, $list)
    {
        if (isset($list)) {
            foreach ($list as $item) {
                if (preg_match('~' . $item . '~msiS', $url, $id, PREG_OFFSET_CAPTURE)) {
                    return $id;
                }
            }
        }

        return false;
    }

    public static function UrlChecker($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null)
    {
        $l_Pos = [];
        $l_SigId = [];
        $offset = 0;
        while (preg_match(self::URL_GRAB, $l_Content, $l_Found, PREG_OFFSET_CAPTURE, $offset)) {
            if (!self::isOwnUrl($l_Found[0][0], $signs->getOwnUrl())
                && (isset($signs->whiteUrls) && !self::isUrlInList($l_Found[0][0], $signs->whiteUrls->getDb()))) {
                if ($id = self::isUrlInList($l_Found[0][0], $signs->blackUrls->getDb())) {
                    $l_Pos['black'][] = $l_Found[0][1];
                    $l_SigId['black'][] = $signs->blackUrls->getSig($id);
                } else {
                    $l_Pos['unk'][] = $l_Found[0][1];
                    $l_SigId['unk'][] = $l_Found[0][0];
                }
            }
            $offset = $l_Found[0][1] + strlen($l_Found[0][0]);
        }
        return !empty($l_Pos);
    }
}


class TemplateList
{
    /**
     * #############
     * # MAIN_PAGE #
     * #############
     */
    const MAIN_PAGE = <<<MAIN_PAGE
<html>
<head>
    <!-- revisium.com/ai/ -->
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
    <META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">
    <title>@@HEAD_TITLE@@</title>
    <style type="text/css" title="currentStyle">
        @import "https://cdn.revisium.com/ai/media/css/demo_page2.css";
        @import "https://cdn.revisium.com/ai/media/css/jquery.dataTables2.css";
    </style>

    <script type="text/javascript" language="javascript" src="https://cdn.revisium.com/ai/jquery.js"></script>
    <script type="text/javascript" language="javascript" src="https://cdn.revisium.com/ai/datatables.min.js"></script>
    <style>
        body {
            font-family: Tahoma, sans-serif;
            color: #5a5a5a;
            background: #FFFFFF;
            font-size: 14px;
            margin: 20px;
            padding: 0;
        }

        .header {
            font-size: 34px;
            margin: 0 0 10px 0;
        }

        .hidd {
            display: none;
        }

        .ok {
            color: green;
        }

        .line_no {
            -webkit-border-radius: 4px;
            -moz-border-radius: 4px;
            border-radius: 4px;

            background: #DAF2C1;
            padding: 2px 5px 2px 5px;
            margin: 0 5px 0 5px;
        }

        .credits_header {
            -webkit-border-radius: 4px;
            -moz-border-radius: 4px;
            border-radius: 4px;

            background: #F2F2F2;
            padding: 10px;
            font-size: 11px;
            margin: 0 0 10px 0;
        }

        .marker {
            color: #FF0090;
            font-weight: 100;
            background: #FF0090;
            padding: 2px 0 2px 0;
            width: 2px;
        }

        .title {
            font-size: 24px;
            margin: 20px 0 10px 0;
            color: #9CA9D1;
        }

        .summary {
            float: left;
            width: 500px;
        }

        .summary TD {
            font-size: 12px;
            border-bottom: 1px solid #F0F0F0;
            font-weight: 700;
            padding: 10px 0 10px 0;
        }

        .crit, .vir {
            color: #D84B55;
        }

        .intitem {
            color: #4a6975;
        }

        .spacer {
            margin: 0 0 50px 0;
            clear: both;
        }

        .warn {
            color: #F6B700;
        }

        .clear {
            clear: both;
        }

        .offer {
            -webkit-border-radius: 4px;
            -moz-border-radius: 4px;
            border-radius: 4px;

            width: 500px;
            background: #F2F2F2;
            color: #747474;
            font-family: Helvetica, Arial, sans-serif;
            padding: 30px;
            margin: 20px 0 0 550px;
            font-size: 14px;
        }

        .offer-our-products {
            -webkit-border-radius: 4px;
            -moz-border-radius: 4px;
            border-radius: 4px;

            width: 500px;
            background: #f6f5e0;
            color: #747474;
            font-family: Helvetica, Arial, sans-serif;
            padding: 30px;
            margin: 20px 0 0 550px;
            font-size: 14px;
        }


        HR {
            margin-top: 15px;
            margin-bottom: 15px;
            opacity: .2;
        }

        .flist {
            font-family: Henvetica, Arial, sans-serif;
        }

        .flist TD {
            font-size: 11px;
            padding: 5px;
        }

        .flist TH {
            font-size: 12px;
            height: 30px;
            padding: 5px;
            background: #CEE9EF;
        }


        .it {
            font-size: 14px;
            font-weight: 100;
            margin-top: 10px;
        }

        .crit .it A {
            color: #E50931;
            line-height: 25px;
            text-decoration: none;
        }

        .warn .it A {
            color: #F2C900;
            line-height: 25px;
            text-decoration: none;
        }


        .details {
            font-family: Calibri, sans-serif;
            font-size: 12px;
            margin: 10px 10px 10px 0;
        }

        .crit .details {
            color: #A08080;
        }

        .warn .details {
            color: #808080;
        }

        .details A {
            color: #FFF;
            font-weight: 700;
            text-decoration: none;
            padding: 2px;
            background: #E5CEDE;
            -webkit-border-radius: 7px;
            -moz-border-radius: 7px;
            border-radius: 7px;
        }

        .details A:hover {
            background: #A0909B;
        }

        .ctd {
            margin: 10px 0 10px 0;
            align: center;
        }

        .ctd A {
            color: #0D9922;
        }

        .disclaimer {
            color: darkgreen;
            margin: 10px 10px 10px 0;
        }

        .note_vir {
            margin: 10px 0 10px 0;
        / / padding: 10 px;
            color: #FF4F4F;
            font-size: 15px;
            font-weight: 700;
            clear: both;

        }

        .note_warn {
            margin: 10px 0 10px 0;
            color: #F6B700;
            font-size: 15px;
            font-weight: 700;
            clear: both;
        }

        .note_int {
            margin: 10px 0 10px 0;
            color: #60b5d6;
            font-size: 15px;
            font-weight: 700;
            clear: both;
        }

        .updateinfo {
            color: #FFF;
            text-decoration: none;
            background: #E5CEDE;
            -webkit-border-radius: 7px;
            -moz-border-radius: 7px;
            border-radius: 7px;

            margin: 10px 0 10px 0;
            padding: 10px;
        }


        .caution {
            color: #EF7B75;
            text-decoration: none;
            margin: 20px 0 0 0;
            font-size: 12px;
        }

        .footer {
            color: #303030;
            text-decoration: none;
            background: #F4F4F4;
            -webkit-border-radius: 7px;
            -moz-border-radius: 7px;
            border-radius: 7px;

            margin: 80px 0 10px 0px;
            padding: 10px;
        }

        .rep {
            color: #303030;
            text-decoration: none;
            background: #94DDDB;
            -webkit-border-radius: 7px;
            -moz-border-radius: 7px;
            border-radius: 7px;

            margin: 10px 0 10px 0;
            padding: 10px;
            font-size: 12px;
        }

    </style>
</head>
<body>

<div class="header">@@MAIN_TITLE@@ @@PATH_URL@@ (@@MODE@@)</div>
<div class="credits_header">@@CREDITS@@</div>
<div class="details_header">
    @@STAT@@<br/>
    @@SCANNED@@ @@MEMORY@@.
</div>

@@WARN_QUICK@@

<div class="summary">
    @@SUMMARY@@
</div>

<div class="offer">
    @@OFFER@@
</div>

<div class="offer-our-products">
    @@OFFER_OUR_PRODUCTS@@
</div>

<div class="clear"></div>

@@MAIN_CONTENT@@

<div class="footer">
    @@FOOTER@@
</div>

<script language="javascript">
    function hsig(id) {
        var divs = document.getElementsByTagName("tr");
        for(var i = 0; i < divs.length; i++){

            if (divs[i].getAttribute('o') == id) {
                divs[i].innerHTML = '';
            }
        }

        return false;
    }


    $(document).ready(function(){
        $('#table_crit').dataTable({
            "aLengthMenu": [[100 , 500, -1], [100, 500, "All"]],
            "aoColumns": [
                {"iDataSort": 7, "width":"70%"},
                {"iDataSort": 5},
                {"iDataSort": 6},
                {"bSortable": true},
                {"bVisible": false},
                {"bVisible": false},
                {"bVisible": false},
                {"bVisible": false}
            ],
            "paging": true,
            "iDisplayLength": 500,
            "oLanguage": {
                "sLengthMenu": "@@msg1@@",
                "sZeroRecords": "@@msg2@@",
                "sInfo": "@@msg3@@",
                "sInfoEmpty": "@@msg4@@",
                "sInfoFiltered": "@@msg5@@",
                "sSearch":       "@@msg6@@",
                "sUrl":          "",
                "oPaginate": {
                    "sFirst": "@@msg7@@",
                    "sPrevious": "@@msg8@@",
                    "sNext": "@@msg9@@",
                    "sLast": "@@msg10@@"
                },
                "oAria": {
                    "sSortAscending": "@@msg11@@",
                    "sSortDescending": "@@msg12@@"
                }
            }

        } );

    });

    $(document).ready(function(){
        $('#table_vir').dataTable({
            "aLengthMenu": [[100 , 500, -1], [100, 500, "All"]],
            "paging": true,
            "aoColumns": [
                {"iDataSort": 7, "width":"70%"},
                {"iDataSort": 5},
                {"iDataSort": 6},
                {"bSortable": true},
                {"bVisible": false},
                {"bVisible": false},
                {"bVisible": false},
                {"bVisible": false}
            ],
            "iDisplayLength": 500,
            "oLanguage": {
                "sLengthMenu": "@@msg1@@",
                "sZeroRecords": "@@msg2@@",
                "sInfo": "@@msg3@@",
                "sInfoEmpty": "@@msg4@@",
                "sInfoFiltered": "@@msg5@@",
                "sSearch":       "@@msg6@@",
                "sUrl":          "",
                "oPaginate": {
                    "sFirst": "@@msg7@@",
                    "sPrevious": "@@msg8@@",
                    "sNext": "@@msg9@@",
                    "sLast": "@@msg10@@"
                },
                "oAria": {
                    "sSortAscending":  "@@msg11@@",
                    "sSortDescending": "@@msg12@@"
                }
            },

        } );

    });

    if ($('#table_warn0')) {
        $('#table_warn0').dataTable({
            "aLengthMenu": [[100 , 500, -1], [100, 500, "All"]],
            "paging": true,
            "aoColumns": [
                {"iDataSort": 7, "width":"70%"},
                {"iDataSort": 5},
                {"iDataSort": 6},
                {"bSortable": true},
                {"bVisible": false},
                {"bVisible": false},
                {"bVisible": false},
                {"bVisible": false}
            ],
            "iDisplayLength": 500,
            "oLanguage": {
                "sLengthMenu": "@@msg1@@",
                "sZeroRecords": "@@msg2@@",
                "sInfo": "@@msg3@@",
                "sInfoEmpty": "@@msg4@@",
                "sInfoFiltered": "@@msg5@@",
                "sSearch":       "@@msg6@@",
                "sUrl":          "",
                "oPaginate": {
                    "sFirst": "@@msg7@@",
                    "sPrevious": "@@msg8@@",
                    "sNext": "@@msg9@@",
                    "sLast": "@@msg10@@"
                },
                "oAria": {
                    "sSortAscending":  "@@msg11@@",
                    "sSortDescending": "@@msg12@@"
                }
            }

        } );
    }

    if ($('#table_warn1')) {
        $('#table_warn1').dataTable({
            "aLengthMenu": [[100 , 500, -1], [100, 500, "All"]],
            "paging": true,
            "aoColumns": [
                {"iDataSort": 7, "width":"70%"},
                {"iDataSort": 5},
                {"iDataSort": 6},
                {"bSortable": true},
                {"bVisible": false},
                {"bVisible": false},
                {"bVisible": false},
                {"bVisible": false}
            ],
            "iDisplayLength": 500,
            "oLanguage": {
                "sLengthMenu": "@@msg1@@",
                "sZeroRecords": "@@msg2@@",
                "sInfo": "@@msg3@@",
                "sInfoEmpty": "@@msg4@@",
                "sInfoFiltered": "@@msg5@@",
                "sSearch":       "@@msg6@@",
                "sUrl":          "",
                "oPaginate": {
                    "sFirst": "@@msg7@@",
                    "sPrevious": "@@msg8@@",
                    "sNext": "@@msg9@@",
                    "sLast": "@@msg10@@"
                },
                "oAria": {
                    "sSortAscending":  "@@msg11@@",
                    "sSortDescending": "@@msg12@@"
                }
            }

        } );
    }
</script>
<!-- @@SERVICE_INFO@@  -->
</body>
</html>
MAIN_PAGE;

    #region templates ru
    /**
     * #############
     * # FOOTER_RU #
     * #############
     */
    const FOOTER_RU = <<<FOOTER
   <div class="disclaimer"><span class="vir">[!]</span> Отказ от гарантий: невозможно гарантировать обнаружение всех вредоносных скриптов. Поэтому разработчик сканера не несет ответственности за возможные последствия работы сканера AI-Bolit или неоправданные ожидания пользователей относительно функциональности и возможностей.
   </div>
   <div class="thanx">
      Мы будем чрезвычайно благодарны за любые упоминания сканера AI-Bolit на вашем сайте, в блоге, среди друзей, знакомых и клиентов. <br/>Ссылку можно поставить на страницу <a href="https://revisium.com/ai/">https://revisium.com/ai/</a>.<br/>
    </div>
FOOTER;

    /**
     * ###########################
     * # OFFER_RU #
     * ###########################
     */
    const OFFER_RU = <<<OFFER_ON_VIRUS_FOUND
    <div>
     <div class="crit" style="font-size: 17px; margin-bottom: 20px"><b>Внимание! Наш сканер обнаружил подозрительный или вредоносный код</b>.</div> 
     <p>Возможно, ваш сайт был взломан. Рекомендуем срочно <a href="https://revisium.com/ru/order/#fform" target=_blank>проконсультироваться со специалистами</a> по данному отчету.</p>
     <p><hr size=1></p>
     <p>Рекомендуем также проверить сайт бесплатным <b><a href="https://rescan.pro/?utm=aibolit" target=_blank>онлайн-сканером ReScan.Pro</a></b>.</p>
     <p><hr size=1></p>
         <div class="caution">@@CAUTION@@</div>
    </div>
OFFER_ON_VIRUS_FOUND;

    /**
     * #########################
     * # OFFER_OUR_PRODUCTS_RU #
     * #########################
     */
    const OFFER_OUR_PRODUCTS_RU = <<<OFFER_OUR_PRODUCTS
       <b>Наши продукты:</b><br/>
              <ul>
               <li style="margin-top: 10px"><font color=red><sup>[new]</sup></font><b><a href="https://revisium.com/ru/products/antivirus_for_ispmanager/" target=_blank>Антивирус для ISPmanager Lite</a></b> &mdash;  сканирование и лечение сайтов прямо в панели хостинга</li>
               <li style="margin-top: 10px"><b><a href="https://revisium.com/ru/blog/revisium-antivirus-for-plesk.html" target=_blank>Антивирус для Plesk</a> Onyx 17.x</b> &mdash;  сканирование и лечение сайтов прямо в панели хостинга</li>
               <li style="margin-top: 10px"><b><a href="https://cloudscan.pro/ru/" target=_blank>Облачный антивирус CloudScan.Pro</a> для веб-специалистов</b> &mdash; лечение сайтов в один клик</li>
               <li style="margin-top: 10px"><b><a href="https://revisium.com/ru/antivirus-server/" target=_blank>Антивирус для сервера</a></b> &mdash; для хостинг-компаний, веб-студий и агентств.</li>
              </ul>  
    </div>
OFFER_OUR_PRODUCTS;
    #endregion

    #region templates eng
    /**
     * #############
     * # FOOTER_EN #
     * #############
     */
    const FOOTER_EN = <<<FOOTER
           <div class="disclaimer"><span class="vir">[!]</span> Disclaimer: We're not liable to you for any damages, including general, special, incidental or consequential damages arising out of the use or inability to use the script (including but not limited to loss of data or report being rendered inaccurate or failure of the script). There's no warranty for the program. Use at your own risk. 
           </div>
           <div class="thanx">
              We're greatly appreciate for any references in the social medias, forums or blogs to our scanner AI-BOLIT <a href="https://revisium.com/aibo/">https://revisium.com/aibo/</a>.<br/>
            </div>
FOOTER;

    /**
     * ###########################
     * # OFFER_ON_VIRUS_FOUND_EN #
     * ###########################
     */
    const OFFER_EN = <<<OFFER_ON_VIRUS_FOUND
<div>
 <div class="crit" style="font-size: 17px;"><b>Attention! The scanner has detected suspicious or malicious files.</b></div> 
 <br/>Most likely the website has been compromised. Please, <a href="https://revisium.com/en/contacts/" target=_blank>contact web security experts</a> from Revisium to check the report or clean the malware.
 <p><hr size=1></p>
 Also check your website for viruses with our free <b><a href="http://rescan.pro/?en&utm=aibo" target=_blank>online scanner ReScan.Pro</a></b>.
</div>
<br/>
<div>
   Revisium contacts: <a href="https://revisium.com/en/contacts/">https://revisium.com/en/home/</a>
</div>
<div class="caution">@@CAUTION@@</div>
OFFER_ON_VIRUS_FOUND;


    /**
     * #########################
     * # OFFER_OUR_PRODUCTS_EN #
     * #########################
     */
    const OFFER_OUR_PRODUCTS_EN = <<<OFFER_OUR_PRODUCTS
<b>Special Offers:</b><br/>
              <ul>
               <li style="margin-top: 10px"><font color=red><sup>[new]</sup></font><b><a href="http://ext.plesk.com/packages/b71916cf-614e-4b11-9644-a5fe82060aaf-revisium-antivirus">Antivirus for Plesk Onyx</a></b> hosting panel with one-click malware cleanup and scheduled website scanning.</li>
               <li style="margin-top: 10px"><font color=red></font><b><a href="https://www.ispsystem.com/addons-modules/revisium">Antivirus for ISPmanager Lite</a></b> hosting panel with one-click malware cleanup and scheduled website scanning.</li>
               <li style="margin-top: 10px">Professional malware cleanup and web-protection service with 6 month guarantee for only $99 (one-time payment): <a href="https://revisium.com/en/home/#order_form">https://revisium.com/en/home/</a>.</li>
              </ul>  
    </div>
OFFER_OUR_PRODUCTS;
    #endregion
}


class TranslateList
{
    const RU = [
        //Переменные для javascript
        'data_table.length_menu'           => 'Отображать по _MENU_ записей',
        'data_table.zero_records'          => 'Ничего не найдено',
        'data_table.info'                  => 'Отображается c _START_ по _END_ из _TOTAL_ файлов',
        'data_table.info_empty'            => 'Нет файлов',
        'data_table.info_filtered'         => '(всего записей _MAX_)',
        'data_table.search'                => 'Поиск:',
        'data_table.paginate.first'        => 'Первая',
        'data_table.paginate.previous'     => 'Предыдущая',
        'data_table.paginate.next'         => 'Следующая',
        'data_table.paginate.last'         => 'Последняя',
        'data_table.aria.sort_ascending'   => ': активировать для сортировки столбца по возрастанию',
        'data_table.aria.sort_descending'  => ': активировать для сортировки столбцов по убыванию',
        'header.scan_report_title'         => 'Отчет сканера <a href="https://revisium.com/ai/">AI-Bolit</a> v@@VERSION@@:',
        'offer.when_no_critical'           => 'Обращаем внимание на то, что большинство CMS <b>без дополнительной защиты</b> рано или поздно <b>взламывают</b>.<p> Компания <a href="https://revisium.com/">"Ревизиум"</a> предлагает услугу превентивной защиты сайта от взлома с использованием уникальной <b>процедуры "цементирования сайта"</b>. Подробно на <a href="https://revisium.com/ru/client_protect/">странице услуги</a>. <p>Лучшее лечение &mdash; это профилактика.',
        'offer_our_products'               => TemplateList::OFFER_OUR_PRODUCTS_RU,
        'offer.when_has_critical'          => TemplateList::OFFER_RU,
        'сaution.aibolit_file'             => 'Не оставляйте файл отчета на сервере, и не давайте на него прямых ссылок с других сайтов. Информация из отчета может быть использована злоумышленниками для взлома сайта, так как содержит информацию о настройках сервера, файлах и каталогах.',
        'сaution.scanner_set_password'     => "Сканер AI-Bolit запускается с паролем. Если это первый запуск сканера, вам нужно придумать сложный пароль и вписать его в файле ai-bolit.php в строке №34. <p>Например, <b>'PASS', =>'%s',</b><p>
После этого откройте сканер в браузере, указав пароль в параметре \"p\". <p>Например, так <b>http://mysite.ru/ai-bolit.php?p=%s</b>. ",
        'сaution.quick_scanned'            => '<div class="rep" style="color: #0000A0">Внимание, скрипт выполнил быструю проверку сайта. Проверяются только наиболее критические файлы, но часть вредоносных скриптов может быть не обнаружена. Пожалуйста, запустите скрипт из командной строки для выполнения полного тестирования. Подробнее смотрите в <a href="https://revisium.com/ai/faq.php">FAQ вопрос №10</a>.</div>',
        'warning.weak_password'            => "Вы установили слабый пароль на скрипт AI-BOLIT. Укажите пароль не менее 8 символов, содержащий латинские буквы в верхнем и нижнем регистре, а также цифры. Например, такой <b>%s</b>",
        'warning.folder_read_permission'   => 'Текущая директория не доступна для чтения скрипту. Пожалуйста, укажите права на доступ <b>rwxr-xr-x</b> или с помощью командной строки <b>chmod +r имя_директории</b>',
        'warnings'                         => 'Предупреждения',
        'warning.reading_error'            => 'Непроверенные файлы - ошибка чтения',
        'info.time_elapsed'                => "Затрачено времени: <b>%s</b>. Сканирование начато %s, сканирование завершено %s",
        'info.files_checked'               => 'Всего проверено %s директорий и %s файлов.',
        'info.non_commercial_use'          => 'Сканер бесплатный только для личного некоммерческого использования. Информация по <a href="https://revisium.com/ai/faq.php#faq11" target=_blank>коммерческой лицензии</a> (пункт №11). <a href="https://revisium.com/images/mini_aibolit.jpg">Авторское свидетельство</a> о гос. регистрации в РосПатенте №2012619254 от 12 октября 2012 г.',
        'critical.title'                   => '<div class="title">Критические замечания</div>',
        'not_detected.shell_scripts'       => 'Вирусы и вредоносные скрипты не обнаружены.',
        'detected.shell_scripts'           => 'Эти файлы могут быть вредоносными или хакерскими скриптами',
        'detected.javascript'              => 'Эти файлы могут быть javascript вирусами',
        'detected.executables'             => 'Обнаружены сигнатуры исполняемых файлов unix и нехарактерных скриптов. Они могут быть вредоносными файлами',
        'detected.bad_links'               => 'Дорвеи, реклама, спам-ссылки, редиректы',
        'detected.phishing_pages'          => 'Обнаружены фишинговые страницы',
        'file.not_found.more_than'         => 'Не найдено файлов больше чем %s',
        'file.recommend_to_remove'         => 'Временные файлы или файлы(каталоги) - кандидаты на удаление по ряду причин',
        'file.scanned_manual'              => 'Просканированы только файлы, перечисленные в %s. Для полного сканирования удалите файл %s и запустите сканер повторно.',
        'file.suspicion.heuristic_analyze' => 'Эвристический анализ обнаружил подозрительные файлы. Проверьте их на наличие вредоносного кода.',
        'file.encrypted'                   => 'Зашифрованных файлов',
        'file.hidden'                      => 'Скрытых файлов',
        'file.added'                       => "Добавленные файлы",
        'file.updated'                     => "Измененные файлы",
        'file.deleted'                     => "Удаленные файлы",
        'file_structure.updates'           => "Изменения в файловой структуре",
        'hidden_files'                     => 'Скрытые файлы',
        'doorway.might'                    => 'Возможно, каталог с дорвеем',
        'doorway.not_found'                => 'Не найдено директорий c дорвеями',
        'suspicion.multiple'               => 'Двойное расширение, зашифрованный контент или подозрение на вредоносный скрипт. Требуется дополнительный анализ',
        'suspicion.malicious'              => 'Подозрение на вредоносный скрипт',
        'suspicion.htaccess'               => 'Подозрение на мобильный редирект, подмену расширений или автовнедрение кода',
        'suspicion.non_php'                => 'В не .php файле содержится стартовая сигнатура PHP кода. Возможно, там вредоносный код',
        'suspicion.hidden_link'            => 'Невидимые ссылки. Подозрение на ссылочный спам',
        'suspicion.doorway'                => 'Подозрение на дорвей',
        'suspicion.code'                   => 'Скрипт использует код, который часто встречается во вредоносных скриптах',
        'suspicion.obfuscated_variables'   => 'Подозрение на обфусцированные переменные',
        'suspicion.global_array'           => 'Подозрительное использование массива глобальных переменных',
        'suspicion.file_time'              => "Подозрительные параметры времени изменения файла",
        'suspicion.file_attributes'        => "Подозрительные атрибуты файла",
        'suspicion.file_location'          => "Подозрительное местоположение файла",
        'symlinks'                         => 'Символические ссылки (symlinks)',
        'hidden_links'                     => 'Невидимые ссылки',
        'link.symbolic'                    => 'Символических ссылок',
        'links.adware_spam'                => 'Рекламных ссылок и кодов',
        'links.empty'                      => 'Пустых ссылок',
        'display_only_first'               => 'Отображены только первые ',
        'skipped.adirignore'               => 'Директории из файла .adirignore были пропущены при сканировании',
        'founded_CMS'                      => 'Версии найденных CMS',
        'folder.unsafe_writable'           => 'Потенциально небезопасно! Директории, доступные скрипту на запись',
        'folder.unsafe_writable_not_found' => 'Не найдено директорий, доступных на запись скриптом',
        'folder.added'                     => "Добавленные каталоги",
        'folder.deleted'                   => "Удаленные каталоги",
        'memory_used'                      => 'Использовано памяти при сканировании: ',
        'notice.scan_express'              => '<div class="rep">Внимание! Выполнена экспресс-проверка сайта. Просканированы только файлы с расширением .php, .js, .html, .htaccess. В этом режиме могут быть пропущены вирусы и хакерские скрипты в файлах с другими расширениями. Чтобы выполнить более тщательное сканирование, поменяйте значение настройки на <b>\'scan_all_files\' => 1</b> в строке 50 или откройте сканер в браузере с параметром full: <b><a href="ai-bolit.php?p=&full">ai-bolit.php?p=&full</a></b>. <p>Не забудьте перед повторным запуском удалить файл %s</div>',
        'feedback_for_script'              => 'Мы будем чрезвычайно благодарны за любые упоминания скрипта AI-Bolit на вашем сайте, в блоге, среди друзей, знакомых и клиентов. Ссылочку можно поставить на <a href="https://revisium.com/ai/">https://revisium.com/ai/</a>.',
        'report_for'                       => 'Отчет по ',
        'function.many_reference'          => 'Много косвенных вызовов функции',
        'str.abnormal_split'               => 'Дробление строки на символы',
        'scan.offer_modes_after_express'   => 'Сканирование выполнено в экспресс-режиме. Многие вредоносные скрипты могут быть не обнаружены.<br> Рекомендуем проверить сайт в режиме "Эксперт" или "Параноидальный". Подробно описано в <a href="https://revisium.com/ai/faq.php">FAQ</a> и инструкции к скрипту.',
        'mobile_redirects'                 => 'Мобильных редиректов',
        'skipped.large_file'               => 'Большие файлы (больше чем %s). Пропущено',
        'malware'                          => 'Вредоносных скриптов',
        'js_virused'                       => 'JS Вирусов',
        'phishing_pages'                   => 'Фишинговых страниц',
        'executable_files'                 => 'Исполняемых файлов',
        'iframe_injections'                => 'IFRAME вставок',
        'skipped_large_file'               => 'Пропущенных больших файлов',
        'error.read_file'                  => 'Ошибок чтения файлов',
        'suspicious'                       => 'Подозрительных',
        'report.summary'                   => 'Сводный отчет',
        'footer'                           => TemplateList::FOOTER_RU,
        'notice.files_may_not_malicious'   => "Обращаем внимание, что обнаруженные файлы не всегда являются вирусами и хакерскими скриптами. Сканер минимизирует число ложных обнаружений, но это не всегда возможно, так как найденный фрагмент может встречаться как во вредоносных скриптах, так и в обычных.<p>Для диагностического сканирования без ложных срабатываний мы разработали специальную версию <u><a href=\"https://revisium.com/ru/blog/ai-bolit-4-ISP.html\" target=_blank style=\"background: none; color: #303030\">сканера для хостинг-компаний</a></u>.",
        'script.vulnerable'                => "Уязвимости в скриптах",
        'path'                             => 'Путь',
        'property_change'                  => 'Изменение свойств',
        'content_change'                   => 'Изменение содержимого',
        'size'                             => 'Размер',
        'php_config'                       => 'Конфигурация PHP',
    ];

    const EN = [
        //variables for javascript
        'data_table.length_menu'           => 'Display _MENU_ records',
        'data_table.zero_records'          => 'Not found',
        'data_table.info'                  => 'Display from _START_ to _END_ of _TOTAL_ files',
        'data_table.info_empty'            => 'No files',
        'data_table.info_filtered'         => '(total _MAX_)',
        'data_table.search'                => 'Filter/Search:',
        'data_table.paginate.first'        => 'First',
        'data_table.paginate.previous'     => 'Previous',
        'data_table.paginate.next'         => 'Next',
        'data_table.paginate.last'         => 'Last',
        'data_table.aria.sort_ascending'   => ': activate to sort row ascending order',
        'data_table.aria.sort_descending'  => ': activate to sort row descending order',
        'header.scan_report_title'         => 'AI-Bolit v@@VERSION@@ Scan Report:',
        'offer.when_no_critical'           => '',
        'offer_our_products'               => TemplateList::OFFER_OUR_PRODUCTS_EN,
        'offer.when_has_critical'          => TemplateList::OFFER_EN,
        'сaution.aibolit_file'             => 'Caution! Do not leave either ai-bolit.php or report file on server and do not provide direct links to the report file. Report file contains sensitive information about your website which could be used by hackers. So keep it in safe place and don\'t leave on website!',
        'сaution.scanner_set_password'     => "Open AI-BOLIT with password specified in the beggining of file in PASS variable. <br/>E.g. http://you_website.com/ai-bolit.php?p=<b>%s</b>",
        'сaution.quick_scanned'            => '<div class="rep" style="color: #0000A0">Attention! Script has performed quick scan. It scans only .html/.js/.php files  in quick scan mode so some of malicious scripts might not be detected. <br>Please launch script from a command line thru SSH to perform full scan.',
        'warning.weak_password'            => "Your password for AI-BOLIT is too weak. Password must be more than 8 character length, contain both latin letters in upper and lower case, and digits. E.g. <b>%s</b>",
        'warning.folder_read_permission'   => 'Current folder is not readable. Please change permission for <b>rwxr-xr-x</b> or using command line <b>chmod +r folder_name</b>',
        'warnings'                         => 'Warnings',
        'warning.reading_error'            => 'Reading error. Skipped.',
        'info.time_elapsed'                => "<div class=\"rep\">%s malicious signatures known, %s virus signatures and other malicious code. Elapsed: <b>%s</b
>.<br/>Started: %s. Stopped: %s</div> ",
        'info.files_checked'               => 'Scanned %s folders and %s files.',
        'info.non_commercial_use'          => 'For non-commercial use only.',
        'critical.title'                   => '<div class="title">Critical</div>',
        'detected.shell_scripts'           => 'Shell script signatures detected. Might be a malicious or hacker\'s scripts',
        'not_detected.shell_scripts'       => 'Shell scripts signatures not detected.',
        'detected.javascript'              => 'Javascript virus signatures detected:',
        'detected.executables'             => 'Unix executables signatures and odd scripts detected. They might be a malicious binaries or rootkits:',
        'detected.bad_links'               => 'This script has black-SEO links or linkfarm. Check if it was installed by yourself:',
        'detected.phishing_pages'          => 'Phishing pages detected:',
        'file.not_found.more_than'         => 'Files greater than %s not found',
        'file.recommend_to_remove'         => 'Files recommended to be remove due to security reason:',
        'file.scanned_manual'              => 'Quick scan through the files from %s. For full scan remove %s and launch scanner once again.',
        'file.suspicion.heuristic_analyze' => 'Heuristic Analyzer has detected suspicious files. Check if they are malware.',
        'file.encrypted'                   => 'Encrypted files',
        'file.hidden'                      => 'Hidden files',
        'files_may_not_malicious'          => "Notice! Some of detected files may not contain malicious code. Scanner tries to minimize a number of false positives, but sometimes it's impossible, because same piece of code may be used either in malware or in normal scripts.",
        'file.added'                       => "Added files",
        'file.updated'                     => "Modified files",
        'file.deleted'                     => "Deleted files",
        'file_structure.updates'           => "Integrity Check Report",
        'hidden_files'                     => 'Hidden files:',
        'doorway.might'                    => 'Files might be a part of doorway:',
        'doorway.not_found'                => 'Doorway folders not detected',
        'suspicion.multiple'               => 'Suspicious encoded strings, extra .php extention or external includes detected in PHP files. Might be a malicious or hacker\'s script:',
        'suspicion.malicious'              => 'Might be a malicious or hacker\'s script:',
        'suspicion.htaccess'               => 'Malicious code in .htaccess (redirect to external server, extention handler replacement or malicious code auto-append):',
        'suspicion.non_php'                => 'Non-PHP file has PHP signature. Check for malicious code:',
        'suspicion.hidden_link'            => 'These files have invisible links, might be black-seo stuff:',
        'suspicion.doorway'                => 'Folders contained too many .php or .html files. Might be a doorway:',
        'suspicion.code'                   => 'Suspicious code detected. It\'s usually used in malicious scrips:',
        'suspicion.obfuscated_variables'   => 'Suspected for obfuscated variables',
        'suspicion.global_array'           => 'Suspected for $GLOBAL array usage',
        'suspicion.file_time'              => "Suspicious file mtime and ctime",
        'suspicion.file_attributes'        => "Suspicious file permissions",
        'suspicion.file_location'          => "Suspicious file location",
        'symlinks'                         => 'Symlinks:',
        'hidden_links'                     => 'List of invisible links:',
        'link.symbolic'                    => 'Symbolic links',
        'links.adware_spam'                => 'Adware and spam links',
        'links.empty'                      => 'Empty links',
        'display_only_first'               => 'Displayed first ',
        'skipped.adirignore'               => 'The following list of files specified in .adirignore has been skipped:',
        'founded_CMS'                      => 'CMS found:',
        'folder.unsafe_writable'           => 'Potentially unsafe! Folders which are writable for scripts:',
        'folder.unsafe_writable_not_found' => 'Writable folders not found',
        'folder.added'                     => "Added directories",
        'folder.deleted'                   => "Deleted directories",
        'memory_used'                      => 'Memory used: ',
        'notice.scan_express'              => '<div class="notice"><span class="vir">[!]</span> Ai-BOLIT is working in quick scan mode, only .php, .html, .htaccess files will be checked. Change the following setting \'scan_all_files\' => 1 to perform full scanning.</b>. </div>',
        'feedback_for_script'              => "I'm sincerely appreciate reports for any bugs you may found in the script. Please email me: <a href=\"mailto:audit@revisium.com\">audit@revisium.com</a>.<p> Also I appriciate any reference to the script in your blog or forum posts. Thank you for the link to download page: <a href=\"https://revisium.com/aibo/\">https://revisium.com/aibo/</a>",
        'report_for'                       => 'Report for ',
        'function.many_reference'          => 'Function called by reference',
        'str.abnormal_split'               => 'Abnormal split of string',
        'scan.offer_modes_after_express'   => 'Scanning has been done in simple mode. It is strongly recommended to perform scanning in "Expert" mode. See readme.txt for details.',
        'mobile_redirects'                 => 'Mobile redirects',
        'skipped.large_file'               => 'Large files (greater than %s! Skipped:',
        'malware'                          => 'Malware',
        'js_virused'                       => 'JS viruses',
        'phishing_pages'                   => 'Phishing pages',
        'executable_files'                 => 'Unix executables',
        'iframe_injections'                => 'IFRAME injections',
        'skipped_large_file'               => 'Skipped big files',
        'critical.error_read_file'         => 'Reading errors',
        'suspicious'                       => 'Suspicious',
        'report.summary'                   => 'Summary',
        'footer'                           => TemplateList::FOOTER_EN,
        'script.vulnerable'                => "Vulnerable Scripts",
        'path'                             => 'Path',
        'property_change'                  => 'iNode Changed',
        'content_change'                   => 'Modified',
        'size'                             => 'Size',
        'php_config'                       => 'PHP Info',
    ];
}

class OsReleaseInfo
{
    private $prefix = '';
    private $release_file = '';
    const DEBIAN = ['debian'];
    const RHEL_FEDORA_CENTOS = ['rhel', 'fedora', 'centos'];
    const UNKNOWN = ['unknown'];

    private $_supported_dists = [
        'SuSE', 'debian', 'fedora', 'redhat', 'centos',
        'mandrake', 'mandriva', 'rocks', 'slackware', 'yellowdog', 'gentoo',
        'UnitedLinux', 'turbolinux'];

    private $_release_filename = '(\w+)[-_](release|version)';
    private $_lsb_release_version = '(.+)'
    . ' release '
    . '([\d.]+)'
    . '[^(]*(?:\((.+)\))?';
    private $_release_version = '([^0-9]+)'
    . '(?: release )?'
    . '([\d.]+)'
    . '[^(]*(?:\((.+)\))?';

    private $release = [];

    public function __construct($prefix = '', $release_file = '/etc/os-release')
    {
        $this->prefix = $prefix;
        $this->release_file = $this->prefix . $release_file;
        $this->getRelease($this->release_file);
    }

    private function getOsReleaseAndVersion()
    {
        $ver = rtrim(@file_get_contents($this->prefix . '/etc/system-release'));
        return $ver ?: $this->release['VERSION'];
    }

    public function getOsVersion($release_and_version = false)
    {
        $rv = $release_and_version ? $release_and_version : $this->getOsReleaseAndVersion();
        if ($rv) {
            if (preg_match('~\s*(\d+\.\d+\S*)(\s|$)~', $rv, $m)) {
                return $m[1];
            }
        }
        return $this->release['VERSION_ID'] ? $this->release['VERSION_ID'] : false;
    }

    private function linuxDistribution($distname = '', $version = '', $id = '')
    {
        $dists = array_flip($this->_supported_dists);
        if (!file_exists($this->prefix . '/etc')) {
            return [$distname, $version, $id];
        }
        $file = '';
        $etc = scandir($this->prefix . '/etc');
        foreach ($etc as $file) {
            if (preg_match('~' . $this->_release_filename . '~', $file, $m)) {
                if (isset($dists[$m[1]])) {
                    $_distname = $m[1];
                    $distname = $m[1];
                    break;
                }
            }
        }
        $f = fopen($this->prefix . '/etc/' . $file, 'r');
        $firstline = fgets($f);
        fclose($f);
        list($_distname, $_version, $_id) = $this->_parseReleaseFile($firstline);

        if ($_distname) {
            $distname = $_distname;
        }

        if ($_version) {
            $version = $_version;
        }

        if ($_id) {
            $id = $_id;
        }

        return [$distname, $version, $id];
    }

    private function _parseReleaseFile($firstline)
    {
        $version = '';
        $id = '';
        if (preg_match('~' . $this->_lsb_release_version . '~', $firstline, $m)) {
            return [$m[1], $m[2], $m[3]];
        }

        if (preg_match('~' . $this->_release_version . '~', $firstline, $m)) {
            return [$m[1], $m[2], $m[3]];
        }

        $l = preg_split("~\s+~", trim($firstline), -1, PREG_SPLIT_NO_EMPTY);
        if (!empty($l)) {
            $version = $l[0];
            if (count($l) > 1) {
                $id = $l[1];
            }
        }
        return ['', $version, $id];
    }

    private function getReleaseFromFile($release_file)
    {
        $lines = file($release_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
        foreach ($lines as $line) {
            list($k, $v) = explode('=', rtrim($line), 2);
            $this->release[$k] = trim($v, '"');
        }
        if (isset($this->release['ID_LIKE'])) {
            $this->release['ID_LIKE'] = preg_split('~\s+~', $this->release['ID_LIKE'], -1, PREG_SPLIT_NO_EMPTY);
        } else {
            $this->release['ID_LIKE'] = [$this->release['ID']];
        }
    }

    private function getRelease($release_file = '')
    {
        if (count($this->release) != 0) {
            return $this->release;
        }
        if ($this->release_file) {
            $release_file = $this->release_file;
        }
        $osid = '';
        if (file_exists($release_file)) {
            $this->getReleaseFromFile($release_file);
        } else {
            $d = $this->linuxDistribution();
            if ($d && isset($d[0])) {
                $osid = current(preg_split('~\s+~', strtolower($d[0]), -1, PREG_SPLIT_NO_EMPTY));
                if ($osid == 'red' && strpos($d[0], 'Red Hat Enterprise Linux')) {
                    $osid = 'rhel';
                }
                $this->release['ID'] = $osid;
                $this->release['PRETTY_NAME'] = "{$d[0]} {$d[1]} ({$d[2]})";
                if (in_array($osid, ['cloudlinux', 'centos', 'rhel'])) {
                    $this->release['ID_LIKE'] = self::RHEL_FEDORA_CENTOS;
                } else if (in_array($osid, ['ubuntu', 'debian'])) {
                    $this->release['ID_LIKE'] = self::DEBIAN;
                } else {
                    $this->release['ID_LIKE'] = self::UNKNOWN;
                }
            } else {
                $this->release['ID'] = 'unknown';
                $this->release['ID_LIKE'] = self::UNKNOWN;
                $this->release['PRETTY_NAME'] = 'unknown';
            }
        }
        return $this->release;
    }

    public function getIdLike()
    {
        $rel = $this->getRelease();
        return $rel['ID_LIKE'];
    }

    public function isIdLikeCentos()
    {
        $rel = $this->getRelease();
        foreach (self::RHEL_FEDORA_CENTOS as $os) {
            if (in_array($os, $rel['ID_LIKE'])) {
                return true;
            }
        }
        return false;
    }

    public function getPrettyName()
    {
        $rel = $this->getRelease();
        return $rel['PRETTY_NAME'];
    }

    public function getOs()
    {
        $rel = $this->getRelease();
        return $rel['ID'];
    }

    public function isRhel()
    {
        return $this->getOs() == 'rhel';
    }

    public function isCentos()
    {
        return $this->getOs() == 'centos';
    }

    public function isUbuntu()
    {
        return $this->getOs() == 'ubuntu';
    }

    public function isCloudlinux()
    {
        return $this->getOs() == 'cloudlinux';
    }

    public function isDebian()
    {
        return $this->getOs() == 'debian';
    }
}

/**
 * Class FileHashMemoryDb.
 *
 * Implements operations to load the file hash database into memory and work with it.
 */
class FileHashMemoryDb
{
    const HEADER_SIZE = 1024;
    const ROW_SIZE = 20;

    /**
     * @var int
     */
    private $count;
    /**
     * @var array
     */
    private $header;
    /**
     * @var resource
     */
    private $fp;
    /**
     * @var array
     */
    private $data;

    /**
     * Creates a new DB file and open it.
     *
     * @param $filepath
     * @return FileHashMemoryDb
     * @throws Exception
     */
    public static function create($filepath)
    {
        if (file_exists($filepath)) {
            throw new Exception('File \'' . $filepath . '\' already exists.');
        }

        $value = pack('V', 0);
        $header = array_fill(0, 256, $value);
        file_put_contents($filepath, implode($header));

        return new self($filepath);
    }

    /**
     * Opens a particular DB file.
     *
     * @param $filepath
     * @return FileHashMemoryDb
     * @throws Exception
     */
    public static function open($filepath)
    {
        if (!file_exists($filepath)) {
            throw new Exception('File \'' . $filepath . '\' does not exist.');
        }

        return new self($filepath);
    }

    /**
     * FileHashMemoryDb constructor.
     *
     * @param mixed $filepath
     * @throws Exception
     */
    private function __construct($filepath)
    {
        $this->fp = fopen($filepath, 'rb');

        if (false === $this->fp) {
            throw new Exception('File \'' . $filepath . '\' can not be opened.');
        }

        try {
            $this->header = unpack('V256', fread($this->fp, self::HEADER_SIZE));
            $this->count = (int) (max(0, filesize($filepath) - self::HEADER_SIZE) / self::ROW_SIZE);
            foreach ($this->header as $chunk_id => $chunk_size) {
                if ($chunk_size > 0) {
                    $str = fread($this->fp, $chunk_size);
                } else {
                    $str = '';
                }
                $this->data[$chunk_id] = $str;
            }
        } catch (Exception $e) {
            throw new Exception('File \'' . $filepath . '\' is not a valid DB file. An original error: \'' . $e->getMessage() . '\'');
        }
    }

    /**
     * Calculates and returns number of hashes stored in a loaded database.
     *
     * @return int number of hashes stored in a DB
     */
    public function count()
    {
        return $this->count;
    }

    /**
     * Find hashes in a DB.
     *
     * @param array $list of hashes to find in a DB
     * @return array list of hashes from the $list parameter that are found in a DB
     */
    public function find($list)
    {
        sort($list);
        
        $hash = reset($list);

        $found = array();

        foreach ($this->header as $chunk_id => $chunk_size) {
            if ($chunk_size > 0) {
                $str = $this->data[$chunk_id];

                do {
                    $raw = pack("H*", $hash);
                    $id  = ord($raw[0]) + 1;

                    if ($chunk_id == $id AND $this->binarySearch($str, $raw)) {
                        $found[] = (string)$hash;
                    }

                } while ($chunk_id >= $id AND $hash = next($list));

                if ($hash === false) {
                    break;
                }
            }
        }

        return $found;
    }

    /**
     * Searches $item in the $str using an implementation of the binary search algorithm.
     *
     * @param $str
     * @param $item
     * @return bool
     */
    private function binarySearch($str, $item) {
        $item_size = strlen($item);
        if ($item_size == 0) {
            return false;
        }

        $first = 0;

        $last = floor(strlen($str) / $item_size);

        while ($first < $last) {
            $mid = $first + (($last - $first) >> 1);
            $b   = substr($str, $mid * $item_size, $item_size);
            if (strcmp($item, $b) <= 0) {
                $last = $mid;
            } else {
                $first = $mid + 1;
            }
        }

        $b = substr($str, $last * $item_size, $item_size);
        if ($b == $item) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * FileHashDB destructor.
     */
    public function __destruct()
    {
        fclose($this->fp);
    }
}

class FilepathEscaper
{
    public static function encodeFilepath($filepath)
    {
        return str_replace(array('\\', "\n", "\r"), array('\\\\', '\\n', '\\r'), $filepath);
    }
    
    public static function decodeFilepath($filepath)
    {
        return preg_replace_callback('~(\\\\+)(.)~', function ($matches) {
            $count = strlen($matches[1]);
            if ($count % 2 === 0) {
                return str_repeat('\\', $count/2) . $matches[2];
            }
            return str_repeat('\\', floor($count/2)) . stripcslashes('\\' . $matches[2]);
        }, $filepath);
    }
    
    public static function encodeFilepathByBase64($filepath)
    {
        return base64_encode($filepath);
    }
    
    public static function decodeFilepathByBase64($filepath_base64)
    {
        return base64_decode($filepath_base64);
    }
}


class StringToStreamWrapper {

    const WRAPPER_NAME = 'var';

    private static $_content;
    private $_position;

    /**
     * Prepare a new memory stream with the specified content
     * @return string
     */
    public static function prepare($content)
    {
        if (!in_array(self::WRAPPER_NAME, stream_get_wrappers())) {
            stream_wrapper_register(self::WRAPPER_NAME, get_class());
        }
        self::$_content = $content;
    }

    public function stream_open($path, $mode, $options, &$opened_path)
    {
        $this->_position = 0;
        return true;
    }

    public function stream_read($count)
    {
        $ret = substr(self::$_content, $this->_position, $count);
        $this->_position += strlen($ret);
        return $ret;
    }

    public function stream_stat()
    {
        return array();
    }

    public function stream_eof()
    {
        return $this->_position >= strlen(self::$_content);
    }

    public function stream_set_option($option , $arg1, $arg2 )
    {
        return true;
    }
}

class Normalization
{
    private static $confusables = "YToxNTYxOntzOjM6IuKAqCI7czoxOiIgIjtzOjM6IuKAqSI7czoxOiIgIjtzOjM6IuGagCI7czoxOiIgIjtzOjM6IuKAgCI7czoxOiIgIjtzOjM6IuKAgSI7czoxOiIgIjtzOjM6IuKAgiI7czoxOiIgIjtzOjM6IuKAgyI7czoxOiIgIjtzOjM6IuKAhCI7czoxOiIgIjtzOjM6IuKAhSI7czoxOiIgIjtzOjM6IuKAhiI7czoxOiIgIjtzOjM6IuKAiCI7czoxOiIgIjtzOjM6IuKAiSI7czoxOiIgIjtzOjM6IuKAiiI7czoxOiIgIjtzOjM6IuKBnyI7czoxOiIgIjtzOjI6IsKgIjtzOjE6IiAiO3M6Mzoi4oCHIjtzOjE6IiAiO3M6Mzoi4oCvIjtzOjE6IiAiO3M6Mjoi37oiO3M6MToiXyI7czozOiLvuY0iO3M6MToiXyI7czozOiLvuY4iO3M6MToiXyI7czozOiLvuY8iO3M6MToiXyI7czozOiLigJAiO3M6MToiLSI7czozOiLigJEiO3M6MToiLSI7czozOiLigJIiO3M6MToiLSI7czozOiLigJMiO3M6MToiLSI7czozOiLvuZgiO3M6MToiLSI7czoyOiLblCI7czoxOiItIjtzOjM6IuKBgyI7czoxOiItIjtzOjI6IsuXIjtzOjE6Ii0iO3M6Mzoi4oiSIjtzOjE6Ii0iO3M6Mzoi4p6WIjtzOjE6Ii0iO3M6Mzoi4rK6IjtzOjE6Ii0iO3M6Mjoi2I0iO3M6MToiLCI7czoyOiLZqyI7czoxOiIsIjtzOjM6IuKAmiI7czoxOiIsIjtzOjI6IsK4IjtzOjE6IiwiO3M6Mzoi6pO5IjtzOjE6IiwiO3M6Mjoizb4iO3M6MToiOyI7czozOiLgpIMiO3M6MToiOiI7czozOiLgqoMiO3M6MToiOiI7czozOiLvvJoiO3M6MToiOiI7czoyOiLWiSI7czoxOiI6IjtzOjI6ItyDIjtzOjE6IjoiO3M6Mjoi3IQiO3M6MToiOiI7czozOiLhm6wiO3M6MToiOiI7czozOiLvuLAiO3M6MToiOiI7czozOiLhoIMiO3M6MToiOiI7czozOiLhoIkiO3M6MToiOiI7czozOiLigZoiO3M6MToiOiI7czoyOiLXgyI7czoxOiI6IjtzOjI6Isu4IjtzOjE6IjoiO3M6Mzoi6p6JIjtzOjE6IjoiO3M6Mzoi4oi2IjtzOjE6IjoiO3M6Mjoiy5AiO3M6MToiOiI7czozOiLqk70iO3M6MToiOiI7czozOiLvvIEiO3M6MToiISI7czoyOiLHgyI7czoxOiIhIjtzOjM6IuK1kSI7czoxOiIhIjtzOjI6IsqUIjtzOjE6Ij8iO3M6MjoiyYEiO3M6MToiPyI7czozOiLgpb0iO3M6MToiPyI7czozOiLhjq4iO3M6MToiPyI7czozOiLqm6siO3M6MToiPyI7czo0OiLwnYWtIjtzOjE6Ii4iO3M6Mzoi4oCkIjtzOjE6Ii4iO3M6Mjoi3IEiO3M6MToiLiI7czoyOiLcgiI7czoxOiIuIjtzOjM6IuqYjiI7czoxOiIuIjtzOjQ6IvCQqZAiO3M6MToiLiI7czoyOiLZoCI7czoxOiIuIjtzOjI6ItuwIjtzOjE6Ii4iO3M6Mzoi6pO4IjtzOjE6Ii4iO3M6Mzoi44O7IjtzOjE6IrciO3M6Mzoi772lIjtzOjE6IrciO3M6Mzoi4ZurIjtzOjE6IrciO3M6MjoizociO3M6MToityI7czozOiLiuLEiO3M6MToityI7czo0OiLwkISBIjtzOjE6IrciO3M6Mzoi4oCiIjtzOjE6IrciO3M6Mzoi4oCnIjtzOjE6IrciO3M6Mzoi4oiZIjtzOjE6IrciO3M6Mzoi4ouFIjtzOjE6IrciO3M6Mzoi6p6PIjtzOjE6IrciO3M6Mzoi4ZCnIjtzOjE6IrciO3M6Mjoi1Z0iO3M6MToiJyI7czozOiLvvIciO3M6MToiJyI7czozOiLigJgiO3M6MToiJyI7czozOiLigJkiO3M6MToiJyI7czozOiLigJsiO3M6MToiJyI7czozOiLigLIiO3M6MToiJyI7czozOiLigLUiO3M6MToiJyI7czoyOiLVmiI7czoxOiInIjtzOjI6ItezIjtzOjE6IiciO3M6MToiYCI7czoxOiInIjtzOjM6IuG/ryI7czoxOiInIjtzOjM6Iu+9gCI7czoxOiInIjtzOjI6IsK0IjtzOjE6IiciO3M6MjoizoQiO3M6MToiJyI7czozOiLhv70iO3M6MToiJyI7czozOiLhvr0iO3M6MToiJyI7czozOiLhvr8iO3M6MToiJyI7czozOiLhv74iO3M6MToiJyI7czoyOiLKuSI7czoxOiInIjtzOjI6Is20IjtzOjE6IiciO3M6Mjoiy4giO3M6MToiJyI7czoyOiLLiiI7czoxOiInIjtzOjI6IsuLIjtzOjE6IiciO3M6Mjoiy7QiO3M6MToiJyI7czoyOiLKuyI7czoxOiInIjtzOjI6Isq9IjtzOjE6IiciO3M6MjoiyrwiO3M6MToiJyI7czoyOiLKviI7czoxOiInIjtzOjM6IuqejCI7czoxOiInIjtzOjI6IteZIjtzOjE6IiciO3M6Mjoi37QiO3M6MToiJyI7czoyOiLftSI7czoxOiInIjtzOjM6IuGRiiI7czoxOiInIjtzOjM6IuGbjCI7czoxOiInIjtzOjQ6IvCWvZEiO3M6MToiJyI7czo0OiLwlr2SIjtzOjE6IiciO3M6Mzoi77y7IjtzOjE6IigiO3M6Mzoi4p2oIjtzOjE6IigiO3M6Mzoi4p2yIjtzOjE6IigiO3M6Mzoi44CUIjtzOjE6IigiO3M6Mzoi77S+IjtzOjE6IigiO3M6Mzoi77y9IjtzOjE6IikiO3M6Mzoi4p2pIjtzOjE6IikiO3M6Mzoi4p2zIjtzOjE6IikiO3M6Mzoi44CVIjtzOjE6IikiO3M6Mzoi77S/IjtzOjE6IikiO3M6Mzoi4p20IjtzOjE6InsiO3M6NDoi8J2ElCI7czoxOiJ7IjtzOjM6IuKdtSI7czoxOiJ9IjtzOjM6IuK4vyI7czoxOiK2IjtzOjM6IuKBjiI7czoxOiIqIjtzOjI6ItmtIjtzOjE6IioiO3M6Mzoi4oiXIjtzOjE6IioiO3M6NDoi8JCMnyI7czoxOiIqIjtzOjM6IuGctSI7czoxOiIvIjtzOjM6IuKBgSI7czoxOiIvIjtzOjM6IuKIlSI7czoxOiIvIjtzOjM6IuKBhCI7czoxOiIvIjtzOjM6IuKVsSI7czoxOiIvIjtzOjM6IuKfiyI7czoxOiIvIjtzOjM6IuKnuCI7czoxOiIvIjtzOjQ6IvCdiLoiO3M6MToiLyI7czozOiLjh5MiO3M6MToiLyI7czozOiLjgLMiO3M6MToiLyI7czozOiLis4YiO3M6MToiLyI7czozOiLjg44iO3M6MToiLyI7czozOiLkuL8iO3M6MToiLyI7czozOiLivIMiO3M6MToiLyI7czozOiLvvLwiO3M6MToiXCI7czozOiLvuagiO3M6MToiXCI7czozOiLiiJYiO3M6MToiXCI7czozOiLin40iO3M6MToiXCI7czozOiLip7UiO3M6MToiXCI7czozOiLip7kiO3M6MToiXCI7czo0OiLwnYiPIjtzOjE6IlwiO3M6NDoi8J2IuyI7czoxOiJcIjtzOjM6IuOHlCI7czoxOiJcIjtzOjM6IuS4tiI7czoxOiJcIjtzOjM6IuK8giI7czoxOiJcIjtzOjM6IuqduCI7czoxOiImIjtzOjI6IsuEIjtzOjE6Il4iO3M6Mjoiy4YiO3M6MToiXiI7czozOiLiuLAiO3M6MToisCI7czoyOiLLmiI7czoxOiKwIjtzOjM6IuKImCI7czoxOiKwIjtzOjM6IuKXiyI7czoxOiKwIjtzOjM6IuKXpiI7czoxOiKwIjtzOjM6IuKSuCI7czoxOiKpIjtzOjM6IuKThyI7czoxOiKuIjtzOjM6IuGbrSI7czoxOiIrIjtzOjM6IuKelSI7czoxOiIrIjtzOjQ6IvCQipsiO3M6MToiKyI7czozOiLinpciO3M6MToi9yI7czozOiLigLkiO3M6MToiPCI7czozOiLina4iO3M6MToiPCI7czoyOiLLgiI7czoxOiI8IjtzOjQ6IvCdiLYiO3M6MToiPCI7czozOiLhkLgiO3M6MToiPCI7czozOiLhmrIiO3M6MToiPCI7czozOiLhkIAiO3M6MToiPSI7czozOiLiuYAiO3M6MToiPSI7czozOiLjgqAiO3M6MToiPSI7czozOiLqk78iO3M6MToiPSI7czozOiLigLoiO3M6MToiPiI7czozOiLina8iO3M6MToiPiI7czoyOiLLgyI7czoxOiI+IjtzOjQ6IvCdiLciO3M6MToiPiI7czozOiLhkLMiO3M6MToiPiI7czo0OiLwlry/IjtzOjE6Ij4iO3M6Mzoi4oGTIjtzOjE6In4iO3M6Mjoiy5wiO3M6MToifiI7czozOiLhv4AiO3M6MToifiI7czozOiLiiLwiO3M6MToifiI7czozOiLigqQiO3M6MToioyI7czo0OiLwnZ+QIjtzOjE6IjIiO3M6NDoi8J2fmiI7czoxOiIyIjtzOjQ6IvCdn6QiO3M6MToiMiI7czo0OiLwnZ+uIjtzOjE6IjIiO3M6NDoi8J2fuCI7czoxOiIyIjtzOjM6IuqdmiI7czoxOiIyIjtzOjI6IsanIjtzOjE6IjIiO3M6Mjoiz6giO3M6MToiMiI7czozOiLqmYQiO3M6MToiMiI7czozOiLhkr8iO3M6MToiMiI7czozOiLqm68iO3M6MToiMiI7czo0OiLwnYiGIjtzOjE6IjMiO3M6NDoi8J2fkSI7czoxOiIzIjtzOjQ6IvCdn5siO3M6MToiMyI7czo0OiLwnZ+lIjtzOjE6IjMiO3M6NDoi8J2fryI7czoxOiIzIjtzOjQ6IvCdn7kiO3M6MToiMyI7czozOiLqnqsiO3M6MToiMyI7czoyOiLInCI7czoxOiIzIjtzOjI6Isa3IjtzOjE6IjMiO3M6Mzoi6p2qIjtzOjE6IjMiO3M6Mzoi4rOMIjtzOjE6IjMiO3M6Mjoi0JciO3M6MToiMyI7czoyOiLToCI7czoxOiIzIjtzOjQ6IvCWvLsiO3M6MToiMyI7czo0OiLwkaOKIjtzOjE6IjMiO3M6NDoi8J2fkiI7czoxOiI0IjtzOjQ6IvCdn5wiO3M6MToiNCI7czo0OiLwnZ+mIjtzOjE6IjQiO3M6NDoi8J2fsCI7czoxOiI0IjtzOjQ6IvCdn7oiO3M6MToiNCI7czozOiLhj44iO3M6MToiNCI7czo0OiLwkaKvIjtzOjE6IjQiO3M6NDoi8J2fkyI7czoxOiI1IjtzOjQ6IvCdn50iO3M6MToiNSI7czo0OiLwnZ+nIjtzOjE6IjUiO3M6NDoi8J2fsSI7czoxOiI1IjtzOjQ6IvCdn7siO3M6MToiNSI7czoyOiLGvCI7czoxOiI1IjtzOjQ6IvCRorsiO3M6MToiNSI7czo0OiLwnZ+UIjtzOjE6IjYiO3M6NDoi8J2fniI7czoxOiI2IjtzOjQ6IvCdn6giO3M6MToiNiI7czo0OiLwnZ+yIjtzOjE6IjYiO3M6NDoi8J2fvCI7czoxOiI2IjtzOjM6IuKzkiI7czoxOiI2IjtzOjI6ItCxIjtzOjE6IjYiO3M6Mzoi4Y+uIjtzOjE6IjYiO3M6NDoi8JGjlSI7czoxOiI2IjtzOjQ6IvCdiJIiO3M6MToiNyI7czo0OiLwnZ+VIjtzOjE6IjciO3M6NDoi8J2fnyI7czoxOiI3IjtzOjQ6IvCdn6kiO3M6MToiNyI7czo0OiLwnZ+zIjtzOjE6IjciO3M6NDoi8J2fvSI7czoxOiI3IjtzOjQ6IvCQk5IiO3M6MToiNyI7czo0OiLwkaOGIjtzOjE6IjciO3M6Mzoi4KyDIjtzOjE6IjgiO3M6Mzoi4KeqIjtzOjE6IjgiO3M6Mzoi4KmqIjtzOjE6IjgiO3M6NDoi8J6jiyI7czoxOiI4IjtzOjQ6IvCdn5YiO3M6MToiOCI7czo0OiLwnZ+gIjtzOjE6IjgiO3M6NDoi8J2fqiI7czoxOiI4IjtzOjQ6IvCdn7QiO3M6MToiOCI7czo0OiLwnZ++IjtzOjE6IjgiO3M6MjoiyKMiO3M6MToiOCI7czoyOiLIoiI7czoxOiI4IjtzOjQ6IvCQjJoiO3M6MToiOCI7czozOiLgqaciO3M6MToiOSI7czozOiLgragiO3M6MToiOSI7czozOiLgp60iO3M6MToiOSI7czozOiLgta0iO3M6MToiOSI7czo0OiLwnZ+XIjtzOjE6IjkiO3M6NDoi8J2foSI7czoxOiI5IjtzOjQ6IvCdn6siO3M6MToiOSI7czo0OiLwnZ+1IjtzOjE6IjkiO3M6NDoi8J2fvyI7czoxOiI5IjtzOjM6IuqdriI7czoxOiI5IjtzOjM6IuKziiI7czoxOiI5IjtzOjQ6IvCRo4wiO3M6MToiOSI7czo0OiLwkaKsIjtzOjE6IjkiO3M6NDoi8JGjliI7czoxOiI5IjtzOjM6IuKNuiI7czoxOiJhIjtzOjM6Iu+9gSI7czoxOiJhIjtzOjQ6IvCdkJoiO3M6MToiYSI7czo0OiLwnZGOIjtzOjE6ImEiO3M6NDoi8J2SgiI7czoxOiJhIjtzOjQ6IvCdkrYiO3M6MToiYSI7czo0OiLwnZOqIjtzOjE6ImEiO3M6NDoi8J2UniI7czoxOiJhIjtzOjQ6IvCdlZIiO3M6MToiYSI7czo0OiLwnZaGIjtzOjE6ImEiO3M6NDoi8J2WuiI7czoxOiJhIjtzOjQ6IvCdl64iO3M6MToiYSI7czo0OiLwnZiiIjtzOjE6ImEiO3M6NDoi8J2ZliI7czoxOiJhIjtzOjQ6IvCdmooiO3M6MToiYSI7czoyOiLJkSI7czoxOiJhIjtzOjI6Is6xIjtzOjE6ImEiO3M6NDoi8J2bgiI7czoxOiJhIjtzOjQ6IvCdm7wiO3M6MToiYSI7czo0OiLwnZy2IjtzOjE6ImEiO3M6NDoi8J2dsCI7czoxOiJhIjtzOjQ6IvCdnqoiO3M6MToiYSI7czoyOiLQsCI7czoxOiJhIjtzOjM6Iu+8oSI7czoxOiJBIjtzOjQ6IvCdkIAiO3M6MToiQSI7czo0OiLwnZC0IjtzOjE6IkEiO3M6NDoi8J2RqCI7czoxOiJBIjtzOjQ6IvCdkpwiO3M6MToiQSI7czo0OiLwnZOQIjtzOjE6IkEiO3M6NDoi8J2UhCI7czoxOiJBIjtzOjQ6IvCdlLgiO3M6MToiQSI7czo0OiLwnZWsIjtzOjE6IkEiO3M6NDoi8J2WoCI7czoxOiJBIjtzOjQ6IvCdl5QiO3M6MToiQSI7czo0OiLwnZiIIjtzOjE6IkEiO3M6NDoi8J2YvCI7czoxOiJBIjtzOjQ6IvCdmbAiO3M6MToiQSI7czoyOiLOkSI7czoxOiJBIjtzOjQ6IvCdmqgiO3M6MToiQSI7czo0OiLwnZuiIjtzOjE6IkEiO3M6NDoi8J2cnCI7czoxOiJBIjtzOjQ6IvCdnZYiO3M6MToiQSI7czo0OiLwnZ6QIjtzOjE6IkEiO3M6Mjoi0JAiO3M6MToiQSI7czozOiLhjqoiO3M6MToiQSI7czozOiLhl4UiO3M6MToiQSI7czozOiLqk64iO3M6MToiQSI7czo0OiLwlr2AIjtzOjE6IkEiO3M6NDoi8JCKoCI7czoxOiJBIjtzOjI6IsinIjtzOjE6IuUiO3M6MjoiyKYiO3M6MToixSI7czo0OiLwnZCbIjtzOjE6ImIiO3M6NDoi8J2RjyI7czoxOiJiIjtzOjQ6IvCdkoMiO3M6MToiYiI7czo0OiLwnZK3IjtzOjE6ImIiO3M6NDoi8J2TqyI7czoxOiJiIjtzOjQ6IvCdlJ8iO3M6MToiYiI7czo0OiLwnZWTIjtzOjE6ImIiO3M6NDoi8J2WhyI7czoxOiJiIjtzOjQ6IvCdlrsiO3M6MToiYiI7czo0OiLwnZevIjtzOjE6ImIiO3M6NDoi8J2YoyI7czoxOiJiIjtzOjQ6IvCdmZciO3M6MToiYiI7czo0OiLwnZqLIjtzOjE6ImIiO3M6MjoixoQiO3M6MToiYiI7czoyOiLQrCI7czoxOiJiIjtzOjM6IuGPjyI7czoxOiJiIjtzOjM6IuGRsiI7czoxOiJiIjtzOjM6IuGWryI7czoxOiJiIjtzOjM6Iu+8oiI7czoxOiJCIjtzOjM6IuKErCI7czoxOiJCIjtzOjQ6IvCdkIEiO3M6MToiQiI7czo0OiLwnZC1IjtzOjE6IkIiO3M6NDoi8J2RqSI7czoxOiJCIjtzOjQ6IvCdk5EiO3M6MToiQiI7czo0OiLwnZSFIjtzOjE6IkIiO3M6NDoi8J2UuSI7czoxOiJCIjtzOjQ6IvCdla0iO3M6MToiQiI7czo0OiLwnZahIjtzOjE6IkIiO3M6NDoi8J2XlSI7czoxOiJCIjtzOjQ6IvCdmIkiO3M6MToiQiI7czo0OiLwnZi9IjtzOjE6IkIiO3M6NDoi8J2ZsSI7czoxOiJCIjtzOjM6IuqetCI7czoxOiJCIjtzOjI6Is6SIjtzOjE6IkIiO3M6NDoi8J2aqSI7czoxOiJCIjtzOjQ6IvCdm6MiO3M6MToiQiI7czo0OiLwnZydIjtzOjE6IkIiO3M6NDoi8J2dlyI7czoxOiJCIjtzOjQ6IvCdnpEiO3M6MToiQiI7czoyOiLQkiI7czoxOiJCIjtzOjM6IuGPtCI7czoxOiJCIjtzOjM6IuGXtyI7czoxOiJCIjtzOjM6IuqTkCI7czoxOiJCIjtzOjQ6IvCQioIiO3M6MToiQiI7czo0OiLwkIqhIjtzOjE6IkIiO3M6NDoi8JCMgSI7czoxOiJCIjtzOjM6Iu+9gyI7czoxOiJjIjtzOjM6IuKFvSI7czoxOiJjIjtzOjQ6IvCdkJwiO3M6MToiYyI7czo0OiLwnZGQIjtzOjE6ImMiO3M6NDoi8J2ShCI7czoxOiJjIjtzOjQ6IvCdkrgiO3M6MToiYyI7czo0OiLwnZOsIjtzOjE6ImMiO3M6NDoi8J2UoCI7czoxOiJjIjtzOjQ6IvCdlZQiO3M6MToiYyI7czo0OiLwnZaIIjtzOjE6ImMiO3M6NDoi8J2WvCI7czoxOiJjIjtzOjQ6IvCdl7AiO3M6MToiYyI7czo0OiLwnZikIjtzOjE6ImMiO3M6NDoi8J2ZmCI7czoxOiJjIjtzOjQ6IvCdmowiO3M6MToiYyI7czozOiLhtIQiO3M6MToiYyI7czoyOiLPsiI7czoxOiJjIjtzOjM6IuKypSI7czoxOiJjIjtzOjI6ItGBIjtzOjE6ImMiO3M6Mzoi6q6vIjtzOjE6ImMiO3M6NDoi8JCQvSI7czoxOiJjIjtzOjQ6IvCfnYwiO3M6MToiQyI7czo0OiLwkaOyIjtzOjE6IkMiO3M6NDoi8JGjqSI7czoxOiJDIjtzOjM6Iu+8oyI7czoxOiJDIjtzOjM6IuKFrSI7czoxOiJDIjtzOjM6IuKEgiI7czoxOiJDIjtzOjM6IuKErSI7czoxOiJDIjtzOjQ6IvCdkIIiO3M6MToiQyI7czo0OiLwnZC2IjtzOjE6IkMiO3M6NDoi8J2RqiI7czoxOiJDIjtzOjQ6IvCdkp4iO3M6MToiQyI7czo0OiLwnZOSIjtzOjE6IkMiO3M6NDoi8J2VriI7czoxOiJDIjtzOjQ6IvCdlqIiO3M6MToiQyI7czo0OiLwnZeWIjtzOjE6IkMiO3M6NDoi8J2YiiI7czoxOiJDIjtzOjQ6IvCdmL4iO3M6MToiQyI7czo0OiLwnZmyIjtzOjE6IkMiO3M6Mjoiz7kiO3M6MToiQyI7czozOiLisqQiO3M6MToiQyI7czoyOiLQoSI7czoxOiJDIjtzOjM6IuGPnyI7czoxOiJDIjtzOjM6IuqTmiI7czoxOiJDIjtzOjQ6IvCQiqIiO3M6MToiQyI7czo0OiLwkIyCIjtzOjE6IkMiO3M6NDoi8JCQlSI7czoxOiJDIjtzOjQ6IvCQlJwiO3M6MToiQyI7czozOiLihb4iO3M6MToiZCI7czozOiLihYYiO3M6MToiZCI7czo0OiLwnZCdIjtzOjE6ImQiO3M6NDoi8J2RkSI7czoxOiJkIjtzOjQ6IvCdkoUiO3M6MToiZCI7czo0OiLwnZK5IjtzOjE6ImQiO3M6NDoi8J2TrSI7czoxOiJkIjtzOjQ6IvCdlKEiO3M6MToiZCI7czo0OiLwnZWVIjtzOjE6ImQiO3M6NDoi8J2WiSI7czoxOiJkIjtzOjQ6IvCdlr0iO3M6MToiZCI7czo0OiLwnZexIjtzOjE6ImQiO3M6NDoi8J2YpSI7czoxOiJkIjtzOjQ6IvCdmZkiO3M6MToiZCI7czo0OiLwnZqNIjtzOjE6ImQiO3M6Mjoi1IEiO3M6MToiZCI7czozOiLhj6ciO3M6MToiZCI7czozOiLhka8iO3M6MToiZCI7czozOiLqk5IiO3M6MToiZCI7czozOiLiha4iO3M6MToiRCI7czozOiLihYUiO3M6MToiRCI7czo0OiLwnZCDIjtzOjE6IkQiO3M6NDoi8J2QtyI7czoxOiJEIjtzOjQ6IvCdkasiO3M6MToiRCI7czo0OiLwnZKfIjtzOjE6IkQiO3M6NDoi8J2TkyI7czoxOiJEIjtzOjQ6IvCdlIciO3M6MToiRCI7czo0OiLwnZS7IjtzOjE6IkQiO3M6NDoi8J2VryI7czoxOiJEIjtzOjQ6IvCdlqMiO3M6MToiRCI7czo0OiLwnZeXIjtzOjE6IkQiO3M6NDoi8J2YiyI7czoxOiJEIjtzOjQ6IvCdmL8iO3M6MToiRCI7czo0OiLwnZmzIjtzOjE6IkQiO3M6Mzoi4Y6gIjtzOjE6IkQiO3M6Mzoi4ZeeIjtzOjE6IkQiO3M6Mzoi4ZeqIjtzOjE6IkQiO3M6Mzoi6pOTIjtzOjE6IkQiO3M6Mzoi4oSuIjtzOjE6ImUiO3M6Mzoi772FIjtzOjE6ImUiO3M6Mzoi4oSvIjtzOjE6ImUiO3M6Mzoi4oWHIjtzOjE6ImUiO3M6NDoi8J2QniI7czoxOiJlIjtzOjQ6IvCdkZIiO3M6MToiZSI7czo0OiLwnZKGIjtzOjE6ImUiO3M6NDoi8J2TriI7czoxOiJlIjtzOjQ6IvCdlKIiO3M6MToiZSI7czo0OiLwnZWWIjtzOjE6ImUiO3M6NDoi8J2WiiI7czoxOiJlIjtzOjQ6IvCdlr4iO3M6MToiZSI7czo0OiLwnZeyIjtzOjE6ImUiO3M6NDoi8J2YpiI7czoxOiJlIjtzOjQ6IvCdmZoiO3M6MToiZSI7czo0OiLwnZqOIjtzOjE6ImUiO3M6Mzoi6qyyIjtzOjE6ImUiO3M6Mjoi0LUiO3M6MToiZSI7czoyOiLSvSI7czoxOiJlIjtzOjM6IuKLvyI7czoxOiJFIjtzOjM6Iu+8pSI7czoxOiJFIjtzOjM6IuKEsCI7czoxOiJFIjtzOjQ6IvCdkIQiO3M6MToiRSI7czo0OiLwnZC4IjtzOjE6IkUiO3M6NDoi8J2RrCI7czoxOiJFIjtzOjQ6IvCdk5QiO3M6MToiRSI7czo0OiLwnZSIIjtzOjE6IkUiO3M6NDoi8J2UvCI7czoxOiJFIjtzOjQ6IvCdlbAiO3M6MToiRSI7czo0OiLwnZakIjtzOjE6IkUiO3M6NDoi8J2XmCI7czoxOiJFIjtzOjQ6IvCdmIwiO3M6MToiRSI7czo0OiLwnZmAIjtzOjE6IkUiO3M6NDoi8J2ZtCI7czoxOiJFIjtzOjI6Is6VIjtzOjE6IkUiO3M6NDoi8J2arCI7czoxOiJFIjtzOjQ6IvCdm6YiO3M6MToiRSI7czo0OiLwnZygIjtzOjE6IkUiO3M6NDoi8J2dmiI7czoxOiJFIjtzOjQ6IvCdnpQiO3M6MToiRSI7czoyOiLQlSI7czoxOiJFIjtzOjM6IuK0uSI7czoxOiJFIjtzOjM6IuGOrCI7czoxOiJFIjtzOjM6IuqTsCI7czoxOiJFIjtzOjQ6IvCRoqYiO3M6MToiRSI7czo0OiLwkaKuIjtzOjE6IkUiO3M6NDoi8JCKhiI7czoxOiJFIjtzOjQ6IvCdkJ8iO3M6MToiZiI7czo0OiLwnZGTIjtzOjE6ImYiO3M6NDoi8J2ShyI7czoxOiJmIjtzOjQ6IvCdkrsiO3M6MToiZiI7czo0OiLwnZOvIjtzOjE6ImYiO3M6NDoi8J2UoyI7czoxOiJmIjtzOjQ6IvCdlZciO3M6MToiZiI7czo0OiLwnZaLIjtzOjE6ImYiO3M6NDoi8J2WvyI7czoxOiJmIjtzOjQ6IvCdl7MiO3M6MToiZiI7czo0OiLwnZinIjtzOjE6ImYiO3M6NDoi8J2ZmyI7czoxOiJmIjtzOjQ6IvCdmo8iO3M6MToiZiI7czozOiLqrLUiO3M6MToiZiI7czozOiLqnpkiO3M6MToiZiI7czoyOiLFvyI7czoxOiJmIjtzOjM6IuG6nSI7czoxOiJmIjtzOjI6ItaEIjtzOjE6ImYiO3M6NDoi8J2IkyI7czoxOiJGIjtzOjM6IuKEsSI7czoxOiJGIjtzOjQ6IvCdkIUiO3M6MToiRiI7czo0OiLwnZC5IjtzOjE6IkYiO3M6NDoi8J2RrSI7czoxOiJGIjtzOjQ6IvCdk5UiO3M6MToiRiI7czo0OiLwnZSJIjtzOjE6IkYiO3M6NDoi8J2UvSI7czoxOiJGIjtzOjQ6IvCdlbEiO3M6MToiRiI7czo0OiLwnZalIjtzOjE6IkYiO3M6NDoi8J2XmSI7czoxOiJGIjtzOjQ6IvCdmI0iO3M6MToiRiI7czo0OiLwnZmBIjtzOjE6IkYiO3M6NDoi8J2ZtSI7czoxOiJGIjtzOjM6IuqemCI7czoxOiJGIjtzOjI6Is+cIjtzOjE6IkYiO3M6NDoi8J2fiiI7czoxOiJGIjtzOjM6IuGWtCI7czoxOiJGIjtzOjM6IuqTnSI7czoxOiJGIjtzOjQ6IvCRo4IiO3M6MToiRiI7czo0OiLwkaKiIjtzOjE6IkYiO3M6NDoi8JCKhyI7czoxOiJGIjtzOjQ6IvCQiqUiO3M6MToiRiI7czo0OiLwkJSlIjtzOjE6IkYiO3M6Mzoi772HIjtzOjE6ImciO3M6Mzoi4oSKIjtzOjE6ImciO3M6NDoi8J2QoCI7czoxOiJnIjtzOjQ6IvCdkZQiO3M6MToiZyI7czo0OiLwnZKIIjtzOjE6ImciO3M6NDoi8J2TsCI7czoxOiJnIjtzOjQ6IvCdlKQiO3M6MToiZyI7czo0OiLwnZWYIjtzOjE6ImciO3M6NDoi8J2WjCI7czoxOiJnIjtzOjQ6IvCdl4AiO3M6MToiZyI7czo0OiLwnZe0IjtzOjE6ImciO3M6NDoi8J2YqCI7czoxOiJnIjtzOjQ6IvCdmZwiO3M6MToiZyI7czo0OiLwnZqQIjtzOjE6ImciO3M6MjoiyaEiO3M6MToiZyI7czozOiLhtoMiO3M6MToiZyI7czoyOiLGjSI7czoxOiJnIjtzOjI6ItaBIjtzOjE6ImciO3M6NDoi8J2QhiI7czoxOiJHIjtzOjQ6IvCdkLoiO3M6MToiRyI7czo0OiLwnZGuIjtzOjE6IkciO3M6NDoi8J2SoiI7czoxOiJHIjtzOjQ6IvCdk5YiO3M6MToiRyI7czo0OiLwnZSKIjtzOjE6IkciO3M6NDoi8J2UviI7czoxOiJHIjtzOjQ6IvCdlbIiO3M6MToiRyI7czo0OiLwnZamIjtzOjE6IkciO3M6NDoi8J2XmiI7czoxOiJHIjtzOjQ6IvCdmI4iO3M6MToiRyI7czo0OiLwnZmCIjtzOjE6IkciO3M6NDoi8J2ZtiI7czoxOiJHIjtzOjI6ItSMIjtzOjE6IkciO3M6Mzoi4Y+AIjtzOjE6IkciO3M6Mzoi4Y+zIjtzOjE6IkciO3M6Mzoi6pOWIjtzOjE6IkciO3M6Mzoi772IIjtzOjE6ImgiO3M6Mzoi4oSOIjtzOjE6ImgiO3M6NDoi8J2QoSI7czoxOiJoIjtzOjQ6IvCdkokiO3M6MToiaCI7czo0OiLwnZK9IjtzOjE6ImgiO3M6NDoi8J2TsSI7czoxOiJoIjtzOjQ6IvCdlKUiO3M6MToiaCI7czo0OiLwnZWZIjtzOjE6ImgiO3M6NDoi8J2WjSI7czoxOiJoIjtzOjQ6IvCdl4EiO3M6MToiaCI7czo0OiLwnZe1IjtzOjE6ImgiO3M6NDoi8J2YqSI7czoxOiJoIjtzOjQ6IvCdmZ0iO3M6MToiaCI7czo0OiLwnZqRIjtzOjE6ImgiO3M6Mjoi0rsiO3M6MToiaCI7czoyOiLVsCI7czoxOiJoIjtzOjM6IuGPgiI7czoxOiJoIjtzOjM6Iu+8qCI7czoxOiJIIjtzOjM6IuKEiyI7czoxOiJIIjtzOjM6IuKEjCI7czoxOiJIIjtzOjM6IuKEjSI7czoxOiJIIjtzOjQ6IvCdkIciO3M6MToiSCI7czo0OiLwnZC7IjtzOjE6IkgiO3M6NDoi8J2RryI7czoxOiJIIjtzOjQ6IvCdk5ciO3M6MToiSCI7czo0OiLwnZWzIjtzOjE6IkgiO3M6NDoi8J2WpyI7czoxOiJIIjtzOjQ6IvCdl5siO3M6MToiSCI7czo0OiLwnZiPIjtzOjE6IkgiO3M6NDoi8J2ZgyI7czoxOiJIIjtzOjQ6IvCdmbciO3M6MToiSCI7czoyOiLOlyI7czoxOiJIIjtzOjQ6IvCdmq4iO3M6MToiSCI7czo0OiLwnZuoIjtzOjE6IkgiO3M6NDoi8J2coiI7czoxOiJIIjtzOjQ6IvCdnZwiO3M6MToiSCI7czo0OiLwnZ6WIjtzOjE6IkgiO3M6Mzoi4rKOIjtzOjE6IkgiO3M6Mjoi0J0iO3M6MToiSCI7czozOiLhjrsiO3M6MToiSCI7czozOiLhlbwiO3M6MToiSCI7czozOiLqk6ciO3M6MToiSCI7czo0OiLwkIuPIjtzOjE6IkgiO3M6Mjoiy5siO3M6MToiaSI7czozOiLijbMiO3M6MToiaSI7czozOiLvvYkiO3M6MToiaSI7czozOiLihbAiO3M6MToiaSI7czozOiLihLkiO3M6MToiaSI7czozOiLihYgiO3M6MToiaSI7czo0OiLwnZCiIjtzOjE6ImkiO3M6NDoi8J2RliI7czoxOiJpIjtzOjQ6IvCdkooiO3M6MToiaSI7czo0OiLwnZK+IjtzOjE6ImkiO3M6NDoi8J2TsiI7czoxOiJpIjtzOjQ6IvCdlKYiO3M6MToiaSI7czo0OiLwnZWaIjtzOjE6ImkiO3M6NDoi8J2WjiI7czoxOiJpIjtzOjQ6IvCdl4IiO3M6MToiaSI7czo0OiLwnZe2IjtzOjE6ImkiO3M6NDoi8J2YqiI7czoxOiJpIjtzOjQ6IvCdmZ4iO3M6MToiaSI7czo0OiLwnZqSIjtzOjE6ImkiO3M6MjoixLEiO3M6MToiaSI7czo0OiLwnZqkIjtzOjE6ImkiO3M6MjoiyaoiO3M6MToiaSI7czoyOiLJqSI7czoxOiJpIjtzOjI6Is65IjtzOjE6ImkiO3M6Mzoi4b6+IjtzOjE6ImkiO3M6MjoizboiO3M6MToiaSI7czo0OiLwnZuKIjtzOjE6ImkiO3M6NDoi8J2chCI7czoxOiJpIjtzOjQ6IvCdnL4iO3M6MToiaSI7czo0OiLwnZ24IjtzOjE6ImkiO3M6NDoi8J2esiI7czoxOiJpIjtzOjI6ItGWIjtzOjE6ImkiO3M6Mzoi6pmHIjtzOjE6ImkiO3M6Mjoi048iO3M6MToiaSI7czozOiLqrbUiO3M6MToiaSI7czozOiLhjqUiO3M6MToiaSI7czo0OiLwkaODIjtzOjE6ImkiO3M6Mzoi772KIjtzOjE6ImoiO3M6Mzoi4oWJIjtzOjE6ImoiO3M6NDoi8J2QoyI7czoxOiJqIjtzOjQ6IvCdkZciO3M6MToiaiI7czo0OiLwnZKLIjtzOjE6ImoiO3M6NDoi8J2SvyI7czoxOiJqIjtzOjQ6IvCdk7MiO3M6MToiaiI7czo0OiLwnZSnIjtzOjE6ImoiO3M6NDoi8J2VmyI7czoxOiJqIjtzOjQ6IvCdlo8iO3M6MToiaiI7czo0OiLwnZeDIjtzOjE6ImoiO3M6NDoi8J2XtyI7czoxOiJqIjtzOjQ6IvCdmKsiO3M6MToiaiI7czo0OiLwnZmfIjtzOjE6ImoiO3M6NDoi8J2akyI7czoxOiJqIjtzOjI6Is+zIjtzOjE6ImoiO3M6Mjoi0ZgiO3M6MToiaiI7czozOiLvvKoiO3M6MToiSiI7czo0OiLwnZCJIjtzOjE6IkoiO3M6NDoi8J2QvSI7czoxOiJKIjtzOjQ6IvCdkbEiO3M6MToiSiI7czo0OiLwnZKlIjtzOjE6IkoiO3M6NDoi8J2TmSI7czoxOiJKIjtzOjQ6IvCdlI0iO3M6MToiSiI7czo0OiLwnZWBIjtzOjE6IkoiO3M6NDoi8J2VtSI7czoxOiJKIjtzOjQ6IvCdlqkiO3M6MToiSiI7czo0OiLwnZedIjtzOjE6IkoiO3M6NDoi8J2YkSI7czoxOiJKIjtzOjQ6IvCdmYUiO3M6MToiSiI7czo0OiLwnZm5IjtzOjE6IkoiO3M6Mzoi6p6yIjtzOjE6IkoiO3M6Mjoizb8iO3M6MToiSiI7czoyOiLQiCI7czoxOiJKIjtzOjM6IuGOqyI7czoxOiJKIjtzOjM6IuGSjSI7czoxOiJKIjtzOjM6IuqTmSI7czoxOiJKIjtzOjQ6IvCdkKQiO3M6MToiayI7czo0OiLwnZGYIjtzOjE6ImsiO3M6NDoi8J2SjCI7czoxOiJrIjtzOjQ6IvCdk4AiO3M6MToiayI7czo0OiLwnZO0IjtzOjE6ImsiO3M6NDoi8J2UqCI7czoxOiJrIjtzOjQ6IvCdlZwiO3M6MToiayI7czo0OiLwnZaQIjtzOjE6ImsiO3M6NDoi8J2XhCI7czoxOiJrIjtzOjQ6IvCdl7giO3M6MToiayI7czo0OiLwnZisIjtzOjE6ImsiO3M6NDoi8J2ZoCI7czoxOiJrIjtzOjQ6IvCdmpQiO3M6MToiayI7czozOiLihKoiO3M6MToiSyI7czozOiLvvKsiO3M6MToiSyI7czo0OiLwnZCKIjtzOjE6IksiO3M6NDoi8J2QviI7czoxOiJLIjtzOjQ6IvCdkbIiO3M6MToiSyI7czo0OiLwnZKmIjtzOjE6IksiO3M6NDoi8J2TmiI7czoxOiJLIjtzOjQ6IvCdlI4iO3M6MToiSyI7czo0OiLwnZWCIjtzOjE6IksiO3M6NDoi8J2VtiI7czoxOiJLIjtzOjQ6IvCdlqoiO3M6MToiSyI7czo0OiLwnZeeIjtzOjE6IksiO3M6NDoi8J2YkiI7czoxOiJLIjtzOjQ6IvCdmYYiO3M6MToiSyI7czo0OiLwnZm6IjtzOjE6IksiO3M6MjoizpoiO3M6MToiSyI7czo0OiLwnZqxIjtzOjE6IksiO3M6NDoi8J2bqyI7czoxOiJLIjtzOjQ6IvCdnKUiO3M6MToiSyI7czo0OiLwnZ2fIjtzOjE6IksiO3M6NDoi8J2emSI7czoxOiJLIjtzOjM6IuKylCI7czoxOiJLIjtzOjI6ItCaIjtzOjE6IksiO3M6Mzoi4Y+mIjtzOjE6IksiO3M6Mzoi4ZuVIjtzOjE6IksiO3M6Mzoi6pOXIjtzOjE6IksiO3M6NDoi8JCUmCI7czoxOiJLIjtzOjI6IteAIjtzOjE6ImwiO3M6MToifCI7czoxOiJsIjtzOjM6IuKIoyI7czoxOiJsIjtzOjM6IuKPvSI7czoxOiJsIjtzOjM6Iu+/qCI7czoxOiJsIjtpOjE7czoxOiJsIjtzOjI6ItmhIjtzOjE6ImwiO3M6Mjoi27EiO3M6MToibCI7czo0OiLwkIygIjtzOjE6ImwiO3M6NDoi8J6jhyI7czoxOiJsIjtzOjQ6IvCdn48iO3M6MToibCI7czo0OiLwnZ+ZIjtzOjE6ImwiO3M6NDoi8J2foyI7czoxOiJsIjtzOjQ6IvCdn60iO3M6MToibCI7czo0OiLwnZ+3IjtzOjE6ImwiO3M6MToiSSI7czoxOiJsIjtzOjM6Iu+8qSI7czoxOiJsIjtzOjM6IuKFoCI7czoxOiJsIjtzOjM6IuKEkCI7czoxOiJsIjtzOjM6IuKEkSI7czoxOiJsIjtzOjQ6IvCdkIgiO3M6MToibCI7czo0OiLwnZC8IjtzOjE6ImwiO3M6NDoi8J2RsCI7czoxOiJsIjtzOjQ6IvCdk5giO3M6MToibCI7czo0OiLwnZWAIjtzOjE6ImwiO3M6NDoi8J2VtCI7czoxOiJsIjtzOjQ6IvCdlqgiO3M6MToibCI7czo0OiLwnZecIjtzOjE6ImwiO3M6NDoi8J2YkCI7czoxOiJsIjtzOjQ6IvCdmYQiO3M6MToibCI7czo0OiLwnZm4IjtzOjE6ImwiO3M6MjoixpYiO3M6MToibCI7czozOiLvvYwiO3M6MToibCI7czozOiLihbwiO3M6MToibCI7czozOiLihJMiO3M6MToibCI7czo0OiLwnZClIjtzOjE6ImwiO3M6NDoi8J2RmSI7czoxOiJsIjtzOjQ6IvCdko0iO3M6MToibCI7czo0OiLwnZOBIjtzOjE6ImwiO3M6NDoi8J2TtSI7czoxOiJsIjtzOjQ6IvCdlKkiO3M6MToibCI7czo0OiLwnZWdIjtzOjE6ImwiO3M6NDoi8J2WkSI7czoxOiJsIjtzOjQ6IvCdl4UiO3M6MToibCI7czo0OiLwnZe5IjtzOjE6ImwiO3M6NDoi8J2YrSI7czoxOiJsIjtzOjQ6IvCdmaEiO3M6MToibCI7czo0OiLwnZqVIjtzOjE6ImwiO3M6Mjoix4AiO3M6MToibCI7czoyOiLOmSI7czoxOiJsIjtzOjQ6IvCdmrAiO3M6MToibCI7czo0OiLwnZuqIjtzOjE6ImwiO3M6NDoi8J2cpCI7czoxOiJsIjtzOjQ6IvCdnZ4iO3M6MToibCI7czo0OiLwnZ6YIjtzOjE6ImwiO3M6Mzoi4rKSIjtzOjE6ImwiO3M6Mjoi0IYiO3M6MToibCI7czoyOiLTgCI7czoxOiJsIjtzOjI6IteVIjtzOjE6ImwiO3M6Mjoi158iO3M6MToibCI7czoyOiLYpyI7czoxOiJsIjtzOjQ6IvCeuIAiO3M6MToibCI7czo0OiLwnrqAIjtzOjE6ImwiO3M6Mzoi77qOIjtzOjE6ImwiO3M6Mzoi77qNIjtzOjE6ImwiO3M6Mjoi34oiO3M6MToibCI7czozOiLitY8iO3M6MToibCI7czozOiLhm4EiO3M6MToibCI7czozOiLqk7IiO3M6MToibCI7czo0OiLwlryoIjtzOjE6ImwiO3M6NDoi8JCKiiI7czoxOiJsIjtzOjQ6IvCQjIkiO3M6MToibCI7czo0OiLwnYiqIjtzOjE6IkwiO3M6Mzoi4oWsIjtzOjE6IkwiO3M6Mzoi4oSSIjtzOjE6IkwiO3M6NDoi8J2QiyI7czoxOiJMIjtzOjQ6IvCdkL8iO3M6MToiTCI7czo0OiLwnZGzIjtzOjE6IkwiO3M6NDoi8J2TmyI7czoxOiJMIjtzOjQ6IvCdlI8iO3M6MToiTCI7czo0OiLwnZWDIjtzOjE6IkwiO3M6NDoi8J2VtyI7czoxOiJMIjtzOjQ6IvCdlqsiO3M6MToiTCI7czo0OiLwnZefIjtzOjE6IkwiO3M6NDoi8J2YkyI7czoxOiJMIjtzOjQ6IvCdmYciO3M6MToiTCI7czo0OiLwnZm7IjtzOjE6IkwiO3M6Mzoi4rOQIjtzOjE6IkwiO3M6Mzoi4Y+eIjtzOjE6IkwiO3M6Mzoi4ZKqIjtzOjE6IkwiO3M6Mzoi6pOhIjtzOjE6IkwiO3M6NDoi8Ja8liI7czoxOiJMIjtzOjQ6IvCRoqMiO3M6MToiTCI7czo0OiLwkaKyIjtzOjE6IkwiO3M6NDoi8JCQmyI7czoxOiJMIjtzOjQ6IvCQlKYiO3M6MToiTCI7czozOiLvvK0iO3M6MToiTSI7czozOiLiha8iO3M6MToiTSI7czozOiLihLMiO3M6MToiTSI7czo0OiLwnZCMIjtzOjE6Ik0iO3M6NDoi8J2RgCI7czoxOiJNIjtzOjQ6IvCdkbQiO3M6MToiTSI7czo0OiLwnZOcIjtzOjE6Ik0iO3M6NDoi8J2UkCI7czoxOiJNIjtzOjQ6IvCdlYQiO3M6MToiTSI7czo0OiLwnZW4IjtzOjE6Ik0iO3M6NDoi8J2WrCI7czoxOiJNIjtzOjQ6IvCdl6AiO3M6MToiTSI7czo0OiLwnZiUIjtzOjE6Ik0iO3M6NDoi8J2ZiCI7czoxOiJNIjtzOjQ6IvCdmbwiO3M6MToiTSI7czoyOiLOnCI7czoxOiJNIjtzOjQ6IvCdmrMiO3M6MToiTSI7czo0OiLwnZutIjtzOjE6Ik0iO3M6NDoi8J2cpyI7czoxOiJNIjtzOjQ6IvCdnaEiO3M6MToiTSI7czo0OiLwnZ6bIjtzOjE6Ik0iO3M6Mjoiz7oiO3M6MToiTSI7czozOiLispgiO3M6MToiTSI7czoyOiLQnCI7czoxOiJNIjtzOjM6IuGOtyI7czoxOiJNIjtzOjM6IuGXsCI7czoxOiJNIjtzOjM6IuGbliI7czoxOiJNIjtzOjM6IuqTnyI7czoxOiJNIjtzOjQ6IvCQirAiO3M6MToiTSI7czo0OiLwkIyRIjtzOjE6Ik0iO3M6NDoi8J2QpyI7czoxOiJuIjtzOjQ6IvCdkZsiO3M6MToibiI7czo0OiLwnZKPIjtzOjE6Im4iO3M6NDoi8J2TgyI7czoxOiJuIjtzOjQ6IvCdk7ciO3M6MToibiI7czo0OiLwnZSrIjtzOjE6Im4iO3M6NDoi8J2VnyI7czoxOiJuIjtzOjQ6IvCdlpMiO3M6MToibiI7czo0OiLwnZeHIjtzOjE6Im4iO3M6NDoi8J2XuyI7czoxOiJuIjtzOjQ6IvCdmK8iO3M6MToibiI7czo0OiLwnZmjIjtzOjE6Im4iO3M6NDoi8J2alyI7czoxOiJuIjtzOjI6ItW4IjtzOjE6Im4iO3M6Mjoi1bwiO3M6MToibiI7czozOiLvvK4iO3M6MToiTiI7czozOiLihJUiO3M6MToiTiI7czo0OiLwnZCNIjtzOjE6Ik4iO3M6NDoi8J2RgSI7czoxOiJOIjtzOjQ6IvCdkbUiO3M6MToiTiI7czo0OiLwnZKpIjtzOjE6Ik4iO3M6NDoi8J2TnSI7czoxOiJOIjtzOjQ6IvCdlJEiO3M6MToiTiI7czo0OiLwnZW5IjtzOjE6Ik4iO3M6NDoi8J2WrSI7czoxOiJOIjtzOjQ6IvCdl6EiO3M6MToiTiI7czo0OiLwnZiVIjtzOjE6Ik4iO3M6NDoi8J2ZiSI7czoxOiJOIjtzOjQ6IvCdmb0iO3M6MToiTiI7czoyOiLOnSI7czoxOiJOIjtzOjQ6IvCdmrQiO3M6MToiTiI7czo0OiLwnZuuIjtzOjE6Ik4iO3M6NDoi8J2cqCI7czoxOiJOIjtzOjQ6IvCdnaIiO3M6MToiTiI7czo0OiLwnZ6cIjtzOjE6Ik4iO3M6Mzoi4rKaIjtzOjE6Ik4iO3M6Mzoi6pOgIjtzOjE6Ik4iO3M6NDoi8JCUkyI7czoxOiJOIjtzOjM6IuCwgiI7czoxOiJvIjtzOjM6IuCygiI7czoxOiJvIjtzOjM6IuC0giI7czoxOiJvIjtzOjM6IuC2giI7czoxOiJvIjtzOjM6IuClpiI7czoxOiJvIjtzOjM6IuCppiI7czoxOiJvIjtzOjM6IuCrpiI7czoxOiJvIjtzOjM6IuCvpiI7czoxOiJvIjtzOjM6IuCxpiI7czoxOiJvIjtzOjM6IuCzpiI7czoxOiJvIjtzOjM6IuC1piI7czoxOiJvIjtzOjM6IuC5kCI7czoxOiJvIjtzOjM6IuC7kCI7czoxOiJvIjtzOjM6IuGBgCI7czoxOiJvIjtzOjI6ItmlIjtzOjE6Im8iO3M6Mjoi27UiO3M6MToibyI7czozOiLvvY8iO3M6MToibyI7czozOiLihLQiO3M6MToibyI7czo0OiLwnZCoIjtzOjE6Im8iO3M6NDoi8J2RnCI7czoxOiJvIjtzOjQ6IvCdkpAiO3M6MToibyI7czo0OiLwnZO4IjtzOjE6Im8iO3M6NDoi8J2UrCI7czoxOiJvIjtzOjQ6IvCdlaAiO3M6MToibyI7czo0OiLwnZaUIjtzOjE6Im8iO3M6NDoi8J2XiCI7czoxOiJvIjtzOjQ6IvCdl7wiO3M6MToibyI7czo0OiLwnZiwIjtzOjE6Im8iO3M6NDoi8J2ZpCI7czoxOiJvIjtzOjQ6IvCdmpgiO3M6MToibyI7czozOiLhtI8iO3M6MToibyI7czozOiLhtJEiO3M6MToibyI7czozOiLqrL0iO3M6MToibyI7czoyOiLOvyI7czoxOiJvIjtzOjQ6IvCdm5AiO3M6MToibyI7czo0OiLwnZyKIjtzOjE6Im8iO3M6NDoi8J2dhCI7czoxOiJvIjtzOjQ6IvCdnb4iO3M6MToibyI7czo0OiLwnZ64IjtzOjE6Im8iO3M6Mjoiz4MiO3M6MToibyI7czo0OiLwnZuUIjtzOjE6Im8iO3M6NDoi8J2cjiI7czoxOiJvIjtzOjQ6IvCdnYgiO3M6MToibyI7czo0OiLwnZ6CIjtzOjE6Im8iO3M6NDoi8J2evCI7czoxOiJvIjtzOjM6IuKynyI7czoxOiJvIjtzOjI6ItC+IjtzOjE6Im8iO3M6Mzoi4YO/IjtzOjE6Im8iO3M6Mjoi1oUiO3M6MToibyI7czoyOiLXoSI7czoxOiJvIjtzOjI6ItmHIjtzOjE6Im8iO3M6NDoi8J64pCI7czoxOiJvIjtzOjQ6IvCeuaQiO3M6MToibyI7czo0OiLwnrqEIjtzOjE6Im8iO3M6Mzoi77urIjtzOjE6Im8iO3M6Mzoi77usIjtzOjE6Im8iO3M6Mzoi77uqIjtzOjE6Im8iO3M6Mzoi77upIjtzOjE6Im8iO3M6Mjoi2r4iO3M6MToibyI7czozOiLvrqwiO3M6MToibyI7czozOiLvrq0iO3M6MToibyI7czozOiLvrqsiO3M6MToibyI7czozOiLvrqoiO3M6MToibyI7czoyOiLbgSI7czoxOiJvIjtzOjM6Iu+uqCI7czoxOiJvIjtzOjM6Iu+uqSI7czoxOiJvIjtzOjM6Iu+upyI7czoxOiJvIjtzOjM6Iu+upiI7czoxOiJvIjtzOjI6ItuVIjtzOjE6Im8iO3M6Mzoi4LSgIjtzOjE6Im8iO3M6Mzoi4YCdIjtzOjE6Im8iO3M6NDoi8JCTqiI7czoxOiJvIjtzOjQ6IvCRo4giO3M6MToibyI7czo0OiLwkaOXIjtzOjE6Im8iO3M6NDoi8JCQrCI7czoxOiJvIjtpOjA7czoxOiJPIjtzOjI6It+AIjtzOjE6Ik8iO3M6Mzoi4KemIjtzOjE6Ik8iO3M6Mzoi4K2mIjtzOjE6Ik8iO3M6Mzoi44CHIjtzOjE6Ik8iO3M6NDoi8JGTkCI7czoxOiJPIjtzOjQ6IvCRo6AiO3M6MToiTyI7czo0OiLwnZ+OIjtzOjE6Ik8iO3M6NDoi8J2fmCI7czoxOiJPIjtzOjQ6IvCdn6IiO3M6MToiTyI7czo0OiLwnZ+sIjtzOjE6Ik8iO3M6NDoi8J2ftiI7czoxOiJPIjtzOjM6Iu+8ryI7czoxOiJPIjtzOjQ6IvCdkI4iO3M6MToiTyI7czo0OiLwnZGCIjtzOjE6Ik8iO3M6NDoi8J2RtiI7czoxOiJPIjtzOjQ6IvCdkqoiO3M6MToiTyI7czo0OiLwnZOeIjtzOjE6Ik8iO3M6NDoi8J2UkiI7czoxOiJPIjtzOjQ6IvCdlYYiO3M6MToiTyI7czo0OiLwnZW6IjtzOjE6Ik8iO3M6NDoi8J2WriI7czoxOiJPIjtzOjQ6IvCdl6IiO3M6MToiTyI7czo0OiLwnZiWIjtzOjE6Ik8iO3M6NDoi8J2ZiiI7czoxOiJPIjtzOjQ6IvCdmb4iO3M6MToiTyI7czoyOiLOnyI7czoxOiJPIjtzOjQ6IvCdmrYiO3M6MToiTyI7czo0OiLwnZuwIjtzOjE6Ik8iO3M6NDoi8J2cqiI7czoxOiJPIjtzOjQ6IvCdnaQiO3M6MToiTyI7czo0OiLwnZ6eIjtzOjE6Ik8iO3M6Mzoi4rKeIjtzOjE6Ik8iO3M6Mjoi0J4iO3M6MToiTyI7czoyOiLVlSI7czoxOiJPIjtzOjM6IuK1lCI7czoxOiJPIjtzOjM6IuGLkCI7czoxOiJPIjtzOjM6IuCsoCI7czoxOiJPIjtzOjQ6IvCQk4IiO3M6MToiTyI7czozOiLqk7MiO3M6MToiTyI7czo0OiLwkaK1IjtzOjE6Ik8iO3M6NDoi8JCKkiI7czoxOiJPIjtzOjQ6IvCQiqsiO3M6MToiTyI7czo0OiLwkJCEIjtzOjE6Ik8iO3M6NDoi8JCUliI7czoxOiJPIjtzOjM6IuKBsCI7czoxOiK6IjtzOjM6IuG1kiI7czoxOiK6IjtzOjI6IsWQIjtzOjE6ItYiO3M6Mzoi4o20IjtzOjE6InAiO3M6Mzoi772QIjtzOjE6InAiO3M6NDoi8J2QqSI7czoxOiJwIjtzOjQ6IvCdkZ0iO3M6MToicCI7czo0OiLwnZKRIjtzOjE6InAiO3M6NDoi8J2ThSI7czoxOiJwIjtzOjQ6IvCdk7kiO3M6MToicCI7czo0OiLwnZStIjtzOjE6InAiO3M6NDoi8J2VoSI7czoxOiJwIjtzOjQ6IvCdlpUiO3M6MToicCI7czo0OiLwnZeJIjtzOjE6InAiO3M6NDoi8J2XvSI7czoxOiJwIjtzOjQ6IvCdmLEiO3M6MToicCI7czo0OiLwnZmlIjtzOjE6InAiO3M6NDoi8J2amSI7czoxOiJwIjtzOjI6Is+BIjtzOjE6InAiO3M6Mjoiz7EiO3M6MToicCI7czo0OiLwnZuSIjtzOjE6InAiO3M6NDoi8J2boCI7czoxOiJwIjtzOjQ6IvCdnIwiO3M6MToicCI7czo0OiLwnZyaIjtzOjE6InAiO3M6NDoi8J2dhiI7czoxOiJwIjtzOjQ6IvCdnZQiO3M6MToicCI7czo0OiLwnZ6AIjtzOjE6InAiO3M6NDoi8J2ejiI7czoxOiJwIjtzOjQ6IvCdnroiO3M6MToicCI7czo0OiLwnZ+IIjtzOjE6InAiO3M6Mzoi4rKjIjtzOjE6InAiO3M6Mjoi0YAiO3M6MToicCI7czozOiLvvLAiO3M6MToiUCI7czozOiLihJkiO3M6MToiUCI7czo0OiLwnZCPIjtzOjE6IlAiO3M6NDoi8J2RgyI7czoxOiJQIjtzOjQ6IvCdkbciO3M6MToiUCI7czo0OiLwnZKrIjtzOjE6IlAiO3M6NDoi8J2TnyI7czoxOiJQIjtzOjQ6IvCdlJMiO3M6MToiUCI7czo0OiLwnZW7IjtzOjE6IlAiO3M6NDoi8J2WryI7czoxOiJQIjtzOjQ6IvCdl6MiO3M6MToiUCI7czo0OiLwnZiXIjtzOjE6IlAiO3M6NDoi8J2ZiyI7czoxOiJQIjtzOjQ6IvCdmb8iO3M6MToiUCI7czoyOiLOoSI7czoxOiJQIjtzOjQ6IvCdmrgiO3M6MToiUCI7czo0OiLwnZuyIjtzOjE6IlAiO3M6NDoi8J2crCI7czoxOiJQIjtzOjQ6IvCdnaYiO3M6MToiUCI7czo0OiLwnZ6gIjtzOjE6IlAiO3M6Mzoi4rKiIjtzOjE6IlAiO3M6Mjoi0KAiO3M6MToiUCI7czozOiLhj6IiO3M6MToiUCI7czozOiLhka0iO3M6MToiUCI7czozOiLqk5EiO3M6MToiUCI7czo0OiLwkIqVIjtzOjE6IlAiO3M6NDoi8J2QqiI7czoxOiJxIjtzOjQ6IvCdkZ4iO3M6MToicSI7czo0OiLwnZKSIjtzOjE6InEiO3M6NDoi8J2ThiI7czoxOiJxIjtzOjQ6IvCdk7oiO3M6MToicSI7czo0OiLwnZSuIjtzOjE6InEiO3M6NDoi8J2VoiI7czoxOiJxIjtzOjQ6IvCdlpYiO3M6MToicSI7czo0OiLwnZeKIjtzOjE6InEiO3M6NDoi8J2XviI7czoxOiJxIjtzOjQ6IvCdmLIiO3M6MToicSI7czo0OiLwnZmmIjtzOjE6InEiO3M6NDoi8J2amiI7czoxOiJxIjtzOjI6ItSbIjtzOjE6InEiO3M6Mjoi1aMiO3M6MToicSI7czoyOiLVpiI7czoxOiJxIjtzOjM6IuKEmiI7czoxOiJRIjtzOjQ6IvCdkJAiO3M6MToiUSI7czo0OiLwnZGEIjtzOjE6IlEiO3M6NDoi8J2RuCI7czoxOiJRIjtzOjQ6IvCdkqwiO3M6MToiUSI7czo0OiLwnZOgIjtzOjE6IlEiO3M6NDoi8J2UlCI7czoxOiJRIjtzOjQ6IvCdlbwiO3M6MToiUSI7czo0OiLwnZawIjtzOjE6IlEiO3M6NDoi8J2XpCI7czoxOiJRIjtzOjQ6IvCdmJgiO3M6MToiUSI7czo0OiLwnZmMIjtzOjE6IlEiO3M6NDoi8J2agCI7czoxOiJRIjtzOjM6IuK1lSI7czoxOiJRIjtzOjQ6IvCdkKsiO3M6MToiciI7czo0OiLwnZGfIjtzOjE6InIiO3M6NDoi8J2SkyI7czoxOiJyIjtzOjQ6IvCdk4ciO3M6MToiciI7czo0OiLwnZO7IjtzOjE6InIiO3M6NDoi8J2UryI7czoxOiJyIjtzOjQ6IvCdlaMiO3M6MToiciI7czo0OiLwnZaXIjtzOjE6InIiO3M6NDoi8J2XiyI7czoxOiJyIjtzOjQ6IvCdl78iO3M6MToiciI7czo0OiLwnZizIjtzOjE6InIiO3M6NDoi8J2ZpyI7czoxOiJyIjtzOjQ6IvCdmpsiO3M6MToiciI7czozOiLqrYciO3M6MToiciI7czozOiLqrYgiO3M6MToiciI7czozOiLhtKYiO3M6MToiciI7czozOiLisoUiO3M6MToiciI7czoyOiLQsyI7czoxOiJyIjtzOjM6IuqugSI7czoxOiJyIjtzOjQ6IvCdiJYiO3M6MToiUiI7czozOiLihJsiO3M6MToiUiI7czozOiLihJwiO3M6MToiUiI7czozOiLihJ0iO3M6MToiUiI7czo0OiLwnZCRIjtzOjE6IlIiO3M6NDoi8J2RhSI7czoxOiJSIjtzOjQ6IvCdkbkiO3M6MToiUiI7czo0OiLwnZOhIjtzOjE6IlIiO3M6NDoi8J2VvSI7czoxOiJSIjtzOjQ6IvCdlrEiO3M6MToiUiI7czo0OiLwnZelIjtzOjE6IlIiO3M6NDoi8J2YmSI7czoxOiJSIjtzOjQ6IvCdmY0iO3M6MToiUiI7czo0OiLwnZqBIjtzOjE6IlIiO3M6MjoixqYiO3M6MToiUiI7czozOiLhjqEiO3M6MToiUiI7czozOiLhj5IiO3M6MToiUiI7czo0OiLwkJK0IjtzOjE6IlIiO3M6Mzoi4ZaHIjtzOjE6IlIiO3M6Mzoi6pOjIjtzOjE6IlIiO3M6NDoi8Ja8tSI7czoxOiJSIjtzOjM6Iu+9kyI7czoxOiJzIjtzOjQ6IvCdkKwiO3M6MToicyI7czo0OiLwnZGgIjtzOjE6InMiO3M6NDoi8J2SlCI7czoxOiJzIjtzOjQ6IvCdk4giO3M6MToicyI7czo0OiLwnZO8IjtzOjE6InMiO3M6NDoi8J2UsCI7czoxOiJzIjtzOjQ6IvCdlaQiO3M6MToicyI7czo0OiLwnZaYIjtzOjE6InMiO3M6NDoi8J2XjCI7czoxOiJzIjtzOjQ6IvCdmIAiO3M6MToicyI7czo0OiLwnZi0IjtzOjE6InMiO3M6NDoi8J2ZqCI7czoxOiJzIjtzOjQ6IvCdmpwiO3M6MToicyI7czozOiLqnLEiO3M6MToicyI7czoyOiLGvSI7czoxOiJzIjtzOjI6ItGVIjtzOjE6InMiO3M6Mzoi6q6qIjtzOjE6InMiO3M6NDoi8JGjgSI7czoxOiJzIjtzOjQ6IvCQkYgiO3M6MToicyI7czozOiLvvLMiO3M6MToiUyI7czo0OiLwnZCSIjtzOjE6IlMiO3M6NDoi8J2RhiI7czoxOiJTIjtzOjQ6IvCdkboiO3M6MToiUyI7czo0OiLwnZKuIjtzOjE6IlMiO3M6NDoi8J2ToiI7czoxOiJTIjtzOjQ6IvCdlJYiO3M6MToiUyI7czo0OiLwnZWKIjtzOjE6IlMiO3M6NDoi8J2VviI7czoxOiJTIjtzOjQ6IvCdlrIiO3M6MToiUyI7czo0OiLwnZemIjtzOjE6IlMiO3M6NDoi8J2YmiI7czoxOiJTIjtzOjQ6IvCdmY4iO3M6MToiUyI7czo0OiLwnZqCIjtzOjE6IlMiO3M6Mjoi0IUiO3M6MToiUyI7czoyOiLVjyI7czoxOiJTIjtzOjM6IuGPlSI7czoxOiJTIjtzOjM6IuGPmiI7czoxOiJTIjtzOjM6IuqToiI7czoxOiJTIjtzOjQ6IvCWvLoiO3M6MToiUyI7czo0OiLwkIqWIjtzOjE6IlMiO3M6NDoi8JCQoCI7czoxOiJTIjtzOjM6IuqetSI7czoxOiLfIjtzOjI6Is6yIjtzOjE6It8iO3M6Mjoiz5AiO3M6MToi3yI7czo0OiLwnZuDIjtzOjE6It8iO3M6NDoi8J2bvSI7czoxOiLfIjtzOjQ6IvCdnLciO3M6MToi3yI7czo0OiLwnZ2xIjtzOjE6It8iO3M6NDoi8J2eqyI7czoxOiLfIjtzOjM6IuGPsCI7czoxOiLfIjtzOjQ6IvCdkK0iO3M6MToidCI7czo0OiLwnZGhIjtzOjE6InQiO3M6NDoi8J2SlSI7czoxOiJ0IjtzOjQ6IvCdk4kiO3M6MToidCI7czo0OiLwnZO9IjtzOjE6InQiO3M6NDoi8J2UsSI7czoxOiJ0IjtzOjQ6IvCdlaUiO3M6MToidCI7czo0OiLwnZaZIjtzOjE6InQiO3M6NDoi8J2XjSI7czoxOiJ0IjtzOjQ6IvCdmIEiO3M6MToidCI7czo0OiLwnZi1IjtzOjE6InQiO3M6NDoi8J2ZqSI7czoxOiJ0IjtzOjQ6IvCdmp0iO3M6MToidCI7czozOiLiiqQiO3M6MToiVCI7czozOiLin5kiO3M6MToiVCI7czo0OiLwn52oIjtzOjE6IlQiO3M6Mzoi77y0IjtzOjE6IlQiO3M6NDoi8J2QkyI7czoxOiJUIjtzOjQ6IvCdkYciO3M6MToiVCI7czo0OiLwnZG7IjtzOjE6IlQiO3M6NDoi8J2SryI7czoxOiJUIjtzOjQ6IvCdk6MiO3M6MToiVCI7czo0OiLwnZSXIjtzOjE6IlQiO3M6NDoi8J2ViyI7czoxOiJUIjtzOjQ6IvCdlb8iO3M6MToiVCI7czo0OiLwnZazIjtzOjE6IlQiO3M6NDoi8J2XpyI7czoxOiJUIjtzOjQ6IvCdmJsiO3M6MToiVCI7czo0OiLwnZmPIjtzOjE6IlQiO3M6NDoi8J2agyI7czoxOiJUIjtzOjI6Is6kIjtzOjE6IlQiO3M6NDoi8J2auyI7czoxOiJUIjtzOjQ6IvCdm7UiO3M6MToiVCI7czo0OiLwnZyvIjtzOjE6IlQiO3M6NDoi8J2dqSI7czoxOiJUIjtzOjQ6IvCdnqMiO3M6MToiVCI7czozOiLisqYiO3M6MToiVCI7czoyOiLQoiI7czoxOiJUIjtzOjM6IuGOoiI7czoxOiJUIjtzOjM6IuqTlCI7czoxOiJUIjtzOjQ6IvCWvIoiO3M6MToiVCI7czo0OiLwkaK8IjtzOjE6IlQiO3M6NDoi8JCKlyI7czoxOiJUIjtzOjQ6IvCQirEiO3M6MToiVCI7czo0OiLwkIyVIjtzOjE6IlQiO3M6NDoi8J2QriI7czoxOiJ1IjtzOjQ6IvCdkaIiO3M6MToidSI7czo0OiLwnZKWIjtzOjE6InUiO3M6NDoi8J2TiiI7czoxOiJ1IjtzOjQ6IvCdk74iO3M6MToidSI7czo0OiLwnZSyIjtzOjE6InUiO3M6NDoi8J2VpiI7czoxOiJ1IjtzOjQ6IvCdlpoiO3M6MToidSI7czo0OiLwnZeOIjtzOjE6InUiO3M6NDoi8J2YgiI7czoxOiJ1IjtzOjQ6IvCdmLYiO3M6MToidSI7czo0OiLwnZmqIjtzOjE6InUiO3M6NDoi8J2aniI7czoxOiJ1IjtzOjM6IuqenyI7czoxOiJ1IjtzOjM6IuG0nCI7czoxOiJ1IjtzOjM6IuqtjiI7czoxOiJ1IjtzOjM6IuqtkiI7czoxOiJ1IjtzOjI6IsqLIjtzOjE6InUiO3M6Mjoiz4UiO3M6MToidSI7czo0OiLwnZuWIjtzOjE6InUiO3M6NDoi8J2ckCI7czoxOiJ1IjtzOjQ6IvCdnYoiO3M6MToidSI7czo0OiLwnZ6EIjtzOjE6InUiO3M6NDoi8J2eviI7czoxOiJ1IjtzOjI6ItW9IjtzOjE6InUiO3M6NDoi8JCTtiI7czoxOiJ1IjtzOjQ6IvCRo5giO3M6MToidSI7czozOiLiiKoiO3M6MToiVSI7czozOiLii4MiO3M6MToiVSI7czo0OiLwnZCUIjtzOjE6IlUiO3M6NDoi8J2RiCI7czoxOiJVIjtzOjQ6IvCdkbwiO3M6MToiVSI7czo0OiLwnZKwIjtzOjE6IlUiO3M6NDoi8J2TpCI7czoxOiJVIjtzOjQ6IvCdlJgiO3M6MToiVSI7czo0OiLwnZWMIjtzOjE6IlUiO3M6NDoi8J2WgCI7czoxOiJVIjtzOjQ6IvCdlrQiO3M6MToiVSI7czo0OiLwnZeoIjtzOjE6IlUiO3M6NDoi8J2YnCI7czoxOiJVIjtzOjQ6IvCdmZAiO3M6MToiVSI7czo0OiLwnZqEIjtzOjE6IlUiO3M6Mjoi1Y0iO3M6MToiVSI7czozOiLhiIAiO3M6MToiVSI7czo0OiLwkJOOIjtzOjE6IlUiO3M6Mzoi4ZGMIjtzOjE6IlUiO3M6Mzoi6pO0IjtzOjE6IlUiO3M6NDoi8Ja9giI7czoxOiJVIjtzOjQ6IvCRorgiO3M6MToiVSI7czozOiLiiKgiO3M6MToidiI7czozOiLii4EiO3M6MToidiI7czozOiLvvZYiO3M6MToidiI7czozOiLihbQiO3M6MToidiI7czo0OiLwnZCvIjtzOjE6InYiO3M6NDoi8J2RoyI7czoxOiJ2IjtzOjQ6IvCdkpciO3M6MToidiI7czo0OiLwnZOLIjtzOjE6InYiO3M6NDoi8J2TvyI7czoxOiJ2IjtzOjQ6IvCdlLMiO3M6MToidiI7czo0OiLwnZWnIjtzOjE6InYiO3M6NDoi8J2WmyI7czoxOiJ2IjtzOjQ6IvCdl48iO3M6MToidiI7czo0OiLwnZiDIjtzOjE6InYiO3M6NDoi8J2YtyI7czoxOiJ2IjtzOjQ6IvCdmasiO3M6MToidiI7czo0OiLwnZqfIjtzOjE6InYiO3M6Mzoi4bSgIjtzOjE6InYiO3M6Mjoizr0iO3M6MToidiI7czo0OiLwnZuOIjtzOjE6InYiO3M6NDoi8J2ciCI7czoxOiJ2IjtzOjQ6IvCdnYIiO3M6MToidiI7czo0OiLwnZ28IjtzOjE6InYiO3M6NDoi8J2etiI7czoxOiJ2IjtzOjI6ItG1IjtzOjE6InYiO3M6Mjoi15giO3M6MToidiI7czo0OiLwkZyGIjtzOjE6InYiO3M6Mzoi6q6pIjtzOjE6InYiO3M6NDoi8JGjgCI7czoxOiJ2IjtzOjQ6IvCdiI0iO3M6MToiViI7czoyOiLZpyI7czoxOiJWIjtzOjI6Itu3IjtzOjE6IlYiO3M6Mzoi4oWkIjtzOjE6IlYiO3M6NDoi8J2QlSI7czoxOiJWIjtzOjQ6IvCdkYkiO3M6MToiViI7czo0OiLwnZG9IjtzOjE6IlYiO3M6NDoi8J2SsSI7czoxOiJWIjtzOjQ6IvCdk6UiO3M6MToiViI7czo0OiLwnZSZIjtzOjE6IlYiO3M6NDoi8J2VjSI7czoxOiJWIjtzOjQ6IvCdloEiO3M6MToiViI7czo0OiLwnZa1IjtzOjE6IlYiO3M6NDoi8J2XqSI7czoxOiJWIjtzOjQ6IvCdmJ0iO3M6MToiViI7czo0OiLwnZmRIjtzOjE6IlYiO3M6NDoi8J2ahSI7czoxOiJWIjtzOjI6ItG0IjtzOjE6IlYiO3M6Mzoi4rS4IjtzOjE6IlYiO3M6Mzoi4Y+ZIjtzOjE6IlYiO3M6Mzoi4ZCvIjtzOjE6IlYiO3M6Mzoi6pufIjtzOjE6IlYiO3M6Mzoi6pOmIjtzOjE6IlYiO3M6NDoi8Ja8iCI7czoxOiJWIjtzOjQ6IvCRoqAiO3M6MToiViI7czo0OiLwkJSdIjtzOjE6IlYiO3M6Mjoiya8iO3M6MToidyI7czo0OiLwnZCwIjtzOjE6InciO3M6NDoi8J2RpCI7czoxOiJ3IjtzOjQ6IvCdkpgiO3M6MToidyI7czo0OiLwnZOMIjtzOjE6InciO3M6NDoi8J2UgCI7czoxOiJ3IjtzOjQ6IvCdlLQiO3M6MToidyI7czo0OiLwnZWoIjtzOjE6InciO3M6NDoi8J2WnCI7czoxOiJ3IjtzOjQ6IvCdl5AiO3M6MToidyI7czo0OiLwnZiEIjtzOjE6InciO3M6NDoi8J2YuCI7czoxOiJ3IjtzOjQ6IvCdmawiO3M6MToidyI7czo0OiLwnZqgIjtzOjE6InciO3M6Mzoi4bShIjtzOjE6InciO3M6Mjoi0aEiO3M6MToidyI7czoyOiLUnSI7czoxOiJ3IjtzOjI6ItWhIjtzOjE6InciO3M6NDoi8JGciiI7czoxOiJ3IjtzOjQ6IvCRnI4iO3M6MToidyI7czo0OiLwkZyPIjtzOjE6InciO3M6Mzoi6q6DIjtzOjE6InciO3M6NDoi8JGjryI7czoxOiJXIjtzOjQ6IvCRo6YiO3M6MToiVyI7czo0OiLwnZCWIjtzOjE6IlciO3M6NDoi8J2RiiI7czoxOiJXIjtzOjQ6IvCdkb4iO3M6MToiVyI7czo0OiLwnZKyIjtzOjE6IlciO3M6NDoi8J2TpiI7czoxOiJXIjtzOjQ6IvCdlJoiO3M6MToiVyI7czo0OiLwnZWOIjtzOjE6IlciO3M6NDoi8J2WgiI7czoxOiJXIjtzOjQ6IvCdlrYiO3M6MToiVyI7czo0OiLwnZeqIjtzOjE6IlciO3M6NDoi8J2YniI7czoxOiJXIjtzOjQ6IvCdmZIiO3M6MToiVyI7czo0OiLwnZqGIjtzOjE6IlciO3M6Mjoi1JwiO3M6MToiVyI7czozOiLhjrMiO3M6MToiVyI7czozOiLhj5QiO3M6MToiVyI7czozOiLqk6oiO3M6MToiVyI7czozOiLhma4iO3M6MToieCI7czoyOiLDlyI7czoxOiJ4IjtzOjM6IuKkqyI7czoxOiJ4IjtzOjM6IuKkrCI7czoxOiJ4IjtzOjM6IuKoryI7czoxOiJ4IjtzOjM6Iu+9mCI7czoxOiJ4IjtzOjM6IuKFuSI7czoxOiJ4IjtzOjQ6IvCdkLEiO3M6MToieCI7czo0OiLwnZGlIjtzOjE6IngiO3M6NDoi8J2SmSI7czoxOiJ4IjtzOjQ6IvCdk40iO3M6MToieCI7czo0OiLwnZSBIjtzOjE6IngiO3M6NDoi8J2UtSI7czoxOiJ4IjtzOjQ6IvCdlakiO3M6MToieCI7czo0OiLwnZadIjtzOjE6IngiO3M6NDoi8J2XkSI7czoxOiJ4IjtzOjQ6IvCdmIUiO3M6MToieCI7czo0OiLwnZi5IjtzOjE6IngiO3M6NDoi8J2ZrSI7czoxOiJ4IjtzOjQ6IvCdmqEiO3M6MToieCI7czoyOiLRhSI7czoxOiJ4IjtzOjM6IuGVgSI7czoxOiJ4IjtzOjM6IuGVvSI7czoxOiJ4IjtzOjM6IuGZrSI7czoxOiJYIjtzOjM6IuKVsyI7czoxOiJYIjtzOjQ6IvCQjKIiO3M6MToiWCI7czo0OiLwkaOsIjtzOjE6IlgiO3M6Mzoi77y4IjtzOjE6IlgiO3M6Mzoi4oWpIjtzOjE6IlgiO3M6NDoi8J2QlyI7czoxOiJYIjtzOjQ6IvCdkYsiO3M6MToiWCI7czo0OiLwnZG/IjtzOjE6IlgiO3M6NDoi8J2SsyI7czoxOiJYIjtzOjQ6IvCdk6ciO3M6MToiWCI7czo0OiLwnZSbIjtzOjE6IlgiO3M6NDoi8J2VjyI7czoxOiJYIjtzOjQ6IvCdloMiO3M6MToiWCI7czo0OiLwnZa3IjtzOjE6IlgiO3M6NDoi8J2XqyI7czoxOiJYIjtzOjQ6IvCdmJ8iO3M6MToiWCI7czo0OiLwnZmTIjtzOjE6IlgiO3M6NDoi8J2ahyI7czoxOiJYIjtzOjM6IuqesyI7czoxOiJYIjtzOjI6Is6nIjtzOjE6IlgiO3M6NDoi8J2aviI7czoxOiJYIjtzOjQ6IvCdm7giO3M6MToiWCI7czo0OiLwnZyyIjtzOjE6IlgiO3M6NDoi8J2drCI7czoxOiJYIjtzOjQ6IvCdnqYiO3M6MToiWCI7czozOiLisqwiO3M6MToiWCI7czoyOiLQpSI7czoxOiJYIjtzOjM6IuK1nSI7czoxOiJYIjtzOjM6IuGatyI7czoxOiJYIjtzOjM6IuqTqyI7czoxOiJYIjtzOjQ6IvCQipAiO3M6MToiWCI7czo0OiLwkIq0IjtzOjE6IlgiO3M6NDoi8JCMlyI7czoxOiJYIjtzOjQ6IvCQlKciO3M6MToiWCI7czoyOiLJoyI7czoxOiJ5IjtzOjM6IuG2jCI7czoxOiJ5IjtzOjM6Iu+9mSI7czoxOiJ5IjtzOjQ6IvCdkLIiO3M6MToieSI7czo0OiLwnZGmIjtzOjE6InkiO3M6NDoi8J2SmiI7czoxOiJ5IjtzOjQ6IvCdk44iO3M6MToieSI7czo0OiLwnZSCIjtzOjE6InkiO3M6NDoi8J2UtiI7czoxOiJ5IjtzOjQ6IvCdlaoiO3M6MToieSI7czo0OiLwnZaeIjtzOjE6InkiO3M6NDoi8J2XkiI7czoxOiJ5IjtzOjQ6IvCdmIYiO3M6MToieSI7czo0OiLwnZi6IjtzOjE6InkiO3M6NDoi8J2ZriI7czoxOiJ5IjtzOjQ6IvCdmqIiO3M6MToieSI7czoyOiLKjyI7czoxOiJ5IjtzOjM6IuG7vyI7czoxOiJ5IjtzOjM6IuqtmiI7czoxOiJ5IjtzOjI6Is6zIjtzOjE6InkiO3M6Mzoi4oS9IjtzOjE6InkiO3M6NDoi8J2bhCI7czoxOiJ5IjtzOjQ6IvCdm74iO3M6MToieSI7czo0OiLwnZy4IjtzOjE6InkiO3M6NDoi8J2dsiI7czoxOiJ5IjtzOjQ6IvCdnqwiO3M6MToieSI7czoyOiLRgyI7czoxOiJ5IjtzOjI6ItKvIjtzOjE6InkiO3M6Mzoi4YOnIjtzOjE6InkiO3M6NDoi8JGjnCI7czoxOiJ5IjtzOjM6Iu+8uSI7czoxOiJZIjtzOjQ6IvCdkJgiO3M6MToiWSI7czo0OiLwnZGMIjtzOjE6IlkiO3M6NDoi8J2SgCI7czoxOiJZIjtzOjQ6IvCdkrQiO3M6MToiWSI7czo0OiLwnZOoIjtzOjE6IlkiO3M6NDoi8J2UnCI7czoxOiJZIjtzOjQ6IvCdlZAiO3M6MToiWSI7czo0OiLwnZaEIjtzOjE6IlkiO3M6NDoi8J2WuCI7czoxOiJZIjtzOjQ6IvCdl6wiO3M6MToiWSI7czo0OiLwnZigIjtzOjE6IlkiO3M6NDoi8J2ZlCI7czoxOiJZIjtzOjQ6IvCdmogiO3M6MToiWSI7czoyOiLOpSI7czoxOiJZIjtzOjI6Is+SIjtzOjE6IlkiO3M6NDoi8J2avCI7czoxOiJZIjtzOjQ6IvCdm7YiO3M6MToiWSI7czo0OiLwnZywIjtzOjE6IlkiO3M6NDoi8J2dqiI7czoxOiJZIjtzOjQ6IvCdnqQiO3M6MToiWSI7czozOiLisqgiO3M6MToiWSI7czoyOiLQoyI7czoxOiJZIjtzOjI6ItKuIjtzOjE6IlkiO3M6Mzoi4Y6pIjtzOjE6IlkiO3M6Mzoi4Y69IjtzOjE6IlkiO3M6Mzoi6pOsIjtzOjE6IlkiO3M6NDoi8Ja9gyI7czoxOiJZIjtzOjQ6IvCRoqQiO3M6MToiWSI7czo0OiLwkIqyIjtzOjE6IlkiO3M6NDoi8J2QsyI7czoxOiJ6IjtzOjQ6IvCdkaciO3M6MToieiI7czo0OiLwnZKbIjtzOjE6InoiO3M6NDoi8J2TjyI7czoxOiJ6IjtzOjQ6IvCdlIMiO3M6MToieiI7czo0OiLwnZS3IjtzOjE6InoiO3M6NDoi8J2VqyI7czoxOiJ6IjtzOjQ6IvCdlp8iO3M6MToieiI7czo0OiLwnZeTIjtzOjE6InoiO3M6NDoi8J2YhyI7czoxOiJ6IjtzOjQ6IvCdmLsiO3M6MToieiI7czo0OiLwnZmvIjtzOjE6InoiO3M6NDoi8J2aoyI7czoxOiJ6IjtzOjM6IuG0oiI7czoxOiJ6IjtzOjM6IuqukyI7czoxOiJ6IjtzOjQ6IvCRo4QiO3M6MToieiI7czo0OiLwkIu1IjtzOjE6IloiO3M6NDoi8JGjpSI7czoxOiJaIjtzOjM6Iu+8uiI7czoxOiJaIjtzOjM6IuKEpCI7czoxOiJaIjtzOjM6IuKEqCI7czoxOiJaIjtzOjQ6IvCdkJkiO3M6MToiWiI7czo0OiLwnZGNIjtzOjE6IloiO3M6NDoi8J2SgSI7czoxOiJaIjtzOjQ6IvCdkrUiO3M6MToiWiI7czo0OiLwnZOpIjtzOjE6IloiO3M6NDoi8J2WhSI7czoxOiJaIjtzOjQ6IvCdlrkiO3M6MToiWiI7czo0OiLwnZetIjtzOjE6IloiO3M6NDoi8J2YoSI7czoxOiJaIjtzOjQ6IvCdmZUiO3M6MToiWiI7czo0OiLwnZqJIjtzOjE6IloiO3M6MjoizpYiO3M6MToiWiI7czo0OiLwnZqtIjtzOjE6IloiO3M6NDoi8J2bpyI7czoxOiJaIjtzOjQ6IvCdnKEiO3M6MToiWiI7czo0OiLwnZ2bIjtzOjE6IloiO3M6NDoi8J2elSI7czoxOiJaIjtzOjM6IuGPgyI7czoxOiJaIjtzOjM6IuqTnCI7czoxOiJaIjtzOjQ6IvCRoqkiO3M6MToiWiI7czoyOiLGvyI7czoxOiL+IjtzOjI6Is+4IjtzOjE6Iv4iO3M6Mjoiz7ciO3M6MToi3iI7czo0OiLwkJOEIjtzOjE6It4iO30=";

    private static function need_skip($string, $i)
    {
        $chars = " @\r\n\t";
        if (isset($string[$i]) && strpos($chars, $string[$i]) !== false) {
            $i++;
            return $i;
        }
        return false;
    }

    private static function match_shortopen_tag($string, $i, $needle, $j)
    {
        $pos_needle = false;
        $pos_string = false;
        if ((isset($needle[$j - 2]) && isset($string[$i - 2]))
            && (($needle[$j - 2] == '<') && ($string[$i - 2] == '<'))
            && (isset($needle[$j - 1]) && isset($string[$i - 1]))
            && ($needle[$j - 1] == '?' && $string[$i - 1] == '?')
        ) {
            $pos_needle = $j;
            $pos_string = $i;
        }
        if ($pos_needle && (isset($needle[$pos_needle]) && $needle[$pos_needle] == 'p')
            && (isset($needle[$pos_needle + 1]) && $needle[$pos_needle + 1] == 'h')
            && (isset($needle[$pos_needle + 2]) && $needle[$pos_needle + 2] == 'p')
        ) {
            $pos_needle = $pos_needle + 3;
        }

        if ($pos_string && (isset($string[$pos_string]) && $string[$pos_string] == 'p')
            && (isset($string[$pos_string + 1]) && $string[$pos_string + 1] == 'h')
            && (isset($string[$pos_string + 2]) && $string[$pos_string + 2] == 'p')
        ) {

            $pos_string = $pos_string + 3;
        }
        return [$pos_needle, $pos_string];
    }

    public static function strip_whitespace($string, $save_length = false)
    {
        if (!$save_length) {
            StringToStreamWrapper::prepare($string);
            return @php_strip_whitespace(StringToStreamWrapper::WRAPPER_NAME . '://');
        } else {
            $string = preg_replace_callback('~'
                . '(\'(?:.*?[^\\\\])??(?:(?:\\\\\\\\)+)?+\')'       //match all '' strings to exclude it from comments
                . '|("(?:.*?[^\\\\])??(?:(?:\\\\\\\\)+)?+")'        //match all "" strings to exclude it from comments
                . '|(//.*?(?:[\n\r]|$))'                             //match // comments
                . '|(/\*(?:.*?)\*/)'                                //match /**/ comments
                . '|(#[^\n\r]*[\n\r])'                              //match # comments
                . '~mis', function($m) {

                if (isset($m[1]) && !empty($m[1])) {
                    return $m[1];
                }
                if (isset($m[2]) && !empty($m[2])) {
                    return $m[2];
                }
                if ((isset($m[3]) && !empty($m[3])) || (isset($m[4]) && !empty($m[4])) || (isset($m[5]) && !empty($m[5]))) {
                    if (isset($m[3]) && substr(trim($m[3]), -2, 2) == '?>') {
                        return (str_repeat(' ', strlen($m[0]) - 2) . '?>');
                    } else {
                        return str_repeat(' ', strlen($m[0]));
                    }
                }
            }, $string);
            return $string;
        }
    }

    public static function normalize($string, $save_length = false)
    {
        $search  = array( ' ;', ' =', ' ,', ' .', ' (', ' )', ' {', ' }', '; ', '= ', ', ', '. '
            , '( ', '( ', '{ ', '} ', ' !', ' >', ' <', ' _', '_ ', '< ',  '> ', ' $', ' %', '% '
            , '# ', ' #', '^ ', ' ^', ' &', '& ', ' ?', '? ');
        $replace = array(  ';',  '=',  ',',  '.',  '(',  ')',  '{',  '}', ';',  '=',  ',',  '.'
            ,  '(',   ')', '{',  '}',   '!',  '>',  '<',  '_', '_',  '<',   '>',   '$',  '%', '%'
            ,  '#',   '#', '^',   '^',  '&', '&',   '?', '?');

        if (!$save_length) {
            $string = str_replace('@', '', $string);
            $string = preg_replace('~\s+~smi', ' ', $string);
            $string = str_replace($search, $replace, $string);
        }

        $string = preg_replace_callback('~\bchr\(\s*([0-9a-fA-FxX]+)\s*\)~', function($m) use ($save_length) {
            if ($save_length) {
                return str_pad("'" . @chr(intval($m[1], 0)) . "'", strlen($m[0]), ' ');
            } else {
                return "'" . @chr(intval($m[1], 0)) . "'";
            }
        }, $string);

        for ($i = 0; $i < 2; $i++) {
            $string = preg_replace_callback('~%([0-9a-fA-F]{2})~', function($m) use ($save_length) {
                if ($save_length) {
                    return str_pad(chr(@hexdec($m[1])), strlen($m[0]), ' ');
                } else {
                    return @chr(hexdec($m[1]));
                }
            }, $string);
        }

        $string = preg_replace_callback('/\&[#\w]{2,20};/i', function($m) use ($save_length) {
            if ($save_length) {
                return str_pad(@html_entity_decode($m[0], ENT_QUOTES | ENT_HTML5), strlen($m[0]), ' ');
            } else {
                return @html_entity_decode($m[0], ENT_QUOTES | ENT_HTML5);
            }
        }, $string);

        $string = preg_replace_callback('/\\\\x([a-fA-F0-9]{1,2})/i', function($m) use ($save_length) {
            if ($save_length) {
                return str_pad(chr(@hexdec($m[1])), strlen($m[0]), ' ');
            } else {
                return @chr(hexdec($m[1]));
            }
        }, $string);

        $string = preg_replace_callback('/\\\\([0-9]{1,3})/i', function($m) use ($save_length) {
            if ($save_length) {
                return str_pad(@chr(octdec($m[1])), strlen($m[0]), ' ');
            } else {
                return @chr(octdec($m[1]));
            }
        }, $string);

        $string = preg_replace_callback('/[\'"]\s*?\.+\s*?[\'"]/smi', function($m) use ($save_length) {
            if ($save_length) {
                return str_repeat(' ', strlen($m[0]));
            } else {
                return '';
            }
        }, $string);

        $string = preg_replace_callback('/[\'"]\s*?\++\s*?[\'"]/smi', function($m) use ($save_length) {
            if ($save_length) {
                return str_repeat(' ', strlen($m[0]));
            } else {
                return '';
            }
        }, $string);

        $string = preg_replace_callback('~<title[^>]{0,99}>\s*\K(.{0,300}?)(?=<\/title>)~mis', function($m) use ($save_length) {
            if(preg_match('~(?:\w[^\x00-\x7F]{1,9}|[^\x00-\x7F]{1,9}\w)~', $m[1])) {
                return self::HomoglyphNormalize($m[1]);
            }
            return $m[1];
        }, $string);

        if (!$save_length) {
            $string = str_replace('<?php', '<?php ', $string);
            $string = preg_replace('~\s+~', ' ', $string);
        }

        return $string;
    }

    public static function string_pos($string, $needle)
    {
        $j      = 0;
        $skip   = false;
        $start  = false;
        $end    = 0;
        $last_tag = [false, false];

        $string = self::strip_whitespace($string, true);
        $string = self::normalize($string, true);

        $needle = self::normalize($needle, true);

        for ($i = 0, $iMax = strlen($string); $i < $iMax; $i++) {
            if(trim($string[$i]) === '' && trim($needle[$j]) === '') {
                $string[$i] = $needle[$j] = ' ';
            }
            if ($string[$i] == $needle[$j]) {
                if ($j == 0) {
                    $start = $i;
                } elseif ($j == strlen($needle) - 1) {
                    $end = $i;
                    return [$start, $end];
                }
                $j++;
            } else {
                $match_php_tag = self::match_shortopen_tag($string, $i, $needle, $j);
                if ($match_php_tag[0] !== false && ($last_tag[0] !== $match_php_tag[0])) {
                    $j = $match_php_tag[0];
                }
                if ($match_php_tag[1] !== false && ($last_tag[1] !== $match_php_tag[1])) {
                    $i = $match_php_tag[1] - 1;
                }
                $last_tag = $match_php_tag;
                if ($match_php_tag[0] !== false || ($match_php_tag[1] !== false && (!empty($last_tag)))) {
                    continue;
                }
                $skip = self::need_skip($string, $i);
                if ($skip !== false && $start !== false) {
                    $i = $skip - 1;
                } else {
                    $j = 0;
                }
            }
        }
        return false;
    }

    private static function HomoglyphNormalize($str)
    {
        if (!is_array(self::$confusables)) {
            self::$confusables = @unserialize(@base64_decode(self::$confusables));
        }
        return str_replace(array_keys(self::$confusables), array_values(self::$confusables), $str);
    }
}


class Encoding
{
    // Unicode BOM is U+FEFF, but after encoded, it will look like this.

    const UTF32_BIG_ENDIAN_BOM = "\x00\x00\xFE\xFF";
    const UTF32_LITTLE_ENDIAN_BOM = "\xFF\xFE\x00\x00";
    const UTF16_BIG_ENDIAN_BOM = "\xFE\xFF";
    const UTF16_LITTLE_ENDIAN_BOM = "\xFF\xFE";
    const UTF8_BOM = "\xEF\xBB\xBF";

    public static function detectUTFEncoding($text)
    {
        $first2 = substr($text, 0, 2);
        $first3 = substr($text, 0, 3);
        $first4 = substr($text, 0, 4);

        if ($first3 == self::UTF8_BOM) {
            return 'UTF-8';
        } elseif ($first4 == self::UTF32_BIG_ENDIAN_BOM) {
            return 'UTF-32BE';
        } elseif ($first4 == self::UTF32_LITTLE_ENDIAN_BOM) {
            return 'UTF-32LE';
        } elseif ($first2 == self::UTF16_BIG_ENDIAN_BOM) {
            return 'UTF-16BE';
        } elseif ($first2 == self::UTF16_LITTLE_ENDIAN_BOM) {
            return 'UTF-16LE';
        }
        return false;
    }

    public static function iconvSupported()
    {
        return (function_exists('iconv') && is_callable('iconv'));
    }

    public static function convertToCp1251($from, $str)
    {
        $ret = @iconv($from, 'CP1251//TRANSLIT', $str);
        if ($ret === false) {
            $ret = @iconv($from, 'CP1251//IGNORE', $str);
        }
        return $ret;
    }

    public static function convertToUTF8($from, $str)
    {
        return @iconv($from, 'UTF-8//IGNORE', $str);
    }
}

/**
 * Class RapidScanStorageRecord.
 *
 * Implements db record for RapidScan
 */
class RapidScanStorageRecord
{
    const WHITE = 1; // white listed file in cloud db
    const BLACK = 6; // black listed file in cloud db
    const DUAL_USE = 2; // dual used listed file in cloud db
    const UNKNOWN = 3; // unknown file --> file not listed in cloud db
    const HEURISTIC = 4; //detected as heuristic
    const CONFLICT = 5; // we have filename hashing conflict for this file
    const NEWFILE = 0; // this is a new file (or content changed)
    const RX_MALWARE = 7; // detected as malware by rx scan
    const RX_SUSPICIOUS = 8; // detected as suspicious by rx scan
    const RX_GOOD = 9; // detected as good by rx scan

    /**
     * @var string;
     */
    private $filename;
    /**
     * @var int
     */
    private $key;
    /**
     * @var int
     */
    private $updated_ts;
    /**
     * @var int
     */
    private $verdict;
    /**
     * @var string
     */
    private $sha2;
    /**
     * @var string
     */
    private $signature = '';
    /**
     * @var string
     */
    private $snippet = '';

    /**
     * RapidScanStorageRecord constructor.
     * @param $key
     * @param $updated_ts
     * @param int $verdict
     * @param $sha2
     * @param string $signature
     */
    private function __construct($key, $updated_ts, $verdict, $sha2, $signature, $filename, $snippet)
    {
        $this->filename = $filename;
        $this->key = $key;
        $this->updated_ts = $updated_ts;
        $this->verdict = $verdict;
        $this->sha2 = $sha2;
        $this->snippet = $snippet;
        if ($signature!=='') {
            $this->signature = self::padTo10Bytes($signature);
        }
    }

    /**
     * Create db storage record from file
     * @param $filename
     * @param string $signature
     * @param int $verdict
     * @return RapidScanStorageRecord
     * @throws Exception
     */
    public static function fromFile($file, $signature = '', $verdict = self::UNKNOWN, $snippet = '')
    {
        $filename = '';
        $stat = [];
        $inode = 0;
        $ctime = 0;
        $mtime = 0;

        if (is_string($file) && file_exists($file)) {
            $filename = $file;
            $stat = stat($filename);
            $inode = $stat['ino'];
            $ctime = $stat['ctime'];
            $mtime = $stat['mtime'];
        } else if ($file instanceof FileInfo && file_exists($file->getFilename())){
            $filename = $file->getFilename();
            $inode = $file->getInode();
            $ctime = $file->getCreated();
            $mtime = $file->getModified();
        }
        if (!file_exists($filename)) {
            throw new Exception('File \'' . $filename . '\' doesn\'t exists.');
        }


        $key = (int)((string)self::fileNameHash($filename) . (string)$inode);
        $updated_ts = max($mtime, $ctime);
        $sha2 = '';
        if (!$verdict) {
            $verdict = self::NEWFILE;
        }
        if ($signature!=='') {
            $signature = self::padTo10Bytes($signature);
        }
        return new self($key, $updated_ts, $verdict, $sha2, $signature, $filename, $snippet);
    }

    /**
     * @param $array
     * @return RapidScanStorageRecord
     */
    public static function fromArray($array)
    {
        $key = $array['key'];
        $updated_ts = $array['updated_ts'];
        $sha2 = hex2bin($array['sha2']);
        $verdict = $array['verdict'];
        $signature = $array['signature'];
        return new self($key, $updated_ts, $verdict, $sha2, $signature, '', '');
    }

    /**
     * @return array
     */
    public function toArray()
    {
        $array['key'] = $this->key;
        $array['updated_ts'] = $this->updated_ts;
        $array['verdict'] = $this->verdict;
        $array['sha2'] = bin2hex($this->sha2);
        $array['signature'] = $this->signature;
        return $array;
    }

    /**
     * @return array
     */
    public function calcSha2()
    {
        $this->sha2 = hash('sha256', file_get_contents($this->filename), true);
    }

    /**
     * @param $verdict
     */
    public function setVerdict($verdict)
    {
        $this->verdict = $verdict;
    }

    /**
     * @return int
     */
    public function getKey()
    {
        return $this->key;
    }

    /**
     * @param $signature
     */
    public function setSignature($signature)
    {
        if ($signature!=='') {
            $this->signature = self::padTo10Bytes($signature);
        }
    }

    /**
     * Unpack bytestring $value to RapidScanStorageRecord
     * @param $hash
     * @param $value
     * @return RapidScanStorageRecord
     */
    public static function unpack($hash, $value)
    {
        // pack format
        // 8 bytes timestamp
        // 1 byte verdict
        // 32 bytes sha2
        // 10 bytes signature (only for BLACK, DUAL_USE, RX_MALWARE, RX_SUSPICIOUS)
        // note - we will hold bloomfilter for file later on for those that are WHITE
        // it will be used to detect installed apps

        $signature = '';
        $timestamp = unpack("l", substr($value, 0, 8));
        $updated_ts = array_pop($timestamp);
        $verdict = $value[8];
        $verdict = (int)bin2hex($verdict);
        $sha2 = substr($value, 9, 32);
        if (in_array($verdict, array(self::BLACK, self::DUAL_USE, self::RX_MALWARE, self::RX_SUSPICIOUS))) {
            $signature = substr($value, 41, 10);  # 10 bytes signature string
        }
        if (strlen($value) > 51) {
            $snippet = substr($value, 51);
        } else {
            $snippet = '';
        }
        return new self($hash, $updated_ts, $verdict, $sha2, $signature, '', $snippet);
    }

    /**
     * Pack RapidScanStorageRecord to bytestring to save in db
     * @return string
     */
    public function pack()
    {
        $signature = '';
        if (strlen($this->signature) > 0) {
            $signature = $this->signature;
        }
        return (($this->updated_ts < 0) ? str_pad(pack("l", $this->updated_ts), 8, "\xff") : str_pad(pack("l", $this->updated_ts), 8, "\x00")) . pack("c", $this->verdict) . $this->sha2 . $signature . $this->snippet;
    }

    /**
     * Hash function for create hash of full filename to store in db as key
     * @param $str
     * @return int
     */
    private static function fileNameHash($str)
    {
        for ($i = 0, $h = 5381, $len = strlen($str); $i < $len; $i++) {
            $h = (($h << 5) + $h + ord($str[$i])) & 0x7FFFFFFF;
        }
        return $h;
    }

    /**
     * Convert string to utf-8 and fitting/padding it to 10 bytes
     * @param $str
     * @return string
     */
    private static function padTo10Bytes($str)
    {
        # convert string to bytes in UTF8, and add 0 bytes to pad it to 10
        # cut to 10 bytes of necessary
        $str = utf8_encode($str);
        $len = strlen($str);
        if ($len < 10) {
            $str = str_pad($str, 10, "\x00");
        } elseif ($len > 10) {
            $str = substr($str, 0, 10);
        }
        return $str;
    }

    /**
     * @return int
     */
    public function getUpdatedTs()
    {
        return $this->updated_ts;
    }

    /**
     * @return int
     */
    public function getVerdict()
    {
        return $this->verdict;
    }

    /**
     * @return string
     */
    public function getSha2()
    {
        return $this->sha2;
    }

    /**
     * @return string
     */
    public function getSignature()
    {
        return $this->signature;
    }

    /**
     * @return string
     */
    public function getFilename()
    {
        return $this->filename;
    }

    /**
     * @param $filename
     */
    public function setFilename($filename)
    {
        $this->filename = $filename;
    }

    /**
     * @return string
     */
    public function getSnippet()
    {
        return $this->snippet;
    }

    /**
     * @param $filename
     */
    public function setSnippet($snippet)
    {
        $this->snippet = $snippet;
    }
}


/**
 * Interface RapidScanStorage implements class to work with RapidScan db
 * @package Aibolit\Lib\Scantrack
 */
class RapidScanStorage
{
    /**
     * @var string
     */
    protected $old_dir;
    /**
     * @var string
     */
    protected $new_dir;
    /**
     * @var resource
     */
    protected $new_db;
    /**
     * @var resource
     */
    protected $old_db;
    /**
     * @var resource
     */
    private $wb;
    /**
     * @var int
     */
    public $batch_count;

    /**
     * RapidScanStorage constructor.
     * @param $base - folder where db located
     */
    public function __construct($base)
    {
        if(!is_dir($base) && !mkdir($base) && !is_dir($base)) {
            throw new Exception(sprintf('Directory "%s" was not created', $base));
        }

        $this->old_dir = $base . '/current';
        $this->new_dir = $base . '/new';
        $options = array('create_if_missing' => true, 'compression'=> LEVELDB_NO_COMPRESSION);

        $this->new_db = new LevelDB($this->new_dir, $options);
        $this->old_db = new LevelDB($this->old_dir, $options);

        $this->wb = NULL;  // will be use to track writing to batch
        $this->batch_count = 0;
    }

    /**
     * @param RapidScanStorageRecord $record
     * @return bool
     */
    public function put(RapidScanStorageRecord $record)
    {
        $this->startBatch();
        $this->batch_count++;
        $value = $this->wb->put($record->getKey(), $record->pack());
        return $value;
    }

    /**
     * @param $hash
     * @return bool|RapidScanStorageRecord
     */
    public function getNew($hash)
    {
        $value = $this->new_db->get($hash);
        if($value) {
            $return = RapidScanStorageRecord::unpack($hash, $value);
            return $return;
        }
        return false;
    }

    /**
     * @param $hash
     * @return bool|RapidScanStorageRecord
     */
    public function getOld($hash)
    {
        $value = $this->old_db->get($hash);
        if($value) {
            $return = RapidScanStorageRecord::unpack($hash, $value);
            return $return;
        }
        return false;
    }

    /**
     * @param $hash
     * @return bool
     */
    public function delete($hash)
    {
        $return = $this->new_db->delete($hash);
        return $return;
    }

    /**
     * Close db, remove old db, move new to a new space
     */
    public function finish()
    {
        $this->old_db->close();
        $this->flushBatch();
        $this->new_db->close();

        self::rmtree($this->old_dir);
        rename($this->new_dir, $this->old_dir);
    }

    /**
     * Start batch operations
     */
    private function startBatch()
    {
        if(!$this->wb) {
            $this->wb = new LevelDBWriteBatch();
            $this->batch_count = 0;
        }
    }

    /**
     *  write all data in a batch, reset batch
     */
    public function flushBatch()
    {
        if ($this->wb) {
            $this->new_db->write($this->wb);
            $this->batch_count = 0;
            $this->wb = NULL;
        }
    }
    /**
     * Helper function to remove folder tree
     * @param $path
     */
    public static function rmTree($path)
    {
        if (is_dir($path)) {
            foreach (scandir($path) as $name) {
                if (in_array($name, array('.', '..'))) {
                    continue;
                }
                $subpath = $path.DIRECTORY_SEPARATOR . $name;
                self::rmTree($subpath);
            }
            rmdir($path);
        } else {
            unlink($path);
        }
    }
}

/**
 * For work with Cloud Assisted Storage
 * @package Aibolit\Lib\Scantrack
 */
class CloudAssistedStorage
{
    private $db_filepath = '';

    public function __construct($folder)
    {
        if(!is_dir($folder) && !mkdir($folder) && !is_dir($folder)) {
            throw new Exception(sprintf('Directory "%s" was not created', $folder));
        }
        $this->db_filepath = $folder . DIRECTORY_SEPARATOR . 'cloud_assisted_verdicts.json';
    }

    public function getList()
    {
        if (!file_exists($this->db_filepath)) {
            return [];
        }
        $content = file_get_contents($this->db_filepath);
        if (!$content) {
            return [];
        }
        $list = json_decode($content, true);
        if (!$list || !is_array($list)) {
            return [];
        }
        return $list;
    }

    public function putList($list)
    {
        file_put_contents($this->db_filepath, json_encode($list));
    }
    
    public function delete()
    {
        if (!file_exists($this->db_filepath)) {
            return;
        }
        unlink($this->db_filepath);
    }
}

/**
 * This is actual class that does account level scan
 * and remembers the state of scan
 * Class RapidAccountScan
 * @package Aibolit\Lib\Scantrack
 */
class RapidAccountScan
{
    const RESCAN_ALL        = 0; // mode of operation --> rescan all files that are not white/black/dual_use using cloud scanner & regex scanner
    const RESCAN_NONE       = 1; // don't re-scan any files that we already scanned
    const RESCAN_SUSPICIOUS = 2; // only re-scan suspicious files using only regex scanner

    const MAX_BATCH     = 1000; // max files to write in a db batch write
    const MAX_TO_SCAN   = 1000; // max files to scan using cloud/rx scanner at a time

    private $db;
    private $cas_db;
    private $cas_list = [];
    private $vars = null;
    private $scanlist;
    private $collisions;
    private $processedFiles;
    private $rescan_count = 0;
    private $counter = 0;
    private $str_error = false;
    private $scanner = null;

    /**
     * RapidAccountScan constructor.
     * @param RapidScanStorage $rapidScanStorage
     */
    public function __construct($scanner, $rapidScanStorage, $cloudAssistedStorage, &$vars, $counter = 0)
    {
        $this->db = $rapidScanStorage;
        $this->cas_db = $cloudAssistedStorage;
        $this->vars = $vars;
        $this->scanlist = array();
        $this->collisions = array();
        $this->processedFiles = 0;
        $this->counter = $counter;
        $this->scanner = $scanner;
    }

    /**
     * Get str error
     */
    public function getStrError()
    {
        return $this->str_error;
    }

    /**
     * Get count of rescan(regexp) files
     */
    public function getRescanCount()
    {
        return $this->rescan_count;
    }

    /**
     * placeholder for actual regex scan
     * return RX_GOOD, RX_MALWARE, RX_SUSPICIOUS and signature from regex scaner
     * if we got one
     */
    private function regexScan($filename, $i, $vars)
    {
        $this->rescan_count++;
        printProgress(++$this->processedFiles, $filename, $vars);
        $return = $this->scanner->QCR_ScanFile($filename, $vars, null, $i, false);
        return $return;
    }

    /**
     * we will have batch of new files that we will scan
     * here we will write them into db once we scanned them
     * we need to check that there is no conflicts/collisions
     * in names, for that we check for data in db if such filename_hash
     * already exists, but we also keep set of filename_hashes of given
     * batch, to rule out conflicts in current batch as well
     */
    private function writeNew()
    {
        $this->collisions = array();
        foreach ($this->scanlist as $fileinfo) {
            if (in_array($fileinfo->getKey(), $this->collisions) || $this->db->getNew($fileinfo->getKey())) {
                $fileinfo->setVerdict(RapidScanStorageRecord::CONFLICT);
            }
            $this->collisions [] = $fileinfo->getKey();
            $this->db->put($fileinfo);
        }
    }

    /**
     * given a batch do cloudscan
     * @throws \Exception
     */
    private function doCloudScan()
    {
        if (count($this->scanlist) <= 0) {
            return;
        }

        $index_table    = [];
        $blackfiles     = [];
        $sha_list       = [];

        foreach ($this->scanlist as $i => $fileinfo) {
            $sha_list[] = bin2hex($fileinfo->getSha2());
            $index_table[] = $i;
            $fileinfo->setVerdict(RapidScanStorageRecord::UNKNOWN);
        }

        $ca = Factory::instance()->create(CloudAssistedRequest::class, [CLOUD_ASSIST_TOKEN]);

        $white_raw          = [];
        $black_raw          = [];
        $verdicts_black_raw = [];
        
        try {
            list($white_raw, $black_raw, $verdicts_black_raw) = $ca->checkFilesByHash($sha_list);
        } catch (\Exception $e) {
            $this->str_error = $e->getMessage();
        }
        
        $dual = array_intersect($white_raw, $black_raw);

        $black_raw = array_diff($black_raw, $white_raw);

        foreach ($white_raw as $index) {
            $this->scanlist[$index_table[$index]]->setVerdict(RapidScanStorageRecord::WHITE);
        }
        $signatures_db = [];
        foreach ($black_raw as $i => $index) {
            $this->scanlist[$index_table[$index]]->setVerdict(RapidScanStorageRecord::BLACK);
            $signature      = isset($verdicts_black_raw[$i]) ? $verdicts_black_raw[$i] : '';
            $signature_id   = 'c_' . hash('crc32', $signature);
            $signatures_db[$signature_id] = $signature;
            $this->scanlist[$index_table[$index]]->setSignature($signature_id);
            $blackfiles[$this->scanlist[$index_table[$index]]->getFilename()] = [
                'h'         => $sha_list[$index],
                'ts'        => time(),
                'sn'        => $signature,
                'ras_sigid' => $signature_id,
            ];
        }

        $signatures_list = $this->cas_db->getList();
        foreach ($signatures_db as $hash => $sig) {
            $this->cas_list[$hash] = $sig;
            if (isset($signatures_list[$hash])) {
                continue;
            }
            $signatures_list[$hash] = $sig;
        }
        $this->cas_db->putList($signatures_list);
        
        foreach ($dual as $index) {
            $this->scanlist[$index_table[$index]]->setVerdict(RapidScanStorageRecord::DUAL_USE);
            $this->scanlist[$index_table[$index]]->setSignature('DUAL'); //later on we will get sig info from cloud
        }

        // we can now update verdicts in batch for those that we know
        //add entries to report, when needed

        $this->vars->blackFiles = array_merge($this->vars->blackFiles, $blackfiles);

        unset($white_raw, $black_raw, $dual, $sha_list, $index_table);
    }

    /**
     * regex scan a single file, add entry to report if needed
     * @param $fileInfo
     * @param $i
     */
    private function _regexScan($fileInfo, $i, $vars)
    {
        $regex_res = $this->regexScan($fileInfo->getFilename(), $i, $vars);
        if (!is_array($regex_res)) {
            return;
        }
        list($result, $sigId, $snippet) = $regex_res;
        $fileInfo->setVerdict($result);
        if ($result !== RapidScanStorageRecord::RX_GOOD) {
            $fileInfo->setSignature($sigId);
            $fileInfo->setSnippet($snippet);
        }
    }

    /**
     * regex scan batch of files.
     */
    private function doRegexScan($vars)
    {
        foreach ($this->scanlist as $i => $fileinfo) {
            if (!in_array($fileinfo->getVerdict(), array(
                RapidScanStorageRecord::WHITE,
                RapidScanStorageRecord::BLACK,
                RapidScanStorageRecord::DUAL_USE
            ))
            ) {
                $this->_regexScan($fileinfo, $i, $vars);
            }
        }
    }

    private function processScanList($vars)
    {
        $this->doCloudScan();
        $this->doRegexScan($vars);
        $this->writeNew();
        $this->scanlist = [];
    }

    private function scanFile($filename, $rescan, $i, $vars)
    {
        if ($vars->fileinfo !== null) {
            if($filename !== $vars->fileinfo->getFilename()) {
                unset($file);
                $vars->fileinfo = null;
            }
        }
      
        if ($vars->fileinfo == null) {
            $file = new FileInfo($filename, $i);
            $vars->fileinfo = $file;
        }

        $file = $vars->fileinfo;

        if (!file_exists($filename)) {
            return false;
        }
        $file = RapidScanStorageRecord::fromFile($file);

        $old_value = $this->db->getOld($file->getKey());
        $old_mtime = 0;
        if ($old_value) {
            $old_mtime = $old_value->getUpdatedTs();
            if ($file->getUpdatedTs() == $old_mtime) {
                $file = $old_value;
                $file->setFilename($filename);
            }
        }

        if ($file->getVerdict() == RapidScanStorageRecord::UNKNOWN
            || $file->getVerdict() == RapidScanStorageRecord::CONFLICT
            || $file->getUpdatedTs() !== $old_mtime
        ) {
            // these files has changed or we know nothing about them, lets re-calculate sha2
            // and do full scan
            $file->calcSha2();
            $file->setVerdict(RapidScanStorageRecord::NEWFILE);
            $this->scanlist[$i] = $file;
        } elseif ($file->getVerdict() == RapidScanStorageRecord::BLACK) {
            //these files hasn't changed, but need to be reported as they are on one of the lists
            $signature_id   = $file->getSignature();
            $signature      = isset($this->cas_list[$signature_id]) ? $this->cas_list[$signature_id] : '';
            $this->vars->blackFiles[$filename] = [
                'h'         => bin2hex($file->getSha2()),
                'ts'        => time(),
                'sn'        => $signature,
                'ras_sigid' => $signature_id,
            ];
            $this->db->put($file);
        } elseif ($file->getVerdict() == RapidScanStorageRecord::DUAL_USE) {
            $this->db->put($file);
        } elseif (($rescan == self::RESCAN_SUSPICIOUS || $rescan == self::RESCAN_NONE)
            && $file->getVerdict() == RapidScanStorageRecord::RX_MALWARE
        ) {
            //this files were detected as rx malware before, let's report them

            $sigId = trim($file->getSignature(), "\0");

            if (isset($sigId) && isset($vars->signs->_Mnemo[$sigId])) {
                $sigName = $vars->signs->_Mnemo[$sigId];
                $snippet = $file->getSnippet();
                if (strpos($sigName, 'SUS') !== false && AI_EXTRA_WARN) {
                    $vars->warningPHP[] = $i;
                    $vars->warningPHPFragment[] = $snippet;
                    $vars->warningPHPSig[] = $sigId;
                } elseif (strtolower(pathinfo($filename, PATHINFO_EXTENSION)) == 'js') {
                    $vars->criticalJS[] = $i;
                    $vars->criticalJSFragment[] = $snippet;
                    $vars->criticalJSSig[] = $sigId;
                } else {
                    $vars->criticalPHP[] = $i;
                    $vars->criticalPHPFragment[] = $snippet;
                    $vars->criticalPHPSig[] = $sigId;
                }
                $this->scanner->AddResult($vars->fileinfo, $i, $vars);
                $this->db->put($file);
            } else {
                $this->scanlist[$i] = $file;
            }
        } elseif ((
                $rescan == self::RESCAN_ALL
                && in_array($file->getVerdict(), array(
                    RapidScanStorageRecord::RX_SUSPICIOUS,
                    RapidScanStorageRecord::RX_GOOD,
                    RapidScanStorageRecord::RX_MALWARE
                ))
            )
            || (
                $rescan == self::RESCAN_SUSPICIOUS
                && $file->getVerdict() == RapidScanStorageRecord::RX_SUSPICIOUS
            )
        ) {
            //rescan all mode, all none white/black/dual listed files need to be re-scanned fully

            $this->scanlist[$i] = $file;
        } else {
            //in theory -- we should have only white files here...
            $this->db->put($file);
        }

        if (count($this->scanlist) >= self::MAX_TO_SCAN) {
            // our scan list is big enough
            // let's flush db, and scan the list
            $this->db->flushBatch();
            $this->processScanList($vars);
        }

        if ($this->db->batch_count >= self::MAX_BATCH) {
            //we have added many entries to db, time to flush it
            $this->db->flushBatch();
            $this->processScanList($vars);
        }
        unset($file);
        $vars->fileinfo = null;
    }

    public function scan($files, $vars, $rescan = self::RESCAN_SUSPICIOUS)
    {
        $i = 0;
        $this->cas_list = $this->cas_db->getList();
        
        foreach ($files as $filepath) {
            $counter = $this->counter + $i;
            $vars->totalFiles++;
            $this->processedFiles = $counter - $vars->totalFolder - count($this->scanlist);
            printProgress($this->processedFiles, $filepath, $vars);
            $this->scanFile($filepath, $rescan, $counter, $vars);
            $i++;
        }
        
        if ($rescan == self::RESCAN_ALL) {
            $this->cas_db->delete();
            $this->cas_list = [];
            foreach ($this->vars->blackFiles as $blackfile) {
                $this->cas_list[$blackfile['ras_sigid']] = $blackfile['sn'];
            }
            $this->cas_db->putList($this->cas_list);
        }

        //let's flush db again
        $this->db->flushBatch();

        //process whatever is left in our scan list
        if (count($this->scanlist) > 0) {
            $this->processScanList($vars);
        }

        // whitelist

        $snum = 0;
        $list = $this->scanner->check_whitelist($vars->structure['crc'], $snum);
        $keys = array(
            'criticalPHP',
            'criticalJS',
            'g_Iframer',
            'g_Base64',
            'phishing',
            'adwareList',
            'g_Redirect',
            'warningPHP'
        );
        foreach ($keys as $p) {
            if (empty($vars->{$p})) {
                continue;
            }
            $p_Fragment = $p . 'Fragment';
            $p_Sig      = $p . 'Sig';
            if ($p == 'g_Redirect') {
                $p_Fragment = $p . 'PHPFragment';
            }
            if ($p == 'g_Phishing') {
                $p_Sig = $p . 'SigFragment';
            }

            $count = count($vars->{$p});
            for ($i = 0; $i < $count; $i++) {
                $id = $vars->{$p}[$i];
                if ($vars->structure['crc'][$id] !== 0 && in_array($vars->structure['crc'][$id], $list)) {
                    $rec = RapidScanStorageRecord::fromFile($vars->structure['n'][$id]);
                    $rec->calcSha2();
                    $rec->setVerdict(RapidScanStorageRecord::RX_GOOD);
                    $this->db->put($rec);
                    unset($vars->{$p}[$i], $vars->{$p_Sig}[$i], $vars->{$p_Fragment}[$i]);
                }
            }

            $vars->{$p}             = array_values($vars->{$p});
            $vars->{$p_Fragment}    = array_values($vars->{$p_Fragment});
            if (!empty($vars->{$p_Sig})) {
                $vars->{$p_Sig} = array_values($vars->{$p_Sig});
            }
        }
        //close databases and rename new into 'current'
        $this->db->finish();
    }
}

/**
 * DbFolderSpecification class file.
 */

/**
 * Class DbFolderSpecification.
 *
 * It can be use for checking requirements for a folder that is used for storing a RapidScan DB.
 */
class DbFolderSpecification
{
    /**
     * Check whether a particular folder satisfies requirements.
     *
     * @param string $folder
     * @return bool
     */
    public function satisfiedBy($folder)
    {
        if (!file_exists($folder) || !is_dir($folder)) {
            return false;
        }

        $owner_id = (int)fileowner($folder);
        if (function_exists('posix_getpwuid')) {
            $owner = posix_getpwuid($owner_id);
            if (!isset($owner['name']) || $owner['name'] !== 'root') {
                return false;
            }
        }
        elseif ($owner_id != 0) {
            return false;
        }

        $perms = fileperms($folder);
        if (($perms & 0x0100)                           // owner r
            && ($perms & 0x0080)                        // owner w
            && ($perms & 0x0040) && !($perms & 0x0800)  // owner x
            && !($perms & 0x0020)                       // group without r
            && !($perms & 0x0010)                       // group without w
            && (!($perms & 0x0008) || ($perms & 0x0400))// group without x
            && !($perms & 0x0004)                       // other without r
            && !($perms & 0x0002)                       // other without w
            && (!($perms & 0x0001) || ($perms & 0x0200))// other without x
        ) {
            return true;
        }
        return false;
    }
}
/**
 * CriticalFileSpecification class file.
 */

/**
 * Class CriticalFileSpecification.
 */
class CriticalFileSpecification
{
    /**
     * @var array list of extension
     */
    private $extensions = [
        'php',
        'htaccess',
        'cgi',
        'pl',
        'o',
        'so',
        'py',
        'sh',
        'phtml',
        'php3',
        'php4',
        'php5',
        'php6',
        'php7',
        'pht',
        'shtml',
        'susp',
        'suspected',
        'infected',
        'vir',
        'ico',
        'js',
        'json',
        'com',
        ''
    ];

    private $js_extensions = [
        'js',
        'json',
        'html',
        'htm',
        'suspicious'
    ];

    private $phish_extensions = [
        'js',
        'html',
        'htm',
        'suspected',
        'php',
        'phtml',
        'pht',
        'php7'
    ];

    private static $critical_content = '^\s*<\?php'
        . '|^\s*<\?='
        . '|^#!/usr'
        . '|^#!/bin'
        . '|\beval'
        . '|assert'
        . '|base64_decode'
        . '|\bsystem'
        . '|create_function'
        . '|\bexec'
        . '|\bpopen'
        . '|\bfwrite'
        . '|\bfputs'
        . '|file_get_'
        . '|call_user_func'
        . '|file_put_'
        . '|\$_REQUEST'
        . '|ob_start'
        . '|\$_GET'
        . '|\$_POST'
        . '|\$_SERVER'
        . '|\$_FILES'
        . '|\bmove'
        . '|\bcopy'
        . '|\barray_'
        . '|reg_replace'
        . '|\bmysql_'
        . '|\bchr'
        . '|fsockopen'
        . '|\$GLOBALS'
        . '|sqliteCreateFunction'
        . '|EICAR-STANDARD-ANTIVIRUS-TEST-FILE';

    private static $critical_js_content = '<script'
        . '|<iframe'
        . '|<object'
        . '|<embed'
        . '|fromCharCode'
        . '|setTimeout'
        . '|setInterval'
        . '|location\.'
        . '|document\.'
        . '|window\.'
        . '|navigator\.'
        . '|\$(this)\.'; /**$g_VirusEntries**/

    private static $critical_phish_content = '<\s*title'
        . '|<\s*html'
        . '|<\s*form'
        . '|<\s*body'
        . '|bank'
        . '|account'; /**$g_PhishEntries*/

    public function __construct()
    {
        $this->extensions = array_flip($this->extensions);
        $this->js_extensions = array_flip($this->js_extensions);
        $this->phish_extensions = array_flip($this->phish_extensions);
    }

    /**
     * Check whether a particular file with specified extension is critical.
     *
     * @param string $ext
     * @param string $type
     * @return bool
     */
    public function satisfiedBy($ext, $type)
    {
        return isset($this->{$type}[$ext]);
    }

    /**
     * Check whether a particular content is critical.
     *
     * @param string $content
     * @param string $type
     * @return bool
     */
    public function satisfiedByContent($content, $type)
    {
        return preg_match('~' . $this->{$type} . '~smiS', $content, $l_Found) ? true : false;
    }
}
class Helpers
{

    public static function normalize($string, $save_length = false)
    {
        $search  = array( ' ;', ' =', ' ,', ' .', ' (', ' )', ' {', ' }', '; ', '= ', ', ', '. '
        , '( ', '( ', '{ ', '} ', ' !', ' >', ' <', ' _', '_ ', '< ',  '> ', ' $', ' %', '% '
        , '# ', ' #', '^ ', ' ^', ' &', '& ', ' ?', '? ');
        $replace = array(  ';',  '=',  ',',  '.',  '(',  ')',  '{',  '}', ';',  '=',  ',',  '.'
        ,  '(',   ')', '{',  '}',   '!',  '>',  '<',  '_', '_',  '<',   '>',   '$',  '%', '%'
        ,  '#',   '#', '^',   '^',  '&', '&',   '?', '?');

        if (!$save_length) {
            $string = str_replace('@', '', $string);
            $string = preg_replace('~\s+~smi', ' ', $string);
            $string = str_replace($search, $replace, $string);
        }

        $string = preg_replace_callback('~\bchr\(\s*([0-9a-fA-FxX]+)\s*\)~', function($m) use ($save_length) {
            if ($save_length) {
                return str_pad("'" . @chr(intval($m[1], 0)) . "'", strlen($m[0]), ' ');
            } else {
                return "'" . @chr(intval($m[1], 0)) . "'";
            }
        }, $string);

        $string = preg_replace_callback('/\&\#([0-9]{1,3});/i', function($m) use ($save_length) {
            if ($save_length) {
                return str_pad(@chr((int)$m[1]), strlen($m[0]), ' ');
            } else {
                return @chr((int)$m[1]);
            }
        }, $string);

        $string = preg_replace_callback('/\\\\x([a-fA-F0-9]{1,2})/i', function($m) use ($save_length) {
            if ($save_length) {
                return str_pad(chr(@hexdec($m[1])), strlen($m[0]), ' ');
            } else {
                return @chr(hexdec($m[1]));
            }
        }, $string);

        $string = preg_replace_callback('/\\\\([0-9]{1,3})/i', function($m) use ($save_length) {
            if ($save_length) {
                return str_pad(@chr(octdec($m[1])), strlen($m[0]), ' ');
            } else {
                return @chr(octdec($m[1]));
            }
        }, $string);

        $string = preg_replace_callback('/[\'"]\s*?\.+\s*?[\'"]/smi', function($m) use ($save_length) {
            if ($save_length) {
                return str_repeat(' ', strlen($m[0]));
            } else {
                return '';
            }
        }, $string);

        $string = preg_replace_callback('/[\'"]\s*?\++\s*?[\'"]/smi', function($m) use ($save_length) {
            if ($save_length) {
                return str_repeat(' ', strlen($m[0]));
            } else {
                return '';
            }
        }, $string);

        if (!$save_length) {
            $string = str_replace('<?php', '<?php ', $string);
            $string = preg_replace('~\s+~', ' ', $string);
        }

        return $string;
    }

    public static function format($source)
    {
        $t_count = 0;
        $in_object = false;
        $in_at = false;
        $in_php = false;
        $in_for = false;
        $in_comp = false;
        $in_quote = false;
        $in_var = false;

        if (!defined('T_ML_COMMENT')) {
            define('T_ML_COMMENT', T_COMMENT);
        }

        $result = '';
        @$tokens = token_get_all($source);
        foreach ($tokens as $token) {
            if (is_string($token)) {
                $token = trim($token);
                if ($token == '{') {
                    if ($in_for) {
                        $in_for = false;
                    }
                    if (!$in_quote && !$in_var) {
                        $t_count++;
                        $result = rtrim($result) . ' ' . $token . "\n" . str_repeat('    ', $t_count);
                    } else {
                        $result = rtrim($result) . $token;
                    }
                } elseif ($token == '$') {
                    $in_var = true;
                    $result .= $token;
                } elseif ($token == '}') {
                    if (!$in_quote && !$in_var) {
                        $new_line = true;
                        $t_count--;
                        if ($t_count < 0) {
                            $t_count = 0;
                        }
                        $result = rtrim($result) . "\n" . str_repeat('    ', $t_count) .
                            $token . "\n" . @str_repeat('    ', $t_count);
                    } else {
                        $result = rtrim($result) . $token;
                    }
                    if ($in_var) {
                        $in_var = false;
                    }
                } elseif ($token == ';') {
                    if ($in_comp) {
                        $in_comp = false;
                    }
                    if ($in_for) {
                        $result .= $token . ' ';
                    } else {
                        $result .= $token . "\n" . str_repeat('    ', $t_count);
                    }
                } elseif ($token == ':') {
                    if ($in_comp) {
                        $result .= ' ' . $token . ' ';
                    } else {
                        $result .= $token . "\n" . str_repeat('    ', $t_count);
                    }
                } elseif ($token == '(') {
                    $result .= ' ' . $token;
                } elseif ($token == ')') {
                    $result .= $token;
                } elseif ($token == '@') {
                    $in_at = true;
                    $result .= $token;
                } elseif ($token == '.') {
                    $result .= ' ' . $token . ' ';
                } elseif ($token == '=') {
                    $result .= ' ' . $token . ' ';
                } elseif ($token == '?') {
                    $in_comp = true;
                    $result .= ' ' . $token . ' ';
                } elseif ($token == '"') {
                    if ($in_quote) {
                        $in_quote = false;
                    } else {
                        $in_quote = true;
                    }
                    $result .= $token;
                } else {
                    $result .= $token;
                }
            } else {
                list($id, $text) = $token;
                switch ($id) {
                    case T_OPEN_TAG:
                    case T_OPEN_TAG_WITH_ECHO:
                        $in_php = true;
                        $result .= trim($text) . "\n";
                        break;
                    case T_CLOSE_TAG:
                        $in_php = false;
                        $result .= trim($text);
                        break;
                    case T_FOR:
                        $in_for = true;
                        $result .= trim($text);
                        break;
                    case T_OBJECT_OPERATOR:
                        $result .= trim($text);
                        $in_object = true;
                        break;

                    case T_ENCAPSED_AND_WHITESPACE:
                    case T_WHITESPACE:
                        $result .= trim($text);
                        break;
                    case T_RETURN:
                        $result = rtrim($result) . "\n" . str_repeat('    ', $t_count) . trim($text) . ' ';
                        break;
                    case T_ELSE:
                    case T_ELSEIF:
                        $result = rtrim($result) . ' ' . trim($text) . ' ';
                        break;
                    case T_CASE:
                    case T_DEFAULT:
                        $result = rtrim($result) . "\n" . str_repeat('    ', $t_count - 1) . trim($text) . ' ';
                        break;
                    case T_FUNCTION:
                    case T_CLASS:
                        $result .= "\n" . str_repeat('    ', $t_count) . trim($text) . ' ';
                        break;
                    case T_AND_EQUAL:
                    case T_AS:
                    case T_BOOLEAN_AND:
                    case T_BOOLEAN_OR:
                    case T_CONCAT_EQUAL:
                    case T_DIV_EQUAL:
                    case T_DOUBLE_ARROW:
                    case T_IS_EQUAL:
                    case T_IS_GREATER_OR_EQUAL:
                    case T_IS_IDENTICAL:
                    case T_IS_NOT_EQUAL:
                    case T_IS_NOT_IDENTICAL:
                    case T_LOGICAL_AND:
                    case T_LOGICAL_OR:
                    case T_LOGICAL_XOR:
                    case T_MINUS_EQUAL:
                    case T_MOD_EQUAL:
                    case T_MUL_EQUAL:
                    case T_OR_EQUAL:
                    case T_PLUS_EQUAL:
                    case T_SL:
                    case T_SL_EQUAL:
                    case T_SR:
                    case T_SR_EQUAL:
                    case T_START_HEREDOC:
                    case T_XOR_EQUAL:
                        $result = rtrim($result) . ' ' . trim($text) . ' ';
                        break;
                    case T_COMMENT:
                        $result = rtrim($result) . "\n" . str_repeat('    ', $t_count) . trim($text) . ' ';
                        break;
                    case T_ML_COMMENT:
                        $result = rtrim($result) . "\n";
                        $lines = explode("\n", $text);
                        foreach ($lines as $line) {
                            $result .= str_repeat('    ', $t_count) . trim($line);
                        }
                        $result .= "\n";
                        break;
                    case T_INLINE_HTML:
                        $result .= $text;
                        break;
                    default:
                        $result .= trim($text);
                        break;
                }
            }
        }
        return $result;
    }

    public static function replaceCreateFunction($str)
    {
        $hangs = 20;
        while (strpos($str, 'create_function') !== false && $hangs--) {
            $start_pos = strpos($str, 'create_function');
            $end_pos = 0;
            $brackets = 0;
            $started = false;
            $opened = 0;
            $closed = 0;
            for ($i = $start_pos, $iMax = strlen($str); $i < $iMax; $i++) {
                if ($str[$i] == '(') {
                    $started = true;
                    $brackets++;
                    $opened++;
                } else if ($str[$i] == ')') {
                    $closed++;
                    $brackets--;
                }
                if ($brackets == 0 && $started) {
                    $end_pos = $i + 1;
                    break;
                }
            }

            $cr_func = substr($str, $start_pos, $end_pos - $start_pos);
            $func = implode('function(', explode('create_function(\'', $cr_func, 2));
            //$func = substr_replace('create_function(\'', 'function(', $cr_func);
            //$func = str_replace('\',\'', ') {', $func);
            $func = implode(') {', explode('\',\'', $func, 2));
            $func = substr($func, 0, -2) . '}';
            $str = str_replace($cr_func, $func, $str);
        }
        return $str;
    }

    public static function calc($expr)
    {
        if (is_array($expr)) {
            $expr = $expr[0];
        }
        preg_match('~(chr|min|max|round)?\(([^\)]+)\)~msi', $expr, $expr_arr);
        if (@$expr_arr[1] == 'min' || @$expr_arr[1] == 'max') {
            return $expr_arr[1](explode(',', $expr_arr[2]));
        } elseif (@$expr_arr[1] == 'chr') {
            if ($expr_arr[2][0] === '(') {
                $expr_arr[2] = substr($expr_arr[2], 1);
            }
            $expr_arr[2] = self::calc($expr_arr[2]);
            return $expr_arr[1](intval($expr_arr[2]));
        } elseif (@$expr_arr[1] == 'round') {
            $expr_arr[2] = self::calc($expr_arr[2]);
            return $expr_arr[1]($expr_arr[2]);
        } else {
            preg_match_all('~([\d\.a-fx]+)([\*\/\-\+\^\|\&])?~', $expr, $expr_arr);
            foreach ($expr_arr[1] as &$expr_arg) {
                if (strpos($expr_arg, "0x")!==false) {
                    $expr = str_replace($expr_arg, hexdec($expr_arg), $expr);
                    $expr_arg = hexdec($expr_arg);
                }
            }
            if (in_array('*', $expr_arr[2]) !== false) {
                $pos = array_search('*', $expr_arr[2]);
                $res = $expr_arr[1][$pos] * $expr_arr[1][$pos + 1];
                $pos_subst = strpos($expr, $expr_arr[1][$pos] . '*' . $expr_arr[1][$pos + 1]);
                $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '*' . $expr_arr[1][$pos + 1]));
                $expr = self::calc($expr);
            } elseif (in_array('/', $expr_arr[2]) !== false) {
                $pos = array_search('/', $expr_arr[2]);
                $res = $expr_arr[1][$pos] / $expr_arr[1][$pos + 1];
                $pos_subst = strpos($expr, $expr_arr[1][$pos] . '/' . $expr_arr[1][$pos + 1]);
                $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '/' . $expr_arr[1][$pos + 1]));
                $expr = self::calc($expr);
            } elseif (in_array('-', $expr_arr[2]) !== false) {
                $pos = array_search('-', $expr_arr[2]);
                $res = $expr_arr[1][$pos] - $expr_arr[1][$pos + 1];
                $pos_subst = strpos($expr, $expr_arr[1][$pos] . '-' . $expr_arr[1][$pos + 1]);
                $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '-' . $expr_arr[1][$pos + 1]));
                $expr = self::calc($expr);
            } elseif (in_array('+', $expr_arr[2]) !== false) {
                $pos = array_search('+', $expr_arr[2]);
                $res = $expr_arr[1][$pos] + $expr_arr[1][$pos + 1];
                $pos_subst = strpos($expr, $expr_arr[1][$pos] . '+' . $expr_arr[1][$pos + 1]);
                $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '+' . $expr_arr[1][$pos + 1]));
                $expr = self::calc($expr);
            } elseif (in_array('^', $expr_arr[2]) !== false) {
                $pos = array_search('^', $expr_arr[2]);
                $res = $expr_arr[1][$pos] ^ $expr_arr[1][$pos + 1];
                $pos_subst = strpos($expr, $expr_arr[1][$pos] . '^' . $expr_arr[1][$pos + 1]);
                $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '^' . $expr_arr[1][$pos + 1]));
                $expr = self::calc($expr);
            } elseif (in_array('|', $expr_arr[2]) !== false) {
                $pos = array_search('|', $expr_arr[2]);
                $res = $expr_arr[1][$pos] | $expr_arr[1][$pos + 1];
                $pos_subst = strpos($expr, $expr_arr[1][$pos] . '|' . $expr_arr[1][$pos + 1]);
                $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '|' . $expr_arr[1][$pos + 1]));
                $expr = self::calc($expr);
            } elseif (in_array('&', $expr_arr[2]) !== false) {
                $pos = array_search('&', $expr_arr[2]);
                $res = $expr_arr[1][$pos] & $expr_arr[1][$pos + 1];
                $pos_subst = strpos($expr, $expr_arr[1][$pos] . '&' . $expr_arr[1][$pos + 1]);
                $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '&' . $expr_arr[1][$pos + 1]));
                $expr = self::calc($expr);
            } else {
                return $expr;
            }

            return $expr;
        }
    }

    public static function getEvalCode($string)
    {
        preg_match("/eval\(([^\)]+)\)/msi", $string, $matches);
        return (empty($matches)) ? '' : end($matches);
    }

    public static function getTextInsideQuotes($string)
    {
        if (preg_match_all('/("(.*)")/msi', $string, $matches)) {
            return @end(end($matches));
        } elseif (preg_match_all('/\((\'(.*)\')/msi', $string, $matches)) {
            return @end(end($matches));
        } else {
            return '';
        }
    }

    public static function getNeedles($string)
    {
        preg_match_all("/'(.*?)'/msi", $string, $matches);

        return (empty($matches)) ? array() : $matches[1];
    }

    public static function getHexValues($string)
    {
        preg_match_all('/0x[a-fA-F0-9]{1,8}/msi', $string, $matches);
        return (empty($matches)) ? array() : $matches[0];
    }

    public static function formatPHP($string)
    {
        $string = str_replace('<?php', '', $string);
        $string = str_replace('?>', '', $string);
        $string = str_replace(PHP_EOL, "", $string);
        $string = str_replace(";", ";\n", $string);
        $string = str_replace("}", "}\n", $string);
        return $string;
    }

    public static function detect_utf_encoding($text)
    {
        $first2 = substr($text, 0, 2);
        $first3 = substr($text, 0, 3);
        $first4 = substr($text, 0, 4);

        if ($first4 == chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF)) {
            return 'UTF-32BE';
        } elseif ($first4 == chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00)) {
            return 'UTF-32LE';
        } elseif ($first2 == chr(0xFE) . chr(0xFF)) {
            return 'UTF-16BE';
        } elseif ($first2 == chr(0xFF) . chr(0xFE)) {
            return 'UTF-16LE';
        }

        return false;
    }

    //from sample_16
    public static function someDecoder($str)
    {
        $str = base64_decode($str);
        $TC9A16C47DA8EEE87 = 0;
        $TA7FB8B0A1C0E2E9E = 0;
        $T17D35BB9DF7A47E4 = 0;
        $T65CE9F6823D588A7 = (ord($str[1]) << 8) + ord($str[2]);
        $i = 3;
        $T77605D5F26DD5248 = 0;
        $block = 16;
        $T7C7E72B89B83E235 = "";
        $T43D5686285035C13 = "";
        $len = strlen($str);

        $T6BBC58A3B5B11DC4 = 0;

        for (; $i < $len;) {
            if ($block == 0) {
                $T65CE9F6823D588A7 = (ord($str[$i++]) << 8);
                $T65CE9F6823D588A7 += ord($str[$i++]);
                $block = 16;
            }
            if ($T65CE9F6823D588A7 & 0x8000) {
                $TC9A16C47DA8EEE87 = (ord($str[$i++]) << 4);
                $TC9A16C47DA8EEE87 += (ord($str[$i]) >> 4);
                if ($TC9A16C47DA8EEE87) {
                    $TA7FB8B0A1C0E2E9E = (ord($str[$i++]) & 0x0F) + 3;
                    for ($T17D35BB9DF7A47E4 = 0; $T17D35BB9DF7A47E4 < $TA7FB8B0A1C0E2E9E; $T17D35BB9DF7A47E4++) {
                        $T7C7E72B89B83E235[$T77605D5F26DD5248 + $T17D35BB9DF7A47E4] =
                            $T7C7E72B89B83E235[$T77605D5F26DD5248 - $TC9A16C47DA8EEE87 + $T17D35BB9DF7A47E4];
                    }
                    $T77605D5F26DD5248 += $TA7FB8B0A1C0E2E9E;
                } else {
                    $TA7FB8B0A1C0E2E9E = (ord($str[$i++]) << 8);
                    $TA7FB8B0A1C0E2E9E += ord($str[$i++]) + 16;
                    for ($T17D35BB9DF7A47E4 = 0; $T17D35BB9DF7A47E4 < $TA7FB8B0A1C0E2E9E;
                         $T7C7E72B89B83E235[$T77605D5F26DD5248 + $T17D35BB9DF7A47E4++] = $str[$i]) {
                    }
                    $i++;
                    $T77605D5F26DD5248 += $TA7FB8B0A1C0E2E9E;
                }
            } else {
                $T7C7E72B89B83E235[$T77605D5F26DD5248++] = $str[$i++];
            }
            $T65CE9F6823D588A7 <<= 1;
            $block--;
            if ($i == $len) {
                $T43D5686285035C13 = $T7C7E72B89B83E235;
                if (is_array($T43D5686285035C13)) {
                    $T43D5686285035C13 = implode($T43D5686285035C13);
                }
                $T43D5686285035C13 = "?" . ">" . $T43D5686285035C13;
                return $T43D5686285035C13;
            }
        }
    }
    //

    public static function someDecoder2($WWAcmoxRAZq, $sBtUiFZaz)   //sample_05
    {
        $JYekrRTYM = str_rot13(gzinflate(str_rot13(base64_decode('y8svKCwqLiktK6+orFdZV0FWWljPyMzKzsmNNzQyNjE1M7ewNAAA'))));
        if ($WWAcmoxRAZq == 'asedferg456789034689gd') {
            $cEerbvwKPI = $JYekrRTYM[18] . $JYekrRTYM[19] . $JYekrRTYM[17] . $JYekrRTYM[17] . $JYekrRTYM[4] . $JYekrRTYM[21];
            return $cEerbvwKPI($sBtUiFZaz);
        } elseif ($WWAcmoxRAZq == 'zfcxdrtgyu678954ftyuip') {
            $JWTDeUKphI = $JYekrRTYM[1] . $JYekrRTYM[0] . $JYekrRTYM[18] . $JYekrRTYM[4] . $JYekrRTYM[32] .
                $JYekrRTYM[30] . $JYekrRTYM[26] . $JYekrRTYM[3] . $JYekrRTYM[4] . $JYekrRTYM[2] . $JYekrRTYM[14] .
                $JYekrRTYM[3] . $JYekrRTYM[4];
            return $JWTDeUKphI($sBtUiFZaz);
        } elseif ($WWAcmoxRAZq == 'gyurt456cdfewqzswexcd7890df') {
            $rezmMBMev = $JYekrRTYM[6] . $JYekrRTYM[25] . $JYekrRTYM[8] . $JYekrRTYM[13] . $JYekrRTYM[5] . $JYekrRTYM[11] . $JYekrRTYM[0] . $JYekrRTYM[19] . $JYekrRTYM[4];
            return $rezmMBMev($sBtUiFZaz);
        } elseif ($WWAcmoxRAZq == 'zcdfer45dferrttuihvs4321890mj') {
            $WbbQXOQbH = $JYekrRTYM[18] . $JYekrRTYM[19] . $JYekrRTYM[17] . $JYekrRTYM[26] . $JYekrRTYM[17] . $JYekrRTYM[14] . $JYekrRTYM[19] . $JYekrRTYM[27] . $JYekrRTYM[29];
            return $WbbQXOQbH($sBtUiFZaz);
        } elseif ($WWAcmoxRAZq == 'zsedrtre4565fbghgrtyrssdxv456') {
            $jPnPLPZcMHgH = $JYekrRTYM[2] . $JYekrRTYM[14] . $JYekrRTYM[13] . $JYekrRTYM[21] . $JYekrRTYM[4] . $JYekrRTYM[17] . $JYekrRTYM[19] . $JYekrRTYM[26] . $JYekrRTYM[20] . $JYekrRTYM[20] . $JYekrRTYM[3] . $JYekrRTYM[4] . $JYekrRTYM[2] . $JYekrRTYM[14] . $JYekrRTYM[3] . $JYekrRTYM[4];
            return $jPnPLPZcMHgH($sBtUiFZaz);
        }
    }

    public static function someDecoder3($str)
    {
        $l = base64_decode($str);
        $lllllll = 0;
        $lllll = 3;
        $llllll = (ord($l[1]) << 8) + ord($l[2]);
        $lllllllll = 16;
        $llllllll = [];
        for ($lllllMax = strlen($l); $lllll < $lllllMax;) {
            if ($lllllllll == 0) {
                $llllll = (ord($l[$lllll++]) << 8);
                $llllll+= ord($l[$lllll++]);
                $lllllllll = 16;
            }
            if ($llllll & 0x8000) {
                $lll = (ord($l[$lllll++]) << 4);
                $lll+= (ord($l[$lllll]) >> 4);
                if ($lll) {
                    $ll = (ord($l[$lllll++]) & 0x0f) + 3;
                    for ($llll = 0;$llll < $ll;$llll++) $llllllll[$lllllll + $llll] = $llllllll[$lllllll - $lll + $llll];
                    $lllllll+= $ll;
                } else {
                    $ll = (ord($l[$lllll++]) << 8);
                    $ll+= ord($l[$lllll++]) + 16;
                    for ($llll = 0;$llll < $ll;$llllllll[$lllllll + $llll++] = ord($l[$lllll]));
                    $lllll++;
                    $lllllll+= $ll;
                }
            } else {
                $llllllll[$lllllll++] = ord($l[$lllll++]);
            }
            $llllll <<= 1;
            $lllllllll--;
        }
        $lllll = 0;
        $lllllllll="?".chr(62);
        $llllllllll = "";
        for (;$lllll < $lllllll;) {
            $llllllllll.= chr($llllllll[$lllll++] ^ 0x07);
        }
        $lllllllll.=$llllllllll.chr(60)."?";
        return $lllllllll;
    }

    public static function PHPJiaMi_decoder($str, $md5, $rand, $lower_range = '')
    {
        $md5_xor = md5($md5);
        $lower_range = !$lower_range ? ord($rand) : $lower_range;
        $layer1 = '';
        for ($i=0, $iMax = strlen($str); $i < $iMax; $i++) {
            $layer1 .= ord($str[$i]) < 245 ? ((ord($str[$i]) > $lower_range && ord($str[$i]) < 245) ? chr(ord($str[$i]) / 2) : $str[$i]) : '';
        }
        $layer1 = base64_decode($layer1);
        $result = '';
        $j = $len_md5_xor = strlen($md5_xor);
        for ($i=0, $iMax = strlen($layer1); $i < $iMax; $i++) {
            $j = $j ? $j : $len_md5_xor;
            $j--;
            $result .= $layer1[$i] ^ $md5_xor[$j];
        }
        return $result;
    }

    public static function someDecoder4($ae, $key)
    {
        $at = array();
        for ($i = 0, $iMax = strlen($key); $i < $iMax; $i++) {
            if ((int)$key[$i] > 0) {
                $at[$i] = $key[$i];
            }
        }
        $at = array_values($at);
        $str = "";
        for ($i = 0, $iMax = count($ae); $i < $iMax; $i++) {
            if ($i < count($ae) - 1) {
                $str .= str_replace(md5($at[$i]), "", $ae[$i]);
            } else {
                $str .= $ae[$i];
            }
        }
        return $str;
    }

    public static function OELoveDecoder($arg1, $arg2 = '')
    {
        if (empty($arg1)) {
            return '';
        }
        $arg1 = base64_decode($arg1);
        if ($arg2 == '') return ~$arg1;
        //if ($arg2 == '-1') @271552362217();
        $len = strlen($arg1);
        $arg2 = str_pad($arg2, $len, $arg2);
        return $arg2 ^ $arg1;
    }

    public static function stripsquoteslashes($str)
    {
        $res = '';
        for ($i = 0, $iMax = strlen($str); $i < $iMax; $i++) {
            if (isset($str[$i+1]) && ($str[$i] == '\\' && ($str[$i+1] == '\\' || $str[$i+1] == '\''))) {
                continue;
            } else {
                $res .= $str[$i];
            }
        }
        return $res;
    }

    public static function isSafeFunc($str)
    {
        $safeFuncs = [
            'base64_decode', 'gzinflate', 'gzuncompress', 'strrev',
            'str_rot13', 'urldecode', 'rawurldecode', 'stripslashes',
            'htmlspecialchars_decode', 'convert_uudecode','pack',
            'str_repeat', 'sprintf', 'str_replace', 'strtr'
        ];
        return in_array(strtolower($str), $safeFuncs);

    }

    public static function aanKFMDigitsDecode($digits)
    {
        $res = '';
        $len = ceil(strlen($digits) / 3) * 3;
        $cipher = str_pad($digits, $len, '0', STR_PAD_LEFT);
        for ($i = 0; $i < (strlen($cipher) / 3);$i++) {
            $res .= chr(substr(strval($cipher), $i * 3, 3));
        }
        return $res;
    }

    public static function obf20200414_1_decrypt($data, $key)
    {
        $key = md5($key);
        $x = 0;
        $data = base64_decode($data);
        $len = strlen($data);
        $l = strlen($key);
        $char = '';
        for ($i = 0; $i < $len; $i++) {
            if ($x == $l) {
                $x = 0;
            }
            $char .= substr($key, $x, 1);
            $x++;
        }
        $str = '';
        for ($i = 0; $i < $len; $i++) {
            if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1))) {
                $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
            } else {
                $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
            }
        }
        return $str;
    }

    public static function Xtea_decrypt($text, $key)
    {
        $_key = '';
        $cbc = 1;

        if(is_array($key)) {
            $_key = $key;
        } else if(isset($key) && !empty($key)) {
            $_key = self::_str2long(str_pad($key, 16, $key));
        } else {
            $_key = array(0,0,0,0);
        }

        $plain = array();
        $cipher = self::_str2long(base64_decode($text));

        if($cbc == 1) {
            $i = 2;
        } else {
            $i = 0;
        }

        for ($i, $iMax = count($cipher); $i < $iMax; $i += 2) {
            $return = self::block_decrypt($cipher[$i], $cipher[$i+1], $_key);
            if($cbc == 1) {
                $plain[] = array($return[0] ^ $cipher[$i-2], $return[1] ^ $cipher[$i-1]);
            } else {
                $plain[] = $return;
            }
        }

        $output = "";
        for($i = 0, $iMax = count($plain); $i < $iMax; $i++) {
            $output .= self::_long2str($plain[$i][0]);
            $output .= self::_long2str($plain[$i][1]);
        }

        return $output;
    }

    public static function calculateMathStr($task)
    {
        $res = $task;

        while (preg_match('~\(?(\d+)([+\-*\/])(\d+)\)?~', $res, $subMatch)) {
            if (count($subMatch) === 4) {
                $subSearch = $subMatch[0];
                $operator = $subMatch[2];
                $number_1 = $subMatch[1];
                $number_2 = $subMatch[3];
                $res = str_replace($subSearch, self::calc("$number_1$operator$number_2"), $res);
            } else {
                return $res;
            }
        }

        return $res;
    }

    public static function decrypt_T_func($l)
    {
        $x2 = 256;
        $W2 = 8;
        $cY = array();
        $I3 = 0;
        $C4 = 0;
        for ($bs = 0; $bs < strlen($l); $bs++) {
            $I3 = ($I3 << 8) + ord($l[$bs]);
            $C4 += 8;
            if ($C4 >= $W2) {
                $C4 -= $W2;
                $cY[] = $I3 >> $C4;
                $I3 &= (1 << $C4) - 1;
                $x2++;
                if ($x2 >> $W2) {
                    $W2++;
                }
            }
        }
        $K5 = range("\x0", "\377");
        $UH = '';
        foreach ($cY as $bs => $xd) {
            if (!isset($K5[$xd])) {
                $iU = $Co . $Co[0];
            } else {
                $iU = $K5[$xd];
            }
            $UH .= $iU;
            if ($bs) {
                $K5[] = $Co . $iU[0];
            }
            $Co = $iU;
        }
        return $UH;
    }

    public static function getDecryptKeyForTinkleShell($size)
    {
        $bx = md5(base64_encode($size));
        $len = strlen($bx);
        $arr = [];
        for ($i = 0; $i < $len; $i++) {
            $arr[] = substr($bx, $i, 1);
        }
        $arr = array_unique($arr);
        $newstr = "";
        foreach ($arr as $k => $v) {
            $newstr .= $v;
        }
        if (strlen($newstr) < 9) {
            if (strpos($newstr, 'A') === false) {
                $newstr .= 'A';
            }
            if (strpos($newstr, 'B') === false) {
                $newstr .= 'B';
            }
            if (strpos($newstr, 'C') === false) {
                $newstr .= 'C';
            }
            if (strpos($newstr, 'D') === false) {
                $newstr .= 'D';
            }
            if (strpos($newstr, 'E') === false) {
                $newstr .= 'E';
            }
            if (strpos($newstr, 'F') === false) {
                $newstr .= 'F';
            }
            if (strpos($newstr, 'G') === false) {
                $newstr .= 'G';
            }
        }

       return strtoupper($newstr);
    }

    /**
     * @param string $dictionary
     * @param string $content
     * @return array
     */
    public static function getVarsFromDictionary($dictionary, $content)
    {
        $vars = [];

        preg_match_all('~(\$\w+=(\s?\.?\s?\$\w+[{\[]\d+[\]}];?)+)~ms', $content, $concatMatches);
        for ($i = 0; $iMax = count($concatMatches), $i <= $iMax; $i++) {
            preg_match_all('~(\$\w+(=))?(\s?(\.?)\s?\$\w+[{\[](\d+)[\]}])~msi', $concatMatches[0][$i], $varMatches);
            for ($j = 0; $jMax = count($varMatches[0]), $j < $jMax; $j++) {
                $varName = substr($varMatches[1][0], 0, -1);
                $value = $dictionary[(int)$varMatches[5][$j]] ?? '';

                if ($varMatches[2][$j] === '=') {
                    $vars[$varName] = $value;
                } else {
                    $vars[$varName] .= $value;
                }
            }
        }

        return $vars;
    }

    /**
     * @param string $str
     * @return string
     */
    public static function concatVariableValues($str)
    {
        preg_match_all('/\$\w+\s?(\.?)=\s?"([\w]+)"/', $str, $concatVars);

        $strVar = "";

        foreach ($concatVars[2] as $index => $concatVar) {
            if ($concatVars[1][$index] === '.') {
                $strVar .= $concatVar;
            } else {
                $strVar = $concatVar;
            }
        }

        return $strVar;
    }

    /**
     * @param $dictionaryVar
     * @param $dictionaryValue
     * @param $str
     *
     * @return string
     */
    public static function replaceVarsFromDictionary($dictionaryVar, $dictionaryValue, $str)
    {
        $dictionaryName = $dictionaryVar;
        $result = $str;

        if (preg_match('~\$GLOBALS\[([\'"]\w+[\'"])\]~msi', $dictionaryVar, $match)) {
            $dictionaryName = '\$GLOBALS\[' . $match[1] . '\]';
        }

        $result = preg_replace_callback(
            '~(?:' . $dictionaryName . '\[(?:\d+)\]\s?\.?)+~msi',
            function ($match) use ($dictionaryValue) {
                preg_match_all('~\]\[(\d+)\]\.?~msi', $match[0], $varsMatch);

                $result = "";

                foreach ($varsMatch[1] as $index) {
                    $result .= $dictionaryValue[(int)$index];
                }


                return "'$result'";
            },
            $result
        );

        return $result;
    }

    /**
     * Collects simple or concated vars from str
     * @param string $str
     * @param string $trimQuote
     *
     * @return array
     */
    public static function collectVars($str, string $trimQuote = '"') : array
    {
        $vars = [];

        preg_match_all('~(\$\w+)\s?=\s?(["\'\w\.]+)~msi', $str, $matches);

        foreach ($matches[1] as $index => $match) {
            $vars[$match] = str_replace("$trimQuote.$trimQuote", '', $matches[2][$index]);
            $vars[$match] = trim($vars[$match], $trimQuote);
        }

        return $vars;
    }

    /**
     * @param array  $vars
     * @param string $str
     *
     * @return string
     */
    public static function replaceVarsFromArray(array $vars, string $str) : string
    {
        $result = $str;

        foreach ($vars as $name => $value) {
            $result = str_replace($name, $value, $result);
        }

        return $result;
    }

    private static function block_decrypt($y, $z, $key)
    {
        $delta = 0x9e3779b9;
        $sum = 0xC6EF3720;
        $n = 32;

        for ($i = 0; $i < 32; $i++) {
            $z = self::_add($z, -(self::_add($y << 4 ^ self::_rshift($y, 5), $y)
                ^ self::_add($sum, $key[self::_rshift($sum, 11) & 3])));
            $sum = self::_add($sum, -$delta);
            $y = self::_add($y, -(self::_add($z << 4 ^ self::_rshift($z, 5), $z)
                ^ self::_add($sum, $key[$sum & 3])));

        }
        return [$y, $z];
    }

    private static function _rshift($integer, $n)
    {
        if (0xffffffff < $integer || -0xffffffff > $integer) {
            $integer = fmod($integer, 0xffffffff + 1);
        }

        if (0x7fffffff < $integer) {
            $integer -= 0xffffffff + 1.0;
        } else if (-0x80000000 > $integer) {
            $integer += 0xffffffff + 1.0;
        }

        if (0 > $integer) {
            $integer &= 0x7fffffff;
            $integer >>= $n;
            $integer |= 1 << (31 - $n);
        } else {
            $integer >>= $n;
        }
        return $integer;
    }

    private static function _add($i1, $i2)
    {
        $result = 0.0;

        foreach (func_get_args() as $value) {
            if (0.0 > $value) {
                $value -= 1.0 + 0xffffffff;
            }
            $result += $value;
        }

        if (0xffffffff < $result || -0xffffffff > $result) {
            $result = fmod($result, 0xffffffff + 1);
        }

        if (0x7fffffff < $result) {
            $result -= 0xffffffff + 1.0;
        } else if (-0x80000000 > $result) {
            $result += 0xffffffff + 1.0;
        }
        return $result;
    }

    private static function _str2long($data)
    {
        $tmp = unpack('N*', $data);
        $data_long = [];
        $j = 0;

        foreach ($tmp as $value) $data_long[$j++] = $value;
        return $data_long;
    }

    private static function _long2str($l){
        return pack('N', $l);
    }

    ///////////////////////////////////////////////////////////////////////////
}




///////////////////////////////////////////////////////////////////////////

function parseArgs($argv)
{
    array_shift($argv);
    $o = array();
    foreach ($argv as $a) {
        if (substr($a, 0, 2) == '--') {
            $eq = strpos($a, '=');
            if ($eq !== false) {
                $o[substr($a, 2, $eq - 2)] = substr($a, $eq + 1);
            } else {
                $k = substr($a, 2);
                if (!isset($o[$k])) {
                    $o[$k] = true;
                }
            }
        } else {
            if (substr($a, 0, 1) == '-') {
                if (substr($a, 2, 1) == '=') {
                    $o[substr($a, 1, 1)] = substr($a, 3);
                } else {
                    foreach (str_split(substr($a, 1)) as $k) {
                        if (!isset($o[$k])) {
                            $o[$k] = true;
                        }
                    }
                }
            } else {
                $o[] = $a;
            }
        }
    }
    return $o;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////
// cli handler
if (!defined('AIBOLIT_START_TIME') && !defined('PROCU_CLEAN_DB') && @strpos(__FILE__, @$argv[0])!==false) {

    set_time_limit(0);
    ini_set('max_execution_time', '900000');
    ini_set('realpath_cache_size', '16M');
    ini_set('realpath_cache_ttl', '1200');
    ini_set('pcre.backtrack_limit', '1000000');
    ini_set('pcre.recursion_limit', '12500');
    ini_set('pcre.jit', '1');
    $options = parseArgs($argv);
    $str = php_strip_whitespace($options[0]);
    $str2 = file_get_contents($options[0]);
    $l_UnicodeContent = Helpers::detect_utf_encoding($str);
    $l_UnicodeContent2 = Helpers::detect_utf_encoding($str2);
    if ($l_UnicodeContent !== false) {
        if (function_exists('iconv')) {
            $str = iconv($l_UnicodeContent, "UTF-8", $str);
            $str2 = iconv($l_UnicodeContent2, "UTF-8", $str2);
        }
    }
    $d = new Deobfuscator($str, $str2);
    $start = microtime(true);
    $deobf_type = $d->getObfuscateType($str);
    if ($deobf_type != '') {
        $str = $d->deobfuscate();
    }
    $code = $str;
    if (isset($options['prettyprint'])) {
        $code = Helpers::normalize($code);
        $code = Helpers::format($code);
    }
    if ($l_UnicodeContent !== false) {
        if (function_exists('iconv')) {
            $code = iconv('UTF-8', $l_UnicodeContent . '//IGNORE', $code);
        }
    }
    echo $code;
    echo "\n";
    //echo 'Execution time: ' . round(microtime(true) - $start, 4) . ' sec.';
}

class Deobfuscator
{
    private $signatures = array(
        array(
            'full' => '~for\((\$\w{1,40})=\d+,(\$\w+)=\'([^\$]+)\',(\$\w+)=\'\';@?ord\(\2\[\1\]\);\1\+\+\)\{if\(\1<\d+\)\{(\$\w+)\[\2\[\1\]\]=\1;\}else\{\$\w+\.\=@?chr\(\(\5\[\2\[\1\]\]<<\d+\)\+\(\5\[\2\[\+\+\1\]\]\)\);\}\}\s*.{0,500}eval\(\4\);(if\(isset\(\$_(GET|REQUEST|POST|COOKIE)\[[\'"][^\'"]+[\'"]\]\)\)\{[^}]+;\})?~msi',
            'fast' => '~for\((\$\w{1,40})=\d+,(\$\w+)=\'([^\$]+)\',(\$\w+)=\'\';@?ord\(\2\[\1\]\);\1\+\+\)\{if\(\1<\d+\)\{(\$\w+)\[\2\[\1\]\]=\1;\}else\{\$\w+\.\=@?chr\(\(\5\[\2\[\1\]\]<<\d+\)\+\(\5\[\2\[\+\+\1\]\]\)\);\}\}\s*.{0,500}eval\(\4\);~msi',
            'id' => 'parenthesesString'),

        array(
            'full' => '~(\$\w+)\s*=\s*basename\s*\(trim\s*\(preg_replace\s*\(rawurldecode\s*\([\'"][%0-9a-f\.]+["\']\),\s*\'\',\s*__FILE__\)\)\);\s*(\$\w+)\s*=\s*["\']([^\'"]+)["\'];\s*eval\s*\(rawurldecode\s*\(\2\)\s*\^\s*substr\s*\(str_repeat\s*\(\1,\s*\(strlen\s*\(\2\)/strlen\s*\(\1\)\)\s*\+\s*1\),\s*0,\s*strlen\s*\(\2\)\)\);~msi',
            'fast' => '~(\$\w+)\s*=\s*basename\s*\(trim\s*\(preg_replace\s*\(rawurldecode\s*\([\'"][%0-9a-f\.]+["\']\),\s*\'\',\s*__FILE__\)\)\);\s*(\$\w+)\s*=\s*["\']([^\'"]+)["\'];\s*eval\s*\(rawurldecode\s*\(\2\)\s*\^\s*substr\s*\(str_repeat\s*\(\1,\s*\(strlen\s*\(\2\)/strlen\s*\(\1\)\)\s*\+\s*1\),\s*0,\s*strlen\s*\(\2\)\)\);~msi',
            'id' => 'xorFName'),

        array(
            'full' =>
                '~(\$\w{1,40})=base64_decode\(\'[^\']+\'\);(\$\w+)=base64_decode\(\'[^\']+\'\);(\$\w+)=base64_decode\(\'([^\']+)\'\);eval\(\1\(gzuncompress\(\2\(\3\)\)\)\);~msi',
            'fast' => '~(\$\w{1,40})=base64_decode\(\'[^\']+\'\);(\$\w+)=base64_decode\(\'[^\']+\'\);(\$\w+)=base64_decode\(\'([^\']+)\'\);eval\(\1\(gzuncompress\(\2\(\3\)\)\)\);~msi',
            'id' => 'phpMess'),

        array(
            'full' =>
                '~(\$\w{1,40})\s*=\s*\"([^\"]+)\";\s*\$\w+\s*=\s*\$\w+\(\1,\"[^\"]+\",\"[^\"]+\"\);\s*\$\w+\(\"[^\"]+\",\"[^\"]+\",\"\.\"\);~msi',
            'fast' => '~(\$\w{1,40})\s*=\s*\"([^\"]+)\";\s*\$\w+\s*=\s*\$\w+\(\1,\"[^\"]+\",\"[^\"]+\"\);\s*\$\w+\(\"[^\"]+\",\"[^\"]+\",\"\.\"\);~msi',
            'id' => 'pregReplaceSample05'),


        array(
            'full' => '~(\$\w{1,40})\s*=\s*\w+\(\'.+?\'\);\s*(\$\w+)\s*=\s*\w+\(\'.+?\'\);\s*(\$\w+)\s*=\s*\"([^\"]+)\";\s*(\$\w+)\s*=\s*.+?;\s*\2\(\5,\"[^\']+\'\3\'[^\"]+\",\"\.\"\);~msi',
            'fast' => '~(\$\w{1,40})\s*=\s*\w+\(\'.+?\'\);\s*(\$\w+)\s*=\s*\w+\(\'.+?\'\);\s*(\$\w+)\s*=\s*\"([^\"]+)\";\s*(\$\w+)\s*=\s*.+?;\s*\2\(\5,\"[^\']+\'\3\'[^\"]+\",\"\.\"\);~msi',
            'id' => 'pregReplaceB64'),

        array(
            'full' => '~(\$\w{1,40})\s*=\s*\'([^\']+)\';\s*\1\s*=\s*gzinflate\s*\(base64_decode\s*\(\1\)\);\s*\1\s*=\s*str_replace\s*\(\"__FILE__\",\"\'\$\w+\'\",\1\);\s*eval\s*\(\1\);~msi',
            'fast' => '~(\$\w{1,40})\s*=\s*\'([^\']+)\';\s*\1\s*=\s*gzinflate\s*\(base64_decode\s*\(\1\)\);\s*\1\s*=\s*str_replace\s*\(\"__FILE__\",\"\'\$\w+\'\",\1\);\s*eval\s*\(\1\);~msi',
            'id' => 'GBE'),

        array(
            'full' => '~(\$GLOBALS\[\s*[\'"]_+\w{1,60}[\'"]\s*\])\s*=\s*\s*array\s*\(\s*base64_decode\s*\(.+?((.+?\1\[\d+\]).+?)+[^;]+;(\s*include\(\$_\d+\);)?}?((.+?___\d+\(\d+\))+[^;]+;)?(.*?(\$[a-z]+).+\8_\d+;)?(echo\s*\$\w+;})?}?~msi',
            'fast' => '~\$GLOBALS\[\s*[\'"]_+\w{1,60}[\'"]\s*\]\s*=\s*\s*array\s*\(\s*base64_decode\s*\(~msi',
            'id' => 'Bitrix'),

        array(
            'full' => '~\$\w{1,40}\s*=\s*(__FILE__|__LINE__);\s*\$\w{1,40}\s*=\s*(\d+);\s*eval(\s*\()+\$?\w+\s*\([\'"][^\'"]+[\'"](\s*\))+;\s*return\s*;\s*\?>(.+)~msi',
            'fast' => '~\$\w{1,40}\s*=\s*(__FILE__|__LINE__);\s*\$\w{1,40}\s*=\s*(\d+);\s*eval(\s*\()+\$?\w+\s*\([\'"][^\'"]+[\'"](\s*\))+;\s*return\s*;\s*\?>(.+)~msi',
            'id' => 'B64inHTML'),

        array(
            'full' => '~(?:\$[O0]*=__FILE__;)?\$[O0]*=urldecode\(\'[%a-f0-9]+\'\);(\$(GLOBALS\[\')?[O0]*(\'\])?=(\d+);)?\s*(\$(GLOBALS\[\')?[O0]*(\'\])?\.?=(\$(GLOBALS\[\')?[O0]*(\'\])?([\{\[]\d+[\}\]])?\.?)+;)+[^\?]+\?\>[\s\w\~\=\/\+\\\\\^\{\`\%]+~msi',
            'fast' => '~(?:\$[O0]*=__FILE__;)?\$[O0]*=urldecode\(\'[%a-f0-9]+\'\);(?:\$(GLOBALS\[\')?[O0]*(?:\'\])?=\d+;)?\s*(?:\$(?:GLOBALS\[\')?[O0]*(?:\'\])?\.?=(?:\$(?:GLOBALS\[\')?[O0]*(?:\'\])?(?:[\{\[]\d+[\}\]])?\.?)+;)+[^\?]+\?\>[\s\w\~\=\/\+\\\\\^\{\`\%]+~msi',
            'id' => 'LockIt'),

        array(
            'full' => '~(\$\w{1,40})\s*=\s*\"(\\\\142|\\\\x62)[0-9a-fx\\\\]+";\s*@?eval\s*\(\1\s*\([^\)]+\)+\s*;~msi',
            'fast' => '~(\$\w{1,40})\s*=\s*\"(\\\\142|\\\\x62)[0-9a-fx\\\\]+";\s*@?eval\s*\(\1\s*\(~msi',
            'id' => 'FOPO'),

        array(
            'full' => '~\$_F=__FILE__;\$_X=\'([^\']+\');eval\([^\)]+\)+;~msi',
            'fast' => '~\$_F=__FILE__;\$_X=\'([^\']+\');eval\(~ms',
            'id' => 'ByteRun'),

        array(
            'full' => '~(\$\w{1,40}=\'[^\']+\';\s*)+(\$[\w{1,40}]+)=(urldecode|base64_decode){0,1}\(?[\'"]([\w+%=-]+)[\'"]\)?;(\$[\w+]+=(\$(\w+\[\')?[O_0]*(\'\])?([\{\[]\d+[\}\]])?\.?)+;)+[^\?]+(\?\>[\w\~\=\/\+]+|.+\\\\x[^;]+;)~msi',
            'fast' => '~(\$\w{1,40}=\'[^\']+\';\s*)+(\$[\w{1,40}]+)=(urldecode|base64_decode){0,1}\(?[\'"]([\w+%=-]+)[\'"]\)?;(\$[\w+]+=(\$(\w+\[\')?[O_0]*(\'\])?([\{\[]\d+[\}\]])?\.?)+;)+[^\?]+(\?\>[\w\~\=\/\+]+|.+\\\\x[^;]+;)~msi',
            'id' => 'Urldecode'),

        array(
            'full' => '~(\$[\w{1,40}]+)=(urldecode|base64_decode)\(?[\'"]([\w+%=-]+)[\'"]\);(\s*\$\w+\.?=(\$\w+\{\d+\}\s*[\.;]?\s*)+)+((\$\w+=["\']([^\'"]+)[\'"];\s*eval\(\'\?>\'\.[\$\w\(\)\*\d,\s]+);|(eval\(\$\w+\([\'"]([^\'"]+)[\'"]\)+;))~msi',
            'fast' => '~(\$[\w{1,40}]+)=(urldecode|base64_decode)\(?[\'"]([\w+%=-]+)[\'"]\);(\s*\$\w+\.?=(\$\w+\{\d+\}\s*[\.;]?\s*)+)+((\$\w+=["\']([^\'"]+)[\'"];\s*eval\(\'\?>\'\.[\$\w\(\)\*\d,\s]+);|(eval\(\$\w+\([\'"]([^\'"]+)[\'"]\)+;))~msi',
            'id'   => 'UrlDecode2',
        ),

        array(
            'full' => '~explode\(\"\*\*\*\",\s*\$\w+\);\s*eval\(eval\(\"return strrev\(base64_decode\([^\)]+\)+;~msi',
            'fast' => '~explode\(\"\*\*\*\",\s*\$\w+\);\s*eval\(eval\(\"return strrev\(base64_decode\(~msi',
            'id' => 'cobra'),

        array(
            'full' => '~\$[O0]+=\(base64_decode\(strtr\(fread\(\$[O0]+,(\d+)\),\'([^\']+)\',\'([^\']+)\'\)\)\);eval\([^\)]+\)+;~msi',
            'fast' => '~\$[O0]+=\(base64_decode\(strtr\(fread\(\$[O0]+,(\d+)\),\'([^\']+)\',\'([^\']+)\'\)\)\);eval\(~msi',
            'id' => 'strtrFread'),

        array(
            'full' => '~if\s*\(\!extension_loaded\(\'IonCube_loader\'\)\).+pack\(\"H\*\",\s*\$__ln\(\"/\[A-Z,\\\\r,\\\\n\]/\",\s*\"\",\s*substr\(\$__lp,\s*([0-9a-fx]+\-[0-9a-fx]+)\)\)\)[^\?]+\?\>\s*[0-9a-z\r\n]+~msi',
            'fast' => '~IonCube_loader~ms',
            'id' => 'FakeIonCube'),

        array(
            'full' => '~(\$\w{1,40})="([\w\]\[\<\&\*\_+=/]{300,})";\$\w+=\$\w+\(\1,"([\w\]\[\<\&\*\_+=/]+)","([\w\]\[\<\&\*\_+=/]+)"\);~msi',
            'fast' => '~(\$\w{1,40})="([\w\]\[\<\&\*\_+=/]{300,})";\$\w+=\$\w+\(\1,"([\w\]\[\<\&\*\_+=/]+)","([\w\]\[\<\&\*\_+=/]+)"\);~msi',
            'id' => 'strtrBase64'),

        array(
            'full' => '~\$\w+\s*=\s*array\((\'[^\']+\',?)+\);\s*.+?(\$_\w{1,40}\[\w+\])\s*=\s*explode\(\'([^\']+)\',\s*\'([^\']+)\'\);.+?(\2\[[a-fx\d]+\])\(\);(.+?\2)+.+}~msi',
            'fast' => '~(\$_\w{1,40}\[\w+\])\s*=\s*explode\(\'([^\']+)\',\s*\'([^\']+)\'\);.+?(\1\[[a-fx\d]+\])\(\);~msi',
            'id' => 'explodeSubst'),

        array(
            'full' => '~(\$[\w{1,40}]+)\s*=\s*\'([\w+%=\-\#\\\\\'\*]+)\';(\$[\w+]+)\s*=\s*Array\(\);(\3\[\]\s*=\s*(\1\[\d+\]\.?)+;+)+(.+\3)[^}]+}~msi',
            'fast' => '~(\$[\w{1,40}]+)\s*=\s*\'([\w+%=\-\#\\\\\'\*]+)\';(\$[\w+]+)\s*=\s*Array\(\);(\3\[\]\s*=\s*(\1\[\d+\]\.?)+;+)+~msi',
            'id' => 'subst'),

        array(
            'full' => '~if\(!function_exists\(\"(\w+)\"\)\){function \1\(.+?eval\(\1\(\"[^\"]+\"\)\);~msi',
            'fast' => '~if\(!function_exists\(\"(\w+)\"\)\){function \1\(.+?eval\(\1\(\"[^\"]+\"\)\);~msi',
            'id' => 'decoder'),

        array(
            'full' => '~(\$\w{1,40})\s*=\s*\"riny\(\"\.(\$\w+)\(\"base64_decode\"\);\s*(\$\w+)\s*=\s*\2\(\1\.\'\("([^"]+)"\)\);\'\);\s*\$\w+\(\3\);~msi',
            'fast' => '~(\$\w{1,40})\s*=\s*\"riny\(\"\.(\$\w+)\(\"base64_decode\"\);\s*(\$\w+)\s*=\s*\2\(\1\.\'\("([^"]+)"\)\);\'\);\s*\$\w+\(\3\);~msi',
            'id' => 'GBZ'),

        array(
            'full' => '~\$\w+\s*=\s*\d+;\s*\$GLOBALS\[\'[^\']+\'\]\s*=\s*Array\(\);\s*global\s*\$\w+;(\$\w{1,40})\s*=\s*\$GLOBALS;\$\{"\\\\x[a-z0-9\\\\]+"\}\[(\'\w+\')\]\s*=\s*\"(([^\"\\\\]|\\\\.)*)\";\1\[(\1\[\2\]\[\d+\].?).+?exit\(\);\}+~msi',
            'fast' => '~(\$\w{1,40})\s*=\s*\$GLOBALS;\$\{"\\\\x[a-z0-9\\\\]+"\}\[(\'\w+\')\]\s*=\s*\"(([^\"\\\\]|\\\\.)*)\";\1\[(\1\[\2\]\[\d+\].?)~msi',
            'id' => 'globalsArray'),

        array(
            'full' => '~(\${(["\w\\\\]+)}\[["\w\\\\]+\]=["\w\\\\]+;)+((\${\${(["\w\\\\]+)}\[["\w\\\\]+\]}).?=((urldecode\(["%\w]+\);)|(\${\${["\w\\\\]+}\[["\w\\\\]+\]}{\d+}.?)+;))+eval\(\${\${["\w\\\\]+}\[["\w\\\\]+\]}\(["\w+=]+\)\);~msi',
            'fast' => '~(\${(["\w\\\\]+)}\[["\w\\\\]+\]=["\w\\\\]+;)+((\${\${(["\w\\\\]+)}\[["\w\\\\]+\]}).?=((urldecode\(["%\w]+\);)|(\${\${["\w\\\\]+}\[["\w\\\\]+\]}{\d+}.?)+;))+eval\(\${\${["\w\\\\]+}\[["\w\\\\]+\]}\(["\w+=]+\)\);~msi',
            'id' => 'xbrangwolf'),

        array(
            'full' => '~(\$\w{1,40})\s*=\s*\'(\\\\.|[^\']){0,100}\';\s*\$\w+\s*=\s*\'(\\\\.|[^\']){0,100}\'\^\1;[^)]+\)+;\s*\$\w+\(\);~msi',
            'fast' => '~(\$\w{1,40})\s*=\s*\'(\\\\.|[^\']){0,100}\';\s*\$\w+\s*=\s*\'(\\\\.|[^\']){0,100}\'\^\1;~msi',
            'id' => 'xoredVar'),

        array(
            'full' => '~(\$\w{1,40})\s*=\s*\'([^\']*)\';\s*(\$\w{1,40})\s*=\s*explode\s*\((chr\s*\(\s*\(\d+\-\d+\)\)),substr\s*\(\1,\s*\((\d+\-\d+)\),\s*\(\s*(\d+\-\d+)\)\)\);\s*(\$\w{1,40})\s*=\s*\3\[\d+\]\s*\(\3\[\s*\(\d+\-\d+\)\]\);\s*(\$\w{1,40})\s*=\s*\3\[\d+\]\s*\(\3\[\s*\(\d+\-\d+\)\]\);\s*if\s*\(!function_exists\s*\(\'([^\']*)\'\)\)\s*\{\s*function\s*\9\s*\(.+\1\s*=\s*\$\w+[+\-\*]\d+;~msi',
            'fast' => '~(\$\w{1,40})\s=\s\'([^\']*)\';\s(\$\w{1,40})=explode\((chr\(\(\d+\-\d+\)\)),substr\(\1,\((\d+\-\d+)\),\((\d+\-\d+)\)\)\);\s(\$\w{1,40})\s=\s\3\[\d+\]\(\3\[\(\d+\-\d+\)\]\);\s(\$\w{1,40})\s=\s\3\[\d+\]\(\3\[\(\d+\-\d+\)\]\);\sif\s\(!function_exists\(\'([^\']*)\'\)\)\s\{\sfunction\s*\9\(~msi',
            'id' => 'arrayOffsets'),

        array(
            'full' => '~(\$\w{1,50}\s*=\s*array\((\'\d+\',?)+\);)+\$\w{1,40}=\"([^\"]+)\";if\s*\(!function_exists\(\"\w{1,50}\"\)\)\s*\{\s*function\s*[^\}]+\}\s*return\s*\$\w+;\}[^}]+}~msi',
            'fast' => '~(\$\w{1,50}=\s*array\((\'\d+\',?)+\);)+\$\w{1,40}=\"[^\"]+\";if\s*\(!function_exists\(\"\w{1,50}\"\)\)\{\s*function ~msi',
            'id' => 'obfB64'),

        array(
            'full' => '~if\(\!function_exists\(\'findsysfolder\'\)\){function findsysfolder\(\$fld\).+\$REXISTHEDOG4FBI=\'([^\']+)\';\$\w+=\'[^\']+\';\s*eval\(\w+\(\'([^\']+)\',\$REXISTHEDOG4FBI\)\);~msi',
            'fast' => '~if\(!function_exists\(\'findsysfolder\'\)\){function findsysfolder\(\$fld\)\{\$fld1=dirname\(\$fld\);\$fld=\$fld1\.\'/scopbin\';clearstatcache\(\);if\(!is_dir\(\$fld\)\)return findsysfolder\(\$fld1\);else return \$fld;\}\}require_once\(findsysfolder\(__FILE__\)\.\'/911006\.php\'\);~msi',
            'id' => 'sourceCop'),

        array(
            'full' => '~function\s*(\w{1,40})\s*\(\s*(\$\w{1,40})\s*,\s*(\$\w{1,40})\s*\)\s*\{\s*(\$\w{1,40})\s*=\s*str_rot13\s*\(\s*gzinflate\s*\(\s*str_rot13\s*\(\s*base64_decode\s*\(\s*[\'"][^\'"]*[\'"]\s*\)\s*\)\s*\)\s*\)\s*;\s*(if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*(\$\w{1,40})\s*=(\$\w+[\{\[]\d+[\}\]]\.?)+;return\s*(\$\w+)\(\3\);\s*\}\s*else\s*)+\s*if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*return\s*eval\(\3\);\s*\}\s*\};\s*(\$\w{1,40})\s*=\s*[\'"][^\'"]*[\'"];(\s*\9\([\'"][^\'"]*[\'"],)+\s*[\'"][^\'"]*[\'"]\s*\)+;~msi',
            'fast' => '~function\s*(\w{1,40})\s*\(\s*(\$\w{1,40})\s*,\s*(\$\w{1,40})\s*\)\s*\{\s*(\$\w{1,40})\s*=\s*str_rot13\s*\(\s*gzinflate\s*\(\s*str_rot13\s*\(\s*base64_decode\s*\(\s*[\'"][^\'"]*[\'"]\s*\)\s*\)\s*\)\s*\)\s*;\s*(if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*(\$\w{1,40})\s*=(\$\w+[\{\[]\d+[\}\]]\.?)+;return\s*(\$\w+)\(\3\);\s*\}\s*else\s*)+\s*if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*return\s*eval\(\3\);\s*\}\s*\};\s*(\$\w{1,40})\s*=\s*[\'"][^\'"]*[\'"];(\s*\9\([\'"][^\'"]*[\'"],)+\s*[\'"][^\'"]*[\'"]\s*\)+;~msi',
            'id' => 'webshellObf',

        ),

        array(
            'full' => '~(\$\w{1,40})=\'([^\'\\\\]|.*?)\';\s*((\$\w{1,40})=(\1\[\d+].?)+;\s*)+(\$\w{1,40})=\'\';\s*(\$\w{1,40})\(\6,\$\w{1,40}\.\"([^\"]+)\"\.\$\w{1,40}\.\4\);~msi',
            'fast' => '~(\$\w{1,40})=\'([^\\\\\']|.*?)\';\s*((\$\w{1,40})=(\1\[\d+].?)+;\s*)+(\$\w{1,40})=\'\';~msi',
            'id' => 'substCreateFunc'
        ),

        array(
            'full' => '~(\$\w+)=[create_function".]+;\s*\1=\1\(\'(\$\w+)\',[\'.eval\("\?>".gzinflate\(base64_decode]+\2\)+;\'\);\s*\1\(\'([^\']+)\'\);~msi',
            'fast' => '~(\$\w+)=[create_function".]+;\s*\1=\1\(\'(\$\w+)\',[\'.eval\("\?>".gzinflate\(base64_decode]+\2\)+;\'\);\s*\1\(\'([^\']+)\'\);~msi',
            'id' => 'createFunc'
        ),

        array(
            'full' => '~(?(DEFINE)(?\'foreach\'(?:/\*\w+\*/)?\s*foreach\(\[[\d,]+\]\s*as\s*\$\w+\)\s*\{\s*\$\w+\s*\.=\s*\$\w+\[\$\w+\];\s*\}\s*(?:/\*\w+\*/)?\s*))(\$\w+)\s*=\s*"([^"]+)";\s*\$\w+\s*=\s*"";(?P>foreach)if\(isset\(\$_REQUEST\s*(?:/\*\w+\*/)?\["\$\w+"\]\)+\{\s*\$\w+\s*=\s*\$_REQUEST\s*(?:/\*\w+\*/)?\["\$\w+"\];(?:\s*\$\w+\s*=\s*"";\s*)+(?P>foreach)+\$\w+\s*=\s*\$\w+\([create_function\'\.]+\);\s*\$\w+\s*=\s*\$\w+\("",\s*\$\w+\(\$\w+\)\);\s*\$\w+\(\);\s*(?:exit\(\);)?\s*}~mis',
            'fast' => '~(?(DEFINE)(?\'foreach\'(?:/\*\w+\*/)?\s*foreach\(\[[\d,]+\]\s*as\s*\$\w+\)\s*\{\s*\$\w+\s*\.=\s*\$\w+\[\$\w+\];\s*\}\s*(?:/\*\w+\*/)?\s*))(\$\w+)\s*=\s*"([^"]+)";\s*\$\w+\s*=\s*"";(?P>foreach)if\(isset\(\$_REQUEST\s*(?:/\*\w+\*/)?\["\$\w+"\]\)+\{\s*\$\w+\s*=\s*\$_REQUEST\s*(?:/\*\w+\*/)?\["\$\w+"\];(?:\s*\$\w+\s*=\s*"";\s*)+(?P>foreach)+\$\w+\s*=\s*\$\w+\([create_function\'\.]+\);\s*\$\w+\s*=\s*\$\w+\("",\s*\$\w+\(\$\w+\)\);\s*\$\w+\(\);~mis',
            'id' => 'forEach'
        ),

        array(
            'full' => '~\$\w+\s*=\s*base64_decode\s*\([\'"][^\'"]+[\'"]\);\s*if\s*\(!function_exists\s*\("rotencode"\)\).{0,1000}eval\s*\(\$\w+\s*\(base64_decode\s*\([\'"][^"\']+[\'"]\)+;~msi',
            'fast' => '~\$\w+\s*=\s*base64_decode\s*\([\'"][^\'"]+[\'"]\);\s*if\s*\(!function_exists\s*\("rotencode"\)\).{0,1000}eval\s*\(\$\w+\s*\(base64_decode\s*\([\'"][^"\']+[\'"]\)+;~msi',
            'id' => 'PHPMyLicense',
        ),

        array(
            'full' => '~(\$\w{1,40})\s*=\s*file\(__FILE__\);\s*if\(!function_exists\(\"([^\"]*)\"\)\)\{function\s*\2\((\$\w{1,40}),(\$\w{1,40})=\d+\)\{(\$\w{1,40})=implode\(\"[^\"]*\",\3\);(\$\w{1,40})=array\((\d+),(\d+),(\d+)\);if\(\4==0\)\s*(\$\w{1,40})=substr\(\5,\6\[\d+\],\6\[\d+\]\);elseif\(\4==1\)\s*\10=substr\(\5,\6\[\d+\]\+\6\[\d+\],\6\[\d+\]\);else\s*\10=trim\(substr\(\5,\6\[\d+\]\+\6\[\d+\]\+\6\[\d+\]\)\);return\s*\(\10\);\}\}\s*eval\(\w{1,40}\(\2\(\1\s*,\s*2\)\s*,\s*\2\(\1\s*,\s*1\)\)\);\s*__halt_compiler\(\);\s*[\w\+\=/]+~msi',
            'fast' => '~(\$\w{1,40})\s*=\s*file\(__FILE__\);\s*if\(!function_exists\(\"([^\"]*)\"\)\)\{function\s*\2\((\$\w{1,40}),(\$\w{1,40})=\d+\)\{(\$\w{1,40})=implode\(\"[^\"]*\",\3\);(\$\w{1,40})=array\((\d+),(\d+),(\d+)\);if\(\4==0\)\s*(\$\w{1,40})=substr\(\5,\6\[\d+\],\6\[\d+\]\);elseif\(\4==1\)\s*\10=substr\(\5,\6\[\d+\]\+\6\[\d+\],\6\[\d+\]\);else\s*\10=trim\(substr\(\5,\6\[\d+\]\+\6\[\d+\]\+\6\[\d+\]\)\);return\s*\(\10\);\}\}\s*eval\(\w{1,40}\(\2\(\1\s*,\s*2\)\s*,\s*\2\(\1\s*,\s*1\)\)\);\s*__halt_compiler\(\);~msi',
            'id' => 'zeura'),

        array(
            'full' => '~((\$\w+)\s*\.=\s*"[^"]+";\s*)+eval\((\$\w+\s*\.?\s*)+\)~msi',
            'fast' => '~((\$\w+)\s*\.=\s*"[^"]+";\s*)+eval\((\$\w+\s*\.?\s*)+\)~msi',
            'id' => 'evalVarConcat'),

        array(
            'full' => '~((\$\w+)\s*=\s*[\'"]([^\'"]+)[\'"];\s*)+\s*.{0,10}?@?eval\s*\(\s*([\'"?>.\s]+)?\(?(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()+(\({0,1}[\s"\']?(\$\w+)?(?:str_replace\((?:.+?,){3}\2?)?[\s"\']?\){0,1})\)+;~msi',
            'fast' => '~((\$\w+)\s*=\s*[\'"]([^\'"]+)[\'"];\s*)+\s*.{0,10}?@?eval\s*\(\s*([\'"?>.\s]+)?\(?(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()+(\({0,1}[\s"\']?(\$\w+)?(?:str_replace\((?:.+?,){3}\2?)?[\s"\']?\){0,1})\)+;~msi',
            'id' => 'evalVar'),

        array(
            'full' => '~function\s*(\w{1,40})\((\$\w{1,40})\)\{(\$\w{1,40})=\'base64_decode\';(\$\w{1,40})=\'gzinflate\';return\s*\4\(\3\(\2\)\);\}\$\w{1,40}=\'[^\']*\';\$\w{1,40}=\'[^\']*\';eval\(\1\(\'([^\']*)\'\)\);~msi',
            'fast' => '~function\s*(\w{1,40})\((\$\w{1,40})\)\{(\$\w{1,40})=\'base64_decode\';(\$\w{1,40})=\'gzinflate\';return\s*\4\(\3\(\2\)\);\}\$\w{1,40}=\'[^\']*\';\$\w{1,40}=\'[^\']*\';eval\(\1\(\'([^\']*)\'\)\);~msi',
            'id' => 'evalFunc'),

        array(
            'full' => '~function\s*(\w{1,40})\s*\((\$\w{1,40})\)\s*\{\s*(\$\w{1,40})\s*=\s*"\\\\x62\\\\x61\\\\x73\\\\x65\\\\x36\\\\x34\\\\x5f\\\\x64\\\\x65\\\\x63\\\\x6f\\\\x64\\\\x65";\s*(\$\w{1,40})\s*=\s*"\\\\x67\\\\x7a\\\\x69\\\\x6e\\\\x66\\\\x6c\\\\x61\\\\x74\\\\x65";\s*return\s*\4\s*\(\3\s*\(\2\)\);\s*\}\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*eval\s*\(\1\s*\(\"([^\"]*)\"\)\);~msi',
            'fast' => '~function\s*(\w{1,40})\s*\((\$\w{1,40})\)\s*\{\s*(\$\w{1,40})\s*=\s*"\\\\x62\\\\x61\\\\x73\\\\x65\\\\x36\\\\x34\\\\x5f\\\\x64\\\\x65\\\\x63\\\\x6f\\\\x64\\\\x65";\s*(\$\w{1,40})\s*=\s*"\\\\x67\\\\x7a\\\\x69\\\\x6e\\\\x66\\\\x6c\\\\x61\\\\x74\\\\x65";\s*return\s*\4\s*\(\3\s*\(\2\)\);\s*\}\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*eval\s*\(\1\s*\(\"([^\"]*)\"\)\);~msi',
            'id' => 'evalFunc'),

        array(
            'full' => '~(\$\w+)\s?=\s?[\'"]@?(([\w."]+\()+[\'"]([\w\/+]+)[\'"])\)+;[\'"]\s?;\s?(\$\w+)\s?=\s?([\w@."]+)\s?;\s?@?(\$\w+)\s?=\s\5\([\'"]+,\s?"\1;"\s?\);\7\([\'"]{2}\);~msi',
            'fast' => '~(\$\w+)\s?=\s?[\'"]@?(([\w."]+\()+[\'"]([\w\/+]+)[\'"])\)+;[\'"]\s?;\s?(\$\w+)\s?=\s?([\w@."]+)\s?;\s?@?(\$\w+)\s?=\s\5\([\'"]+,\s?"\1;"\s?\);\7\([\'"]{2}\);~msi',
            'id' => 'evalConcatFunc'),

        array(
            'full' => '~function\sT_\((\$\w+)\)\s{\s(\$\w+)\s=\s256;\s(\$w2)\s=\s8;\s(\$\w+)\s=\sarray\(\);\s(\$\w+)\s=\s0;\s(\$\w+)\s=\s0;\sfor\s\((\$\w+)\s=\s0;\s\7\s<\sstrlen\(\1\);\s\7\+\+\)\s{\s\5\s=\s\(\5\s<<\s8\)\s\+\sord\(\1\[\7\]\);\s\6\s\+=\s8;\sif\s\(\6\s>=\s\3\)\s{\s\6\s-=\s\3;\s(\$\w+)\[\]\s=\s\5\s>>\s\6;\s\5\s&=\s\(1\s<<\s\6\)\s-\s1;\s\2\+\+;\sif\s\(\2\s>>\s\3\)\s{\s\3\+\+;\s}\s}\s}\s(\$\w+)\s=\srange\("\\\\x0",\s"\\\\377"\);\s(\$\w+)\s=\s\'\';\sforeach\s\(\4\sas\s\7\s=>\s(\$\w+)\)\s{\sif\s\(!isset\(\9\[\11\]\)\)\s{\s(\$\w+)\s=\s(\$\w+)\s\.\s\13\[0\];\s}\selse\s{\s\12\s=\s\9\[\11\];\s}\s\10\s\.=\s\12;\sif\s\(\7\)\s{\s\9\[\]\s=\s\13\s\.\s\12\[0\];\s}\s\13\s=\s\12;\s}\sreturn\s\10;\s}\s(\$_\w+)="[\w\\\\]+";eval\(T_\(\14\("(.*)"\)\)\);~mis',
            'fast' => '~function\sT_\((\$\w+)\)\s{\s(\$\w+)\s=\s256;\s(\$w2)\s=\s8;\s(\$\w+)\s=\sarray\(\);\s(\$\w+)\s=\s0;\s(\$\w+)\s=\s0;\sfor\s\((\$\w+)\s=\s0;\s\7\s<\sstrlen\(\1\);\s\7\+\+\)\s{\s\5\s=\s\(\5\s<<\s8\)\s\+\sord\(\1\[\7\]\);\s\6\s\+=\s8;\sif\s\(\6\s>=\s\3\)\s{\s\6\s-=\s\3;\s(\$\w+)\[\]\s=\s\5\s>>\s\6;\s\5\s&=\s\(1\s<<\s\6\)\s-\s1;\s\2\+\+;\sif\s\(\2\s>>\s\3\)\s{\s\3\+\+;\s}\s}\s}\s(\$\w+)\s=\srange\("\\\\x0",\s"\\\\377"\);\s(\$\w+)\s=\s\'\';\sforeach\s\(\4\sas\s\7\s=>\s(\$\w+)\)\s{\sif\s\(!isset\(\9\[\11\]\)\)\s{\s(\$\w+)\s=\s(\$\w+)\s\.\s\13\[0\];\s}\selse\s{\s\12\s=\s\9\[\11\];\s}\s\10\s\.=\s\12;\sif\s\(\7\)\s{\s\9\[\]\s=\s\13\s\.\s\12\[0\];\s}\s\13\s=\s\12;\s}\sreturn\s\10;\s}\s(\$_\w+)="[\w\\\\]+";eval\(T_\(\14\("(.*)"\)\)\);~mis',
            'id' => 'evalFuncFunc'
        ),

        array(
            'full' => '~(preg_replace\(["\']/\.\*?/[^"\']+["\']\s*,\s*)[^\),]+(?:[\)\\\\0-5]+;[\'"])?(,\s*["\'][^"\']*["\'])\)+;~msi',
            'fast' => '~(preg_replace\(["\']/\.\*?/[^"\']+["\']\s*,\s*)[^\),]+(?:[\)\\\\0-5]+;[\'"])?(,\s*["\'][^"\']*["\'])\)+;~msi',
            'id' => 'eval'),

        array(
            'full' => '~(\$\w{1,40})\s*=\s*[\'"]([^\'"]*)[\'"]\s*;\s*(\$\w{1,40}\s*=\s*(strtolower|strtoupper)\s*\((\s*\1[\[\{]\s*\d+\s*[\]\}]\s*\.?\s*)+\);\s*)+\s*if\s*\(\s*isset\s*\(\s*\$\{\s*\$\w{1,40}\s*\}\s*\[\s*[\'"][^\'"]*[\'"]\s*\]\s*\)\s*\)\s*\{\s*eval\s*\(\s*\$\w{1,40}\s*\(\s*\$\s*\{\s*\$\w{1,40}\s*\}\s*\[\s*[\'"][^\'"]*[\'"]\s*\]\s*\)\s*\)\s*;\s*\}\s*~msi',
            'fast' => '~(\$\w{1,40})\s*=\s*[\'"]([^\'"]*)[\'"]\s*;\s*(\$\w{1,40}\s*=\s*(strtolower|strtoupper)\s*\((\s*\1[\[\{]\s*\d+\s*[\]\}]\s*\.?\s*)+\);\s*)+\s*if\s*\(\s*isset\s*\(\s*\$\{\s*\$\w{1,40}\s*\}\s*\[\s*[\'"][^\'"]*[\'"]\s*\]\s*\)\s*\)\s*\{\s*eval\s*\(\s*\$\w{1,40}\s*\(\s*\$\s*\{\s*\$\w{1,40}\s*\}\s*\[\s*[\'"][^\'"]*[\'"]\s*\]\s*\)\s*\)\s*;\s*\}\s*~msi',
            'id' => 'evalInject'

        ),

        array(
            'full' => '~((\$\w+)\s*=\s*(([base64_decode\'\.\s]+)|([eval\'\.\s]+)|([create_function\'\.\s]+)|([stripslashes\'\.\s]+)|([gzinflate\'\.\s]+)|([strrev\'\.\s]+)|([str_rot13\'\.\s]+)|([gzuncompress\'\.\s]+)|([urldecode\'\.\s]+)([rawurldecode\'\.\s]+));\s*)+\$\w+\s*=\s*\$\w+\(\'\',(\s*\$\w+\s*\(\s*)+\'[^\']+\'\)+;\s*\$\w+\(\);~msi',
            'fast' => '~((\$\w+)\s*=\s*(([base64_decode\'\.\s]+)|([eval\'\.\s]+)|([create_function\'\.\s]+)|([stripslashes\'\.\s]+)|([gzinflate\'\.\s]+)|([strrev\'\.\s]+)|([str_rot13\'\.\s]+)|([gzuncompress\'\.\s]+)|([urldecode\'\.\s]+)([rawurldecode\'\.\s]+));\s*)+\$\w+\s*=\s*\$\w+\(\'\',(\s*\$\w+\s*\(\s*)+\'[^\']+\'\)+;\s*\$\w+\(\);~msi',
            'id' => 'createFuncConcat'

        ),

        array(
            'full' => '~(\$\w+)\s*=\s*base64_decode\("([^"]+)"\);(\1\s*=\s*ereg_replace\("([^"]+)","([^"]+)",\1\);)+\1=base64_decode\(\1\);eval\(\1\);~msi',
            'fast' => '~(\$\w+)\s*=\s*base64_decode\("([^"]+)"\);(\1\s*=\s*ereg_replace\("([^"]+)","([^"]+)",\1\);)+\1=base64_decode\(\1\);eval\(\1\);~msi',
            'id' => 'evalEregReplace'

        ),

        array(
            'full' => '~((\$\w+)\s*=\s*(([base64_decode"\'\.\s]+)|([eval"\'\.\s]+)|([create_function"\'\.\s]+)|([stripslashes"\'\.\s]+)|([gzinflate"\'\.\s]+)|([strrev"\'\.\s]+)|([str_rot13"\'\.\s]+)|([gzuncompress"\'\.\s]+)|([urldecode"\'\.\s]+)([rawurldecode"\'\.\s]+));\s*)+\s*@?eval\(\$[^)]+\)+;~msi',
            'fast' => '~((\$\w+)\s*=\s*(([base64_decode"\'\.\s]+)|([eval"\'\.\s]+)|([create_function"\'\.\s]+)|([stripslashes"\'\.\s]+)|([gzinflate"\'\.\s]+)|([strrev"\'\.\s]+)|([str_rot13"\'\.\s]+)|([gzuncompress"\'\.\s]+)|([urldecode"\'\.\s]+)([rawurldecode"\'\.\s]+));\s*)+\s*@?eval\(\$[^)]+\)+;~msi',
            'id' => 'evalWrapVar'

        ),

        array(
            'full' => '~\$\{"(.{1,20}?(\\\\x[0-9a-f]{2})+)+.?";@?eval\s*\(\s*([\'"?>.]+)?@?\s*(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+\(?\$\{\$\{"[^\)]+\)+;~msi',
            'fast' => '~\$\{"(.{1,20}?(\\\\x[0-9a-f]{2})+)+.?";@?eval\s*\(\s*([\'"?>.]+)?@?\s*(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+\(?\$\{\$\{"[^\)]+\)+;~msi',
            'id' => 'escapes'
        ),

        array(
            'full' => '~(\$\w+)\s*=(?:\s*(?:(?:["\'][a-z0-9][\'"])|(?:chr\s*\(\d+\))|(?:[\'"]\\\\x[0-9a-f]+[\'"]))\s*?\.?)+;\s*(\$\w+)\s*=(?:\s*(?:(?:["\'][a-z0-9][\'"])|(?:chr\s*\(\d+\))|(?:[\'"]\\\\x[0-9a-f]+[\'"]))\s*?\.?)+;\s*@?\1\s*\(@?\2\s*\([\'"]([^\'"]+)[\'"]\)+;~msi',
            'fast' => '~(\$\w+)\s*=(?:\s*(?:(?:["\'][a-z0-9][\'"])|(?:chr\s*\(\d+\))|(?:[\'"]\\\\x[0-9a-f]+[\'"]))\s*?\.?)+;\s*(\$\w+)\s*=(?:\s*(?:(?:["\'][a-z0-9][\'"])|(?:chr\s*\(\d+\))|(?:[\'"]\\\\x[0-9a-f]+[\'"]))\s*?\.?)+;\s*@?\1\s*\(@?\2\s*\([\'"]([^\'"]+)[\'"]\)+;~msi',
            'id' => 'assert',
        ),

        array(
            'full' => '~eval\s*\(str_rot13\s*\([\'"]+\s*(?:.+(?=\\\\\')\\\\\'[^\'"]+)+[\'"]+\)+;~msi',
            'fast' => '~eval\s*\(str_rot13\s*\([\'"]+\s*(?:.+(?=\\\\\')\\\\\'[^\'"]+)+[\'"]+\)+;~msi',
            'id' => 'evalCodeFunc'
        ),

        array(
            'full' => '~\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\'](\w+)[\'"];\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\']\2[\'"];\${\$\{"GLOBALS"\}\[[\'"]\3[\'"]\]}=[\'"]([^\'"]+)[\'"];eval.{10,50}?\$\{\$\{"GLOBALS"\}\[[\'"]\1[\'"]\]\}\)+;~msi',
            'fast' => '~\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\'](\w+)[\'"];\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\']\2[\'"];\${\$\{"GLOBALS"\}\[[\'"]\3[\'"]\]}=[\'"]([^\'"]+)[\'"];eval.{10,50}?\$\{\$\{"GLOBALS"\}\[[\'"]\1[\'"]\]\}\)+;~msi',
            'id' => 'evalVarVar',
        ),

        array(
            'full' => '~(\$\w+)=[\'"][^"\']+[\'"];(\$\w+)=strrev\(\'edoced_46esab\'\);eval\(\2\([\'"][^\'"]+[\'"]\)+;~msi',
            'fast' => '~(\$\w+)=[\'"][^"\']+[\'"];(\$\w+)=strrev\(\'edoced_46esab\'\);eval\(\2\([\'"][^\'"]+[\'"]\)+;~msi',
            'id' => 'edoced_46esab',
        ),

        array(
            'full' => '~(\$\w+)=strrev\(\'edoced_46esab\'\);\s?(\$\w+)=strrev\(\'etalfnizg\'\);\s?eval\(\2\(\1\([\'"]([\w\/\+=]+)[\'"]\)\)\);~msi',
            'fast' => '~(\$\w+)=strrev\(\'edoced_46esab\'\);\s?(\$\w+)=strrev\(\'etalfnizg\'\);\s?eval\(\2\(\1\([\'"]([\w\/\+=]+)[\'"]\)\)\);~msi',
            'id' => 'edoced_46esab_etalfnizg',
        ),

        array(
            'full' => '~(\$\w+)\s*=\s*"((?:[^"]|(?<=\\\\)")*)";(\$\w+)\s*=\s*(\1\[\d+\]\.?)+;(\$\w+)\s*=\s*[^;]+;(\$\w+)\s*=\s*"[^"]+";\$\w+\s*=\s*\5\."[^"]+"\.\6;\3\((\1\[\d+\]\.?)+,\s*\$\w+\s*,"\d+"\);~smi',
            'fast' => '~(\$\w+)\s*=\s*"((?:[^"]|(?<=\\\\)"){0,1000})";(\$\w+)\s*=\s*(\1\[\d+\]\.?)+;(\$\w+)\s*=\s*[^;]+;(\$\w+)\s*=\s*"[^"]+";\$\w+\s*=\s*\5\."[^"]+"\.\6;\3\((\1\[\d+\]\.?)+,\s*\$\w+\s*,"\d+"\);~smi',
            'id' => 'eval2'
        ),

        array(
            'full' => '~@?(eval|echo|(\$\w+)\s*=\s*create_function)\s*\((\'\',)?\s*([\'"?>.\s]+)?\s*\(?\s*@?\s*(base64_decode\s*\(|pack\s*\(\'H\*\',|convert_uudecode\s*\(|htmlspecialchars_decode\s*\(|stripslashes\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+.*?[^\'")]+((\s*\.?[\'"]([^\'";]+[\'"]*\s*)+)?\s*[\'"\);]+)+(\s*\2\(\);)?~msi',
            'fast' => '~@?(eval|echo|(\$\w+)\s*=\s*create_function)\s*\((\'\',)?\s*([\'"?>.\s]+)?\s*\(?\s*@?\s*(base64_decode\s*\(|pack\s*\(\'H\*\',|convert_uudecode\s*\(|htmlspecialchars_decode\s*\(|stripslashes\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+.*?[^\'")]+((\s*\.?[\'"]([^\'";]+[\'"]*\s*)+)?\s*[\'"\);]+)+(\s*\2\(\);)?~msi',
            'id' => 'eval'
        ),

        array(
            'full' => '~eval\s*/\*[\w\s\.:,]+\*/\s*\([^\)]+\)+;~msi',
            'fast' => '~eval\s*/\*[\w\s\.:,]+\*/\s*\(~msi',
            'id' => 'eval'
        ),

        array(
            'full' => '~eval\("\\\\145\\\\166\\\\141\\\\154\\\\050\\\\142\\\\141\\\\163[^\)]+\)+;~msi',
            'fast' => '~eval\("\\\\145\\\\166\\\\141\\\\154\\\\050\\\\142\\\\141\\\\163~msi',
            'id' => 'evalHex'
        ),

        array(
            'full' => '~eval\s*\("\\\\x?\d+[^\)]+\)+;(?:[\'"]\)+;)?~msi',
            'fast' => '~eval\s*\("\\\\x?\d+~msi',
            'id' => 'evalHex'
        ),

        array(
            'full' => '~(\$\w+)\s=\s(["\']?[\w\/\+]+["\']?);\s(\$\w+)\s=\s((?:str_rot13\(|rawurldecode\(|convert_uudecode\(|gzinflate\(|str_rot13\(|base64_decode\(|rawurldecode\(|)+\1\)\)+);\secho\s(eval\(\3\);)~msi',
            'fast' => '~(\$\w+)\s=\s(["\']?[\w\/\+]+["\']?);\s(\$\w+)\s=\s((?:str_rot13\(|rawurldecode\(|convert_uudecode\(|gzinflate\(|str_rot13\(|base64_decode\(|rawurldecode\(|)+\1\)\)+);\secho\s(eval\(\3\);)~msi',
            'id' => 'echoEval'
        ),

        array(
            'full' => '~\$\w+=\'printf\';(\s*\$\w+\s*=\s*\'[^\']+\'\s*;)+\s*(\$\w+\s*=\s*\$\w+\([^\)]+\);\s*)+(\$\w+\s*=\s*\'[^\']+\';\s*)?(\s*(\$\w+\s*=\s*)?\$\w+\([^)]*\)+;\s*)+(echo\s*\$\w+;)?~msi',
            'fast' => '~\$\w+=\'printf\';(\s*\$\w+\s*=\s*\'[^\']+\'\s*;)+\s*(\$\w+\s*=\s*\$\w+\([^\)]+\);\s*)+(\$\w+\s*=\s*\'[^\']+\';\s*)?(\s*(\$\w+\s*=\s*)?\$\w+\([^)]*\)+;\s*)+(echo\s*\$\w+;)?~msi',
            'id' => 'seolyzer'
        ),

        array(
            'full' => '~(\$\w+)="((?:[^"]|(?<=\\\\)")*)";(\s*\$GLOBALS\[\'\w+\'\]\s*=\s*(?:\${)?(\1\[\d+\]}?\.?)+;\s*)+(.{0,400}\s*\1\[\d+\]\.?)+;\s*}~msi',
            'fast' => '~(\$\w+)="((?:[^"]|(?<=\\\\)"){0,1000})";(\s*\$GLOBALS\[\'\w+\'\]\s*=\s*(?:\${)?(\1\[\d+\]}?\.?)+;\s*)+(.{0,400}\s*\1\[\d+\]\.?)+;\s*}~msi',
            'id' => 'subst2',
        ),

        array(
            'full' => '~(\$\w+\s*=\s*"[^"]+";\s*)+(\$\w+\s*=\s*\$?\w+\("\w+"\s*,\s*""\s*,\s*"\w+"\);\s*)+\$\w+\s*=\s*\$\w+\("",\s*\$\w+\(\$\w+\("\w+",\s*"",(\s*\$\w+\.?)+\)+;\$\w+\(\);~msi',
            'fast' => '~(\$\w+\s*=\s*"[^"]+";\s*)+(\$\w+\s*=\s*\$?\w+\("\w+"\s*,\s*""\s*,\s*"\w+"\);\s*)+\$\w+\s*=\s*\$\w+\("",\s*\$\w+\(\$\w+\("\w+",\s*"",(\s*\$\w+\.?)+\)+;\$\w+\(\);~msi',
            'id' => 'strreplace',
        ),

        array(
            'full' => '~@?echo\s*([\'"?>.\s]+)?@?\s*(base64_decode\s*\(|stripslashes\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+.*?[^\'")]+((\s*\.?[\'"]([^\'";]+\s*)+)?\s*[\'"\);]+)+~msi',
            'fast' => '~@?echo\s*([\'"?>.\s]+)?@?\s*(base64_decode\s*\(|stripslashes\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+.*?[^\'")]+((\s*\.?[\'"]([^\'";]+\s*)+)?\s*[\'"\);]+)+~msi',
            'id' => 'echo',
        ),

        array(
            'full' => '~(\$\w+)="([^"]+)";\s*(\$\w+)=strtoupper\s*\((\1\[\d+\]\s*\.?\s*)+\)\s*;\s*if\(\s*isset\s*\(\${\s*\3\s*}\[\d*\s*\'\w+\'\s*\]\s*\)\s*\)\s*{eval\(\${\3\s*}\[\'\w+\']\s*\)\s*;}~smi',
            'fast' => '~(\$\w+)="([^"]+)";\s*(\$\w+)=strtoupper\s*\((\1\[\d+\]\s*\.?\s*)+\)\s*;\s*if\(\s*isset\s*\(\${\s*\3\s*}\[\d*\s*\'\w+\'\s*\]\s*\)\s*\)\s*{eval\(\${\3\s*}\[\'\w+\']\s*\)\s*;}~smi',
            'id' => 'strtoupper',
        ),

        array(
            'full' => '~(\$\w+)="[^"]+";\s*(\$\w+)=str_ireplace\("[^"]+","",\1\);(\$\w+)\s*=\s*"[^"]+";\s*function\s*(\w+)\((\$\w+,?)+\){\s*(\$\w+)=\s*create_function\(\'\',\$\w+\);\s*array_map\(\6,array\(\'\'\)+;\s*}\s*set_error_handler\(\'\4\'\);(\$\w+)=\2\(\3\);user_error\(\7,E_USER_ERROR\);\s*if\s*.+?}~msi',
            'fast' => '~(\$\w+)="[^"]+";\s*(\$\w+)=str_ireplace\("[^"]+","",\1\);(\$\w+)\s*=\s*"[^"]+";\s*function\s*(\w+)\((\$\w+,?)+\){\s*(\$\w+)=\s*create_function\(\'\',\$\w+\);\s*array_map\(\6,array\(\'\'\)+;\s*}\s*set_error_handler\(\'\4\'\);(\$\w+)=\2\(\3\);user_error\(\7,E_USER_ERROR\);\s*if\s*.+?}~msi',
            'id' => 'errorHandler',
        ),

        array(
            'full' => '~(\$\w+)=strrev\(str_ireplace\("[^"]+","","[^"]+"\)\);(\$\w+)="([^"]+)";eval\(\1\(\2\)+;}~msi',
            'fast' => '~(\$\w+)=strrev\(str_ireplace\("[^"]+","","[^"]+"\)\);(\$\w+)="([^"]+)";eval\(\1\(\2\)+;}~msi',
            'id' => 'evalIReplace',
        ),

        array(
            'full' => '~error_reporting\(0\);ini_set\("display_errors",\s*0\);if\(!defined\(\'(\w+)\'\)\){define\(\'\1\',__FILE__\);if\(!function_exists\("([^"]+)"\)\){function [^(]+\([^\)]+\).+?eval\(""\);.+?;eval\(\$[^\)]+\)\);[^\)]+\)+;return\s*\$[^;]+;\s*\?>([^;]+);~msi',
            'fast' => '~error_reporting\(0\);ini_set\("display_errors",\s*0\);if\(!defined\(\'(\w+)\'\)\){define\(\'\1\',__FILE__\);if\(!function_exists\("([^"]+)"\)\){function [^(]+\([^\)]+\).+?eval\(""\);.+?;eval\(\$[^\)]+\)\);[^\)]+\)+;return\s*\$[^;]+;\s*\?>([^;]+);~msi',
            'id' => 'PHPJiaMi',
        ),

        array(
            'full' => '~\$\w+=0;(\$GLOBALS\[\'\w+\'\])\s*=\s*\'([^\']+)\';\s*(\$\w+)=pack\(\'H\*\',substr\(\1,\s*([-\d]+)\)\);if\s*\(!function_exists\(\'(\w+)\'\)\){function\s*\5\(\$\w+,\s*\$\w+\){\$\w+=\1;\s*\$d=pack\(\'H\*\',substr\(\1,\s*\4\)\);\s*return\s*\$\w+\(substr\(\$\w+,\s*\$\w+,\s*\$\w+\)\);}};eval\(\3\(\'[^\']+\'\)\);~msi',
            'fast' => '~\$\w+=0;(\$GLOBALS\[\'\w+\'\])\s*=\s*\'([^\']+)\';\s*(\$\w+)=pack\(\'H\*\',substr\(\1,\s*([-\d]+)\)\);if\s*\(!function_exists\(\'(\w+)\'\)\){function\s*\5\(\$\w+,\s*\$\w+\){\$\w+=\1;\s*\$d=pack\(\'H\*\',substr\(\1,\s*\4\)\);\s*return\s*\$\w+\(substr\(\$\w+,\s*\$\w+,\s*\$\w+\)\);}};eval\(\3\(\'[^\']+\'\)\);~msi',
            'id' => 'substr',
        ),

        array(
            'full' => '~(function\s*(\w+)\((\$\w+)\){\s*return\s*(base64_decode|gzinflate|eval)\(\$\w+(,\d+)?\);}\s*)+(\$\w+)="([^"]+)";(\w+\()+\6\)+~msi',
            'fast' => '~(function\s*(\w+)\((\$\w+)\){\s*return\s*(base64_decode|gzinflate|eval)\(\$\w+(,\d+)?\);}\s*)+(\$\w+)="([^"]+)";(\w+\()+\6\)+~msi',
            'id' => 'funcs',
        ),

        array(
            'full' => '~\$_F=__FILE__;\$_X=["\']([^\'"]+)[\'"];\s*(?:\$[_\w]+\.=[\'"][\w\+\/=]+[\'"];){0,30}\$_\w+=base64_decode\(\$_X\);\$_X=strtr\(\$_X,\'([^\']+)\',\'([^\']+)\'\);\$_R=@?(?:(str_replace)|(ereg_replace)|(preg_replace))\(\'\~?__FILE__\~?\',"\'".\$_F."\'",\$_X\);eval\(\$_R\);\$_R=0;\$_X=0;~msi',
            'fast' => '~\$_F=__FILE__;\$_X=["\']([^\'"]+)[\'"];\s*(?:\$[_\w]+\.=[\'"][\w\+\/=]+[\'"];){0,30}\$_\w+=base64_decode\(\$_X\);\$_X=strtr\(\$_X,\'([^\']+)\',\'([^\']+)\'\);\$_R=@?(?:(str_replace)|(ereg_replace)|(preg_replace))\(\'\~?__FILE__\~?\',"\'".\$_F."\'",\$_X\);eval\(\$_R\);\$_R=0;\$_X=0;~msi',
            'id' => 'LockIt2',
        ),

        array(
            'full' => '~(?:@error_reporting\(\d+\);\s*@set_time_limit\(\d+\);)?\s*(\$\w+)=([\s\'\w\/+=]+);\s*(\$\w+)=(__FILE__);\s*\1=gzinflate\(str_rot13\(base64_decode\(\$tr\)\)\);\1=strtr\(\1,\'([^\']+)\'\s*,\'([^\']+)\'\);(\$_R)=@?ereg_replace\(\'\~?\4\~?\',"\'".\3."\'",\1\);eval\(\7\);\7=0;\1=0;~msi',
            'fast' => '~(\$\w+)=([\s\'\w\/+=]+);\s*(\$\w+)=(__FILE__);\s*\1=\w+\(\w+\(\w+\(\$tr\)\)\);\1=\w+\(\1,\'([^\']+)\'\s*,\'([^\']+)\'\);(\$_R)=@?\w+\(\'\~?\4\~?\',"\'".\3."\'",\1\);\w+\(\7\);\7=0;\1=0;~msi',
            'id' => 'anaski',
        ),

        array(
            'full' => '~\$\w+="[^"]+";\$l+=0;\$l+=\'base64_decode\';\$l+=0;eval\(.+?;eval\(\$l+\);return;~msi',
            'fast' => '~\$\w+="[^"]+";\$l+=0;\$l+=\'base64_decode\';\$l+=0;eval\(.+?;eval\(\$l+\);return;~msi',
            'id' => 'custom1',
        ),

        array(
            'full' => '~(\$\w+)\s*=\s*"(\w{32})";\s*(\$\w+)\s*=\s*array\s*\(\);\s*(\3\[\d+\]\s*=\s*"[^"]+";\s*)+\s*(\$\w+)\s*=\s*"base64_decode";\s*\$\w+\s*=\s*(\w+)\s*\(\3,\1\);function\s*\6\(\s*.{200,500}return\s*\$\w+;\s*}\s*eval\s*\(\5\s*\(\$\w+\)\);~msi',
            'fast' => '~(\$\w+)\s*=\s*"(\w{32})";\s*(\$\w+)\s*=\s*array\s*\(\);\s*(\3\[\d+\]\s*=\s*"[^"]+";\s*)+\s*(\$\w+)\s*=\s*"base64_decode";\s*\$\w+\s*=\s*(\w+)\s*\(\3,\1\);function\s*\6\(\s*.{200,500}return\s*\$\w+;\s*}\s*eval\s*\(\5\s*\(\$\w+\)\);~msi',
            'id' => 'custom2',
        ),

        array(
            'full' => '~\$\w+=\'=+\s*Obfuscation provided by Unknowndevice64 - Free Online PHP Obfuscator\s*(?:http://www\.ud64\.com/)?\s*=+\';\s*(\$ud64_c[o0]m="[\\\\0-9a-z\."]+;)+\$\w+=(\$ud64_c[o0]m\()+"([^"]+)"\)+;@eval\(\$ud64_c[o0]m\(\'[^\']+\'\)+;~msi',
            'fast' => '~\$\w+=\'=+\s*Obfuscation provided by Unknowndevice64 - Free Online PHP Obfuscator\s*(?:http://www\.ud64\.com/)?\s*=+\';\s*(\$ud64_c[o0]m="[\\\\0-9a-z\."]+;)+\$\w+=(\$ud64_c[o0]m\()+"([^"]+)"\)+;@eval\(\$ud64_c[o0]m\(\'[^\']+\'\)+;~msi',
            'id' => 'ud64',
        ),

        array(
            'full' => '~(\$[\w_]+=("[\\\\\\\\\w]+"\.?)+;)+\$\w+=(?:\$\w+\()+"([\w\/\+]+)"\)+;@eval\(\$\w+\(\'.*?\'\)+;~msi',
            'fast' => '~(\$[\w_]+=("[\\\\\\\\\w]+"\.?)+;)+\$\w+=(?:\$\w+\()+"([\w\/\+]+)"\)+;@eval\(\$\w+\(\'.*?\'\)+;~msi',
            'id' => 'ud64',
        ),

        array(
            'full' => '~\$\w+=__FILE__;\$\w+=fopen\(\$\w+,\'rb\'\);fread\(\$\w+,(\d+)\);\$\w+=explode\("\\\\t",base64_decode\(fread\(\$\w+,(\d+)\)+;\$\w+=\$\w+\[[\d+]\];[\$l1=\d{}\.;\(\)\[\]]+eval\(\$\w+\(\'[^\']+\'\)+;\s*return\s*;\?>[\w=\+]+~msi',
            'fast' => '~\$\w+=__FILE__;\$\w+=fopen\(\$\w+,\'rb\'\);fread\(\$\w+,(\d+)\);\$\w+=explode\("\\\\t",base64_decode\(fread\(\$\w+,(\d+)\)+;\$\w+=\$\w+\[[\d+]\];[\$l1=\d{}\.;\(\)\[\]]+eval\(\$\w+\(\'[^\']+\'\)+;\s*return\s*;\?>[\w=\+]+~msi',
            'id' => 'qibosoft',
        ),

        array(
            'full' => '~(\$\w+)=base64_decode\("([^"]+)"\);\s*eval\("return\s*eval\(\\\\"\1\\\\"\);"\)~msi',
            'fast' => '~(\$\w+)=base64_decode\("([^"]+)"\);\s*eval\("return\s*eval\(\\\\"\1\\\\"\);"\)~msi',
            'id' => 'evalReturn',
        ),

        array(
            'full' => '~(?:\$[0O]+\[[\'"](\w+)[\'"]\]\.?="[\\\\\w]+";)+(?:\$[0O]+\[[\'"]\w+[\'"]\]\.?=\$[0O]+\[[\'"]\w+[\'"]\]\([\'"][\d\(]+[\'"](,__FILE__)?\);)+@eval\((?:\$[0O]+\[[\'"]\w+[\'"]\]\()+"([^"]+)"\)+;~mis',
            'fast' => '~(?:\$[0O]+\[[\'"](\w+)[\'"]\]\.?="[\\\\\w]+";)+(?:\$[0O]+\[[\'"]\w+[\'"]\]\.?=\$[0O]+\[[\'"]\w+[\'"]\]\([\'"][\d\(]+[\'"](,__FILE__)?\);)+@eval\((?:\$[0O]+\[[\'"]\w+[\'"]\]\()+"([^"]+)"\)+;~mis',
            'id' => 'evalChars',
        ),

        array(
            'full' => '~<\?php\s+((\$GLOBALS\[\s*[\'"]\w+[\'"]\s*\])\s*=\s*base64_decode\("([^"]*)"\);)+\s*\?><\?php\s.+\2.+exit;\s}\sfunction\s\w+\(\)\s{\sreturn\sarray\(\s\'favicon\'\s=>\s\'[^\']+\',\s+\'sprites\'\s=>\s\'[^\']+\',\s\);\s}~msi',
            'fast' => '~<\?php\s+((\$GLOBALS\[\s*[\'"]\w+[\'"]\s*\])\s*=\s*base64_decode\("([^"]*)"\);)+\s*\?><\?php\s.+\2.+exit;\s}\sfunction\s\w+\(\)\s{\sreturn\sarray\(\s\'favicon\'\s=>\s\'[^\']+\',\s+\'sprites\'\s=>\s\'[^\']+\',\s\);\s}~msi',
            'id' => 'globalsBase64',
        ),

        array(
            'full' => '~(\$\w+=(\w+)\(\'\d+\'\);\s*)+\$\w+=new\s\$\w+\(\2\(\'(\d+)\'\)+;error_reporting\(0\);eval\(\$\w+\(\$\w+->\$\w+\("[^"]+"\)+;.+?function \2.+?return\s\$\w+;\s}~msi',
            'fast' => '~(\$\w+=(\w+)\(\'\d+\'\);\s*)+\$\w+=new\s\$\w+\(\2\(\'(\d+)\'\)+;error_reporting\(0\);eval\(\$\w+\(\$\w+->\$\w+\("[^"]+"\)+;.+?function \2.+?return\s\$\w+;\s}~msi',
            'id' => 'aanKFM',
        ),

        array(
            'full' => '~(\$\w+=strrev\("[^"]+"\);)+eval\((\$\w+\()+"[^"]+"\)+;~mis',
            'fast' => '~(\$\w+=strrev\("[^"]+"\);)+eval\((\$\w+\()+"[^"]+"\)+;~mis',
            'id' => 'strrevVarEval',
        ),

        array(
            'full' => '~\$\w+=basename/\*\w+\*/\(/\*\w+\*/trim/\*\w+\*/\(.+?(\$\w+)=.+\1.+?;~msi',
            'fast' => '~\$\w+=basename/\*\w+\*/\(/\*\w+\*/trim/\*\w+\*/\(.+?(\$\w+)=.+\1.+?;~msi',
            'id' => 'comments',
        ),

        array(
            'full' => '~(\$\w+)\s*=\s*(base64_decode\s*\(+|gzinflate\s*\(+|strrev\s*\(+|str_rot13\s*\(+|gzuncompress\s*\(+|convert_uudecode\s*\(+|urldecode\s*\(+|rawurldecode\s*\(+|htmlspecialchars_decode\s*\(+)+"([^"]+)"\)+;\s*@?eval\(([\'"?>.\s]+)?\1\);~',
            'fast' => '~(\$\w+)\s*=\s*(base64_decode\s*\(+|gzinflate\s*\(+|strrev\s*\(+|str_rot13\s*\(+|gzuncompress\s*\(+|convert_uudecode\s*\(+|urldecode\s*\(+|rawurldecode\s*\(+|htmlspecialchars_decode\s*\(+)+"([^"]+)"\)+;\s*@?eval\(([\'"?>.\s]+)?\1\);~',
            'id' => 'varFuncsEval',
        ),

        array(
            'full' => '~((\$\w+)="";\$\w+\s*\.=\s*"[^;]+;\s*)+(?:="";)?eval\((\s*\$\w+\s*\.)+\s*"[^"]+(?:"\);)+~msi',
            'fast' => '~((\$\w+)="";\$\w+\s*\.=\s*"[^;]+;\s*)+(?:="";)?eval\((\s*\$\w+\s*\.)+\s*"[^"]+(?:"\);)+~msi',
            'id' => 'evalConcatVars',
        ),

        array(
            'full' => '~<\?php\s*defined\(\'[^\']+\'\)\s*\|\|\s*define\(\'[^\']+\',__FILE__\);(global\s*\$[^;]+;)+\s*(if\(!function_exists\(\'([^\']+)\'\)\){\s*function\s*[^\)]+\(\$[^,]+,\$[^=]+=\'\'\){\s*if\(empty\(\$[^\)]+\)\)\s*return\s*\'\';\s*\$[^=]+=base64_decode\(\$[^\)]+\);\s*if\(\$[^=]+==\'\'\)\s*return\s*\~\$[^;]+;\s*if\(\$[^=]+==\'-1\'\)\s*@[^\(]+\(\);\s*\$[^=]+=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\$[^\)]+\);\s*\$[^=]+=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\$[^,]+,\$[^,]+,\$[^\)]+\);\s*return\s*\$[^^]+\^\$[^;]+;\s*}}\s*)+(\$[^\[]+\["[^"]+"]=[^\(]+\(\'[^\']+\',\'[^\']*\'\);\s*)+(\$[^\[]+\[\'[^\']+\'\]=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\([^\)]*\)+;\s*)+return\(eval\(\$[^\[]+\[\'[^\']+\'\]\)+;\s*\?>\s*#!/usr/bin/php\s*-q\s*(\s*[^\s]+)+~msi',
            'fast' => '~<\?php\s*defined\(\'[^\']{10,30}\'\)\s*\|\|\s*define\(\'[^\']{10,30}\',__FILE__\);(global\s*\$[^;]{10,30};)+\s*if\(!function_exists\(\'([^\']+)\'\)\){\s*function\s*[^\)]+\(\$[^,]{10,30},\$[^=]{10,30}=\'\'\){\s*if\(empty\(\$[^\)]+\)\)\s*return\s*\'\';\s*\$[^=]{10,30}=base64_decode~msi',
            'id' => 'OELove',
        ),

        array(
            'full' => '~\$\w+\s*=(\s*(\d+)\+)+\d+;(\$\w+="[^"]+";)+(\$\w+)\s*=\s*\w+\(\'[^\']+\',\s*\$\w+,\s*\'[^\']+\'\);.+\4\("[^"]+"\);\$\w+\s*=\s*\4;(\$\w+="[^"]+";)+.+\$\w+\(\$\w+,\$\w+\("",\s*\$\w+\(\$\w+\(\$\w+\(\$\w+\(\$\w+,\s*"(\d+)"\)+,\$\w+\);.+function \w+\((\$\w+),\s*\$\w+,\s(\$\w+)\)\s{\8\s=\s\8\s\.\s\8;.+return \7;}~msi',
            'fast' => '~\$\w+\s*=(\s*(\d+)\+)+\d+;(\$\w+="[^"]+";)+(\$\w+)\s*=\s*\w+\(\'[^\']+\',\s*\$\w+,\s*\'[^\']+\'\);.+\4\("[^"]+"\);\$\w+\s*=\s*\4;(\$\w+="[^"]+";)+~msi',
            'id' => 'Obf_20200402_1',
        ),

        array(
            'full' => '~(?:\$\w+\s*=\s*"[^"]+";\s*)?function\s(\w+)\((\$\w+),\s*(\$\w+),\s*(\$\w+)\){\s*return\s*([\'\.]*(\2|\3|\4)[\'\.]*)+;\s*}\s*(?:\$\w+\s*=\s*"[^"]+";)?(\s*\$\w+\s*=\s*\1\((((\'\')|(\$\w+)|(\$\w+[\[\{]\d+[\]\}](\.\'\')?)|(\$\w+[\[\{]\d+[\]\}]\.\$\w+[\[\{]\d+[\]\}]))\s*,?\s*)+\);\s*)+\s*\$\w+\s*=\s*\1[^"]+"\'([^\']+)\'".+?array\(\'\',\'}\'.\$\w+\.\'//\'\)\);~msi',
            'fast' => '~function\s(\w+)\((\$\w+),\s*(\$\w+),\s*(\$\w+)\){\s*return\s*([\'\.]*(\2|\3|\4)[\'\.]*)+;\s*}\s*(?:\$\w+\s*=\s*"[^"]+";)?(\s*\$\w+\s*=\s*\1\((((\'\')|(\$\w+)|(\$\w+[\[\{]\d+[\]\}](\.\'\')?)|(\$\w+[\[\{]\d+[\]\}]\.\$\w+[\[\{]\d+[\]\}]))\s*,?\s*)+\);\s*)+\s*\$\w+\s*=\s*\1[^"]+"\'([^\']+)\'".+?array\(\'\',\'}\'.\$\w+\.\'//\'\)\);~msi',
            'id' => 'Obf_20200402_2',
        ),

        array(
            'full' => '~function\s*(\w+)\((\$\w+),\s*(\$\w+)\)\s*\{\s*\3\s*=\s*md5\(\3\);\s*\$\w+\s*=\s*\d+;\s*\2\s*=\s*base64_decode\(\2\);\s*\$\w+\s*=\s*strlen\(\2\);\s*\$\w+\s*=\s*strlen\(\3\);\s*\$\w+\s*=\s*\'\';\s*for\s*\(\$\w+\s*=\s\d+;\s*\$\w+\s*<\s*\$len;\s*\$\w+\+\+\)\s*\{\s*if\s*\(\$\w+\s*==\s*\$\w+\)\s*\{\s*\$\w+\s*=\s*\d+;\s*}\s*\$\w+\s*\.=\s*substr\(\3,\s*\$\w+,\s*\d+\);\s*\$\w+\+\+;\s*\}\s*\$\w+\s*=\s*\'\';\s*for\s*\(\$\w+\s*=\s*\d+;\s*\$\w+\s*<\s*\$\w+;\s*\$\w+\+\+\)\s*{\s*if\s*\(ord\(substr\(\2,\s*\$\w+,\s*\d+\)\)\s*<\s*ord\(substr\(\$\w+,\s*\$\w+,\s*\d+\)\)\)\s*\{\s*\$\w+\s*\.=\s*chr\(\(ord\(substr\(\2,\s*\$\w+,\s*\d+\)\)\s*\+\s*\d+\)\s*-\s*ord\(substr\(\$\w+,\s*\$\w+,\s*\d+\)\)\);\s*}\s*else\s*{\s*\$\w+\s*\.=\s*chr\(ord\(substr\(\2,\s*\$\w+,\s*\d+\)\)\s*-\s*ord\(substr\(\$\w+,\s*\$\w+,\s*\d+\)\)\);\s*}\s*}\s*return\s*\$\w+;\s*\}\s*\2\s*=\s*"[^"]+";\s*\3\s*=\s*"[^"]+";\s*(\$\w+)\s*=\s*\1\(\2,\s*\3\);\s*eval\(\4\);~msi',
            'fast' => '~function\s*(\w+)\((\$\w+),\s*(\$\w+)\)\s*\{\s*\3\s*=\s*md5\(\3\);\s*\$\w+\s*=\s*\d+;\s*\2\s*=\s*base64_decode\(\2\);\s*\$\w+\s*=\s*strlen\(\2\);\s*\$\w+\s*=\s*strlen\(\3\);\s*\$\w+\s*=\s*\'\';\s*for\s*\(\$\w+\s*=\s\d+;\s*\$\w+\s*<\s*\$len;\s*\$\w+\+\+\)\s*\{\s*if\s*\(\$\w+\s*==\s*\$\w+\)\s*\{\s*\$\w+\s*=\s*\d+;\s*}\s*\$\w+\s*\.=\s*substr\(\3,\s*\$\w+,\s*\d+\);\s*\$\w+\+\+;\s*\}\s*\$\w+\s*=\s*\'\';\s*for\s*\(\$\w+\s*=\s*\d+;\s*\$\w+\s*<\s*\$\w+;\s*\$\w+\+\+\)\s*{\s*if\s*\(ord\(substr\(\2,\s*\$\w+,\s*\d+\)\)\s*<\s*ord\(substr\(\$\w+,\s*\$\w+,\s*\d+\)\)\)\s*\{\s*\$\w+\s*\.=\s*chr\(\(ord\(substr\(\2,\s*\$\w+,\s*\d+\)\)\s*\+\s*\d+\)\s*-\s*ord\(substr\(\$\w+,\s*\$\w+,\s*\d+\)\)\);\s*}\s*else\s*{\s*\$\w+\s*\.=\s*chr\(ord\(substr\(\2,\s*\$\w+,\s*\d+\)\)\s*-\s*ord\(substr\(\$\w+,\s*\$\w+,\s*\d+\)\)\);\s*}\s*}\s*return\s*\$\w+;\s*\}\s*\2\s*=\s*"[^"]+";\s*\3\s*=\s*"[^"]+";\s*(\$\w+)\s*=\s*\1\(\2,\s*\3\);\s*eval\(\4\);~msi',
            'id' => 'Obf_20200414_1',
        ),

        array(
            'full' => '~(?:\$\w+\s*=\s*\'\w+\';)?\s*(\$\w+)\s*=\s*urldecode\(\'[%0-9a-f]+\'\);(\s*(\$\w+)\s*=(\s*\1\{\d+\}\.?)+;)+\s*(\$\w+)\s*=\s*"[^"]+"\.\3\("[^"]+"\);\s*eval\(\5\);~msi',
            'fast' => '~(\$\w+)\s*=\s*urldecode\(\'[%0-9a-f]+\'\);(\s*(\$\w+)\s*=(\s*\1\{\d+\}\.?)+;)+\s*(\$\w+)\s*=\s*"[^"]+"\.\3\("[^"]+"\);\s*eval\(\5\);~msi',
            'id' => 'Obf_20200421_1',
        ),

        array(
            'full' => '~(\$\w+)=\'([^\']+)\';(\$\w+)=str_rot13\(gzinflate\(str_rot13\(base64_decode\(\1\)\)\)\);eval\(\3\);~msi',
            'fast' => '~(\$\w+)=\'([^\']+)\';(\$\w+)=str_rot13\(gzinflate\(str_rot13\(base64_decode\(\1\)\)\)\);eval\(\3\);~msi',
            'id' => 'SmartToolsShop',
        ),

        array(
            'full' => '~(\$\w+)\s*=\s*\("\?>"\.gzuncompress\(base64_decode\("[^"]+"\)\)\);\s*@?eval\(\1\);~msi',
            'fast' => '~(\$\w+)\s*=\s*\("\?>"\.gzuncompress\(base64_decode\("[^"]+"\)\)\);\s*@?eval\(\1\);~msi',
            'id' => 'Obf_20200504_1',
        ),

        array(
            'full' => '~(\$\w+)=base64_decode\(\'[^\']+\'\);\s*eval\(\1\);~mis',
            'fast' => '~(\$\w+)=base64_decode\(\'[^\']+\'\);\s*eval\(\1\);~mis',
            'id' => 'Obf_20200507_1',
        ),

        array(
            'full' => '~@error_reporting\(0\);\s*@ini_set\(\'error_log\',NULL\);\s*@ini_set\(\'log_errors\',0\);\s*@ini_set\(\'display_errors\',\s*0\);\s*@(\$\w+)="[create_function"\.]+;\s*(\$\w+)=\1\("([^"]+)","[eval\."]+\(\'\?>\'\.[base64_decode"\.]+\(\3\)\);"\);\s*\2\("([^"]+)"\);exit;~msi',
            'fast' => '~@error_reporting\(0\);\s*@ini_set\(\'error_log\',NULL\);\s*@ini_set\(\'log_errors\',0\);\s*@ini_set\(\'display_errors\',\s*0\);\s*@(\$\w+)="[create_function"\.]+;\s*(\$\w+)=\1\("([^"]+)","[eval\."]+\(\'\?>\'\.[base64_decode"\.]+\(\3\)\);"\);\s*\2\("([^"]+)"\);exit;~msi',
            'id' => 'Obf_20200507_2',
        ),

        array(
            'full' => '~@error_reporting\(0\);\s*@ini_set\(\'error_log\',NULL\);\s*@ini_set\(\'log_errors\',0\);\s*@ini_set\(\'output_buffering\',\s*0\);\s*@ini_set\(\'display_errors\',\s*0\);\s*\$\w+="(An0n_3xPloiTeR)";\$UeXploiT="([^"]+)";\$\1="([^"]+)";exit;~msi',
            'fast' => '~@error_reporting\(0\);\s*@ini_set\(\'error_log\',NULL\);\s*@ini_set\(\'log_errors\',0\);\s*@ini_set\(\'output_buffering\',\s*0\);\s*@ini_set\(\'display_errors\',\s*0\);\s*\$\w+="(An0n_3xPloiTeR)";\$UeXploiT="([^"]+)";\$\1="([^"]+)";exit;~msi',
            'id' => 'Obf_20200507_3',
        ),

        array(
            'full' => '~(?:error_reporting\(0\);\s*ini_set\("max_execution_time",0\);\s*(?:/\*.*?\*/)?\s*)?(\$\w+)=\s*\[(("."=>".",?\s*)+)];\s*(\$\w+)=str_split\("([^"]+)"\);\s*(?:\$\w+="";)?\s*foreach\(\4\s*as\s*(\$\w+)\)\s*{\s*foreach\(\s*\1\s*as\s*(\$\w+)=>(\$\w+)\)\s*{\s*if\(\6==\(string\)\8\)\s*\{\s*\$\w+\.=\7;\s*break;\s*}\s*}\s*}~msi',
            'fast' => '~(\$\w+)=\s*\[(("."=>".",?\s*)+)];\s*(\$\w+)=str_split\("([^"]+)"\);\s*(?:\$\w+="";)?\s*foreach\(\4\s*as\s*(\$\w+)\)\s*{\s*foreach\(\s*\1\s*as\s*(\$\w+)=>(\$\w+)\)\s*{\s*if\(\6==\(string\)\8\)\s*\{\s*\$\w+\.=\7;\s*break;\s*}\s*}\s*}~msi',
            'id' => 'Obf_20200507_4',
        ),

        array(
            'full' => '~assert\("[eval"\.]+\([base64_decode\."]+\(\'([^\']+)\'\)\)"\);~msi',
            'fast' => '~assert\("[eval"\.]+\([base64_decode\."]+\(\'([^\']+)\'\)\)"\);~msi',
            'id' => 'Obf_20200507_5',
        ),

        array(
            'full' => '~parse_str\(\'([^\']+)\',(\$\w+)\);(\2\[\d+\]\()+\'[^\']+\'\),array\(\),array\(\'[^\']+\'\.(\2\[\d+\]\()+\'([^\']+)\'\)+\.\'//\'\)+;~msi',
            'fast' => '~parse_str\(\'([^\']+)\',(\$\w+)\);(\2\[\d+\]\()+\'[^\']+\'\),array\(\),array\(\'[^\']+\'\.(\2\[\d+\]\()+\'([^\']+)\'\)+\.\'//\'\)+;~msi',
            'id' => 'Obf_20200513_1',
        ),

        array(
            'full' => '~function\s*(\w+)\((\$\w+)\)\{\2=substr\(\2,\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);\2=substr\(\2,\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\),\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);return\s*\2;\}(\$\w+)=\'[^\']+\';(\$\w+)=\'base64_decode\';function\s*\w+\((\$\w+)\)\{global\s*\6;global\s*\7;return\s*strrev\(gzinflate\(\7\(\1\(\8\)\)\)\);\}([^\']+)\'\)+~msi',
            'fast' => '~function\s*(\w+)\((\$\w+)\)\{\2=substr\(\2,\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);\2=substr\(\2,\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\),\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);return\s*\2;\}(\$\w+)=\'[^\']+\';(\$\w+)=\'base64_decode\';function\s*\w+\((\$\w+)\)\{global\s*\6;global\s*\7;return\s*strrev\(gzinflate\(\7\(\1\(\8\)\)\)\);\}([^\']+)\'\)+~msi',
            'id' => 'Obf_20200522_1',
        ),

        array(
            'full' => '~(\$\w+)=strrev\("[base64_decode"\.]+\);eval\(\1\(\'([^\']+)\'\)\);~msi',
            'fast' => '~(\$\w+)=strrev\("[base64_decode"\.]+\);eval\(\1\(\'([^\']+)\'\)\);~msi',
            'id' => 'Obf_20200526_1',
        ),

        array(
            'full' => '~error_reporting\(0\);define\(\'\w+\',\s*__FILE__\);define\(\'\w+\',\s*fopen\(__FILE__,\s*\'r\'\)\);fseek\(\w+,\s*__COMPILER_HALT_OFFSET__\);((\$\w+="\\\\x[0-9a-f]+";)+(\$\w+="[^"]+";)+eval\("\?>"\.(\$\w+\()+"([^"]+)"\)+;)+(?:/\*\w+\*/)?__halt_compiler\(\);[\w#|>^%\[\.\]\\\\/=]+~msi',
            'fast' => '~error_reporting\(0\);define\(\'\w+\',\s*__FILE__\);define\(\'\w+\',\s*fopen\(__FILE__,\s*\'r\'\)\);fseek\(\w+,\s*__COMPILER_HALT_OFFSET__\);((\$\w+="\\\\x[0-9a-f]+";)+(\$\w+="[^"]+";)+eval\("\?>"\.(\$\w+\()+"([^"]+)"\)+;)+(?:/\*\w+\*/)?__halt_compiler\(\);[\w#|>^%\[\.\]\\\\/=]+~msi',
            'id' => 'Obf_20200527_1',
        ),

        array(
            'full' => '~(\$\w+)=strrev\("[base64_decode]+"\)\.str_replace\(\'(\w+)\',\'\',\'\w+\'\);\s*eval\(\1\(\$\w+\)\);~msi',
            'fast' => '~(\$\w+)=strrev\("[base64_decode]+"\)\.str_replace\(\'(\w+)\',\'\',\'\w+\'\);\s*eval\(\1\(\$\w+\)\);~msi',
            'id' => 'Obf_20200602_1',
        ),

        array(
            'full' => '~(\$\w+)\s*=\s*"([^"]+)";\s*(\$\w+)\s*=\s*base64_decode\(\1\);\s*eval\(\3\);~msi',
            'fast' => '~(\$\w+)\s*=\s*"([^"]+)";\s*(\$\w+)\s*=\s*base64_decode\(\1\);\s*eval\(\3\);~msi',
            'id' => 'Obf_20200720_1',
        ),

        array(
            'full' => '~[\'".]+(\$\w+\s*=\s*[\'"]\w+[\'"];)+(\$\w+=\$\w+[\'.]+\$\w+;)+(\$\w+=(str_rot13|base64_decode|gzinflate)\(\$\w+\);)+eval\(\$\w+\);~msi',
            'fast' => '~[\'".]+(\$\w+\s*=\s*[\'"]\w+[\'"];)+(\$\w+=\$\w+[\'.]+\$\w+;)+(\$\w+=(str_rot13|base64_decode|gzinflate)\(\$\w+\);)+eval\(\$\w+\);~msi',
            'id' => 'flamux',
        ),

        array(
            'full' => '~function\s*(\w+)\(\)\{\s*return\s*"([^"]+)";\s*\}\s*eval\("([^"]+)"\.\1\(\)\."([^"]+)"\);~msi',
            'fast' => '~function\s*(\w+)\(\)\{\s*return\s*"([^"]+)";\s*\}\s*eval\("([^"]+)"\.\1\(\)\."([^"]+)"\);~msi',
            'id' => 'bypass',
        ),

        array(
            'full' => '~(\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\]="[\w\\\\]+";(\$\w+="\w+";)?){5,}.+\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\].+}+~msi',
            'fast' => '~(\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\]="[\w\\\\]+";(\$\w+="\w+";)?){5,}.+\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\].+}+~msi',
            'id' => 'Obf_20200618_1',
        ),

        array(
            'full' => '~(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+(echo)\s*"(?:[<\w\\\\>\/\s={:}#]+);(?:[\\\\\w\-:]+;)+(?:[\\\\\w}:{\s#]+;)+(?:[\\\\\w}:{#\-\s]+;)+[\\\\\w}<\/]+";\$\w+=["\\\\\w]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";error_reporting\(\d\);\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;set_time_limit\(\d\);\$\w+=["\\\\\w]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+(if\(empty\()[\$_\w\["\\\\\]]+\)\){\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\w()]+;(}else{)\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;}chdir\(\${\$\w+}\);\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=htmlentities\(\$[_\w\["\\\\\].?]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);\1[<\\\\\w>\/"]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";(?:\$\w+=["\w\\\\]+;)+(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;)+\$\w+=["\w\\\\]+;\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["\\\\\w<>=\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=\s\/<>]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\1["<\\\\\w\s\'.\${}>\/]+;\1["<\\\\\w>\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."&\w\\\\\'<\/]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\1["<\\\\\w>\s=\'.\${}&\/]+;(?:\1["<\\\\\w>\/]+;)+\$\w+=["\\\\\w]+;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";switch\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){case"[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\$\w+=["\\\\\w]+;)+(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=fopen\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},"\w"\);\$\w+=["\\\\\w]+;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=(?:(?|fread|filesize)\(\${\$\w+},?)+\)\);\${\$\w+}=str_replace\("[\w\\\\\s]+",[<\w\\\\>"]+,\${\$\w+}\);\1["\\\\\w<>=\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=\s\/<>&\${}\']+;\1["\\\\\w\s.:]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\."[\w\\\\\s]+";\1["\\\\\w\s\'=]+\.\${\$\w+}\.["<\w\\\\>]+;\1["<\\\\\w>\s=\'\/;]+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";(?:\$\w+=["\w\\\\]+;)+\${\$\w+}=fopen\(\${\$\w+},"\w"\);if\(fwrite\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\s\\\\\w]+;\3\1["\\\\\w\s.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\\\\\w]+;}}fclose\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);(break;case")[\w\\\\\s]+":\${\$\w+}=[\$_\w\["\]\\\\]+;if\(unlink\([\${}\w]+\)\){\1\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\s\w\\\\.>]+;\3\$\w+=["\w\\\\]+;\1["\\\\\w\s.${}<]+;}\4[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\w\\\\\s=.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}.["\\\\\w&.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s=]+;(?:\1["\w\\\\:\s\'><=\/]+;)+\3(?:\$\w+=["\w\\\\]+;)+if\(copy\(\${\$\w+},\${\$\w+}\)\){\1"[\w\\\\\s]+";\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\'\\\\\w\s=>]+;\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\1["\\\\\w\s\'=>\/;]+\3if\(rename\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\$\w+=["\w\\\\]+;\1"[\w\\\\\s]+"\.\${\$\w+}[."\\\\\w>;]+}}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${\$\w+}=[\$_\w\["\]\\\\]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["\\\\\w\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\\\\\w=.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\\\\\w\s>]+;(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;)+\1["\\\\\w\s=\'<\/;]+\3if\(rename\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;if\(rmdir\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\$\w+=["\\\\\w]+;\1"[\w\\\\\s]+"\.\${\$\w+}[."\\\\\w]+;}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";system\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\$\w+=["\w\\\\]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\$\w+=["\w\\\\]+;if\(\${\$\w+}=fopen\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},"\w"\)\){\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;\3\$\w+=["\w\\\\]+;\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;}\$\w+=["\w\\\\]+;fclose\(\${\$\w+}\);}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${\$\w+}=basename\([\$_\w\["\\\\\]]+\);\2\${\$\w+}\)\){\1["<\\\\\w\s=\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["&\w\\\\\s=\/\-\'>]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";if\(move_uploaded_file\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;unlink\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);\3\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":\${\$\w+}=[\$_\w\["\]\\\\]+;\2\${\$\w+}\)\){(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=explode\(":",\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);if\(\(!is_numeric\(\${\$\w+}\[\d\]\)\)or\(!is_numeric\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\[\d\]\)\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3(?:\$\w+=["\w\\\\]+;)+\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\w\\\\]+;(?:\${\$\w+}=\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\[\d\];)+\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;while\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}<=\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=\d;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=fsockopen\(\$\w+,\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)or\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=\d;if\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}==\d\){\$\w+=["\\\\\w]+;echo\${\$\w+}\.["\\\\\w>]+;}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\+\+;fclose\(\${\$\w+}\);}}}break;}clearstatcache\(\);(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=scandir\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);foreach\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\s\w+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){if\(is_file\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=round\(filesize\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\/\d+,\d\);\$\w+=["\w\\\\]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\/\w\\\\>;]+\$\w+=["\\\\\w]+;\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s<\/>]+;\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=&]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\/<>;]+\$\w+=["\\\\\w]+;\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\${\$\w+}[.">\w\\\\\/<]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3(?:\$\w+=["\\\\\w]+;){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=scandir\(\${\$\w+}\);(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=count\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\-\d;\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\/\w+>";\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s=<\/]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;){3}}}\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;~msi',
            'fast' => '~(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+(echo)\s*"(?:[<\w\\\\>\/\s={:}#]+);(?:[\\\\\w\-:]+;)+(?:[\\\\\w}:{\s#]+;)+(?:[\\\\\w}:{#\-\s]+;)+[\\\\\w}<\/]+";\$\w+=["\\\\\w]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";error_reporting\(\d\);\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;set_time_limit\(\d\);\$\w+=["\\\\\w]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+(if\(empty\()[\$_\w\["\\\\\]]+\)\){\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\w()]+;(}else{)\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;}chdir\(\${\$\w+}\);\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=htmlentities\(\$[_\w\["\\\\\].?]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);\1[<\\\\\w>\/"]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";(?:\$\w+=["\w\\\\]+;)+(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;)+\$\w+=["\w\\\\]+;\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["\\\\\w<>=\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=\s\/<>]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\1["<\\\\\w\s\'.\${}>\/]+;\1["<\\\\\w>\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."&\w\\\\\'<\/]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\1["<\\\\\w>\s=\'.\${}&\/]+;(?:\1["<\\\\\w>\/]+;)+\$\w+=["\\\\\w]+;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";switch\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){case"[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\$\w+=["\\\\\w]+;)+(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=fopen\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},"\w"\);\$\w+=["\\\\\w]+;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=(?:(?|fread|filesize)\(\${\$\w+},?)+\)\);\${\$\w+}=str_replace\("[\w\\\\\s]+",[<\w\\\\>"]+,\${\$\w+}\);\1["\\\\\w<>=\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=\s\/<>&\${}\']+;\1["\\\\\w\s.:]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\."[\w\\\\\s]+";\1["\\\\\w\s\'=]+\.\${\$\w+}\.["<\w\\\\>]+;\1["<\\\\\w>\s=\'\/;]+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";(?:\$\w+=["\w\\\\]+;)+\${\$\w+}=fopen\(\${\$\w+},"\w"\);if\(fwrite\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\s\\\\\w]+;\3\1["\\\\\w\s.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\\\\\w]+;}}fclose\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);(break;case")[\w\\\\\s]+":\${\$\w+}=[\$_\w\["\]\\\\]+;if\(unlink\([\${}\w]+\)\){\1\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\s\w\\\\.>]+;\3\$\w+=["\w\\\\]+;\1["\\\\\w\s.${}<]+;}\4[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\w\\\\\s=.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}.["\\\\\w&.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s=]+;(?:\1["\w\\\\:\s\'><=\/]+;)+\3(?:\$\w+=["\w\\\\]+;)+if\(copy\(\${\$\w+},\${\$\w+}\)\){\1"[\w\\\\\s]+";\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\'\\\\\w\s=>]+;\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\1["\\\\\w\s\'=>\/;]+\3if\(rename\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\$\w+=["\w\\\\]+;\1"[\w\\\\\s]+"\.\${\$\w+}[."\\\\\w>;]+}}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${\$\w+}=[\$_\w\["\]\\\\]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["\\\\\w\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\\\\\w=.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\\\\\w\s>]+;(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;)+\1["\\\\\w\s=\'<\/;]+\3if\(rename\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;if\(rmdir\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\$\w+=["\\\\\w]+;\1"[\w\\\\\s]+"\.\${\$\w+}[."\\\\\w]+;}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";system\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\$\w+=["\w\\\\]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\$\w+=["\w\\\\]+;if\(\${\$\w+}=fopen\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},"\w"\)\){\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;\3\$\w+=["\w\\\\]+;\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;}\$\w+=["\w\\\\]+;fclose\(\${\$\w+}\);}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${\$\w+}=basename\([\$_\w\["\\\\\]]+\);\2\${\$\w+}\)\){\1["<\\\\\w\s=\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["&\w\\\\\s=\/\-\'>]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";if\(move_uploaded_file\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;unlink\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);\3\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":\${\$\w+}=[\$_\w\["\]\\\\]+;\2\${\$\w+}\)\){(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=explode\(":",\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);if\(\(!is_numeric\(\${\$\w+}\[\d\]\)\)or\(!is_numeric\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\[\d\]\)\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3(?:\$\w+=["\w\\\\]+;)+\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\w\\\\]+;(?:\${\$\w+}=\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\[\d\];)+\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;while\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}<=\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=\d;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=fsockopen\(\$\w+,\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)or\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=\d;if\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}==\d\){\$\w+=["\\\\\w]+;echo\${\$\w+}\.["\\\\\w>]+;}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\+\+;fclose\(\${\$\w+}\);}}}break;}clearstatcache\(\);(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=scandir\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);foreach\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\s\w+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){if\(is_file\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=round\(filesize\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\/\d+,\d\);\$\w+=["\w\\\\]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\/\w\\\\>;]+\$\w+=["\\\\\w]+;\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s<\/>]+;\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=&]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\/<>;]+\$\w+=["\\\\\w]+;\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\${\$\w+}[.">\w\\\\\/<]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3(?:\$\w+=["\\\\\w]+;){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=scandir\(\${\$\w+}\);(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=count\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\-\d;\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\/\w+>";\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s=<\/]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;){3}}}\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;~msi',
            'id'   => 'darkShell',
        ),

        array(
            'full' => '~(\$\w+)=\'([\w\(;\$\)=\s\[\/\]."*]+)\';(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=\s+"([\'\w\/+]+)";(\$\w+)\.=\4;\8\.=\6;\8\.=\5;@(\$\w+)=\3\(\(\'+\),\s+\(\8\)\);@\9\(\);~msi',
            'fast' => '~(\$\w+)=\'([\w\(;\$\)=\s\[\/\]."*]+)\';(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=\s+"([\'\w\/+]+)";(\$\w+)\.=\4;\8\.=\6;\8\.=\5;@(\$\w+)=\3\(\(\'+\),\s+\(\8\)\);@\9\(\);~msi',
            'id' => 'wso'
        ),

        array(
            'full' => '~error_reporting\(\d+\);\s*function\s*class_uc_key\((\$\w+)\){\s*(\$\w+)\s*=\s*strlen\s*\(trim\(\1\)\);\s*(\$\w+)\s*=\s*\'\';\s*for\((\$\w+)\s*=\s*0;\4\s*<\s*\2;\4\+=2\)\s*{\s*\3\s*\.=\s*pack\s*\("C",hexdec\s*\(substr\s\(\1,\4,2\)\)\);\s*}\s*return\s*\3;\s*}\s*header\("\w+-\w+:\s\w+\/\w+;\s*charset=(\w+)"\);\s*(\$\w+)=class_uc_key\("(6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827)"\)\.\'([\w\/\+=\\\\]+\'\)\)\);)\';\s*(\$\w+)=create_function\(\'\',\6\);\9\(\);~msi',
            'fast' => '~\w+\(\d+\);\s*function\s*class_uc_key\((\$\w+)\){\s*(\$\w+)\s*=\s*strlen\s*\(trim\(\1\)\);\s*(\$\w+)\s*=\s*\'\';\s*for\((\$\w+)\s*=\s*0;\4\s*<\s*\2;\4\+=2\)\s*{\s*\3\s*\.=\s*pack\s*\("C",hexdec\s*\(substr\s\(\1,\4,2\)\)\);\s*}\s*return\s*\3;\s*}\s*header\("\w+-\w+:\s\w+\/\w+;\s*charset=(\w+)"\);\s*(\$\w+)=class_uc_key\("(6576616C28677A756E636F6D7072657373286261736536345F6465636F64652827)"\)\.\'([\w\/\+=\\\\]+\'\)\)\);)\';\s*(\$\w+)=\w+\(\'\',\6\);\9\(\);~msi',
            'id' => 'anonymousFox'
        ),

        array(
            'full' => '~<\?php\s\$\w+=urldecode\(\'[%\w]+\'\);(?:\$\w+\.?=(?:\$\w+\{\d+\}\.?)+;)+\?><\?php\s(eval\(\$GLOBALS\[\'\w+\'\]\(\'(\w+)\'\)\);)\s\?><\?php\s\/\*\sBizden\soncekiler\sdemo\s\*\/(?:\$\w+\.?=(?:\$\w+\{?\d+\}?\.?)+;)+\$\w+=__FILE__;\$\w+=\w+;(eval\(\$\w+\(\'(\w+=)\'\)\);)return;\?[>\w|@[`\~=\+\/]+~msi',
            'fast' => '~<\?php\s\$\w+=urldecode\(\'[%\w]+\'\);(?:\$\w+\.?=(?:\$\w+\{\d+\}\.?)+;)+\?><\?php\s(eval\(\$GLOBALS\[\'\w+\'\]\(\'(\w+)\'\)\);)\s\?><\?php\s(?:\/\*\sBizden\soncekiler\sdemo\s\*\/)?(?:\$\w+\.?=(?:\$\w+\{?\d+\}?\.?)+;)+\$\w+=__FILE__;\$\w+=\w+;(eval\(\$\w+\(\'(\w+=)\'\)\);)return;\?[>\w|@[`\~=\+\/]+~msi',
            'id' => 'bizden'
        ),

        array(
            'full' => '~(\$my_sucuri_encoding)\s{0,10}=\s{0,10}[\'"]([^\'"]+)[\'"];\s{0,10}(\$tempb64)\s{0,10}=\s{0,10}base64_decode\(\s{0,10}\1\);\s{0,10}eval\(\s{0,10}\3\s{0,10}\);~msi',
            'fast' => '~(\$my_sucuri_encoding)\s{0,10}=\s{0,10}[\'"]([^\'"]+)[\'"];\s{0,10}(\$tempb64)\s{0,10}=\s{0,10}base64_decode\(\s{0,10}\1\);\s{0,10}eval\(\s{0,10}\3\s{0,10}\);~msi',
            'id' => 'wsoEval'
        ),

        array(
            'full' => '~\$fun\s=\s\'ass\';\$fun\s\.=\s\'ert\';@\$fun\(str_rot13\(\'(.*;)\'\)\);~msi',
            'fast' => '~\$fun\s=\s\'ass\';\$fun\s\.=\s\'ert\';@\$fun\(str_rot13\(\'(.*;)\'\)\);~msi',
            'id' => 'assertStr'
        ),

        array(
            'full' => '~(function\s\w+\(\$\w+,\$\w+,\$\w+\){return\sstr_replace\(\$\w+,\$\w+,\$\w+\);}\s?){3}(\$\w+)\s=\s\'(\w+)\';\s\2\s=\s(\w+)\(\'(\w+)\',\'\',\2\);\s(\$\w+)\s=\s\'(\w+)\';\s\6\s=\s\4\(\'(\w+)\',\'\',\6\);\s(\$\w+)\s=\s\'(\w+)\';\s\9\s=\s\4\(\'(\w+)\',\'\',\9\);\s(\$\w+)\s=\s\'(\$\w+)\';\s(\$\w+)\s=\s\6\(\12,\9\.\'\(\'\.\2\.\'\(\'\.\12\.\'\)\);\'\);\s\14\(\'(\w+)\'\);~msi',
            'fast' => '~(function\s\w+\(\$\w+,\$\w+,\$\w+\){return\sstr_replace\(\$\w+,\$\w+,\$\w+\);}\s?){3}(\$\w+)\s=\s\'(\w+)\';\s\2\s=\s(\w+)\(\'(\w+)\',\'\',\2\);\s(\$\w+)\s=\s\'(\w+)\';\s\6\s=\s\4\(\'(\w+)\',\'\',\6\);\s(\$\w+)\s=\s\'(\w+)\';\s\9\s=\s\4\(\'(\w+)\',\'\',\9\);\s(\$\w+)\s=\s\'(\$\w+)\';\s(\$\w+)\s=\s\6\(\12,\9\.\'\(\'\.\2\.\'\(\'\.\12\.\'\)\);\'\);\s\14\(\'(\w+)\'\);~msi',
            'id' => 'funcVar'
        ),

        array(
            'full' => '~(\$\w+)=[\'"](\w+)[\'"];(\$\w+=(?:\s?\1\[\d+\](?:\s?\.?))+;)+((?:\$\w+\(\d+\);)?(\$\w+=(\$\w+)\(["\']{2},(\$\w+\(\$\w+\(["\'][=\w\+\/]+[\'"]\)\))\);\$\w+\(\);))~msi',
            'fast' => '~(\$\w+)=[\'"](\w+)[\'"];(\$\w+=(?:\s?\1\[\d+\](?:\s?\.?))+;)+((?:\$\w+\(\d+\);)?(\$\w+=(\$\w+)\(["\']{2},(\$\w+\(\$\w+\(["\'][=\w\+\/]+[\'"]\)\))\);\$\w+\(\);))~msi',
            'id' => 'dictionaryVars'
        ),

        array(
            'full' => '~(?:(?<concatVar>\$\w+)\s?=\s?""\s?;((?:\s?(?P=concatVar)\s?\.=\s?"[\w]+"\s?;\s?)+))?(\$\w+)\s?=\s?(?:(?P=concatVar)|"(?<strVal>[\w]+)")\s?;\s?if\s?\(\s?!function_exists\s?\(\s?"(\w+)"\)\){function\s\5\(\s?(\$\w+)\){\s?(?:\$\w+=\s?""\s?;)?\s?(\$\w+)\s?=\s?strlen\s?\(\s?\6\s?\)\s?\/\s?2\s?;\s?for\s?\(\s?(\$\w+)\s?=0\s?;\s?\8\s?<\s?\7\s?;\s?\8\+\+\s?\)\s?{\s?\$\w+\s?\.=\s?chr\s?\(\s?base_convert\s?\(\s?substr\s?\(\s?\6\s?,\s?\8\s?\*\s?2\s?,\s?2\s?\)\s?,\s?16\s?,\s?10\s?\)\s?\)\s?;\s?}\s?return\s?\$\w+;\s?}\s?}\s?\$\w+\s?=\s?create_function\s?\(\s?null\s?,\s?\5\(\s?\3\)\)\s?;\s?\3\(\)\s?;~msi',
            'fast' => '~(?:(?<concatVar>\$\w+)\s?=\s?""\s?;((?:\s?(?P=concatVar)\s?\.=\s?"[\w]+"\s?;\s?)+))?(\$\w+)\s?=\s?(?:(?P=concatVar)|"(?<strVal>[\w]+)")\s?;\s?if\s?\(\s?!function_exists\s?\(\s?"(\w+)"\)\){function\s\5\(\s?(\$\w+)\){\s?(?:\$\w+=\s?""\s?;)?\s?(\$\w+)\s?=\s?strlen\s?\(\s?\6\s?\)\s?\/\s?2\s?;\s?for\s?\(\s?(\$\w+)\s?=0\s?;\s?\8\s?<\s?\7\s?;\s?\8\+\+\s?\)\s?{\s?\$\w+\s?\.=\s?chr\s?\(\s?base_convert\s?\(\s?substr\s?\(\s?\6\s?,\s?\8\s?\*\s?2\s?,\s?2\s?\)\s?,\s?16\s?,\s?10\s?\)\s?\)\s?;\s?}\s?return\s?\$\w+;\s?}\s?}\s?\$\w+\s?=\s?create_function\s?\(\s?null\s?,\s?\5\(\s?\3\)\)\s?;\s?\3\(\)\s?;~msi',
            'id' => 'concatVarFunc'
        ),

        array(
            'full' => '~function\s?(\w+)\(\){(((\$\w+)\.?="\w+";)+)return\seval\(\4\(\w+\(\)\)\);}function\s(\w+)\((\$\w+)\){((?:(\$\w+)\.?="\w+";)+)return\s\8\(\6\);}function\s?(\w+)\(\){((\$\w+)\.?="([\w\/+=]+)";)return\s(\w+)\(\11\);}function\s\13\((\$\w+)\){(\$\w+)=(\w+)\((\w+)\((\w+)\(\14\)\)\);return\s\15;}function\s\17\(\14\){(((\$\w+)\.?="\w+";)+)return\s\21\(\14\);}\1\(\);function\s\16\(\14\){(((\$\w+)\.?="\w+";)+)return\s\24\(\14\);}~msi',
            'fast' => '~function\s?(\w+)\(\){(((\$\w+)\.?="\w+";)+)return\seval\(\4\(\w+\(\)\)\);}function\s(\w+)\((\$\w+)\){((?:(\$\w+)\.?="\w+";)+)return\s\8\(\6\);}function\s?(\w+)\(\){((\$\w+)\.?="([\w\/+=]+)";)return\s(\w+)\(\11\);}function\s\13\((\$\w+)\){(\$\w+)=(\w+)\((\w+)\((\w+)\(\14\)\)\);return\s\15;}function\s\17\(\14\){(((\$\w+)\.?="\w+";)+)return\s\21\(\14\);}\1\(\);function\s\16\(\14\){(((\$\w+)\.?="\w+";)+)return\s\24\(\14\);}~msi',
            'id' => 'concatVarFuncFunc'
        ),

        array(
            'full' => '~(?:(?:\s?\$\w+\s?=\s?strrev\("\w+"\);\s?)|(?:\s?\$\w+\s?=\s?strrev\("\w+"\);\s?)|(?:\s?eval\((?:\$\w+)?\([\'"][\w=]+[\'"]\)\);\s?)|(?:\s?eval\(\$\w+\(\$\w+\(\'[\w\/+=]+\'\)\)\);\s?)){3,4}~msi',
            'fast' => '~(?:(?:\s?\$\w+\s?=\s?strrev\("\w+"\);\s?)|(?:\s?\$\w+\s?=\s?strrev\("\w+"\);\s?)|(?:\s?eval\((?:\$\w+)?\([\'"][\w=]+[\'"]\)\);\s?)|(?:\s?eval\(\$\w+\(\$\w+\(\'[\w\/+=]+\'\)\)\);\s?)){3,4}~msi',
            'id' => 'evalVarDoubled'
        ),

        array(
            'full' => '~(\$\w+)\s?=\s?(\w+)\("([\w+\/=]+)"\);\s?echo\s?\1;~msi',
            'fast' => '~(\$\w+)\s?=\s?(\w+)\("([\w+\/=]+)"\);\s?echo\s?\1;~msi',
            'id' => 'varFuncsEcho'
        ),

        array(
            'full' => '~(\$\w+)="";\s?(\$\w+)=(\d+);\s?(\$\w+)=((?:\'[\w%]+\'\.?)+);\s(\$\w+)=((?:\4\[\d+\]\.?)+);\s?function\s\w+\(\){(?:.*?);\s}\s?\1=\w+\(\1,"\w+"\);\s?\$\w+=array\((?:\'\w+\',?)+\);\s\1=\w+\(\1,\sjoin\(\'\',\s\$\w+\)\s?\);\s?\$\w+\+=\d+;\s?\1=\w+\(\1,\w+\(\)\);\sfunction\s\w+\(\){(?:.*?);\s}\s\$\w+=\w+\(\);\s\$\w+=\w+\(\);\s\1\s?\.=\s?\$\w+\(\s?\$\w+\(\$\w+{\d+}\.\$\w+{\d+},\s?\d+\),\s?(?:\d+\,?\s?)+\);(?:.*?)if\(\$\w+==\d+\)(?:.*?)while\s\(\d+>\d\);(?:.*?)\s?if\s?\(216<230\)(?:.*?)while\s\(4>10\);\s\$\w+\s=\s\$\w+\("",\s\$\w+\(\$\w+\)\s\);\s\$\w+\(\);\s(?:(?:\s?function\s\w+\(\)(?:.*?);\s})|(?:\s?class\s\w+\s?{(?:.*?);(?:\s}){1,2}))+~msi',
            'fast' => '~(\$\w+)="";\s?(\$\w+)=(\d+);\s?(\$\w+)=((?:\'[\w%]+\'\.?)+);\s(\$\w+)=((?:\4\[\d+\]\.?)+);\s?function\s\w+\(\){(?:.*?);\s}\s?\1=\w+\(\1,"\w+"\);\s?\$\w+=array\((?:\'\w+\',?)+\);\s\1=\w+\(\1,\sjoin\(\'\',\s\$\w+\)\s?\);\s?\$\w+\+=\d+;\s?\1=\w+\(\1,\w+\(\)\);\sfunction\s\w+\(\){(?:.*?);\s}\s\$\w+=\w+\(\);\s\$\w+=\w+\(\);\s\1\s?\.=\s?\$\w+\(\s?\$\w+\(\$\w+{\d+}\.\$\w+{\d+},\s?\d+\),\s?(?:\d+\,?\s?)+\);(?:.*?)if\(\$\w+==\d+\)(?:.*?)while\s\(\d+>\d\);(?:.*?)\s?if\s?\(216<230\)(?:.*?)while\s\(4>10\);\s\$\w+\s=\s\$\w+\("",\s\$\w+\(\$\w+\)\s\);\s\$\w+\(\);\s(?:(?:\s?function\s\w+\(\)(?:.*?);\s})|(?:\s?class\s\w+\s?{(?:.*?);(?:\s}){1,2}))+~msi',
            'id' => 'varFuncsMany'
        ),

        array(
            'full' => '~((\$(?:GLOBALS|{"[\\\\\w]+"})\[[\'"]\w+["\']\])\s?=\s?[\'"]+([\\\\\w]+)["\'];)\s?(?:(\$GLOBALS\[?(\s?(?:\2|\$GLOBALS\[\'\w+\'\])\[\d+\]\.?)+\])\s?=\s?\g<5>+;\s?)+(?:\g<4>\s?=\s[\$_\w]+;\s)+(?:@\g<4>\(\g<5>+\s?,\s?\w+\s?\);\s?)+@\g<4>\(\d+\);\s{0,50}(?:if\s?\(!\g<4>\s?\(\g<5>+\)\)\s{\s{0,50}\g<4>\(\g<5>+,\s\g<5>*\d*\);\s{0,50}}?\s{0,50})*(?:\$\w+\s?=\s?\w+;\s?)*\g<4>\s?=\s\g<5>+;\s?global\s?\$\w+;\s?function\s\w+\(\$\w+,\s\$\w+\)\s{\s?\$\w+\s?=\s?["\']{2};\s?for\s?\(\$\w+\s?=\d+;\s?\$\w+\s?<\s?\g<4>\(\$\w+\)\s?;\s?\)\s?{\s?for\s?\(\s?\$\w+=\d+;\s?\$\w+\s?<\s?\g<4>\(\$\w+\)\s?&&\s?\$\w+\s?<\g<4>\(\$\w+\);\s?\$\w+\+{2},\s?\$\w+\+{2}\)\s?{\s?\$\w+\s?\.=\s?\g<4>\(\g<4>\(\$\w+\[\$\w+\]\)\s?\^\s?\g<4>\(\$\w+\[\$\w+\]\)\);\s?}\s?}\s?return\s\$\w+;\s?}\s?function\s?\w+\(\$\w+,\s?\$\w+\)\s?{\s?global\s?\$\w+;\s?return\s\g<4>\(\g<4>\(\$\w+,\s?\$\w+\),\s?\$\w+\)\s?;\s?}\s?foreach\s?\(\g<4>\sas\s\$\w+=>\$\w+\)\s?{\s?\$\w+\s?=\s?\$\w+;\s?\$\w+\s?=\s?\$\w+;\s?}\s?if\s?\(!\$\w+\)\s?{\s?foreach\s?\(\g<4>\sas\s\$\w+\s?=>\s?\$\w+\)\s?{\s?\$\w+\s?=\s?\$\w+;\s?\$\w+\s?=\s?\$\w+;\s?}\s?}\s?\$\w+\s?=\s?@\g<4>\(\g<4>\(@?\g<4>\(\$\w+\),\s?\$\w+\)\);\s?if\s?\(isset\(\$\w+\[\g<5>+\]\)\s?&&\s?\$\w+==\$\w+\[\g<5>+\]\)\s?{\s?if\s?\(\$\w+\[\g<5>\]\s?==\s?\g<5>\)\s?{\s?\$\w+\s?=\s?array\(\s?\g<5>+\s?=>\s?@\g<4>\(\),\s?\g<5>+\s?=>\s?\g<5>+,\s?\);\s?echo\s?@\g<4>\(\$\w+\);\s?}\s?elseif\s?\(\$\w+\[\g<5>\]\s?==\s?\g<5>\)\s?{\s?eval\(\$\w+\[\g<5>\]\);\s?}\s?(?:exit\(\);)?\s?}\s?}?~msi',
            'fast' => '~((\$(?:GLOBALS|{"[\\\\\w]+"})\[[\'"]\w+["\']\])\s?=\s?[\'"]+([\\\\\w]+)["\'];)\s?(?:(\$GLOBALS\[?(\s?(?:\2|\$GLOBALS\[\'\w+\'\])\[\d+\]\.?)+\])\s?=\s?\g<5>+;\s?)+(?:\g<4>\s?=\s[\$_\w]+;\s)+(?:@\g<4>\(\g<5>+\s?,\s?\w+\s?\);\s?)+@\g<4>\(\d+\);\s{0,50}(?:if\s?\(!\g<4>\s?\(\g<5>+\)\)\s{\s{0,50}\g<4>\(\g<5>+,\s\g<5>*\d*\);\s{0,50}}?\s{0,50})*(?:\$\w+\s?=\s?\w+;\s?)*\g<4>\s?=\s\g<5>+;\s?global\s?\$\w+;\s?function\s\w+\(\$\w+,\s\$\w+\)\s{\s?\$\w+\s?=\s?["\']{2};\s?for\s?\(\$\w+\s?=\d+;\s?\$\w+\s?<\s?\g<4>\(\$\w+\)\s?;\s?\)\s?{\s?for\s?\(\s?\$\w+=\d+;\s?\$\w+\s?<\s?\g<4>\(\$\w+\)\s?&&\s?\$\w+\s?<\g<4>\(\$\w+\);\s?\$\w+\+{2},\s?\$\w+\+{2}\)\s?{\s?\$\w+\s?\.=\s?\g<4>\(\g<4>\(\$\w+\[\$\w+\]\)\s?\^\s?\g<4>\(\$\w+\[\$\w+\]\)\);\s?}\s?}\s?return\s\$\w+;\s?}\s?function\s?\w+\(\$\w+,\s?\$\w+\)\s?{\s?global\s?\$\w+;\s?return\s\g<4>\(\g<4>\(\$\w+,\s?\$\w+\),\s?\$\w+\)\s?;\s?}\s?foreach\s?\(\g<4>\sas\s\$\w+=>\$\w+\)\s?{\s?\$\w+\s?=\s?\$\w+;\s?\$\w+\s?=\s?\$\w+;\s?}\s?if\s?\(!\$\w+\)\s?{\s?foreach\s?\(\g<4>\sas\s\$\w+\s?=>\s?\$\w+\)\s?{\s?\$\w+\s?=\s?\$\w+;\s?\$\w+\s?=\s?\$\w+;\s?}\s?}\s?\$\w+\s?=\s?@\g<4>\(\g<4>\(@?\g<4>\(\$\w+\),\s?\$\w+\)\);\s?if\s?\(isset\(\$\w+\[\g<5>+\]\)\s?&&\s?\$\w+==\$\w+\[\g<5>+\]\)\s?{\s?if\s?\(\$\w+\[\g<5>\]\s?==\s?\g<5>\)\s?{\s?\$\w+\s?=\s?array\(\s?\g<5>+\s?=>\s?@\g<4>\(\),\s?\g<5>+\s?=>\s?\g<5>+,\s?\);\s?echo\s?@\g<4>\(\$\w+\);\s?}\s?elseif\s?\(\$\w+\[\g<5>\]\s?==\s?\g<5>\)\s?{\s?eval\(\$\w+\[\g<5>\]\);\s?}\s?(?:exit\(\);)?\s?}\s?}?~msi',
            'id' => 'globalArrayEval'
        ),

        array(
            'full' => '~<\?php\s{0,30}(\$\w+)\s{0,30}=\s{0,30}"(.+?)";\s{0,30}((?:\$\w+\s{0,30}=\s{0,30}(?:\1\[\'\w\s{0,30}\'\s{0,30}\+\s{0,30}\d+\s{0,30}\+\s{0,30}\'\s{0,30}\w\'\]\s{0,30}\.?\s{0,30})+;\s{0,30})+)(\$\w+)\s{0,30}=\s{0,30}"(\d+)";\s{0,30}(?:\$\w+\s{0,30}=\s{0,30}\$\w+\(\s{0,30}\$\w+\s{0,30},\s{0,30}\$\w+\(\s{0,30}"\s{0,30}"\)\s{0,30},\s{0,30}"[\w\+]+"\)\s{0,30};\s{0,30})+(?:\$\w+\s{0,30}=\s{0,30}\$\w+\(\s{0,30}\$\w+\(\s{0,30}\$\w+\)\s{0,30},\s{0,30}\$\w+\(\s{0,30}?\$\w+\)\s{0,30}\)\s{0,30};\s{0,30})+\$\w+\((?:\s{0,30}\$\w+\(\s{0,30}"\s{0,20}\w\s{0,20}"\)\s{0,30}\.?\s{0,30})+"\(\\\\"\w+\\\\"\s{0,30},\s{0,30}"\s{0,30}\.\s{0,30}\$\w+\(\s{0,30}\$\w+\(\s{0,30}"\d+"\s{0,30},\s{0,30}\$\w+\(\s{0,30}"\s{0,20}"\)\s{0,30},\s{0,30}"[\d\w=]+"\)\s{0,30}\)\s{0,30}\.\s{0,30}"\s{0,30}\)\s{0,30};"\)\s{0,30};\s{0,30}\$\w+\s{0,30}=\s{0,30}\$\w+\(\w+\)\s{0,30};\s{0,30}\$\w+\(\s{0,30}(?:\$\w+\(\s{0,30}"\s{0,30}[?>]\s{0,30}"\)\s{0,30}\.\s{0,30})+(\$\w+)\(\s{0,30}(\$\w+)\(\s{0,30}(\$\w+),\s{0,30}(\$\w+)\(\s{0,30}"\s{0,30}"\)\s{0,30},\s{0,30}(\$\w+)\(\s{0,30}"([()\w@|*#\[\]&\/\+=]+)"\s{0,30},\s{0,30}(\$\w+),\s{0,30}(\$\w+)\)\s{0,30}\)\)\s{0,30}\)\s{0,30};\s{0,30}\$\w+\s?=\s?\d+\s?;\s{0,30}\?>~msi',
            'fast' => '~<\?php\s{0,30}(\$\w+)\s{0,30}=\s{0,30}"(.+?)";\s{0,30}((?:\$\w+\s{0,30}=\s{0,30}(?:\1\[\'\w\s{0,30}\'\s{0,30}\+\s{0,30}\d+\s{0,30}\+\s{0,30}\'\s{0,30}\w\'\]\s{0,30}\.?\s{0,30})+;\s{0,30})+)(\$\w+)\s{0,30}=\s{0,30}"(\d+)";\s{0,30}(?:\$\w+\s{0,30}=\s{0,30}\$\w+\(\s{0,30}\$\w+\s{0,30},\s{0,30}\$\w+\(\s{0,30}"\s{0,30}"\)\s{0,30},\s{0,30}"[\w\+]+"\)\s{0,30};\s{0,30})+(?:\$\w+\s{0,30}=\s{0,30}\$\w+\(\s{0,30}\$\w+\(\s{0,30}\$\w+\)\s{0,30},\s{0,30}\$\w+\(\s{0,30}?\$\w+\)\s{0,30}\)\s{0,30};\s{0,30})+\$\w+\((?:\s{0,30}\$\w+\(\s{0,30}"\s{0,20}\w\s{0,20}"\)\s{0,30}\.?\s{0,30})+"\(\\\\"\w+\\\\"\s{0,30},\s{0,30}"\s{0,30}\.\s{0,30}\$\w+\(\s{0,30}\$\w+\(\s{0,30}"\d+"\s{0,30},\s{0,30}\$\w+\(\s{0,30}"\s{0,20}"\)\s{0,30},\s{0,30}"[\d\w=]+"\)\s{0,30}\)\s{0,30}\.\s{0,30}"\s{0,30}\)\s{0,30};"\)\s{0,30};\s{0,30}\$\w+\s{0,30}=\s{0,30}\$\w+\(\w+\)\s{0,30};\s{0,30}\$\w+\(\s{0,30}(?:\$\w+\(\s{0,30}"\s{0,30}[?>]\s{0,30}"\)\s{0,30}\.\s{0,30})+(\$\w+)\(\s{0,30}(\$\w+)\(\s{0,30}(\$\w+),\s{0,30}(\$\w+)\(\s{0,30}"\s{0,30}"\)\s{0,30},\s{0,30}(\$\w+)\(\s{0,30}"([()\w@|*#\[\]&\/\+=]+)"\s{0,30},\s{0,30}(\$\w+),\s{0,30}(\$\w+)\)\s{0,30}\)\)\s{0,30}\)\s{0,30};\s{0,30}\$\w+\s?=\s?\d+\s?;\s{0,30}\?>~msi',
            'id' => 'tinkleShell'
        ),

        array(
            'full' => '~(?:\$\w+="\w+";)+(\$\w+)="([\w_)(;\/\.*]+)";\$\w+="\w+";function\s(\w+)\((?:\$\w+,?){3}\){return\s?""(?:\.\$\w+\.""){3};}(?:\$\w+=(?:(?:"\w+")|(?:\3\((?:\1\[\d+\],?\.?)+\))|(?:(?:\3\()+(?:\$\w+\,?(?:\)\,)?)+)(?:(?:(?:\3\()+)*(?:(?:\$\w+,?)+)*(?:\),)*(?:\)*))+);)+\$\w+=\3\((?:\1\[\d+\]\.?)+(?:,"")+\);(?:\$\w+=\3\(\3\(\$\w+,\$\w+,\$\w+\),\3\((?:\$\w+,?)+\),\3\(\$\w+,\3\(\$\w+,\$\w+,""\),\$\w+\)\)\."\'(?<str>[\w\/\+]+)\'")\.\3\((?:\1\[\d+\],?\.?)+\);\$\w+\(\$\w+,array\("","}"\.\$\w+\."\/+"\)\);~msi',
            'fast' => '~(?:\$\w+="\w+";)+(\$\w+)="([\w_)(;\/\.*]+)";\$\w+="\w+";function\s(\w+)\((?:\$\w+,?){3}\){return\s?""(?:\.\$\w+\.""){3};}(?:\$\w+=(?:(?:"\w+")|(?:\3\((?:\1\[\d+\],?\.?)+\))|(?:(?:\3\()+(?:\$\w+\,?(?:\)\,)?)+)(?:(?:(?:\3\()+)*(?:(?:\$\w+,?)+)*(?:\),)*(?:\)*))+);)+\$\w+=\3\((?:\1\[\d+\]\.?)+(?:,"")+\);(?:\$\w+=\3\(\3\(\$\w+,\$\w+,\$\w+\),\3\((?:\$\w+,?)+\),\3\(\$\w+,\3\(\$\w+,\$\w+,""\),\$\w+\)\)\."\'(?<str>[\w\/\+]+)\'")\.\3\((?:\1\[\d+\],?\.?)+\);\$\w+\(\$\w+,array\("","}"\.\$\w+\."\/+"\)\);~msi',
            'id' => 'wsoFunc'
        ),

        array(
            'full' => '~\$\w+\[\'\w+\'\]\s?=\s?"[\w;\/\.*)(]+";\s?\$\w+\[\'\w+\'\]\s?=\s?(?:\$\w+\[\'\w+\'\]\[\d+\]\.?)+;\s?\$\w+\s?=\s?(?:"[\w()]*"\.chr\([\d-]+\)\.?)+"\(";\s?\$\w+\s?=\s?"[)\\\\\w;]+";\s?\$\w+\s?=\s?\$\w+\."\'(?<str>[\w\/\+]+)\'"\.\$\w+;\s?\$\w+\[\'\w+\'\]\((?:\$\w+\[\'\w+\'\]\[\d+\]\.?)+,\s?\$\w+\s?,"\d+"\);~msi',
            'fast' => '~\$\w+\[\'\w+\'\]\s?=\s?"[\w;\/\.*)(]+";\s?\$\w+\[\'\w+\'\]\s?=\s?(?:\$\w+\[\'\w+\'\]\[\d+\]\.?)+;\s?\$\w+\s?=\s?(?:"[\w()]*"\.chr\([\d-]+\)\.?)+"\(";\s?\$\w+\s?=\s?"[)\\\\\w;]+";\s?\$\w+\s?=\s?\$\w+\."\'(?<str>[\w\/\+]+)\'"\.\$\w+;\s?\$\w+\[\'\w+\'\]\((?:\$\w+\[\'\w+\'\]\[\d+\]\.?)+,\s?\$\w+\s?,"\d+"\);~msi',
            'id' => 'wsoFunc'
        ),

        array(
            'full' => '~function\s(\w+)\((\$\w+)\)\s?{\s?\2=gzinflate\(base64_decode\(\2\)\);\s?for\((\$\w+)=\d+;\3<strlen\(\2\);\3\+\+\)\s?{\s?\2\[\3\]\s?=\s?chr\(ord\(\2\[\3\]\)-\d+\);\s?}\s?return\s\2;\s?}eval\(\1\("([\w\+\/=]+)"\)\);~msi',
            'fast' => '~function\s(\w+)\((\$\w+)\)\s?{\s?\2=gzinflate\(base64_decode\(\2\)\);\s?for\((\$\w+)=\d+;\3<strlen\(\2\);\3\+\+\)\s?{\s?\2\[\3\]\s?=\s?chr\(ord\(\2\[\3\]\)-\d+\);\s?}\s?return\s\2;\s?}eval\(\1\("([\w\+\/=]+)"\)\);~msi',
            'id' => 'evalWanFunc',
        ),

        array(
            'full' => '~if\s\(file_exists\("(\w+)"\)\){\s?}\s?else\s?{\s?(\$\w+)\s?=\s?fopen\(\'\1\.php\',\s?\'w\'\);\s?(\$\w+)\s?=\s?base64_decode\("([\w\+\/=]+)"\);\s?fwrite\(\2\s?,\3\);\s?fclose\(\2\);\s?}~msi',
            'fast' => '~if\s\(file_exists\("(\w+)"\)\){\s?}\s?else\s?{\s?(\$\w+)\s?=\s?fopen\(\'\1\.php\',\s?\'w\'\);\s?(\$\w+)\s?=\s?base64_decode\("([\w\+\/=]+)"\);\s?fwrite\(\2\s?,\3\);\s?fclose\(\2\);\s?}~msi',
            'id' => 'funcFile',
        ),

        array(
            'full' => '~(\$GLOBALS\[\'\w+\'\]\s=\sarray\((?:\s\'\w+\'\s=>\s\'?\w+\'?,)+\s\);\s((?:\$\w+=(?:\'\w+\'\.?)+;)+)(?:if\(!\$\w+\((?:\'\w*\'\.?)+\)\){function\s\w+\(\$\w+\){.*?else{function\s\w+\(\$\w+\){.*?return\s\$\w+\(\$\w+\);}}){2})\$\w+=(?:\'\w*\'\.?)+;(\$\w+)\s?=\s?\$\w+\(\'\$\w+\',\$\w+\.\'\(.\.\$\w+\.(?:\'[\w(\$);]*\'\.?)+\);\3\("([\w\/\+=]+)"\);~msi',
            'fast' => '~(\$GLOBALS\[\'\w+\'\]\s=\sarray\((?:\s\'\w+\'\s=>\s\'?\w+\'?,)+\s\);\s((?:\$\w+=(?:\'\w+\'\.?)+;)+)(?:if\(!\$\w+\((?:\'\w*\'\.?)+\)\){function\s\w+\(\$\w+\){.*?else{function\s\w+\(\$\w+\){.*?return\s\$\w+\(\$\w+\);}}){2})\$\w+=(?:\'\w*\'\.?)+;(\$\w+)\s?=\s?\$\w+\(\'\$\w+\',\$\w+\.\'\(.\.\$\w+\.(?:\'[\w(\$);]*\'\.?)+\);\3\("([\w\/\+=]+)"\);~msi',
            'id' => 'gulf',
        ),

        array(
            'full' => '~(\$\w+)=(\w+);(\$\w+)="(.+?)";(\$\w+)=\3;(\$\w+)=strlen\(\5\);(\$\w+)=\'\';for\((\$\w+)=\d+;\8<\6;\8\+\+\)\7\s?\.=\s?chr\(ord\(\5\[\8\]\)\s?\^\s?\1\);eval\("\?>"\.\7\."<\?"\);~msi',
            'fast' => '~(\$\w+)=(\w+);(\$\w+)="(.+?)";(\$\w+)=\3;(\$\w+)=strlen\(\5\);(\$\w+)=\'\';for\((\$\w+)=\d+;\8<\6;\8\+\+\)\7\s?\.=\s?chr\(ord\(\5\[\8\]\)\s?\^\s?\1\);eval\("\?>"\.\7\."<\?"\);~msi',
            'id' => 'evalConcatAsciiChars',
        ),

        /*array(
            'full' => '~goto \w+;\s*(\w+:\s*(\w+:\s*)?.*?goto\s*\w+;\s*(}\s*goto\s*\w+;)?(goto\s*\w+;)?\s*)+\w+:\s*[^;]+;(\s*goto\s*\w+;\s*\w+:\s*\w+:)?~msi',
            'fast' => '~goto \w+;\s*(\w+:\s*(\w+:\s*)?.*?goto\s*\w+;\s*(}\s*goto\s*\w+;)?(goto\s*\w+;)?\s*)+\w+:\s*[^;]+;(\s*goto\s*\w+;\s*\w+:\s*\w+:)?~msi',
            'id' => 'goto',
        ),*/

        /*array(
            'full' => '~if\(isset\(\$_POST\[\'\w+\'\]\)\){echo[\s\'\w]+;\s*exit\(\);}\s*if\(isset\(\$_COOKIE\)\){(\$\w+)=\$_COOKIE;\(count\(\1\)==\d+&&in_array\(gettype\(\1\)\.count\(\1\),\1\)\)\?\(\(\1\[\d+\]=\1\[\d+\]\.\1\[\d+\]\)&&\(\1\[\d+\]=\1\[\d+\]\(\1\[\d+\]\)\)&&\(\1=\1\[\d+\]\(\1\[\d+\],\1\[\d+\]\(\1\[\d+\]\)\)\)&&\1\(\)\):\1;}\s*if\(!isset\(\$_POST\[\'\w+\'\]\)&&!isset\(\$_GET\[\'\w+\'\]\)\){exit\(\);}\s*(?:(\$\w+)\[\d+\]=\'\w+\';)+\s*if\(isset\(\$_POST\[\'\w+\'\]\)\){\$\w+=\$_POST\[\'\w+\'\];}else{\$\w+=\$_GET\[\'\w+\'\];}\s*\$\w+\s*=\s*array_flip\(str_split\(\'(\w+)\'\)\);\$\w+\s*=\s*str_split\(md5\(\$\w+\)\.md5\(\$\w+\)\);\$\w+\s*=\s*array\(\);\$\w+\s*=\s*\'\';\s*foreach\s*\(\$\w+\s*as\s*\$\w+\s*=>\s*\$\w+\)\s*{while\s*\(1\)\s*{if\(isset\(\$\w+\[\$\w+\[\$\w+\]\]\)\){\$\w+\[\$\w+\]\+\+;}else\{\$\w+\[\$\w+\[\$\w+\]\]=\'\';break;}}}\s*foreach\s*\(\$\w+\s*as\s*\$\w+\s*=>\s*\$\w+\)\s*{\$\w+\s*\.=\s*\$\w+\[\$\w+\];}\s*eval\(trim\(base64_decode\(base64_decode\(\$\w+\)\)\)\);~mis',
            'fast' => '~if\(isset\(\$_POST\[\'\w+\'\]\)\){echo[\s\'\w]+;\s*exit\(\);}\s*if\(isset\(\$_COOKIE\)\){(\$\w+)=\$_COOKIE;\(count\(\1\)==\d+&&in_array\(gettype\(\1\)\.count\(\1\),\1\)\)\?\(\(\1\[\d+\]=\1\[\d+\]\.\1\[\d+\]\)&&\(\1\[\d+\]=\1\[\d+\]\(\1\[\d+\]\)\)&&\(\1=\1\[\d+\]\(\1\[\d+\],\1\[\d+\]\(\1\[\d+\]\)\)\)&&\1\(\)\):\1;}\s*if\(!isset\(\$_POST\[\'\w+\'\]\)&&!isset\(\$_GET\[\'\w+\'\]\)\){exit\(\);}\s*(?:(\$\w+)\[\d+\]=\'\w+\';)+\s*if\(isset\(\$_POST\[\'\w+\'\]\)\){\$\w+=\$_POST\[\'\w+\'\];}else{\$\w+=\$_GET\[\'\w+\'\];}\s*\$\w+\s*=\s*array_flip\(str_split\(\'(\w+)\'\)\);\$\w+\s*=\s*str_split\(md5\(\$\w+\)\.md5\(\$\w+\)\);\$\w+\s*=\s*array\(\);\$\w+\s*=\s*\'\';\s*foreach\s*\(\$\w+\s*as\s*\$\w+\s*=>\s*\$\w+\)\s*{while\s*\(1\)\s*{if\(isset\(\$\w+\[\$\w+\[\$\w+\]\]\)\){\$\w+\[\$\w+\]\+\+;}else\{\$\w+\[\$\w+\[\$\w+\]\]=\'\';break;}}}\s*foreach\s*\(\$\w+\s*as\s*\$\w+\s*=>\s*\$\w+\)\s*{\$\w+\s*\.=\s*\$\w+\[\$\w+\];}\s*eval\(trim\(base64_decode\(base64_decode\(\$\w+\)\)\)\);~mis',
            'id' => 'scriptWithPass',
        ),*/

    );

    private $full_source;
    private $prev_step;
    private $cur;
    private $obfuscated;
    private $max_level;
    private $max_time;
    private $run_time;
    private $fragments;
    private $grabed_signature_ids;

    public function __construct($text, $text2 = '', $max_level = 30, $max_time = 5)
    {
        $temp = str_replace(' ', '', $text);
        if (
            (strpos($temp, '=file(__FILE__);eval(base64_decode(')   //zeura hack
                && strpos($temp, '1)));__halt_compiler();'))
            || (strpos($temp, 'define(\'__LOCALFILE__\',__FILE__);')   //obf_20200527_1
                && strpos($temp, '__halt_compiler();'))
            || (strpos($text2, '* Bizden oncekiler demo *')) //bizden
            || (strpos($temp, '");$cvsu=$gg')) //TinkleShell
        ) {
            $this->text = $text2;
            $this->full_source = $text2;
        } else {
            $this->text = $text;
            $this->full_source = $text;
        }
        $this->max_level = $max_level;
        $this->max_time = $max_time;
        $this->fragments = [];
        $this->grabed_signature_ids = [];
    }

    public function getObfuscateType($str)
    {
        $str = preg_replace('~\s+~', ' ', $str);
        $l_UnicodeContent = Helpers::detect_utf_encoding($str);
        if ($l_UnicodeContent !== false) {
            if (function_exists('iconv')) {
                $str = iconv($l_UnicodeContent, "CP1251//IGNORE", $str);
            }
        }
        if(strpos($str, '# Malware list detected by AI-Bolit (http') !== false) {
            return '';
        }
        if(strpos($str, '#Malware list detected by AI-Bolit(http') !== false) {
            return '';
        }
        if(strpos($str, '<div class="header">Отчет сканера AI-Bolit</div>') !== false) {
            return '';
        }
        if (strpos($str, '$default_action="FilesMan"') !== false) {
            return '';
        }
        foreach ($this->signatures as $signature) {
            if (preg_match($signature['fast'], $str, $matches)) {
                if ($signature['id'] === 'echo') {
                    if (preg_match('~\$_(POST|GET|REQUEST|COOKIE)~ms', $matches[0])) {
                        return '';
                    }
                    if (!isset($matches[5]) || $matches[5] === '') {
                        return '';
                    }
                }
                if ($signature['id'] === 'eval') {
                    if (strpos($matches[0], 'file_get_contents') !== false) {
                        return '';
                    }
                    if (preg_match('~\$_(POST|GET|REQUEST|COOKIE)~ms', $matches[0])) {
                        return '';
                    }
                    if (strpos($matches[0], '=> array(\'eval(base64_decode(\')') !== false) {
                        return '';
                    }
                    if (@$matches[6] == '\'";') {
                        return '';
                    }
                }
                return $signature['id'];
            }
        }
        return '';
    }

    private function getObfuscateFragment($str)
    {
        foreach ($this->signatures as $signature) {
            if (preg_match($signature['full'], $str, $matches)) {
                return $matches;
            }
        }
        return '';
    }

    public function getFragments()
    {
        if (count($this->fragments) > 0) {
            return $this->fragments;
        }
        return false;
    }

    public function getGrabedSignatureIDs()
    {
        return array_keys($this->grabed_signature_ids);
    }

    private function grabFragments()
    {
        if ($this->cur == null) {
            $this->cur = $this->text;
        }
        $str = $this->cur;
        reset($this->signatures);
        while ($sign = current($this->signatures)) {
            $regex = $sign['full'];
            if (preg_match($regex, $str, $matches)) {
                $this->grabed_signature_ids[$sign['id']] = 1;
                $this->fragments[$matches[0]] = $matches[0];
                $str = str_replace($matches[0], '', $str);
            } else {
                next($this->signatures);
            }
        }
    }

    private function deobfuscateFragments()
    {
        $prev_step = '';
        if (count($this->fragments) > 0) {
            $i = 0;
            foreach ($this->fragments as $frag => $value) {
                if ($frag !== $value) {
                    continue;
                }
                $type = $this->getObfuscateType($value);
                while ($type !== '' && $i < 50) {
                    $match = $this->getObfuscateFragment($value);
                    $find = $match[0] ?? '';
                    $func = 'deobfuscate' . ucfirst($type);
                    $temp = @$this->$func($find, $match);
                    $value = str_replace($find, $temp, $value);
                    $this->fragments[$frag] = $value;
                    $type = $this->getObfuscateType($value);
                    if ($prev_step == hash('sha256', $value)) {
                        break;
                    } else {
                        $prev_step = hash('sha256', $value);
                    }
                    $i++;
                }
            }
        }
    }

    public function deobfuscate($hangs = 0, $prev_step = '')
    {
        $deobfuscated = '';
        $this->run_time = microtime(true);
        $this->cur = $this->text;
        $this->grabFragments();
        $this->deobfuscateFragments();
        $deobfuscated = $this->cur;
        if (count($this->fragments) > 0 ) {
            foreach ($this->fragments as $fragment => $text) {
                $deobfuscated = str_replace($fragment, $text, $deobfuscated);
            }
        }

        $deobfuscated = preg_replace_callback('~"[\w\\\\\s=;_<>&/\.-]+"~msi', function ($matches) {
            return preg_match('~\\\\x[2-7][0-9a-f]|\\\\1[0-2][0-9]|\\\\[3-9][0-9]|\\\\0[0-4][0-9]|\\\\1[0-7][0-9]~msi', $matches[0]) ? stripcslashes($matches[0]) : $matches[0];
        }, $deobfuscated);

        $deobfuscated = preg_replace_callback('~echo\s*"((.*?[^\\\\])??((\\\\\\\\)+)?+)"~msi', function ($matches) {
            return preg_match('~\\\\x[2-7][0-9a-f]|\\\\1[0-2][0-9]|\\\\[3-9][0-9]|\\\\0[0-4][0-9]|\\\\1[0-7][0-9]~msi', $matches[0]) ? stripcslashes($matches[0]) : $matches[0];
        }, $deobfuscated);

        preg_match_all('~(global\s*(\$[\w_]+);)\2\s*=\s*"[^"]+";~msi', $deobfuscated, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            $deobfuscated = str_replace($match[0], '', $deobfuscated);
            $deobfuscated = str_replace($match[1], '', $deobfuscated);
        }

        preg_match_all('~\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\'](\w+)[\'"];~msi', $deobfuscated, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            $deobfuscated = preg_replace_callback('~\$\{\$\{"GLOBALS"\}\[[\'"]' . $match[1] . '[\'"]\]\}~msi', function ($matches) use ($match) {
                return '$' . $match[2];
            }, $deobfuscated);
            $deobfuscated = str_replace($match[0], '', $deobfuscated);
        }

        $deobfuscated = preg_replace_callback('~\$\{(\$\w+)\}~msi', function ($matches) use ($deobfuscated) {
            if (isset($matches[1])) {
                preg_match('~\\' . $matches[1] . '\s*=\s*["\'](\w+)[\'"];~msi', $deobfuscated, $matches2);
                if (isset($matches2[1])) {
                    return '$' . $matches2[1];
                }
                return $matches[0];
            }
        }, $deobfuscated);

        if (strpos($deobfuscated, 'chr(')) {
            $deobfuscated = preg_replace_callback('~chr\((\d+)\)~msi', function ($matches) {
                return "'" . chr($matches[1]) . "'";
            }, $deobfuscated);
        }

        if (substr_count(substr($deobfuscated, 0, 200), 'base64_decode(\'') > 3) {
            $deobfuscated = preg_replace_callback('~base64_decode\(\'([^\']+)\'\)~msi', function ($matches) {
                return "'" . base64_decode($matches[1]) . "'";
            }, $deobfuscated);
        }

        if ($this->getObfuscateType($deobfuscated) !== '' && $hangs < 5) {
            $this->text = $deobfuscated;
            if ($prev_step == hash('sha256', $deobfuscated)) {
                return $deobfuscated;
            }
            $deobfuscated = $this->deobfuscate(++$hangs, hash('sha256', $deobfuscated));
        }
        return $deobfuscated;
    }

    private function deobfuscateObf_20200618_1($str)
    {
        preg_match('~(\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\]="[\w\\\\]+";(\$\w+="\w+";)?)+.+\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\].+}+~msi', $str, $matches);
        $find = $matches[0];
        $res = stripcslashes($str);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateBypass($str, $matches)
    {
        $find = $matches[0];
        $bypass = stripcslashes($matches[2]);
        $eval = $matches[3] . $bypass . $matches[4];
        $res = str_replace($find, $eval, $str);
        return $res;
    }

    private function deobfuscateObf_20200720_1($str, $matches)
    {
        $find = $matches[0];
        $res = base64_decode($matches[2]);
        $res = str_replace($find, $res, $str);
        return $res;
    }



    private function deobfuscateGoto($str)
    {
        preg_match('~goto \w+;\s*(\w+:\s*(\w+:\s*)?.*?goto\s*\w+;\s*(}\s*goto\s*\w+;)?(goto\s*\w+;)?\s*)+\w+:\s*[^;]+;(\s*goto\s*\w+;\s*\w+:\s*\w+:)?~msi', $str, $matches);
        $find = $matches[0];
        $res = $str;
        $labels = [];
        preg_match_all('~((\w+):\s*((\w+):\s*)?(.*?goto\s*\w+;))(\s*goto\s*\w+;)?~msi', $str, $matches, PREG_SET_ORDER);
        foreach($matches as $item) {
            if (isset($item[4]) && $item[4] != '') {
                $labels[$item[4]] = $item[5];
            }
            $labels[$item[2]] = $item[5];
            $res = str_replace($item[1], '', $res);
        }
        while(preg_match('~goto\s*(\w+);~msi', $res, $matches) && isset($labels[$matches[1]])) {
            $res = str_replace($matches[0], PHP_EOL . $labels[$matches[1]] . PHP_EOL, $res);
        }

        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200527_1($str)
    {
        preg_match('~error_reporting\(0\);define\(\'\w+\',\s*__FILE__\);define\(\'\w+\',\s*fopen\(__FILE__,\s*\'r\'\)\);fseek\(\w+,\s*__COMPILER_HALT_OFFSET__\);((\$\w+="\\\\x[0-9a-f]+";)+(\$\w+="[^"]+";)+eval\("\?>"\.(\$\w+\()+"([^"]+)"\)+;)+(?:/\*\w+\*/)?__halt_compiler\(\);([\w#|>^%\[\.\]\\\\/=]+)~msi', $str, $matches);
        $find = $matches[0];
        $res = $str;
        $encoded = $matches[6];
        $res = preg_replace_callback('~(\$\w+="\\\\x[0-9a-f]+";)+(\$\w+="[^"]+";)+eval\("\?>"\.(\$\w+\()+"([^"]+)"\)+;~msi', function ($m) use ($str) {
            $layer1 = hex2bin(str_rot13(gzinflate(str_rot13(base64_decode($m[4])))));
            if (preg_match('~(\$\w+="[^"]+";)+eval\(\$\w\.(\$\w+\()+"([^"]+)"\)+;~msi', $layer1, $matches)) {
                $temp = "?>" . hex2bin(str_rot13(gzinflate(str_rot13(base64_decode($matches[3])))));
                while (preg_match('~(\$\w+)=strrev\(\1\);(\1=\s*str_replace\([\'"]([^"\']+)[\'"],"[^"]+",\1\);)+@?eval\("\?\>"\.\$\w+\(\1\)+;~msi', $temp, $matches)) {
                    if (preg_match('~\\' . $matches[1] . '="([^"]+)";~msi', $layer1, $matches1)) {
                        $code = $matches1[1];
                        $code = strrev($code);
                        if (preg_match_all('~str_replace\([\'"]([^"\']+)[\'"],"([^"]+)"~msi', $temp, $m, PREG_SET_ORDER)) {
                            foreach($m as $item) {
                                $code = str_replace($item[1], $item[2], $code);
                            }
                            $temp = base64_decode($code);
                        }
                    }
                }
                return $temp;
            }
        }, $res);
        if (preg_match_all('~str_replace\([\'"]([^"\']+)[\'"],[\'"]([^"\']+)[\'"]~msi', $res, $m, PREG_SET_ORDER)) {
            foreach($m as $item) {
                $encoded = str_replace($item[1], $item[2], $encoded);
            }
            $res = base64_decode($encoded);
        }

        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200602_1($str)
    {
        preg_match('~(\$\w+)=strrev\("[base64_decode]+"\)\.str_replace\(\'(\w+)\',\'\',\'\w+\'\);\s*eval\(\1\((\$\w+)\)\);~msi', $str, $matches);
        $find = $matches[0];
        $res = 'eval(base64_decode(' . $matches[3] . '));';
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200526_1($str, $matches)
    {
        $find = $matches[0];
        $res = base64_decode($matches[2]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200522_1($str, $matches)
    {
        $find = $matches[0];
        $res = strrev(gzinflate(base64_decode(substr($matches[9], (int)hex2bin($matches[3]), (int)hex2bin($matches[5])))));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200507_5($str, $matches)
    {
        $find = $matches[0];
        $res = base64_decode($matches[1]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200507_4($str, $matches)
    {
        $find = $matches[0];
        $ar = $matches[2];
        $ar = explode(",\n", $ar);
        $array = [];
        foreach ($ar as $v) {
            $array[substr(trim($v),1,1)] = substr(trim($v), -2, 1);
        }
        unset($ar);
        $res = '';
        $split = str_split($matches[5]);
        foreach ($split as $x) {
            foreach ($array as $main => $val) {
                if ($x == (string)$val) {
                    $res .= $main;
                    break;
                }
            }
        }
        $res = gzinflate(base64_decode($res));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200513_1($str, $matches)
    {
        $find = $matches[0];
        $res = gzuncompress(base64_decode(strrev($matches[5])));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200507_3($str, $matches)
    {
        $find = $matches[0];
        $decode = htmlspecialchars_decode(gzinflate(base64_decode($matches[2])));
        $res = str_replace('$An0n_3xPloiTeR', "'" . $matches[3] . "'", $decode);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200507_2($str, $matches)
    {
        $find = $matches[0];
        $res = base64_decode($matches[4]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200507_1($str)
    {
        preg_match('~(\$\w+)=base64_decode\(\'([^\']+)\'\);\s*eval\(\1\);~mis', $str, $matches);
        $find = $matches[0];
        $res = base64_decode($matches[2]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200504_1($str)
    {
        preg_match('~(\$\w+)\s*=\s*\("\?>"\.gzuncompress\(base64_decode\("([^"]+)"\)\)\);\s*@?eval\(\1\);~msi', $str, $matches);
        $find = $matches[0];
        $res = ' ?>' . gzuncompress(base64_decode($matches[2]));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateSmartToolsShop($str, $matches)
    {
        $find = $matches[0];
        $res = str_rot13(gzinflate(str_rot13(base64_decode($matches[2]))));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200421_1($str)
    {
        preg_match('~(?:\$\w+\s*=\s*\'\w+\';)?\s*(\$\w+)\s*=\s*urldecode\(\'[%0-9a-f]+\'\);(\s*(\$\w+)\s*=(\s*\1\{\d+\}\.?)+;)+\s*(\$\w+)\s*=\s*"[^"]+"\.\3\("([^"]+)"\);\s*eval\(\5\);~msi', $str, $matches);
        $find = $matches[0];
        $res = ' ?>' . base64_decode($matches[6]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200414_1($str)
    {
        preg_match('~function\s*(\w+)\((\$\w+),\s*(\$\w+)\)\s*\{\s*\3\s*=\s*md5\(\3\);\s*\$\w+\s*=\s*\d+;\s*\2\s*=\s*base64_decode\(\2\);\s*\$\w+\s*=\s*strlen\(\2\);\s*\$\w+\s*=\s*strlen\(\3\);\s*\$\w+\s*=\s*\'\';\s*for\s*\(\$\w+\s*=\s\d+;\s*\$\w+\s*<\s*\$len;\s*\$\w+\+\+\)\s*\{\s*if\s*\(\$\w+\s*==\s*\$\w+\)\s*\{\s*\$\w+\s*=\s*\d+;\s*}\s*\$\w+\s*\.=\s*substr\(\3,\s*\$\w+,\s*\d+\);\s*\$\w+\+\+;\s*\}\s*\$\w+\s*=\s*\'\';\s*for\s*\(\$\w+\s*=\s*\d+;\s*\$\w+\s*<\s*\$\w+;\s*\$\w+\+\+\)\s*{\s*if\s*\(ord\(substr\(\2,\s*\$\w+,\s*\d+\)\)\s*<\s*ord\(substr\(\$\w+,\s*\$\w+,\s*\d+\)\)\)\s*\{\s*\$\w+\s*\.=\s*chr\(\(ord\(substr\(\2,\s*\$\w+,\s*\d+\)\)\s*\+\s*\d+\)\s*-\s*ord\(substr\(\$\w+,\s*\$\w+,\s*\d+\)\)\);\s*}\s*else\s*{\s*\$\w+\s*\.=\s*chr\(ord\(substr\(\2,\s*\$\w+,\s*\d+\)\)\s*-\s*ord\(substr\(\$\w+,\s*\$\w+,\s*\d+\)\)\);\s*}\s*}\s*return\s*\$\w+;\s*\}\s*\2\s*=\s*"([^"]+)";\s*\3\s*=\s*"([^"]+)";\s*(\$\w+)\s*=\s*\1\(\2,\s*\3\);\s*eval\(\6\);~msi', $str, $matches);
        $find = $matches[0];
        $data = $matches[4];
        $key = $matches[5];
        $res = Helpers::obf20200414_1_decrypt($data, $key);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200402_2($str, $matches)
    {
        $find = $matches[0];
        $code = $matches[15];
        $code = preg_replace_callback('~\s*"\s*\.((?:min|max|round)?\(\s*\d+[\.\,\|\s\|+\|\-\|\*\|\/]([\d\s\.\,\+\-\*\/]+)?\))\s*\.\s*"~msi', function($m) {
            return substr(Helpers::calc($m[1]), 1, -1);
        }, $code);
        $res = gzinflate(base64_decode($code)) ?:base64_decode($code);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateObf_20200402_1($str, $matches)
    {
        $find = $matches[0];
        $res = gzinflate(hex2bin(pack('H*',$matches[6])));
        $res = preg_replace('~//.+$~m', '', $res);
        preg_match('~\$\w+\(\$\w+,\$\w+\("",\s*\$\w+\(\$\w+\(\$\w+\(\$\w+\(\$\w+,\s*"(\d+)"\)+,\$\w+\);.+function \w+\((\$\w+),\s*\$\w+,\s(\$\w+)\)\s{\3\s=\s\3\s\.\s\3;.+return \2;}~msi', $res, $matches);
        $res = gzinflate(hex2bin(pack('H*',$matches[1])));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateOELove($str)
    {
        preg_match('~<\?php\s*defined\(\'[^\']+\'\)\s*\|\|\s*define\(\'[^\']+\',__FILE__\);(global\s*\$[^;]+;)+\s*(if\(!function_exists\(\'([^\']+)\'\)\){\s*function\s*[^\)]+\(\$[^,]+,\$[^=]+=\'\'\){\s*if\(empty\(\$[^\)]+\)\)\s*return\s*\'\';\s*\$[^=]+=base64_decode\(\$[^\)]+\);\s*if\(\$[^=]+==\'\'\)\s*return\s*\~\$[^;]+;\s*if\(\$[^=]+==\'-1\'\)\s*@[^\(]+\(\);\s*\$[^=]+=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\$[^\)]+\);\s*\$[^=]+=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\$[^,]+,\$[^,]+,\$[^\)]+\);\s*return\s*\$[^^]+\^\$[^;]+;\s*}}\s*)+(\$[^\[]+\["[^"]+"]=[^\(]+\(\'[^\']+\',\'[^\']*\'\);\s*)+(\$[^\[]+\[\'[^\']+\'\]=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\([^\)]*\)+;\s*)+return\(eval\(\$[^\[]+\[\'[^\']+\'\]\)+;\s*\?>\s*#!/usr/bin/php\s*-q\s*((\s*[^\s]+)+)~msi', $str, $matches);
        $find = $matches[0];
        $res = $str;
        $code = $matches[6];
        $res = iconv('UTF-8', 'ASCII//IGNORE', $res);

        preg_match('~\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\'([\da-f]{32})\'\);~msi', $res, $hash);
        $hash = strrev($hash[1]);
        preg_match_all('~\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\'([\d]{10})\'\)~msi', $res, $substr_offsets);
        $substr_offsets = $substr_offsets[1];
        $substr_offsets = array_map('strrev', $substr_offsets);
        $substr_offsets = array_map('intval', $substr_offsets);

        preg_match_all('~if\s*\(\!function_exists\(\'([^\']+)\'\)~msi', $res, $decoders);
        $decoders = $decoders[1];
        $var_array = [];
        preg_match_all('~\$([^\[]{3,20})\["([^"]+)"\]=(?:' . $decoders[0] . '|' . $decoders[1] . ')\(\'([^\']*)\',\'([^\']*)\'\);~msi', $res, $vars, PREG_SET_ORDER);
        $var_name = $vars[0][1];
        foreach ($vars as $var) {
            $var_array[$var[2]] = Helpers::OELoveDecoder($var[3], $var[4]);
            $res = str_replace($var[0], '', $res);
        }
        $layer1 = substr($code, 0, $substr_offsets[3] + 96);
        $layer1_dec = iconv('UTF-8', 'ASCII//IGNORE', gzuncompress(base64_decode($layer1)));
        $code = str_replace($layer1, $layer1_dec, $code);
        preg_match_all('~\$([^\[]{3,20})\["([^"]+)"\]=(?:' . $decoders[0] . '|' . $decoders[1] . ')\(\'([^\']*)\',\'([^\']*)\'\);~msi', $code, $vars, PREG_SET_ORDER);
        foreach ($vars as $var) {
            $var_array[$var[2]] = Helpers::OELoveDecoder($var[3], $var[4]);
            $code = str_replace($var[0], '', $code);
        }
        $layer2_start = strpos($code, '?>') + 2;
        $layer2 = substr($code, $layer2_start + $substr_offsets[2]);
        $layer2_dec = iconv('UTF-8', 'ASCII//IGNORE', gzuncompress(base64_decode(str_rot13($layer2))));
        $res = $layer2_dec;
        foreach($var_array as $k => $v) {
            $res = str_replace('$GLOBALS[\'' . $var_name . '\'][\'' . $k . '\'](', $v . '(', $res);
            $res = str_replace('$GLOBALS[\'' . $var_name . '\'][\'' . $k . '\']', '\'' . $v . '\'', $res);
        }

        $res = preg_replace_callback('~(?:' . $decoders[0] . '|' . $decoders[1] . ')\(\'([^\']*)\',\'([^\']*)\'\)~msi', function ($m) {
            return '\'' . Helpers::OELoveDecoder($m[1], $m[2]) . '\'';
        }, $res);

        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateEvalConcatVars($str)
    {
        preg_match('~((\$\w+="";\$\w+\s*\.=\s*"[^;]+;\s*)+)(?:="";)?(eval\((\s*(\$\w+)\s*\.)+\s*"([^"]+)(?:"\);)+)~msi', $str, $matches);
        $find = $matches[0];
        $res = $str;
        $parts = [];
        preg_match_all('~(\$\w+)="";\1\s*\.=\s*"([^"]+)"~msi', $matches[1], $matches1, PREG_SET_ORDER);
        foreach($matches1 as $match) {
            $parts[$match[1]] = stripcslashes(stripcslashes($match[2]));
        }
        $res = stripcslashes(stripcslashes($matches[3]));
        foreach($parts as $k => $v) {
            $res = str_replace($k, "'" . $v . "'", $res);
        }
        $res = preg_replace_callback('/[\'"]\s*?\.+\s*?[\'"]/smi', function($m) {
            return '';
        }, $res);

        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateVarFuncsEval($str)
    {
        preg_match('~((\$\w+)\s*=\s*)(base64_decode\s*\(+|gzinflate\s*\(+|strrev\s*\(+|str_rot13\s*\(+|gzuncompress\s*\(+|convert_uudecode\s*\(+|urldecode\s*\(+|rawurldecode\s*\(+|htmlspecialchars_decode\s*\(+)+"([^"]+)"\)+(;\s*@?eval\(([\'"?>.\s]+)?\2\);)~', $str, $matches);
        $find = $matches[0];
        $res = $str;
        $res = str_replace($matches[5], ');', $res);
        $res = str_replace($matches[1], 'eval(', $res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateComments($str, $matches)
    {
        $find = $matches[0];
        $res = preg_replace('~/\*\w+\*/~msi', '', $str);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateStrrevVarEval($str)
    {
        preg_match('~(\$\w+=strrev\("[^"]+"\);)+eval\((\$\w+\()+"([^"]+)"\)+;~mis', $str, $matches);
        $find = $matches[0];
        $res = gzinflate(base64_decode($matches[3]));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateAanKFM($str)
    {
        preg_match('~(\$\w+=(\w+)\(\'\d+\'\);\s*)+\$\w+=new\s\$\w+\(\2\(\'(\d+)\'\)+;error_reporting\(0\);eval\(\$\w+\(\$\w+->\$\w+\("([^"]+)"\)+;.+?function \2.+?return\s\$\w+;\s}~msi', $str, $matches);
        $find = $matches[0];
        $res = $str;
        $key = Helpers::aanKFMDigitsDecode($matches[3]);
        $res = Helpers::Xtea_decrypt($matches[4], $key);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateEvalChars($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        while(preg_match_all('~(?:@eval((?:\(\$[0O]+\[[\'"]\w+[\'"]\])+)\("([^"]+)"\)+;)|("\)\?\$[O0]+)~msi', $res, $matches, PREG_SET_ORDER)) {
            $match = $matches[0];
            if (isset($matches[1])) $match = $matches[1];
            $count = ($match[1] !== '') ? substr_count($match[1], '(') : 0;
            if ($count == 2) {
                $res = gzinflate(base64_decode($match[2]));
            } else if ($count == 3) {
                $res = gzinflate(base64_decode(str_rot13($match[2])));
            }
            if (isset($match[3]) && ($match[3] !== '')) {
                $res = preg_replace_callback('~(\$[0O]+\["\w+"\]\()+"([^"]+)"\)+;?~msi', function($m) {
                    return gzinflate(base64_decode(str_rot13($m[2])));
                }, $res);
            }
        }
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateGlobalsBase64($str)
    {
        preg_match('~<\?php\s+((\$GLOBALS\[\s*[\'"]\w+[\'"]\s*\])\s*=\s*base64_decode\("([^"]*)"\);)+\s*\?>(<\?php\s.+\2.+exit;\s}\sfunction\s\w+\(\)\s{\sreturn\sarray\(\s\'favicon\'\s=>\s\'[^\']+\',\s+\'sprites\'\s=>\s\'[^\']+\',\s\);\s})~msi', $str, $matches);
        $find = $matches[0];
        $vars = [];
        preg_match_all('~(\$GLOBALS\[\s*[\'"]\w+[\'"]\s*\])\s*=\s*base64_decode\("([^"]*)"\);~msi', $matches[0], $matches1, PREG_SET_ORDER);
        foreach($matches1 as $match) {
            $vars[$match[1]] = base64_decode($match[2]);
        }
        $code = $matches[4];
        foreach ($vars as $var => $value) {
            $code = str_replace($var . '(', $value . '(', $code);
            $code = str_replace($var, "'" . $value . "'", $code);
        }
        $res = $code;
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateEvalReturn($str, $matches)
    {
        $find = $matches[0];
        $res = stripcslashes(base64_decode($matches[2]));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateQibosoft($str)
    {
        preg_match('~\$\w+=__FILE__;\$\w+=fopen\(\$\w+,\'rb\'\);fread\(\$\w+,(\d+)\);\$\w+=explode\("\\\\t",base64_decode\(fread\(\$\w+,(\d+)\)+;\$\w+=\$\w+\[[\d+]\];[\$l1=\d{}\.;\(\)\[\]]+eval\(\$\w+\(\'([^\']+)\'\)+;\s*return\s*;\?>[\w=\+]+~msi', $str, $matches);
        $find = $matches[0];
        $res = $str;
        $hangs = 15;
        $obfPHP = explode('?>', $str);
        $obfPHP = $obfPHP[1];
        preg_match('~eval\(\$\w+\(\'([^\']+)\'\)+;~msi', $res, $temp);
        $res = str_replace($temp[0], base64_decode($temp[1]), $res);
        $offset = $matches[2];
        while (preg_match('~\$\w+\(\$\w+,(\d+)\);\s*eval\(\$\w+\(\$\w+\(\$\w+,(\d+)\)+;~msi', $res, $temp2) && $hangs--) {
            $offset += $temp2[1];
            $decode_loop = base64_decode(substr($obfPHP, $offset, $temp2[2]));
            $offset += $temp2[2];
            if (preg_match('~eval\(\$\w+\(\'([^\']+)\'\)+;~msi', $decode_loop, $temp)) {
                $res = str_replace($temp2[0], base64_decode($temp[1]), $res);
            } else {
                $res = $decode_loop;
            }

        }
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateUd64($str)
    {
        preg_match('~(\$ud64_c[o0]m="[\\\\0-9a-z\."]+;)+\$\w+=(\$ud64_c[o0]m\()+"([^"]+)"\)+;@eval\(\$ud64_c[o0]m\(\'[^\']+\'\)+;~msi', $str, $matches);
        $find = $matches[0];
        $res = gzinflate(convert_uudecode(base64_decode(gzinflate(base64_decode(str_rot13($matches[3]))))));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateCustom1($str)
    {
        preg_match('~\$\w+="([^"]+)";\$l+=0;\$l+=\'base64_decode\';\$l+=0;eval\(.+?;eval\(\$l+\);return;~msi', $str, $matches);
        $find = $matches[0];
        $res = Helpers::someDecoder3($matches[1]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateCustom2($str, $matches)
    {
        $find = $matches[0];
        $key = $matches[2];
        $var = $matches[3];
        preg_match_all('~\\' . $var . '\[\d+\]\s*=\s*"([^"]+)";~msi', $str, $matches);
        $res = base64_decode(Helpers::someDecoder4($matches[1], $key));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateLockIt2($str, $matches)
    {
        $find = $matches[0];
        $res = $matches[1];

        if(strpos($str, '$_X="') !== false && strpos($res, '\\x') !== false) {
            $res = stripcslashes($res);
        }
        if (preg_match_all('~\$[_\w]+\.=[\'"]([\w\+\/=]+)[\'"];~', $matches[0], $concatVars)) {
            foreach ($concatVars[1] as $concatVar) {
                $res .= $concatVar;
            }
        }
        $res = base64_decode($res);
        $res = strtr($res, $matches[2], $matches[3]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateAnaski($str, $matches)
    {
        $find = $matches[0];

        $res = gzinflate(str_rot13(base64_decode($matches[2])));
        $res = strtr($res, $matches[5], $matches[6]);

        return $res;
    }

    private function deobfuscateFuncs($str, $matches)
    {
        $find = $matches[0];
        $funcs = [];
        $payload = $matches[7];
        $var = $matches[6];
        $res = $str;
        $res = preg_replace_callback('~function\s*(\w+)\((\$\w+)\){\s*return\s*(\w+)\(\2(,\d+)?\);}\s*~msi', function($matches2) use (&$funcs){
            $funcs[$matches2[1]] = $matches2[3];
            return '';
        }, $res);
        foreach ($funcs as $k => $v) {
            $res = str_replace($k . '(', $v . '(', $res);
        }
        $res = str_replace($var . '="' . $payload . '";', '', $res);
        $res = str_replace($var, '"' . $payload . '"', $res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateSubstr($str)
    {
        preg_match('~\$\w+=0;(\$GLOBALS\[\'\w+\'\])\s*=\s*\'([^\']+)\';\s*(\$\w+)=pack\(\'H\*\',substr\(\1,\s*([-\d]+)\)\);if\s*\(!function_exists\(\'(\w+)\'\)\){function\s*\5\(\$\w+,\s*\$\w+\){\$\w+=\1;\s*\$d=pack\(\'H\*\',substr\(\1,\s*\4\)\);\s*return\s*\$\w+\(substr\(\$\w+,\s*\$\w+,\s*\$\w+\)\);}};eval\(\3\(\'([^\']+)\'\)\);~msi', $str, $matches);
        $find = $matches[0];
        $substr_array = $matches[2];
        $offset = intval($matches[4]);
        $func = $matches[5];
        $eval = pack('H*',substr($substr_array, $offset));
        $res = Helpers::isSafeFunc($eval) ? @$eval($matches[6]) : $matches[6];
        $res = preg_replace_callback('~' . $func . '\(([-\d]+),\s*([-\d]+)\)~mis', function ($matches) use ($eval, $substr_array) {
            $res = Helpers::isSafeFunc($eval) ? @$eval(substr($substr_array, $matches[1], $matches[2])) : $matches[0];
            return '\'' . $res . '\'';
        }, $res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscatePHPJiaMi($str, $matches)
    {
        $find = $matches[0];
        $bin = bin2hex($str);
        preg_match('~6257513127293b24[a-z0-9]{2,30}3d24[a-z0-9]{2,30}2827([a-z0-9]{2,30})27293b~', $bin, $hash);
        preg_match('~2827([a-z0-9]{2})27293a24~', $bin, $rand);
        $hash = hex2bin($hash[1]);
        $rand = hex2bin($rand[1]);
        $res = Helpers::PHPJiaMi_decoder(substr($matches[3], 0, -46), $hash, $rand);

        $res = str_rot13(@gzuncompress($res) ? @gzuncompress($res) : $res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateEvalIReplace($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        $res = base64_decode($matches[3]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateErrorHandler($str)
    {
        preg_match('~(\$\w+)="[^"]+";\s*(\$\w+)=str_ireplace\("[^"]+","",\1\);(\$\w+)\s*=\s*"([^"]+)";\s*function\s*(\w+)\((\$\w+,?)+\){\s*(\$\w+)=\s*create_function\(\'\',\$\w+\);\s*array_map\(\7,array\(\'\'\)+;\s*}\s*set_error_handler\(\'\5\'\);(\$\w+)=\2\(\3\);user_error\(\8,E_USER_ERROR\);\s*if\s*.+?}~msi', $str, $matches);
        $find = $matches[0];
        $res = $str;
        $res = base64_decode($matches[4]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateStrtoupper($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        $alph = $matches[2];
        $var = $matches[1];
        $res = str_replace("{$var}=\"{$alph}\";", '', $res);
        for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) {
            $res = str_replace($var . '[' . $i . '].', "'" . $alph[$i] . "'", $res);
            $res = str_replace($var . '[' . $i . ']', "'" . $alph[$i] . "'", $res);
        }
        $res = str_replace("''", '', $res);
        $res = str_replace("' . '", '', $res);
        $res = str_replace("' '", '', $res);
        preg_match('~(\$\w+)\s*=\s*strtoupper\s*\(\s*\'(\w+)\'\s*\)\s*;~msi', $res, $matches);
        $matches[2] = strtoupper($matches[2]);
        $res = str_replace($matches[0], '', $res);
        $res = preg_replace_callback('~\${\s*\\'. $matches[1] .'\s*}~msi', function ($params) use ($matches) {
            return '$' . $matches[2];
        }, $res);

        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateEval2($str)
    {
        preg_match('~(\$\w+)\s*=\s*"((?:[^"]|(?<=\\\\)")*)";(\$\w+)\s*=\s*(\1\[\d+\]\.?)+;(\$\w+)\s*=\s*[^;]+;(\$\w+)\s*=\s*"[^"]+";\$\w+\s*=\s*\5\."([^"]+)"\.\6;\3\((\1\[\d+\]\.?)+,\s*\$\w+\s*,"\d+"\);~smi', $str, $matches);
        $res = $str;
        $find = $matches[0];
        $alph = $matches[2];
        $var = $matches[1];
        for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) {
            $res = str_replace($var . '[' . $i . '].', "'" . $alph[$i] . "'", $res);
            $res = str_replace($var . '[' . $i . ']', "'" . $alph[$i] . "'", $res);
        }
        $res = str_replace("''", '', $res);
        $res = gzinflate(base64_decode(substr($matches[7], 1, -1)));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateEvalEregReplace($str, $matches)
    {
        $find = $matches[0];
        $res = base64_decode($matches[2]);
        preg_match_all('~(\$\w+)\s*=\s*ereg_replace\("([^"]+)","([^"]+)",\1\);~smi', $str, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            $res = preg_replace('/' . $match[2] . '/', $match[3], $res);
        }
        $res = base64_decode($res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateStrreplace($str, $matches)
    {
        $find = $matches[0];
        $res = $str;

        $str_replace = '';
        $base64_decode = '';
        $layer = '';

        preg_match_all('~(\$\w+)\s*=\s*\"([^"]+)\"\s*;~msi', $str, $matches, PREG_SET_ORDER);
        foreach ($matches as $i => $match) {
            $vars[$match[1]] = $match[2];
        }

        $res = preg_replace_callback('~(\$\w+)\s*=\s*str_replace\("(\w+)",\s*"",\s*"(\w+)"\)~msi',
            function ($matches) use (&$vars, &$str_replace) {
                $vars[$matches[1]] = str_replace($matches[2], "", $matches[3]);
                if ($vars[$matches[1]] == 'str_replace') {
                    $str_replace = $matches[1];
                }
                $tmp = $matches[1] . ' = "' . $vars[$matches[1]] . '"';
                return $tmp;
            }, $res);

        $res = preg_replace_callback('~(\$\w+)\s*=\s*\\' . $str_replace . '\("(\w+)",\s*"",\s*"(\w+)"\)~msi',
            function ($matches) use (&$vars, &$base64_decode) {
                $vars[$matches[1]] = str_replace($matches[2], "", $matches[3]);
                if ($vars[$matches[1]] == 'base64_decode') {
                    $base64_decode = $matches[1];
                }
                $tmp = $matches[1] . ' = "' . $vars[$matches[1]] . '"';
                return $tmp;
            }, $res);

        $res = preg_replace_callback('~\\' . $base64_decode . '\(\\' . $str_replace . '\("(\w+)",\s*"",\s*([\$\w\.]+)\)~msi',
            function ($matches) use (&$vars, &$layer) {
                $tmp = explode('.', $matches[2]);
                foreach ($tmp as &$item) {
                    $item = $vars[$item];
                }
                $tmp = implode('', $tmp);
                $layer = base64_decode(str_replace($matches[1], "", $tmp));
                return $matches[0];
            }, $res);

        $res = $layer;
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateSeolyzer($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        $vars = array();
        $base64_decode = '';
        $layer = '';
        $gzuncompress = '';
        preg_match_all('~(\$\w+)\s*=\s*\'([^\']+)\'\s*;~msi', $str, $matches, PREG_SET_ORDER);
        foreach ($matches as $i => $match) {
            $vars[$match[1]] = $match[2];
            if ($match[2] == 'base64_decode') {
                $base64_decode = $match[1];
            }
        }

        $res = preg_replace_callback('~\s*=\s*\\' . $base64_decode . '\((\$\w+)\)~msi', function ($matches) use (&$vars, &$gzuncompress, &$layer) {
            if (isset($vars[$matches[1]])) {
                $tmp = base64_decode($vars[$matches[1]]);
                if ($tmp == 'gzuncompress') {
                    $gzuncompress = $matches[1];
                }
                $vars[$matches[1]] = $tmp;
                $tmp = " = '{$tmp}'";
            } else {
                $tmp = $matches[1];
            }
            return $tmp;
        }, $res);

        if ($gzuncompress !== '') {
            $res = preg_replace_callback('~\\' . $gzuncompress . '\(\s*\\' . $base64_decode . '\((\$\w+)\)~msi',
                function ($matches) use (&$vars, $gzuncompress, &$layer) {
                    if (isset($vars[$matches[1]])) {
                        $tmp = gzuncompress(base64_decode($vars[$matches[1]]));
                        $layer = $matches[1];
                        $vars[$matches[1]] = $tmp;
                        $tmp = "'{$tmp}'";
                    } else {
                        $tmp = $matches[1];
                    }
                    return $tmp;
                }, $res);
            $res = $vars[$layer];
        } else if (preg_match('~\$\w+\(\s*\\' . $base64_decode . '\((\$\w+)\)~msi', $res)) {
            $res = preg_replace_callback('~\$\w+\(\s*\\' . $base64_decode . '\((\$\w+)\)~msi',
                function ($matches) use (&$vars, &$layer) {
                    if (isset($vars[$matches[1]])) {
                        $tmp = base64_decode($vars[$matches[1]]);
                        $layer = $matches[1];
                        $vars[$matches[1]] = $tmp;
                        $tmp = "'{$tmp}'";
                    } else {
                        $tmp = $matches[1];
                    }
                    return $tmp;
                }, $res);
            $res = $vars[$layer];
        }
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateCreateFunc($str, $matches)
    {
        $find = $matches[0];
        $res = ' ?>' . gzinflate(base64_decode($matches[3]));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateCreateFuncConcat($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        $vars = array();
        $res = preg_replace_callback('~(?|(\$\w+)\s*=\s*(([base64_decode\'\.\s]+)|([eval\'\.\s]+)|([create_function\'\.\s]+)|([stripslashes\'\.\s]+)|([gzinflate\'\.\s]+)|([strrev\'\.\s]+)|([str_rot13\'\.\s]+)|([gzuncompress\'\.\s]+)|([urldecode\'\.\s]+)([rawurldecode\'\.\s]+));)~', function($matches) use (&$vars) {
            $tmp = str_replace("' . '", '', $matches[0]);
            $tmp = str_replace("'.'", '', $tmp);
            $value = str_replace("' . '", '', $matches[2]);
            $value = str_replace("'.'", '', $value);
            $vars[$matches[1]] = substr($value, 1, -1);
            return $tmp;
        }, $res);
        foreach($vars as $key => $var) {
            $res = str_replace($key, $var, $res);
            $res = str_replace($var . " = '" . $var . "';", '', $res);
            $res = str_replace($var . ' = "";', '', $res);
        }
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateEvalWrapVar($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        $vars = array();
        $res = preg_replace_callback('~(?|(\$\w+)\s*=\s*(([base64_decode"\'\.\s]+)|([eval"\'\.\s]+)|([create_function"\'\.\s]+)|([stripslashes"\'\.\s]+)|([gzinflate"\'\.\s]+)|([strrev"\'\.\s]+)|([str_rot13"\'\.\s]+)|([gzuncompress"\'\.\s]+)|([urldecode"\'\.\s]+)([rawurldecode"\'\.\s]+));)~msi', function($matches) use (&$vars) {
            $tmp = str_replace("' . '", '', $matches[0]);
            $tmp = str_replace("'.'", '', $tmp);
            $value = str_replace("' . '", '', $matches[2]);
            $value = str_replace("'.'", '', $value);
            $vars[$matches[1]] = substr($value, 1, -1);
            return $tmp;
        }, $res);
        $temp = substr($res, strpos($res, '@eval'));
        $temp1 = $temp;
        foreach($vars as $key => $var) {
            $temp = str_replace($key, $var, $temp);
        }
        $res = str_replace($temp1, $temp, $res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateForEach($str, $matches)
    {
        $find = $matches[0];
        $alph = $matches[3];
        $vars = array();
        $res = $str;

        preg_replace('~\s*/\*\w+\*/\s*~msi', '', $res);

        $res = preg_replace_callback('~foreach\(\[([\d,]+)\]\s*as\s*\$\w+\)\s*\{\s*(\$\w+)\s*\.=\s*\$\w+\[\$\w+\];\s*\}~mis', function($matches) use ($alph, &$vars) {
            $chars = explode(',', $matches[1]);
            $value = '';
            foreach ($chars as $char) {
                $value .= $alph[$char];
            }
            $vars[$matches[2]] = $value;
            return "{$matches[2]} = '{$value}';";
        }, $res);

        foreach($vars as $key => $var) {
            $res = str_replace($key, $var, $res);
            $res = str_replace($var . " = '" . $var . "';", '', $res);
            $res = str_replace($var . ' = "";', '', $res);
        }

        preg_match('~(\$\w+)\s*=\s*strrev\([create_function\.\']+\);~ms', $res, $matches);
        $res = str_replace($matches[0], '', $res);
        $res = str_replace($matches[1], 'create_function', $res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateSubst2($str)
    {
        preg_match('~(\$\w+)="([^"])+(.{0,70}\1.{0,400})+;\s*}~msi', $str, $matches);
        $find = $matches[0];
        $res = $str;
        preg_match('~(\$\w+)="(.+?)";~msi', $str, $matches);
        $alph = stripcslashes($matches[2]);
        $var = $matches[1];
        for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) {
            $res = str_replace($var . '[' . $i . '].', "'" . $alph[$i] . "'", $res);
            $res = str_replace($var . '[' . $i . ']', "'" . $alph[$i] . "'", $res);
        }
        $res = str_replace("''", '', $res);
        preg_match_all('~(\$GLOBALS\[\'\w{1,40}\'\])\s*=\s*\'(([^\'\\\\]++|\\\\.)*)\';~msi', $res, $matches, PREG_SET_ORDER);

        foreach ($matches as $index => $var) {
            $res = str_replace($var[1], $var[2], $res);
            $res = str_replace($var[2] . " = '" . $var[2] . "';", '', $res);
        }

        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateAssert($str, $matches)
    {
        $find = $matches[0];
        $res = base64_decode($matches[3]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateUrlDecode2($str)
    {
        preg_match('~(\$[\w{1,40}]+)=(urldecode|base64_decode)\(?[\'"]([\w+%=-]+)[\'"]\);(\s*\$\w+\.?=(\$\w+\{\d+\}\s*[\.;]?\s*)+)+((\$\w+=["\']([^\'"]+)[\'"];\s*eval\(\'\?>\'\.[\$\w\(\)\*,\s]+);|(eval\(\$\w+\([\'"]([^\'"]+)[\'"]\)+;))~msi', $str, $matches);
        $find = $matches[0];
        $res = $str;
        if (isset($matches[10])) {
            $res = base64_decode($matches[10]);
        }
        if (preg_match('~\$\w+=["\']([^\'"]+)[\'"];\s*eval\(\'\?>\'\.[\$\w\(\)\*,\s]+;~msi', $res, $matches)) {
            $res = base64_decode(strtr(substr($matches[1], 52*2), substr($matches[1], 52, 52), substr($matches[1], 0, 52)));
        }

        if (preg_match('~function\s*(\w+)\(\$\w+\)[\w{\$=\s*();<+\[\]\-]+\}\s+return[\$\s\w;]+}eval\(\1\("([\w\/+=]+)?"\)\);~', $res, $match)) {
            $res = gzinflate(base64_decode($match[2]));
            for ($i=0; $i < strlen($res); $i++)
            {
                $res[$i] = chr(ord($res[$i])-1);
            }
            $res = str_replace($find, $res, $str);
            return $res;
        }

        $res = str_replace($find, ' ?>' . $res, $str);
        return $res;
    }

    private function deobfuscatePHPMyLicense($str)
    {
        preg_match('~\$\w+\s*=\s*base64_decode\s*\([\'"][^\'"]+[\'"]\);\s*if\s*\(!function_exists\s*\("rotencode"\)\).{0,1000}eval\s*\(\$\w+\s*\(base64_decode\s*\([\'"]([^"\']+)[\'"]\)+;~msi', $str, $matches);
        $find = $matches[0];
        $res = $str;
        $hang = 10;
        while(preg_match('~eval\s*\(\$\w+\s*\(base64_decode\s*\([\'"]([^"\']+)[\'"]\)+;~msi', $res, $matches) && $hang--) {
            $res = gzinflate(base64_decode($matches[1]));
        }
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateEdoced_46esab($str)
    {
        preg_match('~(\$\w+)=[\'"]([^"\']+)[\'"];(\$\w+)=strrev\(\'edoced_46esab\'\);eval\(\3\([\'"]([^\'"]+)[\'"]\)+;~msi', $str, $matches);
        $find = $matches[0];
        $res = '';
        $decoder = base64_decode($matches[4]);
        preg_match('~(\$\w+)=base64_decode\(\$\w+\);\1=strtr\(\1,[\'"]([^\'"]+)[\'"],[\'"]([^\'"]+)[\'"]\);~msi', $decoder, $matches2);
        $res = base64_decode($matches[2]);
        $res = strtr($res, $matches2[2], $matches2[3]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateEdoced_46esab_etalfnizg($str, $matches)
    {
        return gzinflate(base64_decode($matches[3]));
    }

    private function deobfuscateEvalVarVar($str)
    {
        preg_match('~\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\'](\w+)[\'"];\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\']\2[\'"];(\${\$\{"GLOBALS"\}\[[\'"]\3[\'"]\]})=[\'"]([^\'"]+)[\'"];eval.{10,50}?(\$\{\$\{"GLOBALS"\}\[[\'"]\1[\'"]\]\})\)+;~msi', $str, $matches);
        $find = $matches[0];
        $res = str_replace($matches[4], '$' . $matches[2], $str);
        $res = str_replace($matches[6], '$' . $matches[2], $res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateEscapes($str, $matches)
    {
        $find = $matches[0];
        $res = stripcslashes($str);
        $res = str_replace($find, $res, $str);
        return $res;
    }


    private function deobfuscateparenthesesString($str)
    {
        $hangs = 5;
        $res = $str;
        $find = '';
        while (preg_match('~for\((\$\w+)=\d+,(\$\w+)=\'([^\$]+)\',(\$\w+)=\'\';@?ord\(\2\[\1\]\);\1\+\+\)\{if\(\1<\d+\)\{(\$\w+)\[\2\[\1\]\]=\1;\}else\{\$\w+\.\=@?chr\(\(\5\[\2\[\1\]\]<<\d+\)\+\(\5\[\2\[\+\+\1\]\]\)\);\}\}\s*.{0,500}eval\(\4\);(if\(isset\(\$_(GET|REQUEST|POST|COOKIE)\[[\'"][^\'"]+[\'"]\]\)\)\{[^}]+;\})?~msi', $res, $matches) && $hangs--) {
            if($hangs == 4) {
                $find = $matches[0];
            }
            $res = '';
            $temp = array();
            $matches[3] = stripcslashes($matches[3]);
            for($i=0, $iMax = strlen($matches[3]); $i < $iMax; $i++)
            {
                if($i < 16) $temp[$matches[3][$i]] = $i;
                else $res .= @chr(($temp[$matches[3][$i]]<<4) + ($temp[$matches[3][++$i]]));
            }
        }
        if(!isset($matches[6])) {
            //$xor_key = 'SjJVkE6rkRYj';
            $xor_key = $res^"\n//adjust sy"; //\n//adjust system variables";
            $res = $res ^ substr(str_repeat($xor_key, (strlen($res) / strlen($xor_key)) + 1), 0, strlen($res));
        }
        if(substr($res,0,12)=="\n//adjust sy") {
            $res = str_replace($find, $res, $str);
            return $res;
        } else return $str;
    }

    private function deobfuscateEvalInject($str, $matches)
    {
        $res = $str;
        $find = $matches[0];
        $alph = $matches[2];

        for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) {
            $res = str_replace($matches[1] . '[' . $i . '].', "'" . $alph[$i] . "'", $res);
            $res = str_replace($matches[1] . '[' . $i . ']', "'" . $alph[$i] . "'", $res);
        }

        $res = str_replace("''", '', $res);
        $res = str_replace("' '", '', $res);

        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateWebshellObf($str)
    {
        $res = $str;
        preg_match('~function\s*(\w{1,40})\s*\(\s*(\$\w{1,40})\s*,\s*(\$\w{1,40})\s*\)\s*\{\s*(\$\w{1,40})\s*=\s*str_rot13\s*\(\s*gzinflate\s*\(\s*str_rot13\s*\(\s*base64_decode\s*\(\s*[\'"]([^\'"]*)[\'"]\s*\)\s*\)\s*\)\s*\)\s*;\s*(if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*(\$\w{1,40})\s*=(\$\w+[\{\[]\d+[\}\]]\.?)+;return\s*(\$\w+)\(\3\);\s*\}\s*else\s*)+\s*if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*return\s*eval\(\3\);\s*\}\s*\};\s*(\$\w{1,40})\s*=\s*[\'"][^\'"]*[\'"];(\s*\10\([\'"][^\'"]*[\'"],)+\s*[\'"]([^\'"]*)[\'"]\s*\)+;~msi',$str, $matches);
        $find = $matches[0];

        $alph = str_rot13(gzinflate(str_rot13(base64_decode($matches[5]))));

        for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) {
            $res = str_replace($matches[4] . '{' . $i . '}.', "'" . $alph[$i] . "'", $res);
            $res = str_replace($matches[4] . '{' . $i . '}', "'" . $alph[$i] . "'", $res);
        }
        $res = str_replace("''", '', $res);

        $res = base64_decode(gzinflate(str_rot13(convert_uudecode(gzinflate(base64_decode(strrev($matches[12])))))));
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateXorFName($str, $matches)
    {
        $find = $matches[0];
        $xored = rawurldecode($matches[3]);
        $xor_key = $xored ^ 'if (!defined(';
        $php = $xored ^ substr(str_repeat($xor_key, (strlen($matches[3]) / strlen($xor_key)) + 1), 0, strlen($matches[3]));
        preg_match('~\$\w{1,40}\s*=\s*((\'[^\']+\'\s*\.?\s*)+);\s*\$\w+\s*=\s*Array\(((\'\w\'=>\'\w\',?\s*)+)\);~msi', $php, $matches);
        $matches[1] = str_replace(array(" ", "\r", "\n", "\t", "'.'"), '', $matches[1]);
        $matches[3] = str_replace(array(" ", "'", ">"), '', $matches[3]);
        $temp = explode(',', $matches[3]);
        $array = array();
        foreach ($temp as $value) {
            $temp = explode("=", $value);
            $array[$temp[0]] = $temp[1];
        }
        $res = '';
        for ($i=0, $iMax = strlen($matches[1]); $i < $iMax; $i++) {
            $res .= isset($array[$matches[1][$i]]) ? $array[$matches[1][$i]] : $matches[1][$i];
        }
        $res = substr(rawurldecode($res), 1, -2);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateSubstCreateFunc($str)
    {
        preg_match('~(\$\w{1,40})=\'(([^\'\\\\]|\\\\.)*)\';\s*((\$\w{1,40})=(\1\[\d+].?)+;\s*)+(\$\w{1,40})=\'\';\s*(\$\w{1,40})\(\7,\$\w{1,40}\.\"([^\"]+)\"\.\$\w{1,40}\.\5\);~msi', $str, $matches);
        $find = $matches[0];
        $php = base64_decode($matches[9]);
        preg_match('~(\$\w{1,40})=(\$\w{1,40})\("([^\']+)"\)~msi', $php, $matches);
        $matches[3] = base64_decode($matches[3]);
        $php = '';
        for ($i = 1, $iMax = strlen($matches[3]); $i < $iMax; $i++) {
            if ($i % 2) {
                $php .= substr($matches[3], $i, 1);
            }
        }
        $php = str_replace($find, $php, $str);
        return $php;
    }

    private function deobfuscateZeura($str, $matches)
    {
        $offset = intval($matches[8]) + intval($matches[9]);
        $obfPHP = explode('__halt_compiler();', $str);
        $obfPHP = end($obfPHP);
        $php = gzinflate(base64_decode(substr(trim($obfPHP), $offset)));
        $php = stripcslashes($php);
        $php = str_replace($matches[0], $php, $str);
        return $php;
    }

    private function deobfuscateSourceCop($str, $matches)
    {
        $key = $matches[2];
        $obfPHP = $matches[1];
        $res = '';
        $index = 0;
        $len = strlen($key);
        $temp = hexdec('&H' . substr($obfPHP, 0, 2));
        for ($i = 2, $iMax = strlen($obfPHP); $i < $iMax; $i += 2) {
            $bytes = hexdec(trim(substr($obfPHP, $i, 2)));
            $index = (($index < $len) ? $index + 1 : 1);
            $decoded = $bytes ^ ord(substr($key, $index - 1, 1));
            if ($decoded <= $temp) {
                $decoded = 255 + $decoded - $temp;
            } else {
                $decoded = $decoded - $temp;
            }
            $res = $res . chr($decoded);
            $temp = $bytes;
        }
        $res = str_replace($matches[0], $res, $str);
        return $res;
    }

    private function deobfuscateGlobalsArray($str, $matches)
    {
        $res = $str;
        $alph = stripcslashes($matches[3]);
        $res = preg_replace('~\${"[\\\\x0-9a-f]+"}\[\'\w+\'\]\s*=\s*"[\\\\x0-9a-f]+";~msi', '', $res);

        for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) {
            $res = str_replace($matches[1] .'[' . $matches[2] . ']' . '[' . $i . '].', "'" . $alph[$i] . "'", $res);
            $res = str_replace($matches[1] .'[' . $matches[2] . ']' . '[' . $i . ']', "'" . $alph[$i] . "'", $res);
        }
        $res = str_replace("''", '', $res);

        preg_match_all('~\\' . $matches[1] . '\[(\'\w+\')]\s*=\s*\'(\w+)\';~msi', $res, $funcs);

        $vars = $funcs[1];
        $func = $funcs[2];

        foreach ($vars as $index => $var) {
            $res = str_replace($matches[1] . '[' . $var . ']', $func[$index], $res);
        }

        foreach ($func as $remove) {
            $res = str_replace($remove . " = '" . $remove . "';", '', $res);
            $res = str_replace($remove . "='" . $remove . "';", '', $res);
        }
        $res = str_replace($matches[0], $res, $str);
        return $res;
    }

    private function deobfuscateXbrangwolf($str, $match)
    {
        return $match[0];
    }

    private function deobfuscateObfB64($str, $matches)
    {
        $res = base64_decode($matches[3]);
        $res = str_replace($matches[0], $res, $str);
        return $res;
    }

    private function deobfuscateArrayOffsets($str)
    {
        $vars = array();
        preg_match('~(\$\w{1,40})\s*=\s*\'([^\']*)\';\s*(\$\w{1,40})\s*=\s*explode\s*\((chr\s*\(\s*\(\d+\-\d+\)\)),substr\s*\(\1,\s*\((\d+\-\d+)\),\s*\(\s*(\d+\-\d+)\)\)\);.+\1\s*=\s*\$\w+[+\-\*]\d+;~msi', $str, $matches);

        $find = $matches[0];
        $obfPHP = $matches[2];
        $matches[4] = Helpers::calc($matches[4]);
        $matches[5] = intval(Helpers::calc($matches[5]));
        $matches[6] = intval(Helpers::calc($matches[6]));

        $func = explode($matches[4], strtolower(substr($obfPHP, $matches[5], $matches[6])));
        $func[1] = strrev($func[1]);
        $func[2] = strrev($func[2]);

        preg_match('~\$\w{1,40}\s=\sexplode\((chr\(\(\d+\-\d+\)\)),\'([^\']+)\'\);~msi', $str, $matches);
        $matches[1] = Helpers::calc($matches[1]);
        $offsets = explode($matches[1], $matches[2]);

        $res = '';
        for ($i = 0; $i < (sizeof($offsets) / 2); $i++) {
            $res .= substr($obfPHP, $offsets[$i * 2], $offsets[($i * 2) + 1]);
        }

        preg_match('~return\s*\$\w{1,40}\((chr\(\(\d+\-\d+\)\)),(chr\(\(\d+\-\d+\)\)),\$\w{1,40}\);~msi', $str, $matches);
        $matches[1] = Helpers::calc($matches[1]);
        $matches[2] = Helpers::calc($matches[2]);

        $res = Helpers::stripsquoteslashes(str_replace($matches[1], $matches[2], $res));
        $res = "<?php\n" . $res . "?>";

        preg_match('~(\$\w{1,40})\s=\simplode\(array_map\(\"[^\"]+\",str_split\(\"(([^\"\\\\]++|\\\\.)*)\"\)\)\);(\$\w{1,40})\s=\s\$\w{1,40}\(\"\",\s\1\);\s\4\(\);~msi', $res, $matches);

        $matches[2] = stripcslashes($matches[2]);
        for ($i=0, $iMax = strlen($matches[2]); $i < $iMax; $i++) {
            $matches[2][$i] = chr(ord($matches[2][$i])-1);
        }

        $res = str_replace($matches[0], $matches[2], $res);

        preg_match_all('~(\$\w{1,40})\s*=\s*\"(([^\"\\\\]++|\\\\.)*)\";~msi', $res, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            $vars[$match[1]] = stripcslashes($match[2]);
        }

        preg_match_all('~(\$\w{1,40})\s*=\s*\'(([^\'\\\\]++|\\\\.)*)\';~msi', $res, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            $vars[$match[1]] = Helpers::stripsquoteslashes($match[2]);
        }

        preg_match('~(\$\w{1,40})\s*=\s*\"\\\\x73\\\\164\\\\x72\\\\137\\\\x72\\\\145\\\\x70\\\\154\\\\x61\\\\143\\\\x65";\s(\$\w{1,40})\s=\s\'(([^\'\\\\]++|\\\\.)*)\';\seval\(\1\(\"(([^\"\\\\]++|\\\\.)*)\",\s\"(([^\"\\\\]++|\\\\.)*)\",\s\2\)\);~msi', $res, $matches);

        $matches[7] = stripcslashes($matches[7]);
        $matches[3] = Helpers::stripsquoteslashes(str_replace($matches[5], $matches[7], $matches[3]));


        $res = str_replace($matches[0], $matches[3], $res);

        preg_match_all('~(\$\w{1,40})\s*=\s*\"(([^\"\\\\]++|\\\\.)*)\";~msi', $res, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            $vars[$match[1]] = stripcslashes($match[2]);
        }

        preg_match_all('~(\$\w{1,40})\s*=\s*\'(([^\'\\\\]++|\\\\.)*)\';~msi', $res, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            $vars[$match[1]] = Helpers::stripsquoteslashes($match[2]);
        }

        preg_match('~\$\w{1,40}\s=\sarray\(((\'(([^\'\\\\]++|\\\\.)*)\',?(\.(\$\w{1,40})\.)?)+)\);~msi', $res, $matches);

        foreach ($vars as $var => $value) {
            $matches[1] = str_replace("'." . $var . ".'", $value, $matches[1]);
        }

        $array2 = explode("','", substr($matches[1], 1, -1));
        preg_match('~eval\(\$\w{1,40}\(array\((((\"[^\"]\"+),?+)+)\),\s(\$\w{1,40}),\s(\$\w{1,40})\)\);~msi', $res, $matches);

        $array1 = explode('","', substr($matches[1], 1, -1));

        $temp = array_keys($vars);
        $temp = $temp[9];

        $arr = explode('|', $vars[$temp]);
        $off=0;
        $funcs=array();

        for ($i = 0, $iMax = sizeof($arr); $i < $iMax; $i++) {
            if ($i == 0) {
                $off = 0;
            } else {
                $off = $arr[$i - 1] + $off;
            }
            $len = $arr[$i];
            $temp = array_keys($vars);
            $temp = $temp[7];

            $funcs[]= substr($vars[$temp], $off, $len);
        }

        for ($i = 0; $i < 5; $i++) {
            if ($i % 2 == 0) {
                $funcs[$i] = strrev($funcs[$i]);
                $g = substr($funcs[$i], strpos($funcs[$i], "9") + 1);
                $g = stripcslashes($g);
                $v = explode(":", substr($funcs[$i], 0, strpos($funcs[$i], "9")));
                for ($j = 0, $jMax = sizeof($v); $j < $jMax; $j++) {
                    $q = explode("|", $v[$j]);
                    $g = str_replace($q[0], $q[1], $g);
                }
                $funcs[$i] = $g;
            } else {
                $h = explode("|", strrev($funcs[$i]));
                $d = explode("*", $h[0]);
                $b = $h[1];
                for ($j = 0, $jMax = sizeof($d); $j < $jMax; $j++) {
                    $b = str_replace($j, $d[$j], $b);
                }
                $funcs[$i] = $b;
            }
        }
        $temp = array_keys($vars);
        $temp = $temp[8];
        $funcs[] = str_replace('9', ' ', strrev($vars[$temp]));
        $funcs = implode("\n", $funcs);
        preg_match('~\$\w{1,40}\s=\s\'.+?eval\([^;]+;~msi', $res, $matches);
        $res = str_replace($matches[0], $funcs, $res);
        $res = stripcslashes($res);
        $res = str_replace('}//}}', '}}', $res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateXoredVar($str, $matches)
    {
        $res = $str;
        $find = $matches[0];
        preg_match_all('~(\$\w{1,40})\s*=\s*\'((\\\\.|[^\'])*)\';~msi', $str, $matches, PREG_SET_ORDER);
        $vars = array();
        foreach ($matches as $match) {
            $vars[$match[1]]=$match[2];
        }

        preg_match_all('~(\$\w{1,40})\s*=\s*\'((\\\\.|[^\'])*)\'\^(\$\w+);~msi', $str, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            if (isset($vars[$match[4]])) {
                $vars[$match[1]]=$match[2]^$vars[$match[4]];
                $res = str_replace($match[0], $match[1] . "='" . $vars[$match[1]] . "';", $res);
            }
        }

        preg_match_all('~(\$\w{1,40})\s*=\s*(\$\w+)\^\'((\\\\.|[^\'])*)\';~msi', $res, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            if (isset($vars[$match[2]])) {
                $vars[$match[1]]=$match[4]^$vars[$match[2]];
                $res = str_replace($match[0], $match[1] . "='" . $vars[$match[1]] . "';", $res);
            }
        }
        preg_match_all('~\'((\\\\.|[^\'])*)\'\^(\$\w+)~msi', $res, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            if (isset($vars[$match[3]])) {
                $res = str_replace($match[0], "'" . addcslashes($match[1]^$vars[$match[3]], '\\\'') . "'", $res);
            }
        }
        foreach ($vars as $var => $value) {
            $res = str_replace($var, $value, $res);
            $res = str_replace($value . "='" . $value . "';", '', $res);
        }
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscatePhpMess($str, $matches)
    {
        $res = base64_decode(gzuncompress(base64_decode(base64_decode($matches[4]))));
        $res = str_replace($matches[0], $res, $str);
        return $res;
    }

    private function deobfuscatePregReplaceSample05($str)
    {
        $res = '';
        preg_match('~(\$\w{1,40})\s*=\s*\"([^\"]+)\";\s*\$\w+\s*=\s*\$\w+\(\1,\"([^\"]+)\",\"([^\"]+)\"\);\s*\$\w+\(\"[^\"]+\",\"[^\"]+\",\"\.\"\);~msi', $str, $matches);
        $res = strtr($matches[2], $matches[3], $matches[4]);
        $res = base64_decode($res);
        $res = str_replace($matches[0], $res, $str);
        return $res;
    }

    private function deobfuscatePregReplaceB64($str, $matches)
    {
        $find = $matches[0];
        $res = str_replace($find, base64_decode($matches[4]), $str);
        $res = stripcslashes($res);
        preg_match('~eval\(\${\$\{"GLOBALS"\}\[\"\w+\"\]}\(\${\$\{"GLOBALS"\}\[\"\w+\"]}\(\"([^\"]+)\"\)\)\);~msi', $res, $matches);
        $res = gzuncompress(base64_decode($matches[1]));
        preg_match('~eval\(\$\w+\(\$\w+\("([^"]+)"\)\)\);~msi', $res, $matches);
        $res = gzuncompress(base64_decode($matches[1]));
        preg_match('~eval\(\$\w+\(\$\w+\("([^"]+)"\)\)\);~msi', $res, $matches);
        $res = gzuncompress(base64_decode($matches[1]));
        preg_match_all('~\$(\w+)\s*(\.)?=\s*("[^"]*"|\$\w+);~msi', $res, $matches, PREG_SET_ORDER);
        $var = $matches[0][1];
        $vars = array();
        foreach ($matches as $match) {
            if($match[2]!=='.') {
                $vars[$match[1]] = substr($match[3], 1, -1);
            }
            else {
                $vars[$match[1]] .= $vars[substr($match[3], 1)];
            }
        }
        $res = str_replace("srrKePJUwrMZ", "=", $vars[$var]);
        $res = gzuncompress(base64_decode($res));
        preg_match_all('~function\s*(\w+)\(\$\w+,\$\w+\)\{.+?}\s*};\s*eval\(((\1\(\'(\w+)\',)+)\s*"([\w/\+]+)"\)\)\)\)\)\)\)\);~msi', $res, $matches);
        $decode = array_reverse(explode("',", str_replace($matches[1][0] . "('", '', $matches[2][0])));
        array_shift($decode);
        $arg = $matches[5][0];
        foreach ($decode as $val) {
            $arg = Helpers::someDecoder2($val, $arg);
        }
        $res = $arg;
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateDecoder($str)
    {
        preg_match('~if\(!function_exists\(\"(\w+)\"\)\){function \1\(.+eval\(\1\(\"([^\"]+)\"\)\);~msi', $str, $matches);
        $res = Helpers::someDecoder($matches[2]);
        $res = str_replace($matches[0], $res, $str);
        return $res;
    }

    private function deobfuscateGBE($str)
    {
        preg_match('~(\$\w{1,40})=\'([^\']+)\';\1=gzinflate\(base64_decode\(\1\)\);\1=str_replace\(\"__FILE__\",\"\'\$\w+\'\",\1\);eval\(\1\);~msi', $str, $matches);
        $res = str_replace($matches[0], gzinflate(base64_decode($matches[2])), $str);
        return $res;
    }

    private function deobfuscateGBZ($str, $matches)
    {
        $res = str_replace($matches[0], base64_decode(str_rot13($matches[4])), $str);
        return $res;
    }

    private function deobfuscateBitrix($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        $funclist = array();
        $strlist = array();
        $res = preg_replace("|[\"']\s*\.\s*['\"]|smi", '', $res);
        $hangs = 0;
        while (preg_match('~(?:min|max|round)?\(\s*\d+[\.\,\|\s\|+\|\-\|\*\|\/]([\d\s\.\,\+\-\*\/]+)?\)~msi', $res) && $hangs < 15) {
            $res = preg_replace_callback('~(?:min|max|round)?\(\s*\d+[\.\,\|\s\|+\|\-\|\*\|\/]([\d\s\.\,\+\-\*\/]+)?\)~msi', array("Helpers","calc"), $res);
            $hangs++;
        }

        $res = preg_replace_callback(
            '|base64_decode\(["\'](.*?)["\']\)|smi',
            function ($matches) {
                return '"' . base64_decode($matches[1]) . '"';
            },
            $res
        );

        if (preg_match_all('|\$GLOBALS\[[\'"](.+?)[\'"]\]\s*=\s*Array\((.+?)\);|smi', $res, $founds, PREG_SET_ORDER)) {
            foreach ($founds as $found) {
                $varname = $found[1];
                $funclist[$varname] = explode(',', $found[2]);
                $funclist[$varname] = array_map(function ($value) {
                    return trim($value, "'\"");
                }, $funclist[$varname]);

                $res = preg_replace_callback(
                    '|\$GLOBALS\[[\'"]' . $varname . '[\'"]\]\[(\d+)\]|smi',
                    function ($matches) use ($varname, $funclist) {
                        return str_replace(array('"',"'"), '', $funclist[$varname][$matches[1]]);
                    },
                    $res
                );
                $res = str_replace($found[0], '', $res);
            }
        }

        $array_temp = [];
        if (preg_match_all('~function\s*(\w{1,60})\(\$\w+\){\$\w{1,60}\s*=\s*Array\((.{1,30000}?)\);\s*return\s*base64_decode[^}]+}~msi', $res, $founds, PREG_SET_ORDER)) {
            foreach ($founds as $found) {
                $strlist = explode(',', $found[2]);
                $array_temp[$found[1]] = array_map('base64_decode', $strlist);
                $res = preg_replace_callback(
                    '|' . $found[1] . '\((\d+)\)|smi',
                    function ($matches) use ($strlist) {
                        return "'" . base64_decode($strlist[$matches[1]]) . "'";
                    },
                    $res
                );
                $res = str_replace($found[0], '', $res);
            }
        }
        $res = preg_replace('~\'\s*\.\s*\'~', '', $res);

        if (preg_match_all('~\s*function\s*(_+(.{1,60}?))\(\$[_0-9]+\)\s*\{\s*static\s*\$([_0-9]+)\s*=\s*(true|false);.{1,30000}?\$\3\s*=\s*array\((.*?)\);\s*return\s*base64_decode\(\$\3~smi', $res, $founds, PREG_SET_ORDER)) {
            foreach ($founds as $found) {
                $strlist = explode('",', $found[5]);
                $strlist = implode("',", $strlist);
                $strlist = explode("',", $strlist);
                $res = preg_replace_callback(
                    '|' . $found[1] . '\((\d+(\.\d+)?)\)|sm',
                    function ($matches) use ($strlist) {
                        $ret = base64_decode($strlist[$matches[1]]);
                        if (!$ret) {
                            $ret = $strlist[$matches[1]];
                        }
                        return  '\'' . $ret . '\'';
                    },
                    $res
                );
            }
        }
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateLockIt($str)
    {
        preg_match('~(\$[O0]*=__FILE__;)?\$[O0]*=urldecode\(\'[%a-f0-9]+\'\);(\$(GLOBALS\[\')?[O0]*(\'\])?=(\d+);)?\s*(\$(GLOBALS\[\')?[O0]*(\'\])?\.?=(\$(GLOBALS\[\')?[O0]*(\'\])?([\{\[]\d+[\}\]])?\.?)+;)+[^\?]+\?\>[\s\w\~\=\/\+\\\\\^\{\`\%]+~msi', $str, $matches);
        $find = $matches[0];
        $prefix = $matches[1];
        $obfPHP        = $str;
        $phpcode       = base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($obfPHP)));
        $hexvalues     = Helpers::getHexValues($phpcode);
        $tmp_point     = Helpers::getHexValues($obfPHP);

        if (isset($tmp_point[0]) && $tmp_point[0]!=='') {
            $pointer1 = hexdec($tmp_point[0]);
        }
        if (isset($matches[5]) && $matches[5]!=='') {
            $pointer1 = $matches[5];
        }

        $needles       = Helpers::getNeedles($phpcode);
        if ($needles[2]=='__FILE__') {
            $needle        = $needles[0];
            $before_needle = $needles[1];
            preg_match('~\$_F=__FILE__;\$_X=\'([^\']+)\';\s*eval\s*\(\s*\$?\w{1,60}\s*\(\s*[\'"][^\'"]+[\'"]\s*\)\s*\)\s*;~msi', $str, $matches);
            $res = base64_decode($matches[1]);
            $phpcode = strtr($res, $needle, $before_needle);
        } else {
            $needle        = $needles[count($needles) - 2];
            $before_needle = end($needles);
            if (preg_match('~\$\w{1,40}\s*=\s*__FILE__;\s*\$\w{1,40}\s*=\s*([\da-fx]+);\s*eval\s*\(\$?\w+\s*\([\'"][^\'"]+[\'"]\)\);\s*return\s*;\s*\?>(.+)~msi', $str, $matches)) {
                $pointer1 = $matches[1];
                if (strpos($pointer1, '0x')!==false) {
                    $pointer1 = hexdec($pointer1);
                }
            }
            $temp = strtr($obfPHP, $needle, $before_needle);
            $end = 8;
            for ($i = strlen($temp) - 1; $i > strlen($temp) - 15; $i--) {
                if ($temp[$i] == '=') {
                    $end = strlen($temp) - 1 - $i;
                }
            }
            $phpcode = base64_decode(substr($temp, strlen($temp) - $pointer1 - $end, $pointer1));
        }
        $phpcode = str_replace($find, $prefix . $phpcode, $str);
        return $phpcode;
    }

    private function deobfuscateB64inHTML($str, $matches)
    {
        $obfPHP        = $str;
        $phpcode       = base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($obfPHP)));
        $needles       = Helpers::getNeedles($phpcode);
        $needle        = $needles[count($needles) - 2];
        $before_needle = end($needles);
        $pointer1 = $matches[2];
        $temp = strtr($obfPHP, $needle, $before_needle);
        $end = 8;
        for ($i = strlen($temp) - 1; $i > strlen($temp) - 15; $i--) {
            if ($temp[$i] == '=') {
                $end = strlen($temp) - 1 - $i;
            }
        }

        $phpcode = base64_decode(substr($temp, strlen($temp) - $pointer1 - ($end-1), $pointer1));
        $phpcode = str_replace($matches[0], $phpcode, $str);
        return $phpcode;
    }

    private function deobfuscateStrtrFread($str, $layer2)
    {
        $str = explode('?>', $str);
        $str = end($str);
        $res = substr($str, $layer2[1], strlen($str));
        $res = base64_decode(strtr($res, $layer2[2], $layer2[3]));
        $res = str_replace($layer2[0], $res, $str);
        return $res;
    }

    private function deobfuscateStrtrBase64($str, $matches)
    {
        $str = strtr($matches[2], $matches[3], $matches[4]);
        $res = base64_decode($str);
        $res = str_replace($matches[0], $res, $str);
        return $res;
    }

    private function deobfuscateByteRun($str)
    {
        preg_match('~\$_F=__FILE__;\$_X=\'([^\']+)\';\s*eval\s*\(\s*\$?\w{1,60}\s*\(\s*[\'"][^\'"]+[\'"]\s*\)\s*\)\s*;~msi', $str, $matches);
        $res = base64_decode($matches[1]);
        $res = strtr($res, '123456aouie', 'aouie123456');
        $res = str_replace($matches[0], $res, $str);
        return $res;
    }

    private function deobfuscateExplodeSubst($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        preg_match_all('~function ([\w_]+)\(~msi', $res, $funcs);
        preg_match('~(\$_\w+\[\w+\])\s*=\s*explode\(\'([^\']+)\',\s*\'([^\']+)\'\);.+?(\1\[[a-fx\d]+\])\(\);~msi', $res, $matches);
        $subst_array = explode($matches[2], $matches[3]);
        $subst_var = $matches[1];
        $res = preg_replace_callback('~((\$_GET\[[O0]+\])|(\$[O0]+))\[([a-fx\d]+)\]~msi', function ($matches) use ($subst_array, $funcs) {
            if (function_exists($subst_array[hexdec($matches[4])]) || in_array($subst_array[hexdec($matches[4])], $funcs[1])) {
                return $subst_array[hexdec($matches[4])];
            } else {
                return "'" . $subst_array[hexdec($matches[4])] . "'";
            }
        }, $res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateSubst($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        $alph = stripcslashes($matches[2]);
        $funcs = $matches[4];

        for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) {
            $res = str_replace($matches[1] . '[' . $i . '].', "'" . $alph[$i] . "'", $res);
            $res = str_replace($matches[1] . '[' . $i . ']', "'" . $alph[$i] . "'", $res);
        }
        $res = str_replace("''", '', $res);
        $var = $matches[3];

        preg_match_all('~\\' . $var . '\[\]\s*=\s*\'([\w\*\-\#]+)\'~msi', $res, $matches);

        for ($i = 0, $iMax = count($matches[1]); $i <= $iMax; $i++) {
            if (@function_exists($matches[1][$i])) {
                $res = str_replace($var . '[' . $i . ']', $matches[1][$i], $res);
            } else {
                $res = @str_replace($var . '[' . $i . ']', "'" . $matches[1][$i] . "'", $res);
            }
        }
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateUrldecode($str)
    {
        preg_match('~(\$\w+=\'[^\']+\';\s*)+(\$[\w{1,40}]+)=(urldecode|base64_decode){0,1}\(?[\'"]([\w+%=-]+)[\'"]\)?;(\$[\w+]+=(\$(\w+\[\')?[O_0]*(\'\])?([\{\[]\d+[\}\]])?\.?)+;)+[^\?]+(\?\>[\w\~\=\/\+]+|.+\\\\x[^;]+;)~msi', $str, $matches);
        $find = $matches[0];
        $res = $str;
        $res = stripcslashes($res);
        if ($matches[3] == "urldecode") {
            $alph = urldecode($matches[4]);
            $res = str_replace('urldecode(\'' . $matches[4] . '\')', "'" . $alph . "'", $res);
        } elseif ($matches[3] == 'base64_decode') {
            $alph = base64_decode($matches[4]);
            $res = str_replace('base64_decode(\'' . $matches[4] . '\')', "'" . $alph . "'", $res);
        } else {
            $alph = $matches[4];
        }

        for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) {
            $res = str_replace($matches[2] . '[' . $i . '].', "'" . $alph[$i] . "'", $res);
            $res = str_replace($matches[2] . '[' . $i . ']', "'" . $alph[$i] . "'", $res);
            $res = str_replace($matches[2] . '{' . $i . '}.', "'" . $alph[$i] . "'", $res);
            $res = str_replace($matches[2] . '{' . $i . '}', "'" . $alph[$i] . "'", $res);
        }
        $res = str_replace("''", '', $res);

        preg_match_all('~\$(\w+)\s*=\s*\'([\w\*\-\#]+)\'~msi', $res, $matches, PREG_SET_ORDER);
        for ($i = 0, $iMax = count($matches); $i < $iMax; $i++) {
            if (@function_exists($matches[$i][2])) {
                $res = str_replace('$' . $matches[$i][1], $matches[$i][2], $res);
                $res = str_replace('${"GLOBALS"}["' . $matches[$i][1] . '"]', $matches[$i][2], $res);
            } else {
                $res = str_replace('$' . $matches[$i][1], "'" . $matches[$i][2] . "'", $res);
                $res = str_replace('${"GLOBALS"}["' . $matches[$i][1] . '"]', "'" . $matches[$i][2] . "'", $res);
            }
            $res = str_replace("'" . $matches[$i][2] . "'='" . $matches[$i][2] . "';", '', $res);
            $res = str_replace($matches[$i][2] . "='" . $matches[$i][2] . "';", '', $res);
            $res = str_replace($matches[$i][2] . "=" . $matches[$i][2] . ';', '', $res);
        }
        $res = Helpers::replaceCreateFunction($res);
        preg_match('~\$([0_O]+)\s*=\s*function\s*\((\$\w+)\)\s*\{\s*\$[O_0]+\s*=\s*substr\s*\(\2,(\d+),(\d+)\);\s*\$[O_0]+\s*=\s*substr\s*\(\2,([\d-]+)\);\s*\$[O_0]+\s*=\s*substr\s*\(\2,(\d+),strlen\s*\(\2\)-(\d+)\);\s*return\s*gzinflate\s*\(base64_decode\s*\(\$[O_0]+\s*\.\s*\$[O_0]+\s*\.\s*\$[O_0]+\)+;~msi', $res, $matches);
        $res = preg_replace_callback('~\$\{"GLOBALS"}\["' . $matches[1] . '"\]\s*\(\'([^\']+)\'\)~msi', function ($calls) use ($matches) {
            $temp1 = substr($calls[1], $matches[3], $matches[4]);
            $temp2 = substr($calls[1], $matches[5]);
            $temp3 = substr($calls[1], $matches[6],strlen($calls[1]) - $matches[7]);
            return "'" . gzinflate(base64_decode($temp1 . $temp3 . $temp2)) . "'";
        }, $res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    public function unwrapFuncs($string, $level = 0)
    {
        $close_tag = false;
        $res = '';

        if (trim($string) == '') {
            return '';
        }
        if ($level > 100) {
            return '';
        }

        if ((($string[0] == '\'') || ($string[0] == '"')) && (substr($string, 1, 2) != '?>')) {
            if($string[0] == '"' && preg_match('~\\\\x\d+~', $string)) {
                return stripcslashes($string);
            } else {
                return substr($string, 1, -2);
            }
        } elseif ($string[0] == '$') {
            preg_match('~\$\w{1,40}~', $string, $string);
            $string = $string[0];
            $matches = array();
            if (!@preg_match_all('~\\' . $string . '\s*=\s*("((.*?[^\\\\])??((\\\\\\\\)+)?+)");~msi', $this->full_source, $matches)) {
                @preg_match_all('~\\' . $string . '\s*=\s*(\'((.*?[^\\\\])??((\\\\\\\\)+)?+)\');~msi', $this->full_source, $matches);
                $str = @$matches[1][0];
            } else {
                $str = $matches[1][0];
            }
            $this->cur = str_replace($matches[0][0], '', $this->cur);
            $this->text = str_replace($matches[0][0], '', $this->text);
            return substr($str, 1, -1);
        } else {
            $pos      = strpos($string, '(');
            $function = substr($string, 0, $pos);
            $arg      = $this->unwrapFuncs(substr($string, $pos + 1), $level + 1);
            if (strpos($function, '?>') !== false) {
                $function = str_replace("'?>'.", "", $function);
                $function = str_replace('"?>".', "", $function);
                $function = str_replace("'?>' .", "", $function);
                $function = str_replace('"?>" .', "", $function);
                $close_tag = true;
            }
            $function = str_replace(array('@',' '), '', $function);
            $safe = Helpers::isSafeFunc($function);
            if ($safe) {
                if ($function == 'pack') {
                    $args = explode(',', $arg);
                    $args[0] = substr(trim($args[0]), 0, -1 );
                    $args[1] = substr(trim($args[1]), 1);
                    $res = @$function($args[0], $args[1]);
                } else {
                    $res = @$function($arg);
                }
            } else {
                $res = $arg;
            }
            if ($close_tag) {
                $res = "?> " . $res;
                $close_tag = false;
            }
            return $res;
        }
    }

    private function deobfuscateEvalFunc($str)
    {
        $res = $str;
        $res = stripcslashes($res);
        preg_match('~function\s*(\w{1,40})\((\$\w{1,40})\)\s*\{\s*(\$\w{1,40})\s*=\s*\"base64_decode\";\s*(\$\w{1,40})\s*=\s*\"gzinflate\";\s*return\s*\4\(\3\(\2\)\);\s*\}\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*eval\(\1\(\"([^\"]*)\"\)\);~msi', $res, $matches);
        $res = gzinflate(base64_decode($matches[5]));
        $res = str_replace($str, $res, $str);
        return $res;
    }

    private function deobfuscateEvalConcatFunc($str, $matches)
    {
        $res = $matches[2];

        if (str_replace('"."', '', $matches[6]) === '"create_function"') {
            $brackets = '';
            $res = preg_replace_callback('~[\w."]+\(~', function ($match) use (&$brackets) {
                $replace = strtolower(str_replace('"."', '', $match[0]));
                if (strpos($replace, 'eval') === false) {
                    $brackets .= ')';
                    return $replace;
                }
                return "";
            }, $res);

            $res .= "'$matches[4]'" . $brackets . ';';
            $res = $this->unwrapFuncs($res);
        }

        return $res;
    }

    private function deobfuscateEvalHex($str)
    {
        preg_match('~eval\s*\("(\\\\x?\d+[^"]+)"\);~msi', $str, $matches);
        $res = stripcslashes($matches[1]);
        $res = str_replace($matches[1], $res, $res);
        $res = str_replace($matches[0], $res, $str);
        return $res;
    }

    private function deobfuscateEvalVarConcat($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        preg_match_all('~(\$\w+)\s*\.=\s*"([^"]+)";~msi', $str, $matches, PREG_SET_ORDER);
        $vars = [];
        foreach ($matches as $match) {
            $res = str_replace($match[0], '', $res);
            $res = str_replace($match[1], '"' . $match[2] . '"', $res);
        }
        $res = preg_replace('/[\'"]\s*?\.+\s*?[\'"]/smi', '', $res);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateEvalVar($str, $matches)
    {
        $find = $matches[0];
        $evalVar = $matches[7];
        if (!$evalVar) {
            $evalVar = $matches[6];
            $pregVal = '\$\w+';
            $pregStr = '[\'"]?([\/\w\+=]+)[\'"]?';
            $pregFunc = '(?:base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()+(?:["\']([\/\w\+=]+)["\'])';
            while (preg_match('~str_replace\(["\']([\/\w]+)["\'],\s?["\']([\/\w\+=]+)["\'],\s?(?|(' . $pregVal . ')|(?:' . $pregStr . ')|(' . $pregFunc . '))\)~msi', $evalVar, $match)) {
                $result = $match[0];
                if (preg_match('~' . $pregVal . '~', $match[3], $arg)) {
                    $result = str_replace($match[1], $match[2], $matches[3]);
                } elseif (preg_match('~' . $pregFunc . '~', $match[3], $arg)) {
                    $unwrappedVar = $this->unwrapFuncs($arg[0]);
                    $result = str_replace($match[1], $match[2], $unwrappedVar);
                } elseif (preg_match('~' . $pregStr . '~', $match[3], $arg)) {
                    $result = str_replace($match[1], $match[2], $match[3]);
                }

                $evalVar = str_replace($match[0], "\"$result\"" . ')', $evalVar);
            }
            return $this->unwrapFuncs($matches[5] . $evalVar);
        }
        $val = '';
        if (!@preg_match_all('~\\' . $evalVar . '\s*=\s*("((.*?[^\\\\])??((\\\\\\\\)+)?+)");~msi', $str, $matches)) {
            @preg_match_all('~\\' . $evalVar . '\s*=\s*(\'((.*?[^\\\\])??((\\\\\\\\)+)?+)\');~msi', $str, $matches);
            $val = @$matches[1][0];
        } else {
            $val = $matches[1][0];
        }
        $res = str_replace($matches[0][0], '', $str);
        $val = substr($val, 1, -1);
        $text = "'" . addcslashes(stripcslashes($val), "\\'") . "'";
        $string = preg_replace('~\\' . $evalVar . '(?=[^a-zA-Z0-9])~ms', $text, $res);
        $string = preg_replace('~\(\s*\\' . $evalVar . '~msi', '(' . $text, $string);
        $res = str_replace($find, $string, $str);
        return $res;
    }

    private function deobfuscateEval($str, $matches)
    {
        $res = $str;
        if (preg_match('~(preg_replace\(["\']/\.\*?/[^"\']+["\']\s*,\s*)[^\),]+(?:[\)\\\\0-5]+;[\'"])?(,\s*["\'][^"\']*["\'])\)+;~msi', $res, $matches)) {
            $res = str_replace($matches[1], 'eval(', $res);
            $res = str_replace($matches[2], '', $res);
            return $res;
        }

        if (strpos($res, 'e\x76al') !== false
            || strpos($res, '\x29') !== false
            || strpos($res, 'base64_decode("\\x') !== false
        ) {
            $res = stripcslashes($res);
        }
        if (strpos($res, '"."') !== false) {
            $res = str_replace('"."', '', $res);
        }

        if (preg_match('~((\$\w+)\s*=\s*create_function\(\'\',\s*)[^\)]+\)+;\s*(\2\(\);)~msi', $res, $matches)) {
            $res = str_replace($matches[1], 'eval(', $res);
            $res = str_replace($matches[3], '', $res);
            return $res;
        }

        if (preg_match('~eval\s*/\*[\w\s\.:,]+\*/\s*\(~msi', $res, $matches)) {
            $res = str_replace($matches[0], 'eval(', $res);
            return $res;
        }
        preg_match('~@?(eval|echo)\s*\(\s*([\'"?>.\s]+)?@?\s*\(?\s*(base64_decode\s*\(|pack\s*\(\'H\*\',|convert_uudecode\s*\(|htmlspecialchars_decode\s*\(|stripslashes\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+.*?[^\'")]+((\s*\.?[\'"]([^\'";]+[\'"]*\s*)+)?\s*[\'"\);]+)+~msi', $res, $matches);
        $string = $matches[0];
        if (preg_match('~\$_(POST|GET|REQUEST|COOKIE)~ms', $res)) {
            return $res;
        }
        $string = substr($string, 5, strlen($string) - 7);
        $res = $this->unwrapFuncs($string);

        $res = str_replace($str, $res, $str);
        return $res;
    }

    private function deobfuscateEvalCodeFunc($str, $matches)
    {
        $res = substr($str, 5, strlen($str) - 7);
        $res = $this->unwrapFuncs($res);
        $res = stripcslashes($res);
        $res = str_replace($str, $res, $str);
        return $res;
    }

    private function deobfuscateEcho($str, $matches)
    {
        $res = $str;
        $string = $matches[0];
        if (preg_match('~\$_(POST|GET|REQUEST|COOKIE)~ms', $res)) {
            return $res;
        }
        $string = substr($string, 5, strlen($string) - 7);
        $res = $this->unwrapFuncs($string);
        $res = str_replace($str, $res, $str);
        return $res;
    }

    private function deobfuscateFOPO($str, $matches)
    {
        $phpcode = Helpers::formatPHP($str);
        $phpcode = base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($phpcode)));


        if (preg_match('~eval\s*\(\s*\$[\w|]+\s*\(\s*\$[\w|]+\s*\(~msi', $phpcode)) {
            preg_match_all('~\$\w+\(\$\w+\(\$\w+\("[^"]+"\)+~msi', $phpcode, $matches2);
            @$phpcode = gzinflate(base64_decode(str_rot13(Helpers::getTextInsideQuotes(end(end($matches2))))));
            $old = '';
            $hangs = 0;
            while (($old != $phpcode) && (strlen(strstr($phpcode, 'eval($')) > 0) && $hangs < 30) {
                $old = $phpcode;
                $funcs = explode(';', $phpcode);
                if (count($funcs) == 5) {
                    $phpcode = gzinflate(base64_decode(str_rot13(Helpers::getTextInsideQuotes(Helpers::getEvalCode($phpcode)))));
                } elseif (count($funcs) == 4) {
                    $phpcode = gzinflate(base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($phpcode))));
                }
                $hangs++;
            }
            $res = str_replace($matches[0], substr($phpcode, 2), $str);
        } else {
            $res = str_replace($matches[0], $phpcode, $str);
        }

        return $res;
    }

    private function deobfuscateFakeIonCube($str, $matches)
    {
        $subst_value = 0;
        $matches[1] = Helpers::calc($matches[1]);
        $subst_value = intval($matches[1])-21;
        $code = @pack("H*", preg_replace("/[A-Z,\r,\n]/", "", substr($str, $subst_value)));
        $res = str_replace($matches[0], $code, $str);
        return $res;
    }

    private function deobfuscateCobra($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        $res = preg_replace_callback(
            '~eval\(\"return strrev\(base64_decode\(\'([^\']+)\'\)\);\"\)~msi',
            function ($matches) {
                return strrev(base64_decode($matches[1]));
            },
            $res
        );

        $res = preg_replace_callback(
            '~eval\(gzinflate\(base64_decode\(\.\"\'([^\']+)\'\)\)\)\;~msi',
            function ($matches) {
                return gzinflate(base64_decode($matches[1]));
            },
            $res
        );

        preg_match('~(\$\w{1,40})\s*=\s*\"([^\"]+)\"\;\s*\1\s*=\s*explode\(\"([^\"]+)\",\s*\s*\1\);~msi', $res, $matches);
        $var = $matches[1];
        $decrypt = base64_decode(current(explode($matches[3], $matches[2])));
        $decrypt = preg_replace_callback(
            '~eval\(\"return strrev\(base64_decode\(\'([^\']+)\'\)\);\"\)~msi',
            function ($matches) {
                return strrev(base64_decode($matches[1]));
            },
            $decrypt
        );

        $decrypt = preg_replace_callback(
            '~eval\(gzinflate\(base64_decode\(\.\"\'([^\']+)\'\)\)\)\;~msi',
            function ($matches) {
                return gzinflate(base64_decode($matches[1]));
            },
            $decrypt
        );

        preg_match('~if\(\!function_exists\(\"(\w+)\"\)\)\s*\{\s*function\s*\1\(\$string\)\s*\{\s*\$string\s*=\s*base64_decode\(\$string\)\;\s*\$key\s*=\s*\"(\w+)\"\;~msi', $decrypt, $matches);

        $decrypt_func = $matches[1];
        $xor_key = $matches[2];

        $res = preg_replace_callback(
            '~\\' . $var . '\s*=\s*.*?eval\(' . $decrypt_func . '\(\"([^\"]+)\"\)\)\;\"\)\;~msi',
            function ($matches) use ($xor_key) {
                $string = base64_decode($matches[1]);
                $key = $xor_key;
                $xor = "";
                for ($i = 0, $iMax = strlen($string); $i < $iMax;) {
                    for ($j = 0, $jMax = strlen($key); $j < $jMax; $j++,$i++) {
                        if (isset($string[$i])) {
                            $xor .= $string[$i] ^ $key[$j];
                        }
                    }
                }
                return $xor;
            },
            $res
        );
        $res = str_replace($find, $res, $str);
        return $res;
    }

    private function deobfuscateFlamux($str, $matches)
    {
        $str = $matches[0];

        $vars = [];
        preg_match_all('~(\$\w+=[\'"]\w+[\'"];)~', $str, $match);
        foreach ($match[0] as $var) {
            $split = explode('=', str_replace(';', '', $var));
            $vars[$split[0]] = $split[1];
        }

        $res = '';
        preg_match_all('~(\$\w+=\$\w+[\'.]+\$\w+;)~', $str, $match);
        for ($i = 0, $iMax = count($match[0]); $i < $iMax; $i++) {

            $split = explode('=', str_replace(';', '', $match[0][$i]));
            $concats = explode('.', $split[1]);
            $str_to_concat = '';
            foreach ($concats as $concat) {
                $str_to_concat .= $vars[$concat] ?? '';
            }

            $vars[$split[0]] = $str_to_concat;

            if ($i === ($iMax - 1)) {
                $res = gzinflate(base64_decode(base64_decode(str_rot13($str_to_concat))));
            }
        }

        return $res;
    }

    private function deobfuscateDarkShell($str, $matches)
    {
        $str = stripcslashes($matches[0]);

        return $str;
    }

    private function deobfuscateWso($str, $matches)
    {
        $result = $matches[0];
        $contentVar = $matches[8];
        $variables = [];

        preg_match_all('~(\[([-+\(\d*\/\)]+)\])+~', $result, $mathMatches);
        foreach ($mathMatches[0] as $index => $match) {
            $search = $mathMatches[2][$index];
            $mathResult = Helpers::calculateMathStr($search);

            $result = str_replace("[$search]", "[$mathResult]", $result);
        }

        $dictionary = $matches[2];

        $variables = Helpers::getVarsFromDictionary($dictionary, $result);
        $variables[$matches[6]] = $matches[7];

        preg_match_all('~(\$\w+)\.=(\$\w+)~', $result, $matches);
        foreach ($matches as $index => $match) {
            $var = $matches[1][$index];
            $value = $matches[2][$index];
            if (!isset($variables[$var])) {
                $variables[$var] = (string)$variables[$value] ?? '';
            } else {
                $variables[$var] .= (string)$variables[$value] ?? '';
            }
        }

        if (isset($variables[$contentVar])) {
            $result = $variables[$contentVar];
        }

        if (preg_match('~(\$\w+)\s+=\s+(["\'\w\/+]+);(\$\w+)=base64_decode\(\1\);(\$\w+)=gzinflate\(\3\);eval\(\4\);~msi', $result, $match)) {
            $result = gzinflate(base64_decode($match[2]));
        }

        $result = str_replace('<?php', '', $result);

        return $result;
    }

    private function deobfuscateAnonymousFox($str, $matches)
    {
        $result = $matches[0];

        $string = $matches[7];
        $array = strlen(trim($string));
        $debuger = '';
        for ($one = 0; $one < $array; $one += 2) {
            $debuger .= pack("C", hexdec(substr($string, $one, 2)));
        }
        $string = $debuger;

        $result = $string . $matches[8] . "';";

        return $result;
    }

    private function deobfuscateBizden($str, $matches)
    {
        $result = $matches[0];
        $file_content = $matches[0];
        $vars = [
            '$OOO0000O0' => 'base64_decode',
            '$OOO000O00' => 'fopen',
            '$O0O000O00' => 'fget',
            '$O0O000O0O' => 'fgetc',
            '$O0O000O00' => 'fgets',
            '$O0O00OO00' => 'fread',
            '$OOO00000O' => 'strtr',
            '$OOO0O0O00' => $file_content,
            '$OO00O0000' => 498876,
        ];

        $eval_1 = base64_decode($matches[2]);
        preg_match_all('~(\$\w+)=\'(\w+)\'~', $eval_1, $varMatches);
        foreach ($varMatches[1] as $index => $varMatch) {
            $vars[$varMatches[1][$index]] = $varMatches[2][$index];
        }

        $result = str_replace(
            '__FILE__',
            "'" . $file_content . "'",
            base64_decode(
                strtr(
                    substr($file_content,0xc39
                             + 0x17c, 498876),
                    'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=',
                    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
                )
            )
        );

        foreach ($vars as $name => $value) {
            $result = str_replace($name, $value, $result);
            $result = str_replace('$GLOBALS[\''. substr($name, 1) . '\']', $value, $result);
        }

        $result = preg_replace_callback(
            '~(echo\s*)?base64_decode\(\'([\w=\+\/]+)\'\)~',
            function ($match) {
                if ($match[1] != "") {
                    return 'echo \'' . base64_decode($match[2]) . '\'';
                }
                return '\'' . str_replace('\'', '\\\'', base64_decode($match[2])) . '\'';
            },
            $result
        );

        foreach ($vars as $name => $value) {
            $result = str_replace($name, $value, $result);
            $result = str_replace('$GLOBALS[\''. substr($name, 1) . '\']', $value, $result);
        }

        $result = '<?php ' . $result;

        return $result;
    }

    private function deobfuscateWsoEval($str, $matches)
    {
        $result = base64_decode($matches[2]);

        preg_match('~data:image/png;(.*)">~im', $result, $match);
        $result = str_replace( array ('%', '#'), array ('/', '+'), $match[1]);
        $result = gzinflate(base64_decode($result));

        return $result;
    }

    private function deobfuscateAssertStr($str, $matches)
    {
        $result = $matches[1];
        $result = str_rot13($result);

        return $result;
    }

    private function deobfuscateEvalFuncFunc($str, $matches)
    {
        $result = $matches[15];
        $result = base64_decode($result);
        $result = Helpers::decrypt_T_func($result);

        return $result;
    }

    private function deobfuscateFuncVar($str, $matches)
    {
        $arg1 = str_replace($matches[5], '', $matches[3]);
        $funcName = str_replace($matches[8], '', $matches[7]);
        $insidefuncName = str_replace($matches[11], '', $matches[10]);

        if ($funcName === 'create_function') {
            $result = sprintf('%s(%s(\'%s\');', $insidefuncName, $arg1, $matches[15]);
        } else {
            $result = sprintf(
                '%s = %s(\'%s\',\'%s(%s(%s));\');%s(\'%s\');',
                $matches[14],
                $funcName,
                $matches[13],
                $insidefuncName,
                $arg1,
                $matches[13],
                $matches[14],
                $matches[15]
            );
        }

        return $result;
    }

    private function deobfuscateEchoEval($str, $matches)
    {
        $content = $matches[4];
        $content = str_replace($matches[1], $matches[2], $content);
        $result = str_replace($matches[3], $content, $matches[5]);

        return $result;
    }

    private function deobfuscateDictionaryVars($str, $matches)
    {
        $dictionary = $matches[2];
        $content = $matches[4];
        $vars = Helpers::getVarsFromDictionary($dictionary, $matches[0]);

        if (isset($vars[$matches[6]]) && $vars[$matches[6]] === 'create_function') {
            $content = str_replace($matches[5], 'eval(' . $matches[7] . ');', $content);
        }

        foreach ($vars as $key => $value) {
            $content = str_replace($key, $value, $content);
        }

        return $content;
    }

    private function deobfuscateConcatVarFunc($str, $matches)
    {
        $strVar = "";
        if ($matches['concatVar'] !== "") {
            $strVar = Helpers::concatVariableValues($matches[2], false);
        } else {
            if ($matches['strVal'] !== "") {
                $strVar = $matches['strVal'];
            }
        }

        $result = "";
        $iMax = strlen($strVar) / 2;
        for ($i = 0; $i < $iMax; $i++) {
            $result .= chr(base_convert(substr($strVar, $i * 2, 2), 16, 10));
        }
        return $result;
    }

    private function deobfuscateConcatVarFuncFunc($str, $matches)
    {
        $result = $matches[12];

        $func1 = Helpers::concatVariableValues($matches[2]);
        $func2 = Helpers::concatVariableValues($matches[22]);
        $func3 = Helpers::concatVariableValues($matches[19]);
        $func4 = Helpers::concatVariableValues($matches[7]);

        $result = sprintf('eval(%s(%s(%s(%s("%s")))));', $func1, $func2, $func3, $func4, $result);

        return $result;
    }

    private function deobfuscateEvalVarDoubled($str)
    {
        $result = $str;

        preg_match_all('~(\$\w+)\s?=\s?(\w+)\("(\w+)"\);~', $str, $varMatches);

        foreach ($varMatches[0] as $index => $varMatch) {
            $var_name = $varMatches[1][$index];
            $func_name = $varMatches[2][$index];
            $str = $varMatches[3][$index];

            if (Helpers::isSafeFunc($func_name)) {
                $str = @$func_name($str);
            }
            $result = str_replace($varMatch, '', $result);
            $result = str_replace($var_name, $str, $result);
        }

        return $result;
    }

    private function deobfuscateVarFuncsEcho($str, $matches)
    {
        $result = $str;
        $func = $matches[2];

        if (Helpers::isSafeFunc($matches[2])) {
            $result = @$func($matches[3]);
            $result = str_replace('<?php', '', $result);
        }

        return $result;
    }

    private function deobfuscateVarFuncsMany($str, $matches)
    {
        $result = $matches[0];
        $strName = $matches[1];
        $dictionaryName = $matches[4];
        $dictionaryValue = 'bogp%l_zxtdqejysncm4kwuirf6vha';
        $vars = Helpers::getVarsFromDictionary($dictionaryValue, "$matches[6]=$matches[7]");
        $funcs = [];

        $result = str_replace("$matches[6]=$matches[7];", "", $result);

        $result = preg_replace_callback(
            '~(\$\w+)\s?=\s?array\([\'"]([\w+\/]+)[\'"]\s?,\s?[\'"]([\w+\/]+)[\'"](?:\s?,[\'"]([\w+\/]+)[\'"]\s?)?\);\s?((?:(?:\$\w+=\s?\w+\(\$\w+,\s?)|(?:return\s?))(join\([\'"]{2},\s?\1\))\s?\)?\s?;)~msi',
            function ($match) {
                $joinedVars = join("", [$match[2], $match[3], $match[4]]);
                $replace = str_replace($match[6], "'$joinedVars'", $match[5]);

                return $replace;
            },
            $result
        );

        $result = preg_replace_callback(
            '~global\s(\$\w+);\s?((\$\w+)\s?=\s?[\'"]([\w\/+]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([\w\/+]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([\w\/+]+)[\'"];\s?\1\s?\.=\s?"({\3}{\5}{\7})");~',
            function ($match) {
                $concatedVars = $match[4] . $match[6] . $match[8];
                $replace = str_replace($match[2], sprintf('%s.="%s"', $match[1], $concatedVars), $match[0]);

                return $replace;
            },
            $result
        );

        $result = preg_replace_callback(
            '~((\$\w+)\s?=\s?[\'"]([\w\/+]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([\w\/+]+)[\'"];\s?return\s?"({\2}{\4})");~msi',
            function ($match) {
                $concatedVars = $match[3] . $match[5];
                $replace = str_replace($match[1], sprintf('return "%s"', $concatedVars), $match[0]);

                return $replace;
            },
            $result
        );

        $result = preg_replace_callback(
            '~(?:class\s(?<className>\w+)\s?{\s?)?(?:public\s)?function\s(?<methodName>\w+\(\)){\s?(?<codeBlock>.*?;)\s}\s?(?:}\s?)?~msi',
            function ($match) use (&$funcs, $strName, $dictionaryName, $dictionaryValue) {
                $str = "";
                $isConcat = false;

                if (preg_match(
                    '~return\s[\'"]([\w+\/+]+)[\'"];~msi',
                    $match[0],
                    $returnCode
                )) {
                    $str = $returnCode[1];
                } else {
                    if (preg_match(
                        '~global\s(\$\w+);\s?\1\s?\.=\s?["\']([\w+\/+]+)["\'];?~msi',
                        $match[0],
                        $concatCode
                    )) {
                        $str = $concatCode[2];
                        $isConcat = true;
                    } else {
                        if (preg_match(
                            '~global\s(\$' . substr(
                                $dictionaryName,
                                1
                            ) . ');\s*return\s*((?:\s?\1\[?{?\d+\]?}?\s?\.?\s?)+);?~msi',
                            $match[0],
                            $returnCode
                        )) {
                            $str = Helpers::getVarsFromDictionary(
                                $dictionaryValue,
                                sprintf('%s=%s', $dictionaryName, $returnCode[2])
                            );
                            $str = $str[$dictionaryName];
                            $isConcat = false;
                        }
                    }
                }
                $funcs[$match['methodName']]['str'] = $str;
                $funcs[$match['methodName']]['concat'] = $isConcat;

                return "";
            },
            $result
        );

        $result = preg_replace_callback(
            '~(\$[^' . substr($strName, 1) . ']\w+)\s?=\s?(\w+\(\));~msi',
            function ($match) use ($funcs, &$vars) {
                if (isset($funcs[$match[2]]) && !$funcs[$match[2]]['concat']) {
                    $vars[$match[1]] = $funcs[$match[2]]['str'];
                }
                return "";
            },
            $result
        );

        foreach ($vars as $name => $var) {
            $result = str_replace($name, $var, $result);
        }

        $result = preg_replace_callback(
            '~([\w_]+)\s?\(\s?([\w_]+)\s?\(\s?((?:\$hf[{\[]\d+[\]}]\s?\.?)+)\s?,\s?(\d+)\s?\),\s?((?:\d+,?)+)\);~msi',
            function ($match) use ($dictionaryValue, $dictionaryName) {
                $str = Helpers::getVarsFromDictionary(
                    $dictionaryValue,
                    sprintf('%s=%s', $dictionaryName, $match[3])
                );
                $res = "";
                if (Helpers::isSafeFunc($match[2])) {
                    $res = @$match[2]($str[$dictionaryName], $match[4]);
                }

                if (Helpers::isSafeFunc($match[1])) {
                    $args = [$res];
                    $digits = explode(',', $match[5]);
                    foreach ($digits as $digit) {
                        $args[] = (int)$digit;
                    }
                    $reflectionMethod = new ReflectionFunction($match[1]);
                    $res = $reflectionMethod->invokeArgs($args);
                }
                return "\"$res\";";
            },
            $result
        );

        $strToDecode = "";

        preg_replace_callback(
            '~(?:\$EZU\s?=\s?m9Lg\(\s?\$EZU\s*,\s?["\'](?<concat>[\w+\/]+)[\'"]\s?\)\s?;)|(?:\$EZU\s?=\s?m9Lg\(\s?\$EZU\s?,\s?(?<concatFunc>\w+\(\))\)\s?;)|(?:\$EZU\s?\.?=\s?(?:\$EZU\.)?\s?["\'](?<concatStr>[\w+\/=]+)[\'"]\s?;)|(?:\$EZU\s?\.?=\s?(?<concatFuncSingle>\w+\(\))\s?;)|(\$\w+\s?=\s?new\s\w+\(\)\s?;\s?\$EZU\s?\.?=\s?\$EZU\s?\.\s?\$\w+->(?<concatFuncClass>\w+\(\)\s?))|(?:(?<func>[^,\s]\w+\(\)))~msi',
            function ($match) use (&$strToDecode, $funcs) {
                if (isset($match['concat']) && $match['concat'] !== "") {
                    $strToDecode .= $match['concat'];
                    return;
                }
                if (isset($match['concatStr']) && $match['concatStr'] !== "") {
                    $strToDecode .= $match['concatStr'];
                    return;
                }
                if (isset($match['concatFunc']) && $match['concatFunc'] !== "") {
                    $strToDecode .= $funcs[$match['concatFunc']]['str'];
                    return;
                }
                if (isset($match['concatFuncSingle']) && $match['concatFuncSingle'] !== "") {
                    $strToDecode .= $funcs[$match['concatFuncSingle']]['str'];
                    return;
                }
                if (isset($match['concatFuncClass']) && $match['concatFuncClass'] !== "") {
                    $strToDecode .= $funcs[$match['concatFuncClass']]['str'];
                    return;
                }
                if (isset($match['func']) && $match['func'] !== "") {
                    $strToDecode .= $funcs[$match['func']]['str'];
                    return;
                }
            },
            $result
        );

        $result = base64_decode($strToDecode);

        return $result;
    }

    private function deobfuscateGlobalArrayEval($str, $matches)
    {
        $result = str_replace($matches[1], "", $str);

        $dictionary = stripcslashes($matches[3]);
        $dictionaryVar = stripcslashes($matches[2]);
        $dictionaryVar = str_replace('{"GLOBALS"}', 'GLOBALS', $dictionaryVar);

        $result = Helpers::replaceVarsFromDictionary($dictionaryVar, $dictionary, $result);

        preg_match_all('~(\$GLOBALS\[[\'\w]+\])\s?=\s?[\'"]?([\w\-\_\$]+)["\']?;\s?~msi', $result, $varMatch);

        foreach ($varMatch[1] as $index => $var) {
            $result = str_replace($varMatch[0][$index], "", $result);
            $result = str_replace($varMatch[1][$index], $varMatch[2][$index], $result);
        }

        return $result;
    }

    private function deobfuscateTinkleShell($str, $matches)
    {
        $result = $str;
        $dictionaryStr = $matches[2];
        $decodeKey = Helpers::getDecryptKeyForTinkleShell(strlen($str));
        $vars = [
            $matches[4] => $matches[5],
        ];

        $result = str_replace(' ', '', $result);
        $matches[3] = str_replace(' ', '', $matches[3]);

        preg_match_all('~(\$\w+)=(?:\$\w+\[\'\w\'\+\d+\+\'\w\'\]\.?)+;~msi', $matches[3], $matchVars);
        foreach ($matchVars[0] as $index => $match) {
            preg_match_all('~\$\w+\[\'\w\'\+(\d+)\+\'\w\'\]\.?~msi', $match, $values);
            foreach ($values[1] as $value) {
                if (!isset($vars[$matchVars[1][$index]])) {
                    $vars[$matchVars[1][$index]] = $dictionaryStr[$value] ?? $value;
                } else {
                    $vars[$matchVars[1][$index]] .= $dictionaryStr[$value] ?? $value;
                }
            }
        }

        $result = str_replace($matches[3], "", $result);

        preg_match_all('~(\$\w+)=(\$\w+)\((\$\w+),(\$\w+)\(""\),"([\w\+]+)"\);~msi', $result, $matchVars);
        foreach ($matchVars[1] as $index => $varName) {
            $func = $vars[$matchVars[2][$index]] ?? $matchVars[2][$index];
            $arg1 = $vars[$matchVars[3][$index]] ?? $matchVars[3][$index];
            $arg2 = $vars[$matchVars[4][$index]] ?? $matchVars[4][$index];
            $argStr = $matchVars[5][$index];

            if (Helpers::isSafeFunc($func)) {
                $value = @$func($arg1, $arg2 === 'trim' ? "" : $arg2, $argStr);

                $vars[$varName] = $value;
            }
            $result = str_replace($matchVars[0][$index], '', $result);
        }

        $func = $vars[$matches[10]] ?? '';
        if (Helpers::isSafeFunc($func)) {
            $result = @$func($matches[11], $vars[$matches[12]] ?? "", $decodeKey);
        }
        $func = $vars[$matches[7]] ?? '';
        if (Helpers::isSafeFunc($func)) {
            $result = @$func($vars[$matches[8]] ?? '', "", $result);
        }
        $func = $vars[$matches[6]] ?? '';
        if (Helpers::isSafeFunc($func)) {
            $result = @$func($result);
        }

        return $result;
    }

    private function deobfuscateWsoFunc($str, $matches)
    {
        if (isset($matches['str'])) {
            return gzinflate(base64_decode($matches['str']));
        }

        return $matches[0];
    }

    private function deobfuscateEvalWanFunc($str, $matches)
    {
        $result = gzinflate(base64_decode($matches[4]));

        for ($i = 0; $i < strlen($result); $i++) {
            $result[$i] = chr(ord($result[$i]) - 1);
        }

        return $result;
    }

    private function deobfuscateFuncFile($str, $matches)
    {
        $result = base64_decode($matches[4]);

        return $result;
    }

    private function deobfuscateGulf($str, $matches)
    {
        $result = str_replace("'.'", '', str_replace($matches[2], '', $matches[1]));

        $vars = Helpers::collectVars($matches[2], "'");
        $result = Helpers::replaceVarsFromArray($vars, $result);

        $tempCode = gzinflate(base64_decode($matches[4]));

        $result .= PHP_EOL . $tempCode;

        return $result;
    }

    private function deobfuscateEvalConcatAsciiChars($str, $matches)
    {
        $result = '';

        $num = (int)$matches[2];
        $str = (string)$matches[4];
        $len = strlen($str);

        for ($i = 0; $i < $len; $i++) {
            $result .= chr(ord($str[$i]) ^ $num);
        }

        $result = str_replace(['<?php', '?>', ''], '', $result);

        return $result;
    }

}


/**
 * Class Factory.
 */
class Factory
{
    /**
     * @var Factory
     */
    private static $instance;
    /**
     * @var array
     */
    private static $config;

    /**
     * Factory constructor.
     *
     * @throws Exception
     */
    private function __construct()
    {

    }

    /**
     * Instantiate and return a factory.
     *
     * @return Factory
     * @throws Exception
     */
    public static function instance()
    {
        if (self::$instance === null) {
            self::$instance = new self();
        }

        return self::$instance;
    }

    /**
     * Configure a factory.
     *
     * This method can be called only once.
     *
     * @param array $config
     * @throws Exception
     */
    public static function configure($config = [])
    {
        if (self::isConfigured()) {
            throw new Exception('The Factory::configure() method can be called only once.');
        }

        self::$config = $config;
    }

    /**
     * Return whether a factory is configured or not.
     *
     * @return bool
     */
    public static function isConfigured()
    {
        return self::$config !== null;
    }

    /**
     * Creates and returns an instance of a particular class.
     *
     * @param string $class
     *
     * @param array $constructorArgs
     * @return mixed
     * @throws Exception
     */
    public function create($class, $constructorArgs = [])
    {
        if (!isset(self::$config[$class])) {
            throw new Exception("The factory is not contains configuration for '{$class}'.");
        }

        if (is_callable(self::$config[$class])) {
            return call_user_func(self::$config[$class], $constructorArgs);
        } else {
            return new self::$config[$class](...$constructorArgs);
        }
    }
}


class Template
{
    protected $html;
    protected $variables = [];

    /**
     * Template constructor.
     *
     * @param string $html
     */
    public function __construct($html)
    {
        $this->html = $html;
    }

    /**
     * @param $html
     *
     * @return Template
     */
    public static function create($html)
    {
        return new static($html);
    }

    /**
     * @param $key
     * @param $value
     */
    public function set($key, $value)
    {
        $this->variables[$key] = $value;
    }

    /**
     * @return string
     */
    public function render()
    {
        if (!empty($this->variables)) {
            foreach ($this->variables as $key => $value) {
                $this->html = str_replace("@@$key@@", $value, $this->html);
            }
        }

        return $this->html;
    }
}

class Translate
{
    const LANG_EN = 'EN';
    const LANG_RU = 'RU';

    /**
     * @var string
     */
    private static $lang = self::LANG_EN;

    /**
     * @param $lang
     */
    public static function setLang($lang)
    {
        self::$lang = $lang;
    }

    /**
     * @param string      $key
     * @param null|array  $params
     *
     * @param null|string $language
     *
     * @return string
     */
    public static function getStr($key, $params = null, $language = null)
    {
        if ($language && in_array($language, [self::LANG_RU, self::LANG_EN])) {
            $lang = $language;
        } else {
            $lang = self::$lang;
        }

        $result = ($lang === self::LANG_RU) ? TranslateList::RU[$key] : TranslateList::EN[$key];
        if ($params && is_array($params) && !empty($params)) {
            return vsprintf($result, $params);
        }

        return $result;
    }
}