/home/bdqbpbxa/AI-Bolit/ai-bolit.php
<?php
///////////////////////////////////////////////////////////////////////////
// Version: 30.4.10
// 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();
$vars->users = new UserList();

$lang = 'RU';
$snum = '';

if (isCli()) {
    if (strpos($argv[$argc - 1], '--eng') !== 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', 0);

define('CLOUD_ASSIST_LIMIT', 5000);

$defaults = [
    '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', 12); //12b - 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', '30.4.10');

////////////////////////////////////////////////////////////////////////////
$g_SpecificExt = false;

$g_UpdatedJsonLog      = 0;

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 (!AI_HOSTER) {
    $finder->setCollectDoorways(true);
    $finder->setCollectBigFiles(true);
}

$finder->setCollectSymlinks(true);

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_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($vars->warningPHP)) . '|' . (count($vars->criticalJS) + 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 = [
        '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 = [
        '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 = [
        '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',
        'use-heuristics-ignore',
        '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:',
        'no-users',
        'stat',
        'skip-imunify360-storage',
        'rapid-scan-rescan-frequency:'
    ];

    $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
      --skip-imunify360-storage         If set, we skip /var/imunify360/cleanup_storage
      --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
      --rapid-scan-rescan-frequency=<n> Rescan RX_GOOD files strategy <n> = 1 = ALL|2 = 1/2|3 = 1/3...

      --use-heuristics                  Enable heuristic algorithms and mark found files as malicious.
      --use-heuristics-suspicious       Enable heuristic algorithms and mark found files as suspicious.
      --use-heuristics-ignore           Enable heuristic algorithms and skip found files.
  -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
      --no-users                        Disable users list in report
      --stat                            Add stat() data to files in 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);
        }
    }

    if (isset($options['no-users'])) {
        $vars->users = null;
    }


    $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-imunify360-storage'])) {
        $filter->setSkipImunifyStorage();
    }

    if (isset($options['skip-root-owner'])) {
        $filter->setSkipRootOwner();
    }

    if (isset($options['skip-system-owner'])) {
        $max_min_uid = getMaxMinUid();
        $filter->setUidRange($max_min_uid);
        $filter->setSkipSystemOwner(true);
        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['b']) || isset($options['smart'])) {
        define('SMART_SCAN', 1);
    }

    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 (!(defined('RAPID_ACCOUNT_SCAN') && RAPID_ACCOUNT_SCAN_TYPE === 'SUSPICIOUS')) {
        $options['rapid-scan-rescan-frequency'] = false;
    }

    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-ignore'])) {
        define('USE_HEURISTICS_IGNORE', true);
    }
    
    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));
}

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);

$max_size = (MAX_SIZE_SCAN_BYTES > 0) ? MAX_FILE_SIZE_FOR_CHECK : (defined('CLOUD_ASSIST_TOKEN') ? max(MAX_SIZE_TO_SCAN, MAX_SIZE_TO_CLOUDSCAN) : MAX_SIZE_TO_SCAN);

if ($max_size == 0) {
    $max_size = AibolitHelpers::getBytes('1m');
}

$filter->setSizeRange(MIN_FILE_SIZE_FOR_CHECK, $max_size);
$finder->setCollectBigElfs(defined('USE_HEURISTICS') || defined('USE_HEURISTICS_SUSPICIOUS'));

$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, isset($vars->options['stat'])]);
    }
};

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

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

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) && !AI_HOSTER; $tt++) {
        $vars->CMS[] = $g_CmsListDetector->getCmsName($tt) . ' v' . AibolitHelpers::makeSafeFn($g_CmsListDetector->getCmsVersion($tt), $g_AddPrefix, $g_NoPrefix);
    }
}

$g_AiBolitAbsolutePath = __DIR__;

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

$filter->setIgnoreListPatterns($l_DirIgnoreFilename);

if (SMART_SCAN) {
    $filter->setSmartScan();
}

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


$defaults['skip_ext'] = strtolower(trim($defaults['skip_ext']));
if ($defaults['skip_ext'] != '') {
    $filter->setIgnoreExt($defaults['skip_ext']);

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

    stdOut('Skip extensions: ' . implode(',', $filter->getIgnoreExt()));
}

$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;

if (isset($options['resident'])) {
    $filter->setIgnorePathPattern(false);
    $filter->setDefaultExcludes(false);
    $filter->setScanAll();
}

if (is_callable([$filter, 'generateCheckers'])) {
    $filter->generateCheckers();
}

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, $logger, $options]);
    exit(0);
}

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, $filter);
    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();
}

$vars->doorway = $finder->getDoorways();
$vars->symLinks = $finder->getSymlinks();
$vars->bigFiles = $finder->getBigFiles();

if (count($vars->bigFiles) > 0) {
    $scan->prepareBigFilesToCriticalList($vars->bigFiles, $vars);
}
$bigElfs = $finder->getBigElfFiles();

if (count($bigElfs) > 0) {
    $scan->prepareBigElfFilesToCriticalSusList($bigElfs, $vars);
}


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


////////////////////////////////////////////////////////////////////////////
if (BOOL_RESULT && (!defined('NEED_REPORT'))) {
    if ((count($vars->criticalPHP) > 0) || (count($vars->criticalJS) > 0) || (count($vars->phishing) > 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");

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 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 = [];
    public $totalFolder = 0;
    public $totalFiles = 0;
    public $adwareList = [];
    public $criticalPHP = [];
    public $phishing = [];
    public $CMS = [];
    public $criticalJS = [];
    public $criticalJSFragment = [];
    public $blackFiles = [];
    public $notRead = [];
    public $bigFiles = [];
    public $criticalPHPSig = [];
    public $criticalPHPFragment = [];
    public $phishingSigFragment = [];
    public $phishingFragment = [];
    public $criticalJSSig = [];
    public $adwareListFragment = [];
    public $warningPHPSig = [];
    public $warningPHPFragment = [];
    public $warningPHP = [];
    public $vulnerable = [];

    public $counter = 0;
    public $foundTotalDirs = 0;
    public $foundTotalFiles = 0;
    public $files_and_ignored = 0;
    public $doorway = [];
    public $symLinks = [];
    public $skippedFolders = [];

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

    public $options = [];

    public $signs = [];
    public $users = null;
}



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             = [];
    private $sig_db_meta_info   = [];
    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 = [
            '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 = [];
            }

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

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

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

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

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

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

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

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

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

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

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

            $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  = [];
            $this->XX_FlexDBShe = [];
            $this->X_JSVirSig   = [];
        }

        // 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 = [];

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

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

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

        $this->optSigCheck($sigs);

        $tmp = [];
        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   = [];

        $suffixes = [];
        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 = [];
                $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 = [];
        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 25/02/2021 11:42:31
self::$_DBShe = unserialize(gzinflate(/*1614242551*/base64_decode("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")));
self::$X_DBShe = unserialize(gzinflate(/*1614242551*/base64_decode("bVVrb9s2FP0rrJbODhDHkinFttIUS+202dI8ELtdiyAQaImWCVGPkpQTu9h++y4fdoJin2IdHh7ee+4jJD7x458s9k9lPIy9jC5JSoV3yuIAkEEYe9/rFqWkQk2rEEFlFiGpBKtyzRkAZxR7zaqRK8q5hjBAJ4PYe5exNUo5kfLMW/A6LdBCbRoaeO9fn2Sqbn5BFqr03mul0Iqn4/FePLKQiIZ76MQGfjOfkizbaGTo7rHVnjSypI/PRkwjY0ACCPNvukAzTUMLcznQRgSBdmLN+Ha2UwiMHVHsXZK0oBmw0TlfkgVV9VcmVEssyxlyg9X+7QA7xZmqRTl8UQwd/rlOW/kKj1xouyyPwV5zoFMdxx6pFHtRHzqVcmMw+kxTg49sJDa328JgJmkoqSZ1PVGinkC9pSmkSVtHTlGbEV5LtCW5aLdMmWOdfQSvHJRUSpJTdIaooHkiaMOhYbre22jydjDwjpBn/+yIh6fmvvYlgNgb6ByFvFlDSpp13r9bCFPqgfYo9GNPUpXWdcFoF+mMfvDkiS4SkpWsSlpJRQX3POREtYEYykq5pGzZXbZVqlhdJfSZSSW7njEkMY4cHpob2toIwmBL1GUySQnnZMEhfEtCpMrQG3iKCEE2Dj06yJjULK3vdHQlcGh1ugcNFaVEvyP/eeL7/iE6O9v//GnopkaQXcYE6t9+Qv1vBtYlwiegUqW8zWj3IJld3H+9uH/oXM7nd8kX+ErOP13czDuP9tmxbeOF8J8kNkOKdd1CyKizUqrJjtO6WnaOOutVDQ7svtJlrntI/wKA2Q9zO3B59BtRp325kf0CPKa8vyEl6TdKQG0TmdYNNXRdxQEGw9eEd5eM0ySnKgFRRSttuOZg10hg75NgytrbXxPRN8e6ZlFkjvfud7TPnV/dtyh00iv7pdHQVQTbCh/yNc2OdT0GAOUlYbwnS9X0WHXMj/O6zjkFH0pDG1r/oKWE75vGxiM3PlM97ma2ra/O6unLPgx3m+EB3a3Ar+cNejR4YCftIa0zKrYW005hvQXf9Hq/6URQWmZn3oEp7PlkcnE391CvZ/ccdgP/+CDqtsq6/uGj8TLcbYgZK8+V2gcXmg0BJk6JKCaCPn0UjFaZMSd0+7AYcI5xZiCX9lVxFWA8NNDIKVyeT64upujDdzSb395fm7PdlriGOYLFb00x4pHvrl2L49kK2nZFqm/B+MScBXY7TSnLiCD/mhaPBq7z/2JVA3urLrcGxpYbVEOcqsCvDBi6d6/gn8usEG0D01vbd6P/l3ELcUKrnG0viZUZWlDgNa7ysLICIwt++Az5frn50wY3dvtUKJYWnP7hnf7zHw==")));
self::$_FlexDBShe = unserialize(gzinflate(/*1614242551*/base64_decode("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")));
self::$X_FlexDBShe = unserialize(gzinflate(/*1614242551*/base64_decode("S7QysKquBQA=")));
self::$XX_FlexDBShe = unserialize(gzinflate(/*1614242551*/base64_decode("S7QysKquBQA=")));
self::$_ExceptFlex = unserialize(gzinflate(/*1614242551*/base64_decode("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")));
self::$_AdwareSig = unserialize(gzinflate(/*1614242551*/base64_decode("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")));
self::$_PhishingSig = unserialize(gzinflate(/*1614242551*/base64_decode("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")));
self::$_JSVirSig = unserialize(gzinflate(/*1614242551*/base64_decode("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")));
self::$X_JSVirSig = unserialize(gzinflate(/*1614242551*/base64_decode("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")));
self::$_SusDB = unserialize(gzinflate(/*1614242551*/base64_decode("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")));
self::$_SusDBPrio = unserialize(gzinflate(/*1614242551*/base64_decode("S7QysKquBQA=")));
self::$_Mnemo = unserialize(gzinflate(/*1614242551*/base64_decode("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")));
self::$_DeMapper = unserialize(base64_decode("YTo1OntzOjEwOiJ3aXphcmQucGhwIjtzOjM3OiJjbGFzcyBXZWxjb21lU3RlcCBleHRlbmRzIENXaXphcmRTdGVwIjtzOjE3OiJ1cGRhdGVfY2xpZW50LnBocCI7czozNzoieyBDVXBkYXRlQ2xpZW50OjpBZGRNZXNzYWdlMkxvZygiZXhlYyI7czoxMToiaW5jbHVkZS5waHAiO3M6NDg6IkdMT0JBTFNbIlVTRVIiXS0+SXNBdXRob3JpemVkKCkgJiYgJGFyQXV0aFJlc3VsdCI7czo5OiJzdGFydC5waHAiO3M6NjA6IkJYX1JPT1QuJy9tb2R1bGVzL21haW4vY2xhc3Nlcy9nZW5lcmFsL3VwZGF0ZV9kYl91cGRhdGVyLnBocCI7czoxMDoiaGVscGVyLnBocCI7czo1ODoiSlBsdWdpbkhlbHBlcjo6Z2V0UGx1Z2luKCJzeXN0ZW0iLCJvbmVjbGlja2NoZWNrb3V0X3ZtMyIpOyI7fQ=="));
self::$db_meta_info = unserialize(base64_decode("YTozOntzOjEwOiJidWlsZC1kYXRlIjtzOjEwOiIxNjE0MTY2NjkyIjtzOjc6InZlcnNpb24iO3M6MTM6IjIwMjEwMjI0LTQ4ODAiO3M6MTI6InJlbGVhc2UtdHlwZSI7czoxMDoicHJvZHVjdGlvbiI7fQ=="));

//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  = [];
        $this->types     = [];

        $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      = [
            '.',
            '..'
        ];
        $directories = array_diff(scandir($target), $remove);

        $res = [];

        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 = [])
    {
        if (empty($list_of_hashes)) {
            return [
                [], 
                [],
                [],
                '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 = [
            '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
     * @param $stat
     */
    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, $stat)
    {

    }

    /**
     * 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;
    private $stat;

    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, $stat = 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->stat                 = $stat;

        $this->raw_report = [];
        $this->raw_report['summary'] = [
            '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                       = [];
        $summary_counters['redirect']           = 0; //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 (isset($vars->users)) {
            $this->raw_report['summary']['users'] = $vars->users->getList();
        }

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

    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'] = $this->getSimpleList($vars->notRead);
        }

        if (count($vars->phishing) > 0) {
            $this->raw_report['phishing'] = $this->getRawJson($vars->phishing, $vars, $vars->phishingFragment, $vars->phishingSigFragment);
        }
        if (count($vars->symLinks) > 0) {
            $this->raw_report['sym_links'] = $this->getSimpleList($vars->symLinks);
        }
        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->getSimpleList($vars->bigFiles);
        }
        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'] = $this->getSimpleList($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 = [];
        $l_Src   = [
            '&quot;',
            '&lt;',
            '&gt;',
            '&amp;',
            '&#039;',
            '<' . '?php.'
        ];
        $l_Dst   = [
            '"',
            '<',
            '>',
            '&',
            '\'',
            '<' . '?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]);
            
            $res['fn']      = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($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 = [];
        $l_Src   = [
            '&quot;',
            '&lt;',
            '&gt;',
            '&amp;',
            '&#039;',
            '<' . '?php.'
        ];
        $l_Dst   = [
            '"',
            '<',
            '>',
            '&',
            '\'',
            '<' . '?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]);
            
            $res['fn'] = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($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_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'] = '';
            }
            if ($this->stat) {
                $res['uid']    = $vars->structure['u'][$l_Pos];
                $res['gid']    = $vars->structure['g'][$l_Pos];
                $res['mode']   = $vars->structure['p'][$l_Pos];
            }

            $results[] = $res;
        }

        return $results;
    }

    private function getRawBlackData($black_list)
    {
        $result = [];
        foreach ($black_list as $filename => $hash)
        {
            try {
                $stat = @stat($filename);
                if (!$stat) {
                    continue;
                }
                $sz   = $stat['size'];
                $ct   = $stat['ctime'];
                $mt   = $stat['mtime'];
                $u    = $stat['uid'];
                $g    = $stat['gid'];
                $p    = sprintf("0%o", 0777 & $stat['mode']);
            }
            catch (Exception $e) {
                continue;
            }

            $item = [
                'fn'    => ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($filename) : $filename,
                'sig'   => '',
                'ct'    => $ct,
                'mt'    => $mt,
                'et'    => $hash['ts'],
                'sz'    => $sz,
                'hash'  => $hash['h'],
                'sigid' => crc32($filename),
                'sn'    => isset($hash['sn']) ? $hash['sn'] : 'cld'
            ];

            if ($this->stat) {
                $item['uid']   = $u;
                $item['gid']   = $g;
                $item['mode']  = $p;
            }

            $result[] = $item;
        }
        return $result;
    }
    
    private function getSimpleList($list)
    {
        if (!ENCODE_FILENAMES_WITH_BASE64) {
            return $list;
        }
        foreach ($list as &$item) {
            $item = base64_encode($item);
        }
        unset($item);
        return $list;
    }
}


/**
 * 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, $stat = 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->phishing) > 0) {
            $this->raw_report .= '[PHISHING]' . "\n" . $this->printPlainList($vars->phishing, $vars,  $vars->phishingFragment) . "\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_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 (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_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 = [
            '&quot;',
            '&lt;',
            '&gt;',
            '&amp;',
            '&#039;'
        ];
        $l_Dst = [
            '"',
            '<',
            '>',
            '&',
            '\''
        ];

        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;
    private $stat;

    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, $stat = 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;
        $this->stat = $stat;

        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 (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);
        }
        if (count($vars->adwareList) > 0) {
            $this->writeRawCSV($vars->adwareList, $vars, self::ADWARE, $vars->adwareListFragment);
        }
        if (count($vars->bigFiles) > 0) {
            $this->writeListCSV(self::BIG_FILES, $vars->bigFiles);
        }
        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'];
            $fn     = $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]);
            $res[]  = self::VULNERABLE;
            $res[]  = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($fn) : 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[]  = '';
            
            if ($this->stat) {
                $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[] = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($list[$i]) : $list[$i];
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';
            $res[] = '';

            if ($this->stat) {
                $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   = [
            '&quot;',
            '&lt;',
            '&gt;',
            '&amp;',
            '&#039;',
            '<' . '?php.',
            '\\'
        ];
        $l_Dst   = [
            '"',
            '<',
            '>',
            '&',
            '\'',
            '<' . '?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]);
            
            $res[] = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($fn) : 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_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[] = '';
            }
            if ($this->stat) {
                $res[] = $vars->structure['u'][$l_Pos];
                $res[] = $vars->structure['g'][$l_Pos];
                $res[] = $vars->structure['p'][$l_Pos];
            }
            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);
                if (!$stat) {
                    continue;
                }
                $sz   = $stat['size'];
                $ct   = $stat['ctime'];
                $mt   = $stat['mtime'];
                $u    = $stat['uid'];
                $g    = $stat['gid'];
                $p    = sprintf("0%o", 0777 & $stat['mode']);
            }
            catch (Exception $e) {
                continue;
            }
            
            $res[] = self::CLOUDHASH;
            $res[] = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($filename) : $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[] = '';
            if ($this->stat) {
                $res[] = $u;
                $res[] = $g;
                $res[] = $p;
            }
            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, $stat = 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 = __DIR__;

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

        $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, $stat = 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->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                      = [];
        $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 (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;
            }
        }

        $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 .= nl2br(AibolitHelpers::makeSafeFn(implode("\n", $bigFiles), $this->addPrefix, $this->noPrefix, true));
            $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_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_file('sha256', $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, $this->finder->getFilter());
            $this->vars->bigFiles = $this->finder->getBigFiles();

            if (count($this->vars->bigFiles) > 0) {
                $scan->prepareBigFilesToCriticalList($this->vars->bigFiles, $this->vars);
            }
            $bigElfs = $this->finder->getBigElfFiles();

            if (count($bigElfs) > 0) {
                $scan->prepareBigElfFilesToCriticalSusList($bigElfs, $this->vars);
            }
            $scan->whitelisting();
        }
        unset($scan);
        unset($s_file);
        unset($bigElfs);
    }

    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 = [
            '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
{
    /**
     * check upload folder every N seconds
     */
    const CHECK_UPLOAD_TIME = 3;
    /**
     * time of last check upload jobs folder
     * @var
     */
    protected $last_dir_check;
    /**
     * 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 $watchdog_socket;
    protected $activation_socket;
    protected $systemd = false;
    protected $interval = 0;
    protected $lastKeepAlive = 0;

    protected $signs;
    protected $finder;
    protected $options;

    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 Logger|null $logger
     * @param array       $options
     * @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,
        Logger $logger = null,
        $options = null,
        $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->logger = $logger;
        $this->options = $options;

        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()
    {
        $this->last_dir_check = microtime(true);
        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;
        if ($type === 'notify') {
            $this->finder->getFilter()->setSkipSystemOwner(isset($this->options['skip-system-owner']));
        } else {
            $this->finder->getFilter()->setSkipSystemOwner(false);
        }
        $vars->signs = $this->signs;
        $vars->users = new UserList();
        $vars->options = $this->options;

        $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, [$this, 'keepAlive'], true, false, $this->finder->getFilter());
            } else {
                $scan->QCR_GoScan($files_to_scan, null, true, false, $this->finder->getFilter());
            }

            $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);
        }
        if (((microtime(true) - $this->last_dir_check) > self::CHECK_UPLOAD_TIME)
            && !$this->isDirEmpty($this->resident_in_dir_upload)
            && $this->isUploadJob()
        ) {
            $this->scanUploadJob();
        }
    }

    protected function isDirEmpty($dir)
    {
        $it = new \FilesystemIterator($dir);
        return !$it->valid();
    }

    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;
    private $uid = false;
    private $gid = false;
    private $mode = false;
    private $chunk_read = false;

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

    /**
     * @return int|string
     */
    public function getSha256file()
    {
        return hash_file('sha256', $this->filename);
    }

    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) {
            return $this->is_binary;
        }
        if ($this->content == '') {
            $header = @file_get_contents($this->filename, false, null, 0, 4);
        } else {
            $header = substr($this->content, 0, 4);
        }
        $this->is_binary = ($header === chr(127) . 'ELF');
        unset($header);
        return $this->is_binary;
    }

    /**
     * @return false|mixed|string
     */
    public function getContent()
    {
        if ($this->content == '') {
            $this->content = @file_get_contents($this->filename);
            $this->chunk_read = false;
        }
        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);
            $this->chunk_read = true;
        }
        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'];
        $this->uid = $info['uid'];
        $this->gid = $info['gid'];
        $this->mode = sprintf("0%o", 0777 & $info['mode']);
    }

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

    /**
     * @return int|mixed
     */
    public function isPartiallyRead()
    {
        return $this->chunk_read;
    }

    /**
     * @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->hashtable === null && $this->sha256 === 0 && $this->content === '' ) {
            $this->sha256 = $this->getSha256file();
        }
        if ($this->sha256 == 0) {
            $this->sha256 = hash('sha256', $this->getContent());
        }
        return $this->sha256;
    }

    /**
     * @return int|mixed
     */
    public function getUid()
    {
        if ($this->uid === false) {
            $this->_setStat();
        }
        return $this->uid;
    }

    /**
     * @return int|mixed
     */
    public function getGid()
    {
        if ($this->gid === false) {
            $this->_setStat();
        }
        return $this->gid;
    }

    /**
     * @return int|mixed
     */
    public function getMode()
    {
        if ($this->mode === false) {
            $this->_setStat();
        }
        return $this->mode;
    }
}



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 $big_files              = [];
    private $big_elf_files          = [];

    private $collect_skipped        = false;
    private $collect_symLinks       = false;
    private $collect_doorways       = false;
    private $collect_bigfiles       = false;
    private $collect_bigelffiles    = false;

    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)) {
            if ($this->collect_skipped) {
                $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)) {

                if ($this->collect_symLinks) {
                    $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 ($this->collect_doorways && $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 ($this->collect_doorways && 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;
                }
                if ($this->collect_bigfiles && is_callable([$this->filter, 'checkIsBig']) && $this->filter->checkIsBig($real_path)) {
                    $this->big_files[] = $real_path;
                }
                if ($this->collect_bigelffiles
                    && is_callable([$this->filter, 'checkIsBig']) && $this->filter->checkIsBig($real_path)
                    && is_callable([$this->filter, 'checkIsElf']) && $this->filter->checkIsElf($real_path)
                ) {
                    $this->big_elf_files[] = $real_path;
                }
                $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 {
                if ($this->collect_bigfiles && is_callable([$this->filter, 'checkIsBig']) && $this->filter->checkIsBig($path)) {
                    $this->big_files[] = $path;
                    if ($this->collect_bigelffiles && is_callable([$this->filter, 'checkIsElf']) && $this->filter->checkIsElf($path)) {
                        $this->big_elf_files[] = $path;
                    }
                }
                $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);
        }

        if (is_callable([$this->filter, 'getGenerated']) && !$this->filter->getGenerated()
            && is_callable([$this->filter, 'generateCheckers'])
        ) {
            $this->filter->generateCheckers();
        }

        # We shouldn't use iglob for list of paths,
        # cause they cannot contain * or regexp
        # but can contain invalid sequence e.g. [9-0]
        $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 getBigFiles()
    {
        return $this->big_files;
    }

    public function getBigElfFiles()
    {
        return $this->big_elf_files;
    }

    public function setCollectDoorways($flag)
    {
        $this->collect_doorways = $flag;
    }

    public function setCollectBigElfs($flag)
    {
        $this->collect_bigelffiles = $flag;
    }

    public function setCollectSymlinks($flag)
    {
        $this->collect_symLinks = $flag;
    }

    public function setCollectSkipped($flag)
    {
        $this->collect_skipped = $flag;
    }

    public function setCollectBigFiles($flag)
    {
        $this->collect_bigfiles = $flag;
    }

    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;
    }

    public function getFilter()
    {
        return $this->filter;
    }
}

class FileFilter
{
    const IMUNIFY_CLEANUP_STORAGE = '/var/imunify360/cleanup_storage';
    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 $check_size_range;

    private $skipRootOwner          = false;
    private $skipSystemOwner        = false;
    private $skipImunifyStorage     = false;
    private $followSymlink          = false;
    private $ignoreQuarantine       = false;
    private $scanAllExt             = false;
    private $smartScan              = false;
    private $imunify_filters        = false;
    private $ignorePathPattern      = true;
    private $defaultExcludes        = true;

    private $ignored_av_admin_paths = false;
    private $generated              = false;
    private $size_range             = [];
    private $uid_range              = [];

    private $ignored_av_admin                   = null;
    private $ignored_av_admin_file_exists       = null;
    private $ignored_av_internal                = null;
    private $ignored_av_internal_file_exists    = null;
    private $admin_watched                      = null;

    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_avadmin_paths_file = '/etc/sysconfig/imunify360/malware-filters-admin-conf/processed/ignored/av-admin-paths.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 getIgnoredAVAdminFileExists()
    {
        if (is_null($this->ignored_av_admin_file_exists)) {
            $this->ignored_av_admin_file_exists = file_exists($this->ignored_av_admin_file) && is_readable($this->ignored_av_admin_file);
        }
        return $this->ignored_av_admin_file_exists;
    }

    private function getIgnoredAVInternalFileExists() 
    {
        if (is_null($this->ignored_av_internal_file_exists)) {
            $this->ignored_av_internal_file_exists = file_exists($this->ignored_av_internal_file) && is_readable($this->ignored_av_internal_file);
        }
        return $this->ignored_av_internal_file_exists;
    }

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

    private function addToIgnoreTree($path)
    {
        $tree = $this->getTree($path, true);
        $_path = &$this->ignored_av_admin_paths;
        for ($i = count($tree) - 1; $i >= 0; $i--) {
            if ($tree[$i] === '') {
                continue;
            }
            if (!isset($_path[$tree[$i]])) {
                $_path[$tree[$i]] = null;
            }
            if ($path[$tree[$i]] === true) {
                return;
            }
            if ($i === 0) {
                $_path[$tree[$i]] = true;
            }
            $_path = &$_path[$tree[$i]];
        }
    }

    private function checkAVAdminPathsIgnored($path)
    {
        if ($this->ignored_av_admin_paths === false) {
            return false;
        }
        $tree = $this->getTree($path, true);
        $_path = &$this->ignored_av_admin_paths;
        for ($i = count($tree) - 1; $i >= 0; $i--) {
            if ($tree[$i] === '') {
                continue;
            }
            if (!isset($_path[$tree[$i]])) {
                return false;
            }
            if ($_path[$tree[$i]] === true) {
                return true;
            }
            $_path = &$_path[$tree[$i]];
        }
        return false;
    }

    private function loadIgnoredAVAdminPaths()
    {
        $file = new SplFileObject($this->ignored_avadmin_paths_file, 'r');
        $file->setFlags(SplFileObject::DROP_NEW_LINE | SplFileObject::SKIP_EMPTY | SplFileObject::READ_AHEAD);
        foreach ($file as $path) {
            if ($path) {
                $this->addToIgnoreTree(base64_decode($path));
            }
        }
    }

    private function getIgnoredAVInternal()
    {
        if (!$this->getIgnoredAVInternalFileExists()) {
            return null;
        }
        if (is_null($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 (is_null($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()
    {
        if ($this->getIgnoredAVAdminFileExists() || $this->getIgnoredAVInternalFileExists()) {
            $this->imunify_filters = true;
        }
    }

    public function setSkipImunifyStorage()
    {
        $this->skipImunifyStorage = true;
        $this->addToExcludes(self::IMUNIFY_CLEANUP_STORAGE);
    }

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

    public function setSizeRange($min, $max)
    {
        $this->size_range[0] = $min;
        $this->size_range[1] = $max;
    }

    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 getIgnoreExt()
    {
        return 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) {
            if (!$this->skipSystemOwner) {
                return true;
            }
            $stat = stat($file);
            return ($stat['uid'] >= $this->uid_range[0] && $stat['uid'] <= $this->uid_range[1]);
        };

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

        $this->check_size_range = function ($file) {
            $filesize = filesize($file);
            return ($filesize >= $this->size_range[0] && $filesize <= $this->size_range[1]);
        };

        $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) {
            $av_admin_regexps = $this->getIgnoredAVAdmin();
            if (!is_null($av_admin_regexps) && preg_match('~' . $av_admin_regexps . '~msi', $file) 
                    || $this->checkAVAdminPathsIgnored($file)
            ) {
                return false;
            }

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

        $this->file_checkers[] = $this->check_is_file;
        $this->file_checkers[] = $this->check_size_range;
        $this->file_checkers[] = $this->check_ext;
        $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 addToExcludes($path)
    {
        $this->excludes[$path] = '';
    }

    public function setExcludes($paths)
    {
        $this->excludes = array_flip($paths);
    }

    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 setUidRange($min_max_uid)
    {
        if (is_array($min_max_uid)) {
            $this->uid_range = $min_max_uid;
        }
    }

    public function setSkipSystemOwner($value)
    {
        $this->skipSystemOwner = $value;
    }

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

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


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

    public function setIgnorePathPattern($value)
    {
        $this->ignorePathPattern = $value;
    }

    public function setDefaultExcludes($value)
    {
        $this->defaultExcludes = $value;
    }

    public function generateCheckers()
    {
        $file_checkers = $this->file_checkers;
        if ($this->defaultExcludes) {
            $this->excludes = array_merge(array_flip(self::IMUNIFY_DIRS), $this->excludes);
        }
        if (!empty($this->excludes)) {
            $file_checkers[] = $this->ignore_excludes;
            $dir_checkers[] = $this->ignore_excludes;
        }
        if ($this->ignorePathPattern) {
            $file_checkers[] = $this->ignore_path_pattern;
        }
        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 && !empty($this->uid_range)) {
            $file_checkers[] = $this->check_is_not_system;
        }

        $dir_checkers = $this->dir_checkers;

        if ($this->ignorePathPattern) {
            $dir_checkers[] = $this->ignore_path_pattern;
        }

        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);
        }

        if ($this->imunify_filters && file_exists($this->ignored_avadmin_paths_file)) {
            $this->loadIgnoredAVAdminPaths();
        }

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

    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, $basename = false)
    {
        $tree = [];
        $path = $file;
        $tree[] = $basename ? basename($file) : $file;
        while ($path !== '.' && $path !== '/' && $path !== '') {
            $path = dirname($path, 1);
            $tree[] = $basename ? basename($path) : $path;
        }
        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);
    }

    public function checkIsBig($path)
    {
        $filesize = filesize($path);
        return ($filesize > $this->size_range[1]);
    }

    public function checkIsElf($path)
    {
        $header = @file_get_contents($path, false, null, 0, 4);
        return ($header === chr(127) . 'ELF');
    }

    public function checkNotSystem($path)
    {
        return $this->check_is_not_system->call($this, $path);
    }

    public function getGenerated()
    {
        return $this->generated;
    }
    
}


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

    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;
        $this->critical_fs = Factory::instance()->create(CriticalFileSpecification::class);
    }

    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, $filters = 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;
                    $this->vars->foundTotalFiles--;
                    continue;
                }

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

                if ($filters instanceof FileFilter) {
                    if (!$filters->needToScan($filepath)) {
                        $this->vars->foundTotalFiles--;
                        continue;
                    }
                }

                $stat = stat($filepath);
                $filesize = $stat['size'];

                if (isset($this->vars->users)) {
                    $this->vars->users->add($stat['uid']);
                }

                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();
                $this->vars->rescanRxGood += $scanner->getRescanRxGoodCount();
            } else {
                $scan_bufer_files = function ($files_list, &$i) use ($callback) {
                    $this->vars->hashtable = new HashTable();
                    $files_to_scan = $this->CloudAssitedFilter($files_list);
                    $this->vars->files_and_ignored += count($files_list) - count($files_to_scan);
                    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 = [RapidScanStorageRecord::RX_GOOD, '', ''];
        $g_SkipNextCheck = false;

        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;

        $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  = '';

        $check_heuristics = defined('USE_HEURISTICS') || defined('USE_HEURISTICS_SUSPICIOUS') || defined('USE_HEURISTICS_IGNORE');

        if ($check_heuristics && $file->isBinary()) {
            if (defined('USE_HEURISTICS_IGNORE')) {
                unset($file);
                $vars->fileinfo = null;
                return null;
            }
            
            $this->AddResult($file, $i, $vars);

            $heur_sig = 'SMW-HEUR-ELF';
            
            if (defined('USE_HEURISTICS')) {
                $vars->criticalPHP[]            = $i;
                $vars->criticalPHPFragment[]    = $heur_sig;
                $vars->criticalPHPSig[]         = $heur_sig;
            }
            elseif (defined('USE_HEURISTICS_SUSPICIOUS')) {
                $vars->warningPHP[]         = $i;
                $vars->warningPHPFragment[] = $heur_sig;
                $vars->warningPHPSig[]      = $heur_sig;
            }

            $return = [RapidScanStorageRecord::HEURISTIC, $heur_sig, $heur_sig];
            unset($file);
            $vars->fileinfo = null;
            return $return;
        }

        // FILE
        $is_too_big     = $this->isFileTooBigForScanWithSignatures($file->getSize());
        $l_TSStartScan  = microtime(true);
        if (!MAX_SIZE_SCAN_BYTES && $is_too_big) {

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

        } else {
            $vars->totalFiles++;
            $file_type = filetype($l_Filename);
            $l_Unwrapped = '';
            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 = [RapidScanStorageRecord::CONFLICT, 'notread',''];
                $this->AddResult('[io] ' . $l_Filename, $i, $vars);
                unset($file);
                $vars->fileinfo = null;
                return $return;
            }

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

            $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 = [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) {
                $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($critical_params[$type])) {
                    return $this->satisfiedBySmartScan($this->critical_fs, $l_Ext, $content, $critical_params[$type][0], $critical_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 = [RapidScanStorageRecord::RX_MALWARE, $l_SigId, $this->getFragment($content, $l_Pos)];
                }

                if ($checker == 'WarningPHP' || $checker == 'Phishing') {
                    $return = [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;
                }

                if (!AI_HOSTER && $this->suspicious) {
                    $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['u'][$i]   = $file->getUid();
        $vars->structure['g'][$i]   = $file->getGid();
        $vars->structure['p'][$i]   = $file->getMode();
        $vars->structure['e'][$i]   = time();
        $vars->structure['crc'][$i] = $file->isBinary() ? $file->getSha1file() : $file->getHash();
        $vars->structure['sha256'][$i] = $file->getSha256();
    }

    public function prepareBigFilesToCriticalList($list, &$vars)
    {
        $base = count($vars->structure['n']);
        foreach ($list as $i => $fn) {
            $l_Ext = strtolower(pathinfo($fn, PATHINFO_EXTENSION));
            if ($this->critical_fs->satisfiedBy($l_Ext, 'extensions')) {
                $file = new FileInfo($fn, $base + $i);
                $vars->criticalPHP[]         = $file->getIndex();
                $vars->criticalPHPFragment[] = "BIG FILE. SKIPPED.";
                $vars->criticalPHPSig[]      = "big_1";
                $this->AddResult($file, $file->getIndex(), $vars);
            }
        }
    }

    public function prepareBigElfFilesToCriticalSusList($list, &$vars)
    {
        $base = count($vars->structure['n']);
        foreach ($list as $i => $fn) {
            $file = new FileInfo($fn, $base + $i);
            $heur_sig = 'SMW-HEUR-ELF';
            if (defined('USE_HEURISTICS')) {
                $vars->criticalPHP[]            = $file->getIndex();
                $vars->criticalPHPFragment[]    = $heur_sig;
                $vars->criticalPHPSig[]         = $heur_sig;
            }
            elseif (defined('USE_HEURISTICS_SUSPICIOUS')) {
                $vars->warningPHP[]         = $file->getIndex();
                $vars->warningPHPFragment[] = $heur_sig;
                $vars->warningPHPSig[]      = $heur_sig;
            }
            $this->AddResult($file, $file->getIndex(), $vars);
        }
    }

    private function satisfiedBySmartScan($fs, $ext, $content, $ext_table, $content_table)
    {
        $need_scan = $fs->satisfiedBy($ext, $ext_table) || $fs->satisfiedByContent($content, $content_table);
        if (!$need_scan && DEBUG_MODE) {
            echo "Skipped file, not critical.\n";
        }
        return $need_scan;
    }

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

    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 = [];

        $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_Res = ($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 = [
            'criticalPHP',
            'criticalJS',
            'phishing',
            'adwareList',
            'warningPHP'
        ];

        foreach ($keys as $p) {
            if (empty($this->vars->{$p})) {
                continue;
            }
            $p_Fragment = $p . 'Fragment';
            $p_Sig      = $p . 'Sig';

            if ($p == '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 [$snum, $i];
    }

    public function check_whitelist($list, &$snum)
    {
        if (empty($list)) {
            return [];
        }

        $avdb = '';
        $file = __DIR__ . '/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 [];
        }

        $snum = $db->count();
        stdOut("\nLoaded " . ceil($snum) . " known files from " . $file . "\n");

        return $db->find($list);
    }

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

    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)
    {
        $smart_skipped = false;
        $flag = false;
        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))) {
                    $smart_skipped = true;
                    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;
            }
        }
        if (!$flag && $smart_skipped) {
            $return = [RapidScanStorageRecord::RX_SKIPPED_SMART, '', ''];
        }
        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_domain)
    {
        if (!isset($own_domain)) {
            return false;
        }
        return (bool)preg_match('~^(http(s)?:)?//(www\.)?' . preg_quote($own_domain) . '~msi', $url);
    }

    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 UserList
{
    private $users = [];

    public function add($uid)
    {
        $this->users[$uid] = '';
    }

    public function getList()
    {
        ksort($this->users);
        return array_keys($this->users);
    }

    public function setList($list)
    {
        $this->users = $list;
    }
}

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 = [];

        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(['\\', "\n", "\r"], ['\\\\', '\\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 [];
    }

    public function stream_eof()
    {
        return $this->_position >= strlen(self::$_content);
    }

    public function stream_set_option($option , $arg1, $arg2 )
    {
        return true;
    }
}

class Normalization
{
    const MAX_ITERATION = 10;

    private static $confusables = "YToxNTY1OntzOjM6IuKAqCI7czoxOiIgIjtzOjM6IuKAqSI7czoxOiIgIjtzOjM6IuGagCI7czoxOiIgIjtzOjM6IuKAgCI7czoxOiIgIjtzOjM6IuKAgSI7czoxOiIgIjtzOjM6IuKAgiI7czoxOiIgIjtzOjM6IuKAgyI7czoxOiIgIjtzOjM6IuKAhCI7czoxOiIgIjtzOjM6IuKAhSI7czoxOiIgIjtzOjM6IuKAhiI7czoxOiIgIjtzOjM6IuKAiCI7czoxOiIgIjtzOjM6IuKAiSI7czoxOiIgIjtzOjM6IuKAiiI7czoxOiIgIjtzOjM6IuKBnyI7czoxOiIgIjtzOjI6IsKgIjtzOjE6IiAiO3M6Mzoi4oCHIjtzOjE6IiAiO3M6Mzoi4oCvIjtzOjE6IiAiO3M6Mjoiw4IiO3M6MToiICI7czoyOiLfuiI7czoxOiJfIjtzOjM6Iu+5jSI7czoxOiJfIjtzOjM6Iu+5jiI7czoxOiJfIjtzOjM6Iu+5jyI7czoxOiJfIjtzOjM6IuKAkCI7czoxOiItIjtzOjM6IuKAkSI7czoxOiItIjtzOjM6IuKAkiI7czoxOiItIjtzOjM6IuKAkyI7czoxOiItIjtzOjM6Iu+5mCI7czoxOiItIjtzOjI6ItuUIjtzOjE6Ii0iO3M6Mzoi4oGDIjtzOjE6Ii0iO3M6Mjoiy5ciO3M6MToiLSI7czozOiLiiJIiO3M6MToiLSI7czozOiLinpYiO3M6MToiLSI7czozOiLisroiO3M6MToiLSI7czoyOiLYjSI7czoxOiIsIjtzOjI6ItmrIjtzOjE6IiwiO3M6Mzoi4oCaIjtzOjE6IiwiO3M6MjoiwrgiO3M6MToiLCI7czozOiLqk7kiO3M6MToiLCI7czoyOiLNviI7czoxOiI7IjtzOjM6IuCkgyI7czoxOiI6IjtzOjM6IuCqgyI7czoxOiI6IjtzOjM6Iu+8miI7czoxOiI6IjtzOjI6ItaJIjtzOjE6IjoiO3M6Mjoi3IMiO3M6MToiOiI7czoyOiLchCI7czoxOiI6IjtzOjM6IuGbrCI7czoxOiI6IjtzOjM6Iu+4sCI7czoxOiI6IjtzOjM6IuGggyI7czoxOiI6IjtzOjM6IuGgiSI7czoxOiI6IjtzOjM6IuKBmiI7czoxOiI6IjtzOjI6IteDIjtzOjE6IjoiO3M6Mjoiy7giO3M6MToiOiI7czozOiLqnokiO3M6MToiOiI7czozOiLiiLYiO3M6MToiOiI7czoyOiLLkCI7czoxOiI6IjtzOjM6IuqTvSI7czoxOiI6IjtzOjM6Iu+8gSI7czoxOiIhIjtzOjI6IseDIjtzOjE6IiEiO3M6Mzoi4rWRIjtzOjE6IiEiO3M6MjoiypQiO3M6MToiPyI7czoyOiLJgSI7czoxOiI/IjtzOjM6IuClvSI7czoxOiI/IjtzOjM6IuGOriI7czoxOiI/IjtzOjM6IuqbqyI7czoxOiI/IjtzOjQ6IvCdha0iO3M6MToiLiI7czozOiLigKQiO3M6MToiLiI7czoyOiLcgSI7czoxOiIuIjtzOjI6ItyCIjtzOjE6Ii4iO3M6Mzoi6piOIjtzOjE6Ii4iO3M6NDoi8JCpkCI7czoxOiIuIjtzOjI6ItmgIjtzOjE6Ii4iO3M6Mjoi27AiO3M6MToiLiI7czozOiLqk7giO3M6MToiLiI7czozOiLjg7siO3M6MToityI7czozOiLvvaUiO3M6MToityI7czozOiLhm6siO3M6MToityI7czoyOiLOhyI7czoxOiK3IjtzOjM6IuK4sSI7czoxOiK3IjtzOjQ6IvCQhIEiO3M6MToityI7czozOiLigKIiO3M6MToityI7czozOiLigKciO3M6MToityI7czozOiLiiJkiO3M6MToityI7czozOiLii4UiO3M6MToityI7czozOiLqno8iO3M6MToityI7czozOiLhkKciO3M6MToityI7czoyOiLVnSI7czoxOiInIjtzOjM6Iu+8hyI7czoxOiInIjtzOjM6IuKAmCI7czoxOiInIjtzOjM6IuKAmSI7czoxOiInIjtzOjM6IuKAmyI7czoxOiInIjtzOjM6IuKAsiI7czoxOiInIjtzOjM6IuKAtSI7czoxOiInIjtzOjI6ItWaIjtzOjE6IiciO3M6Mjoi17MiO3M6MToiJyI7czoxOiJgIjtzOjE6IiciO3M6Mzoi4b+vIjtzOjE6IiciO3M6Mzoi772AIjtzOjE6IiciO3M6MjoiwrQiO3M6MToiJyI7czoyOiLOhCI7czoxOiInIjtzOjM6IuG/vSI7czoxOiInIjtzOjM6IuG+vSI7czoxOiInIjtzOjM6IuG+vyI7czoxOiInIjtzOjM6IuG/viI7czoxOiInIjtzOjI6Isq5IjtzOjE6IiciO3M6MjoizbQiO3M6MToiJyI7czoyOiLLiCI7czoxOiInIjtzOjI6IsuKIjtzOjE6IiciO3M6Mjoiy4siO3M6MToiJyI7czoyOiLLtCI7czoxOiInIjtzOjI6Isq7IjtzOjE6IiciO3M6Mjoiyr0iO3M6MToiJyI7czoyOiLKvCI7czoxOiInIjtzOjI6Isq+IjtzOjE6IiciO3M6Mzoi6p6MIjtzOjE6IiciO3M6Mjoi15kiO3M6MToiJyI7czoyOiLftCI7czoxOiInIjtzOjI6It+1IjtzOjE6IiciO3M6Mzoi4ZGKIjtzOjE6IiciO3M6Mzoi4ZuMIjtzOjE6IiciO3M6NDoi8Ja9kSI7czoxOiInIjtzOjQ6IvCWvZIiO3M6MToiJyI7czozOiLvvLsiO3M6MToiKCI7czozOiLinagiO3M6MToiKCI7czozOiLinbIiO3M6MToiKCI7czozOiLjgJQiO3M6MToiKCI7czozOiLvtL4iO3M6MToiKCI7czozOiLvvL0iO3M6MToiKSI7czozOiLinakiO3M6MToiKSI7czozOiLinbMiO3M6MToiKSI7czozOiLjgJUiO3M6MToiKSI7czozOiLvtL8iO3M6MToiKSI7czozOiLinbQiO3M6MToieyI7czo0OiLwnYSUIjtzOjE6InsiO3M6Mzoi4p21IjtzOjE6In0iO3M6Mzoi4ri/IjtzOjE6IrYiO3M6Mzoi4oGOIjtzOjE6IioiO3M6Mjoi2a0iO3M6MToiKiI7czozOiLiiJciO3M6MToiKiI7czo0OiLwkIyfIjtzOjE6IioiO3M6Mzoi4Zy1IjtzOjE6Ii8iO3M6Mzoi4oGBIjtzOjE6Ii8iO3M6Mzoi4oiVIjtzOjE6Ii8iO3M6Mzoi4oGEIjtzOjE6Ii8iO3M6Mzoi4pWxIjtzOjE6Ii8iO3M6Mzoi4p+LIjtzOjE6Ii8iO3M6Mzoi4qe4IjtzOjE6Ii8iO3M6NDoi8J2IuiI7czoxOiIvIjtzOjM6IuOHkyI7czoxOiIvIjtzOjM6IuOAsyI7czoxOiIvIjtzOjM6IuKzhiI7czoxOiIvIjtzOjM6IuODjiI7czoxOiIvIjtzOjM6IuS4vyI7czoxOiIvIjtzOjM6IuK8gyI7czoxOiIvIjtzOjM6Iu+8vCI7czoxOiJcIjtzOjM6Iu+5qCI7czoxOiJcIjtzOjM6IuKIliI7czoxOiJcIjtzOjM6IuKfjSI7czoxOiJcIjtzOjM6IuKntSI7czoxOiJcIjtzOjM6IuKnuSI7czoxOiJcIjtzOjQ6IvCdiI8iO3M6MToiXCI7czo0OiLwnYi7IjtzOjE6IlwiO3M6Mzoi44eUIjtzOjE6IlwiO3M6Mzoi5Li2IjtzOjE6IlwiO3M6Mzoi4ryCIjtzOjE6IlwiO3M6Mzoi6p24IjtzOjE6IiYiO3M6Mjoiy4QiO3M6MToiXiI7czoyOiLLhiI7czoxOiJeIjtzOjM6IuK4sCI7czoxOiKwIjtzOjI6IsuaIjtzOjE6IrAiO3M6Mzoi4oiYIjtzOjE6IrAiO3M6Mzoi4peLIjtzOjE6IrAiO3M6Mzoi4pemIjtzOjE6IrAiO3M6Mzoi4pK4IjtzOjE6IqkiO3M6Mzoi4pOHIjtzOjE6Iq4iO3M6Mzoi4ZutIjtzOjE6IisiO3M6Mzoi4p6VIjtzOjE6IisiO3M6NDoi8JCKmyI7czoxOiIrIjtzOjM6IuKelyI7czoxOiL3IjtzOjM6IuKAuSI7czoxOiI8IjtzOjM6IuKdriI7czoxOiI8IjtzOjI6IsuCIjtzOjE6IjwiO3M6NDoi8J2ItiI7czoxOiI8IjtzOjM6IuGQuCI7czoxOiI8IjtzOjM6IuGasiI7czoxOiI8IjtzOjM6IuGQgCI7czoxOiI9IjtzOjM6IuK5gCI7czoxOiI9IjtzOjM6IuOCoCI7czoxOiI9IjtzOjM6IuqTvyI7czoxOiI9IjtzOjM6IuKAuiI7czoxOiI+IjtzOjM6IuKdryI7czoxOiI+IjtzOjI6IsuDIjtzOjE6Ij4iO3M6NDoi8J2ItyI7czoxOiI+IjtzOjM6IuGQsyI7czoxOiI+IjtzOjQ6IvCWvL8iO3M6MToiPiI7czozOiLigZMiO3M6MToifiI7czoyOiLLnCI7czoxOiJ+IjtzOjM6IuG/gCI7czoxOiJ+IjtzOjM6IuKIvCI7czoxOiJ+IjtzOjM6IuKCpCI7czoxOiKjIjtzOjQ6IvCdn5AiO3M6MToiMiI7czo0OiLwnZ+aIjtzOjE6IjIiO3M6NDoi8J2fpCI7czoxOiIyIjtzOjQ6IvCdn64iO3M6MToiMiI7czo0OiLwnZ+4IjtzOjE6IjIiO3M6Mzoi6p2aIjtzOjE6IjIiO3M6MjoixqciO3M6MToiMiI7czoyOiLPqCI7czoxOiIyIjtzOjM6IuqZhCI7czoxOiIyIjtzOjM6IuGSvyI7czoxOiIyIjtzOjM6IuqbryI7czoxOiIyIjtzOjQ6IvCdiIYiO3M6MToiMyI7czo0OiLwnZ+RIjtzOjE6IjMiO3M6NDoi8J2fmyI7czoxOiIzIjtzOjQ6IvCdn6UiO3M6MToiMyI7czo0OiLwnZ+vIjtzOjE6IjMiO3M6NDoi8J2fuSI7czoxOiIzIjtzOjM6IuqeqyI7czoxOiIzIjtzOjI6IsicIjtzOjE6IjMiO3M6MjoixrciO3M6MToiMyI7czozOiLqnaoiO3M6MToiMyI7czozOiLis4wiO3M6MToiMyI7czoyOiLQlyI7czoxOiIzIjtzOjI6ItOgIjtzOjE6IjMiO3M6NDoi8Ja8uyI7czoxOiIzIjtzOjQ6IvCRo4oiO3M6MToiMyI7czo0OiLwnZ+SIjtzOjE6IjQiO3M6NDoi8J2fnCI7czoxOiI0IjtzOjQ6IvCdn6YiO3M6MToiNCI7czo0OiLwnZ+wIjtzOjE6IjQiO3M6NDoi8J2fuiI7czoxOiI0IjtzOjM6IuGPjiI7czoxOiI0IjtzOjQ6IvCRoq8iO3M6MToiNCI7czo0OiLwnZ+TIjtzOjE6IjUiO3M6NDoi8J2fnSI7czoxOiI1IjtzOjQ6IvCdn6ciO3M6MToiNSI7czo0OiLwnZ+xIjtzOjE6IjUiO3M6NDoi8J2fuyI7czoxOiI1IjtzOjI6Isa8IjtzOjE6IjUiO3M6NDoi8JGiuyI7czoxOiI1IjtzOjQ6IvCdn5QiO3M6MToiNiI7czo0OiLwnZ+eIjtzOjE6IjYiO3M6NDoi8J2fqCI7czoxOiI2IjtzOjQ6IvCdn7IiO3M6MToiNiI7czo0OiLwnZ+8IjtzOjE6IjYiO3M6Mzoi4rOSIjtzOjE6IjYiO3M6Mjoi0LEiO3M6MToiNiI7czozOiLhj64iO3M6MToiNiI7czo0OiLwkaOVIjtzOjE6IjYiO3M6NDoi8J2IkiI7czoxOiI3IjtzOjQ6IvCdn5UiO3M6MToiNyI7czo0OiLwnZ+fIjtzOjE6IjciO3M6NDoi8J2fqSI7czoxOiI3IjtzOjQ6IvCdn7MiO3M6MToiNyI7czo0OiLwnZ+9IjtzOjE6IjciO3M6NDoi8JCTkiI7czoxOiI3IjtzOjQ6IvCRo4YiO3M6MToiNyI7czozOiLgrIMiO3M6MToiOCI7czozOiLgp6oiO3M6MToiOCI7czozOiLgqaoiO3M6MToiOCI7czo0OiLwnqOLIjtzOjE6IjgiO3M6NDoi8J2fliI7czoxOiI4IjtzOjQ6IvCdn6AiO3M6MToiOCI7czo0OiLwnZ+qIjtzOjE6IjgiO3M6NDoi8J2ftCI7czoxOiI4IjtzOjQ6IvCdn74iO3M6MToiOCI7czoyOiLIoyI7czoxOiI4IjtzOjI6IsiiIjtzOjE6IjgiO3M6NDoi8JCMmiI7czoxOiI4IjtzOjM6IuCppyI7czoxOiI5IjtzOjM6IuCtqCI7czoxOiI5IjtzOjM6IuCnrSI7czoxOiI5IjtzOjM6IuC1rSI7czoxOiI5IjtzOjQ6IvCdn5ciO3M6MToiOSI7czo0OiLwnZ+hIjtzOjE6IjkiO3M6NDoi8J2fqyI7czoxOiI5IjtzOjQ6IvCdn7UiO3M6MToiOSI7czo0OiLwnZ+/IjtzOjE6IjkiO3M6Mzoi6p2uIjtzOjE6IjkiO3M6Mzoi4rOKIjtzOjE6IjkiO3M6NDoi8JGjjCI7czoxOiI5IjtzOjQ6IvCRoqwiO3M6MToiOSI7czo0OiLwkaOWIjtzOjE6IjkiO3M6Mzoi4o26IjtzOjE6ImEiO3M6Mzoi772BIjtzOjE6ImEiO3M6NDoi8J2QmiI7czoxOiJhIjtzOjQ6IvCdkY4iO3M6MToiYSI7czo0OiLwnZKCIjtzOjE6ImEiO3M6NDoi8J2StiI7czoxOiJhIjtzOjQ6IvCdk6oiO3M6MToiYSI7czo0OiLwnZSeIjtzOjE6ImEiO3M6NDoi8J2VkiI7czoxOiJhIjtzOjQ6IvCdloYiO3M6MToiYSI7czo0OiLwnZa6IjtzOjE6ImEiO3M6NDoi8J2XriI7czoxOiJhIjtzOjQ6IvCdmKIiO3M6MToiYSI7czo0OiLwnZmWIjtzOjE6ImEiO3M6NDoi8J2aiiI7czoxOiJhIjtzOjI6IsmRIjtzOjE6ImEiO3M6MjoizrEiO3M6MToiYSI7czo0OiLwnZuCIjtzOjE6ImEiO3M6NDoi8J2bvCI7czoxOiJhIjtzOjQ6IvCdnLYiO3M6MToiYSI7czo0OiLwnZ2wIjtzOjE6ImEiO3M6NDoi8J2eqiI7czoxOiJhIjtzOjI6ItCwIjtzOjE6ImEiO3M6Mzoi77yhIjtzOjE6IkEiO3M6NDoi8J2QgCI7czoxOiJBIjtzOjQ6IvCdkLQiO3M6MToiQSI7czo0OiLwnZGoIjtzOjE6IkEiO3M6NDoi8J2SnCI7czoxOiJBIjtzOjQ6IvCdk5AiO3M6MToiQSI7czo0OiLwnZSEIjtzOjE6IkEiO3M6NDoi8J2UuCI7czoxOiJBIjtzOjQ6IvCdlawiO3M6MToiQSI7czo0OiLwnZagIjtzOjE6IkEiO3M6NDoi8J2XlCI7czoxOiJBIjtzOjQ6IvCdmIgiO3M6MToiQSI7czo0OiLwnZi8IjtzOjE6IkEiO3M6NDoi8J2ZsCI7czoxOiJBIjtzOjI6Is6RIjtzOjE6IkEiO3M6NDoi8J2aqCI7czoxOiJBIjtzOjQ6IvCdm6IiO3M6MToiQSI7czo0OiLwnZycIjtzOjE6IkEiO3M6NDoi8J2dliI7czoxOiJBIjtzOjQ6IvCdnpAiO3M6MToiQSI7czoyOiLQkCI7czoxOiJBIjtzOjM6IuGOqiI7czoxOiJBIjtzOjM6IuGXhSI7czoxOiJBIjtzOjM6IuqTriI7czoxOiJBIjtzOjQ6IvCWvYAiO3M6MToiQSI7czo0OiLwkIqgIjtzOjE6IkEiO3M6MjoiyKciO3M6MToi5SI7czoyOiLIpiI7czoxOiLFIjtzOjQ6IvCdkJsiO3M6MToiYiI7czo0OiLwnZGPIjtzOjE6ImIiO3M6NDoi8J2SgyI7czoxOiJiIjtzOjQ6IvCdkrciO3M6MToiYiI7czo0OiLwnZOrIjtzOjE6ImIiO3M6NDoi8J2UnyI7czoxOiJiIjtzOjQ6IvCdlZMiO3M6MToiYiI7czo0OiLwnZaHIjtzOjE6ImIiO3M6NDoi8J2WuyI7czoxOiJiIjtzOjQ6IvCdl68iO3M6MToiYiI7czo0OiLwnZijIjtzOjE6ImIiO3M6NDoi8J2ZlyI7czoxOiJiIjtzOjQ6IvCdmosiO3M6MToiYiI7czoyOiLGhCI7czoxOiJiIjtzOjI6ItCsIjtzOjE6ImIiO3M6Mzoi4Y+PIjtzOjE6ImIiO3M6Mzoi4ZGyIjtzOjE6ImIiO3M6Mzoi4ZavIjtzOjE6ImIiO3M6Mzoi77yiIjtzOjE6IkIiO3M6Mzoi4oSsIjtzOjE6IkIiO3M6NDoi8J2QgSI7czoxOiJCIjtzOjQ6IvCdkLUiO3M6MToiQiI7czo0OiLwnZGpIjtzOjE6IkIiO3M6NDoi8J2TkSI7czoxOiJCIjtzOjQ6IvCdlIUiO3M6MToiQiI7czo0OiLwnZS5IjtzOjE6IkIiO3M6NDoi8J2VrSI7czoxOiJCIjtzOjQ6IvCdlqEiO3M6MToiQiI7czo0OiLwnZeVIjtzOjE6IkIiO3M6NDoi8J2YiSI7czoxOiJCIjtzOjQ6IvCdmL0iO3M6MToiQiI7czo0OiLwnZmxIjtzOjE6IkIiO3M6Mzoi6p60IjtzOjE6IkIiO3M6MjoizpIiO3M6MToiQiI7czo0OiLwnZqpIjtzOjE6IkIiO3M6NDoi8J2boyI7czoxOiJCIjtzOjQ6IvCdnJ0iO3M6MToiQiI7czo0OiLwnZ2XIjtzOjE6IkIiO3M6NDoi8J2ekSI7czoxOiJCIjtzOjI6ItCSIjtzOjE6IkIiO3M6Mzoi4Y+0IjtzOjE6IkIiO3M6Mzoi4Ze3IjtzOjE6IkIiO3M6Mzoi6pOQIjtzOjE6IkIiO3M6NDoi8JCKgiI7czoxOiJCIjtzOjQ6IvCQiqEiO3M6MToiQiI7czo0OiLwkIyBIjtzOjE6IkIiO3M6Mzoi772DIjtzOjE6ImMiO3M6Mzoi4oW9IjtzOjE6ImMiO3M6NDoi8J2QnCI7czoxOiJjIjtzOjQ6IvCdkZAiO3M6MToiYyI7czo0OiLwnZKEIjtzOjE6ImMiO3M6NDoi8J2SuCI7czoxOiJjIjtzOjQ6IvCdk6wiO3M6MToiYyI7czo0OiLwnZSgIjtzOjE6ImMiO3M6NDoi8J2VlCI7czoxOiJjIjtzOjQ6IvCdlogiO3M6MToiYyI7czo0OiLwnZa8IjtzOjE6ImMiO3M6NDoi8J2XsCI7czoxOiJjIjtzOjQ6IvCdmKQiO3M6MToiYyI7czo0OiLwnZmYIjtzOjE6ImMiO3M6NDoi8J2ajCI7czoxOiJjIjtzOjM6IuG0hCI7czoxOiJjIjtzOjI6Is+yIjtzOjE6ImMiO3M6Mzoi4rKlIjtzOjE6ImMiO3M6Mjoi0YEiO3M6MToiYyI7czozOiLqrq8iO3M6MToiYyI7czo0OiLwkJC9IjtzOjE6ImMiO3M6NDoi8J+djCI7czoxOiJDIjtzOjQ6IvCRo7IiO3M6MToiQyI7czo0OiLwkaOpIjtzOjE6IkMiO3M6Mzoi77yjIjtzOjE6IkMiO3M6Mzoi4oWtIjtzOjE6IkMiO3M6Mzoi4oSCIjtzOjE6IkMiO3M6Mzoi4oStIjtzOjE6IkMiO3M6NDoi8J2QgiI7czoxOiJDIjtzOjQ6IvCdkLYiO3M6MToiQyI7czo0OiLwnZGqIjtzOjE6IkMiO3M6NDoi8J2SniI7czoxOiJDIjtzOjQ6IvCdk5IiO3M6MToiQyI7czo0OiLwnZWuIjtzOjE6IkMiO3M6NDoi8J2WoiI7czoxOiJDIjtzOjQ6IvCdl5YiO3M6MToiQyI7czo0OiLwnZiKIjtzOjE6IkMiO3M6NDoi8J2YviI7czoxOiJDIjtzOjQ6IvCdmbIiO3M6MToiQyI7czoyOiLPuSI7czoxOiJDIjtzOjM6IuKypCI7czoxOiJDIjtzOjI6ItChIjtzOjE6IkMiO3M6Mzoi4Y+fIjtzOjE6IkMiO3M6Mzoi6pOaIjtzOjE6IkMiO3M6NDoi8JCKoiI7czoxOiJDIjtzOjQ6IvCQjIIiO3M6MToiQyI7czo0OiLwkJCVIjtzOjE6IkMiO3M6NDoi8JCUnCI7czoxOiJDIjtzOjM6IuKFviI7czoxOiJkIjtzOjM6IuKFhiI7czoxOiJkIjtzOjQ6IvCdkJ0iO3M6MToiZCI7czo0OiLwnZGRIjtzOjE6ImQiO3M6NDoi8J2ShSI7czoxOiJkIjtzOjQ6IvCdkrkiO3M6MToiZCI7czo0OiLwnZOtIjtzOjE6ImQiO3M6NDoi8J2UoSI7czoxOiJkIjtzOjQ6IvCdlZUiO3M6MToiZCI7czo0OiLwnZaJIjtzOjE6ImQiO3M6NDoi8J2WvSI7czoxOiJkIjtzOjQ6IvCdl7EiO3M6MToiZCI7czo0OiLwnZilIjtzOjE6ImQiO3M6NDoi8J2ZmSI7czoxOiJkIjtzOjQ6IvCdmo0iO3M6MToiZCI7czoyOiLUgSI7czoxOiJkIjtzOjM6IuGPpyI7czoxOiJkIjtzOjM6IuGRryI7czoxOiJkIjtzOjM6IuqTkiI7czoxOiJkIjtzOjM6IuKFriI7czoxOiJEIjtzOjM6IuKFhSI7czoxOiJEIjtzOjQ6IvCdkIMiO3M6MToiRCI7czo0OiLwnZC3IjtzOjE6IkQiO3M6NDoi8J2RqyI7czoxOiJEIjtzOjQ6IvCdkp8iO3M6MToiRCI7czo0OiLwnZOTIjtzOjE6IkQiO3M6NDoi8J2UhyI7czoxOiJEIjtzOjQ6IvCdlLsiO3M6MToiRCI7czo0OiLwnZWvIjtzOjE6IkQiO3M6NDoi8J2WoyI7czoxOiJEIjtzOjQ6IvCdl5ciO3M6MToiRCI7czo0OiLwnZiLIjtzOjE6IkQiO3M6NDoi8J2YvyI7czoxOiJEIjtzOjQ6IvCdmbMiO3M6MToiRCI7czozOiLhjqAiO3M6MToiRCI7czozOiLhl54iO3M6MToiRCI7czozOiLhl6oiO3M6MToiRCI7czozOiLqk5MiO3M6MToiRCI7czozOiLihK4iO3M6MToiZSI7czozOiLvvYUiO3M6MToiZSI7czozOiLihK8iO3M6MToiZSI7czozOiLihYciO3M6MToiZSI7czo0OiLwnZCeIjtzOjE6ImUiO3M6NDoi8J2RkiI7czoxOiJlIjtzOjQ6IvCdkoYiO3M6MToiZSI7czo0OiLwnZOuIjtzOjE6ImUiO3M6NDoi8J2UoiI7czoxOiJlIjtzOjQ6IvCdlZYiO3M6MToiZSI7czo0OiLwnZaKIjtzOjE6ImUiO3M6NDoi8J2WviI7czoxOiJlIjtzOjQ6IvCdl7IiO3M6MToiZSI7czo0OiLwnZimIjtzOjE6ImUiO3M6NDoi8J2ZmiI7czoxOiJlIjtzOjQ6IvCdmo4iO3M6MToiZSI7czozOiLqrLIiO3M6MToiZSI7czoyOiLQtSI7czoxOiJlIjtzOjI6ItK9IjtzOjE6ImUiO3M6Mjoiw6kiO3M6MToiZSI7czozOiLii78iO3M6MToiRSI7czozOiLvvKUiO3M6MToiRSI7czozOiLihLAiO3M6MToiRSI7czo0OiLwnZCEIjtzOjE6IkUiO3M6NDoi8J2QuCI7czoxOiJFIjtzOjQ6IvCdkawiO3M6MToiRSI7czo0OiLwnZOUIjtzOjE6IkUiO3M6NDoi8J2UiCI7czoxOiJFIjtzOjQ6IvCdlLwiO3M6MToiRSI7czo0OiLwnZWwIjtzOjE6IkUiO3M6NDoi8J2WpCI7czoxOiJFIjtzOjQ6IvCdl5giO3M6MToiRSI7czo0OiLwnZiMIjtzOjE6IkUiO3M6NDoi8J2ZgCI7czoxOiJFIjtzOjQ6IvCdmbQiO3M6MToiRSI7czoyOiLOlSI7czoxOiJFIjtzOjQ6IvCdmqwiO3M6MToiRSI7czo0OiLwnZumIjtzOjE6IkUiO3M6NDoi8J2coCI7czoxOiJFIjtzOjQ6IvCdnZoiO3M6MToiRSI7czo0OiLwnZ6UIjtzOjE6IkUiO3M6Mjoi0JUiO3M6MToiRSI7czozOiLitLkiO3M6MToiRSI7czozOiLhjqwiO3M6MToiRSI7czozOiLqk7AiO3M6MToiRSI7czo0OiLwkaKmIjtzOjE6IkUiO3M6NDoi8JGiriI7czoxOiJFIjtzOjQ6IvCQioYiO3M6MToiRSI7czo0OiLwnZCfIjtzOjE6ImYiO3M6NDoi8J2RkyI7czoxOiJmIjtzOjQ6IvCdkociO3M6MToiZiI7czo0OiLwnZK7IjtzOjE6ImYiO3M6NDoi8J2TryI7czoxOiJmIjtzOjQ6IvCdlKMiO3M6MToiZiI7czo0OiLwnZWXIjtzOjE6ImYiO3M6NDoi8J2WiyI7czoxOiJmIjtzOjQ6IvCdlr8iO3M6MToiZiI7czo0OiLwnZezIjtzOjE6ImYiO3M6NDoi8J2YpyI7czoxOiJmIjtzOjQ6IvCdmZsiO3M6MToiZiI7czo0OiLwnZqPIjtzOjE6ImYiO3M6Mzoi6qy1IjtzOjE6ImYiO3M6Mzoi6p6ZIjtzOjE6ImYiO3M6Mjoixb8iO3M6MToiZiI7czozOiLhup0iO3M6MToiZiI7czoyOiLWhCI7czoxOiJmIjtzOjQ6IvCdiJMiO3M6MToiRiI7czozOiLihLEiO3M6MToiRiI7czo0OiLwnZCFIjtzOjE6IkYiO3M6NDoi8J2QuSI7czoxOiJGIjtzOjQ6IvCdka0iO3M6MToiRiI7czo0OiLwnZOVIjtzOjE6IkYiO3M6NDoi8J2UiSI7czoxOiJGIjtzOjQ6IvCdlL0iO3M6MToiRiI7czo0OiLwnZWxIjtzOjE6IkYiO3M6NDoi8J2WpSI7czoxOiJGIjtzOjQ6IvCdl5kiO3M6MToiRiI7czo0OiLwnZiNIjtzOjE6IkYiO3M6NDoi8J2ZgSI7czoxOiJGIjtzOjQ6IvCdmbUiO3M6MToiRiI7czozOiLqnpgiO3M6MToiRiI7czoyOiLPnCI7czoxOiJGIjtzOjQ6IvCdn4oiO3M6MToiRiI7czozOiLhlrQiO3M6MToiRiI7czozOiLqk50iO3M6MToiRiI7czo0OiLwkaOCIjtzOjE6IkYiO3M6NDoi8JGioiI7czoxOiJGIjtzOjQ6IvCQiociO3M6MToiRiI7czo0OiLwkIqlIjtzOjE6IkYiO3M6NDoi8JCUpSI7czoxOiJGIjtzOjM6Iu+9hyI7czoxOiJnIjtzOjM6IuKEiiI7czoxOiJnIjtzOjQ6IvCdkKAiO3M6MToiZyI7czo0OiLwnZGUIjtzOjE6ImciO3M6NDoi8J2SiCI7czoxOiJnIjtzOjQ6IvCdk7AiO3M6MToiZyI7czo0OiLwnZSkIjtzOjE6ImciO3M6NDoi8J2VmCI7czoxOiJnIjtzOjQ6IvCdlowiO3M6MToiZyI7czo0OiLwnZeAIjtzOjE6ImciO3M6NDoi8J2XtCI7czoxOiJnIjtzOjQ6IvCdmKgiO3M6MToiZyI7czo0OiLwnZmcIjtzOjE6ImciO3M6NDoi8J2akCI7czoxOiJnIjtzOjI6IsmhIjtzOjE6ImciO3M6Mzoi4baDIjtzOjE6ImciO3M6Mjoixo0iO3M6MToiZyI7czoyOiLWgSI7czoxOiJnIjtzOjQ6IvCdkIYiO3M6MToiRyI7czo0OiLwnZC6IjtzOjE6IkciO3M6NDoi8J2RriI7czoxOiJHIjtzOjQ6IvCdkqIiO3M6MToiRyI7czo0OiLwnZOWIjtzOjE6IkciO3M6NDoi8J2UiiI7czoxOiJHIjtzOjQ6IvCdlL4iO3M6MToiRyI7czo0OiLwnZWyIjtzOjE6IkciO3M6NDoi8J2WpiI7czoxOiJHIjtzOjQ6IvCdl5oiO3M6MToiRyI7czo0OiLwnZiOIjtzOjE6IkciO3M6NDoi8J2ZgiI7czoxOiJHIjtzOjQ6IvCdmbYiO3M6MToiRyI7czoyOiLUjCI7czoxOiJHIjtzOjM6IuGPgCI7czoxOiJHIjtzOjM6IuGPsyI7czoxOiJHIjtzOjM6IuqTliI7czoxOiJHIjtzOjM6Iu+9iCI7czoxOiJoIjtzOjM6IuKEjiI7czoxOiJoIjtzOjQ6IvCdkKEiO3M6MToiaCI7czo0OiLwnZKJIjtzOjE6ImgiO3M6NDoi8J2SvSI7czoxOiJoIjtzOjQ6IvCdk7EiO3M6MToiaCI7czo0OiLwnZSlIjtzOjE6ImgiO3M6NDoi8J2VmSI7czoxOiJoIjtzOjQ6IvCdlo0iO3M6MToiaCI7czo0OiLwnZeBIjtzOjE6ImgiO3M6NDoi8J2XtSI7czoxOiJoIjtzOjQ6IvCdmKkiO3M6MToiaCI7czo0OiLwnZmdIjtzOjE6ImgiO3M6NDoi8J2akSI7czoxOiJoIjtzOjI6ItK7IjtzOjE6ImgiO3M6Mjoi1bAiO3M6MToiaCI7czozOiLhj4IiO3M6MToiaCI7czozOiLvvKgiO3M6MToiSCI7czozOiLihIsiO3M6MToiSCI7czozOiLihIwiO3M6MToiSCI7czozOiLihI0iO3M6MToiSCI7czo0OiLwnZCHIjtzOjE6IkgiO3M6NDoi8J2QuyI7czoxOiJIIjtzOjQ6IvCdka8iO3M6MToiSCI7czo0OiLwnZOXIjtzOjE6IkgiO3M6NDoi8J2VsyI7czoxOiJIIjtzOjQ6IvCdlqciO3M6MToiSCI7czo0OiLwnZebIjtzOjE6IkgiO3M6NDoi8J2YjyI7czoxOiJIIjtzOjQ6IvCdmYMiO3M6MToiSCI7czo0OiLwnZm3IjtzOjE6IkgiO3M6MjoizpciO3M6MToiSCI7czo0OiLwnZquIjtzOjE6IkgiO3M6NDoi8J2bqCI7czoxOiJIIjtzOjQ6IvCdnKIiO3M6MToiSCI7czo0OiLwnZ2cIjtzOjE6IkgiO3M6NDoi8J2eliI7czoxOiJIIjtzOjM6IuKyjiI7czoxOiJIIjtzOjI6ItCdIjtzOjE6IkgiO3M6Mzoi4Y67IjtzOjE6IkgiO3M6Mzoi4ZW8IjtzOjE6IkgiO3M6Mzoi6pOnIjtzOjE6IkgiO3M6NDoi8JCLjyI7czoxOiJIIjtzOjI6IsubIjtzOjE6ImkiO3M6Mzoi4o2zIjtzOjE6ImkiO3M6Mzoi772JIjtzOjE6ImkiO3M6Mzoi4oWwIjtzOjE6ImkiO3M6Mzoi4oS5IjtzOjE6ImkiO3M6Mzoi4oWIIjtzOjE6ImkiO3M6NDoi8J2QoiI7czoxOiJpIjtzOjQ6IvCdkZYiO3M6MToiaSI7czo0OiLwnZKKIjtzOjE6ImkiO3M6NDoi8J2SviI7czoxOiJpIjtzOjQ6IvCdk7IiO3M6MToiaSI7czo0OiLwnZSmIjtzOjE6ImkiO3M6NDoi8J2VmiI7czoxOiJpIjtzOjQ6IvCdlo4iO3M6MToiaSI7czo0OiLwnZeCIjtzOjE6ImkiO3M6NDoi8J2XtiI7czoxOiJpIjtzOjQ6IvCdmKoiO3M6MToiaSI7czo0OiLwnZmeIjtzOjE6ImkiO3M6NDoi8J2akiI7czoxOiJpIjtzOjI6IsSxIjtzOjE6ImkiO3M6NDoi8J2apCI7czoxOiJpIjtzOjI6IsmqIjtzOjE6ImkiO3M6MjoiyakiO3M6MToiaSI7czoyOiLOuSI7czoxOiJpIjtzOjM6IuG+viI7czoxOiJpIjtzOjI6Is26IjtzOjE6ImkiO3M6NDoi8J2biiI7czoxOiJpIjtzOjQ6IvCdnIQiO3M6MToiaSI7czo0OiLwnZy+IjtzOjE6ImkiO3M6NDoi8J2duCI7czoxOiJpIjtzOjQ6IvCdnrIiO3M6MToiaSI7czoyOiLRliI7czoxOiJpIjtzOjM6IuqZhyI7czoxOiJpIjtzOjI6ItOPIjtzOjE6ImkiO3M6Mzoi6q21IjtzOjE6ImkiO3M6Mzoi4Y6lIjtzOjE6ImkiO3M6NDoi8JGjgyI7czoxOiJpIjtzOjI6IsOtIjtzOjE6ImkiO3M6Mzoi772KIjtzOjE6ImoiO3M6Mzoi4oWJIjtzOjE6ImoiO3M6NDoi8J2QoyI7czoxOiJqIjtzOjQ6IvCdkZciO3M6MToiaiI7czo0OiLwnZKLIjtzOjE6ImoiO3M6NDoi8J2SvyI7czoxOiJqIjtzOjQ6IvCdk7MiO3M6MToiaiI7czo0OiLwnZSnIjtzOjE6ImoiO3M6NDoi8J2VmyI7czoxOiJqIjtzOjQ6IvCdlo8iO3M6MToiaiI7czo0OiLwnZeDIjtzOjE6ImoiO3M6NDoi8J2XtyI7czoxOiJqIjtzOjQ6IvCdmKsiO3M6MToiaiI7czo0OiLwnZmfIjtzOjE6ImoiO3M6NDoi8J2akyI7czoxOiJqIjtzOjI6Is+zIjtzOjE6ImoiO3M6Mjoi0ZgiO3M6MToiaiI7czozOiLvvKoiO3M6MToiSiI7czo0OiLwnZCJIjtzOjE6IkoiO3M6NDoi8J2QvSI7czoxOiJKIjtzOjQ6IvCdkbEiO3M6MToiSiI7czo0OiLwnZKlIjtzOjE6IkoiO3M6NDoi8J2TmSI7czoxOiJKIjtzOjQ6IvCdlI0iO3M6MToiSiI7czo0OiLwnZWBIjtzOjE6IkoiO3M6NDoi8J2VtSI7czoxOiJKIjtzOjQ6IvCdlqkiO3M6MToiSiI7czo0OiLwnZedIjtzOjE6IkoiO3M6NDoi8J2YkSI7czoxOiJKIjtzOjQ6IvCdmYUiO3M6MToiSiI7czo0OiLwnZm5IjtzOjE6IkoiO3M6Mzoi6p6yIjtzOjE6IkoiO3M6Mjoizb8iO3M6MToiSiI7czoyOiLQiCI7czoxOiJKIjtzOjM6IuGOqyI7czoxOiJKIjtzOjM6IuGSjSI7czoxOiJKIjtzOjM6IuqTmSI7czoxOiJKIjtzOjQ6IvCdkKQiO3M6MToiayI7czo0OiLwnZGYIjtzOjE6ImsiO3M6NDoi8J2SjCI7czoxOiJrIjtzOjQ6IvCdk4AiO3M6MToiayI7czo0OiLwnZO0IjtzOjE6ImsiO3M6NDoi8J2UqCI7czoxOiJrIjtzOjQ6IvCdlZwiO3M6MToiayI7czo0OiLwnZaQIjtzOjE6ImsiO3M6NDoi8J2XhCI7czoxOiJrIjtzOjQ6IvCdl7giO3M6MToiayI7czo0OiLwnZisIjtzOjE6ImsiO3M6NDoi8J2ZoCI7czoxOiJrIjtzOjQ6IvCdmpQiO3M6MToiayI7czozOiLihKoiO3M6MToiSyI7czozOiLvvKsiO3M6MToiSyI7czo0OiLwnZCKIjtzOjE6IksiO3M6NDoi8J2QviI7czoxOiJLIjtzOjQ6IvCdkbIiO3M6MToiSyI7czo0OiLwnZKmIjtzOjE6IksiO3M6NDoi8J2TmiI7czoxOiJLIjtzOjQ6IvCdlI4iO3M6MToiSyI7czo0OiLwnZWCIjtzOjE6IksiO3M6NDoi8J2VtiI7czoxOiJLIjtzOjQ6IvCdlqoiO3M6MToiSyI7czo0OiLwnZeeIjtzOjE6IksiO3M6NDoi8J2YkiI7czoxOiJLIjtzOjQ6IvCdmYYiO3M6MToiSyI7czo0OiLwnZm6IjtzOjE6IksiO3M6MjoizpoiO3M6MToiSyI7czo0OiLwnZqxIjtzOjE6IksiO3M6NDoi8J2bqyI7czoxOiJLIjtzOjQ6IvCdnKUiO3M6MToiSyI7czo0OiLwnZ2fIjtzOjE6IksiO3M6NDoi8J2emSI7czoxOiJLIjtzOjM6IuKylCI7czoxOiJLIjtzOjI6ItCaIjtzOjE6IksiO3M6Mzoi4Y+mIjtzOjE6IksiO3M6Mzoi4ZuVIjtzOjE6IksiO3M6Mzoi6pOXIjtzOjE6IksiO3M6NDoi8JCUmCI7czoxOiJLIjtzOjI6IteAIjtzOjE6ImwiO3M6Mzoi4oijIjtzOjE6ImwiO3M6Mzoi4o+9IjtzOjE6ImwiO3M6Mzoi77+oIjtzOjE6ImwiO2k6MTtzOjE6ImwiO3M6Mjoi2aEiO3M6MToibCI7czoyOiLbsSI7czoxOiJsIjtzOjQ6IvCQjKAiO3M6MToibCI7czo0OiLwnqOHIjtzOjE6ImwiO3M6NDoi8J2fjyI7czoxOiJsIjtzOjQ6IvCdn5kiO3M6MToibCI7czo0OiLwnZ+jIjtzOjE6ImwiO3M6NDoi8J2frSI7czoxOiJsIjtzOjQ6IvCdn7ciO3M6MToibCI7czozOiLvvKkiO3M6MToibCI7czozOiLihaAiO3M6MToibCI7czozOiLihJAiO3M6MToibCI7czozOiLihJEiO3M6MToibCI7czo0OiLwnZCIIjtzOjE6ImwiO3M6NDoi8J2QvCI7czoxOiJsIjtzOjQ6IvCdkbAiO3M6MToibCI7czo0OiLwnZOYIjtzOjE6ImwiO3M6NDoi8J2VgCI7czoxOiJsIjtzOjQ6IvCdlbQiO3M6MToibCI7czo0OiLwnZaoIjtzOjE6ImwiO3M6NDoi8J2XnCI7czoxOiJsIjtzOjQ6IvCdmJAiO3M6MToibCI7czo0OiLwnZmEIjtzOjE6ImwiO3M6NDoi8J2ZuCI7czoxOiJsIjtzOjI6IsaWIjtzOjE6ImwiO3M6Mzoi772MIjtzOjE6ImwiO3M6Mzoi4oW8IjtzOjE6ImwiO3M6Mzoi4oSTIjtzOjE6ImwiO3M6NDoi8J2QpSI7czoxOiJsIjtzOjQ6IvCdkZkiO3M6MToibCI7czo0OiLwnZKNIjtzOjE6ImwiO3M6NDoi8J2TgSI7czoxOiJsIjtzOjQ6IvCdk7UiO3M6MToibCI7czo0OiLwnZSpIjtzOjE6ImwiO3M6NDoi8J2VnSI7czoxOiJsIjtzOjQ6IvCdlpEiO3M6MToibCI7czo0OiLwnZeFIjtzOjE6ImwiO3M6NDoi8J2XuSI7czoxOiJsIjtzOjQ6IvCdmK0iO3M6MToibCI7czo0OiLwnZmhIjtzOjE6ImwiO3M6NDoi8J2alSI7czoxOiJsIjtzOjI6IseAIjtzOjE6ImwiO3M6MjoizpkiO3M6MToibCI7czo0OiLwnZqwIjtzOjE6ImwiO3M6NDoi8J2bqiI7czoxOiJsIjtzOjQ6IvCdnKQiO3M6MToibCI7czo0OiLwnZ2eIjtzOjE6ImwiO3M6NDoi8J2emCI7czoxOiJsIjtzOjM6IuKykiI7czoxOiJsIjtzOjI6ItCGIjtzOjE6ImwiO3M6Mjoi04AiO3M6MToibCI7czoyOiLXlSI7czoxOiJsIjtzOjI6ItefIjtzOjE6ImwiO3M6Mjoi2KciO3M6MToibCI7czo0OiLwnriAIjtzOjE6ImwiO3M6NDoi8J66gCI7czoxOiJsIjtzOjM6Iu+6jiI7czoxOiJsIjtzOjM6Iu+6jSI7czoxOiJsIjtzOjI6It+KIjtzOjE6ImwiO3M6Mzoi4rWPIjtzOjE6ImwiO3M6Mzoi4ZuBIjtzOjE6ImwiO3M6Mzoi6pOyIjtzOjE6ImwiO3M6NDoi8Ja8qCI7czoxOiJsIjtzOjQ6IvCQiooiO3M6MToibCI7czo0OiLwkIyJIjtzOjE6ImwiO3M6NDoi8J2IqiI7czoxOiJMIjtzOjM6IuKFrCI7czoxOiJMIjtzOjM6IuKEkiI7czoxOiJMIjtzOjQ6IvCdkIsiO3M6MToiTCI7czo0OiLwnZC/IjtzOjE6IkwiO3M6NDoi8J2RsyI7czoxOiJMIjtzOjQ6IvCdk5siO3M6MToiTCI7czo0OiLwnZSPIjtzOjE6IkwiO3M6NDoi8J2VgyI7czoxOiJMIjtzOjQ6IvCdlbciO3M6MToiTCI7czo0OiLwnZarIjtzOjE6IkwiO3M6NDoi8J2XnyI7czoxOiJMIjtzOjQ6IvCdmJMiO3M6MToiTCI7czo0OiLwnZmHIjtzOjE6IkwiO3M6NDoi8J2ZuyI7czoxOiJMIjtzOjM6IuKzkCI7czoxOiJMIjtzOjM6IuGPniI7czoxOiJMIjtzOjM6IuGSqiI7czoxOiJMIjtzOjM6IuqToSI7czoxOiJMIjtzOjQ6IvCWvJYiO3M6MToiTCI7czo0OiLwkaKjIjtzOjE6IkwiO3M6NDoi8JGisiI7czoxOiJMIjtzOjQ6IvCQkJsiO3M6MToiTCI7czo0OiLwkJSmIjtzOjE6IkwiO3M6Mzoi77ytIjtzOjE6Ik0iO3M6Mzoi4oWvIjtzOjE6Ik0iO3M6Mzoi4oSzIjtzOjE6Ik0iO3M6NDoi8J2QjCI7czoxOiJNIjtzOjQ6IvCdkYAiO3M6MToiTSI7czo0OiLwnZG0IjtzOjE6Ik0iO3M6NDoi8J2TnCI7czoxOiJNIjtzOjQ6IvCdlJAiO3M6MToiTSI7czo0OiLwnZWEIjtzOjE6Ik0iO3M6NDoi8J2VuCI7czoxOiJNIjtzOjQ6IvCdlqwiO3M6MToiTSI7czo0OiLwnZegIjtzOjE6Ik0iO3M6NDoi8J2YlCI7czoxOiJNIjtzOjQ6IvCdmYgiO3M6MToiTSI7czo0OiLwnZm8IjtzOjE6Ik0iO3M6MjoizpwiO3M6MToiTSI7czo0OiLwnZqzIjtzOjE6Ik0iO3M6NDoi8J2brSI7czoxOiJNIjtzOjQ6IvCdnKciO3M6MToiTSI7czo0OiLwnZ2hIjtzOjE6Ik0iO3M6NDoi8J2emyI7czoxOiJNIjtzOjI6Is+6IjtzOjE6Ik0iO3M6Mzoi4rKYIjtzOjE6Ik0iO3M6Mjoi0JwiO3M6MToiTSI7czozOiLhjrciO3M6MToiTSI7czozOiLhl7AiO3M6MToiTSI7czozOiLhm5YiO3M6MToiTSI7czozOiLqk58iO3M6MToiTSI7czo0OiLwkIqwIjtzOjE6Ik0iO3M6NDoi8JCMkSI7czoxOiJNIjtzOjQ6IvCdkKciO3M6MToibiI7czo0OiLwnZGbIjtzOjE6Im4iO3M6NDoi8J2SjyI7czoxOiJuIjtzOjQ6IvCdk4MiO3M6MToibiI7czo0OiLwnZO3IjtzOjE6Im4iO3M6NDoi8J2UqyI7czoxOiJuIjtzOjQ6IvCdlZ8iO3M6MToibiI7czo0OiLwnZaTIjtzOjE6Im4iO3M6NDoi8J2XhyI7czoxOiJuIjtzOjQ6IvCdl7siO3M6MToibiI7czo0OiLwnZivIjtzOjE6Im4iO3M6NDoi8J2ZoyI7czoxOiJuIjtzOjQ6IvCdmpciO3M6MToibiI7czoyOiLVuCI7czoxOiJuIjtzOjI6ItW8IjtzOjE6Im4iO3M6MjoiybQiO3M6MToibiI7czozOiLvvK4iO3M6MToiTiI7czozOiLihJUiO3M6MToiTiI7czo0OiLwnZCNIjtzOjE6Ik4iO3M6NDoi8J2RgSI7czoxOiJOIjtzOjQ6IvCdkbUiO3M6MToiTiI7czo0OiLwnZKpIjtzOjE6Ik4iO3M6NDoi8J2TnSI7czoxOiJOIjtzOjQ6IvCdlJEiO3M6MToiTiI7czo0OiLwnZW5IjtzOjE6Ik4iO3M6NDoi8J2WrSI7czoxOiJOIjtzOjQ6IvCdl6EiO3M6MToiTiI7czo0OiLwnZiVIjtzOjE6Ik4iO3M6NDoi8J2ZiSI7czoxOiJOIjtzOjQ6IvCdmb0iO3M6MToiTiI7czoyOiLOnSI7czoxOiJOIjtzOjQ6IvCdmrQiO3M6MToiTiI7czo0OiLwnZuuIjtzOjE6Ik4iO3M6NDoi8J2cqCI7czoxOiJOIjtzOjQ6IvCdnaIiO3M6MToiTiI7czo0OiLwnZ6cIjtzOjE6Ik4iO3M6Mzoi4rKaIjtzOjE6Ik4iO3M6Mzoi6pOgIjtzOjE6Ik4iO3M6NDoi8JCUkyI7czoxOiJOIjtzOjM6IuCwgiI7czoxOiJvIjtzOjM6IuCygiI7czoxOiJvIjtzOjM6IuC0giI7czoxOiJvIjtzOjM6IuC2giI7czoxOiJvIjtzOjM6IuClpiI7czoxOiJvIjtzOjM6IuCppiI7czoxOiJvIjtzOjM6IuCrpiI7czoxOiJvIjtzOjM6IuCvpiI7czoxOiJvIjtzOjM6IuCxpiI7czoxOiJvIjtzOjM6IuCzpiI7czoxOiJvIjtzOjM6IuC1piI7czoxOiJvIjtzOjM6IuC5kCI7czoxOiJvIjtzOjM6IuC7kCI7czoxOiJvIjtzOjM6IuGBgCI7czoxOiJvIjtzOjI6ItmlIjtzOjE6Im8iO3M6Mjoi27UiO3M6MToibyI7czozOiLvvY8iO3M6MToibyI7czozOiLihLQiO3M6MToibyI7czo0OiLwnZCoIjtzOjE6Im8iO3M6NDoi8J2RnCI7czoxOiJvIjtzOjQ6IvCdkpAiO3M6MToibyI7czo0OiLwnZO4IjtzOjE6Im8iO3M6NDoi8J2UrCI7czoxOiJvIjtzOjQ6IvCdlaAiO3M6MToibyI7czo0OiLwnZaUIjtzOjE6Im8iO3M6NDoi8J2XiCI7czoxOiJvIjtzOjQ6IvCdl7wiO3M6MToibyI7czo0OiLwnZiwIjtzOjE6Im8iO3M6NDoi8J2ZpCI7czoxOiJvIjtzOjQ6IvCdmpgiO3M6MToibyI7czozOiLhtI8iO3M6MToibyI7czozOiLhtJEiO3M6MToibyI7czozOiLqrL0iO3M6MToibyI7czoyOiLOvyI7czoxOiJvIjtzOjQ6IvCdm5AiO3M6MToibyI7czo0OiLwnZyKIjtzOjE6Im8iO3M6NDoi8J2dhCI7czoxOiJvIjtzOjQ6IvCdnb4iO3M6MToibyI7czo0OiLwnZ64IjtzOjE6Im8iO3M6Mjoiz4MiO3M6MToibyI7czo0OiLwnZuUIjtzOjE6Im8iO3M6NDoi8J2cjiI7czoxOiJvIjtzOjQ6IvCdnYgiO3M6MToibyI7czo0OiLwnZ6CIjtzOjE6Im8iO3M6NDoi8J2evCI7czoxOiJvIjtzOjM6IuKynyI7czoxOiJvIjtzOjI6ItC+IjtzOjE6Im8iO3M6Mzoi4YO/IjtzOjE6Im8iO3M6Mjoi1oUiO3M6MToibyI7czoyOiLXoSI7czoxOiJvIjtzOjI6ItmHIjtzOjE6Im8iO3M6NDoi8J64pCI7czoxOiJvIjtzOjQ6IvCeuaQiO3M6MToibyI7czo0OiLwnrqEIjtzOjE6Im8iO3M6Mzoi77urIjtzOjE6Im8iO3M6Mzoi77usIjtzOjE6Im8iO3M6Mzoi77uqIjtzOjE6Im8iO3M6Mzoi77upIjtzOjE6Im8iO3M6Mjoi2r4iO3M6MToibyI7czozOiLvrqwiO3M6MToibyI7czozOiLvrq0iO3M6MToibyI7czozOiLvrqsiO3M6MToibyI7czozOiLvrqoiO3M6MToibyI7czoyOiLbgSI7czoxOiJvIjtzOjM6Iu+uqCI7czoxOiJvIjtzOjM6Iu+uqSI7czoxOiJvIjtzOjM6Iu+upyI7czoxOiJvIjtzOjM6Iu+upiI7czoxOiJvIjtzOjI6ItuVIjtzOjE6Im8iO3M6Mzoi4LSgIjtzOjE6Im8iO3M6Mzoi4YCdIjtzOjE6Im8iO3M6NDoi8JCTqiI7czoxOiJvIjtzOjQ6IvCRo4giO3M6MToibyI7czo0OiLwkaOXIjtzOjE6Im8iO3M6NDoi8JCQrCI7czoxOiJvIjtpOjA7czoxOiJPIjtzOjI6It+AIjtzOjE6Ik8iO3M6Mzoi4KemIjtzOjE6Ik8iO3M6Mzoi4K2mIjtzOjE6Ik8iO3M6Mzoi44CHIjtzOjE6Ik8iO3M6NDoi8JGTkCI7czoxOiJPIjtzOjQ6IvCRo6AiO3M6MToiTyI7czo0OiLwnZ+OIjtzOjE6Ik8iO3M6NDoi8J2fmCI7czoxOiJPIjtzOjQ6IvCdn6IiO3M6MToiTyI7czo0OiLwnZ+sIjtzOjE6Ik8iO3M6NDoi8J2ftiI7czoxOiJPIjtzOjM6Iu+8ryI7czoxOiJPIjtzOjQ6IvCdkI4iO3M6MToiTyI7czo0OiLwnZGCIjtzOjE6Ik8iO3M6NDoi8J2RtiI7czoxOiJPIjtzOjQ6IvCdkqoiO3M6MToiTyI7czo0OiLwnZOeIjtzOjE6Ik8iO3M6NDoi8J2UkiI7czoxOiJPIjtzOjQ6IvCdlYYiO3M6MToiTyI7czo0OiLwnZW6IjtzOjE6Ik8iO3M6NDoi8J2WriI7czoxOiJPIjtzOjQ6IvCdl6IiO3M6MToiTyI7czo0OiLwnZiWIjtzOjE6Ik8iO3M6NDoi8J2ZiiI7czoxOiJPIjtzOjQ6IvCdmb4iO3M6MToiTyI7czoyOiLOnyI7czoxOiJPIjtzOjQ6IvCdmrYiO3M6MToiTyI7czo0OiLwnZuwIjtzOjE6Ik8iO3M6NDoi8J2cqiI7czoxOiJPIjtzOjQ6IvCdnaQiO3M6MToiTyI7czo0OiLwnZ6eIjtzOjE6Ik8iO3M6Mzoi4rKeIjtzOjE6Ik8iO3M6Mjoi0J4iO3M6MToiTyI7czoyOiLVlSI7czoxOiJPIjtzOjM6IuK1lCI7czoxOiJPIjtzOjM6IuGLkCI7czoxOiJPIjtzOjM6IuCsoCI7czoxOiJPIjtzOjQ6IvCQk4IiO3M6MToiTyI7czozOiLqk7MiO3M6MToiTyI7czo0OiLwkaK1IjtzOjE6Ik8iO3M6NDoi8JCKkiI7czoxOiJPIjtzOjQ6IvCQiqsiO3M6MToiTyI7czo0OiLwkJCEIjtzOjE6Ik8iO3M6NDoi8JCUliI7czoxOiJPIjtzOjM6IuKBsCI7czoxOiK6IjtzOjM6IuG1kiI7czoxOiK6IjtzOjI6IsWQIjtzOjE6ItYiO3M6Mzoi4o20IjtzOjE6InAiO3M6Mzoi772QIjtzOjE6InAiO3M6NDoi8J2QqSI7czoxOiJwIjtzOjQ6IvCdkZ0iO3M6MToicCI7czo0OiLwnZKRIjtzOjE6InAiO3M6NDoi8J2ThSI7czoxOiJwIjtzOjQ6IvCdk7kiO3M6MToicCI7czo0OiLwnZStIjtzOjE6InAiO3M6NDoi8J2VoSI7czoxOiJwIjtzOjQ6IvCdlpUiO3M6MToicCI7czo0OiLwnZeJIjtzOjE6InAiO3M6NDoi8J2XvSI7czoxOiJwIjtzOjQ6IvCdmLEiO3M6MToicCI7czo0OiLwnZmlIjtzOjE6InAiO3M6NDoi8J2amSI7czoxOiJwIjtzOjI6Is+BIjtzOjE6InAiO3M6Mjoiz7EiO3M6MToicCI7czo0OiLwnZuSIjtzOjE6InAiO3M6NDoi8J2boCI7czoxOiJwIjtzOjQ6IvCdnIwiO3M6MToicCI7czo0OiLwnZyaIjtzOjE6InAiO3M6NDoi8J2dhiI7czoxOiJwIjtzOjQ6IvCdnZQiO3M6MToicCI7czo0OiLwnZ6AIjtzOjE6InAiO3M6NDoi8J2ejiI7czoxOiJwIjtzOjQ6IvCdnroiO3M6MToicCI7czo0OiLwnZ+IIjtzOjE6InAiO3M6Mzoi4rKjIjtzOjE6InAiO3M6Mjoi0YAiO3M6MToicCI7czozOiLvvLAiO3M6MToiUCI7czozOiLihJkiO3M6MToiUCI7czo0OiLwnZCPIjtzOjE6IlAiO3M6NDoi8J2RgyI7czoxOiJQIjtzOjQ6IvCdkbciO3M6MToiUCI7czo0OiLwnZKrIjtzOjE6IlAiO3M6NDoi8J2TnyI7czoxOiJQIjtzOjQ6IvCdlJMiO3M6MToiUCI7czo0OiLwnZW7IjtzOjE6IlAiO3M6NDoi8J2WryI7czoxOiJQIjtzOjQ6IvCdl6MiO3M6MToiUCI7czo0OiLwnZiXIjtzOjE6IlAiO3M6NDoi8J2ZiyI7czoxOiJQIjtzOjQ6IvCdmb8iO3M6MToiUCI7czoyOiLOoSI7czoxOiJQIjtzOjQ6IvCdmrgiO3M6MToiUCI7czo0OiLwnZuyIjtzOjE6IlAiO3M6NDoi8J2crCI7czoxOiJQIjtzOjQ6IvCdnaYiO3M6MToiUCI7czo0OiLwnZ6gIjtzOjE6IlAiO3M6Mzoi4rKiIjtzOjE6IlAiO3M6Mjoi0KAiO3M6MToiUCI7czozOiLhj6IiO3M6MToiUCI7czozOiLhka0iO3M6MToiUCI7czozOiLqk5EiO3M6MToiUCI7czo0OiLwkIqVIjtzOjE6IlAiO3M6NDoi8J2QqiI7czoxOiJxIjtzOjQ6IvCdkZ4iO3M6MToicSI7czo0OiLwnZKSIjtzOjE6InEiO3M6NDoi8J2ThiI7czoxOiJxIjtzOjQ6IvCdk7oiO3M6MToicSI7czo0OiLwnZSuIjtzOjE6InEiO3M6NDoi8J2VoiI7czoxOiJxIjtzOjQ6IvCdlpYiO3M6MToicSI7czo0OiLwnZeKIjtzOjE6InEiO3M6NDoi8J2XviI7czoxOiJxIjtzOjQ6IvCdmLIiO3M6MToicSI7czo0OiLwnZmmIjtzOjE6InEiO3M6NDoi8J2amiI7czoxOiJxIjtzOjI6ItSbIjtzOjE6InEiO3M6Mjoi1aMiO3M6MToicSI7czoyOiLVpiI7czoxOiJxIjtzOjM6IuKEmiI7czoxOiJRIjtzOjQ6IvCdkJAiO3M6MToiUSI7czo0OiLwnZGEIjtzOjE6IlEiO3M6NDoi8J2RuCI7czoxOiJRIjtzOjQ6IvCdkqwiO3M6MToiUSI7czo0OiLwnZOgIjtzOjE6IlEiO3M6NDoi8J2UlCI7czoxOiJRIjtzOjQ6IvCdlbwiO3M6MToiUSI7czo0OiLwnZawIjtzOjE6IlEiO3M6NDoi8J2XpCI7czoxOiJRIjtzOjQ6IvCdmJgiO3M6MToiUSI7czo0OiLwnZmMIjtzOjE6IlEiO3M6NDoi8J2agCI7czoxOiJRIjtzOjM6IuK1lSI7czoxOiJRIjtzOjQ6IvCdkKsiO3M6MToiciI7czo0OiLwnZGfIjtzOjE6InIiO3M6NDoi8J2SkyI7czoxOiJyIjtzOjQ6IvCdk4ciO3M6MToiciI7czo0OiLwnZO7IjtzOjE6InIiO3M6NDoi8J2UryI7czoxOiJyIjtzOjQ6IvCdlaMiO3M6MToiciI7czo0OiLwnZaXIjtzOjE6InIiO3M6NDoi8J2XiyI7czoxOiJyIjtzOjQ6IvCdl78iO3M6MToiciI7czo0OiLwnZizIjtzOjE6InIiO3M6NDoi8J2ZpyI7czoxOiJyIjtzOjQ6IvCdmpsiO3M6MToiciI7czozOiLqrYciO3M6MToiciI7czozOiLqrYgiO3M6MToiciI7czozOiLhtKYiO3M6MToiciI7czozOiLisoUiO3M6MToiciI7czoyOiLQsyI7czoxOiJyIjtzOjM6IuqugSI7czoxOiJyIjtzOjI6IsqAIjtzOjE6InIiO3M6NDoi8J2IliI7czoxOiJSIjtzOjM6IuKEmyI7czoxOiJSIjtzOjM6IuKEnCI7czoxOiJSIjtzOjM6IuKEnSI7czoxOiJSIjtzOjQ6IvCdkJEiO3M6MToiUiI7czo0OiLwnZGFIjtzOjE6IlIiO3M6NDoi8J2RuSI7czoxOiJSIjtzOjQ6IvCdk6EiO3M6MToiUiI7czo0OiLwnZW9IjtzOjE6IlIiO3M6NDoi8J2WsSI7czoxOiJSIjtzOjQ6IvCdl6UiO3M6MToiUiI7czo0OiLwnZiZIjtzOjE6IlIiO3M6NDoi8J2ZjSI7czoxOiJSIjtzOjQ6IvCdmoEiO3M6MToiUiI7czoyOiLGpiI7czoxOiJSIjtzOjM6IuGOoSI7czoxOiJSIjtzOjM6IuGPkiI7czoxOiJSIjtzOjQ6IvCQkrQiO3M6MToiUiI7czozOiLhlociO3M6MToiUiI7czozOiLqk6MiO3M6MToiUiI7czo0OiLwlry1IjtzOjE6IlIiO3M6Mzoi772TIjtzOjE6InMiO3M6NDoi8J2QrCI7czoxOiJzIjtzOjQ6IvCdkaAiO3M6MToicyI7czo0OiLwnZKUIjtzOjE6InMiO3M6NDoi8J2TiCI7czoxOiJzIjtzOjQ6IvCdk7wiO3M6MToicyI7czo0OiLwnZSwIjtzOjE6InMiO3M6NDoi8J2VpCI7czoxOiJzIjtzOjQ6IvCdlpgiO3M6MToicyI7czo0OiLwnZeMIjtzOjE6InMiO3M6NDoi8J2YgCI7czoxOiJzIjtzOjQ6IvCdmLQiO3M6MToicyI7czo0OiLwnZmoIjtzOjE6InMiO3M6NDoi8J2anCI7czoxOiJzIjtzOjM6IuqcsSI7czoxOiJzIjtzOjI6Isa9IjtzOjE6InMiO3M6Mjoi0ZUiO3M6MToicyI7czozOiLqrqoiO3M6MToicyI7czo0OiLwkaOBIjtzOjE6InMiO3M6NDoi8JCRiCI7czoxOiJzIjtzOjM6Iu+8syI7czoxOiJTIjtzOjQ6IvCdkJIiO3M6MToiUyI7czo0OiLwnZGGIjtzOjE6IlMiO3M6NDoi8J2RuiI7czoxOiJTIjtzOjQ6IvCdkq4iO3M6MToiUyI7czo0OiLwnZOiIjtzOjE6IlMiO3M6NDoi8J2UliI7czoxOiJTIjtzOjQ6IvCdlYoiO3M6MToiUyI7czo0OiLwnZW+IjtzOjE6IlMiO3M6NDoi8J2WsiI7czoxOiJTIjtzOjQ6IvCdl6YiO3M6MToiUyI7czo0OiLwnZiaIjtzOjE6IlMiO3M6NDoi8J2ZjiI7czoxOiJTIjtzOjQ6IvCdmoIiO3M6MToiUyI7czoyOiLQhSI7czoxOiJTIjtzOjI6ItWPIjtzOjE6IlMiO3M6Mzoi4Y+VIjtzOjE6IlMiO3M6Mzoi4Y+aIjtzOjE6IlMiO3M6Mzoi6pOiIjtzOjE6IlMiO3M6NDoi8Ja8uiI7czoxOiJTIjtzOjQ6IvCQipYiO3M6MToiUyI7czo0OiLwkJCgIjtzOjE6IlMiO3M6Mzoi6p61IjtzOjE6It8iO3M6MjoizrIiO3M6MToi3yI7czoyOiLPkCI7czoxOiLfIjtzOjQ6IvCdm4MiO3M6MToi3yI7czo0OiLwnZu9IjtzOjE6It8iO3M6NDoi8J2ctyI7czoxOiLfIjtzOjQ6IvCdnbEiO3M6MToi3yI7czo0OiLwnZ6rIjtzOjE6It8iO3M6Mzoi4Y+wIjtzOjE6It8iO3M6NDoi8J2QrSI7czoxOiJ0IjtzOjQ6IvCdkaEiO3M6MToidCI7czo0OiLwnZKVIjtzOjE6InQiO3M6NDoi8J2TiSI7czoxOiJ0IjtzOjQ6IvCdk70iO3M6MToidCI7czo0OiLwnZSxIjtzOjE6InQiO3M6NDoi8J2VpSI7czoxOiJ0IjtzOjQ6IvCdlpkiO3M6MToidCI7czo0OiLwnZeNIjtzOjE6InQiO3M6NDoi8J2YgSI7czoxOiJ0IjtzOjQ6IvCdmLUiO3M6MToidCI7czo0OiLwnZmpIjtzOjE6InQiO3M6NDoi8J2anSI7czoxOiJ0IjtzOjM6IuG0myI7czoxOiJ0IjtzOjM6IuKKpCI7czoxOiJUIjtzOjM6IuKfmSI7czoxOiJUIjtzOjQ6IvCfnagiO3M6MToiVCI7czozOiLvvLQiO3M6MToiVCI7czo0OiLwnZCTIjtzOjE6IlQiO3M6NDoi8J2RhyI7czoxOiJUIjtzOjQ6IvCdkbsiO3M6MToiVCI7czo0OiLwnZKvIjtzOjE6IlQiO3M6NDoi8J2ToyI7czoxOiJUIjtzOjQ6IvCdlJciO3M6MToiVCI7czo0OiLwnZWLIjtzOjE6IlQiO3M6NDoi8J2VvyI7czoxOiJUIjtzOjQ6IvCdlrMiO3M6MToiVCI7czo0OiLwnZenIjtzOjE6IlQiO3M6NDoi8J2YmyI7czoxOiJUIjtzOjQ6IvCdmY8iO3M6MToiVCI7czo0OiLwnZqDIjtzOjE6IlQiO3M6MjoizqQiO3M6MToiVCI7czo0OiLwnZq7IjtzOjE6IlQiO3M6NDoi8J2btSI7czoxOiJUIjtzOjQ6IvCdnK8iO3M6MToiVCI7czo0OiLwnZ2pIjtzOjE6IlQiO3M6NDoi8J2eoyI7czoxOiJUIjtzOjM6IuKypiI7czoxOiJUIjtzOjI6ItCiIjtzOjE6IlQiO3M6Mzoi4Y6iIjtzOjE6IlQiO3M6Mzoi6pOUIjtzOjE6IlQiO3M6NDoi8Ja8iiI7czoxOiJUIjtzOjQ6IvCRorwiO3M6MToiVCI7czo0OiLwkIqXIjtzOjE6IlQiO3M6NDoi8JCKsSI7czoxOiJUIjtzOjQ6IvCQjJUiO3M6MToiVCI7czo0OiLwnZCuIjtzOjE6InUiO3M6NDoi8J2RoiI7czoxOiJ1IjtzOjQ6IvCdkpYiO3M6MToidSI7czo0OiLwnZOKIjtzOjE6InUiO3M6NDoi8J2TviI7czoxOiJ1IjtzOjQ6IvCdlLIiO3M6MToidSI7czo0OiLwnZWmIjtzOjE6InUiO3M6NDoi8J2WmiI7czoxOiJ1IjtzOjQ6IvCdl44iO3M6MToidSI7czo0OiLwnZiCIjtzOjE6InUiO3M6NDoi8J2YtiI7czoxOiJ1IjtzOjQ6IvCdmaoiO3M6MToidSI7czo0OiLwnZqeIjtzOjE6InUiO3M6Mzoi6p6fIjtzOjE6InUiO3M6Mzoi4bScIjtzOjE6InUiO3M6Mzoi6q2OIjtzOjE6InUiO3M6Mzoi6q2SIjtzOjE6InUiO3M6MjoiyosiO3M6MToidSI7czoyOiLPhSI7czoxOiJ1IjtzOjQ6IvCdm5YiO3M6MToidSI7czo0OiLwnZyQIjtzOjE6InUiO3M6NDoi8J2diiI7czoxOiJ1IjtzOjQ6IvCdnoQiO3M6MToidSI7czo0OiLwnZ6+IjtzOjE6InUiO3M6Mjoi1b0iO3M6MToidSI7czo0OiLwkJO2IjtzOjE6InUiO3M6NDoi8JGjmCI7czoxOiJ1IjtzOjM6IuKIqiI7czoxOiJVIjtzOjM6IuKLgyI7czoxOiJVIjtzOjQ6IvCdkJQiO3M6MToiVSI7czo0OiLwnZGIIjtzOjE6IlUiO3M6NDoi8J2RvCI7czoxOiJVIjtzOjQ6IvCdkrAiO3M6MToiVSI7czo0OiLwnZOkIjtzOjE6IlUiO3M6NDoi8J2UmCI7czoxOiJVIjtzOjQ6IvCdlYwiO3M6MToiVSI7czo0OiLwnZaAIjtzOjE6IlUiO3M6NDoi8J2WtCI7czoxOiJVIjtzOjQ6IvCdl6giO3M6MToiVSI7czo0OiLwnZicIjtzOjE6IlUiO3M6NDoi8J2ZkCI7czoxOiJVIjtzOjQ6IvCdmoQiO3M6MToiVSI7czoyOiLVjSI7czoxOiJVIjtzOjM6IuGIgCI7czoxOiJVIjtzOjQ6IvCQk44iO3M6MToiVSI7czozOiLhkYwiO3M6MToiVSI7czozOiLqk7QiO3M6MToiVSI7czo0OiLwlr2CIjtzOjE6IlUiO3M6NDoi8JGiuCI7czoxOiJVIjtzOjM6IuKIqCI7czoxOiJ2IjtzOjM6IuKLgSI7czoxOiJ2IjtzOjM6Iu+9liI7czoxOiJ2IjtzOjM6IuKFtCI7czoxOiJ2IjtzOjQ6IvCdkK8iO3M6MToidiI7czo0OiLwnZGjIjtzOjE6InYiO3M6NDoi8J2SlyI7czoxOiJ2IjtzOjQ6IvCdk4siO3M6MToidiI7czo0OiLwnZO/IjtzOjE6InYiO3M6NDoi8J2UsyI7czoxOiJ2IjtzOjQ6IvCdlaciO3M6MToidiI7czo0OiLwnZabIjtzOjE6InYiO3M6NDoi8J2XjyI7czoxOiJ2IjtzOjQ6IvCdmIMiO3M6MToidiI7czo0OiLwnZi3IjtzOjE6InYiO3M6NDoi8J2ZqyI7czoxOiJ2IjtzOjQ6IvCdmp8iO3M6MToidiI7czozOiLhtKAiO3M6MToidiI7czoyOiLOvSI7czoxOiJ2IjtzOjQ6IvCdm44iO3M6MToidiI7czo0OiLwnZyIIjtzOjE6InYiO3M6NDoi8J2dgiI7czoxOiJ2IjtzOjQ6IvCdnbwiO3M6MToidiI7czo0OiLwnZ62IjtzOjE6InYiO3M6Mjoi0bUiO3M6MToidiI7czoyOiLXmCI7czoxOiJ2IjtzOjQ6IvCRnIYiO3M6MToidiI7czozOiLqrqkiO3M6MToidiI7czo0OiLwkaOAIjtzOjE6InYiO3M6NDoi8J2IjSI7czoxOiJWIjtzOjI6ItmnIjtzOjE6IlYiO3M6Mjoi27ciO3M6MToiViI7czozOiLihaQiO3M6MToiViI7czo0OiLwnZCVIjtzOjE6IlYiO3M6NDoi8J2RiSI7czoxOiJWIjtzOjQ6IvCdkb0iO3M6MToiViI7czo0OiLwnZKxIjtzOjE6IlYiO3M6NDoi8J2TpSI7czoxOiJWIjtzOjQ6IvCdlJkiO3M6MToiViI7czo0OiLwnZWNIjtzOjE6IlYiO3M6NDoi8J2WgSI7czoxOiJWIjtzOjQ6IvCdlrUiO3M6MToiViI7czo0OiLwnZepIjtzOjE6IlYiO3M6NDoi8J2YnSI7czoxOiJWIjtzOjQ6IvCdmZEiO3M6MToiViI7czo0OiLwnZqFIjtzOjE6IlYiO3M6Mjoi0bQiO3M6MToiViI7czozOiLitLgiO3M6MToiViI7czozOiLhj5kiO3M6MToiViI7czozOiLhkK8iO3M6MToiViI7czozOiLqm58iO3M6MToiViI7czozOiLqk6YiO3M6MToiViI7czo0OiLwlryIIjtzOjE6IlYiO3M6NDoi8JGioCI7czoxOiJWIjtzOjQ6IvCQlJ0iO3M6MToiViI7czoyOiLJryI7czoxOiJ3IjtzOjQ6IvCdkLAiO3M6MToidyI7czo0OiLwnZGkIjtzOjE6InciO3M6NDoi8J2SmCI7czoxOiJ3IjtzOjQ6IvCdk4wiO3M6MToidyI7czo0OiLwnZSAIjtzOjE6InciO3M6NDoi8J2UtCI7czoxOiJ3IjtzOjQ6IvCdlagiO3M6MToidyI7czo0OiLwnZacIjtzOjE6InciO3M6NDoi8J2XkCI7czoxOiJ3IjtzOjQ6IvCdmIQiO3M6MToidyI7czo0OiLwnZi4IjtzOjE6InciO3M6NDoi8J2ZrCI7czoxOiJ3IjtzOjQ6IvCdmqAiO3M6MToidyI7czozOiLhtKEiO3M6MToidyI7czoyOiLRoSI7czoxOiJ3IjtzOjI6ItSdIjtzOjE6InciO3M6Mjoi1aEiO3M6MToidyI7czo0OiLwkZyKIjtzOjE6InciO3M6NDoi8JGcjiI7czoxOiJ3IjtzOjQ6IvCRnI8iO3M6MToidyI7czozOiLqroMiO3M6MToidyI7czo0OiLwkaOvIjtzOjE6IlciO3M6NDoi8JGjpiI7czoxOiJXIjtzOjQ6IvCdkJYiO3M6MToiVyI7czo0OiLwnZGKIjtzOjE6IlciO3M6NDoi8J2RviI7czoxOiJXIjtzOjQ6IvCdkrIiO3M6MToiVyI7czo0OiLwnZOmIjtzOjE6IlciO3M6NDoi8J2UmiI7czoxOiJXIjtzOjQ6IvCdlY4iO3M6MToiVyI7czo0OiLwnZaCIjtzOjE6IlciO3M6NDoi8J2WtiI7czoxOiJXIjtzOjQ6IvCdl6oiO3M6MToiVyI7czo0OiLwnZieIjtzOjE6IlciO3M6NDoi8J2ZkiI7czoxOiJXIjtzOjQ6IvCdmoYiO3M6MToiVyI7czoyOiLUnCI7czoxOiJXIjtzOjM6IuGOsyI7czoxOiJXIjtzOjM6IuGPlCI7czoxOiJXIjtzOjM6IuqTqiI7czoxOiJXIjtzOjM6IuGZriI7czoxOiJ4IjtzOjI6IsOXIjtzOjE6IngiO3M6Mzoi4qSrIjtzOjE6IngiO3M6Mzoi4qSsIjtzOjE6IngiO3M6Mzoi4qivIjtzOjE6IngiO3M6Mzoi772YIjtzOjE6IngiO3M6Mzoi4oW5IjtzOjE6IngiO3M6NDoi8J2QsSI7czoxOiJ4IjtzOjQ6IvCdkaUiO3M6MToieCI7czo0OiLwnZKZIjtzOjE6IngiO3M6NDoi8J2TjSI7czoxOiJ4IjtzOjQ6IvCdlIEiO3M6MToieCI7czo0OiLwnZS1IjtzOjE6IngiO3M6NDoi8J2VqSI7czoxOiJ4IjtzOjQ6IvCdlp0iO3M6MToieCI7czo0OiLwnZeRIjtzOjE6IngiO3M6NDoi8J2YhSI7czoxOiJ4IjtzOjQ6IvCdmLkiO3M6MToieCI7czo0OiLwnZmtIjtzOjE6IngiO3M6NDoi8J2aoSI7czoxOiJ4IjtzOjI6ItGFIjtzOjE6IngiO3M6Mzoi4ZWBIjtzOjE6IngiO3M6Mzoi4ZW9IjtzOjE6IngiO3M6Mzoi4ZmtIjtzOjE6IlgiO3M6Mzoi4pWzIjtzOjE6IlgiO3M6NDoi8JCMoiI7czoxOiJYIjtzOjQ6IvCRo6wiO3M6MToiWCI7czozOiLvvLgiO3M6MToiWCI7czozOiLihakiO3M6MToiWCI7czo0OiLwnZCXIjtzOjE6IlgiO3M6NDoi8J2RiyI7czoxOiJYIjtzOjQ6IvCdkb8iO3M6MToiWCI7czo0OiLwnZKzIjtzOjE6IlgiO3M6NDoi8J2TpyI7czoxOiJYIjtzOjQ6IvCdlJsiO3M6MToiWCI7czo0OiLwnZWPIjtzOjE6IlgiO3M6NDoi8J2WgyI7czoxOiJYIjtzOjQ6IvCdlrciO3M6MToiWCI7czo0OiLwnZerIjtzOjE6IlgiO3M6NDoi8J2YnyI7czoxOiJYIjtzOjQ6IvCdmZMiO3M6MToiWCI7czo0OiLwnZqHIjtzOjE6IlgiO3M6Mzoi6p6zIjtzOjE6IlgiO3M6MjoizqciO3M6MToiWCI7czo0OiLwnZq+IjtzOjE6IlgiO3M6NDoi8J2buCI7czoxOiJYIjtzOjQ6IvCdnLIiO3M6MToiWCI7czo0OiLwnZ2sIjtzOjE6IlgiO3M6NDoi8J2epiI7czoxOiJYIjtzOjM6IuKyrCI7czoxOiJYIjtzOjI6ItClIjtzOjE6IlgiO3M6Mzoi4rWdIjtzOjE6IlgiO3M6Mzoi4Zq3IjtzOjE6IlgiO3M6Mzoi6pOrIjtzOjE6IlgiO3M6NDoi8JCKkCI7czoxOiJYIjtzOjQ6IvCQirQiO3M6MToiWCI7czo0OiLwkIyXIjtzOjE6IlgiO3M6NDoi8JCUpyI7czoxOiJYIjtzOjI6IsmjIjtzOjE6InkiO3M6Mzoi4baMIjtzOjE6InkiO3M6Mzoi772ZIjtzOjE6InkiO3M6NDoi8J2QsiI7czoxOiJ5IjtzOjQ6IvCdkaYiO3M6MToieSI7czo0OiLwnZKaIjtzOjE6InkiO3M6NDoi8J2TjiI7czoxOiJ5IjtzOjQ6IvCdlIIiO3M6MToieSI7czo0OiLwnZS2IjtzOjE6InkiO3M6NDoi8J2VqiI7czoxOiJ5IjtzOjQ6IvCdlp4iO3M6MToieSI7czo0OiLwnZeSIjtzOjE6InkiO3M6NDoi8J2YhiI7czoxOiJ5IjtzOjQ6IvCdmLoiO3M6MToieSI7czo0OiLwnZmuIjtzOjE6InkiO3M6NDoi8J2aoiI7czoxOiJ5IjtzOjI6IsqPIjtzOjE6InkiO3M6Mzoi4bu/IjtzOjE6InkiO3M6Mzoi6q2aIjtzOjE6InkiO3M6MjoizrMiO3M6MToieSI7czozOiLihL0iO3M6MToieSI7czo0OiLwnZuEIjtzOjE6InkiO3M6NDoi8J2bviI7czoxOiJ5IjtzOjQ6IvCdnLgiO3M6MToieSI7czo0OiLwnZ2yIjtzOjE6InkiO3M6NDoi8J2erCI7czoxOiJ5IjtzOjI6ItGDIjtzOjE6InkiO3M6Mjoi0q8iO3M6MToieSI7czozOiLhg6ciO3M6MToieSI7czo0OiLwkaOcIjtzOjE6InkiO3M6Mzoi77y5IjtzOjE6IlkiO3M6NDoi8J2QmCI7czoxOiJZIjtzOjQ6IvCdkYwiO3M6MToiWSI7czo0OiLwnZKAIjtzOjE6IlkiO3M6NDoi8J2StCI7czoxOiJZIjtzOjQ6IvCdk6giO3M6MToiWSI7czo0OiLwnZScIjtzOjE6IlkiO3M6NDoi8J2VkCI7czoxOiJZIjtzOjQ6IvCdloQiO3M6MToiWSI7czo0OiLwnZa4IjtzOjE6IlkiO3M6NDoi8J2XrCI7czoxOiJZIjtzOjQ6IvCdmKAiO3M6MToiWSI7czo0OiLwnZmUIjtzOjE6IlkiO3M6NDoi8J2aiCI7czoxOiJZIjtzOjI6Is6lIjtzOjE6IlkiO3M6Mjoiz5IiO3M6MToiWSI7czo0OiLwnZq8IjtzOjE6IlkiO3M6NDoi8J2btiI7czoxOiJZIjtzOjQ6IvCdnLAiO3M6MToiWSI7czo0OiLwnZ2qIjtzOjE6IlkiO3M6NDoi8J2epCI7czoxOiJZIjtzOjM6IuKyqCI7czoxOiJZIjtzOjI6ItCjIjtzOjE6IlkiO3M6Mjoi0q4iO3M6MToiWSI7czozOiLhjqkiO3M6MToiWSI7czozOiLhjr0iO3M6MToiWSI7czozOiLqk6wiO3M6MToiWSI7czo0OiLwlr2DIjtzOjE6IlkiO3M6NDoi8JGipCI7czoxOiJZIjtzOjQ6IvCQirIiO3M6MToiWSI7czo0OiLwnZCzIjtzOjE6InoiO3M6NDoi8J2RpyI7czoxOiJ6IjtzOjQ6IvCdkpsiO3M6MToieiI7czo0OiLwnZOPIjtzOjE6InoiO3M6NDoi8J2UgyI7czoxOiJ6IjtzOjQ6IvCdlLciO3M6MToieiI7czo0OiLwnZWrIjtzOjE6InoiO3M6NDoi8J2WnyI7czoxOiJ6IjtzOjQ6IvCdl5MiO3M6MToieiI7czo0OiLwnZiHIjtzOjE6InoiO3M6NDoi8J2YuyI7czoxOiJ6IjtzOjQ6IvCdma8iO3M6MToieiI7czo0OiLwnZqjIjtzOjE6InoiO3M6Mzoi4bSiIjtzOjE6InoiO3M6Mzoi6q6TIjtzOjE6InoiO3M6NDoi8JGjhCI7czoxOiJ6IjtzOjQ6IvCQi7UiO3M6MToiWiI7czo0OiLwkaOlIjtzOjE6IloiO3M6Mzoi77y6IjtzOjE6IloiO3M6Mzoi4oSkIjtzOjE6IloiO3M6Mzoi4oSoIjtzOjE6IloiO3M6NDoi8J2QmSI7czoxOiJaIjtzOjQ6IvCdkY0iO3M6MToiWiI7czo0OiLwnZKBIjtzOjE6IloiO3M6NDoi8J2StSI7czoxOiJaIjtzOjQ6IvCdk6kiO3M6MToiWiI7czo0OiLwnZaFIjtzOjE6IloiO3M6NDoi8J2WuSI7czoxOiJaIjtzOjQ6IvCdl60iO3M6MToiWiI7czo0OiLwnZihIjtzOjE6IloiO3M6NDoi8J2ZlSI7czoxOiJaIjtzOjQ6IvCdmokiO3M6MToiWiI7czoyOiLOliI7czoxOiJaIjtzOjQ6IvCdmq0iO3M6MToiWiI7czo0OiLwnZunIjtzOjE6IloiO3M6NDoi8J2coSI7czoxOiJaIjtzOjQ6IvCdnZsiO3M6MToiWiI7czo0OiLwnZ6VIjtzOjE6IloiO3M6Mzoi4Y+DIjtzOjE6IloiO3M6Mzoi6pOcIjtzOjE6IloiO3M6NDoi8JGiqSI7czoxOiJaIjtzOjI6Isa/IjtzOjE6Iv4iO3M6Mjoiz7giO3M6MToi/iI7czoyOiLPtyI7czoxOiLeIjtzOjQ6IvCQk4QiO3M6MToi3iI7fQ==";

    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)
    {
        StringToStreamWrapper::prepare($string);
        $strippedStr = @php_strip_whitespace(StringToStreamWrapper::WRAPPER_NAME . '://');

        if (!$save_length) {
            return $strippedStr;
        } else {
            $iMax = strlen($string);
            $jMax = strlen($strippedStr);

            if ($iMax != $jMax) {
                $newStr = '';
                $j = 0;

                for ($i = 0; $i < $iMax; $i++) {
                    if (isset($strippedStr[$j]) && trim($string[$i]) === trim($strippedStr[$j])) {
                        $newStr .= $string[$i];
                        $j++;
                    } else {
                        $newStr .= ' ';
                    }
                }

                return $newStr;
            }

            return $strippedStr;
        }
    }

    public static function normalize($string, $save_length = false)
    {
        $search  = [ ' ;', ' =', ' ,', ' .', ' (', ' )', ' {', ' }', '; ', '= ', ', ', '. '
            , '( ', '( ', '{ ', '} ', ' !', ' >', ' <', ' _', '_ ', '< ',  '> ', ' $', ' %', '% '
            , '# ', ' #', '^ ', ' ^', ' &', '& ', ' ?', '? '];
        $replace = [  ';',  '=',  ',',  '.',  '(',  ')',  '{',  '}', ';',  '=',  ',',  '.'
            ,  '(',   ')', '{',  '}',   '!',  '>',  '<',  '_', '_',  '<',   '>',   '$',  '%', '%'
            ,  '#',   '#', '^',   '^',  '&', '&',   '?', '?'];

        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);
        }

        $iter = 0;
        $regexpHtmlAmp = '/\&[#\w]{2,20};/i';
        while ($iter < self::MAX_ITERATION && preg_match($regexpHtmlAmp, $string)) {
            $string = preg_replace_callback($regexpHtmlAmp, function ($m) use ($save_length) {
                if ($save_length) {
                    return str_pad(@html_entity_decode($m[0], ENT_QUOTES | ENT_HTML5), strlen($m[0]), ' ', STR_PAD_LEFT);
                } else {
                    return @html_entity_decode($m[0], ENT_QUOTES | ENT_HTML5);
                }
            }, $string);
            $iter++;
        }

        $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);
    }

    /**
     * @param array $confusables
     */
    public static function setConfusables(array $confusables)
    {
        self::$confusables = $confusables;
    }
}


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', Normalization::normalize($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
    const RX_SKIPPED_SMART  = 10; // skipped by smart scan

    /**
     * @var string;
     */
    private $filename;
    /**
     * @var int
     */
    private $key;
    /**
     * @var int
     */
    private $scanned_ts;
    /**
     * @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 $scanned_ts
     * @param int $verdict
     * @param $sha2
     * @param string $signature
     */
    private function __construct($key, $scanned_ts, $verdict, $sha2, $signature, $filename, $snippet, $updated_ts = 0)
    {
        $this->filename     = $filename;
        $this->key          = $key;
        $this->scanned_ts   = $scanned_ts;
        $this->verdict      = $verdict;
        $this->sha2         = $sha2;
        $this->snippet      = $snippet;
        $this->updated_ts   = $updated_ts;
        
        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);
        $scanned_ts = time();
        $updated_ts = max($mtime, $ctime);
        $sha2 = '';
        if (!$verdict) {
            $verdict = self::NEWFILE;
        }
        if ($signature!=='') {
            $signature = self::padTo10Bytes($signature);
        }
        return new self($key, $scanned_ts, $verdict, $sha2, $signature, $filename, $snippet, $updated_ts);
    }

    /**
     * @param $array
     * @return RapidScanStorageRecord
     */
    public static function fromArray($array)
    {
        $key        = $array['key'];
        $scanned_ts = $array['scanned_ts'];
        $sha2       = hex2bin($array['sha2']);
        $verdict    = $array['verdict'];
        $signature  = $array['signature'];
        return new self($key, $scanned_ts, $verdict, $sha2, $signature, '', '');
    }

    /**
     * @return array
     */
    public function toArray()
    {
        $array['key']           = $this->key;
        $array['scanned_ts']    = $this->scanned_ts;
        $array['verdict']       = $this->verdict;
        $array['sha2']          = bin2hex($this->sha2);
        $array['signature']     = $this->signature;
        return $array;
    }

    /**
     * @param $value
     * @return int
     */
    public static function getTsFromValue($value)
    {
        $timestamp  = unpack("l", substr($value, 0, 8));
        $scanned_ts = array_pop($timestamp);
        return $scanned_ts;
    }

    /**
     * @param $value
     * @return int
     */
    public static function getVerdictFromValue($value)
    {
        return (int)ord($value[8]);
    }

    /**
     * @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);
        }
    }

    /**
     * @param $ts
     */
    public function setScannedTs($ts)
    {
        $this->scanned_ts = $ts;
    }    

    /**
     * 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));
        $scanned_ts = array_pop($timestamp);
        $verdict = $value[8];
        $verdict = (int)ord($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, $scanned_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->scanned_ts < 0) ? str_pad(pack("l", $this->scanned_ts), 8, "\xff") : str_pad(pack("l", $this->scanned_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 getScannedTs()
    {
        return $this->scanned_ts;
    }

    /**
     * @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;
        $stat = stat($filename);
        $this->updated_ts = max($stat['mtime'], $stat['ctime']);
    }

    /**
     * @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
{
    const DB_VERSION = '1.0';

    protected $db_ver = '0';
    /**
     * @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 = [
            'create_if_missing' => true, 
            'compression'       => LEVELDB_NO_COMPRESSION
        ];
        $this->db_ver = $this->getDbVersion();
        if ($this->needMigrate()) {
            $this->migrateDb();
        }

        $this->new_db = new LevelDB($this->new_dir, $options);
        $this->old_db = new LevelDB($this->old_dir, $options);

        $this->storeVersion();

        $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(pack('P', $record->getKey()), $record->pack());
        return $value;
    }

    /**
     * @param $hash
     * @return bool|RapidScanStorageRecord
     */
    public function getNew($hash)
    {
        $value = $this->new_db->get(pack('P', $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(pack('P', $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(pack('P', $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, ['.', '..'])) {
                    continue;
                }
                $subpath = $path.DIRECTORY_SEPARATOR . $name;
                self::rmTree($subpath);
            }
            rmdir($path);
        } else {
            unlink($path);
        }
    }

    public function getOldTsForRescan($freq, $limit)
    {
        $freq           = $freq == 0 ? 1 : $freq;
        $i              = 0;
        $k              = 0;
        $timestamps     = [];
        $first_key      = false;
        $it             = $this->old_db->getIterator();
        $rewind_cnt     = 0;

        for ($it->seek(random_bytes(1)), $i = 0; $i <= $limit; $it->next()) {
            if (!$it->valid()) {
                if ($rewind_cnt > 2) { // Empty base
                    break;
                }
                $it->rewind();
                $rewind_cnt++;
            }

            $key = $it->key();
            if ($first_key === false) {
                $first_key = $key;
            } elseif ($first_key === $key) {
                break;
            }
            $value = $it->current();
            if (!$value) {
                continue;
            }

            if (RapidScanStorageRecord::getVerdictFromValue($value) === RapidScanStorageRecord::RX_GOOD) {
                $i++;
                $timestamps[] = RapidScanStorageRecord::getTsFromValue($value);
            }
        }
        $it->destroy();
        unset($it);
        sort($timestamps, SORT_NUMERIC);
        if ($i < $limit) {
            $limit = $i;
            $freq = 1;
        }
        $k = (int)($limit / $freq) - 1;
        return isset($timestamps[$k]) ? $timestamps[$k] : false;
    }

    public function getVersion()
    {
        return $this->db_ver;
    }

    private function getDbVersion()
    {
        if (!file_exists($this->old_dir . '/version.txt')) {
            return '0';
        }
        return trim(file_get_contents($this->old_dir . '/version.txt'));
    }

    private function needMigrate()
    {
        if ($this->db_ver === '0') {
            return true;
        }
        return false;
    }

    private function migrateDb()
    {
        $options = [
            '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;
        $this->startBatch();
        foreach($this->old_db->getIterator() as $key => $value) {
            $this->new_db->put(pack('P', (int)$key), $value);
            $this->batch_count++;
            if ($this->batch_count > 1000) {
                $this->flushBatch();
            }
        }
        $this->flushBatch();
        $this->storeVersion();
        $this->finish();
    }

    private function storeVersion()
    {
        file_put_contents($this->new_dir . '/version.txt', RapidScanStorage::DB_VERSION);
    }
}

/**
 * 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 $rescan_rx_good_count = 0;
    private $counter = 0;
    private $str_error = false;
    private $scanner = null;
    private $freq;
    private $old_rescan_ts = false;

    /**
     * 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 = [];
        $this->collisions = [];
        $this->processedFiles = 0;
        $this->counter = $counter;
        $this->scanner = $scanner;
        $this->freq = $vars->options['rapid-scan-rescan-frequency'] ?? false;

        if ($this->freq !== false) {
            $this->old_rescan_ts = $this->db->getOldTsForRescan($this->freq, 1000);
        }
    }

    /**
     * Get str error
     */
    public function getStrError()
    {
        return $this->str_error;
    }

    /**
     * Get count of rescan(regexp) files
     */
    public function getRescanCount()
    {
        return $this->rescan_count;
    }

    /**
     * Get count of rescan(regexp) RX_GOOD files
     */
    public function getRescanRxGoodCount()
    {
        return $this->rescan_rx_good_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 = [];
        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);
        $fileInfo->setScannedTs(time());
        if ($result !== RapidScanStorageRecord::RX_GOOD || $result !== RapidScanStorageRecord::RX_SKIPPED_SMART) {
            $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(), [
                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)
    {
        $rxgood_rescan = false;
        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_scanned = 0;
        if ($old_value) {
            $old_scanned = $old_value->getScannedTs();
            if ($file->getUpdatedTs() <= $old_scanned) {
                $file = $old_value;
                $file->setFilename($filename);
            }
        }

        if ($file->getVerdict() === RapidScanStorageRecord::UNKNOWN
            || $file->getVerdict() === RapidScanStorageRecord::CONFLICT
            || $file->getUpdatedTs() > $old_scanned
        ) {
            // 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])) {
                $snippet = $file->getSnippet();
                if (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_NONE && AI_EXTRA_WARN
            && $file->getVerdict() === RapidScanStorageRecord::RX_SUSPICIOUS
        ) {
            //this files were detected as rx suspicious before, let's report them
            $sigId = trim($file->getSignature(), "\0");

            if (isset($sigId) && isset($vars->signs->_Mnemo[$sigId])) {
                $snippet = $file->getSnippet();
                $vars->warningPHP[] = $i;
                $vars->warningPHPFragment[] = $snippet;
                $vars->warningPHPSig[] = $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(), [
                    RapidScanStorageRecord::RX_SUSPICIOUS,
                    RapidScanStorageRecord::RX_GOOD,
                    RapidScanStorageRecord::RX_MALWARE
                ])
            )
            || (
                $rescan === self::RESCAN_SUSPICIOUS
                && $file->getVerdict() === RapidScanStorageRecord::RX_SUSPICIOUS
            )
            || (
                $this->freq !== false && $this->old_rescan_ts !== false
                && $rescan === self::RESCAN_SUSPICIOUS
                && $file->getVerdict() === RapidScanStorageRecord::RX_GOOD
                && $old_scanned <= $this->old_rescan_ts
                && $rxgood_rescan = true
            )
        ) {
            //rescan all mode, all none white/black/dual listed files need to be re-scanned fully
            if ($rxgood_rescan) {
                $this->rescan_rx_good_count++;
            }
            $this->scanlist[$i] = $file;
        } elseif (defined('USE_HEURISTICS')
            && $file->getVerdict() === RapidScanStorageRecord::HEURISTIC
        ) {
            //this files were detected as HEURISTIC before, let's report them as malware
            $sigId = trim($file->getSignature(), "\0");
            $snippet = $file->getSnippet();
            $vars->criticalPHP[] = $i;
            $vars->criticalPHPFragment[] = $snippet;
            $vars->criticalPHPSig[] = $sigId;
            $this->scanner->AddResult($vars->fileinfo, $i, $vars);
            $this->db->put($file);
        } elseif (defined('USE_HEURISTICS_SUSPICIOUS')
            && $file->getVerdict() === RapidScanStorageRecord::HEURISTIC
        ) {
            //this files were detected as HEURISTIC, let's report them as suspicious
            $sigId = trim($file->getSignature(), "\0");
            $snippet = $file->getSnippet();
            $vars->warningPHP[] = $i;
            $vars->warningPHPFragment[] = $snippet;
            $vars->warningPHPSig[] = $sigId;
            $this->scanner->AddResult($vars->fileinfo, $i, $vars);
            $this->db->put($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 = [
            'criticalPHP',
            'criticalJS',
            'phishing',
            'adwareList',
            'warningPHP'
        ];
        foreach ($keys as $p) {
            if (empty($vars->{$p})) {
                continue;
            }
            $p_Fragment = $p . 'Fragment';
            $p_Sig      = $p . 'Sig';
            if ($p == '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 $critical_content = '^\s*<\?php'
        . '|^\s*<\?='
        . '|^#!/usr'
        . '|^#!/bin'
        . '|\beval'
        . '|\briny'
        . '|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'
        . '|RewriteCond';

    private $critical_js_content = '<script'
        . '|<iframe'
        . '|<object'
        . '|<embed'
        . '|fromCharCode'
        . '|setTimeout'
        . '|setInterval'
        . '|location\.'
        . '|document\.'
        . '|window\.'
        . '|navigator\.'
        . '|\$(this)\.'; /**$g_VirusEntries**/

    private $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);
        $this->extensions = array_flip(array_merge($this->extensions, $this->js_extensions, $this->phish_extensions));
        $this->critical_content = implode('|', [$this->critical_content, $this->critical_js_content, $this->critical_phish_content]);
    }

    /**
     * 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]);
        return isset($this->extensions[$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;
        return preg_match('~' . $this->critical_content . '~smiS', $content, $l_Found) ? true : false;
    }
}
class Helpers
{

    public static function normalize($string, $save_length = false)
    {
        $search  = [ ' ;', ' =', ' ,', ' .', ' (', ' )', ' {', ' }', '; ', '= ', ', ', '. '
        , '( ', '( ', '{ ', '} ', ' !', ' >', ' <', ' _', '_ ', '< ',  '> ', ' $', ' %', '% '
        , '# ', ' #', '^ ', ' ^', ' &', '& ', ' ?', '? '];
        $replace = [  ';',  '=',  ',',  '.',  '(',  ')',  '{',  '}', ';',  '=',  ',',  '.'
        ,  '(',   ')', '{',  '}',   '!',  '>',  '<',  '_', '_',  '<',   '>',   '$',  '%', '%'
        ,  '#',   '#', '^',   '^',  '&', '&',   '?', '?'];

        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)) ? [] : $matches[1];
    }

    public static function getHexValues($string)
    {
        preg_match_all('/0x[a-fA-F0-9]{1,8}/msi', $string, $matches);
        return (empty($matches)) ? [] : $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 = [];
        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 decodeEvalFuncBinary($input)
    {
        if (empty($input)) {
            return;
        }
        $keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        $chr1 = $chr2 = $chr3 = "";
        $enc1 = $enc2 = $enc3 = $enc4 = "";
        $i = 0;
        $output = "";
        $input = preg_replace("[^A-Za-z0-9\+\/\=]", "", $input);
        do {
            $enc1 = strpos($keyStr, substr($input, $i++, 1));
            $enc2 = strpos($keyStr, substr($input, $i++, 1));
            $enc3 = strpos($keyStr, substr($input, $i++, 1));
            $enc4 = strpos($keyStr, substr($input, $i++, 1));
            $chr1 = ($enc1 << 2) | ($enc2 >> 4);
            $chr2 = (($enc2 & 15) << 4) | ($enc3 >> 2);
            $chr3 = (($enc3 & 3) << 6) | $enc4;
            $output = $output . chr((int)$chr1);
            if ($enc3 != 64) {
                $output = $output . chr((int)$chr2);
            }
            if ($enc4 != 64) {
                $output = $output . chr((int)$chr3);
            }
            $chr1 = $chr2 = $chr3 = "";
            $enc1 = $enc2 = $enc3 = $enc4 = "";
        } while ($i < strlen($input));

        return $output;
    }

    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', 'strlen',
            'str_rot13', 'urldecode', 'rawurldecode', 'stripslashes', 'chr',
            'htmlspecialchars_decode', 'convert_uudecode','pack', 'ord',
            'str_repeat', 'sprintf', 'str_replace', 'strtr', 'hex2bin'
        ];
        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 = [0, 0, 0, 0];
        }

        $plain = [];
        $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[] = [$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+)\s?([+\-*\/])\s?(\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 = [];
        $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);
    }

    /**
     * For 4 args
     * @param array $arr
     *
     * @return string
     */
    public static function decodeEvalCreateFunc_1(array $arr) : string
    {
        $args = $arr;

        for ($i = 0; $i < 4; $i++) {
            for ($j = 0; $j < strlen($args[$i]); $j++) {
                $args[$i][$j] = chr(ord($args[$i][$j]) - ($i ? $args[$j xor $j] : 1));
            }
            if ($i == 2 && self::isSafeFunc($args[1]) && self::isSafeFunc($args[2])) {
                $args[3] = @$args[1](@$args[2]($args[3]));
            }
        }

        return $args[3];
    }

    /**
     * For 3 args
     * @param array $arr
     *
     * @return string
     */
    public static function decodeEvalCreateFunc_2(array $arr) : string
    {
        $args = $arr;

        for ($i = 0; $i < 3; $i++) {
            for ($j = 0; $j < strlen($args[$i]); $j++) {
                $args[$i][$j] = chr(ord($args[$i][$j]) - 1);
            }
            if ($i == 1 && self::isSafeFunc($args[0]) && self::isSafeFunc($args[1])) {
                $args[2] = @$args[0](@$args[1]($args[2]));
            }
        }

        return $args[2];
    }

    /**
     * @param string $key
     * @param string $data
     *
     * @return string
     */
    public static function decodeFuncVars(string $key, string $data): string
    {
        $hakfku = $data;
        $keyLen = strlen($key);
        $dataLen = strlen($hakfku);
        $res = "";
        for ($i = 0; $i < $dataLen;) {
            for ($j = 0; ($j < $keyLen && $i < $dataLen); $j++, $i++) {
                $res .= $hakfku[$i] ^ $key[$j];
            }
        }

        return $res;
    }

    /**
     * @param string $dictionary
     * @param string $content
     *
     * @return array
     */
    public static function getVarsFromDictionary($dictionary, $content) : array
    {
        $vars = [];

        preg_match_all('~(\$(?:[^\w]+|\w+)\s*=(\s?\.?\s?\$(?:[^\w]+|\w+)[{\[]\d+[\]}])+)~msi', $content, $concatMatches);
        for ($i = 0; $iMax = count($concatMatches[0]), $i <= $iMax; $i++) {
            preg_match_all('~(\$(?:[^\w]+|\w+)(=))?(\s?(\.?)\s?\$(?:[^\w]+|\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 array  $vars
     * @param string $content
     *
     * @return array
     */
    public static function getVarsFromDictionaryDynamically(array &$vars = [], string $content = ''): array
    {
        preg_match_all('~(\$\w+)(\.)?\s?=\s?(?:\$\w+[{\[]?\d+[}\]]?\.?)+;~msi', $content, $varsMatches, PREG_SET_ORDER);
        foreach ($varsMatches as $varsMatch) {
            preg_match_all('~(\$\w+)[{\[]?(\d+)?[}\]]?~msi', $varsMatch[0], $subVarsMatches, PREG_SET_ORDER);
            $concat = '';
            foreach ($subVarsMatches as $subVarsMatch) {
                if (isset($subVarsMatch[2])) {
                    $concat .= $vars[$subVarsMatch[1]][(int)$subVarsMatch[2]] ?? '';
                } else if ($varsMatch[1] !== $subVarsMatch[1]) {
                    $concat .= $vars[$subVarsMatch[1]];
                }
            }
            if (isset($vars[$varsMatch[1]])) {
                $vars[$varsMatch[1]] .= $concat;
            } else {
                $vars[$varsMatch[1]] = $concat;
            }
        }

        return $vars;
    }

    /**
     * @param string $str
     * @return string
     */
    public static function concatVariableValues($str) : string
    {
        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;
    }

    /**
     * Concats simple str without variable
     *
     * @param string $str
     * @return string
     */
    public static function concatStr($str) : string
    {
        preg_match_all('~(\.?)\s?[\'"]([\w=\+/%&]+)[\'"]\s?~msi', $str, $concatStrings);

        $strVar = "";

        foreach ($concatStrings[2] as $index => $concatString) {
            if ($concatStrings[1][$index] === '.') {
                $strVar .= $concatString;
            } else {
                $strVar = $concatString;
            }
        }

        return $strVar;
    }

    /**
     * Concats simple strings without variable in content globally
     *
     * @param string $str
     * @return string
     */
    public static function concatStringsInContent($str) : string
    {
        $strVar = preg_replace_callback('~((?:\.?[\'"][\w=]+[\'"]){2,})~msi', function ($m) {
            return '\'' . self::concatStr($m[1]) . '\'';
        }, $str);

        return $strVar;
    }

    /**
     * @param $dictionaryVar
     * @param $dictionaryValue
     * @param $str
     *
     * @return string
     */
    public static function replaceVarsFromDictionary($dictionaryVar, $dictionaryValue, $str) : string
    {
        $dictionaryName = $dictionaryVar[0] === '$' ? ('\\' . $dictionaryVar) : $dictionaryVar;
        $result = $str;

        if (preg_match('~\$GLOBALS\[([\'"]\w+[\'"])\]~msi', $dictionaryVar, $match)) {
            $dictionaryName = '\$GLOBALS\[' . $match[1] . '\]';
        }

        $result = preg_replace_callback(
            '~(?:' . $dictionaryName . '[\[{][\'"]?(?:\d+)[\'"]?[\]}]\s?\.?\s?)+~msi',
            function ($match) use ($dictionaryValue) {
                preg_match_all('~\]?[\[{][\'"]?(\d+)[\'"]?[\]}]\.?~msi', $match[0], $varsMatch);

                $result = "";

                foreach ($varsMatch[1] as $index) {
                    $result .= $dictionaryValue[(int)$index];
                }

                $lastChar = $match[0][strlen($match[0]) - 1] ?? null;
                $lastChar = $lastChar === '.' ? '.' : '';

                return "'$result'" . $lastChar;
            },
            $result
        );

        return $result;
    }

    /**
     * @param string $arrayName
     * @param array  $array
     * @param string $str
     *
     * @return string
     */
    public static function replaceVarsByArrayName(string $arrayName, array $array, string $str): string
    {
        $result = preg_replace_callback('~\s?\\' . $arrayName . '\s?\[\s?(\d+)\s?\]\s?~msi',
            function ($match) use ($array) {
                return $array[$match[1]] ?? $match[0];
            },
            $str
        );

        return $result;
    }

    /**
     * Collects simple or concated vars from str
     * @param string $str
     * @param string $trimQuote
     *
     * @return array
     */
    public static function collectVars($str, string $trimQuote = '"', &$vars = []) : array
    {
        preg_match_all('~(\$\w+)\s?(\.)?=\s?([\'"].*?[\'"]);~msi', $str, $matches);

        foreach ($matches[1] as $index => $match) {
            $varName = $match;
            $varValue = str_replace("$trimQuote.$trimQuote", '', $matches[3][$index]);
            $varValue = stripcslashes(trim($varValue, $trimQuote));
            if ($matches[2][$index] !== '.') {
                $vars[$varName] = $varValue;
            } else {
                $vars[$varName] .= $varValue;
            }
        }

        return $vars;
    }

    /**
     * Collects simple or concated str
     * @param string $str
     * @param string $trimQuote
     *
     * @return string
     */
    public static function collectStr($str, string $trimQuote = '"') : string
    {
        preg_match('~["\'\w%=\.]+~msi', $str, $match);

        $str = str_replace("$trimQuote.$trimQuote", '', $match[0]);
        $str = trim($str, $trimQuote);

        return $str;
    }

    /**
     * Collects function wrapped vars with one arg from str
     * ex. var1 = base64_decode(str1); var2 = gzinflate(str2); and etc.
     *
     * @param string $str
     *
     * @return array
     */
    public static function collectFuncVars(string $str, &$vars = []): array
    {
        preg_match_all('~(\$\w+)\s*=\s*(\w+)\([\'"]([\w+/=]+)[\'"]\);~msi', $str, $matches);

        foreach ($matches[1] as $index => $match) {
            $func = $matches[2][$index];
            $str = $matches[3][$index];

            if (self::isSafeFunc($func)) {
                $str = @$func($str);
            }
            $vars[$match] = self::isSafeFunc($str) ? $str : "'$str'";
        }

        return $vars;
    }

    /**
     * @param array  $vars
     * @param string $str
     *
     * @return string
     */
    public static function replaceVarsFromArray(array $vars, string $str, bool $isFunc = false, $toStr = false) : string
    {
        $result = $str;

        uksort($vars, function($a, $b) {
            return strlen($b) <=> strlen($a);
        });

        foreach ($vars as $name => $value) {
            $result = preg_replace_callback('~{?(@)?\${?[\'"]?GLOBALS[\'"]?}?\[[\'"]' . substr($name, 1) . '[\'"]\]}?~msi',
                function ($m) use ($value) {
                    return $m[1] . $value;
                }, $result);

            $result = str_replace('{' . $name . '}', $value, $result);
            $result = str_replace($name . '(', trim($value, '\'"') . '(', $result);

            if (!$isFunc && !$toStr) {
                $result = str_replace($name, $value, $result);
            } else if ($toStr) {
                $result = str_replace($name, "'$value'", $result);
            }

        }

        return $result;
    }

    /**
     * @param $str
     * @return array
     */
    public static function collectVarsChars($str)
    {
        $vars = [];
        preg_match_all('~(\$\w+)=\'(\w)\';~msi', $str, $matches, PREG_SET_ORDER);
        foreach ($matches as $m) {
            $vars[$m[1]] = $m[2];
        }
        return $vars;
    }

    /**
     * Removes duplicated string variables after replacing
     *
     * @param string $str
     *
     * @return string
     */
    public static function removeDuplicatedStrVars($str) : string
    {
        return preg_replace('~[\'"]?([^\'"]+)[\'"]?\s?=\s?[\'"]?\1[\'"]?;~msi','', $str);
    }

    /**
     * @param $chars
     * @param $str
     * @return array
     */
    public static function assembleStrings($chars, $str)
    {
        $vars = [];
        foreach($chars as $var => $char) {
            $str = preg_replace_callback('~\\' . $var . '\s*([.;])~ms',
                function ($m) use ($char) {
                return '\'' . $char . '\''. $m[1];
            }, $str);
        }
        $vars = self::collectVars($str, '\'');
        return $vars;
    }

    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 = [];
    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 = [
        [
            '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',
        ],
        [
            'full' => '~(\$\w+)\s*=\s*\'[\'.error_reporting]+;\s*\1\(0\);((?:\s*\$\w+\s*=\s*[\'abcdefgilnorstz64_.]+;)+)((?:\s*\$\w+\s*=\s*\'[^;]+\';)+)((?:\s*\$\w+\()+)(\$\w+)[\s\)]+;\s*die\(\);~mis',
            'fast' => '~(\$\w+)\s*=\s*\'[\'.error_reporting]+;\s*\1\(0\);((?:\s*\$\w+\s*=\s*[\'abcdefgilnorstz64_.]+;)+)((?:\s*\$\w+\s*=\s*\'[^;]+\';)+)((?:\s*\$\w+\()+)(\$\w+)[\s\)]+;\s*die\(\);~mis',
            'id'   => 'blackScorpShell',
        ],
        [
            'full' => '~(?(DEFINE)(?\'c\'(?:/\*\w+\*/)*))(\$\w+)\s*=\s*basename(?&c)\((?&c)trim(?&c)\((?&c)preg_replace(?&c)\((?&c)rawurldecode(?&c)\((?&c)"[%0-9A-F\.]+"(?&c)\)(?&c),\s*\'\',\s*__FILE__(?&c)\)(?&c)\)(?&c)\)(?&c);(\$\w+)\s*=\s*"([%\w\.\-\~]+)";(?:(\$\w+)=[^;]+;\5(?&c)\((?&c)\'\',\s*\'};\'\s*\.\s*(?&c)\()?(?:eval(?&c)\()?(?&c)rawurldecode(?&c)\((?&c)\3(?&c)\)(?&c)\s*\^\s*substr(?&c)\((?&c)str_repeat(?&c)\((?&c)\2,\s*(?&c)\((?&c)strlen(?&c)\((?&c)\3(?&c)\)(?&c)/strlen(?&c)\((?&c)\2(?&c)\)(?&c)\)(?&c)\s*\+\s*1(?&c)\)(?&c),\s*0,(?&c)\s*strlen(?&c)\((?&c)\3(?&c)\)(?&c)\)(?&c)\)(?:(?&c)\s*\.\s*\'{\'(?&c)\))?(?&c);~msi',
            'fast' => '~(?(DEFINE)(?\'c\'(?:/\*\w+\*/)*))(\$\w+)\s*=\s*basename(?&c)\((?&c)trim(?&c)\((?&c)preg_replace(?&c)\((?&c)rawurldecode(?&c)\((?&c)"[%0-9A-F\.]+"(?&c)\)(?&c),\s*\'\',\s*__FILE__(?&c)\)(?&c)\)(?&c)\)(?&c);(\$\w+)\s*=\s*"([%\w\.\-\~]+)";(?:(\$\w+)=[^;]+;\5(?&c)\((?&c)\'\',\s*\'};\'\s*\.\s*(?&c)\()?(?:eval(?&c)\()?(?&c)rawurldecode(?&c)\((?&c)\3(?&c)\)(?&c)\s*\^\s*substr(?&c)\((?&c)str_repeat(?&c)\((?&c)\2,\s*(?&c)\((?&c)strlen(?&c)\((?&c)\3(?&c)\)(?&c)/strlen(?&c)\((?&c)\2(?&c)\)(?&c)\)(?&c)\s*\+\s*1(?&c)\)(?&c),\s*0,(?&c)\s*strlen(?&c)\((?&c)\3(?&c)\)(?&c)\)(?&c)\)(?:(?&c)\s*\.\s*\'{\'(?&c)\))?(?&c);~msi',
            'id'   => 'xorFName',
        ],
        [
            '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',
        ],
        [
            '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',
        ],


        [
            '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',
        ],
        [
            'full' => '~preg_replace\([\'"]/\(\.\*\)/e[\'"],[\'"]([^\'"]+)[\'"],\s?NULL\);~msi',
            'fast' => '~preg_replace\([\'"]/\(\.\*\)/e[\'"],[\'"]([^\'"]+)[\'"],\s?NULL\);~msi',
            'id'   => 'pregReplaceStr',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~<\?php\s+(?:/[*/].*?)?(?:\$[O0]*=__FILE__;\s*)?(\$[O0]*)=urldecode\(\'([%a-f0-9]+)\'\);(\$(GLOBALS\[\')?[O0]*(\'\])?=(\d+);)?(.*?)(\$(GLOBALS\[\')?[O0]*(\'\])?\.?=(\$(GLOBALS\[\')?[O0]*(\'\])?([{\[]\d+[}\]])?\.?)+;)+([^\?]+)\?\>[\s\w\~=/+\\\\^{`%|@[}]+~msi',
            'fast' => '~(\$[O0]*)=urldecode\(\'([%a-f0-9]+)\'\);(\$(GLOBALS\[\')?[O0]*(\'\])?=(\d+);)?(.*?)(\$(GLOBALS\[\')?[O0]*(\'\])?\.?=(\$(GLOBALS\[\')?[O0]*(\'\])?([{\[]\d+[}\]])?\.?)+;)+([^\?]+)\?\>[\s\w\~=/+\\\\^{`%|@[}]+~msi',
            'id'   => 'LockIt',
        ],
        [
            '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',
        ],
        [
            'full' => '~\$_F=__FILE__;\$_X=\'([^\']+\');eval\([^\)]+\)+;~msi',
            'fast' => '~\$_F=__FILE__;\$_X=\'([^\']+\');eval\(~ms',
            'id'   => 'ByteRun',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$[\w{1,40}]+)\s?=\s?(urldecode|base64_decode)\(?[\'"]([\w+%=-]+)[\'"]\);(\s*\$\w+\.?\s?=\s?((?:\$\w+\s*\.\s*)?\$\w+[{\[]\d+[}\]]\s*[\.;]?\s*)+)+((\$\w+=["\']([^\'"]+)[\'"];\s*eval\(\'\?>\'\.[\$\w\(\)\*\d,\s]+);|(eval\(\s?\$\w+\([\'"]([^\'"]+)[\'"][)\s]+;)|header\(\'[^\']+\'\);(?:\$\w+=\${[^}]+}\[[^\]]+\]\(\'.*?\'?;}?\'\);)+\${[^}]+}\[[^\]]+\]\(\);)~msi',
            'fast' => '~(\$[\w{1,40}]+)\s?=\s?(urldecode|base64_decode)\(?[\'"]([\w+%=-]+)[\'"]\);(\s*\$\w+\.?\s?=\s?((?:\$\w+\s*\.\s*)?\$\w+[{\[]\d+[}\]]\s*[\.;]?\s*)+)+((\$\w+=["\']([^\'"]+)[\'"];\s*eval\(\'\?>\'\.[\$\w\(\)\*\d,\s]+);|(eval\(\s?\$\w+\([\'"]([^\'"]+)[\'"][)\s]+;)|header\(\'[^\']+\'\);(?:\$\w+=\${[^}]+}\[[^\]]+\]\(\'.*?\'?;}?\'\);)+\${[^}]+}\[[^\]]+\]\(\);)~msi',
            'id'   => 'UrlDecode2',
        ],
        [
            'full' => '~\$\w{1,40}\s?=\s?[\'"]?[\d\w]+[\'"]?;((?:(\$\w{1,40})=[\'"]([^\'"]+)[\'"];\s*)+(\$[\w{1,40}]+)=urldecode\(\2\);)\w+\((?:\4[{\[]\d+[}\]]\.?)+\);(?:(?:(?:\$\w+\s?=\s?@\$_SERVER\[)?\4[{\[]\d+[}\]]\.?\]?)+;)+(?:.*?\4[\[{]\d+[}\]])+.*?;}\?>~msi',
            'fast' => '~\$\w{1,40}\s?=\s?[\'"]?[\d\w]+[\'"]?;((?:(\$\w{1,40})=[\'"]([^\'"]+)[\'"];\s*)+(\$[\w{1,40}]+)=urldecode\(\2\);)\w+\((?:\4[{\[]\d+[}\]]\.?)+\);(?:(?:(?:\$\w+\s?=\s?@\$_SERVER\[)?\4[{\[]\d+[}\]]\.?\]?)+;)+(?:.*?\4[\[{]\d+[}\]])+.*?;}\?>~msi',
            'id'   => 'UrlDecode3',
        ],
        [
            'full' => '~(?:@?session_start\(\);)?(?:@?(?:set_time_limit|error_reporting)\(\d+\);){1,2}(?:@\$\w{1,50}=\$_POST\[base64_decode\([\'"][^\'"]+[\'"]\)\];|if\(\w{1,50}\(\)\){foreach\(\$_POST\s{0,50}as\s{0,50}\$\w{1,50}=>\$\w{1,50}\))(?:.*?base64_decode\([\'"][^\'"]+[\'"]\)){1,200}\)\);return\s?\$\w{1,50};}~msi',
            'fast' => '~(?:@?session_start\(\);)?(?:@?(?:set_time_limit|error_reporting)\(\d+\);){1,2}(?:@\$\w{1,50}=\$_POST\[base64_decode\([\'"][^\'"]+[\'"]\)\];|if\(\w{1,50}\(\)\){foreach\(\$_POST\s{0,50}as\s{0,50}\$\w{1,50}=>\$\w{1,50}\))(?:.*?base64_decode\([\'"][^\'"]+[\'"]\)){1,200}\)\);return\s?\$\w{1,50};}~msi',
            'id' => 'manyBase64DecodeContent',
        ],
        [
            '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',
        ],
        [
            'full' => '~\$[O0]+=\(base64_decode\(strtr\(fread\(\$[O0]+,(\d+)\),\'([^\']+)\',\'([^\']+)\'\)\)\);eval\([^\)]+\)+;~msi',
            'fast' => '~\$[O0]+=\(base64_decode\(strtr\(fread\(\$[O0]+,(\d+)\),\'([^\']+)\',\'([^\']+)\'\)\)\);eval\(~msi',
            'id'   => 'strtrFread',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~if\(!function_exists\(\"(\w+)\"\)\){function \1\(.+?eval\(\1\(\"[^\"]+\"\)\);~msi',
            'fast' => '~if\(!function_exists\(\"(\w+)\"\)\){function \1\(.+?eval\(\1\(\"[^\"]+\"\)\);~msi',
            'id'   => 'decoder',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~\$\w{1,40}=\'[^\']{0,100}(?:\'\^\')?[^\']*\';(?:\$\w{1,40}=\w{1,3};)?(?:\$\w{1,40}=\'[^\']+(?:\'\^\')?[^\']*\';)+\w{1,40};(?:.{0,6000}?)if\(\$\w{1,40}==\$\w{1,40}\(\$\w{1,40}\)\){(?:.{0,6000}?)\w{1,40};\s?\$\w{1,40}\(\'[^\']{0,100}\',\'[^\']{0,100}\'\);\'[^\']{0,100}\';~msi',
            'fast' => '~\$\w{1,40}=\'[^\']{0,100}(?:\'\^\')?[^\']*\';(?:\$\w{1,40}=\w{1,3};)?(?:\$\w{1,40}=\'[^\']+(?:\'\^\')?[^\']*\';)+\w{1,40};(?:.{0,6000}?)if\(\$\w{1,40}==\$\w{1,40}\(\$\w{1,40}\)\)~msi',
            'id'   => 'xoredVar',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$\w+)\s?=\s?[\'"](.*?)[\'"];\s?(\$\w+)\s?=\s?explode\(chr\(+(\d+\s?[-+]\s?\d+)\)+,\s?[\'"]((?:\d+,?)+)[\'"]\);\s?(\$\w+)\s?=\s?substr\(\1,\s?\(+(\d+\s?[-+]\s?\d+)\),\s?\(+(\d+\s?[-+]\s?\d+)\)\);\s?if\s?\(!function_exists\([\'"](\w+)[\'"]\)\)\s?{\s?function\s?\9\((\$\w+),\s?(\$\w+)\)\s?{\s?(\$\w+)\s?=\s?NULL;\s?for\s?\((\$\w+)\s?=\s0;\s?\13\s?<\s?\(sizeof\(\10\)\s?/\s?(\d+)\);\s?\13\+\+\)\s?{\s?\12\s?\.=\s?substr\(\11,\s?\10\[\(\13\s?\*\s?(\d+)\)\],\s?\10\[\(\13\s?\*\s?(\d+)\)\s?\+\s?(\d+)\]\);\s?}\s?return\s?\12;\s?}\s;\s?}\s?(\$\w+)\s?=\s?[\'"](.*?eval\(str_replace\(chr\(\(+(\d+\s?[-+]\s?\d+)\)\),\s?chr\(\(+(\d+\s?[-+]\s?\d+)\)\),\s?\9\(\3,\1\)\)\);.*?)[\'"];\s?(\$\w+)\s?=\s?substr\(\1,\s?\(+(\d+\s?[-+]\s?\d+)\),\s?\(+(\d+\s?[-+]\s?\d+)\)\);\s?\22\(\6,\s?\18,\s?NULL\);\s?\22\s?=\s?\18;\s?\22\s?=\s?\(+(\d+\s?[-+]\s?\d+)\);\s?\$\w+\s?=\s?\$\w+\s?\-\s?\d+;~msi',
            'fast' => '~(\$\w+)\s?=\s?[\'"](.*?)[\'"];\s?(\$\w+)\s?=\s?explode\(chr\(+(\d+\s?[-+]\s?\d+)\)+,\s?[\'"]((?:\d+,?)+)[\'"]\);\s?(\$\w+)\s?=\s?substr\(\1,\s?\(+(\d+\s?[-+]\s?\d+)\),\s?\(+(\d+\s?[-+]\s?\d+)\)\);\s?if\s?\(!function_exists\([\'"](\w+)[\'"]\)\)\s?{\s?function\s?\9\((\$\w+),\s?(\$\w+)\)\s?{\s?(\$\w+)\s?=\s?NULL;\s?for\s?\((\$\w+)\s?=\s0;\s?\13\s?<\s?\(sizeof\(\10\)\s?/\s?(\d+)\);\s?\13\+\+\)\s?{\s?\12\s?\.=\s?substr\(\11,\s?\10\[\(\13\s?\*\s?(\d+)\)\],\s?\10\[\(\13\s?\*\s?(\d+)\)\s?\+\s?(\d+)\]\);\s?}\s?return\s?\12;\s?}\s;\s?}\s?(\$\w+)\s?=\s?[\'"](.*?eval\(str_replace\(chr\(\(+(\d+\s?[-+]\s?\d+)\)\),\s?chr\(\(+(\d+\s?[-+]\s?\d+)\)\),\s?\9\(\3,\1\)\)\);.*?)[\'"];\s?(\$\w+)\s?=\s?substr\(\1,\s?\(+(\d+\s?[-+]\s?\d+)\),\s?\(+(\d+\s?[-+]\s?\d+)\)\);\s?\22\(\6,\s?\18,\s?NULL\);\s?\22\s?=\s?\18;\s?\22\s?=\s?\(+(\d+\s?[-+]\s?\d+)\);\s?\$\w+\s?=\s?\$\w+\s?\-\s?\d+;~msi',
            'id'   => 'arrayOffsetsEval',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',

        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~\$\w+=([create_function"\'.]+);\s?\$\w+=\$\w+\([\'"]\\\\?\$\w+[\'"],((?:[\'"][eval]{0,4}[\'"]\.?)+)\.([\'"](\([\'"]\?>[\'"]\.)\w+[\'"]\.[^)\\\\]+)\\\\?\$\w+\)+;[\'"]\);\s?\$\w+\([\'"]([\w\+=\\\\\'"%/]+)[\'"]\);~msi',
            'fast' => '~\$\w+=([create_function"\'.]+);\s?\$\w+=\$\w+\([\'"]\\\\?\$\w+[\'"],((?:[\'"][eval]{0,4}[\'"]\.?)+)\.([\'"](\([\'"]\?>[\'"]\.)\w+[\'"]\.[^)\\\\]+)\\\\?\$\w+\)+;[\'"]\);\s?\$\w+\([\'"]([\w\+=\\\\\'"%/]+)[\'"]\);~msi',
            'id'   => 'createFunc',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~<\?php\s*(eval(?:\(\w+)+\((substr\(file_get_contents\(__FILE__\),\s?(\d+)\))\)+;)\s*__halt_compiler\(\);\s*[\w+/]+~msi',
            'fast' => '~<\?php\s*(eval(?:\(\w+)+\((substr\(file_get_contents\(__FILE__\),\s?(\d+)\))\)+;)\s*__halt_compiler\(\);\s*[\w+/]+~msi',
            'id' => 'evalFileContentOffset',
        ],
        [
            'full' => '~(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\1\((\(-(\d+)-\(-\9\)\))\);@set_time_limit\((\(-(\d+)-\(-\11\)\))\);)eval\(base64_decode\(((?:(?|[\'"]\d+[\'"]|chr\(\d+\))\.?)+)\)\.gzinflate\(str_rot13\(\3\(\5\){4};~msi',
            'fast' => '~(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\1\((\(-(\d+)-\(-\9\)\))\);@set_time_limit\((\(-(\d+)-\(-\11\)\))\);)eval\(base64_decode\(((?:(?|[\'"]\d+[\'"]|chr\(\d+\))\.?)+)\)\.gzinflate\(str_rot13\(\3\(\5\){4};~msi',
            'id'   => 'evalConcatedVars',
        ],
        [
            'full' => '~(\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\]="[\w\\\\]+";(\$\w+="\w+";)?){5,}.+\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\].+}+~msi',
            'fast' => '~(\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\]="[\w\\\\]+";(\$\w+="\w+";)?){5,}.+\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\].+}+~msi',
            'id'   => 'Obf_20200618_1',
        ],
        [
            'full' => '~(\$\w+\s?=\s?(\w+)\(\'\d+\'\);\s*)+\$\w+\s?=\s?new\s?\$\w+\(\2\(\'(\d+)\'\)+;\s?error_reporting\(0\);\s?eval\(\$\w+\(\$\w+->\$\w+\("([^"]+)"\)+;.+?function \2.+?return\s\$\w+;\s}~msi',
            'fast' => '~(\$\w+\s?=\s?(\w+)\(\'\d+\'\);\s*)+\$\w+\s?=\s?new\s?\$\w+\(\2\(\'(\d+)\'\)+;\s?error_reporting\(0\);\s?eval\(\$\w+\(\$\w+->\$\w+\("([^"]+)"\)+;.+?function \2.+?return\s\$\w+;\s}~msi',
            'id'   => 'aanKFM',
        ],
        [
            'full' => '~error_reporting\(\d\);@?set_time_limit\(\d\);(\$\w{1,50})\s?=\s?[\'"]([^\'"]+)[\'"];(\$\w{1,50})\s?=\s?[\'"]([^\'"]+)[\'"];(\$\w{1,50})\s?=\s?[\'"]([^\'"]{0,100})[\'"];(\$\w{1,50}\s?=\s?[\'"][^\'"]{0,500}[\'"];)eval\(gzinflate\(base64_decode\(\3\)\)\);rebirth\(\);eval\(gzinflate\(base64_decode\(hate\(\1,\5\){4};~msi',
            'fast' => '~error_reporting\(\d\);@?set_time_limit\(\d\);(\$\w{1,50})\s?=\s?[\'"]([^\'"]+)[\'"];(\$\w{1,50})\s?=\s?[\'"]([^\'"]+)[\'"];(\$\w{1,50})\s?=\s?[\'"]([^\'"]{0,100})[\'"];(\$\w{1,50}\s?=\s?[\'"][^\'"]{0,500}[\'"];)eval\(gzinflate\(base64_decode\(\$\w{1,50}\)\)\);rebirth\(\);eval\(gzinflate\(base64_decode\(hate\(\$\w{1,50},\$\w{1,50}\){4};~msi',
            'id' => 'evalLoveHateFuncs',
        ],
        [
            'full' => '~function\s?(\w+)\(\){\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?\2\s?=\s?str_rot13\(\2\);\s?(\w+)\(\2\);\s?}\s?function\s?\4\((\$\w+)\){\s?(?:global\s?\$\w+;\s?)?\5\s?=\s?pack\([\'"]H\*[\'"],\5\);\s?(\$\w+)\s?=\s?[\'"]{2};\s?eval\(((?:\6|\5)\.?)+\);\s?}\s?\1\(\);~msi',
            'fast' => '~function\s?(\w+)\(\){\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?\2\s?=\s?str_rot13\(\2\);\s?(\w+)\(\2\);\s?}\s?function\s?\4\((\$\w+)\){\s?(?:global\s?\$\w+;\s?)?\5\s?=\s?pack\([\'"]H\*[\'"],\5\);\s?(\$\w+)\s?=\s?[\'"]{2};\s?eval\(((?:\6|\5)\.?)+\);\s?}\s?\1\(\);~msi',
            'id'   => 'evalPackStrrot',
        ],
        [
            'full' => '~error_reporting\(\d\);(?:\$\w+=[\'"]\w+[\'"];)?ini_set\([\'"]\w+[\'"],\d\);eval\(base64_decode\([\'"]([\w\+=]+)[\'"]\)\);\$\w+=str_split\([\'"]([}\w|,[=\'\.;\]&]+)[\'"]\);\$\w+=[\'"]{2};foreach\(\$\w+\s{0,50}as\s{0,50}\$\w+\){foreach\((\$\w+)\s{0,50}as\s{0,50}\$\w+\s{0,50}=>\s{0,50}\$\w+\){(?:\$\w+=[\'"]\w+[\'"];\$\w+=[\'"]\w+[\'"];)?if\(\$\w+\s{0,50}==\s{0,50}\(string\)\$\w+\){(?:\$\w+=[\'"]\w+[\'"];\$\w+=[\'"]\w+[\'"];)?\$\w+\s{0,50}\.=\s{0,50}\$\w+;break;}}}eval\([\'"]\?>[\'"]\.gzinflate\(base64_decode\(\$\w+\)\)\);~msi',
            'fast' => '~error_reporting\(\d\);(?:\$\w+=[\'"]\w+[\'"];)?ini_set\([\'"]\w+[\'"],\d\);eval\(base64_decode\([\'"]([\w\+=]+)[\'"]\)\);\$\w+=str_split\([\'"]([}\w|,[=\'\.;\]&]+)[\'"]\);\$\w+=[\'"]{2};foreach\(\$\w+\s{0,50}as\s{0,50}\$\w+\){foreach\((\$\w+)\s{0,50}as\s{0,50}\$\w+\s{0,50}=>\s{0,50}\$\w+\){(?:\$\w+=[\'"]\w+[\'"];\$\w+=[\'"]\w+[\'"];)?if\(\$\w+\s{0,50}==\s{0,50}\(string\)\$\w+\){(?:\$\w+=[\'"]\w+[\'"];\$\w+=[\'"]\w+[\'"];)?\$\w+\s{0,50}\.=\s{0,50}\$\w+;break;}}}eval\([\'"]\?>[\'"]\.gzinflate\(base64_decode\(\$\w+\)\)\);~msi',
            'id'   => 'evalArrayVar',
        ],
        [
            'full' => '~((\$\w+)\s*\.=\s*"[^"]+";\s*)+eval\((\$\w+\s*\.?\s*)+\)~msi',
            'fast' => '~((\$\w+)\s*\.=\s*"[^"]+";\s*)+eval\((\$\w+\s*\.?\s*)+\)~msi',
            'id'   => 'evalVarConcat',
        ],
        [
            'full' => '~((\$[^\s=]+)\s*=\s*[\'"]([^\'"]+)[\'"];\s*)+\s*.{0,10}?(?:error_reporting\(\d\);|@set_time_limit\(\d\);|@){0,2}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"\']?(\$[^\s=\'")]+)?(?:str_replace\((?:.+?,){3}\2?)?[\s"\']?\){0,1})\)+;~msi',
            'fast' => '~((\$[^\s=]+)\s*=\s*[\'"]([^\'"]+)[\'"];\s*)+\s*.{0,10}?(?:error_reporting\(\d\);|@set_time_limit\(\d\);|@){0,2}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"\']?(\$[^\s=\'")]+)?(?:str_replace\((?:.+?,){3}\2?)?[\s"\']?\){0,1})\)+;~msi',
            'id'   => 'evalVar',
        ],
        [
            'full' => '~((?:(?:\$\w+=[\'"]\\\\[^\'"]+)[\'"];)+)@(eval\((?:\$\w+\()+[\'"]([^\'"]+)[\'"]\)+;)~msi',
            'fast' => '~((?:(?:\$\w+=[\'"]\\\\[^\'"]+)[\'"];)+)@(eval\((?:\$\w+\()+[\'"]([^\'"]+)[\'"]\)+;)~msi',
            'id'   => 'evalVarSlashed',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?bin2hex\(\5\);\s?(\$\w+)\s?=\s?hex2bin\(\7\);\s*(?:eval\()+[\'"]\?>[\'"]\.\1\(\3\(\8\)+;~msi',
            'fast' => '~(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?bin2hex\(\5\);\s?(\$\w+)\s?=\s?hex2bin\(\7\);\s*(?:eval\()+[\'"]\?>[\'"]\.\1\(\3\(\8\)+;~msi',
            'id'   => 'evalBinHexVar',
        ],
        [
            'full' => '~((?:\${"(?:\w{0,10}?\\\\x\w{1,10}){1,100}"}\["\w{0,10}?(?:\\\\x\w{1,10}){1,100}"\]="(?:\\\\x\w{1,10}){1,100}";)+.*?define.*?)\${\$\w{1,50}}=array\(array\(((?:"[^"]{1,500}",?){1,1000})\)\);(.*create_function\(.*?array_walk\(\${\${"(?:\\\\x\w{1,10}){1,10}"}\["(?:\\\\x\w{1,10}){1,10}"\]},\${\${"(?:\\\\x\w{1,10}){1,10}"}\["(?:\w?\\\\x\w{1,10}){1,10}"\]}\);)~msi',
            'fast' => '~((?:\${"(?:\w{0,10}?\\\\x\w{1,10}){1,100}"}\["\w{0,10}?(?:\\\\x\w{1,10}){1,100}"\]="(?:\\\\x\w{1,10}){1,100}";)+.*?define.*?)\${\$\w{1,50}}=array\(array\(((?:"[^"]{1,500}",?){1,1000})\)\);(.*create_function\(.*?array_walk\(\${\${"(?:\\\\x\w{1,10}){1,10}"}\["(?:\\\\x\w{1,10}){1,10}"\]},\${\${"(?:\\\\x\w{1,10}){1,10}"}\["(?:\w?\\\\x\w{1,10}){1,10}"\]}\);)~msi',
            'id' => 'evalArrayWalkFunc'
        ],
        [
            'full' => '~(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s*eval\([\'"]\?>[\'"]\s?\.\s?base64_decode\(strtr\(substr\(\1\s?,(\d+)\*(\d+)\)\s?,\s?substr\(\1\s?,(\d+)\s?,\s?(\d+)\)\s?,\s*substr\(\s?\1\s?,\s?(\d+)\s?,\s?(\d+)(?:\s?\))+;~msi',
            'fast' => '~(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s*eval\([\'"]\?>[\'"]\s?\.\s?base64_decode\(strtr\(substr\(\1\s?,(\d+)\*(\d+)\)\s?,\s?substr\(\1\s?,(\d+)\s?,\s?(\d+)\)\s?,\s*substr\(\s?\1\s?,\s?(\d+)\s?,\s?(\d+)(?:\s?\))+;~msi',
            'id' => 'evalSubstrVal'
        ],
        [
            'full' => '~(preg_replace\(["\']/\.\*?/[^"\']+["\']\s*,\s*)[^\),]+(?:[\)\\\\0-5]+;[\'"])?(,\s*["\'][^"\']*["\'])\)+;~msi',
            'fast' => '~(preg_replace\(["\']/\.\*?/[^"\']+["\']\s*,\s*)[^\),]+(?:[\)\\\\0-5]+;[\'"])?(,\s*["\'][^"\']*["\'])\)+;~msi',
            'id'   => 'eval',
        ],
        [
            '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',

        ],
        [
            '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',

        ],
        [
            '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',

        ],
        [
            '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',

        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~eval\s*\(str_rot13\s*\([\'"]+\s*(?:.+(?=\\\\\')\\\\\'[^\'"]+)+[\'"]+\)+;~msi',
            'fast' => '~eval\s*\(str_rot13\s*\([\'"]+\s*(?:.+(?=\\\\\')\\\\\'[^\'"]+)+[\'"]+\)+;~msi',
            'id'   => 'evalCodeFunc',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$\w+)=[\'"][^"\']+[\'"];(\$\w+)=strrev\(\'edoced_46esab\'\);eval\(\2\([\'"][^\'"]+[\'"]\)+;~msi',
            'fast' => '~(\$\w+)=[\'"][^"\']+[\'"];(\$\w+)=strrev\(\'edoced_46esab\'\);eval\(\2\([\'"][^\'"]+[\'"]\)+;~msi',
            'id'   => 'edoced_46esab',
        ],
        [
            'full' => '~(\$\w+)=strrev\([\'"](?:|ed|oc|_|4|6|es|ab|(?:"\."))+[\'"]\);\s*(\$\w+)=strrev\([\'"](?:|et|al|fn|iz|g|(?:"\."))+[\'"]\);\s?@?eval\(\2\(\1\([\'"]([\w\/\+=]+)[\'"]\)\)\);~msi',
            'fast' => '~(\$\w+)=strrev\([\'"](?:|ed|oc|_|4|6|es|ab|(?:"\."))+[\'"]\);\s*(\$\w+)=strrev\([\'"](?:|et|al|fn|iz|g|(?:"\."))+[\'"]\);\s?@?eval\(\2\(\1\([\'"]([\w\/\+=]+)[\'"]\)\)\);~msi',
            'id'   => 'edoced_46esab_etalfnizg',
        ],
        [
            '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',
        ],
        [
            'full' => '~(?:\${"\\\\x[\\\\\w]+"}\["\\\\x[\\\\\w]+"\]\s?=\s?"[\w\\\\]+";){1,10}\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\s?=\s?"\w{1,100}";\${\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\s?}="(\\\\x[\\\\\w]+)";eval\(((?|str_rot13\(|gzinflate\(|base64_decode\(){1,10})\(\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\){1,5};~msi',
            'fast' => '~(?:\${"\\\\x[\\\\\w]+"}\["\\\\x[\\\\\w]+"\]\s?=\s?"[\w\\\\]+";){1,10}\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\s?=\s?"\w{1,100}";\${\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\s?}="(\\\\x[\\\\\w]+)";eval\(((?|str_rot13\(|gzinflate\(|base64_decode\(){1,10})\(\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\){1,5};~msi',
            'id'   => 'evalEscapedCharsContent',
        ],
        [
            '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*\(|hex2bin\()+.*?[^\'");]+((\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*\(|hex2bin\()+.*?[^\'");]+((\s*\.?[\'"]([^\'";]+[\'"]*\s*)+)?\s*[\'"\);]+)+(\s*\2\(\);)?~msi',
            'id'   => 'eval',
        ],
        [
            'full' => '~eval\s*/\*[\w\s\.:,]+\*/\s*\([^\)]+\)+;~msi',
            'fast' => '~eval\s*/\*[\w\s\.:,]+\*/\s*\(~msi',
            'id'   => 'eval',
        ],
        [
            'full' => '~((?:\$\w+\s?=\s?(?:base64_decode|str_rot13)\([\'"][^\'"]+[\'"]\);)+)\s?(eval\((?:(?:\w+\()*\$\w+\(?)+(?:.*?)?\)+;)~msi',
            'fast' => '~((?:\$\w+\s?=\s?(?:base64_decode|str_rot13)\([\'"][^\'"]+[\'"]\);)+)\s?(eval\((?:(?:\w+\()*\$\w+\(?)+(?:.*?)?\)+;)~msi',
            'id'   => 'evalFuncVars',
        ],
        [
            'full' => '~eval\("\\\\145\\\\166\\\\141\\\\154\\\\050\\\\142\\\\141\\\\163[^\)]+\)+;~msi',
            'fast' => '~eval\("\\\\145\\\\166\\\\141\\\\154\\\\050\\\\142\\\\141\\\\163~msi',
            'id'   => 'evalHex',
        ],
        [
            'full' => '~eval\s*\("\\\\x?\d+[^\)]+\)+;(?:[\'"]\)+;)?~msi',
            'fast' => '~eval\s*\("\\\\x?\d+~msi',
            'id'   => 'evalHex',
        ],
        [
            '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',
        ],
        [
            'full' => '~if\(!function_exists\([\'"](\w+)[\'"]\)\){function\s?\1\((\$\w+)\){(\$\w+)=array\(\'(\d+)\',\'([^\']+)\',\'([^\']+)\',\2\);for\((\$\w+)=0;\7<4;\7\+\+\){for\((\$\w+)=0;\8<strlen\(\3\[\7\]\);\8\+\+\)\s?\3\[\7\]\[\8\]\s?=\s?chr\(ord\(\3\[\7\]\[\8\]\)-\(\7\?\3\[\8\s?xor\s?\8\]:1\)\);if\(\7==2\)\s?\3\[3\]=\3\[1\]\(\3\[2\]\(\3\[3\]\)\);}\s?return\s?\3\[3\];}(\$\w+)=["\']([\w\+\/=]+)["\'];(\$\w+)=[\'"]\1[\'"];(\$\w+)=\11\([\'"]([\w=]+)[\'"]\);\$\w+=\12\(\'\',\11\(\9\)\);\$\w+\(\);}~msi',
            'fast' => '~if\(!function_exists\([\'"](\w+)[\'"]\)\){function\s?\1\((\$\w+)\){(\$\w+)=array\(\'(\d+)\',\'([^\']+)\',\'([^\']+)\',\2\);for\((\$\w+)=0;\7<4;\7\+\+\){for\((\$\w+)=0;\8<strlen\(\3\[\7\]\);\8\+\+\)\s?\3\[\7\]\[\8\]\s?=\s?chr\(ord\(\3\[\7\]\[\8\]\)-\(\7\?\3\[\8\s?xor\s?\8\]:1\)\);if\(\7==2\)\s?\3\[3\]=\3\[1\]\(\3\[2\]\(\3\[3\]\)\);}\s?return\s?\3\[3\];}(\$\w+)=["\']([\w\+\/=]+)["\'];(\$\w+)=[\'"]\1[\'"];(\$\w+)=\11\([\'"]([\w=]+)[\'"]\);\$\w+=\12\(\'\',\11\(\9\)\);\$\w+\(\);}~msi',
            'id'   => 'evalCreateFunc',
        ],
        [
            'full' => '~(\$\w{1,1000})=[\'"]([\'"\w/\+=]+)[\'"];(\$\w{1,3000}=(?:base64_decode|gzinflate|convert_uudecode|str_rot13)\(\$\w{1,3000}\);){1,100}eval\((\$\w{1,3000})\);~msi',
            'fast' => '~(\$\w{1,1000})=[\'"]([\'"\w/\+=]+)[\'"];(\$\w{1,3000}=(?:base64_decode|gzinflate|convert_uudecode|str_rot13)\(\$\w{1,3000}\);){1,100}eval\((\$\w{1,3000})\);~msi',
            'id'   => 'evalAssignedVars',
        ],
        [
            'full' => '~\$\w{1,50}=\'printf\';(\s*\$\w{1,50}\s*=\s*\'[^\']+\'\s*;)+\s*(\$\w{1,50}\s*=\s*\$\w{1,50}\([^\)]+\);\s*|(?:if\(!function_exists\(\'[^\']+\'\)\){function\s\w{1,50}\(\$\w{1,50},\$\w{1,50}\){return\s?eval\("return function\(\$\w{1,50}\){{\$\w{1,50}}};"\);}}\s*)?)+(\$\w{1,50}\s*=\s*\'[^\']+\';\s*)?(\s*(\$\w{1,50}\s*=\s*)?\$\w+\([^)]*\)+;\s*)+(echo\s*\$\w{1,50};)?~msi',
            'fast' => '~\$\w{1,50}=\'printf\';(\s*\$\w{1,50}\s*=\s*\'[^\']+\'\s*;)+\s*(\$\w{1,50}\s*=\s*\$\w{1,50}\([^\)]+\);\s*|(?:if\(!function_exists\(\'[^\']+\'\)\){function\s\w{1,50}\(\$\w{1,50},\$\w{1,50}\){return\s?eval\("return function\(\$\w{1,50}\){{\$\w{1,50}}};"\);}}\s*)?)+(\$\w{1,50}\s*=\s*\'[^\']+\';\s*)?(\s*(\$\w{1,50}\s*=\s*)?\$\w+\([^)]*\)+;\s*)+(echo\s*\$\w{1,50};)?~msi',
            'id'   => 'seolyzer',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$\w{1,50}\s*=\s*"[^"]{1,1000}";\s*)+(\$\w{1,50}\s*=\s*\$?\w{1,50}\("\w{1,50}"\s*,\s*""\s*,\s*"\w{1,50}"\);\s*)+\$\w{1,50}\s*=\s*\$\w{1,50}\("",\s*\$\w{1,50}\(\$\w{1,50}\("\w{1,50}",\s*"",(\s*\$\w{1,50}\.?)+\)+;\$\w{1,50}\(\);~msi',
            'fast' => '~(\$\w{1,50}\s*=\s*"[^"]{1,1000}";\s*)+(\$\w{1,50}\s*=\s*\$?\w{1,50}\("\w{1,50}"\s*,\s*""\s*,\s*"\w{1,50}"\);\s*)+\$\w{1,50}\s*=\s*\$\w{1,50}\("",\s*\$\w{1,50}\(\$\w{1,50}\("\w{1,50}",\s*"",(\s*\$\w{1,50}\.?)+\)+;\$\w{1,50}\(\);~msi',
            'id'   => 'strreplace',
        ],
        [
            'full' => '~\$\w{1,50}\s?=\s?\'[^\']{1,500}\';\s?\$\w{1,50}\s?=\s?str_replace\(\'\w{1,50}\',\'\',\'\w{1,100}\'\);\s?(?:\$\w{1,50}\s?=\s?\'[^\']{1,500}\';\s?){1,15}\$\w{1,50}\s?=\s?str_replace\(\'[^\']{1,100}\',\'\',(?:\$\w{1,50}\.?){1,50}\);\s?\$\w{1,50}\s?=\s?\$\w{1,50}\(\'\',\$\w{1,50}\);\$\w{1,50}\(\);~msi',
            'fast' => '~\$\w{1,50}\s?=\s?\'[^\']{1,500}\';\s?\$\w{1,50}\s?=\s?str_replace\(\'\w{1,50}\',\'\',\'\w{1,100}\'\);\s?(?:\$\w{1,50}\s?=\s?\'[^\']{1,500}\';\s?){1,15}\$\w{1,50}\s?=\s?str_replace\(\'[^\']{1,100}\',\'\',(?:\$\w{1,50}\.?){1,50}\);\s?\$\w{1,50}\s?=\s?\$\w{1,50}\(\'\',\$\w{1,50}\);\$\w{1,50}\(\);~msi',
            'id'   => 'strreplace',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$\w+)=strrev\(str_ireplace\("[^"]+","","[^"]+"\)\);(\$\w+)="([^"]+)";eval\(\1\(\2\)+;}~msi',
            'fast' => '~(\$\w+)=strrev\(str_ireplace\("[^"]+","","[^"]+"\)\);(\$\w+)="([^"]+)";eval\(\1\(\2\)+;}~msi',
            'id'   => 'evalIReplace',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~\$_F=__(?:FILE|hex)__;\$_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|hex)__;\$_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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$[\w_]+=("[\\\\\\\\\w]+"\.?)+;)+\$\w+=(?:\$\w+\()+"([\w\/\+=]+)"\)+;@eval\(\$\w+\(\'.*?\'\)+;~msi',
            'fast' => '~(\$[\w_]+=("[\\\\\\\\\w]+"\.?)+;)+\$\w+=(?:\$\w+\()+"([\w\/\+=]+)"\)+;@eval\(\$\w+\(\'.*?\'\)+;~msi',
            'id'   => 'ud64',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$\w+)=base64_decode\("([^"]+)"\);\s*eval\("return\s*eval\(\\\\"\1\\\\"\);"\)~msi',
            'fast' => '~(\$\w+)=base64_decode\("([^"]+)"\);\s*eval\("return\s*eval\(\\\\"\1\\\\"\);"\)~msi',
            'id'   => 'evalReturn',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$\w+=strrev\("[^"]+"\);)+eval\((\$\w+\()+"[^"]+"\)+;~mis',
            'fast' => '~(\$\w+=strrev\("[^"]+"\);)+eval\((\$\w+\()+"[^"]+"\)+;~mis',
            'id'   => 'strrevVarEval',
        ],
        [
            'full' => '~\$\w+=basename/\*\w+\*/\(/\*\w+\*/trim/\*\w+\*/\(.+?(\$\w+)=.+\1.+?;~msi',
            'fast' => '~\$\w+=basename/\*\w+\*/\(/\*\w+\*/trim/\*\w+\*/\(.+?(\$\w+)=.+\1.+?;~msi',
            'id'   => 'comments',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~(?:function\s*\w{1,50}\(\$\w{1,50},\s*\$\w{1,50}\)\s*\{(?:\s*\$\w{1,50}\s*=\s*(?:md5\(\$\w{1,50}\)|\d+|base64_decode\(\$\w{1,50}\)|strlen\(\$\w{1,50}\)|\'\');\s*)+\s*for\s*\(\$\w{1,50}\s*=\s\d+;\s*\$\w{1,50}\s*<\s*\$len;\s*\$\w{1,50}\+\+\)\s*\{\s*if\s*\(\$\w{1,50}\s*==\s*\$\w{1,50}\)\s*\{\s*\$\w{1,50}\s*=\s*\d+;\s*}\s*\$\w{1,50}\s*\.=\s*substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\);\s*\$\w{1,50}\+\+;\s*\}(?:\s*\$\w{1,50}\s*=\s*\'\';)?\s*for\s*\(\$\w{1,50}\s*=\s*\d+;\s*\$\w{1,50}\s*<\s*\$\w{1,50};\s*\$\w{1,50}\+\+\)\s*{\s*if\s*\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*<\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\)\s*\{\s*\$\w{1,50}\s*\.=\s*chr\(\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*\+\s*\d+\)\s*-\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\);\s*}\s*else\s*{\s*\$\w{1,50}\s*\.=\s*chr\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*-\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\);\s*}\s*}\s*return\s*\$\w{1,50};\s*\}\s*|\$\w{1,50}\s*=\s*"([^"]+)";\s*){2}\s*\$\w{1,50}\s*=\s*"([^"]+)";\s*\$\w{1,50}\s*=\s*\w{1,50}\(\$\w{1,50},\s*\$\w{1,50}\);\s*eval\(\$\w{1,50}\);~msi',
            'fast' => '~(?:function\s*\w{1,50}\(\$\w{1,50},\s*\$\w{1,50}\)\s*\{(?:\s*\$\w{1,50}\s*=\s*(?:md5\(\$\w{1,50}\)|\d+|base64_decode\(\$\w{1,50}\)|strlen\(\$\w{1,50}\)|\'\');\s*)+\s*for\s*\(\$\w{1,50}\s*=\s\d+;\s*\$\w{1,50}\s*<\s*\$len;\s*\$\w{1,50}\+\+\)\s*\{\s*if\s*\(\$\w{1,50}\s*==\s*\$\w{1,50}\)\s*\{\s*\$\w{1,50}\s*=\s*\d+;\s*}\s*\$\w{1,50}\s*\.=\s*substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\);\s*\$\w{1,50}\+\+;\s*\}(?:\s*\$\w{1,50}\s*=\s*\'\';)?\s*for\s*\(\$\w{1,50}\s*=\s*\d+;\s*\$\w{1,50}\s*<\s*\$\w{1,50};\s*\$\w{1,50}\+\+\)\s*{\s*if\s*\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*<\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\)\s*\{\s*\$\w{1,50}\s*\.=\s*chr\(\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*\+\s*\d+\)\s*-\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\);\s*}\s*else\s*{\s*\$\w{1,50}\s*\.=\s*chr\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*-\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\);\s*}\s*}\s*return\s*\$\w{1,50};\s*\}\s*|\$\w{1,50}\s*=\s*"([^"]+)";\s*){2}\s*\$\w{1,50}\s*=\s*"([^"]+)";\s*\$\w{1,50}\s*=\s*\w{1,50}\(\$\w{1,50},\s*\$\w{1,50}\);\s*eval\(\$\w{1,50}\);~msi',
            'id'   => 'Obf_20200414_1',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$\w+)=base64_decode\(\'[^\']+\'\);\s*eval\(\1\);~mis',
            'fast' => '~(\$\w+)=base64_decode\(\'[^\']+\'\);\s*eval\(\1\);~mis',
            'id'   => 'Obf_20200507_1',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~assert\("[eval"\.]+\([base64_decode\."]+\(\'([^\']+)\'\)\)"\);~msi',
            'fast' => '~assert\("[eval"\.]+\([base64_decode\."]+\(\'([^\']+)\'\)\)"\);~msi',
            'id'   => 'Obf_20200507_5',
        ],
        [
            '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',
        ],
        [
            'full' => '~function\s{0,50}(\w+)\((\$\w+)\)\s{0,50}\{\s{0,50}\2\s{0,50}=\s{0,50}substr\(\2,\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);\s{0,50}\2\s{0,50}=\s{0,50}substr\(\2,\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\),\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);\s{0,50}return\s{0,50}\2;\s{0,50}\}\s{0,50}(\$\w+)\s{0,50}=\s{0,50}\'[^\']+\';\s{0,50}(\$\w+)\s{0,50}=\s{0,50}\'base64_decode\';\s{0,50}function\s{0,50}\w+\((\$\w+)\)\s{0,50}{\s{0,50}global\s{0,50}\6;\s{0,50}global\s{0,50}\7;\s{0,50}return\s{0,50}strrev\(gzinflate\(\7\(\1\(\8\)\)\)\);\s{0,50}\}\s{0,50}(?:eval\(\w+\(\')?([^\']+)\'\)+~msi',
            'fast' => '~function\s{0,50}(\w+)\((\$\w+)\)\s{0,50}\{\s{0,50}\2\s{0,50}=\s{0,50}substr\(\2,\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);\s{0,50}\2\s{0,50}=\s{0,50}substr\(\2,\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\),\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);\s{0,50}return\s{0,50}\2;\s{0,50}\}\s{0,50}(\$\w+)\s{0,50}=\s{0,50}\'[^\']+\';\s{0,50}(\$\w+)\s{0,50}=\s{0,50}\'base64_decode\';\s{0,50}function\s{0,50}\w+\((\$\w+)\)\s{0,50}{\s{0,50}global\s{0,50}\6;\s{0,50}global\s{0,50}\7;\s{0,50}return\s{0,50}strrev\(gzinflate\(\7\(\1\(\8\)\)\)\);\s{0,50}\}\s{0,50}(?:eval\(\w+\(\')?([^\']+)\'\)+~msi',
            'id'   => 'Obf_20200522_1',
        ],
        [
            'full' => '~(\$\w+)=strrev\("[base64_decode"\.]+\);eval\(\1\(\'([^\']+)\'\)\);~msi',
            'fast' => '~(\$\w+)=strrev\("[base64_decode"\.]+\);eval\(\1\(\'([^\']+)\'\)\);~msi',
            'id'   => 'Obf_20200526_1',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~(?:(?:@?error_reporting|@?set_time_limit)\(\d+\);\s*){1,2}function\s*class_uc_key\((\$\w{1,50})\){\s*(\$\w{1,50})\s*=\s*strlen\s*\(trim\(\1\)\);\s*(\$\w{1,50})\s*=\s*\'\';\s*for\((\$\w{1,50})\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{1,50})=(?:(?:class_uc_key\("(\w+)"\)|\$\w{1,50})\.?\s*)+\.\'([\w\/\+=\\\\]+\'\)\)\);)\';\s*(\$\w{1,50})=create_function\(\'\',\6\);\9\(\);~msi',
            'fast' => '~(?:(?:@?error_reporting|@?set_time_limit)\(\d+\);\s*){1,2}function\s*class_uc_key\((\$\w{1,50})\){\s*(\$\w{1,50})\s*=\s*strlen\s*\(trim\(\1\)\);\s*(\$\w{1,50})\s*=\s*\'\';\s*for\((\$\w{1,50})\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{1,50})=(?:(?:class_uc_key\("(\w+)"\)|\$\w{1,50})\.?\s*)+\.\'([\w\/\+=\\\\]+\'\)\)\);)\';\s*(\$\w{1,50})=create_function\(\'\',\6\);\9\(\);~msi',
            'id'   => 'anonymousFox',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$\w+)=[\'"]([\w</,\s()\$\+}\\\\\'"?\[\]{;%=^&-]+)[\'"];(\$\w+=(?:\s?\1\[\d+\](?:\s?\.?))+;)+((?:\$\w+\(\d+\);)?(\$\w+=(\$\w+)\(["\']{2},(\$\w+\(\$\w+\(["\'][=\w\+\/]+[\'"]\)\))\);\$\w+\(\);|.*?if\s?\(isset\(\${(?:\$\w+\[\d+\]\.?)+}.*?function\s\w+.*?include\s\${(?:\$\w+\[\d+\]\.?)+}\[(?:\$\w+\[\d+\]\.?)+\];\s?}))~msi',
            'fast' => '~(\$\w+)=[\'"]([\w</,\s()\$\+}\\\\\'"?\[\]{;%=^&-]+)[\'"];(\$\w+=(?:\s?\1\[\d+\](?:\s?\.?))+;)+((?:\$\w+\(\d+\);)?(\$\w+=(\$\w+)\(["\']{2},(\$\w+\(\$\w+\(["\'][=\w\+\/]+[\'"]\)\))\);\$\w+\(\);|.*?if\s?\(isset\(\${(?:\$\w+\[\d+\]\.?)+}.*?function\s\w+.*?include\s\${(?:\$\w+\[\d+\]\.?)+}\[(?:\$\w+\[\d+\]\.?)+\];\s?}))~msi',
            'id'   => 'dictionaryVars',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~(\$\w+)\s?=\s?(\w+)\("([\w+\/=]+)"\);\s?echo\s?\1;~msi',
            'fast' => '~(\$\w+)\s?=\s?(\w+)\("([\w+\/=]+)"\);\s?echo\s?\1;~msi',
            'id'   => 'varFuncsEcho',
        ],
        [
            'full' => '~(\$\w+)="";\s*(?:(?:do\s?{[^}]+}\s?while\s?\(\d+>\d+\);\s*\1=\1\."[^"]+";)?(?:.*?)(\$\w+)=(\d+);\s?(?:.*?)(\$\w+)=((?:\'[\w%]+\'\.?)+);\s?(?:.*?)\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?|\s?\$\w+\+=\d+;\s?|\1=\w+\(\1,\w+\(\)\);\s?|function\s\w+\(\){\s?|do{\s?if\s?\(\d+<\d+\)\s?{\s?|)+(?:.*?)(?:\$\w+\s?=\s?\$\w+\([\'"]{2},\s?\$\w+\(\$\w+(?:\(\1\),\s?(?:\$\w+\[\'\w+\'\]\)\s?)?|\)\s?)\);\s?\$\w+\(\);)(?:\s?function\s\w+\((?:\$\w+,\s?\$\w+)?\)(?:.*?);\s}|\s?class\s\w+\s?{(?:.*?);(?:\s}){1,2})+~msi',
            'fast' => '~function\s+\w+\(\)\{\s*global\s*(\$\w+);\s*return\s*(\1[\[{]\d+[\]}]\.?){15};\s*}~msi',
            'id'   => 'varFuncsMany',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            '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',
        ],
        [
            'full' => '~function\s(\w+)\((\$\w+)\)\s{0,50}{\s{0,50}\2=gzinflate\(base64_decode\(\2\)\);\s{0,50}for\((\$\w+)=\d+;\3<strlen\(\2\);\3\+\+\)\s{0,50}{\s{0,50}\2\[\3\]\s?=\s?chr\(ord\(\2\[\3\]\)-(\d+)\);\s{0,50}}\s{0,50}return\s?\2;\s{0,50}}\s{0,50}eval\(\1\([\'"]([\w\+\/=]+)[\'"]\)\);~msi',
            'fast' => '~function\s(\w+)\((\$\w+)\)\s{0,50}{\s{0,50}\2=gzinflate\(base64_decode\(\2\)\);\s{0,50}for\((\$\w+)=\d+;\3<strlen\(\2\);\3\+\+\)\s{0,50}{\s{0,50}\2\[\3\]\s?=\s?chr\(ord\(\2\[\3\]\)-(\d+)\);\s{0,50}}\s{0,50}return\s?\2;\s{0,50}}\s{0,50}eval\(\1\([\'"]([\w\+\/=]+)[\'"]\)\);~msi',
            'id'   => 'evalWanFunc',
        ],
        [
            'full' => '~(?:(?:if\s?\(file_exists\("\w+"\)\)\s?{\s?}\s?else\s?{\s?)?\$\w+\s?=\s?fopen\([\'"][^\'"]+\.php[\'"],\s?[\'"]w[\'"]\);)?\s?(\$\w+)\s?=\s?(?:base64_decode\()?[\'"]([^\'"]+)[\'"]\)?;\s?(?:\$\w{1,50}\s?=\s?fopen\([\'"][^\'"]+[\'"],\s?[\'"]\w[\'"]\);\s?)?(?:echo\s?)?fwrite\(\$\w{1,50}\s?,(?:base64_decode\()?\$\w{1,50}\)?\);\s?fclose\(\$\w{1,50}\);\s?}?~msi',
            'fast' => '~(?:(?:if\s?\(file_exists\("\w+"\)\)\s?{\s?}\s?else\s?{\s?)?\$\w+\s?=\s?fopen\([\'"][^\'"]+\.php[\'"],\s?[\'"]w[\'"]\);)?\s?(\$\w+)\s?=\s?(?:base64_decode\()?[\'"]([^\'"]+)[\'"]\)?;\s?(?:\$\w{1,50}\s?=\s?fopen\([\'"][^\'"]+[\'"],\s?[\'"]\w[\'"]\);\s?)?(?:echo\s?)?fwrite\(\$\w{1,50}\s?,(?:base64_decode\()?\$\w{1,50}\)?\);\s?fclose\(\$\w{1,50}\);\s?}?~msi',
            'id'   => 'funcFile',
        ],
        [
                'full' => '~(\$(?:GLOBALS\[\')?\w+(?:\'\])?\s{0,100}=\s{0,100}array\(\s{0,100}(?:\s{0,100}\'[^\']+\'\s{0,100}=>\s{0,100}\'?[^\']+\'?,\s{0,100})+\s{0,100}\);\s{0,100}((?:\$\w+=(?:[\'"][^\'"]*[\'"]\.?)+;)+)(?:if\(!\$\w+\((?:\'\w*\'\.?|\$\w+)+\)\){function\s{0,100}\w+\(\$\w+\){.*?else{function\s{0,100}\w+\(\$\w+\){.*?return\s{0,100}\$\w+\(\$\w+\);}}){2})\$\w+=(?:\'\w*\'\.?)+;(\$\w+)\s{0,100}=\s{0,100}@?\$\w+\(\'\$\w+\',\$\w+\.\'\(.\.\$\w+\.(?:\'[\w(\$);]*\'\.?)+\);\3\("([^"]+)"\);~msi',
            'fast' => '~(\$(?:GLOBALS\[\')?\w+(?:\'\])?\s{0,100}=\s{0,100}array\(\s{0,100}(?:\s{0,100}\'[^\']+\'\s{0,100}=>\s{0,100}\'?[^\']+\'?,\s{0,100})+\s{0,100}\);\s{0,100}((?:\$\w+=(?:[\'"][^\'"]*[\'"]\.?)+;)+)(?:if\(!\$\w+\((?:\'\w*\'\.?|\$\w+)+\)\){function\s{0,100}\w+\(\$\w+\){.*?else{function\s{0,100}\w+\(\$\w+\){.*?return\s{0,100}\$\w+\(\$\w+\);}}){2})\$\w+=(?:\'\w*\'\.?)+;(\$\w+)\s{0,100}=\s{0,100}@?\$\w+\(\'\$\w+\',\$\w+\.\'\(.\.\$\w+\.(?:\'[\w(\$);]*\'\.?)+\);\3\("([^"]+)"\);~msi',
            'id'   => 'gulf',
        ],
        [
            'full' => '~(\$\w+)=(\w+);\$\w+="(.+?)";(?:\$\w+=\$\w+;)?(\$\w+)=strlen\(\$\w+\);(\$\w+)=[\'"]{2};for\((\$\w+)=\d+;\6<\4;\6\+\+\)\s?\5\s?\.=\s?chr\(ord\(\$\w+\[\6\]\)\s?\^\s?\1\);eval\("\?>"\.\5\."<\?"\);~msi',
            'fast' => '~(\$\w+)=(\w+);\$\w+="(.+?)";(?:\$\w+=\$\w+;)?(\$\w+)=strlen\(\$\w+\);(\$\w+)=[\'"]{2};for\((\$\w+)=\d+;\6<\4;\6\+\+\)\s?\5\s?\.=\s?chr\(ord\(\$\w+\[\6\]\)\s?\^\s?\1\);eval\("\?>"\.\5\."<\?"\);~msi',
            'id'   => 'evalConcatAsciiChars',
        ],
        [
            'full' => '~(?:\$\w+="[\w=]+";\s?)+(\$\w+)\s?=\s?str_replace\((?:"\w*",?)+\);\s?(\$\w+)\s?=\s?\1\((?:"\w*",?\s?)+\);\s?(\$\w+)\s?=\s?\1\((?:"\w*",?)+\);\s?(\$\w+)\s?=\s?\3\("",\s?(\2\(\2\((\1\("([#;*,\.]+)",\s?"",\s?((?:\$\w+\.?)+)\))\)\))\);\s?\4\(\);~msi',
            'fast' => '~(?:\$\w+="[\w=]+";\s?)+(\$\w+)\s?=\s?str_replace\((?:"\w*",?)+\);\s?(\$\w+)\s?=\s?\1\((?:"\w*",?\s?)+\);\s?(\$\w+)\s?=\s?\1\((?:"\w*",?)+\);\s?(\$\w+)\s?=\s?\3\("",\s?(\2\(\2\((\1\("([#;*,\.]+)",\s?"",\s?((?:\$\w+\.?)+)\))\)\))\);\s?\4\(\);~msi',
            'id'   => 'evalPost',
        ],
        [
            'full' => '~\$\w+\s?=\s?"e\/\*\.\/";\spreg_replace\(strrev\(\$\w+\),"([\\\\\w]+)\'([\w\/\+=]+)\'([\\\\\w]+)","\."\);~msi',
            'fast' => '~\$\w+\s?=\s?"e\/\*\.\/";\spreg_replace\(strrev\(\$\w+\),"([\\\\\w]+)\'([\w\/\+=]+)\'([\\\\\w]+)","\."\);~msi',
            'id'   => 'evalPregStr',
        ],
        [
            'full' => '~\$GLOBALS\[\'\w+\'\]=array\(\'preg_re\'\s?\.\'place\'\);\s?function\s\w+\(\$\w+\)\s?{\$\w+=array\("\/\.\*\/e","([\\\\\w]+)\'([\w\/\+]+)\'([\\\\\w]+)","{2}\);\s?return\s\$\w+\[\$\w+\];}\s?\$GLOBALS\[\'\w+\'\]\[\d+\]\(\w+\(\d+\),\w+\(\d+\),\w+\(\d+\)\);~msi',
            'fast' => '~\$GLOBALS\[\'\w+\'\]=array\(\'preg_re\'\s?\.\'place\'\);\s?function\s\w+\(\$\w+\)\s?{\$\w+=array\("\/\.\*\/e","([\\\\\w]+)\'([\w\/\+]+)\'([\\\\\w]+)","{2}\);\s?return\s\$\w+\[\$\w+\];}\s?\$GLOBALS\[\'\w+\'\]\[\d+\]\(\w+\(\d+\),\w+\(\d+\),\w+\(\d+\)\);~msi',
            'id'   => 'evalPregStr',
        ],
        [
            'full' => '~class\s?\w+{\s?function\s?__destruct\(\){\s?\$this->\w+\(\'([\w&]+)\'\^"([\\\\\w]+)",array\(\(\'([#\w]+)\'\^"([\\\\\w]+)"\)\."\(base64_decode\(\'([\w\+\/=]+)\'\)\);"\)\);\s?}\s?function\s?\w+\(\$\w+,\$\w+\){\s?@array_map\(\$\w+,\$\w+\);\s?}\s?}\s?\$\w+\s?=\s?new\s?\w+\(\);~msi',
            'fast' => '~class\s?\w+{\s?function\s?__destruct\(\){\s?\$this->\w+\(\'([\w&]+)\'\^"([\\\\\w]+)",array\(\(\'([#\w]+)\'\^"([\\\\\w]+)"\)\."\(base64_decode\(\'([\w\+\/=]+)\'\)\);"\)\);\s?}\s?function\s?\w+\(\$\w+,\$\w+\){\s?@array_map\(\$\w+,\$\w+\);\s?}\s?}\s?\$\w+\s?=\s?new\s?\w+\(\);~msi',
            'id'   => 'classDestructFunc',
        ],
        [
            'full' => '~\$\w+="([\\\\\w]+)";\s?\$\w+=\$\w+\(\'([\w\+\/=]+)\'\);\s?\$\w+\s?=\s?"([\\\\\w]+)";\s?\$\w+\s?=\s?\$\w+\([\'"]{2}.\s?eval\(\$\w+\)\);\s?\$\w+\([\'"]{2}\);~msi',
            'fast' => '~\$\w+="([\\\\\w]+)";\s?\$\w+=\$\w+\(\'([\w\+\/=]+)\'\);\s?\$\w+\s?=\s?"([\\\\\w]+)";\s?\$\w+\s?=\s?\$\w+\([\'"]{2}.\s?eval\(\$\w+\)\);\s?\$\w+\([\'"]{2}\);~msi',
            'id'   => 'createFuncEval',
        ],
        [
            'full' => '~((\$\w+)="([\w-]+)";((?:\$\w+=(?:\2{\d+}\.?)+;)+)+)(header\(\'.+?\'\);)\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'(\$\w+)=[\\\\\']+.\'(\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\);\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+,\w+,\d+\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\);return\s?\$\w+;)\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'\$\w+\',\'\$\w+=substr\(\$\w+,\d+,\d+\);\$\w+=substr\(\$\w+,-\d+\);\$\w+=substr\(\$\w+,7,\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\)-\d+\);return\s\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\((?:\$\w+\.?)+\)\);\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'\$\w+=[\\\\\']+,\'\$\w+=(isset\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\)\?\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\):[\\\\\']+);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\\\\\'([\w=]+)\\\\\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\.\$\w+\);eval\(\$\w+\);\'\);\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\);~msi',
            'fast' => '~((\$\w+)="([\w-]+)";((?:\$\w+=(?:\2{\d+}\.?)+;)+)+)(header\(\'.+?\'\);)\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'(\$\w+)=[\\\\\']+.\'(\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\);\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+,\w+,\d+\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\);return\s?\$\w+;)\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'\$\w+\',\'\$\w+=substr\(\$\w+,\d+,\d+\);\$\w+=substr\(\$\w+,-\d+\);\$\w+=substr\(\$\w+,7,\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\)-\d+\);return\s\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\((?:\$\w+\.?)+\)\);\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'\$\w+=[\\\\\']+,\'\$\w+=(isset\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\)\?\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\):[\\\\\']+);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\\\\\'([\w=]+)\\\\\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\.\$\w+\);eval\(\$\w+\);\'\);\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\);~msi',
            'id'   => 'dictionaryCreateFuncs',
        ],
        [
            'full' => '~(\$\w+)\s?=\s?"([\w\s=]+)";\s?(\$\w+)\s?=\s?array\(((?:\d+,?\s?)+)\);\s?(\$\w+)\s?=\s?array\(((?:"[\w\d\s\/\.]+",?\s?)+)\);\s?(\$\w+)\s?=\s?\'\';\s?(?:\$\w+\s=(?:\s?\5\[\d+\]\s?\.?)+;\s?)+(\$\w+)\s?=\s?\$\w+\("\\\\r\\\\n",\s?\1\);\s?for\((\$\w+)=0;\9\s?<\s?sizeof\(\8\);\9\+\+\){\s?\7\s\.=\s?\$\w+\(\8\[\9\]\);\s?}\s?\1\s?=\s?\7;\s?(\$\w+)\s?=\s?\3;\s?(\$\w+)\s?=\s?"";\s?for\((\$\w+)=0;\s?\12<sizeof\(\10\);\s?\12\+=2\){\s?if\(\12\s?%\s?4\){\s?\11\.=\s?substr\(\1,\10\[\12\],\10\[\12\+1\]\);\s?}else{\s?\11\.=strrev\(substr\(\1,\10\[\12\],\10\[\12\+1\]\)\);\s?}\s?};\s?\1\s?=\s?\$\w+\(\11\);\s(\$\w+)\s?=\s?array\(\);\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?;?)+;\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s?(\$\w+)\s?=\s?\'\';\s?for\((\$\w+)=0;\s?\17<strlen\(\1\);\s?\17\+=32\){\s?\13\[\]\s?=\s?substr\(\1,\s?\17,\s?32\);\s?}\s?(?:\$\w+\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s)+\$\w+\s?=\s?\'\';\s?\$\w+\s?=\s?\(\$\w+\(\$\w+\(\$\w+\)\)\)\s?%\s?sizeof\(\$\w+\);\s?\$\w+\s?=\s?\$\w+\[\$\w+\];\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;(\s?\18\s?=\s?\$_POST\[\18\];\s?(\14\s?=\s?\15\(\$_COOKIE\[\14\]\);)\s?\$\w+\s?=\s?\5\[\d+\]\s?\.\s?\5\[\d+\];\s?(eval\(\$\w+\(\18\)\);)\s?if\(!\16\){\s?((?:\$\w+\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s)+)(\$\w+\(\$\w+\);\s?echo\(\$\w+\);)\s?})~msi',
            'fast' => '~(\$\w+)\s?=\s?"([\w\s=]+)";\s?(\$\w+)\s?=\s?array\(((?:\d+,?\s?)+)\);\s?(\$\w+)\s?=\s?array\(((?:"[\w\d\s\/\.]+",?\s?)+)\);\s?(\$\w+)\s?=\s?\'\';\s?(?:\$\w+\s=(?:\s?\5\[\d+\]\s?\.?)+;\s?)+(\$\w+)\s?=\s?\$\w+\("\\\\r\\\\n",\s?\1\);\s?for\((\$\w+)=0;\9\s?<\s?sizeof\(\8\);\9\+\+\){\s?\7\s\.=\s?\$\w+\(\8\[\9\]\);\s?}\s?\1\s?=\s?\7;\s?(\$\w+)\s?=\s?\3;\s?(\$\w+)\s?=\s?"";\s?for\((\$\w+)=0;\s?\12<sizeof\(\10\);\s?\12\+=2\){\s?if\(\12\s?%\s?4\){\s?\11\.=\s?substr\(\1,\10\[\12\],\10\[\12\+1\]\);\s?}else{\s?\11\.=strrev\(substr\(\1,\10\[\12\],\10\[\12\+1\]\)\);\s?}\s?};\s?\1\s?=\s?\$\w+\(\11\);\s(\$\w+)\s?=\s?array\(\);\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?;?)+;\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s?(\$\w+)\s?=\s?\'\';\s?for\((\$\w+)=0;\s?\17<strlen\(\1\);\s?\17\+=32\){\s?\13\[\]\s?=\s?substr\(\1,\s?\17,\s?32\);\s?}\s?(?:\$\w+\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s)+\$\w+\s?=\s?\'\';\s?\$\w+\s?=\s?\(\$\w+\(\$\w+\(\$\w+\)\)\)\s?%\s?sizeof\(\$\w+\);\s?\$\w+\s?=\s?\$\w+\[\$\w+\];\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;(\s?\18\s?=\s?\$_POST\[\18\];\s?(\14\s?=\s?\15\(\$_COOKIE\[\14\]\);)\s?\$\w+\s?=\s?\5\[\d+\]\s?\.\s?\5\[\d+\];\s?(eval\(\$\w+\(\18\)\);)\s?if\(!\16\){\s?((?:\$\w+\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s)+)(\$\w+\(\$\w+\);\s?echo\(\$\w+\);)\s?})~msi',
            'id'   => 'evalPostDictionary',
        ],
        [
            'full' => '~(\$\w)\s?=\s?str_rot13\("([^"]+)"\);preg_replace\("//e","\1",""\);~msi',
            'fast' => '~(\$\w)\s?=\s?str_rot13\("([^"]+)"\);preg_replace\("//e","\1",""\);~msi',
            'id'   => 'strrotPregReplaceEval',
        ],
        [
            'full' => '~(\$\w+)\s*=\s*[^\']+\'([^\']+)\';\s*(\$\w+)\s*=\s*\'([^\']+)\';\s*if\(!file_exists\(\$file\)+\{\s*@file_put_contents\(\1,base64_decode\(base64_decode\(\3\)+;\s*\}\s*\@include\s*\$file;~msi',
            'fast' => '~(\$\w+)\s*=\s*[^\']+\'([^\']+)\';\s*(\$\w+)\s*=\s*\'([^\']+)\';\s*if\(!file_exists\(\$file\)+\{\s*@file_put_contents\(\1,base64_decode\(base64_decode\(\3\)+;\s*\}\s*\@include\s*\$file;~msi',
            'id'   => 'dropInclude',
        ],
        [
            'full' => '~(?(DEFINE)(?\'c\'(?:/\*[^/]*/?\*/)*))(?&c)@?(eval|echo|(\$\w+)\s*=\s*create_function)(?:\/\*+\/)?\s*(?&c)\((?&c)(\'\',)?\s*([\'"?>.\s]+)?\s*\(?\s*@?\s*((?&c)base64_decode(?&c)\s*\((?&c)|(?&c)pack(?&c)\s*\(\'H\*\',|(?&c)convert_uudecode(?&c)\s*\(|(?&c)htmlspecialchars_decode(?&c)\s*\(|(?&c)stripslashes(?&c)\s*\(|(?&c)gzinflate(?&c)\s*\(|(?&c)strrev(?&c)\s*\(|(?&c)str_rot13(?&c)\s*\(|(?&c)gzuncompress(?&c)\s*\(|(?&c)urldecode(?&c)\s*\(|(?&c)rawurldecode(?&c)\s*\(|(?&c)eval(?&c)\s*\()+.*?[^\'")]+(?&c)(((?&c)\s*(?&c)\.?(?&c)[\'"]((?&c)[^\'";]+(?&c)[\'"](?&c)*\s*)+(?&c))?(?&c)\s*[\'"\);]+(?&c))+(?&c)(\s*\2\(\);(?&c))?~msi',
            'fast' => '~(?(DEFINE)(?\'c\'(?:/\*[^/]*/?\*/)*))(?&c)@?(eval|echo|(\$\w+)\s*=\s*create_function)(?:\/\*+\/)?\s*(?&c)\((?&c)(\'\',)?\s*([\'"?>.\s]+)?\s*\(?\s*@?\s*((?&c)base64_decode(?&c)\s*\((?&c)|(?&c)pack(?&c)\s*\(\'H\*\',|(?&c)convert_uudecode(?&c)\s*\(|(?&c)htmlspecialchars_decode(?&c)\s*\(|(?&c)stripslashes(?&c)\s*\(|(?&c)gzinflate(?&c)\s*\(|(?&c)strrev(?&c)\s*\(|(?&c)str_rot13(?&c)\s*\(|(?&c)gzuncompress(?&c)\s*\(|(?&c)urldecode(?&c)\s*\(|(?&c)rawurldecode(?&c)\s*\(|(?&c)eval(?&c)\s*\()+.*?[^\'")]+(?&c)(((?&c)\s*(?&c)\.?(?&c)[\'"]((?&c)[^\'";]+(?&c)[\'"](?&c)*\s*)+(?&c))?(?&c)\s*[\'"\);]+(?&c))+(?&c)(\s*\2\(\);(?&c))?~msi',
            'id'   => 'evalComments',
        ],
        [
            'full' => '~\@?error_reporting\(0\);\@?set_time_limit\(0\);\s*(\$\w+)="([^"]+)";\s*\1=\@?urldecode\(\1\);\1=\@?strrev\(\1\);\@?eval\(\1\);~msi',
            'fast' => '~\@?error_reporting\(0\);\@?set_time_limit\(0\);\s*(\$\w+)="([^"]+)";\s*\1=\@?urldecode\(\1\);\1=\@?strrev\(\1\);\@?eval\(\1\);~msi',
            'id'   => 'strrevUrldecodeEval',
        ],
        [
            'full' => '~(\$\w+\s*=\s*"\w+";\s*\@?error_reporting\(E_ERROR\);\s*\@?ini_set\(\'display_errors\',\'Off\'\);\s*\@?ini_set\(\'max_execution_time\',\d+\);\s*header\("[^"]+"\);\s*)?(\$\w+)\s*=\s*"([^"]+)";\s*(\$\w+)\s*=\s*pack\("H\*",str_rot13\(\2\)+;\s*eval\(\4\);~msi',
            'fast' => '~(\$\w+\s*=\s*"\w+";\s*\@?error_reporting\(E_ERROR\);\s*\@?ini_set\(\'display_errors\',\'Off\'\);\s*\@?ini_set\(\'max_execution_time\',\d+\);\s*header\("[^"]+"\);\s*)?(\$\w+)\s*=\s*"([^"]+)";\s*(\$\w+)\s*=\s*pack\("H\*",str_rot13\(\2\)+;\s*eval\(\4\);~msi',
            'id'   => 'evalPackStrrot',
        ],
        [
            'full' => '~\$\w+\s*=\s*\d+;\s*function\s*(\w+)\(\$\w+,\s*\$\w+\)\{\$\w+\s*=\s*\'\';\s*for[^{]+\{([^}]+\}){2}\s*\$\w{1,40}\s*=\s*((\'[^\']+\'\s*\.?\s*)+);\s*\$\w+\s*=\s*Array\(((\'\w\'=>\'\w\',?\s*)+)\);\s*eval(?:/\*[^/]\*/)*\(\1\(\$\w+,\s*\$\w+\)+;~msi',
            'fast' => '~\$\w+\s*=\s*\d+;\s*function\s*(\w+)\(\$\w+,\s*\$\w+\)\{\$\w+\s*=\s*\'\';\s*for[^{]+\{([^}]+\}){2}\s*\$\w{1,40}\s*=\s*((\'[^\']+\'\s*\.?\s*)+);\s*\$\w+\s*=\s*Array\(((\'\w\'=>\'\w\',?\s*)+)\);\s*eval(?:/\*[^/]\*/)*\(\1\(\$\w+,\s*\$\w+\)+;~msi',
            'id'   => 'urlDecodeTable',
        ],
        [
            'full' => '~((?:\$\w+=\'\w\';)+)((?:\$\w+=(\$\w+\.?)+;)+)eval\((\$\w+\()+\'([^\']+)\'\)+;~msi',
            'fast' => '~((?:\$\w+=\'\w\';)+)((?:\$\w+=(\$\w+\.?)+;)+)eval\((\$\w+\()+\'([^\']+)\'\)+;~msi',
            'id'   => 'evalVarChar',
        ],
        [
            'full' => '~(\$\w+\s*=\s*(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()+"([^"]+)"\);)\s*eval\("?(\$\w+)"?\);~msi',
            'fast' => '~(\$\w+\s*=\s*(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()+"([^"]+)"\);)\s*eval\("?(\$\w+)"?\);~msi',
            'id'   => 'evalVarFunc',
        ],
        [
            'full' => '~((?:\$\w+\s*=\s*("[\w=+/\\\\]+");\s*)+)(eval\((\$\w+\(+)+(\$\w+)\)+);~msi',
            'fast' => '~((?:\$\w+\s*=\s*("[\w=+/\\\\]+");\s*)+)(eval\((\$\w+\(+)+(\$\w+)\)+);~msi',
            'id'   => 'evalVarsFuncs',
        ],
        [
            'full' => '~<\?php\s*(?:/\*[^=\$\{\}/]{99,499}\bencipher\s*can\s*be\s*obtained\s*from:\s*https?://docs\.google\.com/[^\*\$\(;\}\{=]{1,99}\*/\s*)?(\$[^\w=(,${)}]{0,50})=\'(\w{0,50})\';((?:\$[^\w=(,${)}]{0,50}=(?:\1{\d+}\.?){0,50};){1,20})(\$[^=]{0,50}=\$[^\w=(,${)}]{1,50}\(\$[^\w=(,${)}]{1,50}\(\'\\\\{2}\',\'/\',__FILE__\)\);(?:\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}]{0,50}\);){2}\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}]{0,50}\(\'\',\$[^\w=(,${)}]{0,50}\)\.\$[^\(]{0,50}\(\$[^\w=(,${)}]{0,50},\d+,\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}]{0,50},\'@ev\'\)\);\$[^\w=(,${)}]{0,50}=\$[^\(]{0,50}\(\$[^\w=(,${)}]{0,50}\);\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}=]{0,50}=\$[^\w=(,${)}]{0,50}=NULL;@eval\(\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}(]{0,50}\(\$[^\w=(,${)}]{0,50},\'\',\$[^\w=(,${)}]{0,50}\(\'([^\']{0,500})\',\'([^\']{0,500})\',\'([^\']{0,500})\'\){4};)unset\((?:\$[^,]{0,50},?){0,20};return;\?>.+~msi',
            'fast' => '~<\?php\s*(?:/\*[^=\$\{\}/]{99,499}\bencipher\s*can\s*be\s*obtained\s*from:\s*https?://docs\.google\.com/[^\*\$\(;\}\{=]{1,99}\*/\s*)?(\$[^\w=(,${)}]{0,50})=\'(\w{0,50})\';((?:\$[^\w=(,${)}]{0,50}=(?:\1{\d+}\.?){0,50};){1,20})(\$[^=]{0,50}=\$[^\w=(,${)}]{1,50}\(\$[^\w=(,${)}]{1,50}\(\'\\\\{2}\',\'/\',__FILE__\)\);(?:\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}]{0,50}\);){2}\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}]{0,50}\(\'\',\$[^\w=(,${)}]{0,50}\)\.\$[^\(]{0,50}\(\$[^\w=(,${)}]{0,50},\d+,\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}]{0,50},\'@ev\'\)\);\$[^\w=(,${)}]{0,50}=\$[^\(]{0,50}\(\$[^\w=(,${)}]{0,50}\);\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}=]{0,50}=\$[^\w=(,${)}]{0,50}=NULL;@eval\(\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}(]{0,50}\(\$[^\w=(,${)}]{0,50},\'\',\$[^\w=(,${)}]{0,50}\(\'([^\']{0,500})\',\'([^\']{0,500})\',\'([^\']{0,500})\'\){4};)unset\((?:\$[^,]{0,50},?){0,20};return;\?>.+~msi',
            'id'   => 'evalFileContent',
        ],
        [
            'full' => '~echo\s{0,50}"(\\\\\${\\\\x\d{2}(?:.*?[^\\\\]+)+)";~msi',
            'fast' => '~echo\s{0,50}"(\\\\\${\\\\x\d{2}(?:.*?[^\\\\]+)+)";~msi',
            'id'   => 'echoEscapedStr',
        ],
        [
            'full' => '~file_put_contents\(\$\w+\[[\'"]\w+[\'"]\]\.[\'"][/\w]+\.php[\'"],(base64_decode\([\'"]([\w=]+)[\'"]\))\)~msi',
            'fast' => '~file_put_contents\(\$\w+\[[\'"]\w+[\'"]\]\.[\'"][/\w]+\.php[\'"],(base64_decode\([\'"]([\w=]+)[\'"]\))\)~msi',
            'id'   => 'filePutDecodedContents',
        ],
        [
            'full' => '~eval\(implode\(array_map\([\'"](\w+)[\'"],str_split\([\'"]([^\'"]+)[\'"]\)\)\)\);~msi',
            'fast' => '~eval\(implode\(array_map\([\'"](\w+)[\'"],str_split\([\'"]([^\'"]+)[\'"]\)\)\)\);~msi',
            'id'   => 'evalImplodedArrStr',
        ],
        [
            'full' => '~(\$\w+)\s?=\s?\'(.*?NULL\);)\';\s*(\$\w+)\s?=\s?[\'"]([\w\\\\]+)[\'"];\s?\3\([\'"]/\(\.\*\)/e[\'"],\s?[\'"]([\w\\\\]+)[\'"],\s?NULL\);~msi',
            'fast' => '~(\$\w+)\s?=\s?\'(.*?NULL\);)\';\s*(\$\w+)\s?=\s?[\'"]([\w\\\\]+)[\'"];\s?\3\([\'"]/\(\.\*\)/e[\'"],\s?[\'"]([\w\\\\]+)[\'"],\s?NULL\);~msi',
            'id'   => 'pregReplaceCodeContent',
        ],
        [
            'full' => '~(\$\w+)\s*=\s*"([^"]+)";(?:\$\w+)\s*=\s*base64_decode\("[^"]+"\);(\$\w+)\s*=\s*gzinflate\(base64_decode\(\1\)\);((\s*\$\w+\s*=\s*\[(\'[^\']+\',?)+\];)+)\s*\3\s*=\s*str_replace\(\$\w+,\$\w+,\3\);\s*eval\(\3\);\$\w+="[^"]+";~msi',
            'fast' => '~(\$\w+)\s*=\s*"([^"]+)";(?:\$\w+)\s*=\s*base64_decode\("[^"]+"\);(\$\w+)\s*=\s*gzinflate\(base64_decode\(\1\)\);((\s*\$\w+\s*=\s*\[(\'[^\']+\',?)+\];)+)\s*\3\s*=\s*str_replace\(\$\w+,\$\w+,\3\);\s*eval\(\3\);\$\w+="[^"]+";~msi',
            'id'   => 'sistemitComEnc',
        ],
        [
            'full' => '~((?:\$\w+\s*\.?=\s*"[^"]*";\s*)+)(\$\w+)\s*=\s*str_replace\(\s*"([^"]+)",\s*"",\s*\$\w+\s*\);\s*(\$\w+)\s*=\s*str_replace\(\s*"([^"]+)",\s*"",\s*"([^"]+)"\s*\);\s*(\$\w+)\s*=\s*\4\(\s*\2\s*\);\s*\7\s*=\s*"[^"]+\7";\s*eval\(\s*\7\s*\);~msi',
            'fast' => '~((?:\$\w+\s*\.?=\s*"[^"]*";\s*)+)(\$\w+)\s*=\s*str_replace\(\s*"([^"]+)",\s*"",\s*\$\w+\s*\);\s*(\$\w+)\s*=\s*str_replace\(\s*"([^"]+)",\s*"",\s*"([^"]+)"\s*\);\s*(\$\w+)\s*=\s*\4\(\s*\2\s*\);\s*\7\s*=\s*"[^"]+\7";\s*eval\(\s*\7\s*\);~msi',
            'id'   => 'concatVarsReplaceEval',
        ],
        [
            'full' => '~(?:(?:\$\w+=(?:chr\(\d+\)[;.])+)+\$\w+="[^"]+";(\$\w+)=(?:\$\w+[.;])+\s*)?(\$\w+)=\'([^\']+)\';((?:\s*\2=str_replace\(\'[^\']+\',\s*\'\w\',\s*\2\);\s*)+)(?(1)\s*\1\s*=\s*str_replace\(\'[^+]\',\s*\'[^\']+\',\s*\1\);\s*(\$\w+)\s*=\s*[^;]+;";\s*@?\1\(\s*str_replace\((?:\s*array\(\'[^\']+\',\s*\'[^\']+\'\),){2}\s*\5\)\s*\);|\s*\2=base64_decode\(\2\);\s*eval\(\2\);)~msi',
            'fast' => '~(?:(?:\$\w+=(?:chr\(\d+\)[;.])+)+\$\w+="[^"]+";(\$\w+)=(?:\$\w+[.;])+\s*)?(\$\w+)=\'([^\']+)\';((?:\s*\2=str_replace\(\'[^\']+\',\s*\'\w\',\s*\2\);\s*)+)(?(1)\s*\1\s*=\s*str_replace\(\'[^+]\',\s*\'[^\']+\',\s*\1\);\s*(\$\w+)\s*=\s*[^;]+;";\s*@?\1\(\s*str_replace\((?:\s*array\(\'[^\']+\',\s*\'[^\']+\'\),){2}\s*\5\)\s*\);|\s*\2=base64_decode\(\2\);\s*eval\(\2\);)~msi',
            'id'   => 'evalVarReplace',
        ],
        [
            'full' => '~((\$\w+\s*=\s*\(?(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()*((?:"([^"]+)";\s*)|(?:\$\w+)\)*;\s*))+)(eval\("?(\$\w+)"?\);)~msi',
            'fast' => '~((\$\w+\s*=\s*\(?(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()*((?:"([^"]+)";\s*)|(?:\$\w+)\)*;\s*))+)(eval\("?(\$\w+)"?\);)~msi',
            'id'   => 'evalVarFunc2',
        ],
        [
            'full' => '~((\$\w+)\s*=\s*"([^"]+)";)\s*((\$\w+)\s*=\s*array\(((\s*\d+,?)+)\);)\s*((\$\w+)\s*=\s*array\(((\s*"[^"]+",?)+)\);)\s*(\$\w+)\s*=\s*\'\';(\s*\$\w+\s*=\s*(?:\9\[\d+\]\s*\.?\s*)+;)+(.+?(\s*\$\w+\s*=\s*\w+\((?:\9\[\d+\]\s*\.?\s*)+)\);\s*eval\(\$\w+\);\s*\})~msi',
            'fast' => '~((\$\w+)\s*=\s*"([^"]+)";)\s*((\$\w+)\s*=\s*array\(((\s*\d+,?)+)\);)\s*((\$\w+)\s*=\s*array\(((\s*"[^"]+",?)+)\);)\s*(\$\w+)\s*=\s*\'\';(\s*\$\w+\s*=\s*(?:\9\[\d+\]\s*\.?\s*)+;)+(.+?(\s*\$\w+\s*=\s*\w+\((?:\9\[\d+\]\s*\.?\s*)+)\);\s*eval\(\$\w+\);\s*\})~msi',
            'id'   => 'evalArrays',
        ],
        [
            'full' => '~\$\w+\s?=\s?preg_replace\([\'"]/([^\'"/]+)/\w{0,2}[\'"],[\'"]([^\'"]+)[\'"],[\'"]{2}\);~msi',
            'fast' => '~\$\w+\s?=\s?preg_replace\([\'"]/([^\'"/]+)/\w{0,2}[\'"],[\'"]([^\'"]+)[\'"],[\'"]{2}\);~msi',
            'id'   => 'pregReplaceVar',
        ],
        [
            'full' => '~function\s(\w+)\((\$\w+),\s?(\$\w+)\){\s?(\$\w+)=[\'"]{2};\s?for\(\$\w+=0;\$\w+<strlen\(\2\);\)\s?for\(\$\w+=0;\$\w+<strlen\(\3\);\$\w+\+\+,\s?\$\w+\+\+\)\s?\4\s?\.=\s?\2{\$\w+}\s?\^\s?\3{\$\w+};\s?return\s?\4;\s?};eval\(\1\(base64_decode\([\'"]([^\'"]+)[\'"]\),[\'"]([^\'"]+)[\'"]\)\);~msi',
            'fast' => '~function\s(\w+)\((\$\w+),\s?(\$\w+)\){\s?(\$\w+)=[\'"]{2};\s?for\(\$\w+=0;\$\w+<strlen\(\2\);\)\s?for\(\$\w+=0;\$\w+<strlen\(\3\);\$\w+\+\+,\s?\$\w+\+\+\)\s?\4\s?\.=\s?\2{\$\w+}\s?\^\s?\3{\$\w+};\s?return\s?\4;\s?};eval\(\1\(base64_decode\([\'"]([^\'"]+)[\'"]\),[\'"]([^\'"]+)[\'"]\)\);~msi',
            'id'   => 'evalFuncTwoArgs',
        ],
        [
            'full' => '~function\s(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?[\'"]{2};\s?unset\(\$\w+\);\s?\$\w+\s?=\s?[\'"]([^\'"]+)[\'"];\s?\$\w+\s?=\s?preg_replace\("/([^"]+)/",\s?[\'"]{2},\s?\$\w+\);\s?\$\w+\s?=\s?(?:(?:[\'"]\w+[\'"]|\$\w+)\.?)+;\s?\$\w+\s?=\s?\$\w+\([\'"]\$\w+[\'"],\s?\$\w+\);\s?@?\$\w+\(\$\w+\);\s?}\s?function\s?(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?[\'"](.*?)[\'"];\s?\$\w+\s?=\s?preg_replace\("/([^\'"]+)/",\s?[\'"]{2},\s?\$\w+\);\s?return\s?\$\w+\(\$\w+\);\s?}\s?\1\(\4\(\s?join\([\'"]([^\'"]+)[\'"],\s?array\(((?:[\'"][^\'"]+[\'"],?)+)\)+;~msi',
            'fast' => '~function\s(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?[\'"]{2};\s?unset\(\$\w+\);\s?\$\w+\s?=\s?[\'"]([^\'"]+)[\'"];\s?\$\w+\s?=\s?preg_replace\("/([^"]+)/",\s?[\'"]{2},\s?\$\w+\);\s?\$\w+\s?=\s?(?:(?:[\'"]\w+[\'"]|\$\w+)\.?)+;\s?\$\w+\s?=\s?\$\w+\([\'"]\$\w+[\'"],\s?\$\w+\);\s?@?\$\w+\(\$\w+\);\s?}\s?function\s?(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?[\'"](.*?)[\'"];\s?\$\w+\s?=\s?preg_replace\("/([^\'"]+)/",\s?[\'"]{2},\s?\$\w+\);\s?return\s?\$\w+\(\$\w+\);\s?}\s?\1\(\4\(\s?join\([\'"]([^\'"]+)[\'"],\s?array\(((?:[\'"][^\'"]+[\'"],?)+)\)+;~msi',
            'id'   => 'evalPregReplaceFuncs',
        ],
        [
            'full' => '~error_reporting\(0\);((?:\$\w+=\'[^;]+;)+)error_reporting\(0\);((?:\$\w+=\$\w+\(\$\w+\(\'([^\']+)\'\)\);)+\$\w+=(?:\$\w+\()+\'([^\']+)\'\)+\.(?:\$\w+\()+\'([^\']+)\'\)+;\$\w+=(?:\$\w+\()+\'([^\']+)\'\)+;\$\w+=(?:\$\w+\()+"\\\\n",\s*\'\',\s*\'([^\']+)\'\)+;(?:[^}]+\})+}\s*echo\s*(?:\$\w+\()+\'([^\']+)\'\)+);exit;~msi',
            'fast' => '~error_reporting\(0\);((?:\$\w+=\'[^;]+;)+)error_reporting\(0\);((?:\$\w+=\$\w+\(\$\w+\(\'([^\']+)\'\)\);)+\$\w+=(?:\$\w+\()+\'([^\']+)\'\)+\.(?:\$\w+\()+\'([^\']+)\'\)+;\$\w+=(?:\$\w+\()+\'([^\']+)\'\)+;\$\w+=(?:\$\w+\()+"\\\\n",\s*\'\',\s*\'([^\']+)\'\)+;(?:[^}]+\})+}\s*echo\s*(?:\$\w+\()+\'([^\']+)\'\)+);exit;~msi',
            'id'   => 'urlMd5Passwd',
        ],
        [
            'full' => '~(\$\w+\s?=\s?[\'"](?:(?:[^\'"]|[\'"])+)[\'"];\s?)+((?:\$\w+\s?=\s?(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?\.?\s?)+;)+\$\w+\s?=\s?\$\w+\s?\(\$\w+,(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?\.?\s?)+\);\s*\$\w+\(\$\w+,(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?[.,]?\s?)+\);)~msi',
            'fast' => '~(\$\w+\s?=\s?[\'"](?:(?:[^\'"]|[\'"])+)[\'"];\s?)+((?:\$\w+\s?=\s?(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?\.?\s?)+;)+\$\w+\s?=\s?\$\w+\s?\(\$\w+,(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?\.?\s?)+\);\s*\$\w+\(\$\w+,(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?[.,]?\s?)+\);)~msi',
            'id'   => 'ManyDictionaryVars',
        ],
        [
            'full' => '~function\s(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?(?:[\'"][\\\\\w]+[\'"]\(\d+\s?[-+]\s?\d+\)\s?\.?\s?)+;\s?(?:\$\w+\s?=\s?\$\w+\([\'"](?:edoced_46esab|etalfnizg|ecalper_rts)[\'"]\);\s?)+\$\w+\s?=\s?\$\w+\(array\(((?:\s?"[^"]+",?)+)\),\s?[\'"]{2},\s?\$\w+\);\s?return\s?(?:\$\w+\(){2}\$\w+\)\);\s?}\s?(\$\w+\s?=\s?[\'"]\w+[\'"];)?\s?ob_start\(\);\s?\?>(.*?)<\?php\s?\$\w+\s?=\s?ob_get_clean\(\);\s?eval\(\1\(\$\w+\)\);\s?\?>~msi',
            'fast' => '~function\s(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?(?:[\'"][\\\\\w]+[\'"]\(\d+\s?[-+]\s?\d+\)\s?\.?\s?)+;\s?(?:\$\w+\s?=\s?\$\w+\([\'"](?:edoced_46esab|etalfnizg|ecalper_rts)[\'"]\);\s?)+\$\w+\s?=\s?\$\w+\(array\(((?:\s?"[^"]+",?)+)\),\s?[\'"]{2},\s?\$\w+\);\s?return\s?(?:\$\w+\(){2}\$\w+\)\);\s?}\s?(\$\w+\s?=\s?[\'"]\w+[\'"];)?\s?ob_start\(\);\s?\?>(.*?)<\?php\s?\$\w+\s?=\s?ob_get_clean\(\);\s?eval\(\1\(\$\w+\)\);\s?\?>~msi',
            'id'   => 'evalBuffer',
        ],
        [
            'full' => '~((?:\$\w+\s?=\s?[\'"]\w*[\'"];\s?){0,50}(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];(?:\$\w+\s?\.?=\s?(?:\$\w+{\d+}\.?)+;)+)\s?(eval\((\$\w+)\([\'"]([^\'"]+)[\'"]\)\);)~msi',
            'fast' => '~((?:\$\w+\s?=\s?[\'"]\w*[\'"];\s?){0,50}(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];(?:\$\w+\s?\.?=\s?(?:\$\w+{\d+}\.?)+;)+)\s?(eval\((\$\w+)\([\'"]([^\'"]+)[\'"]\)\);)~msi',
            'id' => 'evalDictionaryVars',
        ],
        [
            'full' => '~\$\w+\s?=\s?[\'"]([^\'"]+)[\'"];(?:\$\w+\s?=\s?base64_decode\([\'"][^\'"]+[\'"]\);)+\$\w+\s?=\s?\$\w+\(\$\w+\(\$\w+\)\);\$\w+\s?=\s?\$\w+\(\$\w+\);(\$\w+)\s?=\s?[\'"]{2};for\(\$\w+\s?=\s?0\s?;\s?\$\w+\s?<\s?\$\w+\s?;\s?\$\w+\+\+\){\2\s?\.=\s?\$\w+\(\(\$\w+\(\$\w+\[\$\w+\]\)\^(\d+)\)\);}eval\(\2\);return;~msi',
            'fast' => '~\$\w+\s?=\s?[\'"]([^\'"]+)[\'"];(?:\$\w+\s?=\s?base64_decode\([\'"][^\'"]+[\'"]\);)+\$\w+\s?=\s?\$\w+\(\$\w+\(\$\w+\)\);\$\w+\s?=\s?\$\w+\(\$\w+\);(\$\w+)\s?=\s?[\'"]{2};for\(\$\w+\s?=\s?0\s?;\s?\$\w+\s?<\s?\$\w+\s?;\s?\$\w+\+\+\){\2\s?\.=\s?\$\w+\(\(\$\w+\(\$\w+\[\$\w+\]\)\^(\d+)\)\);}eval\(\2\);return;~msi',
            'id' => 'evalFuncXored',
        ],
        [
            'full' => '~[\'"]-;-[\'"];(.*?\(\'\\\\\\\\\',\'/\',__FILE__\)\);.*?,[\'"];[\'"]\),[\'"]"[\'"]\);.*?)[\'"]-;-[\'"];((\$\w+)=[\'"]([^\'"]+)[\'"];.*?\$\w+\s?\.\s?\3,\s?[\'"]([^\'"]+)[\'"],\s?[\'"]([^\'"]+)[\'"]\)\)\).*?)[\'"]-;-[\'"];(.*?)[\'"]-;-[\'"];~msi',
            'fast' => '~[\'"]-;-[\'"];(.*?\(\'\\\\\\\\\',\'/\',__FILE__\)\);.*?,[\'"];[\'"]\),[\'"]"[\'"]\);.*?)[\'"]-;-[\'"];((\$\w+)=[\'"]([^\'"]+)[\'"];.*?\$\w+\s?\.\s?\3,\s?[\'"]([^\'"]+)[\'"],\s?[\'"]([^\'"]+)[\'"]\)\)\).*?)[\'"]-;-[\'"];(.*?)[\'"]-;-[\'"];~msi',
            'id' => 'evalFuncExplodedContent',
        ],
        [
            'full' => '~(\$\w{0,100}\s?=\s?(?:chr\(\w{1,10}\)\s?\.?){1,100};\s?(?:\$\w{0,100}\s?=\s?(?:\s?(?:[\'"][\\\\\\\\\w]{1,10}[\'"]|[\d\.]{1,5}\s[*\+\-\.]\s\d{1,5})\s?\.?)+?;\s?){1,10}\$\w{0,100}\s?=\s?(?:chr\(\w{1,10}\)\s?\.?){1,100};\s?\$\w{1,50}\s?=\s?\$\w{1,50}\(\$\w{1,50}\((?:[\'"][^\'"]{1,500}[\'"]\s?\.?\s?)+\),\s?(?:[\'"][^\'"]{1,500}[\'"]\s?\.?\s?)+,\s?substr\(hash\([\'"]SHA256[\'"],(?:\s?[\'"]\d{1,15}[\'"]\s?\.?){2},\s?true\),\s?(\d{1,10}),\s?(\d{1,10})\),\s?OPENSSL_RAW_DATA,\s?\$\w{1,50}\);.*?)(\$\w{1,50})\s?=\s?\$\w{1,50}\([\'"]([^\'"]+)[\'"],[\'"]{2},[\'"]([^\'"]+)[\'"]\);\s?return\s?@eval\(((?:\$\w{1,50}\s?\()+\$\w{1,50}(?:\)\s?)+);\s?exit;~msi',
            'fast' => '~\$\w{0,100}\s?=\s?(?:chr\(\w{1,10}\)\s?\.?){1,100};\s?(?:\$\w{0,100}\s?=\s?(?:\s?(?:[\'"][\\\\\\\\\w]{1,10}[\'"]|[\d\.]{1,5}\s[*\+\-\.]\s\d{1,5})\s?\.?)+?;\s?){1,10}\$\w{0,100}\s?=\s?(?:chr\(\w{1,10}\)\s?\.?){1,100};\s?\$\w{1,50}\s?=\s?\$\w{1,50}\(\$\w{1,50}\((?:[\'"][^\'"]{1,500}[\'"]\s?\.?\s?)+\),\s?(?:[\'"][^\'"]{1,500}[\'"]\s?\.?\s?)+,\s?substr\(hash\([\'"]SHA256[\'"],(?:\s?[\'"]\d{1,15}[\'"]\s?\.?){2},\s?true\),\s?(\d{1,10}),\s?(\d{1,10})\),\s?OPENSSL_RAW_DATA,\s?\$\w{1,50}\);.*?\$\w{1,50}\s?=\s?\$\w{1,50}\([\'"]([^\'"]+)[\'"],[\'"]{2},[\'"]([^\'"]+)[\'"]\);\s?return\s?@eval\(((?:\$\w{1,50}\s?\()+\$\w{1,50}(?:\)\s?)+);\s?exit;~msi',
            'id' => 'evalEncryptedVars',
        ],
        [
            'full' => '~function\s(\w+)\((\$\w+),\s*(\$\w+)[^)]+\)\s*\{\s*\$\w+\s*=\s*\2;\s*\$\w+\s*=\s*\'\';\s*for\s*\(\$\w+\s*=\s*0;\$\w+\s*<\s*strlen\(\$\w+\);\)\s*{\s*for\s*\(\$\w+\s*=\s*0;\$\w+\s*<\s*strlen\(\3\)\s*&&\s*\$\w+\s*<\s*strlen\(\$\w+\);\$\w+\+\+,\s*\$\w+\+\+\)\s*{\s*\$\w+\.=\s*\$\w+\[\$\w+\]\s*\^\s*\3\[\$\w+\];\s*}\s*}\s*return \$\w+;\s*}\s*\$\w+\s*=\s*"[^"]+";\s*\$\w+\s*=\s*"([^"]+)";\s*(?:\$\w+\s*=\s*"";\s*)+(?:foreach[^{]+{[^}]+}\s*)+(\$\w+)\s*=\s*\$\w+\([create_funion\'. ]+\);\s*(\$\w+)\s*=\s*\5\("[^"]*",\s*\$\w+\(\1\(\$\w+\(\$\w+\),\s*"([^"]+)"\)+;\s*\6\(\);~msi',
            'fast' => '~function\s(\w+)\((\$\w+),\s*(\$\w+)[^)]+\)\s*\{\s*\$\w+\s*=\s*\2;\s*\$\w+\s*=\s*\'\';\s*for\s*\(\$\w+\s*=\s*0;\$\w+\s*<\s*strlen\(\$\w+\);\)\s*{\s*for\s*\(\$\w+\s*=\s*0;\$\w+\s*<\s*strlen\(\3\)\s*&&\s*\$\w+\s*<\s*strlen\(\$\w+\);\$\w+\+\+,\s*\$\w+\+\+\)\s*{\s*\$\w+\.=\s*\$\w+\[\$\w+\]\s*\^\s*\3\[\$\w+\];\s*}\s*}\s*return \$\w+;\s*}\s*\$\w+\s*=\s*"[^"]+";\s*\$\w+\s*=\s*"([^"]+)";\s*(?:\$\w+\s*=\s*"";\s*)+(?:foreach[^{]+{[^}]+}\s*)+(\$\w+)\s*=\s*\$\w+\([create_funion\'. ]+\);\s*(\$\w+)\s*=\s*\5\("[^"]*",\s*\$\w+\(\1\(\$\w+\(\$\w+\),\s*"([^"]+)"\)+;\s*\6\(\);~msi',
            'id' => 'xoredKey',
        ],
        [
            'full' => '~(\$\w+)=str_rot13\(\'[^\']+\'\);(\$\w+)=str_rot13\(strrev\(\'[^\']+\'\)\);(\s*eval\(\1\(\2\(\'([^\']+)\'\)+;)+~msi',
            'fast' => '~(\$\w+)=str_rot13\(\'[^\']+\'\);(\$\w+)=str_rot13\(strrev\(\'[^\']+\'\)\);(\s*eval\(\1\(\2\(\'([^\']+)\'\)+;)+~msi',
            'id' => 'evalGzB64',
        ],
        [
            'full' => '~(function\s*(_\d+)\((\$\w+)\)\s*{(\$\w+)=Array\(\'[^)]+\'\);return\s*base64_decode\(\4\[\3\]\);\})(.+?\2\(\d+\))+[^;]+;exit;~msi',
            'fast' => '~(function\s*(_\d+)\((\$\w+)\)\s*{(\$\w+)=Array\(\'[^)]+\'\);return\s*base64_decode\(\4\[\3\]\);\})(.+?\2\(\d+\))+[^;]+;exit;~msi',
            'id' => 'evalArrayB64',
        ],
        [
            'full' => '~http_response_code\(\d{1,3}\);function\s?(\w{1,100})\(\$\w{1,50}\){if\s?\(empty\(\$\w{1,50}\)\)\s?return;\$\w{1,50}\s?=\s?"[^"]{1,500}";(?:(?:\$\w{1,50}\s?=\s?[\'"]{0,2}){1,4};){1,2}\$\w{1,50}\s?=\s?0;\$\w{1,50}\s?=\s?"";\$\w{1,50}\s?=\s?preg_replace\("[^"]{1,50}",\s?"",\s?\$\w{1,50}\);do{.*?while\s?\(\$\w{1,50}\s?<\s?strlen\(\$\w{1,50}\)\);return\s?\$\w{1,50};}eval\(\1\(hex2bin\("(\w{1,30000})"\)\)\);~msi',
            'fast' => '~http_response_code\(\d{1,3}\);function\s?(\w{1,100})\(\$\w{1,50}\){if\s?\(empty\(\$\w{1,50}\)\)\s?return;\$\w{1,50}\s?=\s?"[^"]{1,500}";(?:(?:\$\w{1,50}\s?=\s?[\'"]{0,2}){1,4};){1,2}\$\w{1,50}\s?=\s?0;\$\w{1,50}\s?=\s?"";\$\w{1,50}\s?=\s?preg_replace\("[^"]{1,50}",\s?"",\s?\$\w{1,50}\);do{.*?while\s?\(\$\w{1,50}\s?<\s?strlen\(\$\w{1,50}\)\);return\s?\$\w{1,50};}eval\(\1\(hex2bin\("(\w{1,30000})"\)\)\);~msi',
            'id' => 'evalFuncBinary',
        ],
        [
            'full' => '~(\$\w{1,50}\s?=\s?\'\w{1,500}\';){1,5}\$\w{1,50}\s?=\s?(?:\$\w{1,50}\.?){1,10};\$\w{1,50}=\$\w{1,50}\([\'"]H\*[\'"],[\'"](\w{1,200})[\'"]\);\s?\$\w{1,50}\("[^"]{1,100}","(\\\\x[^\']{1,500})(\'[^\']{1,50000}\')\\\\x[^"]{1,50}",[\'"]{2}\);~msi',
            'fast' => '~(\$\w{1,50}\s?=\s?\'\w{1,500}\';){1,5}\$\w{1,50}\s?=\s?(?:\$\w{1,50}\.?){1,10};\$\w{1,50}=\$\w{1,50}\([\'"]H\*[\'"],[\'"](\w{1,200})[\'"]\);\s?\$\w{1,50}\("[^"]{1,100}","(\\\\x[^\']{1,500})(\'[^\']{1,50000}\')\\\\x[^"]{1,50}",[\'"]{2}\);~msi',
            'id' => 'evalPackFuncs',
        ],
        [
            'full' => '~parse_str\(((?:\s?\'[^\']\'\s?\.?\s?){1,500}),\s?(\$\w{1,50})\s?\);@?\2\[\d{1,5}\]\(\2\s?\[\d{1,5}\],array\(\),array\s?\(\s?\'([^\']{1,10})\'\s?\.(\$\w{1,50}\[\d\]\s?\(\$\w{1,50}\[\d\]\s?\(\$\w{1,50}\[\s?\d{1,2}\]\()(\'[^\']{1,50000}\')\)\)\)\.\'([^\']{1,10})\'\)\);~msi',
            'fast' => '~parse_str\(((?:\s?\'[^\']\'\s?\.?\s?){1,500}),\s?(\$\w{1,50})\s?\);@?\2\[\d{1,5}\]\(\2\s?\[\d{1,5}\],array\(\),array\s?\(\s?\'([^\']{1,10})\'\s?\.(\$\w{1,50}\[\d\]\s?\(\$\w{1,50}\[\d\]\s?\(\$\w{1,50}\[\s?\d{1,2}\]\()(\'[^\']{1,50000}\')\)\)\)\.\'([^\']{1,10})\'\)\);~msi',
            'id' => 'parseStrFunc',
        ],
        [
            'full' => '~eval\("\\\\(\$\w+)=(gz[^\)]+\)\);)"\);eval\("\?>"\.\1\);~msi',
            'fast' => '~eval\("\\\\(\$\w+)=(gz[^\)]+\)\);)"\);eval\("\?>"\.\1\);~msi',
            'id' => 'evalGzinflate',
        ],
        [
            'full' => '~function\s?(\w{1,50})\(\$\w{1,50}\)\s?{\s?(\$\w{1,50})\s?=\s?\("([^"]{1,500})"\);\s?(?:\$\w{1,50}\s?=\s?(?:"[^"]+"|\$\w{1,50}|[\'"]{2});\s?)+for\(\$\w{1,50}\s?=\s?0;\s?\$\w{1,50}<strlen\(\$\w{1,50}\);\s?\)\s?{\s?for\(\$\w{1,50}\s?=\s?0;\s?\(\$\w{1,50}<strlen\(\2\)\s?&&\s?\$\w{1,50}<strlen\(\$\w{1,50}\)\);\s?\$\w{1,50}\+\+,\$\w{1,50}\+\+\){\s?(?:\$\w{1,50}\s?=\s?"[^"]+";\s?){1,2}\$\w{1,50}\s?\.=\s?\$\w{1,50}{\$\w{1,50}}\s?\^\s?\$\w{1,50}{\$\w{1,50}};\s?\$\w{1,50}\s?=\s?"[^"]+";\s?}\s?}\s?return\s?\$\w{1,50};\s?}\s?(\$\w{1,50})\s?=\s?preg_replace\("([^"]+)",\s?"",\s?"([^"]+)"\);\s?(?:\s?\$\w{1,50}\s?=\s?(?:"[^"]+"|\w{1,50}\(\$\w{1,50}\("[^"]+"\)\)|\$\w{1,50}\(\)\.\s?\w{1,50}\(\$\w{1,50}\("[^"]+"\)\)|"[^"]+"\s*\.\s*\w+\(\$\w+\("[^"]+"\)\));\s?){1,50}(\$\w{1,50}\(\$\w{1,50},(?:\$\w{1,50}\.?)+\);)\s?(?:\$\w{1,50}\s?=\s?"[^"]+";\s?|include\s?\$\w{1,50};\s){1,50}~msi',
            'fast' => '~function\s?(\w{1,50})\(\$\w{1,50}\)\s?{\s?(\$\w{1,50})\s?=\s?\("([^"]{1,500})"\);\s?(?:\$\w{1,50}\s?=\s?(?:"[^"]+"|\$\w{1,50}|[\'"]{2});\s?)+for\(\$\w{1,50}\s?=\s?0;\s?\$\w{1,50}<strlen\(\$\w{1,50}\);\s?\)\s?{\s?for\(\$\w{1,50}\s?=\s?0;\s?\(\$\w{1,50}<strlen\(\2\)\s?&&\s?\$\w{1,50}<strlen\(\$\w{1,50}\)\);\s?\$\w{1,50}\+\+,\$\w{1,50}\+\+\){\s?(?:\$\w{1,50}\s?=\s?"[^"]+";\s?){1,2}\$\w{1,50}\s?\.=\s?\$\w{1,50}{\$\w{1,50}}\s?\^\s?\$\w{1,50}{\$\w{1,50}};\s?\$\w{1,50}\s?=\s?"[^"]+";\s?}\s?}\s?return\s?\$\w{1,50};\s?}\s?(\$\w{1,50})\s?=\s?preg_replace\("([^"]+)",\s?"",\s?"([^"]+)"\);\s?(?:\s?\$\w{1,50}\s?=\s?(?:"[^"]+"|\w{1,50}\(\$\w{1,50}\("[^"]+"\)\)|\$\w{1,50}\(\)\.\s?\w{1,50}\(\$\w{1,50}\("[^"]+"\)\)|"[^"]+"\s*\.\s*\w+\(\$\w+\("[^"]+"\)\));\s?){1,50}(\$\w{1,50}\(\$\w{1,50},(?:\$\w{1,50}\.?)+\);)\s?(?:\$\w{1,50}\s?=\s?"[^"]+";\s?|include\s?\$\w{1,50};\s){1,50}~msi',
            'id' => 'funcVars',
        ],
        [
            'full' => '~(\$\w+)\s*=\s*"([^"]+)";(?:\$\w+\s*=\s*(?:\1\[\d+\][\.;])+)+@?(?:\$\w+[\(,])+((?:\1\[\d+\][\.;\)])+)\)\),\$\w+\[\d+\],\$\w+\[\d+\]\);~msi',
            'fast' => '~(\$\w+)\s*=\s*"([^"]+)";(?:\$\w+\s*=\s*(?:\1\[\d+\][\.;])+)+@?(?:\$\w+[\(,])+((?:\1\[\d+\][\.;\)])+)\)\),\$\w+\[\d+\],\$\w+\[\d+\]\);~msi',
            'id' => 'dictVars',
        ],
        /*[
            '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',
        ],*/

        /*[
            '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',
        ],*/

        /*************************************************************************************************************/
        /*                                          JS patterns                                                      */
        /*************************************************************************************************************/

        [
            'full' => '~(?:eval\()?String\.fromCharCode\(([\d,\s]+)\)+;~msi',
            'fast' => '~String\.fromCharCode\([\d,\s]+\)+;~msi',
            'id'   => 'JS_fromCharCode',
        ],
        [
            'full' => '~(?:eval\()?unescape\(\'([^\']+)\'\)\);\s{0,50}eval\(unescape\(\'([^\']+)\'\)\s{0,50}\+\s{0,50}\'([^\']+)\'\s{0,50}\+\s{0,50}unescape\(\'[^\']+\'\)\);~msi',
            'fast' => '~unescape\(\'([^\']+)\'\)\);\s{0,50}eval\(unescape\(\'([^\']+)\'\)\s{0,50}\+\s{0,50}\'([^\']+)\'\s{0,50}\+\s{0,50}unescape\(\'[^\']+\'\)\);~msi',
            'id'   => 'JS_unescapeContentFuncWrapped',
        ],

        /*************************************************************************************************************/
        /*                                          PYTHON patterns                                                 */
        /*************************************************************************************************************/

        [
            'full' => '~eval\(compile\(zlib\.decompress\(base64\.b64decode\([\'"]([^\'"]+)[\'"]\)\),[\'"]<string>[\'"],[\'"]exec[\'"]\)\)~msi',
            'fast' => '~eval\(compile\(zlib\.decompress\(base64\.b64decode\([\'"]([^\'"]+)[\'"]\)\),[\'"]<string>[\'"],[\'"]exec[\'"]\)\)~msi',
            'id'   => 'PY_evalCompileStr',
        ],
    ];

    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, '0=__FILE__;')
                && strpos($text2, ';return;?>')) //lockit1
            || (strpos($temp, '");$cvsu=$gg')) //TinkleShell
            || (strpos($text2, 'The latest version of Encipher can be obtained from')
                && strpos($text2, '\'@ev\'));')) //EvalFileContent
            || (strpos($text2, 'substr(file_get_contents(__FILE__),')
                && strpos($text2, '__halt_compiler();')) //EvalFileContentOffset
        ) {
            $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 < 6) {
            $this->text = $deobfuscated;
            if ($prev_step == hash('sha256', $deobfuscated)) {
                return $deobfuscated;
            }
            $deobfuscated = $this->deobfuscate(++$hangs, hash('sha256', $deobfuscated));
        }
        return $deobfuscated;
    }

    private function deobfuscateStrrotPregReplaceEval($str, $matches)
    {
        $find = $matches[0];
        $res = str_rot13($matches[2]);
        $res = str_replace($find, $res, $str);
        return $res;
    }

    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, $matches)
    {
        $data = $matches[1];
        $key = $matches[2];
        $res = Helpers::obf20200414_1_decrypt($data, $key);
        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 deobfuscateEvalAssignedVars($str, $matches)
    {
        $res = $str;

        $vars = [$matches[1] => $matches[2]];

        $res = preg_replace_callback('~(\$\w{1,3000})=(base64_decode|gzinflate|convert_uudecode|str_rot13)\((\$\w{1,3000})\);~msi',
            function ($match) use (&$vars) {
                $func = $match[2];
                if (Helpers::isSafeFunc($func) && isset($vars[$match[3]])) {
                    $vars[$match[1]] = @$func($vars[$match[3]]);
                    return '';
                }
                return $match[1] . '=' . $match[2] . '(\'' . $match[3] . '\';';
            }, $res);

        $res = $vars[$matches[4]] ?? Helpers::replaceVarsFromArray($vars, $res);

        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, $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, -45), $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*[\'"](?|([^\']+)\'|([^"]+)");~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*[\'"]{2},\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);

        if ($str_replace !== '') {
            $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);
        }


        if ($base64_decode !== '') {
            $regex = '~\\' . $base64_decode . '\(\\' . $str_replace . '\("(\w+)",\s*"",\s*([\$\w\.]+)\)~msi';
        } else {
            $regex = '~str_replace\([\'"]([^\'"]+)[\'"],\s*[\'"]{2},\s*([\$\w\.]+)\);\s?(\$\w+)=\$\w+\([\'"]{2},\$\w+\);\3\(\);~msi';
        }

        $res = preg_replace_callback($regex,
            function ($matches) use (&$vars, &$layer, $base64_decode) {
                $tmp = explode('.', $matches[2]);
                foreach ($tmp as &$item) {
                    $item = $vars[$item];
                }
                $tmp = implode('', $tmp);
                $layer = str_replace($matches[1], "", $tmp);
                if ($base64_decode !== '') {
                    $layer = base64_decode($layer);
                }

                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 = [];
        $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)
    {
        $result = $str;
        $funcs = str_replace($matches[4], '', $matches[3]);

        if (Helpers::concatStr($matches[1]) === 'create_function'
            && Helpers::concatStr($matches[2]) === 'eval') {
            $funcs = explode('(', $funcs);
            $iMax = count($funcs) - 2;
            $final_code = $matches[5];

            for ($i = $iMax; $i >= 0; $i--) {
                if ($funcs[$i][0] !== '\'' && $funcs[$i][0] !== '"') {
                    $funcs[$i] = '\'' . $funcs[$i];
                }
                $func = Helpers::concatStr($funcs[$i] . '"');
                if (Helpers::isSafeFunc($func)) {
                    $final_code = @$func($final_code);
                }
            }
            $result = $final_code;
        }
        $result = ' ?>' . $result;

        return $result;
    }

    private function deobfuscateCreateFuncConcat($str, $matches)
    {
        $find = $matches[0];
        $res = $str;
        $vars = [];
        $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 = [];
        $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 = [];
        $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, $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, $match)) {
            $res = base64_decode(strtr(substr($match[1], 52*2), substr($match[1], 52, 52), substr($match[1], 0, 52)));
        }

        if (preg_match('~function\s*(\w+)\(\$\w+\)[\w{\$=\s*();<+\[\]\-]+\}\s+return[\$\s\w;]+}eval\(\1\("([\w\/+=]+)?"\)\);~', $res, $matchEval)) {
            $res = gzinflate(base64_decode($matchEval[2]));
            for ($i=0; $i < strlen($res); $i++)
            {
                $res[$i] = chr(ord($res[$i])-1);
            }
            $res = str_replace($find, $res, $str);
            return $res;
        }

        if (preg_match('~header\(\'[^\']+\'\);(?:\$\w+=\${[^}]+}\[[^\]]+\]\(\'.*?\'?;}?\'\);)+\${[^}]+}\[[^\]]+\]\(\);~msi',
            $matches[6], $match)) {
            $res = stripcslashes($match[0]);
            $dictionaryName = $matches[1];
            $dictionaryValue = urldecode($matches[3]);
            $vars = Helpers::getVarsFromDictionary($dictionaryValue, $str);
            $res = Helpers::replaceVarsFromArray($vars, $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, $m);
            $res = preg_replace_callback('~\$\{"GLOBALS"}\["' . $m[1] . '"\]\s*\(\'([^\']+)\'\)~msi', function ($calls) use ($m) {
                $temp1 = substr($calls[1], $m[3], $m[4]);
                $temp2 = substr($calls[1], $m[5]);
                $temp3 = substr($calls[1], $m[6],strlen($calls[1]) - $m[7]);
                return "'" . gzinflate(base64_decode($temp1 . $temp3 . $temp2)) . "'";
            }, $res);
            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);
        preg_match_all('~\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\'](\w+)[\'"];~msi', $res, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            $res = preg_replace_callback('~\$\{\$\{"GLOBALS"\}\[[\'"]' . $match[1] . '[\'"]\]\}~msi', function ($matches) use ($match) {
                return '$' . $match[2];
            }, $res);
            $res = str_replace($match[0], '', $res);
        }
        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 = [];
            $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, $xor_key = null)
    {
        if (!isset($matches)) {
            preg_match('~(?(DEFINE)(?\'c\'(?:/\*\w+\*/)*))(\$\w+)\s*=\s*basename(?&c)\((?&c)trim(?&c)\((?&c)preg_replace(?&c)\((?&c)rawurldecode(?&c)\((?&c)"[%0-9A-F\.]+"(?&c)\)(?&c),\s*\'\',\s*__FILE__(?&c)\)(?&c)\)(?&c)\)(?&c);(\$\w+)\s*=\s*"([%\w\.\-\~]+)";(?:(\$\w+)=[^;]+;\5(?&c)\((?&c)\'\',\s*\'};\'\s*\.\s*(?&c)\()?(?:eval(?&c)\()?(?&c)rawurldecode(?&c)\((?&c)\3(?&c)\)(?&c)\s*\^\s*substr(?&c)\((?&c)str_repeat(?&c)\((?&c)\2,\s*(?&c)\((?&c)strlen(?&c)\((?&c)\3(?&c)\)(?&c)/strlen(?&c)\((?&c)\2(?&c)\)(?&c)\)(?&c)\s*\+\s*1(?&c)\)(?&c),\s*0,(?&c)\s*strlen(?&c)\((?&c)\3(?&c)\)(?&c)\)(?&c)\)(?:(?&c)\s*\.\s*\'{\'(?&c)\))?(?&c);~msi', $str, $matches);
        }
        $encrypted = rawurldecode($matches[4]);
        if (!isset($xor_key)) {
            $plain_text = '@ini_set(\'error_log\', NULL);';
            $plain_text2 = 'if (!defined(';
            $xor_key = substr($encrypted, 0, strlen($plain_text)) ^ $plain_text;
            if (preg_match('~\.?[a-z0-9-_]{8,}\.\w{3}~', $xor_key, $m)) {
                $xor_key = $m[0];
            } else {
                $xor_key = substr($encrypted, 0, strlen($plain_text2)) ^ $plain_text2;
                if (preg_match('~\.?[a-z0-9-_]{8,}\.\w{3}~', $xor_key, $m)) {
                    $xor_key = $m[0];
                }
            }
        }
        $result = $encrypted ^ substr(str_repeat($xor_key, (strlen($encrypted) / strlen($xor_key)) + 1), 0, strlen($encrypted));
        return $result;
    }

    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 = [];
        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=[];

        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 deobfuscateArrayOffsetsEval($str, $matches)
    {
        $arg1 = explode(chr(Helpers::calculateMathStr($matches[4])), $matches[5]);
        $arg2 = $matches[2];
        $code = null;

        for ($enqvlelpmr = 0; $enqvlelpmr < (sizeof($arg1) / 2); $enqvlelpmr++) {
            $code .= substr($arg2, $arg1[($enqvlelpmr * 2)], $arg1[($enqvlelpmr * 2) + 1]);
        }

        $res = str_replace(
            chr(Helpers::calculateMathStr($matches[20])),
            chr(Helpers::calculateMathStr($matches[21])),
            $code
        );

        $arg1 = substr(
            $matches[2],
            Helpers::calculateMathStr($matches[7]),
            Helpers::calculateMathStr($matches[8])
        );

        $func = substr(
            $matches[2],
            Helpers::calculateMathStr($matches[23]),
            Helpers::calculateMathStr($matches[24])
        );

        return $res;
    }

    private function deobfuscateXoredVar($str, $matches)
    {
        $res = $str;
        $find = $matches[0];
        preg_match_all('~(\$\w{1,40})\s*=\s*\'((?:\\\\.|[^\'])*)\'(?:\^\s*\'((?:\\\\.|[^\'])*)\')?;~msi', $str, $matches, PREG_SET_ORDER);
        $vars = [];
        foreach ($matches as $match) {
            $vars[$match[1]] = $match[2];
            if (isset($match[3])) {
                $vars[$match[1]] ^= $match[3];
            }
            $res = str_replace($match[0], $match[1] . "='" . $vars[$match[1]] . "';", $res);
        }

        preg_match_all('~(\$\w{1,40})\s*=\s*(\w+);~msi', $str, $matches, PREG_SET_ORDER);
        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);
            }
        }
        preg_match_all('~(\$\w+)\^\'((\\\\.|[^\'])*)\'~msi', $res, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            if (isset($vars[$match[1]])) {
                $res = str_replace($match[0], "'" . addcslashes($vars[$match[1]] ^ $match[2], '\\\'') . "'", $res);
            }
        }

        preg_match_all('~(\$\w+)(\.)?=(\$\w+)?(?:\'((?:\\\\.|[^\'])*)\')?\.?(\$\w+)?(?:\'((?:\\\\.|[^\'])*)\')?(?:\^(\$\w+))?(?:\.\'((?:\\\\.|[^\'])*)\')?;~msi', $res, $matches, PREG_SET_ORDER);
        foreach ($matches as $match) {
            $val = '';

            //var
            if (isset($match[2]) && $match[2] !== '') {
                if (isset($vars[$match[1]])) {
                    $val .= $vars[$match[1]];
                } else {
                    continue;
                }
            }

            //var
            if (isset($match[3]) && $match[3] !== '') {
                if (isset($vars[$match[3]])) {
                    $val .= $vars[$match[3]];
                } else {
                    continue;
                }
            }

            //str
            if (isset($match[4]) && $match[4] !== '') {
                $val .= $match[4];
            }

            //var
            if (isset($match[5]) && $match[5] !== '') {
                if (isset($vars[$match[5]])) {
                    $val .= $vars[$match[5]];
                } else {
                    continue;
                }
            }

            //str
            if (isset($match[6]) && $match[6] !== '') {
                $val .= $match[6];
            }

            //var and str
            if (isset($match[7]) && $match[7] !== '') {
                if (isset($vars[$match[7]])) {
                    $additionalStr = '';
                    if (isset($match[8]) && $match[8] !== '') {
                        $additionalStr = $match[8];
                    }
                    $val ^= $vars[$match[7]] . $additionalStr;
                } else {
                    continue;
                }
            } else {
                if (isset($match[8]) && $match[8] !== '') {
                    $val .= $match[8];
                }
            }

            $vars[$match[1]] = $val;
            $res = str_replace($match[0], '', $res);
        }

        $res = preg_replace_callback('~(\$\w+)([()]|==)~msi', function ($match) use ($vars) {
            $res = $vars[$match[1]] ?? $match[1];
            if (isset($vars[$match[1]]) && ($match[2] === ')' || $match[2] === '==')) {
                $res = "'$res'";
            }

            return $res . $match[2];
        }, $res);

        foreach ($vars as $var => $value) {
            $res = str_replace($var, $value, $res);
            $res = str_replace($value . "='" . $value . "';", '', $res);
        }
        $res = str_replace($find, $res, $str);

        if (preg_match('~((\$\w+)=\${\'(\w+)\'};)(?:.*?)((\$\w+)=\2(\[\'[^\']+\'\]);)~msi', $res, $matches)) {
            $res = str_replace($matches[1], '', $res);
            $res = str_replace($matches[4], '', $res);
            $cookieVar = sprintf('$%s%s', $matches[3], $matches[6]);
            $res = str_replace($matches[5], $cookieVar, $res);
        }

        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 = [];
        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 = [];
        $strlist = [];
        $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', ['Helpers','calc'], $res);
            $hangs++;
        }

        while (preg_match('~(?:min|max|round)\(\s*\d+\s*\)~msi', $res) && $hangs < 15) {
            $res = preg_replace_callback('~(?:min|max|round)\(\s*\d+\s*\)~msi', ['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(['"', "'"], '', $funclist[$varname][$matches[1]]);
                    },
                    $res
                );
                $res = str_replace($found[0], '', $res);
            }
        }

        $array_temp = [];
        while (preg_match('~function\s*(\w{1,60})\(\$\w+\){\$\w{1,60}\s*=\s*Array\((.{1,30000}?)\);\s*return\s*base64_decode[^}]+}~msi', $res, $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 ($array_temp, $found) {
                    return "'" . $array_temp[$found[1]][$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, $matches)
    {
        $phpcode = base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($str)));
        $result = $str;
        $offset = 0;
        $dictName = $matches[1];
        $dictVal = urldecode($matches[2]);
        $vars = [$dictName => $dictVal];

        $vars = Helpers::getVarsFromDictionaryDynamically($vars, $str);

        if (preg_match('~eval\(~msi', $matches[15])) {
            $phpcode = base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($matches[15])));
        }

        if ($matches[7] !== '' && preg_match('~eval\(~msi', $matches[7])) {
            $phpcode2 = base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($matches[7])));
            $vars = Helpers::collectVars($phpcode2, "'", $vars);
        }

        if (preg_match('~\$_F=__FILE__;\$_X=\'([^\']+)\';\s*eval\s*\(\s*\$?\w{1,60}\s*\(\s*[\'"][^\'"]+[\'"]\s*\)\s*\)\s*;~msi', $str, $matches)) {
            $needles = Helpers::getNeedles($phpcode);
            $needle        = $needles[0];
            $before_needle = $needles[1];
            $strToDecode = base64_decode($matches[1]);
            return '<?php ' . strtr($strToDecode, $needle, $before_needle);
        }

        $count = 0;
        preg_match_all('~,(\d+|0x\w+)\)~msi', $phpcode, $offsetMatches, PREG_SET_ORDER);
        if (count($offsetMatches) === 2) {
            foreach ($offsetMatches as $offsetMatch) {
                if (strpos($offsetMatch[1], '0x') !== false && isset($str[$offset + hexdec($offsetMatch[1])])) {
                    $count++;
                    $offset += hexdec($offsetMatch[1]);
                } else if (isset($str[$offset + (int)$offsetMatch[1]])) {
                    $count++;
                    $offset += (int)$offsetMatch[1];
                }
            }
        }

        $finalOffset = 0;
        if (preg_match('~(\$[O0]*)=(\d+|0x\w+);~msi', $str, $match) && $count === 2) {
            if (strpos($match[2], '0x') !== false) {
                $finalOffset = hexdec($match[2]);
            } else {
                $finalOffset = (int)$match[2];
            }
        }

        $result = substr($str, $offset);
        if ($finalOffset > 0) {
            $result = substr($result, 0, $finalOffset);
        }

        if (preg_match('~[\'"]([^\'"]+)[\'"],[\'"]([^\'"]+)[\'"]~msi', $phpcode, $needleMatches)) {
            $result = strtr($result, $needleMatches[1], $needleMatches[2]);
        }

        $result = base64_decode($result);

        $result = Helpers::replaceVarsFromArray($vars, $result, true);

        for ($i = 0; $i < 2; $i++) {
            $result = preg_replace_callback('~eval\s?\(((?:(?:str_rot13|gzinflate|str_rot13|base64_decode)\()+\'[^\']+\'\)+);~msi',
                function ($match) {
                    return $this->unwrapFuncs($match[1]);
                }, $result);

            $result = preg_replace_callback('~eval\s?\((?:str_rot13\()+\'((?|\\\\\'|[^\'])+\')\)\);~msi',
                function ($match) {
                    return str_rot13($match[1]);
                }, $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
        );

        $result = Helpers::replaceVarsFromArray($vars, $result, true);

        return '<?php ' . $result;
    }

    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)?\(?[\'"]([\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;
    }

    private function deobfuscateUrlDecode3($str, $matches)
    {
        $dictionaryKey = $matches[4];
        $dictionaryVal = urldecode($matches[3]);

        $result = Helpers::replaceVarsFromDictionary($dictionaryKey, $dictionaryVal, $str);

        return $result;
    }

    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 = [];
            if (@preg_match_all('~\\' . $string . '\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*\()+((?:"((.*?[^\\\\])??((\\\\\\\\)+)?+)"[^;]+;)|(?:\$\w+)\)*;*))~msi', $this->full_source, $matches)
                || @preg_match_all('~\\' . $string . '\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*\()+((?:\'((.*?[^\\\\])??((\\\\\\\\)+)?+)\'[^;]+;)|(?:\$\w+)\)*;*))~msi', $this->full_source, $matches)
            ) {
                $str = $this->unwrapFuncs($matches[1][0], $level + 1);
            }

            if (@preg_match_all('~\\' . $string . '\s*=\s*("((.*?[^\\\\])??((\\\\\\\\)+)?+)");~msi', $this->full_source, $matches)
                || @preg_match_all('~\\' . $string . '\s*=\s*(\'((.*?[^\\\\])??((\\\\\\\\)+)?+)\');~msi', $this->full_source, $matches)
            ) {
                $str = substr(@$matches[1][0], 1, -1);
            }
            $this->cur = str_replace($matches[0][0], '', $this->cur);
            $this->text = str_replace($matches[0][0], '', $this->text);
            return $str;
        } 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(['@', ' '], '', $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]);
                } elseif ($function === 'str_replace') {
                    $args = explode(',', $arg);
                    $args[0] = substr(trim($args[0]), 0, -1 );
                    $args[1] = substr(trim($args[1]), 0);
                    if (trim($args[1]) === 'null') {
                        $args[1] = null;
                    }
                    $args[2] = $this->unwrapFuncs(trim($args[2]), $level + 1) ?? $args[2];
                    $res = @$function($args[0], $args[1], $args[2]);
                } 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);
        }
        $str = str_replace('\\\'', '@@slaquote@@', $str);
        $str = str_replace('\\"', '@@sladquote@@', $str);
        $val = '';
        if (!@preg_match_all('~\\' . $evalVar . '\s*=\s*("[^"]+");~msi', $str, $matches)) {
            @preg_match_all('~\\' . $evalVar . '\s*=\s*(\'[^\']+\');~msi', $str, $matches);
            $val = @$matches[1][count($matches[1])  - 1];
        } else {
            $val = $matches[1][count($matches[1])  - 1];
        }
        $res = str_replace($matches[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);
        $string = str_replace('@@slaquote@@', '\\\'', $string);
        $string = str_replace('@@sladquote@@', '\\"', $string);
        $res = str_replace($find, $string, $str);
        return $res;
    }

    private function deobfuscateEval($str, $matches)
    {
        if (preg_match('~\)+\..{0,30}base64_decode~msi', $str)) {
            $res = explode(').', $str);
            $res = implode(')); eval(', $res);
            return $res;
        }
        $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;
        }
        if (preg_match('~\$_(POST|GET|REQUEST|COOKIE)~ms', $res)) {
            return $res;
        }
        $string = substr($res, 5, strlen($res) - 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)
                   && (strlen(strstr($phpcode, '__FILE__')) === 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 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];
        $dictionary = str_replace("\'", "'", $dictionary);
        $dictionary = str_replace('\"', '"', $dictionary);
        $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);
        }

        $content = Helpers::replaceVarsFromDictionary($matches[1], $dictionary, $content);

        foreach ($vars as $key => $value) {
            $content = str_replace($key, $value, $content);
        }

        $content = preg_replace_callback('~\${[\'"](\w+)[\'"]}~msi', function ($m) {
            return '$' . $m[1];
        }, $content);

        $content = str_replace("''}", "\''}", $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)
    {
        if (!isset($matches[4]) && preg_match('~(\$\w+)=((?:\'[\w%]+\'\.?)+);\s?(?:.*?)\s(\$\w+)=((?:\1\[?{?\d+\]?}?\.?)+);~msi', $matches[0], $m)) {
            $matches[4] = $m[1];
            $matches[5] = $m[2];
            $matches[6] = $m[3];
            $matches[7] = $m[4];
        }
        $result = $matches[0];
        $strName = $matches[1];
        $dictionaryName = $matches[4];
        $dictionaryValue = Helpers::collectStr("$matches[5]", "'");
        $vars = Helpers::getVarsFromDictionary($dictionaryValue, "$matches[6]=$matches[7]");
        $funcs = [];

        $result = str_replace("$matches[6]=$matches[7];", "", $result);

        $vars = array_merge($vars, Helpers::getVarsFromDictionary($dictionaryValue, $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+\(\));~ms',
            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?((?:\$' . substr($matches[4], 1) . '[{\[]\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 = "";

        $regexFinal = str_replace('mainVar', $strName, '~(?:\mainVar\s?=\s?\w+\(\s?\mainVar\s*,\s?["\'](?<concat>[\w+\/]+)[\'"]\s?\)\s?;)|(?:\mainVar\s?=\s?\w+\(\s?\mainVar\s?,\s?(?<concatFunc>\w+\(\))\)\s?;)|(?:\mainVar\s?\.?=\s?(?:\mainVar\.)?\s?["\'](?<concatStr>[\w+\/=]+)[\'"]\s?;)|(?:\mainVar\s?\.?=\s?(?<concatFuncSingle>\w+\(\))\s?;)|(\$\w+\s?=\s?new\s\w+\(\)\s?;\s?\mainVar\s?\.?=\s?\mainVar\s?\.\s?\$\w+->(?<concatFuncClass>\w+\(\)\s?))|(?:(?<func>[^,\s]\w+\(\)))~msi');

        $result = preg_replace_callback(
            $regexFinal,
            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
        );

        $code = $result;
        $result = base64_decode($strToDecode);

        if (preg_match('~((\$\w+)="";).*?((\$\w+)=create_function\(\'(\$\w+,\$\w+)\',\s?(base64_decode\(((?:"[\w+=]+"\.?)+)\))\);).*?(\$\w+\s?=\s?create_function\("",\s?\4\(base64_decode\(\2\),\s?(\$_COOKIE\[\'\w+\'\])\)\s?\);)~msi',
            $code, $codeMatch)) {
            $initialCode = base64_decode(Helpers::collectStr($codeMatch[7]));

            $result = sprintf("function %s(%s){%s}%s='%s';%s(%s,%s);",
                substr($codeMatch[4], 1), $codeMatch[5], $initialCode, $codeMatch[2], $result,
                substr($codeMatch[4], 1), $codeMatch[2], $codeMatch[9]);
        }

        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[5]));

        for ($i = 0; $i < strlen($result); $i++) {
            $result[$i] = chr(ord($result[$i]) - (int)$matches[4]);
        }

        return $result;
    }

    private function deobfuscateFuncFile($str, $matches)
    {
        $result = base64_decode($matches[2]);

        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[3];
        $len = strlen($str);

        for ($i = 0; $i < $len; $i++) {
            $result .= chr(ord($str[$i]) ^ $num);
        }

        $result = str_replace(['<?php', '?>', '', ''], '', $result);

        return $result;
    }

    private function deobfuscateEvalPost($str, $matches)
    {
        $result = '';

        $vars = Helpers::collectVars($str);

        $result = str_replace('.', "", $matches[8]);
        $result = str_replace($matches[7], "", Helpers::replaceVarsFromArray($vars, $result));
        $result = base64_decode(base64_decode($result));

        return $result;
    }

    private function deobfuscateEvalPregStr($str, $matches)
    {
        $result = sprintf("%s'%s'%s", stripcslashes($matches[1]), $matches[2], stripcslashes($matches[3]));

        $result = $this->unwrapFuncs($result);

        return $result;
    }

    private function deobfuscateClassDestructFunc($str, $matches)
    {
        $result = $str;

        $arg1 = $matches[1] ^ stripcslashes($matches[2]);
        $arg2 = $matches[3] ^ stripcslashes($matches[4]);

        if ($arg1 === 'assert' && $arg2 === 'eval') {
            $result = base64_decode($matches[5]);
        }

        return $result;
    }

    private function deobfuscateCreateFuncEval($str, $matches)
    {
        $result = $str;

        $func = stripcslashes($matches[1]);

        if (Helpers::isSafeFunc($func)) {
            $result = @$func($matches[2]);
        }

        return $result;
    }

    private function deobfuscateEvalCreateFunc($str, $matches)
    {
        $result = $str;

        $arr = [
            0 => $matches[4],
            1 => $matches[5],
            2 => $matches[6],
            3 => $matches[13],
        ];

        $func_1 = Helpers::decodeEvalCreateFunc_1($arr);
        if (strtoupper($func_1) === 'CREATE_FUNCTION') {
            $arr[3] = $matches[10];

            $result = Helpers::decodeEvalCreateFunc_1($arr);

            $result = preg_replace_callback('~base64_decode\([\'"]([\w=]+)[\'"]\)~msi', function ($match) {
                $extraCode = $this->unwrapFuncs($match[0]);

                if (preg_match('~if\(!function_exists\([\'"](\w+)[\'"]\)\){function\s?\1\((\$\w+)\){(\$\w+)=array\(\'([{\w\]]+)\',\'([\w`]+)\',\2\);for\((\$\w+)=0;\6<3;\6\+\+\){for\((\$\w+)=0;\7<strlen\(\3\[\6\]\);\7\+\+\)\s?\3\[\6\]\[\7\]\s?=\s?chr\(ord\(\3\[\6\]\[\7\]\)-1\);if\(\6==1\)\s?\3\[2\]=\3\[0\]\(\3\[1\]\(\3\[2\]\)\);}\s?return\s?\3\[2\];}(\$\w+)=["\']([\w\+\/=]+)["\'];(\$\w+)=[\'"]\1[\'"];(\$\w+)=\10\([\'"]([\w=]+)[\'"]\);\$\w+=\11\(\'\',\10\(\8\)\);\$\w+\(\);}~msi', $extraCode, $matchCode)) {
                    $arr = [
                        0 => $matchCode[4],
                        1 => $matchCode[5],
                        2 => $matchCode[12],
                    ];

                    $func_1 = Helpers::decodeEvalCreateFunc_2($arr);
                    if (strtoupper($func_1) === 'CREATE_FUNCTION') {
                        $arr[2] = $matchCode[9];

                        $extraCode = str_replace($matchCode[0], Helpers::decodeEvalCreateFunc_2($arr), $extraCode);
                    }
                }
                return $extraCode;
            }, $result);
        }

        return $result;
    }

    private function deobfuscateEvalFuncVars($str, $matches)
    {
        $result = $str;

        $vars = Helpers::collectFuncVars($matches[1]);

        $result = Helpers::replaceVarsFromArray($vars, $matches[2]);

        if (strpos($result, 'eval') !== false) {
            $result = $this->unwrapFuncs($result);
        }

        return $result;
    }

    private function deobfuscateDictionaryCreateFuncs($str, $matches)
    {
        $delimiter = '||||';
        $result = $str;
        $vars = Helpers::getVarsFromDictionary($matches[3], $matches[4]);
        $result = $matches[7].$delimiter.$matches[8];

        $result = preg_replace_callback('~\${"[\\\\\w]+"}\["[\\\\\w]+"\]~msi', function ($match) {
            return stripcslashes($match[0]);
        }, $result);

        $result = preg_replace_callback('~\${"GLOBALS"}\["(\w+)"\]~msi', function ($match) use ($vars) {
            $varName = '$' . $match[1];

            return $vars[$varName] ?? $varName;
        }, $result);

        $string = $matches[9];
        $str1 = substr($string, 0, 5);
        $str2 = substr($string, 7, strlen($string) - 14);
        $str3 = substr($string, -5);
        $decodedStr = gzinflate(base64_decode($str1 . $str2 . $str3));

        $delimCode = explode($delimiter, $result);

        $result = str_replace($matches[6], sprintf("'%s'.(%s)", $decodedStr, stripslashes($delimCode[1])), $delimCode[0]);

        $result = $matches[5] . $result;

        return $result;
    }

    private function deobfuscateEvalPostDictionary($str, $matches)
    {
        $finalCode = $matches[19];
        $result = str_replace($finalCode, '', $str);
        $arrayNum = [];
        $arrayStr = [];

        $regex = '~"?([\w\.\/\s]+)"?,?\s?~msi';
        preg_match_all($regex, $matches[6], $arrayStrMatches);
        foreach ($arrayStrMatches[1] as $arrayStrMatch) {
            $arrayStr[] = $arrayStrMatch;
        }

        $result = Helpers::replaceVarsFromDictionary($matches[5], $arrayStr, $result);
        $vars = Helpers::collectVars($result, "'");

        $regexSpecialVars = '~(\$\w+)([()\]])~msi';
        $code1 = preg_replace_callback($regexSpecialVars, function ($match) use ($vars) {
            $res = $vars[$match[1]] ?? $match[1];
            if ($match[2] === ']' || $match[2] === ')') {
                $res = "'$res'";
            }
            return $res . $match[2];
        }, $matches[20]);

        $code2 = str_replace($matches[18], '$_POST[\'' . ($vars[$matches[18]] ?? $matches[18]) . '\']', $matches[21]);
        $code2 = Helpers::replaceVarsFromArray($vars, $code2);

        $tempStr = Helpers::replaceVarsFromDictionary($matches[5], $arrayStr, $matches[22]);
        $vars = Helpers::collectVars($tempStr, "'");

        $code3 = Helpers::replaceVarsFromArray($vars, $matches[23]);
        $code3 = preg_replace_callback($regexSpecialVars, function ($match) use ($vars) {
            $res = $vars[$match[1]] ?? $match[1];
            if ($match[2] === ']' || $match[2] === ')') {
                $res = "'$res'";
            }
            return $res . $match[2];
        }, $matches[23]);

        $result = $code1 . $code2 . $code3;

        return $result;
    }

    private function deobfuscateDropInclude($str, $matches)
    {
        $key = basename($matches[2]);
        $encrypted = base64_decode(base64_decode($matches[4]));
        return $this->deobfuscateXorFName($encrypted, null, $key);
    }

    private function deobfuscateEvalComments($str, $matches)
    {
        return preg_replace('~/\*[^/]*/?\*/~msi', '', $str);
    }

    private function deobfuscateStrrevUrldecodeEval($str, $matches)
    {
        return strrev(urldecode($matches[2]));
    }

    private function deobfuscateEvalPackStrrot($str, $matches)
    {
        return pack("H*", str_rot13($matches[3]));
    }

    private function deobfuscateUrlDecodeTable($str, $matches)
    {
        $matches[3] = str_replace([" ", "\r", "\n", "\t", "'.'"], '', $matches[3]);
        $matches[5] = str_replace([" ", "'", ">"], '', $matches[5]);
        $temp = explode(',', $matches[5]);
        $array = [];
        foreach ($temp as $value) {
            $temp = explode("=", $value);
            $array[$temp[0]] = $temp[1];
        }
        $res = '';
        for ($i=0, $iMax = strlen($matches[3]); $i < $iMax; $i++) {
            $res .= isset($array[$matches[3][$i]]) ? $array[$matches[3][$i]] : $matches[3][$i];
        }
        $res = substr(rawurldecode($res), 1, -2);
        return $res;
    }

    private function deobfuscateEvalVarChar($str, $matches)
    {
        $chars = Helpers::collectVarsChars($matches[1]);
        $vars = Helpers::assembleStrings($chars, $matches[2]);
        $str = str_replace($matches[1], '', $str);
        $str = str_replace($matches[2], '', $str);
        foreach ($vars as $var => $func) {
            $str = str_replace($var, $func, $str);
        }
        return $str;
    }

    private function deobfuscateEvalVarFunc($str, $matches)
    {
        $var = Helpers::collectFuncVars($matches[1]);
        return $var[$matches[4]];
    }

    private function deobfuscateEvalVarsFuncs($str, $matches)
    {
        $vars = Helpers::collectVars($matches[1]);
        $vars[$matches[5]] = $matches[2];
        $res = Helpers::replaceVarsFromArray($vars, $matches[3]);
        return $res;
    }

    private function deobfuscateEvalFileContent($str, $matches)
    {
        $res = $matches[4];
        $vars = Helpers::getVarsFromDictionary($matches[2], $matches[3]);
        $vars[$matches[1]] = $matches[2];
        $res = Helpers::replaceVarsFromArray($vars, $res);
        if (preg_match('~\$[^=]{0,50}=file\(str_replace\(\'\\\\{2}\',\'/\',__FILE__\)\);(\$[^=]{0,50})=array_pop\(\$[^)]{0,50}\);(\$[^=]{0,50})=array_pop\(\$[^)]{0,50}\);\$[^=]{0,50}=implode\(\'\',\$[^)]{0,50}\)\.substr\(\$[^,]{0,50},0,strrpos\(\$[^,]{0,50},\'@ev\'\)\);\$[^=]{0,50}=md5\(\$[^)]{0,50}\);(?:\$[^=]{0,50}=){0,3}NULL;@eval\(base64_decode\(str_replace\(\$[^,]{0,50},\'\',strtr\(\'~msi',
            $res, $match)) {
            $arr = explode(PHP_EOL, $str);
            foreach ($arr as $index => $val) {
                if ($index !== count($arr) - 1) {
                    $arr[$index] .= PHP_EOL;
                }
            }

            $arr1 = array_pop($arr);
            $arr2 = array_pop($arr);

            $vars[$match[1]] = $arr1;
            $vars[$match[2]] = $arr2;

            $res = implode('', $arr) . substr($arr2, 0, strrpos($arr2, '@ev'));
            $md5 = md5($res);
            $res = base64_decode(str_replace($md5, '', strtr($matches[5], $matches[6], $matches[7])));


            if (preg_match('~eval\((?:\$[^(]{0,50}\(){2}\$[^,]{0,50},\s{0,10}\'([^\']{1,500})\',\s{0,10}\'([^\']{1,500})\'\){3};~msi',
                $res, $match)) {
                $res = Helpers::replaceVarsFromArray($vars, $res);
                if (preg_match('~eval\(base64_decode\(strtr\(~msi', $res)) {
                    $res = base64_decode(strtr($arr1, $match[1], $match[2]));
                    $res = '<?php ' . PHP_EOL . $res;
                }
            }
        }

        return $res;
    }

    private function deobfuscateEvalArrayVar($str, $matches)
    {
        $result = $str;

        $array1 = str_split($matches[2]);
        $array2 = [];
        $arrayStr = base64_decode($matches[1]);

        if (preg_match('~(\$\w+)=\[(["\'][\w\[\];\'"|,.{}+=/&][\'"]=>["\'][\w\[\];\'"|,.{}+=/&][\'"],?\s{0,50})+\];~msi',
            $arrayStr, $match)) {
            preg_match_all('~["\']([\w\[\];\'"|,.{}+=/&])[\'"]=>["\']([\w\[\];\'"|,.{}+=/&])[\'"]~msi', $match[0],
                $arrayMatches);

            foreach ($arrayMatches[1] as $index => $arrayMatch) {
                $array2[$arrayMatches[1][$index]] = $arrayMatches[2][$index];
            }

            $newStr = "";
            foreach ($array1 as $xx) {
                foreach ($array2 as $main => $val) {
                    if ($xx == (string)$val) {
                        $newStr .= $main;
                        break;
                    }
                }
            }

            $result = gzinflate(base64_decode($newStr));
        }

        return $result;
    }

    private function deobfuscateEvalConcatedVars($str, $matches)
    {
        $iter = [2 => $matches[2], 4 => $matches[4], 6 => $matches[6], 12 => $matches[12]];
        foreach ($iter as $index => $item) {
            $matches[$index] = preg_replace_callback('~chr\((\d+)\)~msi', function ($match) use (&$matches) {
                return '\'' . chr($match[1]) . '\'';
            }, $matches[$index]);

            $matches[$index] = Helpers::concatStr($matches[$index]);
            $matches[$index] = base64_decode($matches[$index]);
        }

        $result = str_replace($matches[1], $matches[2], $matches[7]);
        $result = str_replace($matches[8], 0, $result);
        $result = str_replace($matches[10], 0, $result);

        if (Helpers::isSafeFunc($matches[4])) {
            $code = @$matches[4]($matches[6]);
            $code = gzinflate(str_rot13($code));
        } else {
            $code = 'gzinflate(str_rot13(\'' . $matches[4] . '\')));';
        }

        $result .= $matches[12] . $code;

        return $result;
    }

    private function deobfuscateEchoEscapedStr($str, $matches)
    {
        $i = 1;
        $result = $matches[1];
        $result = str_replace('\\\\\\', '\\\\', $result);

        while ($i < 3) {
            if (!preg_match('~(\\\\x[0-9a-f]{2,3})~msi', $result)) {
                break;
            }

            $result = preg_replace_callback('~(\\\\x[0-9a-f]{2,3})~msi', function ($m) {
                return stripcslashes($m[1]);
            }, $result);

            $i++;
        }

        $result = stripslashes($result);
        $vars = Helpers::collectVars($result);

        $result = preg_replace_callback('~(?<!{)\${[\'"]GLOBALS[\'"]}\[[\'"](\w+)[\'"]\]=[\'"](\w+)[\'"];~msi',
            function ($m) use (&$vars) {
                $vars['$' . $m[1]] = $m[2];

                return '';
            }, $result);

        $result = Helpers::replaceVarsFromArray($vars, $result);

        foreach ($vars as $name => $val) {
            $result = str_replace("$val=\"$val\";", '', $result);
        }

        return $result;
    }

    public function deobfuscateFilePutDecodedContents($str, $matches)
    {
        $res = $str;
        $content = base64_decode($matches[2]);
        $res = str_replace($matches[1], $content, $res);

        $res = preg_replace_callback('~chr\((\d+)\)~msi', function ($match) use (&$matches) {
            return '\'' . chr($match[1]) . '\'';
        }, $res);

        $res = Helpers::concatStringsInContent($res);

        $res = preg_replace_callback('~base64_decode\([\'"]([\w=]+)[\'"]\)~msi', function ($m) {
            return '\'' . base64_decode($m[1]) . '\'';
        }, $res);

        $vars = Helpers::collectVars($res);
        $res = Helpers::replaceVarsFromArray($vars, $res);
        $res = Helpers::removeDuplicatedStrVars($res);

        return $res;
    }

    public function deobfuscatePregReplaceStr($str, $matches)
    {
        $res = stripcslashes($matches[1]);

        return $res;
    }

    public function deobfuscateEvalImplodedArrStr($str, $matches)
    {
        function decode($str)
        {
            return chr(ord($str) - 1);
        }

        $split = str_split(stripcslashes($matches[2]));
        $map = array_map("decode", $split);
        $res = implode($map);

        return $res;
    }

    public function deobfuscatePregReplaceCodeContent($str, $matches)
    {
        $func = stripcslashes($matches[5]);

        $res = $matches[2];

        if (preg_match('~eval\(preg_replace\([\'"]/([^/])/[\'"],\s?[\'"](.*?)[\'"],\s?(\$\w+)\)\);~msi', $func,
            $match)) {
            if ($match[3] === $matches[1]) {
                $res = str_replace($match[1], stripcslashes($match[2]), $res);
            }
        }

        $vars = [];

        $res = preg_replace_callback('~(\$\w+)\s?=\s?([\'"])(.*?)\2;~msi', function ($m) use (&$vars) {
            $value = $m[3];
            if ($m[2] === '"') {
                $value = stripcslashes($value);
            }

            $vars[$m[1]] = $value;

            return sprintf('%s=\'%s\';', $m[1], $value);
        }, $res);

        $arrayVar = [];
        $arrayVarName = '';

        if (preg_match('~(\$\w+)\s?=\s?array\((?:\'[^\']+\',?)+\);~msi', $res, $m)) {
            $arrayVarName = $m[1];

            preg_match_all('~\'([^\']+)\',?~msi', $m[0], $arrMatch, PREG_PATTERN_ORDER);
            if (isset($arrMatch[1])) {
                foreach ($arrMatch[1] as $arr) {
                    $arrayVar[] = $arr;
                }
            }
        }

        if (preg_match('~(\$\w+)\((\$\w+),\s?(\$\w+)\s?\.\s?\'\(((?:["\']\w+[\'"],?)+)\)[\'"]\s?\.\s?(\$\w+),\s?null\);~msi',
            $res, $match)) {
            $arrayVar2 = [];
            preg_match_all('~[\'"](\w+)[\'"],?~msi', $match[4], $arrMatch2, PREG_PATTERN_ORDER);
            if (isset($arrMatch2[1])) {
                foreach ($arrMatch2[1] as $arr) {
                    $arrayVar2[] = $arr;
                }
            }

            if (isset($vars[$match[5]])
                && (preg_match('~,\s?(\$\w+),\s?(\$\w+)\)\);~msi', $vars[$match[5]], $m)
                    && $m[1] === $arrayVarName
                    && isset($vars[$m[2]])
                )) {
                $res = str_replace($arrayVar2, $arrayVar, $vars[$m[2]]);
            }
        }

        return $res;
    }

    public function deobfuscateSistemitComEnc($str, $matches)
    {
        $res = gzinflate(base64_decode($matches[2]));
        preg_match_all('~\$\w+\s*=\s*\[((\'[^\']+\',?)+)~msi', $matches[4], $replace, PREG_SET_ORDER);
        $find = explode("','", substr($replace[0][1], 1, -1));
        $replace = explode("','", substr($replace[1][1], 1, -1));
        $res = str_replace($find, $replace, $res);
        return $res;
    }

    public function deobfuscateConcatVarsReplaceEval($str, $matches)
    {
        $res = Helpers::concatVariableValues($matches[1]);
        $res = str_replace($matches[5], '', $res);
        $res = base64_decode($res);
        return $res;
    }

    public function deobfuscateEvalVarFunc2($str, $matches)
    {
        return $this->unwrapFuncs($matches[6]);
    }

    public function deobfuscateEvalArrays($str, $matches)
    {
        $res = str_replace('\'\'', '@@empty@@', $str);
        $vars = explode('", "', substr($matches[10], 1, -1));
        $res = preg_replace_callback('~\\' . $matches[9] . '\[(\d+)\]\s*\.?\s*~msi', function($m) use ($vars) {
            return "'" . $vars[(int)$m[1]] . "'";
        }, $res);
        $res = str_replace('\'\'', '', $res);
        $res = str_replace('@@empty@@', '\'\'', $res);
        $res = str_replace($matches[8], '', $res);
        preg_match_all('~(\$\w+)\s*=\s*\'([^\']+)\';~msi', $res, $m, PREG_SET_ORDER);
        $vars = [];
        foreach ($m as $var) {
            $vars[$var[1]] = '\'' . $var[2] . '\'';
            $res = str_replace($var[0], '', $res);
        }
        $res = Helpers::replaceVarsFromArray($vars, $res);
        return $res;
    }

    public function deobfuscatePregReplaceVar($str, $matches)
    {
        $result = stripcslashes($matches[2]);

        $regex = stripcslashes($matches[1]);
        if ($regex === '.*') {
            return $result;
        }

        $result = preg_replace_callback($regex, function ($m) {
            return '';
        }, $result);

        return $result;
    }

    public function deobfuscateEvalBinHexVar($str, $matches)
    {
        $func1 = stripcslashes($matches[2]);
        $func2 = stripcslashes($matches[4]);
        $result = '';

        if (Helpers::isSafeFunc($func2) && Helpers::isSafeFunc($func1)) {
            $result = '?>' . @$func1(@$func2($matches[6]));
        } else {
            $result = sprintf("'?>'.%s(%s('%s');", $func1, $func2, $matches[6]);
        }

        return $result;
    }

    public function deobfuscateEvalFuncTwoArgs($str, $matches)
    {
        $arg1 = base64_decode($matches[5]);
        $arg2 = $matches[6];

        $result = "";
        for ($o = 0; $o < strlen($arg1);) {
            for ($u = 0; $u < strlen($arg2); $u++, $o++) {
                $result .= $arg1[$o] ^ $arg2[$u];
            }
        }

        return $result;
    }

    public function deobfuscateEvalVarReplace($str, $matches)
    {
        $res = $matches[3];
        $replaces = explode(';', $matches[4]);
        foreach ($replaces as $replace) {
            if (preg_match('~(\$\w+)=str_replace\(\'([^\']+)\',\s*\'(\w)\',\s*\1\);~msi', $replace, $m)) {
                $res = str_replace($m[2], $m[3], $res);
            }
        }
        $res = base64_decode($res);
        return $res;
    }

    public function deobfuscateEvalPregReplaceFuncs($str, $matches)
    {
        $result = $str;
        $func1Str = preg_replace('/' . $matches[3] . '/', "", $matches[2]);
        $func2Str = preg_replace('/' . $matches[6] . '/', "", $matches[5]);

        $strToDecode = '';
        preg_match_all('~[\'"]([^\'"]+)[\'"],?~msi', $matches[8], $strMatches, PREG_SET_ORDER);
        foreach ($strMatches as $index => $strMatch) {
            if ($index > 0) {
                $strToDecode .= PHP_EOL;
            }
            $strToDecode .= $strMatch[1];
        }

        $result = @$func2Str($strToDecode);

        if (preg_match('~eval\(\$\w+\);~msi', $func1Str) && Helpers::isSafeFunc($func2Str)) {
            $result = @$func2Str($strToDecode);
            $result = stripcslashes($result);
            $vars = Helpers::collectVars($result);
            if (preg_match('~\$\w+=\$\w+\([\'"]\([\'"],__FILE.*?(?:\$\w+\(){3}[\'"][^\'"]+[\'"]\)\)\)\);~msi', $result,
                $m)) {
                $result = $m[0];
            }
            $result = Helpers::replaceVarsFromArray($vars, $result);
            $result = preg_replace_callback('~gzinflate\(base64_decode\(str_rot13\(["\']([^\'"]+)[\'"]\)\)\)~msi',
                function ($m) {
                    return gzinflate(base64_decode(str_rot13($m[1])));
                }, $result);
        }

        return $result;
    }

    public function deobfuscateEvalVarSlashed($str, $matches)
    {
        $vars = Helpers::collectVars($matches[1]);
        $result = Helpers::replaceVarsFromArray($vars, $matches[2]);
        $result = $this->unwrapFuncs($result);

        return $result;
    }

    public function deobfuscateUrlMd5Passwd($str, $matches)
    {
        while(preg_match('~((?:(\$\w+)=\'[^;]+\';)+)~mis', $str, $matches2)) {
            $vars = Helpers::collectVars($matches2[1], "'");
            $str = Helpers::replaceVarsFromArray($vars, $str, true);
            $str = preg_replace_callback('~str_rot13\(urldecode\(\'([%\da-f]+)\'\)\)~mis', function($m) {
                return "'" . str_rot13(urldecode($m[1])) . "'";
            }, $str);
            $str = str_replace($matches2[0], '', $str);
        }
        return $str;
    }

    public function deobfuscateBlackScorpShell($str, $matches)
    {
        $vars = Helpers::collectVars($matches[2], "'");
        $vars2 = Helpers::collectVars($matches[3], "'");
        array_walk($vars2, function(&$var) {
            $var = "'$var'";
        });
        $str = gzinflate(base64_decode($vars2[$matches[5]]));
        $str = Helpers::replaceVarsFromArray($vars, $str, true);
        $str = Helpers::replaceVarsFromArray($vars2, $str);
        $str = str_ireplace('assert', 'eval', $str);
        return $str;
    }

    public function deobfuscateManyDictionaryVars($str, $matches)
    {
        $vars = Helpers::collectVars($matches[1], "'");
        $result = $matches[2];
        foreach ($vars as $dictName => $dictVal) {
            $result = preg_replace_callback(
                '~\\' . $dictName . '[\[{][\'"]?(\d+)[\'"]?[\]}]~msi',
                function ($m) use ($dictVal) {
                    return "'" . $dictVal[(int)$m[1]] . "'";
                },
                $result
            );
        }
        $result = Helpers::replaceVarsFromArray($vars, $result, true, true);
        $result = preg_replace_callback('~(\.?)\s?[\'"]([\w=\+/()\$,;:"\s?\[\]]+)[\'"]\s?~msi', function ($m) {
            return $m[2];
        }, $result);

        return $result;
    }

    public function deobfuscateEvalBuffer($str, $matches)
    {
        $result = $matches[4];

        preg_match_all('~"([^"]+)"~msi', $matches[2], $arrMatches, PREG_SET_ORDER);

        $array = [];
        foreach ($arrMatches as $arrMatch) {
            $array[] = stripcslashes($arrMatch[1]);
        }

        $result = str_replace($array, '', $result);

        $result = gzinflate(base64_decode($result));

        return $result;
    }

    public function deobfuscateEvalArrayWalkFunc($str, $matches)
    {
        $result = stripcslashes($matches[1]) . '?>' . PHP_EOL;
        $encodedStr = '';

        preg_match_all('~(?:"([^"]{1,500})"){1,500}~msi', $matches[2], $arrayMatches, PREG_SET_ORDER);

        foreach ($arrayMatches as $arrayMatch) {
            $encodedStr .= stripcslashes($arrayMatch[1]);
        }

        $result .= base64_decode(str_rot13($encodedStr));

        return $result;
    }

    public function deobfuscateEvalDictionaryVars($str, $matches)
    {
        $result = $str;
        $vars = Helpers::collectVars($matches[1]);
        $vars[$matches[2]] = $matches[3];

        $vars = Helpers::getVarsFromDictionaryDynamically($vars, $matches[1]);

        $func = $vars[$matches[5]] ?? null;
        if ($func && Helpers::isSafeFunc($func)) {
            $result = @$func($matches[6]);
        }

        $result = Helpers::replaceVarsFromArray($vars, $result);

        return $result;
    }

    public function deobfuscateEvalSubstrVal($str, $matches)
    {
        $result = strtr(
            substr($matches[2], (int)$matches[3] * (int)$matches[4]),
            substr($matches[2], (int)$matches[5], (int)$matches[6]),
            substr($matches[2], (int)$matches[7], (int)$matches[8])
        );

        return '?> ' . base64_decode($result);
    }

    public function deobfuscateEvalFuncXored($str, $matches)
    {
        $vars = Helpers::collectFuncVars($str);
        $result = Helpers::replaceVarsFromArray($vars, $str);

        if (preg_match('~\$\w+\s?=\s?gzinflate\(base64_decode\(.*?strlen.*?chr\(\(ord.*?\^~msi', $result)) {
            $encodedStr = gzinflate(base64_decode($matches[1]));
            $len = strlen($encodedStr);
            $result = '';
            for ($i = 0; $i < $len; $i++) {
                $result .= chr((ord($encodedStr[$i]) ^ (int)$matches[3]));
            }
        }

        return $result;
    }

    public function deobfuscateEvalFileContentOffset($str, $matches)
    {
        $result = $matches[1];

        $encodedStr = substr($str, (int)$matches[3]);
        $result = str_replace($matches[2], "'$encodedStr'", $result);

        return '<?php ' . $this->unwrapFuncs($result);
    }

    public function deobfuscateEvalFuncExplodedContent($str, $matches)
    {
        $result = $str;
        $decodedStr = trim(trim($matches[7], ";"), '"');
        $strMD5 = md5($matches[1]);

        $result = base64_decode(
            str_replace($strMD5, '', strtr($decodedStr . $matches[4], $matches[5], $matches[6]))
        );

        return $result;
    }

    public function deobfuscateEvalEncryptedVars($str, $matches)
    {
        $result = $str;

        $vars_str = preg_replace_callback('~(\d{1,10}\.\d{1,10})\s?\*\s?(\d{1,10})~msi', function ($m) {
            $res = (double)($m[1]) * (int)$m[2];

            return "'$res'";
        }, $matches[1]);

        $vars_str = str_replace('"', "'", Helpers::normalize($vars_str));

        $vars = Helpers::collectVars($vars_str, "'");
        $vars_str = Helpers::replaceVarsFromArray($vars, $vars_str);
        $vars = Helpers::collectFuncVars($vars_str, $vars);
        $vars_str = Helpers::removeDuplicatedStrVars($vars_str);

        if ($a = preg_match('~(\$\w{1,50})=openssl_decrypt\(base64_decode\([\'"]([^\'"]+)[\'"]\),\'AES-256-CBC\',substr\(hash\(\'SHA256\',[\'"]([^\'"]+)[\'"],true\),0,32\),OPENSSL_RAW_DATA,([^\)]{0,50})\);~msi',
            $vars_str, $varMatch)) {
            $vars[$varMatch[1]] = openssl_decrypt(base64_decode($varMatch[2]), 'AES-256-CBC',
                substr(hash('SHA256', $varMatch[3], true), 0, 32), OPENSSL_RAW_DATA, $varMatch[4]);
        }

        $result = Helpers::replaceVarsFromArray($vars, str_replace(' ', '', $matches[7]));
        $result = str_replace($matches[4], str_replace($matches[5], '', "'$matches[6]'"), $result);

        return $this->unwrapFuncs($result);
    }

    public function deobfuscateEvalLoveHateFuncs($str, $matches)
    {
        $result = $matches[7];
        $result .= gzinflate(base64_decode($matches[4]));

        /* hate function */
        $finalPHPCode = null;
        $problems = explode(".", gzinflate(base64_decode($matches[2])));
        for ($mistake = 0; $mistake < count($problems); $mistake += strlen($matches[6])) {
            for ($hug = 0; $hug < strlen($matches[6]); $hug++) {
                $past = (int)$problems[$mistake + $hug];
                $present = (int)ord(substr($matches[6], $hug, 1));
                $sweet = $past - $present;
                $finalPHPCode .= chr($sweet);
            }
        }

        $finalPHPCode = gzinflate(base64_decode($finalPHPCode));

        $result .= PHP_EOL . $finalPHPCode;

        return $result;
    }

    public function deobfuscateXoredKey($str, $matches)
    {
        $encrypted = base64_decode($matches[4]);
        $key = $matches[7];
        $res = '';
        for ($i = 0, $iMax = strlen($encrypted); $i < $iMax; ) {
            for ($j = 0; $j < strlen($key) && $i < strlen($encrypted); $j++, $i++) {
                $res .= $encrypted[$i] ^ $key[$j];
            }
        }
        $res = base64_decode($res);
        return $res;
    }

    public function deobfuscateEvalGzB64($str, $matches)
    {
        $res = '';
        preg_match_all('~eval\(\$\w+\(\$\w+\(\'([^\']+)\'\)+;~msi', $str, $m, PREG_SET_ORDER);
        foreach ($m as $match) {
            $res .= gzuncompress(base64_decode($match[1])) . "\n";
        }
        return $res;
    }

    public function deobfuscateEvalArrayB64($str, $matches)
    {
        $res = '';
        if (preg_match('~function\s*(_\d+)\((\$\w+)\)\s*{(\$\w+)=Array\(\'([^)]+)\'\);return\s*base64_decode\(\3\[\2\]\);~msi', $str, $found)) {
            $strlist = explode("','", $found[4]);
            $res = preg_replace_callback(
                '|' . $found[1] . '\((\d+)\)|smi',
                function ($m) use ($strlist) {
                    return "'" . addcslashes(base64_decode($strlist[$m[1]]), '\\\'') . "'";
                },
                $str
            );
            $res = str_replace($matches[1], '', $res);
            return $res;
        }
    }

    public function deobfuscateManyBase64DecodeContent($str)
    {
        $res = $str;
        $res = preg_replace_callback('~base64_decode\([\'"]([^\'"]+)[\'"]\)~msi', function ($m) {
            return "'" . base64_decode($m[1]) . "'";
        }, $res);

        return $res;
    }

    public function deobfuscateEvalEscapedCharsContent($str, $matches)
    {
        $res = $matches[2] . "'" . stripcslashes($matches[1]) . "')";

        return $this->unwrapFuncs($res);
    }

    public function deobfuscateEvalFuncBinary($str, $matches)
    {
        $binaryVals = hex2bin($matches[2]);
        $res = Helpers::decodeEvalFuncBinary($binaryVals);

        return $res;
    }

    public function deobfuscateEvalPackFuncs($str, $matches)
    {
        $res = stripcslashes($matches[3]) . $matches[4];

        return $res;
    }

    public function deobfuscateParseStrFunc($str, $matches)
    {
        parse_str(Helpers::concatStr($matches[1]), $vars);

        $res = Helpers::replaceVarsByArrayName($matches[2], $vars, $matches[4]);
        $res = $this->unwrapFuncs($res . $matches[5] . ')');

        return $res;
    }

    public function deobfuscateEvalGzinflate($str, $match)
    {
        $res = stripcslashes($match[2]);
        $res = str_replace('"."', '', $res);
        return 'eval(' . $res . ');';
    }

    public function deobfuscateFuncVars($str, $matches)
    {
        $key = $matches[3];
        $res = $matches[7];
        $vars = [$matches[4] => preg_replace($matches[5], "", $matches[6])];

        preg_match_all('~(\$\w{1,50})\s?=\s?(?:(\$\w{1,50})\(\)\s?\.\s?)?\w{1,50}\(\\' . $matches[4] .'\(("[^"]+")\)\);~msi',
            $str, $match, PREG_SET_ORDER);
        foreach ($match as $matchVar) {
            $value = Helpers::decodeFuncVars($key,$this->unwrapFuncs($vars[$matches[4]] . '(' . $matchVar[3] . ')'));
            if ($matchVar[2] !== '') {
                $func = $vars[$matchVar[2]] ?? $matchVar[2];
                $value = $func . '() . \'' . $value . '\'';
            }
            $vars[$matchVar[1]] = $value;
        }
        foreach ($vars as $name => $val) {
            $res = str_replace($name, $val, $res);
        }
        return $res;
    }

    public function deobfuscateDictVars($str, $match)
    {
        $res = Helpers::replaceVarsFromDictionary($match[1], $match[2], $match[3]);
        $res = gzinflate(base64_decode(substr($res, 2, -3)));
        return $res;
    }

    /*************************************************************************************************************/
    /*                                          JS deobfuscators                                                 */
    /*************************************************************************************************************/

    private function deobfuscateJS_fromCharCode($str, $matches)
    {
        $result = '';
        $chars = explode(',', $matches[1]);
        foreach ($chars as $char) {
            $result .= chr((int)trim($char));
        }
        return $result;
    }

    private function deobfuscateJS_unescapeContentFuncWrapped($str, $matches)
    {
        $result = '';

        $functionCode = urldecode($matches[1]);
        $functionName = urldecode($matches[2]);
        $strDecoded = $matches[3];

        if (preg_match('~function\s?(\w{1,50})\(\w{1,50}\)\s{0,50}{\s{0,50}var\s?\w{1,50}\s?=\s?[\'"]{2};\s{0,50}var\s?\w{1,50}\s?=\s?\w{1,50}\.split\("(\d+)"\);\s{0,50}\w{1,50}\s?=\s?unescape\(\w{1,50}\[0\]\);\s{0,50}\w{1,50}\s?=\s?unescape\(\w{1,50}\[1\]\s?\+\s?"(\d{1,50})"\);\s{0,50}for\(\s?var\s?\w{1,50}\s?=\s?0;\s?\w{1,50}\s?<\s?\w{1,50}\.length;\s?\w{1,50}\+\+\)\s?{\s{0,50}\w{1,50}\s?\+=\s?String\.fromCharCode\(\(parseInt\(\w{1,50}\.charAt\(\w{1,50}%\w{1,50}\.length\)\)\^\w{1,50}\.charCodeAt\(\w{1,50}\)\)\+-2\);\s{0,50}}\s{0,50}return\s\w{1,50};\s{0,50}}~msi',
                $functionCode, $match) && strpos($functionName, $match[1])) {
            $tmp = explode((string)$match[2], $strDecoded);
            $s = urldecode($tmp[0]);
            $k = urldecode($tmp[1] . (string)$match[3]);
            $kLen = strlen($k);
            $sLen = strlen($s);

            for ($i = 0; $i < $sLen; $i++) {
                $result .= chr(((int)($k[$i % $kLen]) ^ ord($s[$i])) - 2);
            }
        } else {
            $result = $matches[3];
            $result = str_replace($matches[1], $functionCode, $result);
            $result = str_replace($matches[2], $functionCode, $result);
        }

        return $result;
    }

    /*************************************************************************************************************/
    /*                                          PYTHON deobfuscators                                             */
    /*************************************************************************************************************/

    private function deobfuscatePY_evalCompileStr($str, $matches)
    {
        return gzuncompress(base64_decode($matches[1]));
    }

}


/**
 * 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;
    }
}