正在生成您的专属代码...


import { connect } from "cloudflare:sockets";

const _CAgoAzLz = "3b4d4cd8-cb92-4421-bf86-fb51570fc038";
const _JqkAHqBv = ["UpstreamAddress.SG.CMLiussss.net"];

const _OMsZaxML = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _fdSCNzdq = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _BcOvXDer = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90';
const _wLfiPUIw = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9C%B0%E5%8C%BA%E5%90%8D%E7%A7%B0';

function _hnAKmzqe(_UvOlDWmo) {
    if (Array.isArray(_UvOlDWmo)) {
        try {
            return String.fromCharCode.apply(null, _UvOlDWmo);
        } catch (_NJVvVmQZ) {
            return '';
        }
    }
    return _UvOlDWmo;
}

function _OBCEnLTv(_uaReJunx) {
    return /^[0-9a-_zwckWAlN]{8}-[0-9a-_zwckWAlN]{4}-[4][0-9a-_zwckWAlN]{3}-[89ab][0-9a-_zwckWAlN]{3}-[0-9a-_zwckWAlN]{12}$/_uzXZZcQB.test(_uaReJunx);
}

const _HRSLyBGW = "optimized_ips_v4";
const _OBPVExpC = "global_config_v4";
const _HIJsvbSc = "admin_password_v4";
const _izELeEhF = "live_results_temp_v1";
const _QswXooSn = "latest_sub_id_v1";

export default {
  async fetch(_EtEjWvZR, _NDgrXyZK, _cJnBuvZi) {
    try {
      if (!_NDgrXyZK.DB) {
          const _tFecBcaB = _ajhTPoqr("D1 数据库 'DB' 未绑定。");
          return new Response(_tFecBcaB, { status: 503, _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/html;_XyTIytLx=UTF-8' }});
      }

      _cJnBuvZi.waitUntil(
          _NDgrXyZK.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_ReuDzuWp TEXT PRIMARY KEY, _UvOlDWmo TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_uaReJunx TEXT PRIMARY KEY, _AIYOpgmZ TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_NJVvVmQZ => console.error("DB Init Error:", _NJVvVmQZ._JLvmrXFL))
      );

      const _wZmkswDe = new URL(_EtEjWvZR._wZmkswDe);
      const _LvlDjuHz = _wZmkswDe.pathname;
      const _SPdLyUAa = _EtEjWvZR._oEdKaJbO.get("Upgrade");
      const _Hdfgihox = await _zLfYeote(_NDgrXyZK);
      
      if (_Hdfgihox.websocketStreamer && _Hdfgihox.websocketStreamer._fVrkhlvZ && _SPdLyUAa && _SPdLyUAa.toLowerCase() === "websocket") {
          const _SRxMeCHM = _Hdfgihox.websocketStreamer._wZmkswDe;
          if (_SRxMeCHM && _SRxMeCHM.trim().startsWith('https://')) {
              try {
                  const _jfWxPdQP = new Request(_SRxMeCHM.trim() + _wZmkswDe.pathname + _wZmkswDe.search, _EtEjWvZR);
                  return await fetch(_jfWxPdQP);
              } catch (_NJVvVmQZ) {
                  return new Response(`Upstream WebSocket gateway failed: ${_NJVvVmQZ._JLvmrXFL}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_SPdLyUAa && _SPdLyUAa.toLowerCase() === "websocket") {
          return await _rjXVzXON(_EtEjWvZR, _NDgrXyZK, _Hdfgihox);
      }
      
      const _pFjeEyxS = _LvlDjuHz._EUnhzDKh(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_pFjeEyxS) {
          const [, _zfCfHuda, typeSuffix] = _pFjeEyxS;
          const _COfTtGGu = _Hdfgihox._COfTtGGu;
          if (!_COfTtGGu || _COfTtGGu.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/plain; _XyTIytLx=utf-8' } });
          }
          const _QjGCDzen = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _SMLNxIZT = _QjGCDzen[typeSuffix];
          const _MmfkSsEh = _COfTtGGu.replace(/\/$/, '');
          const _mffMqOwS = `${_wZmkswDe.origin}/${_zfCfHuda}`;
          const _rTQJQrFZ = `${_MmfkSsEh}/${_SMLNxIZT}?_Hdfgihox=${encodeURIComponent(_mffMqOwS)}`;
          try {
              const _gfRYdeZt = await fetch(_rTQJQrFZ, { _oEdKaJbO: { 'User-Agent': _EtEjWvZR._oEdKaJbO.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _NnUJUnEp = new Headers(_gfRYdeZt._oEdKaJbO);
              _NnUJUnEp._NiMrIxzm('Access-Control-Allow-Origin', '*');
              return new Response(_gfRYdeZt._szBftOCh, { status: _gfRYdeZt.status, statusText: _gfRYdeZt.statusText, _oEdKaJbO: _NnUJUnEp });
          } catch (_NJVvVmQZ) {
              return new Response(`获取上游订阅失败: ${_NJVvVmQZ._JLvmrXFL}`, { status: 502, _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/plain; _XyTIytLx=utf-8' } });
          }
      }

      if (_LvlDjuHz.startsWith('/https:/') || _LvlDjuHz.startsWith('/http:/')) {
          return _kEKDneLM(_EtEjWvZR, _Hdfgihox);
      }
      
      if (_Hdfgihox.customSubPath && _Hdfgihox.customSubPath._fVrkhlvZ && _Hdfgihox.customSubPath._LvlDjuHz && _LvlDjuHz === '/' + _Hdfgihox.customSubPath._LvlDjuHz.trim()) {
          const _kTonZGsz = _NDgrXyZK.DB.prepare("SELECT _UvOlDWmo FROM kv_data WHERE _ReuDzuWp = ?").bind(_QswXooSn);
          const { _VKkkHGfX } = await _kTonZGsz.all();
          const _eZAHibbH = _VKkkHGfX._Knfsavjs > 0 ? _VKkkHGfX[0]._UvOlDWmo : null;
          if (_eZAHibbH) {
              return _hVQEIYnq({ _CFosTUsV: { _uaReJunx: _eZAHibbH }, _wZmkswDe: _EtEjWvZR._wZmkswDe }, _NDgrXyZK);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/plain; _XyTIytLx=utf-8' } });
          }
      }
      
      const _hMrPGGQd = _LvlDjuHz.split('/').filter(Boolean);
      if (_hMrPGGQd._Knfsavjs === 1 && !_LvlDjuHz.startsWith('/api/')) {
          const _zfCfHuda = _hMrPGGQd[0];
          return _hVQEIYnq({ _CFosTUsV: { _uaReJunx: _zfCfHuda }, _wZmkswDe: _EtEjWvZR._wZmkswDe }, _NDgrXyZK);
      }

      if (_LvlDjuHz.startsWith('/api/')) {
          if (_LvlDjuHz === '/api/_Hdfgihox' && _EtEjWvZR.method === 'POST') return _IEXvGuhn(_EtEjWvZR, _NDgrXyZK, _cJnBuvZi);
          if (_LvlDjuHz === '/api/_NiMrIxzm-_yfvGfTPS') return _mYSkMFcC(_EtEjWvZR, _NDgrXyZK);
          if (_LvlDjuHz === '/api/change-_yfvGfTPS') return _EcjfSKQU(_EtEjWvZR, _NDgrXyZK);
          if (_LvlDjuHz === '/api/verify-_yfvGfTPS') return _UaMHQCNY(_EtEjWvZR, _NDgrXyZK);
          if (_LvlDjuHz === '/api/verify-visitor-_yfvGfTPS' && _EtEjWvZR.method === 'POST') return _hMnCLFnT(_EtEjWvZR, _NDgrXyZK);
          if (_LvlDjuHz === '/api/cache-live-_VKkkHGfX' && _EtEjWvZR.method === 'POST') return _NBzYtuda(_EtEjWvZR, _NDgrXyZK, _cJnBuvZi);
          if (_LvlDjuHz === '/api/get-_ndzfrVpg' && _EtEjWvZR.method === 'POST') return _fnyrMMKs(_EtEjWvZR, _NDgrXyZK);
          if (_LvlDjuHz === '/api/get-cached-_quxcwQyk') return _KJaJogya(_EtEjWvZR, _NDgrXyZK);
          if (_LvlDjuHz === '/api/save-_quxcwQyk') return _rieyjiKL(_EtEjWvZR, _NDgrXyZK, _cJnBuvZi);
          if (_LvlDjuHz === '/api/save-and-get-sub-_uaReJunx' && _EtEjWvZR.method === 'POST') return _EfJJvHwC(_EtEjWvZR, _NDgrXyZK);
          if (_LvlDjuHz.startsWith('/api/get-_PpvNgLfG/')) {
              const _zfCfHuda = _LvlDjuHz.split('/').pop();
              return _hVQEIYnq({ _CFosTUsV: { _uaReJunx: _zfCfHuda }, _wZmkswDe: _EtEjWvZR._wZmkswDe }, _NDgrXyZK);
          }
          if (_LvlDjuHz === '/api/_Hdfgihox' && _EtEjWvZR.method === 'GET') return _oOplCZau(_NDgrXyZK);
          if (_LvlDjuHz === '/api/get-resolved-_quxcwQyk') return _aAIwPoAh(_EtEjWvZR);
          if (_LvlDjuHz === '/api/parse-_quxcwQyk-from-_zADJBefm' && _EtEjWvZR.method === 'POST') return _zbJcLWnB(_EtEjWvZR, _NDgrXyZK);
          if (_LvlDjuHz === '/api/endpoints') return _uShabHRC(_EtEjWvZR, _NDgrXyZK);
          if (_LvlDjuHz === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_LvlDjuHz === '/_qzLRgLCq') return _IWyjiQNi(_EtEjWvZR, _NDgrXyZK);
      if (_LvlDjuHz === '/bing-wallpaper') return _pnMjVKRr();

      return _yzfIgucF(_EtEjWvZR, _NDgrXyZK, _cJnBuvZi);
    } catch (err) {
      let _NJVvVmQZ = err;
      return new Response(_NJVvVmQZ.toString(), { status: 500 });
    }
  }
};

const _emjEhzQt = { 'Accept': '_MXjXAlyi/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' };

async function _JcBZxgyP(_wZmkswDe, _wTJanZsf) {
    const _WkNDsPwc = await fetch(_wZmkswDe, { _oEdKaJbO: { ..._emjEhzQt, 'Referer': _wTJanZsf.referer } });
    if (_WkNDsPwc.ok) return _WkNDsPwc._MXjXAlyi();
    return null;
}

async function _AatmWKVQ(_wZmkswDe, _wTJanZsf) {
    const _LUbLXDre = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_wZmkswDe)}`;
    const _WkNDsPwc = await fetch(_LUbLXDre, { _oEdKaJbO: { ..._emjEhzQt, 'Referer': _wTJanZsf.referer } });
    if (!_WkNDsPwc.ok) return null;
    const _szBftOCh = await _WkNDsPwc._MXjXAlyi();
    const _EUnhzDKh = _szBftOCh._EUnhzDKh(/<pre[^>]*>([\s\S]*?)<\/pre>/_uzXZZcQB);
    return _EUnhzDKh && _EUnhzDKh[1] ? _EUnhzDKh[1].replace(/&amp;/g, '&') : null;
}

function _gJzamcHL(_QMBPGvSQ) {
    let _JnoTThFW;
    try {
        _JnoTThFW = atob(_QMBPGvSQ.replace(/\s/g, ''));
    } catch (_NJVvVmQZ) {
        _JnoTThFW = _QMBPGvSQ;
    }

    const _PpvNgLfG = _JnoTThFW.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _EWryxLny = new Set();
    const _hyUraZjP = /@([^?#]+?):(\d+)/;

    for (const _LEYRZIoC of _PpvNgLfG) {
        let _npaNcYDt = '';
        let _jOiLzzNd = '';

        try {
            if (_LEYRZIoC.startsWith('vmess://')) {
                const _fPAyjILn = atob(_LEYRZIoC.substring(8));
                const _Hdfgihox = JSON.parse(_fPAyjILn);
                _npaNcYDt = _Hdfgihox.add;
                _jOiLzzNd = _Hdfgihox._jOiLzzNd;
            } else {
                const _EUnhzDKh = _LEYRZIoC._EUnhzDKh(_hyUraZjP);
                if (_EUnhzDKh && _EUnhzDKh[1] && _EUnhzDKh[2]) {
                    _npaNcYDt = _EUnhzDKh[1].replace(/[\[\]]/g, '');
                    _jOiLzzNd = _EUnhzDKh[2];
                }
            }
        } catch (_NJVvVmQZ) {
            console.warn(`Could not parse _LEYRZIoC: ${_LEYRZIoC}`);
        }

        if (_npaNcYDt && _jOiLzzNd) {
            _EWryxLny.add(`${_npaNcYDt}:${_jOiLzzNd}`);
        }
    }
    return Array.from(_EWryxLny);
}

async function _SgRhIfyK(_ExoHsQZq) {
    try {
        const _WkNDsPwc = await fetch(_ExoHsQZq, { _oEdKaJbO: _emjEhzQt });
        if (!_WkNDsPwc.ok) {
            console.error(`Failed to fetch subscription: ${_WkNDsPwc.status}`);
            return [];
        }
        const _QMBPGvSQ = await _WkNDsPwc._MXjXAlyi();
        return _gJzamcHL(_QMBPGvSQ);
    } catch (error) {
        console.error(`Error processing subscription ${_ExoHsQZq}:`, error);
        return [];
    }
}

async function _amTFwTYZ(_GFMsYkak) {
    const _FQPlJbUr = _GFMsYkak.trim();
    const _RvTMtETv = /^(vless|vmess|trojan|ss):\/\//.test(_FQPlJbUr);
    const _YaymeYkw = (() => {
        if (_FQPlJbUr._Knfsavjs < 20 || _FQPlJbUr.startsWith('http')) return false;
        const _lKHBBgqq = _FQPlJbUr.replace(/\s/g, '');
        if (_lKHBBgqq._Knfsavjs % 4 !== 0 && !_lKHBBgqq.includes('=')) return false;
        try {
            atob(_lKHBBgqq);
            return true;
        } catch (_NJVvVmQZ) {
            return false;
        }
    })();

    if (_RvTMtETv || _YaymeYkw) {
        return _gJzamcHL(_FQPlJbUr).join('\n');
    }

    const _xPSUdbPc = [
        'https://ipdb.api.030101.xyz/?_rxGDYwDa=bestcf&_pAqitsqP=true',
        'https://ipdb.api.030101.xyz/?_rxGDYwDa=bestproxy&_pAqitsqP=true'
    ];
    const _mhREonXG = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_uzXZZcQB.test(_GFMsYkak) || _GFMsYkak.includes('?_aCXrZhTp=');

    if (_mhREonXG) {
        const _quxcwQyk = await _SgRhIfyK(_GFMsYkak);
        return _quxcwQyk.join('\n');
    }

    let _QMBPGvSQ = '';
    if (_xPSUdbPc.includes(_GFMsYkak)) {
        _QMBPGvSQ = await _JcBZxgyP(_GFMsYkak, { referer: _GFMsYkak });
        if (!_QMBPGvSQ || _QMBPGvSQ._Knfsavjs < 8) {
            _QMBPGvSQ = await _AatmWKVQ(_GFMsYkak, { referer: _GFMsYkak });
        }
    } else {
        try {
            const _ieuBPPGs = await fetch(_GFMsYkak, { _oEdKaJbO: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_ieuBPPGs.ok) {
                _QMBPGvSQ = await _ieuBPPGs._MXjXAlyi();
            } else {
                console.warn(`Failed to fetch URL ${_GFMsYkak}: ${_ieuBPPGs.status}`);
            }
        } catch (_NJVvVmQZ) {
            console.error(`Error fetching URL ${_GFMsYkak}:`, _NJVvVmQZ);
        }
    }

    const _aYumJfMs = _gJzamcHL(_QMBPGvSQ);
    if (_aYumJfMs._Knfsavjs > 0) {
        return _aYumJfMs.join('\n');
    }

    return _QMBPGvSQ || '';
}

async function _kEKDneLM(_EtEjWvZR, _Hdfgihox) {
    if (!_Hdfgihox.streamer._fVrkhlvZ) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _wZmkswDe = new URL(_EtEjWvZR._wZmkswDe);
    const _tjBjKnTj = _wZmkswDe.pathname.substring(1).replace(':/', '://');
    try {
        const _rTQJQrFZ = new URL(_tjBjKnTj);
        const _RtifTHOa = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_RtifTHOa.some(domain => _rTQJQrFZ._npaNcYDt.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _bIiRfwfp = new Headers(_EtEjWvZR._oEdKaJbO);
        _bIiRfwfp._NiMrIxzm('Host', _rTQJQrFZ._npaNcYDt);
        _bIiRfwfp._NiMrIxzm('User-Agent', 'CF-Worker-Streamer/1.0');
        const _OVFpOFUN = await fetch(_rTQJQrFZ.toString(), {
            method: _EtEjWvZR.method,
            _oEdKaJbO: _bIiRfwfp,
            _szBftOCh: _EtEjWvZR._szBftOCh,
        });
        const _NnUJUnEp = new Headers(_OVFpOFUN._oEdKaJbO);
        _NnUJUnEp._NiMrIxzm('Access-Control-Allow-Origin', '*');
        _NnUJUnEp._NiMrIxzm('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _NnUJUnEp._NiMrIxzm('Access-Control-Allow-Headers', '*');
        _NnUJUnEp._NiMrIxzm('Cache-Control', 'public, max-age=86400');
        _NnUJUnEp._NiMrIxzm('X-Streamer-Source', 'CF-Worker');
        _NnUJUnEp.delete('_QMBPGvSQ-security-policy');
        _NnUJUnEp.delete('x-_QMBPGvSQ-security-policy');
        _NnUJUnEp.delete('x-webkit-csp');
        return new Response(_OVFpOFUN._szBftOCh, {
            status: _OVFpOFUN.status,
            statusText: _OVFpOFUN.statusText,
            _oEdKaJbO: _NnUJUnEp,
        });
    } catch (_NJVvVmQZ) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _rjXVzXON(_EtEjWvZR, _NDgrXyZK, _Hdfgihox) {
    try {
        const _UgEUzBEw = _Hdfgihox || await _zLfYeote(_NDgrXyZK);
        const _LBBnCfav = (_UgEUzBEw.itemLink._DbnyyDYT && _UgEUzBEw.itemLink._DbnyyDYT[0]) || {};
        const _SgBPIgjX = _LBBnCfav['_aCXrZhTp'] || _hnAKmzqe(_CAgoAzLz);

        if (!_OBCEnLTv(_SgBPIgjX)) {
            throw new Error("Configured user _xawIkJdG is not valid.");
        }

        const _ramTNZJr = _UgEUzBEw.dataFeeds.universalFallbackAddress;
        let _zRWWCTKt = {};
        
        const _UdUUzIhi = _hnAKmzqe(_JqkAHqBv[0] || "");

        if (_ramTNZJr) {
            const [_nnBiMyYE, _jOiLzzNd = '443'] = _ramTNZJr.split(':');
            _zRWWCTKt = { _nnBiMyYE, _jOiLzzNd };
        } else {
            const [_nnBiMyYE, _jOiLzzNd = '443'] = _UdUUzIhi.split(':');
            _zRWWCTKt = { _nnBiMyYE, _jOiLzzNd };
        }

        const _wZmkswDe = new URL(_EtEjWvZR._wZmkswDe);
        const _LvlDjuHz = _wZmkswDe.pathname;
        let _RHCyacut = '';

        const _BmpuUBkO = _wZmkswDe.searchParams.get('remote');
        if (_BmpuUBkO) {
           _RHCyacut = atob(_BmpuUBkO);
        } else if (_LvlDjuHz.startsWith('/endpoint=')) {
           _RHCyacut = _LvlDjuHz.substring(10);
        } else if (_LvlDjuHz._Knfsavjs > 1 && _LvlDjuHz.substring(1).includes('.')) {
           _RHCyacut = _LvlDjuHz.substring(1);
        }

        if (_RHCyacut) {
            const [_nnBiMyYE, _jOiLzzNd = '443'] = _RHCyacut.split(':');
            _zRWWCTKt = { _nnBiMyYE, _jOiLzzNd };
        }
        
        return await _NdKbSxeF(_EtEjWvZR, _SgBPIgjX, _zRWWCTKt);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _NdKbSxeF(_EtEjWvZR, _xawIkJdG, _zRWWCTKt) {
    const _duNiHBvX = new WebSocketPair();
    const [clientEnd, _LGqdbBwd] = Object.values(_duNiHBvX);
    _LGqdbBwd.accept();

    let _dgHeypYH = { _QmRSKdsG: null };
    const _XZlsFMJf = _EtEjWvZR._oEdKaJbO.get("sec-websocket-protocol") || "";
    const _HoJQzzgU = _gTDrFzeg(_LGqdbBwd, _XZlsFMJf);

    _HoJQzzgU.pipeTo(new WritableStream({
        async write(chunk) {
            if (_dgHeypYH._QmRSKdsG) {
                const _QdpNPxRd = _dgHeypYH._QmRSKdsG.writable.getWriter();
                await _QdpNPxRd.write(chunk);
                _QdpNPxRd.releaseLock();
                return;
            }

            const { error, details } = await _JwXlDtPy(chunk, _xawIkJdG);
            if (error) {
                throw new Error(details);
            }

            const _ZZCSxJJk = new Uint8Array([details._oLyNYLNM[0], 0]);
            const _CETassxv = chunk.slice(details.payloadIndex);

            await _aRNfZuhr(_dgHeypYH, details._XkAovDUz, details._mALuuPxj, _CETassxv, _LGqdbBwd, _ZZCSxJJk, _zRWWCTKt);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _UEAuakCQ(_LGqdbBwd);
    });

    return new Response(null, { status: 101, webSocket: clientEnd });
}

async function _aRNfZuhr(_dgHeypYH, _XkAovDUz, _mALuuPxj, _OOcToGGv, _FNgziIZq, _ZZCSxJJk, _WwPgaOXA) {
    const _fEIEjAwW = async (_nnBiMyYE, _jOiLzzNd) => {
        let _ltucsnUE = _nnBiMyYE;
        if (/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(_nnBiMyYE)) {
            _ltucsnUE = `${atob('d3d3Lg==')}${_nnBiMyYE}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _QmRSKdsG = connect({ _npaNcYDt: _ltucsnUE, _jOiLzzNd });
        _dgHeypYH._QmRSKdsG = _QmRSKdsG;
        const _QdpNPxRd = _QmRSKdsG.writable.getWriter();
        await _QdpNPxRd.write(_OOcToGGv);
        _QdpNPxRd.releaseLock();
        return _QmRSKdsG;
    };

    const _bRhckyhe = async () => {
        if (!_WwPgaOXA._nnBiMyYE) return;
        console.log(`Direct connection failed, falling back to gateway: ${_WwPgaOXA._nnBiMyYE}`);
        const _MYWZOtTg = await _fEIEjAwW(_WwPgaOXA._nnBiMyYE, parseInt(_WwPgaOXA._jOiLzzNd, 10));
        _MYWZOtTg.closed.catch(() => {}).finally(() => _UEAuakCQ(_FNgziIZq));
        _ULUCtnyg(_MYWZOtTg, _FNgziIZq, _ZZCSxJJk, null);
    };

    try {
        const _vqnXKQTd = await _fEIEjAwW(_XkAovDUz, _mALuuPxj);
        _ULUCtnyg(_vqnXKQTd, _FNgziIZq, _ZZCSxJJk, _bRhckyhe);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _bRhckyhe();
    }
}

function _gTDrFzeg(_LGqdbBwd, _XZlsFMJf) {
    let _FYCtBKLk = false;
    return new ReadableStream({
        start(_jTPqczHy) {
            _LGqdbBwd.addEventListener("_JLvmrXFL", (event) => { if (_FYCtBKLk) return; _jTPqczHy.enqueue(event._AIYOpgmZ); });
            _LGqdbBwd.addEventListener("close", () => { _UEAuakCQ(_LGqdbBwd); if (_FYCtBKLk) return; _jTPqczHy.close(); });
            _LGqdbBwd.addEventListener("error", (err) => _jTPqczHy.error(err));
            if (_XZlsFMJf) {
                try {
                    const _TBtJDOSr = atob(_XZlsFMJf.replace(/-/g, "+").replace(/_/g, "/"));
                    _jTPqczHy.enqueue(Uint8Array.from(_TBtJDOSr, c => c.charCodeAt(0))._eLcPTeKN);
                } catch (_NJVvVmQZ) { console.error("Failed to decode early _AIYOpgmZ:", _NJVvVmQZ); }
            }
        },
        cancel() { _FYCtBKLk = true; _UEAuakCQ(_LGqdbBwd); },
    });
}

async function _JwXlDtPy(_eLcPTeKN, _xawIkJdG) {
    if (_eLcPTeKN.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _oLyNYLNM = new Uint8Array(_eLcPTeKN.slice(0, 1));
    const _nEPiEtLs = _qUstjPqY(new Uint8Array(_eLcPTeKN.slice(1, 17)));
    if (_nEPiEtLs !== _xawIkJdG) return { error: true, details: "Invalid _xawIkJdG" };
    const _VfPnfjZX = new Uint8Array(_eLcPTeKN.slice(17, 18))[0];
    const _eUFnBimf = new Uint8Array(_eLcPTeKN.slice(18 + _VfPnfjZX, 19 + _VfPnfjZX))[0];
    if (_eUFnBimf !== 1) return { error: true, details: `Unsupported _eUFnBimf: ${_eUFnBimf}` };
    const _yJbHlyhc = 19 + _VfPnfjZX;
    const _mALuuPxj = new DataView(_eLcPTeKN.slice(_yJbHlyhc, _yJbHlyhc + 2)).getUint16(0);
    let _XuKgVPRH = _yJbHlyhc + 2;
    const _PhuYvNmY = new Uint8Array(_eLcPTeKN.slice(_XuKgVPRH, _XuKgVPRH + 1))[0];
    let _PvDXMhHQ = 0;
    let _qQGMGIzC = _XuKgVPRH + 1;
    let _XkAovDUz = "";
    switch (_PhuYvNmY) {
        case 1: _PvDXMhHQ = 4; _XkAovDUz = new Uint8Array(_eLcPTeKN.slice(_qQGMGIzC, _qQGMGIzC + _PvDXMhHQ)).join("."); break;
        case 2: _PvDXMhHQ = new Uint8Array(_eLcPTeKN.slice(_qQGMGIzC, _qQGMGIzC + 1))[0]; _qQGMGIzC++; _XkAovDUz = new TextDecoder().decode(_eLcPTeKN.slice(_qQGMGIzC, _qQGMGIzC + _PvDXMhHQ)); break;
        case 3: _PvDXMhHQ = 16; const _TuffYPbk = new DataView(_eLcPTeKN.slice(_qQGMGIzC, _qQGMGIzC + _PvDXMhHQ)); const _YAHFTDYz = []; for (let _uzXZZcQB = 0; _uzXZZcQB < 8; _uzXZZcQB++) _YAHFTDYz.push(_TuffYPbk.getUint16(_uzXZZcQB * 2).toString(16)); _XkAovDUz = _YAHFTDYz.join(":"); break;
        default: return { error: true, details: `Invalid _rQmPGnJD _rxGDYwDa: ${_PhuYvNmY}` };
    }
    if (!_XkAovDUz) return { error: true, details: "Target _nnBiMyYE is empty" };
    return { error: false, details: { _XkAovDUz, _mALuuPxj, _oLyNYLNM, payloadIndex: _qQGMGIzC + _PvDXMhHQ } };
}

async function _ULUCtnyg(_QmRSKdsG, _FNgziIZq, _ORNxDIkI, _xbwkSRFv) {
    let _uNLQcMpO = _ORNxDIkI;
    let _uyCYxxOe = false;
    let _RkmqMUjq = _QmRSKdsG._HoJQzzgU.pipeTo(new WritableStream({
        write(chunk) {
            _uyCYxxOe = true;
            if (_FNgziIZq.readyState !== 1) throw new Error("Channel is not open");
            if (_uNLQcMpO) {
                const _FWnuYUKj = new Uint8Array(_uNLQcMpO.byteLength + chunk.byteLength);
                _FWnuYUKj._NiMrIxzm(new Uint8Array(_uNLQcMpO));
                _FWnuYUKj._NiMrIxzm(new Uint8Array(chunk), _uNLQcMpO.byteLength);
                _FNgziIZq.send(_FWnuYUKj._eLcPTeKN);
                _uNLQcMpO = null;
            } else {
                _FNgziIZq.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _FNgziIZq error:", err._JLvmrXFL);
    });

    await _RkmqMUjq;
    if (!_uyCYxxOe && _xbwkSRFv) {
        _xbwkSRFv();
    }
}

function _UEAuakCQ(_FNgziIZq) {
    try { if (_FNgziIZq.readyState === 1 || _FNgziIZq.readyState === 2) _FNgziIZq.close(); } catch (_NJVvVmQZ) {}
}

const _KqvhCtFh = Array.from({ _Knfsavjs: 256 }, (_, _uzXZZcQB) => (_uzXZZcQB + 256).toString(16).slice(1));
function _qUstjPqY(_czTPfnCH, offset = 0) {
    return (
        _KqvhCtFh[_czTPfnCH[offset]] + _KqvhCtFh[_czTPfnCH[offset + 1]] + _KqvhCtFh[_czTPfnCH[offset + 2]] + _KqvhCtFh[_czTPfnCH[offset + 3]] + "-" +
        _KqvhCtFh[_czTPfnCH[offset + 4]] + _KqvhCtFh[_czTPfnCH[offset + 5]] + "-" +
        _KqvhCtFh[_czTPfnCH[offset + 6]] + _KqvhCtFh[_czTPfnCH[offset + 7]] + "-" +
        _KqvhCtFh[_czTPfnCH[offset + 8]] + _KqvhCtFh[_czTPfnCH[offset + 9]] + "-" +
        _KqvhCtFh[_czTPfnCH[offset + 10]] + _KqvhCtFh[_czTPfnCH[offset + 11]] +
        _KqvhCtFh[_czTPfnCH[offset + 12]] + _KqvhCtFh[_czTPfnCH[offset + 13]] +
        _KqvhCtFh[_czTPfnCH[offset + 14]] + _KqvhCtFh[_czTPfnCH[offset + 15]]
    ).toLowerCase();
}

let _ivetZRQh = { "N/A":"未知" };

async function _loTuOVHT(_wZmkswDe, _CaNJVVac, _xbwkSRFv) {
    try {
        const _WkNDsPwc = await fetch(_wZmkswDe, {
            _oEdKaJbO: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_WkNDsPwc.ok) {
            console.error(`获取 ${_wZmkswDe} 失败: HTTP ${_WkNDsPwc.status}`);
            return _xbwkSRFv;
        }
        const _MXjXAlyi = await _WkNDsPwc._MXjXAlyi();
        return _CaNJVVac(_MXjXAlyi);
    } catch (error) {
        console.error(`获取或解析 ${_wZmkswDe} 时发生网络错误: ${error._JLvmrXFL}`);
        return _xbwkSRFv;
    }
}

function _uROskcXo(_MXjXAlyi) {
    if (!_MXjXAlyi) return [];
    const _lxHwbrkk = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _umpdUohb = _MXjXAlyi.split(/[\s,;#|]+/);
    const _ZNdpAeYN = [];
    for (const _oAowNHTm of _umpdUohb) {
        const _pueJHMLu = _oAowNHTm.trim();
        if (!_pueJHMLu) continue;
        const _opdozBDC = _pueJHMLu.lastIndexOf(':');
        let _bkHbCZMj = _pueJHMLu;
        if(_opdozBDC > _pueJHMLu.lastIndexOf(']')) {
             const _ejHHlPzJ = _pueJHMLu.substring(_opdozBDC + 1);
             if(!isNaN(_ejHHlPzJ) && _ejHHlPzJ._Knfsavjs > 0) {
                _bkHbCZMj = _pueJHMLu.substring(0, _opdozBDC);
             }
        }
        if (_uKEuUoHP.isValid(_bkHbCZMj.replace(/[\[\]]/g, '')) || _lxHwbrkk.test(_pueJHMLu)) {
            _ZNdpAeYN.push(_pueJHMLu);
        }
    }
    return _ZNdpAeYN;
}

function _QtACIVDT(_MXjXAlyi) {
    if (!_MXjXAlyi) return [];
    return _MXjXAlyi.split(/\s+/).filter(d => d.trim() !== '');
}

function _PeGbPRIq(_MXjXAlyi) {
    if (!_MXjXAlyi) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_MXjXAlyi}}`);
    } catch (_NJVvVmQZ) {
        console.error("解析 _ivetZRQh 失败:", _NJVvVmQZ);
        return { "N/A": "未知" };
    }
}

const _uKEuUoHP = {
    isValid: (_qzLRgLCq) => _uKEuUoHP.isIPv4(_qzLRgLCq) || _uKEuUoHP.isIPv6(_qzLRgLCq),
    isIPv4: (_qzLRgLCq) => {
        if (typeof _qzLRgLCq !== 'string') return false;
        const _YAHFTDYz = _qzLRgLCq.split('.');
        if (_YAHFTDYz._Knfsavjs !== 4) return false;
        return _YAHFTDYz.every(_TZvkllzq => {
            const _iJKfSQRI = parseInt(_TZvkllzq, 10);
            return !isNaN(_iJKfSQRI) && _iJKfSQRI >= 0 && _iJKfSQRI <= 255 && String(_iJKfSQRI) === _TZvkllzq;
        });
    },
    isIPv6: (_qzLRgLCq) => {
        if (typeof _qzLRgLCq !== 'string') return false;
        return /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/_uzXZZcQB.test(_qzLRgLCq);
    },
    toLong4: (_qzLRgLCq) => _qzLRgLCq.split('.').reduce((acc, octet, _uzXZZcQB) => acc + (parseInt(octet) << (8*(3-_uzXZZcQB))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_qzLRgLCq) => {
        try {
            const _NZEeBtnJ = _qzLRgLCq.split('/')[0];
            const _YAHFTDYz = _NZEeBtnJ.split('::');
            if (_YAHFTDYz._Knfsavjs > 2) return 0n;
            let _tbIktcSs = [];
            if (_YAHFTDYz[0]) {
                _tbIktcSs = _YAHFTDYz[0].split(':');
            }
            let _GprIIVPH = [];
            if (_YAHFTDYz._Knfsavjs > 1 && _YAHFTDYz[1]) {
                _GprIIVPH = _YAHFTDYz[1].split(':');
            }
            if (_tbIktcSs._Knfsavjs + _GprIIVPH._Knfsavjs > 8) return 0n;
            const _jguRwNoY = 8 - (_tbIktcSs._Knfsavjs + _GprIIVPH._Knfsavjs);
            const _ntorhbtM = [
                ..._tbIktcSs,
                ...Array(_jguRwNoY).fill('0'),
                ..._GprIIVPH
            ].map(_TZvkllzq => _TZvkllzq || '0');
            while(_ntorhbtM._Knfsavjs < 8) {
                _ntorhbtM.push('0');
            }
            let _RbynEJyK = 0n;
            for (const _TZvkllzq of _ntorhbtM) {
                if (_TZvkllzq._Knfsavjs > 4) return 0n;
                const _UvOlDWmo = BigInt('0x' + _TZvkllzq);
                _RbynEJyK = (_RbynEJyK << 16n) | _UvOlDWmo;
            }
            return _RbynEJyK;
        } catch(_NJVvVmQZ) {
            return 0n;
        }
    },
    fromBigInt6: (_RbynEJyK) => {
        if (typeof _RbynEJyK !== '_RbynEJyK' || _RbynEJyK < 0n) return null;
        const _YAHFTDYz = [];
        for (let _uzXZZcQB = 0; _uzXZZcQB < 8; _uzXZZcQB++) {
            _YAHFTDYz.unshift((_RbynEJyK & 0xFFFFn).toString(16));
            _RbynEJyK >>= 16n;
        }
        let _xBJyYFtU = { start: -1, _DlUnpBRx: 0 };
        let _LGZAlSsJ = { start: -1, _DlUnpBRx: 0 };
        for (let _uzXZZcQB = 0; _uzXZZcQB < 8; _uzXZZcQB++) {
            if (_YAHFTDYz[_uzXZZcQB] === '0') {
                if (_LGZAlSsJ.start === -1) _LGZAlSsJ.start = _uzXZZcQB;
                _LGZAlSsJ._DlUnpBRx++;
            } else {
                if (_LGZAlSsJ._DlUnpBRx > _xBJyYFtU._DlUnpBRx) _xBJyYFtU = { ..._LGZAlSsJ };
                _LGZAlSsJ = { start: -1, _DlUnpBRx: 0 };
            }
        }
        if (_LGZAlSsJ._DlUnpBRx > _xBJyYFtU._DlUnpBRx) _xBJyYFtU = { ..._LGZAlSsJ };
        if (_xBJyYFtU._DlUnpBRx > 1) {
            _YAHFTDYz.splice(_xBJyYFtU.start, _xBJyYFtU._DlUnpBRx, '');
            if (_xBJyYFtU.start === 0) _YAHFTDYz.unshift('');
            if (_xBJyYFtU.start + _xBJyYFtU._DlUnpBRx === 8) _YAHFTDYz.push('');
        }
        return _YAHFTDYz.join(':');
    },
    cidrToRange: (cidr, _aAaSImaY = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _KLwDTVMg = parseInt(bitsStr, 10);
            const _quxcwQyk = new Set();
            if (_uKEuUoHP.isIPv4(range)) {
                if (isNaN(_KLwDTVMg) || _KLwDTVMg < 8 || _KLwDTVMg > 32) return [];
                if (_KLwDTVMg === 32) return [range];
                const _RKmYWDpp = _uKEuUoHP.toLong4(range);
                const _bBTlXtrv = (0xFFFFFFFF << (32 - _KLwDTVMg)) >>> 0;
                const _fKtKMJWo = _RKmYWDpp & _bBTlXtrv;
                const _fuXAVPDd = 1 << (32 - _KLwDTVMg);
                if (_fuXAVPDd <= 2) return [];
                const _RzZdrhjY = Math.min(_aAaSImaY, _fuXAVPDd - 2);
                let _VAXcfloz = 0;
                while (_quxcwQyk.size < _RzZdrhjY && _VAXcfloz < _RzZdrhjY * 5) {
                    const _LIxzUeOL = Math.floor(Math.random() * (_fuXAVPDd - 2)) + 1;
                    _quxcwQyk.add(_uKEuUoHP.fromLong4((_fKtKMJWo + _LIxzUeOL) >>> 0));
                    _VAXcfloz++;
                }
                return Array.from(_quxcwQyk);
            } else if (_uKEuUoHP.isIPv6(range)) {
                if (isNaN(_KLwDTVMg) || _KLwDTVMg < 16 || _KLwDTVMg > 128) return [];
                 if (_KLwDTVMg === 128) return [range];
                const _qkReFfhc = _uKEuUoHP.toBigInt6(range);
                const _bBTlXtrv = (2n ** BigInt(128 - _KLwDTVMg) - 1n);
                const _fKtKMJWo = _qkReFfhc & ~_bBTlXtrv;
                const _TmJsAhEd = 2n ** BigInt(128 - _KLwDTVMg);
                if (_TmJsAhEd <= 2n) return [];
                let _VAXcfloz = 0;
                while (_quxcwQyk.size < _aAaSImaY && _VAXcfloz < _aAaSImaY * 5) {
                     const _KYCCOpPC = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_KYCCOpPC);
                     let _JxmTPhRx = 0n;
                     for (const _RUhzKNnU of _KYCCOpPC) {
                         _JxmTPhRx = (_JxmTPhRx << 8n) | BigInt(_RUhzKNnU);
                     }
                     const _LIxzUeOL = _JxmTPhRx % (_TmJsAhEd - 2n) + 1n;
                     _quxcwQyk.add(_uKEuUoHP.fromBigInt6(_fKtKMJWo + _LIxzUeOL));
                     _VAXcfloz++;
                }
                return Array.from(_quxcwQyk);
            }
            return [];
        } catch(_NJVvVmQZ) {
            console.error(`CIDR to range failed for ${cidr}:`, _NJVvVmQZ);
            return [];
        }
    }
};

function _OiknlZAe(_yIqaIOjS, _NPVdMEqw) {
    const _OeKppMqv = {};
    const _ppcMzqSw = Object._ppcMzqSw(_NPVdMEqw);
    const _YAHFTDYz = _ppcMzqSw.map(_ReuDzuWp => {
        const _QefYlasY = _yIqaIOjS * (_NPVdMEqw[_ReuDzuWp] / 100);
        return { _ReuDzuWp, _aAaSImaY: Math.floor(_QefYlasY), remainder: _QefYlasY - Math.floor(_QefYlasY) };
    });
    let _RIZyykwE = _YAHFTDYz.reduce((acc, _TZvkllzq) => acc + _TZvkllzq._aAaSImaY, 0);
    _YAHFTDYz.sort((a, b) => b.remainder - a.remainder);
    let _orGHqhYq = _yIqaIOjS - _RIZyykwE;
    for (let _uzXZZcQB = 0; _uzXZZcQB < _orGHqhYq; _uzXZZcQB++) {
        _YAHFTDYz[_uzXZZcQB % _YAHFTDYz._Knfsavjs]._aAaSImaY++;
    }
    for (const _TZvkllzq of _YAHFTDYz) {
        _OeKppMqv[_TZvkllzq._ReuDzuWp] = _TZvkllzq._aAaSImaY;
    }
    return _OeKppMqv;
}

async function _FsZFuyTI(_NDgrXyZK) {
    const _kTonZGsz = _NDgrXyZK.DB.prepare("SELECT _UvOlDWmo FROM kv_data WHERE _ReuDzuWp = ?").bind(_HIJsvbSc);
    const { _VKkkHGfX } = await _kTonZGsz.all();
    return _VKkkHGfX._Knfsavjs > 0 ? _VKkkHGfX[0]._UvOlDWmo : null;
}

async function _QjdjUDWf(_NDgrXyZK, _yfvGfTPS) {
    const _kTonZGsz = _NDgrXyZK.DB.prepare(
        "INSERT INTO kv_data (_ReuDzuWp, _UvOlDWmo) VALUES (?, ?) ON CONFLICT(_ReuDzuWp) DO UPDATE SET _UvOlDWmo = excluded._UvOlDWmo"
    );
    await _kTonZGsz.bind(_HIJsvbSc, _yfvGfTPS).run();
}

async function _UaMHQCNY(_EtEjWvZR, _NDgrXyZK) {
    const { _yfvGfTPS } = await _EtEjWvZR.json();
    const _eJViEJav = await _FsZFuyTI(_NDgrXyZK);
    if (_eJViEJav === _yfvGfTPS) {
        return _TJeoQGki({ success: true });
    }
    return _TJeoQGki({ success: false, _JLvmrXFL: '密码错误' }, 401);
}

async function _hMnCLFnT(_EtEjWvZR, _NDgrXyZK) {
    const _ktRwDemf = await _zLfYeote(_NDgrXyZK);
    if (!_ktRwDemf.visitorPassword || !_ktRwDemf.visitorPassword._fVrkhlvZ) {
        return _TJeoQGki({ success: true });
    }
    try {
        const { _yfvGfTPS } = await _EtEjWvZR.json();
        const _suJBtjIR = _ktRwDemf.visitorPassword._yfvGfTPS;
        if (_suJBtjIR && _yfvGfTPS === _suJBtjIR) {
            return _TJeoQGki({ success: true });
        }
        return _TJeoQGki({ success: false, _JLvmrXFL: '访客密码错误' }, 401);
    } catch (_NJVvVmQZ) {
        return _TJeoQGki({ success: false, _JLvmrXFL: '无效请求' }, 400);
    }
}

async function _mYSkMFcC(_EtEjWvZR, _NDgrXyZK) {
    const _rCafgPzK = await _FsZFuyTI(_NDgrXyZK);
    if (_rCafgPzK) {
        return _TJeoQGki({ success: false, _JLvmrXFL: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _yfvGfTPS } = await _EtEjWvZR.json();
    if (!_yfvGfTPS || _yfvGfTPS._Knfsavjs < 6) {
        return _TJeoQGki({ success: false, _JLvmrXFL: "密码长度不能少于6位。" }, 400);
    }
    await _QjdjUDWf(_NDgrXyZK, _yfvGfTPS);
    return _TJeoQGki({ success: true, _JLvmrXFL: "初始密码设置成功!请刷新页面并登录。" });
}

async function _EcjfSKQU(_EtEjWvZR, _NDgrXyZK) {
    const { _EgDWqKdS, _gDpPVktV } = await _EtEjWvZR.json();
    const _eJViEJav = await _FsZFuyTI(_NDgrXyZK);
    if (_eJViEJav !== _EgDWqKdS) {
        return _TJeoQGki({ success: false, _JLvmrXFL: "旧密码错误。" }, 403);
    }
    if (!_gDpPVktV || _gDpPVktV._Knfsavjs < 6) {
        return _TJeoQGki({ success: false, _JLvmrXFL: "新密码长度不能少于6位。" }, 400);
    }
    await _QjdjUDWf(_NDgrXyZK, _gDpPVktV);
    return _TJeoQGki({ success: true, _JLvmrXFL: "密码修改成功!" });
}

function _CZoMaGTh() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _COfTtGGu: '',
        api: {
            _fVrkhlvZ: true,
            _JLvmrXFL: '维护中...',
        },
        ispFilter: { _fVrkhlvZ: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _fVrkhlvZ: true
        },
        websocketStreamer: {
            _fVrkhlvZ: true,
            _wZmkswDe: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _fVrkhlvZ: true
        },
        visitorPassword: {
            _fVrkhlvZ: false,
            _yfvGfTPS: '',
        },
        customSubPath: {
            _fVrkhlvZ: false,
            _LvlDjuHz: 'latest',
        },
        subscriptionId: {
            _Knfsavjs: 8,
            _XyTIytLx: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _fVrkhlvZ: true,
            template: 'vless://{_aCXrZhTp}@{_qzLRgLCq}:{_jOiLzzNd}?encryption=none&security=tls&sni={_nnBiMyYE}&fp=random&_rxGDYwDa=ws&_nnBiMyYE={_nnBiMyYE}&_LvlDjuHz={_LvlDjuHz}#{_KUnlBVda}',
            selectionMode: 'first',
            _DbnyyDYT: [
                { _KUnlBVda: '默认配置', _nnBiMyYE: '', '_aCXrZhTp': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _LvlDjuHz: '/?ed=2560' }
            ],
            _VUuulRvM: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _fVrkhlvZ: false,
                _MXjXAlyi: '',
                _kfnqCXcf: 5
            },
            marquee: {
                _fVrkhlvZ: false,
                _MXjXAlyi: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _fVrkhlvZ: true,
            sources: [
                { _IiaMOgFA: 'CF官方IPV4', _quxcwQyk: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _OpHftYUk: false, _fVrkhlvZ: true, _RkDtYfqn: 20 },
                { _IiaMOgFA: 'CF官方IPV6', _quxcwQyk: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _OpHftYUk: false, _fVrkhlvZ: true, _RkDtYfqn: 20 },
                { _IiaMOgFA: '反代优选0', _quxcwQyk: 'https://wvs.sosorg.nyc.mn/sub?_aCXrZhTp=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_rxGDYwDa=ws&_nnBiMyYE=ss.nzvrn.com&_LvlDjuHz=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _OpHftYUk: false, _fVrkhlvZ: true, _RkDtYfqn: 30 },
                { _IiaMOgFA: '官方优选1', _quxcwQyk: 'https://ipdb.api.030101.xyz/?_rxGDYwDa=bestcf&_pAqitsqP=true', _OpHftYUk: false, _fVrkhlvZ: true, _RkDtYfqn: 10 },
                { _IiaMOgFA: '反代优选2', _quxcwQyk: 'https://ipdb.api.030101.xyz/?_rxGDYwDa=bestproxy&_pAqitsqP=true', _OpHftYUk: false, _fVrkhlvZ: true, _RkDtYfqn: 5 },
                { _IiaMOgFA: '官方优选2', _quxcwQyk: 'https://addressesapi.090227.xyz/_qzLRgLCq.164746.xyz', _OpHftYUk: false, _fVrkhlvZ: true, _RkDtYfqn: 10 },
				{ _IiaMOgFA: '官方优选3', _quxcwQyk: 'https://cfxr.eu.org/getSub?_nnBiMyYE=snipaste.huggy.qzz.io', _OpHftYUk: false, _fVrkhlvZ: true, _RkDtYfqn: 5 },
                { _IiaMOgFA: '官方优选4', _quxcwQyk: 'https://addressesapi.090227.xyz/CloudFlareYes', _OpHftYUk: false, _fVrkhlvZ: true, _RkDtYfqn: 10 }
            ]
        },
        customNodes: {
            _fVrkhlvZ: false,
            list: ''
        },
        texts: {
            title: 'Cloudflare IP',
            loginButton: '登录',
            loginButtonSuccess: '修改参数',
            appDownloadTitle: 'APP 下载',
            liveTitle: '本次优选结果',
            cachedTitle: '上次优选结果',
            tableHeader1: '排名',
            tableHeader2: 'IP地址',
            tableHeader3: '端口',
            tableHeader4: '延迟(ms)',
            tableHeader5: '归属地',
            tableHeader6: '运营商',
            tableHeader7: '操作',
            pingInProgress: '测试中',
        },
        colors: {
            title: '#FFFFFF',
            loginButton: '#E0E0E0',
            liveTitle: '#E0E0E0',
            cachedTitle: '#E0E0E0',
            tableHeader: '#B0B0B0',
        },
        telegram: {
            bot_token: '',
            chat_id: '',
        },
    };
}

function _jdUFlgpQ(_OvwsuhLf, _ZnwbacDj) {
    if (!_OvwsuhLf) return _ZnwbacDj;
    const _BXBDCoEM = { ..._ZnwbacDj };
    for (const _ReuDzuWp in _ZnwbacDj) {
        if (_OvwsuhLf.hasOwnProperty(_ReuDzuWp)) {
             if (typeof _OvwsuhLf[_ReuDzuWp] === 'object' && _OvwsuhLf[_ReuDzuWp] !== null && !Array.isArray(_OvwsuhLf[_ReuDzuWp]) && typeof _ZnwbacDj[_ReuDzuWp] === 'object' && _ZnwbacDj[_ReuDzuWp] !== null && !Array.isArray(_ZnwbacDj[_ReuDzuWp])) {
                _BXBDCoEM[_ReuDzuWp] = _jdUFlgpQ(_OvwsuhLf[_ReuDzuWp], _ZnwbacDj[_ReuDzuWp]);
            } else {
                _BXBDCoEM[_ReuDzuWp] = _OvwsuhLf[_ReuDzuWp];
            }
        }
    }
    return _BXBDCoEM;
}

async function _zLfYeote(_NDgrXyZK) {
    try {
        const _kTonZGsz = _NDgrXyZK.DB.prepare("SELECT _UvOlDWmo FROM kv_data WHERE _ReuDzuWp = ?").bind(_OBPVExpC);
        const { _VKkkHGfX } = await _kTonZGsz.all();
        const _MMSsoQJM = _VKkkHGfX._Knfsavjs > 0 ? _VKkkHGfX[0]._UvOlDWmo : null;
        const _cdlghZhb = _MMSsoQJM ? JSON.parse(_MMSsoQJM) : {};
        return _jdUFlgpQ(_cdlghZhb, _CZoMaGTh());
    } catch (_NJVvVmQZ) {
        console.error("无法从D1获取或解析全局配置:", _NJVvVmQZ);
        return _CZoMaGTh();
    }
}

async function _oOplCZau(_NDgrXyZK) {
    const _Hdfgihox = await _zLfYeote(_NDgrXyZK);
    return _TJeoQGki(_Hdfgihox);
}

async function _IEXvGuhn(_EtEjWvZR, _NDgrXyZK, _cJnBuvZi) {
    try {
        const { _Hdfgihox, adminPassword } = await _EtEjWvZR.json();
        const _eJViEJav = await _FsZFuyTI(_NDgrXyZK);
        if (_eJViEJav !== adminPassword) {
            return _TJeoQGki({ success: false, _JLvmrXFL: "管理员密码错误" }, 403);
        }
        const _kTonZGsz = _NDgrXyZK.DB.prepare(
          "INSERT INTO kv_data (_ReuDzuWp, _UvOlDWmo) VALUES (?, ?) ON CONFLICT(_ReuDzuWp) DO UPDATE SET _UvOlDWmo = excluded._UvOlDWmo"
        );
        const _jFgsHcJp = _kTonZGsz.bind(_OBPVExpC, JSON.stringify(_Hdfgihox)).run();
        _cJnBuvZi.waitUntil(_jFgsHcJp);
        return _TJeoQGki({ success: true, _JLvmrXFL: "配置已成功保存!" });
    } catch (_NJVvVmQZ) {
        return _TJeoQGki({ success: false, _JLvmrXFL: `保存失败: ${_NJVvVmQZ._JLvmrXFL}` }, 500);
    }
}

async function _pnMjVKRr() {
    const _iWBHZgvb = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _FRnZQdIm = await fetch(_iWBHZgvb);
        const _cPiqBMtZ = await _FRnZQdIm.json();
        const _qmCrCWLm = 'https://www.bing.com' + _cPiqBMtZ.images[0]._wZmkswDe;
        return fetch(_qmCrCWLm);
    } catch (_NJVvVmQZ) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _WEIWLNsb(_qzLRgLCq) {
    try {
        const _WkNDsPwc = await fetch(`http://_qzLRgLCq-api.com/json/${_qzLRgLCq}?fields=status,_pAqitsqP,countryCode,_feoQuiHi&lang=zh-CN`);
        if (_WkNDsPwc.ok) {
            const _AIYOpgmZ = await _WkNDsPwc.json();
            if (_AIYOpgmZ.status === 'success' && (_AIYOpgmZ.countryCode || _AIYOpgmZ._pAqitsqP)) {
                let _feoQuiHi = _AIYOpgmZ._feoQuiHi || '未知';
                if (_feoQuiHi.toLowerCase().includes('cloudflare')) {
                    _feoQuiHi = 'CloudFlare';
                }
                return {
                    _IiaMOgFA: _ivetZRQh[_AIYOpgmZ.countryCode] || _AIYOpgmZ._pAqitsqP || _AIYOpgmZ.countryCode,
                    _feoQuiHi: _feoQuiHi
                };
            }
        }
    } catch (_NJVvVmQZ) {}

    try {
        const _WkNDsPwc = await fetch(`https://api._qzLRgLCq.sb/geoip/${_qzLRgLCq}`);
        if (_WkNDsPwc.ok) {
            const _AIYOpgmZ = await _WkNDsPwc.json();
            if (_AIYOpgmZ.country_code || _AIYOpgmZ._pAqitsqP) {
                let _feoQuiHi = _AIYOpgmZ._feoQuiHi || '未知';
                if (_feoQuiHi.toLowerCase().includes('cloudflare')) {
                    _feoQuiHi = 'CloudFlare';
                }
                return {
                    _IiaMOgFA: _ivetZRQh[_AIYOpgmZ.country_code] || _AIYOpgmZ._pAqitsqP || _AIYOpgmZ.country_code,
                    _feoQuiHi: _feoQuiHi
                };
            }
        }
    } catch (_NJVvVmQZ) {}
    
    return { _IiaMOgFA: '未知', _feoQuiHi: '未知' };
}

async function _fnyrMMKs(_EtEjWvZR, _NDgrXyZK) {
    try {
        const { _quxcwQyk } = await _EtEjWvZR.json();
        if (!Array.isArray(_quxcwQyk)) {
            return _TJeoQGki({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _WKBWpTDF = _quxcwQyk.map(_qzLRgLCq => _WEIWLNsb(_qzLRgLCq).then(_ndzfrVpg => ({ _qzLRgLCq, ..._ndzfrVpg })));
        const _VKkkHGfX = await Promise.all(_WKBWpTDF);
        return _TJeoQGki(_VKkkHGfX);
    } catch (_NJVvVmQZ) {
        return _TJeoQGki({ error: `获取地理位置失败: ${_NJVvVmQZ._JLvmrXFL}` }, 500);
    }
}

async function _KJaJogya(_EtEjWvZR, _NDgrXyZK) {
    const _Hdfgihox = await _zLfYeote(_NDgrXyZK);
    if (!_Hdfgihox.cloudStorage._fVrkhlvZ) {
        return _TJeoQGki({ _VKkkHGfX: [], generatedBy: null });
    }
    try {
        const _kTonZGsz = _NDgrXyZK.DB.prepare("SELECT _UvOlDWmo FROM kv_data WHERE _ReuDzuWp = ?").bind(_HRSLyBGW);
        const { _VKkkHGfX } = await _kTonZGsz.all();
        const _IXoKXVKt = _VKkkHGfX._Knfsavjs > 0 ? _VKkkHGfX[0]._UvOlDWmo : null;
        const _JzOhnxIw = _IXoKXVKt ? JSON.parse(_IXoKXVKt) : null;
        return _TJeoQGki(_JzOhnxIw || { _VKkkHGfX: [], generatedBy: null });
    } catch (_NJVvVmQZ) {
        console.error("从D1读取缓存IP失败:", _NJVvVmQZ);
        return _TJeoQGki({ _VKkkHGfX: [], generatedBy: null });
    }
}

async function _rieyjiKL(_EtEjWvZR, _NDgrXyZK, _cJnBuvZi) {
    const _Hdfgihox = await _zLfYeote(_NDgrXyZK);
    if (!_Hdfgihox.cloudStorage._fVrkhlvZ) {
        return _TJeoQGki({ success: true, _JLvmrXFL: "云端存储已禁用,不保存结果。" });
    }
    const _DThfeFix = _EtEjWvZR._oEdKaJbO.get('CF-Connecting-IP') || "未知IP";
    const _pAqitsqP = _EtEjWvZR.cf?._pAqitsqP || "未知";
    const _bDeHKFOU = _EtEjWvZR.cf?._bDeHKFOU || "";
    let _dxDsoREi = _ivetZRQh[_pAqitsqP] || _pAqitsqP;
    if (_bDeHKFOU && _bDeHKFOU !== "未知城市" && _bDeHKFOU !== _pAqitsqP) _dxDsoREi = `${_dxDsoREi} ${_ivetZRQh[_bDeHKFOU] || _bDeHKFOU}`;
    const _hATMTIVc = {
        _qzLRgLCq: _DQyrbEjP(_DThfeFix),
        _IiaMOgFA: _dxDsoREi.trim(),
        time: _ehnkhBjK()
    };
    try {
        const _UNmlvEWN = await _EtEjWvZR.json();
        if (!Array.isArray(_UNmlvEWN)) return _TJeoQGki({ error: "无效数据格式" }, 400);
        const _bKmAuTDY = _UNmlvEWN.map(_BejgsZFH => ({
            _qzLRgLCq: String(_BejgsZFH._qzLRgLCq || ''),
            _jOiLzzNd: _BejgsZFH._jOiLzzNd ? parseInt(_BejgsZFH._jOiLzzNd, 10) : undefined,
            _dwSMvSjw: parseInt(_BejgsZFH._dwSMvSjw, 10),
            _IiaMOgFA: typeof _BejgsZFH._IiaMOgFA === 'string' ? _BejgsZFH._IiaMOgFA.substring(0, 50) : 'N/A',
            _feoQuiHi: typeof _BejgsZFH._feoQuiHi === 'string' ? _BejgsZFH._feoQuiHi.substring(0, 100) : 'N/A'
        }));
        const _DcBqxnan = {
            generatedBy: _hATMTIVc,
            _VKkkHGfX: _bKmAuTDY
        };
        const _hAZdPfvI = _NDgrXyZK.DB.prepare(
          "INSERT INTO kv_data (_ReuDzuWp, _UvOlDWmo) VALUES (?, ?) ON CONFLICT(_ReuDzuWp) DO UPDATE SET _UvOlDWmo = excluded._UvOlDWmo"
        ).bind(_HRSLyBGW, JSON.stringify(_DcBqxnan)).run();
        if (_Hdfgihox.telegram.bot_token && _Hdfgihox.telegram.chat_id) {
            const _FAFqPVEx = _bKmAuTDY.map(r => `${r._qzLRgLCq} ~ ${r._IiaMOgFA}`).join('\n');
            const _VhWMnkap = `优选完成!\n来源: ${_hATMTIVc._qzLRgLCq} (${_hATMTIVc._IiaMOgFA})\n时间: ${_hATMTIVc.time}\n\n结果:\n${_FAFqPVEx}`;
            const _kLQDbWMZ = `https://api.telegram.org/bot${_Hdfgihox.telegram.bot_token}/sendMessage?chat_id=${_Hdfgihox.telegram.chat_id}&_MXjXAlyi=${encodeURIComponent(_VhWMnkap)}`;
            const _mNXJXTWs = fetch(_kLQDbWMZ).catch(_NJVvVmQZ => console.error("Telegram结果通知失败:", _NJVvVmQZ));
            _cJnBuvZi.waitUntil(Promise.all([_hAZdPfvI, _mNXJXTWs]));
        } else {
             _cJnBuvZi.waitUntil(_hAZdPfvI);
        }
        return _TJeoQGki({ success: true, _JLvmrXFL: "结果已保存" });
    } catch (_NJVvVmQZ) {
        return _TJeoQGki({ error: "D1写入失败", _JLvmrXFL: _NJVvVmQZ._JLvmrXFL }, 500);
    }
}

async function _NBzYtuda(_EtEjWvZR, _NDgrXyZK, _cJnBuvZi) {
    try {
        const _gFMMCUmY = await _EtEjWvZR.json();
        if (!Array.isArray(_gFMMCUmY)) return _TJeoQGki({ error: "无效数据格式" }, 400);
        const _DcBqxnan = {
            _VKkkHGfX: _gFMMCUmY
        };
        const _kTonZGsz = _NDgrXyZK.DB.prepare(
          "INSERT INTO kv_data (_ReuDzuWp, _UvOlDWmo) VALUES (?, ?) ON CONFLICT(_ReuDzuWp) DO UPDATE SET _UvOlDWmo = excluded._UvOlDWmo"
        );
        const _jFgsHcJp = _kTonZGsz.bind(_izELeEhF, JSON.stringify(_DcBqxnan)).run();
        _cJnBuvZi.waitUntil(_jFgsHcJp);
        return _TJeoQGki({ success: true });
    } catch (_NJVvVmQZ) {
        return _TJeoQGki({ error: "D1写入临时缓存失败", _JLvmrXFL: _NJVvVmQZ._JLvmrXFL }, 500);
    }
}

function _KFKURxPq(_Knfsavjs, _XyTIytLx) {
    let _dkqIhiJX = '';
    const _EjnALggV = _XyTIytLx._Knfsavjs;
    for (let _uzXZZcQB = 0; _uzXZZcQB < _Knfsavjs; _uzXZZcQB++) {
        _dkqIhiJX += _XyTIytLx.charAt(Math.floor(Math.random() * _EjnALggV));
    }
    return _dkqIhiJX;
}

async function _EfJJvHwC(_EtEjWvZR, _NDgrXyZK) {
    try {
        const _UNmlvEWN = await _EtEjWvZR.json();
        if (!Array.isArray(_UNmlvEWN) || _UNmlvEWN._Knfsavjs === 0) {
            return _TJeoQGki({ error: "无效或空的IP列表" }, 400);
        }

        const _Hdfgihox = await _zLfYeote(_NDgrXyZK);
        const _CVbqbDpY = _Hdfgihox.subscriptionId || { _Knfsavjs: 8, _XyTIytLx: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _zfCfHuda;
        let _rYPiletL = false;
        let _VAXcfloz = 0;
        const _xPUBWPeH = 10;

        while (!_rYPiletL && _VAXcfloz < _xPUBWPeH) {
            _zfCfHuda = _KFKURxPq(_CVbqbDpY._Knfsavjs, _CVbqbDpY._XyTIytLx);
            const { _VKkkHGfX } = await _NDgrXyZK.DB.prepare("SELECT _uaReJunx FROM optimized_results WHERE _uaReJunx = ?").bind(_zfCfHuda).all();
            if (_VKkkHGfX._Knfsavjs === 0) {
                _rYPiletL = true;
            }
            _VAXcfloz++;
        }

        if (!_rYPiletL) {
            return _TJeoQGki({ error: "无法生成唯一的订阅ID,请稍后重试或调整ID设置。" }, 500);
        }

        const _ICQDoKQX = JSON.stringify({ _quxcwQyk: _UNmlvEWN });
        await _NDgrXyZK.DB.prepare(
            "INSERT INTO optimized_results (_uaReJunx, _AIYOpgmZ) VALUES (?, ?)"
        ).bind(_zfCfHuda, _ICQDoKQX).run();
        await _NDgrXyZK.DB.prepare(
            "INSERT INTO kv_data (_ReuDzuWp, _UvOlDWmo) VALUES (?, ?) ON CONFLICT(_ReuDzuWp) DO UPDATE SET _UvOlDWmo = excluded._UvOlDWmo"
        ).bind(_QswXooSn, _zfCfHuda).run();
            
        return _TJeoQGki({ success: true, _uaReJunx: _zfCfHuda });
    } catch (_NJVvVmQZ) {
        return _TJeoQGki({ error: "保存优选结果失败", _JLvmrXFL: _NJVvVmQZ._JLvmrXFL }, 500);
    }
}

async function _hVQEIYnq(_EtEjWvZR, _NDgrXyZK) {
    try {
        const _zfCfHuda = _EtEjWvZR._CFosTUsV._uaReJunx;
        if (!_zfCfHuda) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _dkqIhiJX = await _NDgrXyZK.DB.prepare("SELECT _AIYOpgmZ FROM optimized_results WHERE _uaReJunx = ?").bind(_zfCfHuda).first();
        if (!_dkqIhiJX) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _AIYOpgmZ = JSON.parse(_dkqIhiJX._AIYOpgmZ);
        let _FAFqPVEx = _AIYOpgmZ._quxcwQyk;

        const _Hdfgihox = await _zLfYeote(_NDgrXyZK);

        if (_Hdfgihox.customNodes && _Hdfgihox.customNodes._fVrkhlvZ && _Hdfgihox.customNodes.list) {
            const _qdnGebhJ = _Hdfgihox.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _mZlHCUvo = _qdnGebhJ.map(_LEYRZIoC => {
                let _rQmPGnJD = _LEYRZIoC;
                let _jOiLzzNd = undefined;
                let _KUnlBVda = null;

                if (_rQmPGnJD.includes('@')) {
                    const _YAHFTDYz = _rQmPGnJD.split('@');
                    _KUnlBVda = _YAHFTDYz.pop();
                    _rQmPGnJD = _YAHFTDYz.join('@');
                }

                if (_rQmPGnJD.includes('#')) {
                    const _YAHFTDYz = _rQmPGnJD.split('#');
                    const _ejHHlPzJ = _YAHFTDYz.pop();
                    if (!isNaN(_ejHHlPzJ) && _ejHHlPzJ.trim() !== '') {
                        _jOiLzzNd = parseInt(_ejHHlPzJ, 10);
                    }
                    _rQmPGnJD = _YAHFTDYz.join('#');
                }
                
                return {
                    _qzLRgLCq: _rQmPGnJD,
                    _jOiLzzNd: _jOiLzzNd,
                    _IiaMOgFA: _KUnlBVda || _rQmPGnJD,
                    _feoQuiHi: '自定义'
                };
            });
            _FAFqPVEx.unshift(..._mZlHCUvo);
        }
        
        const { itemLink } = _Hdfgihox;
        const _msbbGSvr = new URL(_EtEjWvZR._wZmkswDe)._npaNcYDt;
        let _POQiSNEo;

        if (_Hdfgihox.websocketStreamer && _Hdfgihox.websocketStreamer._fVrkhlvZ) {
            if (!itemLink || !itemLink._fVrkhlvZ || !itemLink._DbnyyDYT || itemLink._DbnyyDYT._Knfsavjs === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _POQiSNEo = _FAFqPVEx.map((_BejgsZFH, _MBIJBWBw) => {
                let _KUnlBVda;
                if (_BejgsZFH._feoQuiHi === '自定义') {
                     _KUnlBVda = `${_MBIJBWBw + 1} - ${_BejgsZFH._IiaMOgFA}`;
                } else {
                    _KUnlBVda = `${_MBIJBWBw + 1} - ${_BejgsZFH._IiaMOgFA || '未知'}`;
                    if (!_BejgsZFH._feoQuiHi || !_BejgsZFH._feoQuiHi.toLowerCase().includes('cloudflare')) {
                        _KUnlBVda += '(反代)';
                    }
                }
                const _nNAkKopq = _uKEuUoHP.isIPv6(_BejgsZFH._qzLRgLCq) ? `[${_BejgsZFH._qzLRgLCq}]` : _BejgsZFH._qzLRgLCq;
                const _jOiLzzNd = _BejgsZFH._jOiLzzNd || 443;
                const _kxLxikSU = itemLink._DbnyyDYT[0];
                const _BVFQzXyX = _kxLxikSU._aCXrZhTp || '';
                const _aCXrZhTp = (_BVFQzXyX && _OBCEnLTv(_BVFQzXyX)) ? _BVFQzXyX : crypto.randomUUID();
                const _LvlDjuHz = '/snippets?_qzLRgLCq=endpointAddress:_jOiLzzNd(443)&nat64=6to4';
                const _nnBiMyYE = _kxLxikSU._nnBiMyYE || _msbbGSvr;

                const _CFosTUsV = new URLSearchParams({
                    security: 'tls',
                    _rxGDYwDa: 'ws',
                    _nnBiMyYE: _nnBiMyYE,
                    sni: _nnBiMyYE,
                    fp: 'random'
                });
                return `vless://${_aCXrZhTp}@${_nNAkKopq}:${_jOiLzzNd}?${_CFosTUsV.toString()}&_LvlDjuHz=${encodeURIComponent(encodeURIComponent(_LvlDjuHz))}#${encodeURIComponent(_KUnlBVda)}`;
            });

        } else {
            if (!itemLink || !itemLink._fVrkhlvZ || !itemLink._DbnyyDYT || itemLink._DbnyyDYT._Knfsavjs === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _kxLxikSU = itemLink._DbnyyDYT[0];
            const { _nnBiMyYE, _aCXrZhTp, _LvlDjuHz } = _kxLxikSU;
            _POQiSNEo = _FAFqPVEx.map((_BejgsZFH, _MBIJBWBw) => {
                let _KUnlBVda;
                if (_BejgsZFH._feoQuiHi === '自定义') {
                     _KUnlBVda = `${_MBIJBWBw + 1} - ${_BejgsZFH._IiaMOgFA}`;
                } else {
                    _KUnlBVda = `${_MBIJBWBw + 1} - ${_BejgsZFH._IiaMOgFA || '未知'}`;
                    if (!_BejgsZFH._feoQuiHi || !_BejgsZFH._feoQuiHi.toLowerCase().includes('cloudflare')) {
                        _KUnlBVda += '(反代)';
                    }
                }
                const _nNAkKopq = _uKEuUoHP.isIPv6(_BejgsZFH._qzLRgLCq) ? `[${_BejgsZFH._qzLRgLCq}]` : _BejgsZFH._qzLRgLCq;
                const _jOiLzzNd = _BejgsZFH._jOiLzzNd || 443;
                const _CFosTUsV = new URLSearchParams({
                    security: 'tls',
                    _rxGDYwDa: 'ws',
                    _nnBiMyYE: _nnBiMyYE || _msbbGSvr,
                    sni: _nnBiMyYE || _msbbGSvr,
                    fp: 'random'
                });
                return `vless://${_aCXrZhTp}@${_nNAkKopq}:${_jOiLzzNd}?${_CFosTUsV.toString()}&_LvlDjuHz=${encodeURIComponent(encodeURIComponent(_LvlDjuHz || ''))}#${encodeURIComponent(_KUnlBVda)}`;
            });
        }
        
        const _wIVgdxDd = _POQiSNEo.join('\n');
        const _xWkdLLql = btoa(_wIVgdxDd);
        return new Response(_xWkdLLql, {
            _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/plain; _XyTIytLx=utf-8' }
        });

    } catch (_NJVvVmQZ) {
        return new Response(`生成节点列表失败: ${_NJVvVmQZ._JLvmrXFL}`, { status: 500 });
    }
}

async function _aAIwPoAh(_EtEjWvZR) {
    try {
        const { _PYTxOktP, _rxGDYwDa } = await _EtEjWvZR.json();
        if (!Array.isArray(_PYTxOktP)) {
            return new Response('Invalid _PYTxOktP list', { status: 400 });
        }
        const _WCdnjKnl = _PYTxOktP.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _wZmkswDe = `https://cloudflare-dns.com/dns-query?_KUnlBVda=${encodeURIComponent(domain.trim())}&_rxGDYwDa=${_rxGDYwDa || 'A'}`;
            return fetch(_wZmkswDe, { _oEdKaJbO: { 'Accept': 'application/dns-json' } })
                .then(_WkNDsPwc => _WkNDsPwc.json())
                .then(_AIYOpgmZ => (_AIYOpgmZ.Answer ? _AIYOpgmZ.Answer.map(a => a._AIYOpgmZ) : []))
                .catch(() => []);
        });
        const _XWwLPDbQ = (await Promise.all(_WCdnjKnl)).flat();
        const _DvXGLMDY = [...new Set(_XWwLPDbQ)];
        if (_DvXGLMDY._Knfsavjs === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_DvXGLMDY.join('\n'), { _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/plain; _XyTIytLx=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._JLvmrXFL}`, { status: 500 });
    }
}

async function _zbJcLWnB(_EtEjWvZR, _NDgrXyZK) {
  try {
      const { _zADJBefm } = await _EtEjWvZR.json();
      if (!Array.isArray(_zADJBefm)) {
          return _TJeoQGki({ error: "Invalid input, expected an object with a '_zADJBefm' array." }, 400);
      }
      
      const _BkmdUFBs = new Set();
      
      const _nIvlhHnf = _zADJBefm.map(_wZmkswDe =>
          _amTFwTYZ(_wZmkswDe)
              .then(_MXjXAlyi => {
                  if (!_MXjXAlyi) return;
                  const _umpdUohb = _MXjXAlyi.split(/[\s,;|]+/);
                  for (const _oAowNHTm of _umpdUohb) {
                      const _pueJHMLu = _oAowNHTm.trim();
                      if (_pueJHMLu) {
                          _BkmdUFBs.add(_pueJHMLu);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_wZmkswDe}:`, err);
              })
      );
      await Promise.all(_nIvlhHnf);
      return _TJeoQGki({ _quxcwQyk: Array.from(_BkmdUFBs) });
  } catch (_NJVvVmQZ) {
      return _TJeoQGki({ error: `Failed to process URLs: ${_NJVvVmQZ._JLvmrXFL}` }, 500);
  }
}

async function _IWyjiQNi(_EtEjWvZR, _NDgrXyZK) {
    const _Hdfgihox = await _zLfYeote(_NDgrXyZK);
    if (!_Hdfgihox.api._fVrkhlvZ) {
        return new Response(_Hdfgihox.api._JLvmrXFL || 'API is disabled.', { status: 503 });
    }
    try {
        const _kTonZGsz = _NDgrXyZK.DB.prepare("SELECT _UvOlDWmo FROM kv_data WHERE _ReuDzuWp = ?").bind(_HRSLyBGW);
        const { _VKkkHGfX: dbResults } = await _kTonZGsz.all();
        const _IXoKXVKt = dbResults._Knfsavjs > 0 ? dbResults[0]._UvOlDWmo : null;
        const _JzOhnxIw = _IXoKXVKt ? JSON.parse(_IXoKXVKt) : null;
        if (!_JzOhnxIw || !_JzOhnxIw._VKkkHGfX || _JzOhnxIw._VKkkHGfX._Knfsavjs === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/plain; _XyTIytLx=utf-8' },
            });
        }
        const _quxcwQyk = _JzOhnxIw._VKkkHGfX.map(r => r._qzLRgLCq);
        return new Response(_quxcwQyk.join('\n'), {
            _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/plain; _XyTIytLx=utf-8' },
        });
    } catch (_NJVvVmQZ) {
        console.error("API /_qzLRgLCq 处理错误:", _NJVvVmQZ);
        return new Response(`API处理时出错: ${_NJVvVmQZ._JLvmrXFL}`, { status: 500 });
    }
}

function _AcKZTCcX(_dkqIhiJX, _MBIJBWBw, _Hdfgihox, _msbbGSvr) {
    const { itemLink } = _Hdfgihox;
    if (!itemLink || !itemLink._fVrkhlvZ) return null;
    const { template, _DbnyyDYT, selectionMode, _VUuulRvM } = itemLink;
    if (!_DbnyyDYT || _DbnyyDYT._Knfsavjs === 0) return null;

    let _TayvWori;
    if (selectionMode === 'random') {
        _TayvWori = _DbnyyDYT[_MBIJBWBw % _DbnyyDYT._Knfsavjs];
    } else if (selectionMode === 'first') {
        _TayvWori = _DbnyyDYT[0];
    } else {
        _TayvWori = _DbnyyDYT.find(s => s._KUnlBVda === selectionMode) || _DbnyyDYT[0];
    }
    if (!_TayvWori) return null;

    let _VRYjljnD = template;
    const _OUPsQztm = _dkqIhiJX._jOiLzzNd || 443;
    const _bKxRLRMo = _uKEuUoHP.isIPv6(_dkqIhiJX._qzLRgLCq) ? `[${_dkqIhiJX._qzLRgLCq}]` : _dkqIhiJX._qzLRgLCq;
    let _KUnlBVda = `${_MBIJBWBw + 1} 、 ${_dkqIhiJX._IiaMOgFA || '未知'}`;
    if (!_dkqIhiJX._feoQuiHi || !_dkqIhiJX._feoQuiHi.toLowerCase().includes('cloudflare')) {
        _KUnlBVda += '(反代)';
    }
    let _nnBiMyYE = _TayvWori._nnBiMyYE || _msbbGSvr;

    _VRYjljnD = _VRYjljnD.replace(/{_qzLRgLCq}/g, _bKxRLRMo)
               .replace(/{_jOiLzzNd}/g, _OUPsQztm)
               .replace(/{_KUnlBVda}/g, encodeURIComponent(_KUnlBVda))
               .replace(/{rank}/g, _MBIJBWBw + 1)
               .replace(/{_IiaMOgFA}/g, encodeURIComponent(_dkqIhiJX._IiaMOgFA || '未知'))
               .replace(/{_feoQuiHi}/g, encodeURIComponent(_dkqIhiJX._feoQuiHi || '未知'))
               .replace(/{_nnBiMyYE}/g, encodeURIComponent(_nnBiMyYE))
               .replace(/{_aCXrZhTp}/g, encodeURIComponent(_TayvWori['_aCXrZhTp'] || ''))
               .replace(/{_LvlDjuHz}/g, encodeURIComponent(encodeURIComponent(_TayvWori._LvlDjuHz || '')));

    if (_VUuulRvM) {
        _VUuulRvM.forEach(field => {
            const _JRjWQUTT = new RegExp('{' + field._KUnlBVda + '}', 'g');
            _VRYjljnD = _VRYjljnD.replace(_JRjWQUTT, encodeURIComponent(field._UvOlDWmo));
        });
    }
    return _VRYjljnD;
}

async function _uShabHRC(_EtEjWvZR, _NDgrXyZK) {
    const _Hdfgihox = await _zLfYeote(_NDgrXyZK);
    if (!_Hdfgihox.itemLink._fVrkhlvZ) {
        return new Response("Item _VRYjljnD feature is disabled.", { status: 503, _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/plain; _XyTIytLx=utf-8' } });
    }

    try {
        const _kTonZGsz = _NDgrXyZK.DB.prepare("SELECT _UvOlDWmo FROM kv_data WHERE _ReuDzuWp = ?").bind(_HRSLyBGW);
        const { _VKkkHGfX: dbResults } = await _kTonZGsz.all();
        const _IXoKXVKt = dbResults._Knfsavjs > 0 ? dbResults[0]._UvOlDWmo : null;
        const _JzOhnxIw = _IXoKXVKt ? JSON.parse(_IXoKXVKt) : null;
        
        if (!_JzOhnxIw || !_JzOhnxIw._VKkkHGfX || _JzOhnxIw._VKkkHGfX._Knfsavjs === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/plain; _XyTIytLx=utf-8' },
            });
        }
        
        const _msbbGSvr = new URL(_EtEjWvZR._wZmkswDe)._npaNcYDt;

        const _CMGqxkMU = _JzOhnxIw._VKkkHGfX.map((_dkqIhiJX, _MBIJBWBw) => {
            return _AcKZTCcX(_dkqIhiJX, _MBIJBWBw, _Hdfgihox, _msbbGSvr);
        }).filter(Boolean);

        if (_CMGqxkMU._Knfsavjs === 0) {
            return new Response("Could not generate any _BejgsZFH links from the available IPs.", {
                status: 500,
                _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/plain; _XyTIytLx=utf-8' },
            });
        }

        return new Response(_CMGqxkMU.join('\n'), {
            _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/plain; _XyTIytLx=utf-8' },
        });

    } catch (_NJVvVmQZ) {
        console.error("API /api/endpoints error:", _NJVvVmQZ);
        return new Response(`Error processing API _EtEjWvZR: ${_NJVvVmQZ._JLvmrXFL}`, { status: 500 });
    }
}

async function _yzfIgucF(_EtEjWvZR, _NDgrXyZK, _cJnBuvZi) {
    const _DThfeFix = _EtEjWvZR._oEdKaJbO.get('CF-Connecting-IP') || "未知IP";
    const [
        _jQzxThmN,
        _nEeQYEZS,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _loTuOVHT(_OMsZaxML, _uROskcXo, []),
        _loTuOVHT(_fdSCNzdq, _uROskcXo, []),
        _loTuOVHT(_BcOvXDer, _QtACIVDT, []),
        _loTuOVHT(_wLfiPUIw, _PeGbPRIq, { "N/A": "未知" })
    ]);
    _ivetZRQh = fetchedCountryMap;
    let _OpusIpaK = false;
    let _ktRwDemf;
    try {
        const _yfvGfTPS = await _FsZFuyTI(_NDgrXyZK);
        _OpusIpaK = !!_yfvGfTPS;
        _ktRwDemf = await _zLfYeote(_NDgrXyZK);
    } catch (_NJVvVmQZ) {
        if (_NJVvVmQZ._JLvmrXFL && _NJVvVmQZ._JLvmrXFL.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _OcDGKZEu = "CREATE TABLE IF NOT EXISTS kv_data (_ReuDzuWp TEXT PRIMARY KEY, _UvOlDWmo TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_uaReJunx TEXT PRIMARY KEY, _AIYOpgmZ TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _NDgrXyZK.DB.exec(_OcDGKZEu);
                console.log("数据表创建成功。");
                _OpusIpaK = false;
                _ktRwDemf = _CZoMaGTh();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._JLvmrXFL}`, {
                    status: 500,
                    _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/html;_XyTIytLx=UTF-8' }
                });
            }
        } else {
             let _tFecBcaB = _ajhTPoqr(_NJVvVmQZ._JLvmrXFL);
             return new Response(_tFecBcaB, { _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/html;_XyTIytLx=UTF-8' } });
        }
    }
    if (_ktRwDemf.telegram.bot_token && _ktRwDemf.telegram.chat_id) {
        const _pAqitsqP = _EtEjWvZR.cf?._pAqitsqP || "未知";
        const _bDeHKFOU = _EtEjWvZR.cf?._bDeHKFOU || "";
        let _dxDsoREi = _ivetZRQh[_pAqitsqP] || _pAqitsqP;
        if (_bDeHKFOU && _bDeHKFOU !== "未知城市" && _bDeHKFOU !== _pAqitsqP) _dxDsoREi = `${_dxDsoREi} ${_ivetZRQh[_bDeHKFOU] || _bDeHKFOU}`;
        const _bEYCxDwd = _ehnkhBjK();
        const _FfwCeLzU = _EtEjWvZR._wZmkswDe;
        const _VhWMnkap = `访客: ${_DThfeFix}\n位置: ${_dxDsoREi.trim()}\n时间: ${_bEYCxDwd}\n来自:${_FfwCeLzU}`;
        const _kLQDbWMZ = `https://api.telegram.org/bot${_ktRwDemf.telegram.bot_token}/sendMessage?chat_id=${_ktRwDemf.telegram.chat_id}&_MXjXAlyi=${encodeURIComponent(_VhWMnkap)}`;
        _cJnBuvZi.waitUntil(fetch(_kLQDbWMZ).catch(_NJVvVmQZ => console.error("Telegram通知失败:", _NJVvVmQZ)));
    }
    let _KtmNOwnw = _UIAFRzQQ();
    const _rSUffGqW = {
        _Hdfgihox: _ktRwDemf,
        status: {
            _OpusIpaK: _OpusIpaK,
        }
    };
    _KtmNOwnw = _KtmNOwnw.replace('__PAGE_DATA_JSON__', JSON.stringify(_rSUffGqW));
    _KtmNOwnw = _KtmNOwnw.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_jQzxThmN));
    _KtmNOwnw = _KtmNOwnw.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_nEeQYEZS));
    _KtmNOwnw = _KtmNOwnw.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _KtmNOwnw = _KtmNOwnw.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_ivetZRQh));
    return new Response(_KtmNOwnw, {
        _oEdKaJbO: { 'Content-Type': '_MXjXAlyi/html;_XyTIytLx=UTF-8' },
    });
}

function _TJeoQGki(_szBftOCh, status = 200, _oEdKaJbO = {}) {
    return new Response(JSON.stringify(_szBftOCh), {
        status,
        _oEdKaJbO: { 'Content-Type': 'application/json;_XyTIytLx=UTF-8', ..._oEdKaJbO }
    });
}

function _ehnkhBjK(date = new Date()) {
    return new Intl.DateTimeFormat('zh-CN', {
        timeZone: 'Asia/Shanghai',
        year: 'numeric', month: '2-digit', day: '2-digit',
        hour: '2-digit', minute: '2-digit', second: '2-digit',
        hour12: false
    }).format(date);
}

function _DQyrbEjP(_qzLRgLCq) {
    if (!_qzLRgLCq || typeof _qzLRgLCq !== 'string') return "无效IP";
    if(_uKEuUoHP.isIPv4(_qzLRgLCq)){
        const _YAHFTDYz = _qzLRgLCq.split('.');
        if (_YAHFTDYz._Knfsavjs === 4) return `${_YAHFTDYz[0]}.*.*.${_YAHFTDYz[3]}`;
    }
    if(_uKEuUoHP.isIPv6(_qzLRgLCq)){
        const _YAHFTDYz = _qzLRgLCq.split(':');
        if (_YAHFTDYz._Knfsavjs > 2) return `${_YAHFTDYz[0]}:...:${_YAHFTDYz[_YAHFTDYz._Knfsavjs - 1]}`;
    }
    return _qzLRgLCq;
}

function _ajhTPoqr(_YxsngSun) {
    return `
    <!DOCTYPE html><html lang="zh-CN"><head><meta _XyTIytLx="UTF-8"><title>需要设置</title>
    <_ckaMOJze>
        _szBftOCh { font-family: sans-serif; background: #1a1a1a; _IZrtCKFs: #e0e0e0; display: flex; justify-_QMBPGvSQ: center; align-items: center; height: 100vh; margin: 0; }
        ._ervjXpaD { max-_JiLFkAOR: 800px; padding: 2rem; background: #25282e; border: 1px solid #4044c; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
        h1 { _IZrtCKFs: #00a0ff; border-bottom: 1px solid #40444c; padding-bottom: 0.5rem; }
        p { line-height: 1.6; }
        code { background: #1a1a1a; padding: 0.2em 0.4em; border-radius: 4px; font-family: monospace; white-space: pre-wrap; word-break: break-all; }
        .error { _IZrtCKFs: #da3633; background: rgba(218, 54, 51, 0.1); padding: 0.5rem; border-radius: 4px; margin-_DoGVEdQx: 1rem; }
    </_ckaMOJze>
    </head><_szBftOCh>
    <div class="_ervjXpaD">
        <h1>部署指南</h1>
        <p>系统检测到 D1 数据库绑定存在问题。请确保您已完成以下步骤:</p>
        <ol>
            <li>进入 Cloudflare Dashbord -> Workers & Pages -> D1。</li>
            <li>创建一个新的D1数据库 (如果还没有)。</li>
            <li>将此数据库绑定到您的Worker:
                <ul>
                    <li>进入Worker设置 -> 变量 -> D1数据库绑定。</li>
                    <li>变量名必须填写 <code>DB</code>。</li>
                    <li>选择您刚创建的数据库。</li>
                    <li>点击“保存并部署”。</li>
                </ul>
            </li>
        </ol>
        <p>完成以上步骤后,请刷新本页面。系统会自动为您创建所需的数据表。</p>
        ${_YxsngSun ? `<div class="error"><strong>当前错误信息:</strong> ${_YxsngSun.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</div>` : ''}
    </div>
    </_szBftOCh></html>`;
}

function _UIAFRzQQ() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _XyTIytLx="UTF-8"> <meta _KUnlBVda="viewport" _QMBPGvSQ="_JiLFkAOR=device-_JiLFkAOR, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_VRYjljnD href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;700&family=Roboto+Mono:wght@400;500&display=swap" rel="stylesheet"><script src="https://cdn.jsdelivr.net/npm/qrcode-generator/qrcode.js"></script>
  <_ckaMOJze>
  :root { --primary-_IZrtCKFs: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_IZrtCKFs: #8c939d; --light-bg: #1A1C20; --_QMBPGvSQ-bg: #25282E; --border-_IZrtCKFs: #40444C; --_MXjXAlyi-_IZrtCKFs: #E0E0E0; --_MXjXAlyi-light: #B0B0B0; --success-_IZrtCKFs: #30A46C; --danger-_IZrtCKFs: #DA3633; --warning-_IZrtCKFs: #DBAB0A; --border-radius-md: 8px; --border-radius-sm: 6px; --font-family-sans: 'Inter', 'Noto Sans SC', sans-serif; --font-family-mono: 'Roboto Mono', monospace; }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { font-size: 16px; }
  _szBftOCh { font-family: var(--font-family-sans); background-_IZrtCKFs: var(--light-bg); _IZrtCKFs: var(--_MXjXAlyi-_IZrtCKFs); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_IZrtCKFs 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_qDzcBvWZ { position: fixed; _DoGVEdQx: 0; _MutXFazO: 0; _JiLFkAOR: 100%; height: 100%; z-_MBIJBWBw: -1; display: none; }
  ._iFJDQtET-_ervjXpaD { max-_JiLFkAOR: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_MBIJBWBw: 1; }
  #_lqffCViL { position: fixed; _DoGVEdQx: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_MBIJBWBw: 10; }
  #marquee-_ervjXpaD { overflow: hidden; white-space: nowrap; background-_IZrtCKFs: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _IZrtCKFs: var(--primary-_IZrtCKFs); padding: 0.5rem 0; margin-_DoGVEdQx: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_MXjXAlyi { display: inline-block; padding-_MutXFazO: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _ORNxDIkI { _MXjXAlyi-align: center; margin-_DoGVEdQx: 1rem; margin-bottom: 2rem; }
  _ORNxDIkI h1 { white-space: pre-wrap; font-size: 2.25em; _IZrtCKFs: var(--primary-_IZrtCKFs); font-weight: 700; _MXjXAlyi-shadow: 0 0 10px rgba(var(--primary-_IZrtCKFs-rgb), 0.3); }
  .card { background-_IZrtCKFs: rgba(37, 40, 46, 0.85); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); border-radius: var(--border-radius-md); box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25); padding: 1.5rem; margin-bottom: 1.5rem; border: 1px solid var(--border-_IZrtCKFs); }
  .progress-section #_fNUYLEoO { _JiLFkAOR: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_IZrtCKFs: var(--border-_IZrtCKFs); overflow: hidden; }
  .progress-section #_fNUYLEoO::-webkit-progress-_UvOlDWmo { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _MXjXAlyi-align: center; margin-_DoGVEdQx: 0.75em; font-size: 0.95em; _IZrtCKFs: var(--_MXjXAlyi-light); min-height: 1.5em; }
  .section-_ORNxDIkI { display: flex; flex-wrap: wrap; justify-_QMBPGvSQ: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_IZrtCKFs); gap: 1rem; }
  .section-_ORNxDIkI h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _IZrtCKFs: var(--secondary-_IZrtCKFs); _MXjXAlyi-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _JiLFkAOR: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _JiLFkAOR: 100%; border-collapse: collapse; margin-_DoGVEdQx: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_IZrtCKFs); padding: 0.8em; _MXjXAlyi-align: _MutXFazO; vertical-align: middle; white-space: nowrap; }
  th { background-_IZrtCKFs: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_IZrtCKFs: #30333a; }
  td._qzLRgLCq-_rQmPGnJD { font-weight: 500; font-family: var(--font-family-mono); _IZrtCKFs: var(--primary-_IZrtCKFs); }
  td.ping-_UvOlDWmo { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _MXjXAlyi-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_QMBPGvSQ: center; font-weight: 500; _MXjXAlyi-align: center; cursor: pointer; user-_wmNqxUMB: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _IZrtCKFs: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_MutXFazO: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _IZrtCKFs: var(--primary-_IZrtCKFs); border: 1px solid var(--primary-_IZrtCKFs); }
  .btn-outline:hover { background-_IZrtCKFs: var(--primary-_IZrtCKFs); _IZrtCKFs: var(--_QMBPGvSQ-bg); }
  ._iFJDQtET-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._iFJDQtET-download-buttons .btn { _JiLFkAOR: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _DoGVEdQx: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _IZrtCKFs: #fff; font-size: 0.95em; z-_MBIJBWBw: 10002; box-shadow: 0 6px 15px rgba(0, 0, 0, 0.35); opacity: 0; transform: translateY(-20px); transition: all 0.3s ease; pointer-events: none; }
  .tooltip-notification.show { opacity: 1; transform: translateY(0); }
  #_tGpzPLBY, #_hBIOgFne, #_MjlruoQP, #_uOuCptXu, #_mIfDmIWV { display: none; position: fixed; z-_MBIJBWBw: 10000; _MutXFazO: 0; _DoGVEdQx: 0; _JiLFkAOR: 100%; height: 100%; background-_IZrtCKFs: rgba(0,0,0,0.6); justify-_QMBPGvSQ: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_QMBPGvSQ, ._iFJDQtET-modal-_QMBPGvSQ { background-_IZrtCKFs: var(--_QMBPGvSQ-bg); padding: 2rem; border: 1px solid var(--border-_IZrtCKFs); border-radius: var(--border-radius-md); _JiLFkAOR: 95%; max-_JiLFkAOR: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_uOuCptXu .modal-_QMBPGvSQ { max-_JiLFkAOR: 500px; }
  .modal-_QMBPGvSQ h3, ._iFJDQtET-modal-_ORNxDIkI h3 { margin-_DoGVEdQx: 0; margin-bottom: 1.5rem; _IZrtCKFs: var(--primary-_IZrtCKFs); _MXjXAlyi-align: center; }
  .modal-buttons { display: flex; justify-_QMBPGvSQ: flex-end; gap: 1rem; margin-_DoGVEdQx: 2rem; border-_DoGVEdQx: 1px solid var(--border-_IZrtCKFs); padding-_DoGVEdQx: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_IZrtCKFs), rgba(0,0,0,0)); margin: 2rem 0; }
  ._iFJDQtET-modal-_ORNxDIkI { display: flex; justify-_QMBPGvSQ: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_IZrtCKFs); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _IZrtCKFs: var(--_MXjXAlyi-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._iFJDQtET-list-_BejgsZFH { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_IZrtCKFs); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._iFJDQtET-_KUnlBVda { font-size: 1.1em; font-weight: 600; }
  ._iFJDQtET-links a { display: block; _IZrtCKFs: var(--primary-_IZrtCKFs); _MXjXAlyi-decoration: none; margin-_DoGVEdQx: 0.5rem; word-break: break-all; }
  ._iFJDQtET-links a:hover { _MXjXAlyi-decoration: underline; }
  ._iFJDQtET-links span { _IZrtCKFs: var(--_MXjXAlyi-light); }
  #visitorPasswordPrompt { _MXjXAlyi-align: center; }
  #visitorPasswordPrompt h3 { _IZrtCKFs: var(--primary-_IZrtCKFs); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _IZrtCKFs: var(--_MXjXAlyi-light); margin-bottom: 1.5rem; }
  ._yfvGfTPS-input-group { display: flex; gap: 10px; max-_JiLFkAOR: 400px; margin: 0 auto; }
  ._yfvGfTPS-input-group input { flex-grow: 1; _MXjXAlyi-align: center; }
  ._yfvGfTPS-input-group .btn { margin-_MutXFazO: 0; }
  ._VKkkHGfX-actions-_ervjXpaD { _MXjXAlyi-align: center; margin-bottom: 1.5rem; }
  ._VKkkHGfX-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._VKkkHGfX-api-buttons .btn { margin: 0; _JiLFkAOR: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_QMBPGvSQ 1fr; gap: 1.2rem 1rem; align-items: center; }
  .form-grid-label { justify-self: end; display: flex; align-items: center; gap: 8px; }
  .form-grid-control { display: flex; align-items: center; gap: 10px; }
  .form-grid-control-full { grid-column: 1 / -1; }
  .form-grid-control input, .form-grid-control _wmNqxUMB, .form-grid-control textarea { _JiLFkAOR: 100%; background-_IZrtCKFs: var(--light-bg); border: 1px solid var(--border-_IZrtCKFs); border-radius: var(--border-radius-sm); _IZrtCKFs: var(--_MXjXAlyi-_IZrtCKFs); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_IZrtCKFs 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _wmNqxUMB:focus, .form-grid-control textarea:focus { border-_IZrtCKFs: var(--primary-_IZrtCKFs); box-shadow: 0 0 0 2px rgba(var(--primary-_IZrtCKFs-rgb), 0.2); outline: none; }
  .form-grid-control input[_rxGDYwDa="_IZrtCKFs"] { min-_JiLFkAOR: auto; padding: 2px; _JiLFkAOR: 2.5em; height: 2.5em; }
  .form-grid-control input[_rxGDYwDa="checkbox"] { _JiLFkAOR: auto; flex-shrink: 0; height: 1.2em; _JiLFkAOR: 1.2em; }
  .form-grid-control ._RkDtYfqn-input { _JiLFkAOR: 80px; _MXjXAlyi-align: right; }
  .tooltip-_FLXiEFDT { display: inline-flex; _JiLFkAOR: 16px; height: 16px; align-items: center; justify-_QMBPGvSQ: center; background-_IZrtCKFs: var(--secondary-_IZrtCKFs); _IZrtCKFs: var(--_QMBPGvSQ-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_wmNqxUMB: none; }
  #tooltip-popup { position: fixed; background-_IZrtCKFs: #383c4a; _IZrtCKFs: #fff; padding: 10px 15px; border-radius: 6px; z-_MBIJBWBw: 10001; font-size: 0.85em; max-_JiLFkAOR: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_IZrtCKFs); pointer-events: none; }
  #custom-fields-_ervjXpaD .form-grid-control { gap: 5px; } #custom-fields-_ervjXpaD .form-grid-control input { flex: 1; }
  .parameter-_NiMrIxzm-_wsfWRNNb { border: 1px solid var(--border-_IZrtCKFs); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_NiMrIxzm-_ORNxDIkI { display: flex; justify-_QMBPGvSQ: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_NiMrIxzm-_ORNxDIkI input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_DoGVEdQx: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._MXjXAlyi-_IZrtCKFs-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _JiLFkAOR: 100%; }
  ._MXjXAlyi-_IZrtCKFs-grid input[_rxGDYwDa="_IZrtCKFs"] { grid-column: 1 / 2; }
  ._MXjXAlyi-_IZrtCKFs-grid input[_rxGDYwDa="_MXjXAlyi"], ._MXjXAlyi-_IZrtCKFs-grid textarea { grid-column: 2 / 3; }
  #_uOuCptXu .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_uOuCptXu .btn-group { display: flex; }
  #_uOuCptXu .sub-btn { flex-grow: 1; margin: 0; }
  #_uOuCptXu ._bJUWYSru-btn { flex-shrink: 0; margin-_MutXFazO: -1px; border-_DoGVEdQx-_MutXFazO-radius: 0; border-bottom-_MutXFazO-radius: 0; }
  #_mIfDmIWV .modal-_QMBPGvSQ { max-_JiLFkAOR: 300px; background: white; padding: 1rem; _MXjXAlyi-align: center; }
  #qrCodeImg { max-_JiLFkAOR: 100%; }
  @media (max-_JiLFkAOR: 768px) {
    html { font-size: 15px; } ._iFJDQtET-_ervjXpaD { padding: 0 0.8rem; } _ORNxDIkI { margin-_DoGVEdQx: 2.5rem; margin-bottom: 1.5rem; } #_lqffCViL { _DoGVEdQx: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_ckaMOJze>
  <_ckaMOJze _uaReJunx="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_QMBPGvSQ-bg: #FFFFFF; --border-_IZrtCKFs: #DCDFE6; --_MXjXAlyi-_IZrtCKFs: #303133; --_MXjXAlyi-light: #606266; }
  .theme-light .card { background-_IZrtCKFs: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_IZrtCKFs: #F5F7FA; }
  .theme-light tbody tr:hover { background-_IZrtCKFs: #ECF5FF; }
  .theme-matrix { --primary-_IZrtCKFs: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_QMBPGvSQ-bg: #0D0208; --border-_IZrtCKFs: #00FF41; --_MXjXAlyi-_IZrtCKFs: #00FF41; --_MXjXAlyi-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_IZrtCKFs: rgba(0, 20, 0, 0.7); _MXjXAlyi-shadow: 0 0 5px var(--primary-_IZrtCKFs); backdrop-filter: none; }
  .theme-matrix th { background-_IZrtCKFs: #000; }
  .theme-matrix tbody tr:hover { background-_IZrtCKFs: #010; }
  .theme-matrix .btn { _MXjXAlyi-shadow: none; _IZrtCKFs: #000; }
  .theme-matrix .btn-outline { background-_IZrtCKFs: transparent; }
  .theme-modern-glass { --primary-_IZrtCKFs: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_QMBPGvSQ-bg: rgba(30, 30, 40, 0.6); --border-_IZrtCKFs: rgba(255, 255, 255, 0.2); --_MXjXAlyi-_IZrtCKFs: #F0F0F0; --_MXjXAlyi-light: #A0A0B0; --border-radius-md: 12px; }
  _szBftOCh.theme-modern-glass { background: linear-gradient(-45deg, #000428, #004e92, #1CB5E0, #23D5AB); background-size: 400% 400%; animation: gradientBG 15s ease infinite; }
  @keyframes gradientBG { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
  .theme-particles-glass { --primary-_IZrtCKFs: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_QMBPGvSQ-bg: rgba(30, 30, 40, 0.6); --border-_IZrtCKFs: rgba(255, 255, 255, 0.2); --_MXjXAlyi-_IZrtCKFs: #F0F0F0; --_MXjXAlyi-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_IZrtCKFs: var(--_QMBPGvSQ-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_IZrtCKFs); }
  .glassy-components .btn { background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid rgba(255, 255, 255, 0.2); border-bottom-_IZrtCKFs: rgba(0,0,0,0.3); border-right-_IZrtCKFs: rgba(0,0,0,0.3); box-shadow: 0 4px 15px rgba(0,0,0,0.2), inset 0 1px 1px rgba(255,255,255,0.1); _MXjXAlyi-shadow: 0 1px 2px rgba(0,0,0,0.2); _IZrtCKFs: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_IZrtCKFs: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _MXjXAlyi-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_IZrtCKFs); border-_IZrtCKFs: var(--primary-_IZrtCKFs); _IZrtCKFs: #fff; }
  .glassy-components _ORNxDIkI h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _MXjXAlyi; -webkit-_MXjXAlyi-fill-_IZrtCKFs: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _IZrtCKFs: transparent; }
  .theme-aurora-glass { --primary-_IZrtCKFs: #38bdf8; --light-bg: #0c0a09; --_QMBPGvSQ-bg: rgba(23, 23, 23, 0.5); --border-_IZrtCKFs: rgba(255, 255, 255, 0.15); --_MXjXAlyi-_IZrtCKFs: #f2f2f2; --_MXjXAlyi-light: #a3a3a3; }
  _szBftOCh.theme-aurora-glass::before { _QMBPGvSQ: ''; position: fixed; _DoGVEdQx: 0; _MutXFazO: 0; _JiLFkAOR: 100%; height: 100%; z-_MBIJBWBw: -2; background: radial-gradient(at 27% 37%, hsla(215, 98%, 61%, 0.4) 0px, transparent 50%), radial-gradient(at 97% 21%, hsla(125, 98%, 72%, 0.2) 0px, transparent 50%), radial-gradient(at 52% 99%, hsla(355, 98%, 76%, 0.3) 0px, transparent 50%), radial-gradient(at 10% 29%, hsla(256, 96%, 68%, 0.3) 0px, transparent 50%), radial-gradient(at 97% 96%, hsla(38, 60%, 74%, 0.2) 0px, transparent 50%), radial-gradient(at 33% 50%, hsla(222, 67%, 73%, 0.3) 0px, transparent 50%), radial-gradient(at 79% 53%, hsla(343, 68%, 73%, 0.2) 0px, transparent 50%); animation: auroraBG 20s ease-in-out infinite alternate; }
  @keyframes auroraBG { from { transform: scale(1); } to { transform: scale(1.5); } }
  .theme-cyberpunk-glass { --primary-_IZrtCKFs: #08fdd8; --light-bg: #010409; --_QMBPGvSQ-bg: rgba(22, 27, 34, 0.6); --border-_IZrtCKFs: rgba(139, 148, 158, 0.3); --_MXjXAlyi-_IZrtCKFs: #e6edf3; --_MXjXAlyi-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_IZrtCKFs), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_IZrtCKFs-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_IZrtCKFs-rgb), 0.5); }
  .theme-marble-light { --primary-_IZrtCKFs: #bfa37c; --light-bg: #f7f5f2; --_QMBPGvSQ-bg: #ffffff; --border-_IZrtCKFs: #e0dcd5; --_MXjXAlyi-_IZrtCKFs: #3d3a36; --_MXjXAlyi-light: #6b6661; }
  _szBftOCh.theme-marble-light { background-image: _wZmkswDe('_AIYOpgmZ:image/svg+xml,%3Csvg _JiLFkAOR="60" height="60" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg fill="%23dcd6ca" fill-opacity="0.2"%3E%3Cpath d="M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E'); }
  .theme-marble-light .card { background-_IZrtCKFs: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_ckaMOJze>
  </head><_szBftOCh _uaReJunx="pageBody">
  <_qDzcBvWZ _uaReJunx="background-_qDzcBvWZ"></_qDzcBvWZ>
  <div _uaReJunx="_tGpzPLBY">
      <div class="modal-_QMBPGvSQ">
          <h3>首次使用 - 请设置管理员密码</h3>
          <p>这是您第一次访问本页面,为了保护您的设置,请创建一个管理员密码。</p>
          <div class="form-grid"><div class="form-grid-label"><label for="initialPassword">新密码 (至少6位)</label></div><div class="form-grid-control"><input _rxGDYwDa="_yfvGfTPS" _uaReJunx="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _rxGDYwDa="_yfvGfTPS" _uaReJunx="confirmPassword"></div></div>
          <div class="modal-buttons"><button _uaReJunx="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_iFJDQtET-_ervjXpaD">
    <button _uaReJunx="_lqffCViL" class="btn btn-outline"></button>
    <div _uaReJunx="marquee-_ervjXpaD"><div _uaReJunx="marquee-_MXjXAlyi"></div></div>
    <_ORNxDIkI><h1 _uaReJunx="pageTitle"></h1></_ORNxDIkI>
    <div class="card" _uaReJunx="visitorPasswordPrompt" _ckaMOJze="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_yfvGfTPS-input-group">
            <input _rxGDYwDa="_yfvGfTPS" _uaReJunx="visitorPasswordEntry" _JRjWQUTT="访客密码">
            <button _uaReJunx="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _uaReJunx="_fwckTyZW" _ckaMOJze="display: block;">
        <div class="card progress-section">
            <div _uaReJunx="progressDisplay">
                <progress _uaReJunx="_fNUYLEoO" _UvOlDWmo="0" max="100"></progress>
                <div _uaReJunx="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _iFJDQtET-download-section">
          <div class="section-_ORNxDIkI"><h2 _uaReJunx="appDownloadTitleEl"></h2></div>
          <div class="_iFJDQtET-download-buttons">
            <button class="btn" _AIYOpgmZ-_QSXYkuqt="android">安卓客户端</button>
            <button class="btn" _AIYOpgmZ-_QSXYkuqt="ios">苹果客户端</button>
            <button class="btn" _AIYOpgmZ-_QSXYkuqt="windows">Windows客户端</button>
            <button class="btn" _AIYOpgmZ-_QSXYkuqt="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _VKkkHGfX-section" _uaReJunx="_navIZNNF" _ckaMOJze="display:none;">
          <div class="section-_ORNxDIkI">
            <h2 _uaReJunx="liveTitleEl"></h2>
            <div class="generator-info" _uaReJunx="liveGeneratorInfo"></div>
          </div>
          <div _uaReJunx="_PRNwAVct" class="_VKkkHGfX-actions-_ervjXpaD" _ckaMOJze="display: none;">
             <div class="_VKkkHGfX-api-buttons">
                <button _uaReJunx="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _uaReJunx="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _uaReJunx="resultsTable">
              <thead><tr><th _uaReJunx="tableHeader1El"></th><th _uaReJunx="tableHeader2El"></th><th _uaReJunx="tableHeader3El"></th><th _uaReJunx="tableHeader4El"></th><th _uaReJunx="tableHeader5El"></th><th _uaReJunx="tableHeader6El"></th><th _uaReJunx="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _uaReJunx="_jbPPtvAs" _ckaMOJze="display:none;">
          <div class="section-_ORNxDIkI"><h2 _uaReJunx="cachedTitleEl"></h2><div class="generator-info" _uaReJunx="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _uaReJunx="cachedResultsTable">
              <thead><tr><th _uaReJunx="cachedTableHeader1El"></th><th _uaReJunx="cachedTableHeader2El"></th><th _uaReJunx="cachedTableHeader3El"></th><th _uaReJunx="cachedTableHeader4El"></th><th _uaReJunx="cachedTableHeader5El"></th><th _uaReJunx="cachedTableHeader6El"></th><th _uaReJunx="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _uaReJunx="notificationTooltip" class="tooltip-notification"></div>
  <div _uaReJunx="_hBIOgFne">
    <div class="modal-_QMBPGvSQ">
      <h3>修改参数</h3>
      <div _ckaMOJze="display: flex; border-bottom: 1px solid var(--border-_IZrtCKFs); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_chYHAqXA(event, 'general-_PgSgFZGH')">通用设置</button>
          <button class="tab-button" onclick="_chYHAqXA(event, '_VRYjljnD-_PgSgFZGH')">链接设置</button>
          <button class="tab-button" onclick="_chYHAqXA(event, 'fine-grained-_PgSgFZGH')">IP源设置</button>
          <button class="tab-button" onclick="_chYHAqXA(event, 'advanced-_PgSgFZGH')">高级设置</button>
      </div>
      <div _uaReJunx="general-_PgSgFZGH" class="tab-_QMBPGvSQ" _ckaMOJze="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_wmNqxUMB _uaReJunx="themeSelect">
                    <_igYpMgQq _UvOlDWmo="theme-aurora-glass">极光-玻璃质感</_igYpMgQq>
                    <_igYpMgQq _UvOlDWmo="theme-particles-glass">粒子-玻璃质感</_igYpMgQq>
                    <_igYpMgQq _UvOlDWmo="theme-modern-glass">现代-玻璃质感</_igYpMgQq>
                    <_igYpMgQq _UvOlDWmo="theme-cyberpunk-glass">赛博朋克-玻璃质感</_igYpMgQq>
                    <_igYpMgQq _UvOlDWmo="theme-dark-particles">暗色-粒子背景</_igYpMgQq>
                    <_igYpMgQq _UvOlDWmo="theme-dark-bing">暗色-必应壁纸</_igYpMgQq>
                    <_igYpMgQq _UvOlDWmo="theme-light">亮色-简约</_igYpMgQq>
                    <_igYpMgQq _UvOlDWmo="theme-light-bing">亮色-必应壁纸</_igYpMgQq>
                    <_igYpMgQq _UvOlDWmo="theme-marble-light">简约大理石-亮色</_igYpMgQq>
                    <_igYpMgQq _UvOlDWmo="theme-matrix">矩阵-代码雨</_igYpMgQq>
                </_wmNqxUMB>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _rxGDYwDa="_IZrtCKFs" _uaReJunx="primaryColorInput">
                <span _ckaMOJze="_JiLFkAOR: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _rxGDYwDa="_IZrtCKFs" _uaReJunx="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ckaMOJze="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _ckaMOJze="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_MXjXAlyi-_IZrtCKFs-grid"><input _rxGDYwDa="_IZrtCKFs" _uaReJunx="colorInput_title"><textarea _uaReJunx="textInput_title" _iFVTUpgL="1" _JRjWQUTT="页面主标题"></textarea></div>
                <div class="_MXjXAlyi-_IZrtCKFs-grid"><input _rxGDYwDa="_IZrtCKFs" _uaReJunx="colorInput_loginButton"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="textInput_loginButton" _JRjWQUTT="登录按钮文本"></div>
                <div class="_MXjXAlyi-_IZrtCKFs-grid"><input _rxGDYwDa="_IZrtCKFs" _uaReJunx="colorInput_appDownloadTitle"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="textInput_appDownloadTitle" _JRjWQUTT="APP下载标题"></div>
                <div class="_MXjXAlyi-_IZrtCKFs-grid"><input _rxGDYwDa="_IZrtCKFs" _uaReJunx="colorInput_liveTitle"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="textInput_liveTitle" _JRjWQUTT="本次结果标题"></div>
                <div class="_MXjXAlyi-_IZrtCKFs-grid"><input _rxGDYwDa="_IZrtCKFs" _uaReJunx="colorInput_cachedTitle"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="textInput_cachedTitle" _JRjWQUTT="上次结果标题"></div>
                <div class="_MXjXAlyi-_IZrtCKFs-grid"><input _rxGDYwDa="_IZrtCKFs" _uaReJunx="colorInput_tableHeader"><input _rxGDYwDa="_MXjXAlyi" _UvOlDWmo="表格头部文本颜色" readonly _ckaMOJze="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ckaMOJze="align-self: start;"><label>公告栏设置</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _ckaMOJze="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _uaReJunx="announcementText" _JRjWQUTT="在此输入公告内容" _iFVTUpgL="3"></textarea>
                 <div _ckaMOJze="display: flex; justify-_QMBPGvSQ: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _ckaMOJze="display: flex; align-items: center; gap: 5px;"><input _rxGDYwDa="checkbox" _uaReJunx="enableMarquee"> 顶部走马灯</label>
                    <label _ckaMOJze="display: flex; align-items: center; gap: 5px;"><input _rxGDYwDa="checkbox" _uaReJunx="enablePopup"> 右上角弹窗</label>
                    <div _uaReJunx="popupDurationContainer" _ckaMOJze="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _rxGDYwDa="number" _uaReJunx="popupDuration" _ckaMOJze="_JiLFkAOR: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _uaReJunx="_VRYjljnD-_PgSgFZGH" class="tab-_QMBPGvSQ">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="converterServiceUrlInput" _JRjWQUTT="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _rxGDYwDa="number" _uaReJunx="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _ckaMOJze="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _uaReJunx="subscriptionIdCharset" _iFVTUpgL="3"></textarea></div>
          <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
          <div class="form-grid-label"><label for="enableItemLinkCheckbox">启用"复制节点链接"按钮</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _ckaMOJze="justify-_QMBPGvSQ: flex-start;"><input _rxGDYwDa="checkbox" _uaReJunx="enableItemLinkCheckbox"></div>
        </div>
        <div _uaReJunx="itemLinkConfigGroup" _ckaMOJze="display:none; margin-_DoGVEdQx: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _ckaMOJze="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="定义分享链接格式。可用占位符: {_qzLRgLCq}, {_jOiLzzNd}, {_KUnlBVda}, {rank}, {_IiaMOgFA}, {_feoQuiHi}, {_nnBiMyYE}, {_aCXrZhTp}, {_LvlDjuHz}。">?</span></div>
              <div class="form-grid-control"><textarea _uaReJunx="itemLinkTemplateInput" _iFVTUpgL="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_wmNqxUMB _uaReJunx="parameterSelectionMode"></_wmNqxUMB></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _uaReJunx="parameter-sets-_ervjXpaD"></div><button _rxGDYwDa="button" _uaReJunx="add-parameter-_NiMrIxzm-btn" class="btn btn-outline" _ckaMOJze="margin-_DoGVEdQx: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _ckaMOJze="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _uaReJunx="custom-fields-_ervjXpaD" _ckaMOJze="_JiLFkAOR: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _ckaMOJze="justify-_QMBPGvSQ: flex-start;"><button _rxGDYwDa="button" _uaReJunx="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _uaReJunx="fine-grained-_PgSgFZGH" class="tab-_QMBPGvSQ">
          <div class="form-grid-label" _ckaMOJze="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _ckaMOJze="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_QMBPGvSQ: flex-start;">
              <label><input _rxGDYwDa="checkbox" _uaReJunx="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _rxGDYwDa="checkbox" _uaReJunx="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _uaReJunx="fine-grained-sources-_ervjXpaD"></div><button _rxGDYwDa="button" _uaReJunx="add-fine-grained-_GFMsYkak-btn" class="btn btn-outline" _ckaMOJze="margin-_DoGVEdQx: 10px;">添加地区</button></div>
      </div>
      <div _uaReJunx="advanced-_PgSgFZGH" class="tab-_QMBPGvSQ">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _rxGDYwDa="checkbox" _uaReJunx="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _uaReJunx="resolvedDomainsGroup" _ckaMOJze="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _uaReJunx="resolvedDomainsInput" _JRjWQUTT="留空则使用内置默认域名" _iFVTUpgL="3"></textarea></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableCustomNodesCheckbox">启用自定义节点</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _rxGDYwDa="checkbox" _uaReJunx="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _uaReJunx="customNodesGroup" _ckaMOJze="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _uaReJunx="customNodesInput" _JRjWQUTT="一行一个地址,支持域名、IPv4、IPv6。" _iFVTUpgL="3"></textarea></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="sampleSizeInput">测试IP总数</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _rxGDYwDa="number" _uaReJunx="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _rxGDYwDa="number" _uaReJunx="topNInput"></div>
            <div class="form-grid-label" _ckaMOJze="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _ckaMOJze="display: none;"><input _rxGDYwDa="number" _uaReJunx="latencyRangeMinInput" _JRjWQUTT="最小"><span>-</span><input _rxGDYwDa="number" _uaReJunx="latencyRangeMaxInput" _JRjWQUTT="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _ckaMOJze="justify-_QMBPGvSQ: flex-start;"><input _rxGDYwDa="checkbox" _uaReJunx="enableIspFilterCheckbox"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="geoLocationRetriesInput">归属地查询失败复查</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _rxGDYwDa="number" _uaReJunx="geoLocationRetriesInput" _ckaMOJze="_JiLFkAOR: 80px;"> <span>次</span>
                <div _ckaMOJze="display: flex; align-items: center; gap: 5px; margin-_MutXFazO: 20px;">
                    <input _rxGDYwDa="checkbox" _uaReJunx="filterUnknownGeoCheckbox">
                    <label for="filterUnknownGeoCheckbox">过滤未知归属地IP</label>
                </div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="universalFallbackAddressInput">备用地址 (上游)</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_nnBiMyYE:_jOiLzzNd' 或 '_nnBiMyYE'。">?</span></div>
            <div class="form-grid-control"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="universalFallbackAddressInput"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableWebsocketStreamerCheckbox">启用 Websocket 转发</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _ckaMOJze="justify-_QMBPGvSQ: flex-start;"><input _rxGDYwDa="checkbox" _uaReJunx="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _uaReJunx="websocketStreamerGroup" _ckaMOJze="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="websocketStreamerUrlInput"></div>
                </div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableStreamerCheckbox">启用内置内容加速</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _ckaMOJze="justify-_QMBPGvSQ: flex-start;"><input _rxGDYwDa="checkbox" _uaReJunx="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="启用 /_qzLRgLCq 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _ckaMOJze="justify-_QMBPGvSQ: flex-start;"><input _rxGDYwDa="checkbox" _uaReJunx="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _uaReJunx="apiConfigGroup" _ckaMOJze="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="apiMessageInput"></div></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableCustomSubPathCheckbox">启用自定义订阅路径</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _ckaMOJze="justify-_QMBPGvSQ: flex-start;"><input _rxGDYwDa="checkbox" _uaReJunx="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _uaReJunx="customSubPathGroup" _ckaMOJze="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="customSubPathInput" _JRjWQUTT="例如: latest"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableVisitorPasswordCheckbox">启用访客密码</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _ckaMOJze="justify-_QMBPGvSQ: flex-start;"><input _rxGDYwDa="checkbox" _uaReJunx="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _uaReJunx="visitorPasswordGroup" _ckaMOJze="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ckaMOJze="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_FLXiEFDT" _AIYOpgmZ-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _ckaMOJze="flex-direction: column; align-items: stretch; gap: 8px;"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="botTokenInput" _JRjWQUTT="Telegram Bot Token"><input _rxGDYwDa="_MXjXAlyi" _uaReJunx="chatIdInput" _JRjWQUTT="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ckaMOJze="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _ckaMOJze="flex-direction: column; align-items: stretch; gap: 8px;"><input _rxGDYwDa="_yfvGfTPS" _uaReJunx="oldPasswordInput" _JRjWQUTT="旧密码"><input _rxGDYwDa="_yfvGfTPS" _uaReJunx="newPasswordInput" _JRjWQUTT="新密码 (至少6位)"><button _uaReJunx="changePasswordBtn" class="btn" _ckaMOJze="align-self: flex-start; margin-_MutXFazO: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _uaReJunx="closeModalBtn" class="btn btn-outline">关闭</button><button _uaReJunx="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _uaReJunx="_MjlruoQP">
      <div class="_iFJDQtET-modal-_QMBPGvSQ">
          <div class="_iFJDQtET-modal-_ORNxDIkI"><h3 _uaReJunx="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_iFJDQtET-modal-_szBftOCh" _uaReJunx="appModalBody"></div>
      </div>
  </div>
  <div _uaReJunx="_uOuCptXu">
      <div class="modal-_QMBPGvSQ">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _AIYOpgmZ-sub-_rxGDYwDa="coreEngine">Xray</button><button class="btn _bJUWYSru-btn" _AIYOpgmZ-sub-_rxGDYwDa="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _AIYOpgmZ-sub-_rxGDYwDa="coreProfile">Sing-Box</button><button class="btn _bJUWYSru-btn" _AIYOpgmZ-sub-_rxGDYwDa="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _AIYOpgmZ-sub-_rxGDYwDa="configProfile">Clash</button><button class="btn _bJUWYSru-btn" _AIYOpgmZ-sub-_rxGDYwDa="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _AIYOpgmZ-sub-_rxGDYwDa="policyProfile">Surge</button><button class="btn _bJUWYSru-btn" _AIYOpgmZ-sub-_rxGDYwDa="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _ckaMOJze="justify-_QMBPGvSQ: center;"><button class="btn btn-outline" _uaReJunx="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _uaReJunx="_mIfDmIWV">
      <div class="modal-_QMBPGvSQ">
          <img _uaReJunx="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _uKEuUoHP = {
        isValid: (_qzLRgLCq) => _uKEuUoHP.isIPv4(_qzLRgLCq) || _uKEuUoHP.isIPv6(_qzLRgLCq),
        isIPv4: (_qzLRgLCq) => {
            if (typeof _qzLRgLCq !== 'string') return false;
            const _YAHFTDYz = _qzLRgLCq.split('.');
            if (_YAHFTDYz._Knfsavjs !== 4) return false;
            return _YAHFTDYz.every(_TZvkllzq => {
                const _iJKfSQRI = parseInt(_TZvkllzq, 10);
                return !isNaN(_iJKfSQRI) && _iJKfSQRI >= 0 && _iJKfSQRI <= 255 && String(_iJKfSQRI) === _TZvkllzq;
            });
        },
        isIPv6: (_qzLRgLCq) => {
            if (typeof _qzLRgLCq !== 'string') return false;
            return /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/_uzXZZcQB.test(_qzLRgLCq);
        },
        toLong4: (_qzLRgLCq) => _qzLRgLCq.split('.').reduce((acc, octet, _uzXZZcQB) => acc + (parseInt(octet) << (8*(3-_uzXZZcQB))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_qzLRgLCq) => {
            try {
                const _NZEeBtnJ = _qzLRgLCq.split('/')[0];
                const _YAHFTDYz = _NZEeBtnJ.split('::');
                if (_YAHFTDYz._Knfsavjs > 2) return 0n;
                let _tbIktcSs = [];
                if (_YAHFTDYz[0]) {
                    _tbIktcSs = _YAHFTDYz[0].split(':');
                }
                let _GprIIVPH = [];
                if (_YAHFTDYz._Knfsavjs > 1 && _YAHFTDYz[1]) {
                    _GprIIVPH = _YAHFTDYz[1].split(':');
                }
                if (_tbIktcSs._Knfsavjs + _GprIIVPH._Knfsavjs > 8) return 0n;
                const _jguRwNoY = 8 - (_tbIktcSs._Knfsavjs + _GprIIVPH._Knfsavjs);
                const _ntorhbtM = [
                    ..._tbIktcSs,
                    ...Array(_jguRwNoY).fill('0'),
                    ..._GprIIVPH
                ].map(_TZvkllzq => _TZvkllzq || '0');
                while(_ntorhbtM._Knfsavjs < 8) {
                    _ntorhbtM.push('0');
                }
                let _RbynEJyK = 0n;
                for (const _TZvkllzq of _ntorhbtM) {
                    if (_TZvkllzq._Knfsavjs > 4) return 0n;
                    const _UvOlDWmo = BigInt('0x' + _TZvkllzq);
                    _RbynEJyK = (_RbynEJyK << 16n) | _UvOlDWmo;
                }
                return _RbynEJyK;
            } catch(_NJVvVmQZ) {
                return 0n;
            }
        },
        fromBigInt6: (_RbynEJyK) => {
            if (typeof _RbynEJyK !== '_RbynEJyK' || _RbynEJyK < 0n) return null;
            const _YAHFTDYz = [];
            for (let _uzXZZcQB = 0; _uzXZZcQB < 8; _uzXZZcQB++) {
                _YAHFTDYz.unshift((_RbynEJyK & 0xFFFFn).toString(16));
                _RbynEJyK >>= 16n;
            }
            let _xBJyYFtU = { start: -1, _DlUnpBRx: 0 };
            let _LGZAlSsJ = { start: -1, _DlUnpBRx: 0 };
            for (let _uzXZZcQB = 0; _uzXZZcQB < 8; _uzXZZcQB++) {
                if (_YAHFTDYz[_uzXZZcQB] === '0') {
                    if (_LGZAlSsJ.start === -1) _LGZAlSsJ.start = _uzXZZcQB;
                    _LGZAlSsJ._DlUnpBRx++;
                } else {
                    if (_LGZAlSsJ._DlUnpBRx > _xBJyYFtU._DlUnpBRx) _xBJyYFtU = { ..._LGZAlSsJ };
                    _LGZAlSsJ = { start: -1, _DlUnpBRx: 0 };
                }
            }
            if (_LGZAlSsJ._DlUnpBRx > _xBJyYFtU._DlUnpBRx) _xBJyYFtU = { ..._LGZAlSsJ };
            if (_xBJyYFtU._DlUnpBRx > 1) {
                _YAHFTDYz.splice(_xBJyYFtU.start, _xBJyYFtU._DlUnpBRx, '');
                if (_xBJyYFtU.start === 0) _YAHFTDYz.unshift('');
                if (_xBJyYFtU.start + _xBJyYFtU._DlUnpBRx === 8) _YAHFTDYz.push('');
            }
            return _YAHFTDYz.join(':');
        },
        cidrToRange: (cidr, _aAaSImaY = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _KLwDTVMg = parseInt(bitsStr, 10);
                const _quxcwQyk = new Set();
                if (_uKEuUoHP.isIPv4(range)) {
                    if (isNaN(_KLwDTVMg) || _KLwDTVMg < 8 || _KLwDTVMg > 32) return [];
                    if (_KLwDTVMg === 32) return [range];
                    const _RKmYWDpp = _uKEuUoHP.toLong4(range);
                    const _bBTlXtrv = (0xFFFFFFFF << (32 - _KLwDTVMg)) >>> 0;
                    const _fKtKMJWo = _RKmYWDpp & _bBTlXtrv;
                    const _fuXAVPDd = 1 << (32 - _KLwDTVMg);
                    if (_fuXAVPDd <= 2) return [];
                    const _RzZdrhjY = Math.min(_aAaSImaY, _fuXAVPDd - 2);
                    let _VAXcfloz = 0;
                    while (_quxcwQyk.size < _RzZdrhjY && _VAXcfloz < _RzZdrhjY * 5) {
                        const _LIxzUeOL = Math.floor(Math.random() * (_fuXAVPDd - 2)) + 1;
                        _quxcwQyk.add(_uKEuUoHP.fromLong4((_fKtKMJWo + _LIxzUeOL) >>> 0));
                        _VAXcfloz++;
                    }
                    return Array.from(_quxcwQyk);
                } else if (_uKEuUoHP.isIPv6(range)) {
                    if (isNaN(_KLwDTVMg) || _KLwDTVMg < 16 || _KLwDTVMg > 128) return [];
                    if (_KLwDTVMg === 128) return [range];
                    const _qkReFfhc = _uKEuUoHP.toBigInt6(range);
                    const _bBTlXtrv = (2n ** BigInt(128 - _KLwDTVMg) - 1n);
                    const _fKtKMJWo = _qkReFfhc & ~_bBTlXtrv;
                    const _TmJsAhEd = 2n ** BigInt(128 - _KLwDTVMg);
                    if (_TmJsAhEd <= 2n) return [];
                    let _VAXcfloz = 0;
                    while (_quxcwQyk.size < _aAaSImaY && _VAXcfloz < _aAaSImaY * 5) {
                        const _KYCCOpPC = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_KYCCOpPC);
                        let _JxmTPhRx = 0n;
                        for (const _RUhzKNnU of _KYCCOpPC) {
                            _JxmTPhRx = (_JxmTPhRx << 8n) | BigInt(_RUhzKNnU);
                        }
                        const _LIxzUeOL = _JxmTPhRx % (_TmJsAhEd - 2n) + 1n;
                        _quxcwQyk.add(_uKEuUoHP.fromBigInt6(_fKtKMJWo + _LIxzUeOL));
                        _VAXcfloz++;
                    }
                    return Array.from(_quxcwQyk);
                }
                return [];
            } catch(_NJVvVmQZ) {
                console.error(`CIDR to range failed for ${cidr}:`, _NJVvVmQZ);
                return [];
            }
        }
    };
    function _OiknlZAe(_yIqaIOjS, _NPVdMEqw) {
        const _OeKppMqv = {};
        const _ppcMzqSw = Object._ppcMzqSw(_NPVdMEqw);
        const _YAHFTDYz = _ppcMzqSw.map(_ReuDzuWp => {
            const _QefYlasY = _yIqaIOjS * (_NPVdMEqw[_ReuDzuWp] / 100);
            return { _ReuDzuWp, _aAaSImaY: Math.floor(_QefYlasY), remainder: _QefYlasY - Math.floor(_QefYlasY) };
        });
        let _RIZyykwE = _YAHFTDYz.reduce((acc, _TZvkllzq) => acc + _TZvkllzq._aAaSImaY, 0);
        _YAHFTDYz.sort((a, b) => b.remainder - a.remainder);
        let _orGHqhYq = _yIqaIOjS - _RIZyykwE;
        for (let _uzXZZcQB = 0; _uzXZZcQB < _orGHqhYq; _uzXZZcQB++) {
            _YAHFTDYz[_uzXZZcQB % _YAHFTDYz._Knfsavjs]._aAaSImaY++;
        }
        for (const _TZvkllzq of _YAHFTDYz) {
            _OeKppMqv[_TZvkllzq._ReuDzuWp] = _TZvkllzq._aAaSImaY;
        }
        return _OeKppMqv;
    }
    const _rSUffGqW = __PAGE_DATA_JSON__;
    const _ktRwDemf = _rSUffGqW._Hdfgihox;
    const _UKPEaclg = _rSUffGqW.status;
    const _jQzxThmN = __ALL_CF_CIDR_LIST_JSON__;
    const _nEeQYEZS = __BALANCED_CF_CIDR_LIST_JSON__;
    const _mpECroJP = __DEFAULT_DOMAINS_LIST_JSON__;
    const _ivetZRQh = __COUNTRY_MAP_JSON__;
    const _ZLyiOLGh = _ivetZRQh;
    const _TuhKEmKJ = 2500;
    const _oKimFMsL = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _fwckTyZW = document.getElementById('_fwckTyZW');
    const _fNUYLEoO = document.getElementById('_fNUYLEoO');
    const _mNfJDqIL = document.getElementById('status');
    const _navIZNNF = document.getElementById('_navIZNNF');
    const _EYZooORW = document.getElementById('resultsTable').querySelector('tbody');
    const _jbPPtvAs = document.getElementById('_jbPPtvAs');
    const _WnkhjNyc = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _AMDjQZfi = document.getElementById('notificationTooltip');
    const _lqffCViL = document.getElementById('_lqffCViL');
    const _hBIOgFne = document.getElementById('_hBIOgFne');
    const _MjlruoQP = document.getElementById('_MjlruoQP');
    const _uOuCptXu = document.getElementById('_uOuCptXu');
    const _mIfDmIWV = document.getElementById('_mIfDmIWV');
    const _tGpzPLBY = document.getElementById('_tGpzPLBY');
    const _PRNwAVct = document.getElementById('_PRNwAVct');
    let _NDfRiCzd = null;
    let _wFIjobin = null;
    let _tDxoEbBh = [];
    let _cwGGkcIz = false;
    let _bueZGSLE = null;
    function _VvnNCKEm(_mRbFdpSf, _MhtGwsVY) {
        const _zwckWAlN=parseInt(_mRbFdpSf.slice(1),16),t=_MhtGwsVY<0?0:255,p=_MhtGwsVY<0?_MhtGwsVY*-1:_MhtGwsVY,R=_zwckWAlN>>16,G=_zwckWAlN>>8&0x00FF,B=_zwckWAlN&0x0000FF;
        const _IncyEZDw = Math.round((t-R)*p)+R;
        const _PxwAWMBV = Math.round((t-G)*p)+G;
        const _KBBbjlwx = Math.round((t-B)*p)+B;
        return `rgb(${_IncyEZDw.toString()}, ${_PxwAWMBV.toString()}, ${_KBBbjlwx.toString()})`;
    }
    function _zCgtYwUk(_PgSgFZGH) {
        const _hSCjGoiK = _NaryoNto(_PgSgFZGH.primaryColor);
        if(_hSCjGoiK) {
            document.documentElement._ckaMOJze.setProperty('--primary-_IZrtCKFs-rgb', `${_hSCjGoiK.r},${_hSCjGoiK.g},${_hSCjGoiK.b}`);
        }
        document.documentElement._ckaMOJze.setProperty('--primary-_IZrtCKFs', _PgSgFZGH.primaryColor);
        document.documentElement._ckaMOJze.setProperty('--primary-hover', _VvnNCKEm(_PgSgFZGH.primaryColor, -0.1));
        document.documentElement._ckaMOJze.setProperty('--primary-gradient-start', _VvnNCKEm(_PgSgFZGH.primaryColor, 0.1));
        document.documentElement._ckaMOJze.setProperty('--primary-gradient-end', _VvnNCKEm(_PgSgFZGH.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _PgSgFZGH.texts.title;
        document.title = _PgSgFZGH.texts.title;
        _lqffCViL.innerText = _NDfRiCzd ? _PgSgFZGH.texts.loginButtonSuccess : _PgSgFZGH.texts.loginButton;
        _lqffCViL._ckaMOJze._IZrtCKFs = _PgSgFZGH.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _PgSgFZGH.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _PgSgFZGH.texts.liveTitle;
        document.getElementById('liveTitleEl')._ckaMOJze._IZrtCKFs = _PgSgFZGH.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _PgSgFZGH.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._ckaMOJze._IZrtCKFs = _PgSgFZGH.colors.cachedTitle;
        const _oEdKaJbO = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _oEdKaJbO.forEach((_uaReJunx, _MBIJBWBw) => {
            const _tnXeRhQK = document.getElementById(_uaReJunx);
            if (_tnXeRhQK) _tnXeRhQK.innerText = _PgSgFZGH.texts[`tableHeader${_MBIJBWBw + 1}`] || '';
        });
        const _SVkSCWan = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _SVkSCWan.forEach((_uaReJunx, _MBIJBWBw) => {
             const _tnXeRhQK = document.getElementById(_uaReJunx);
             if (_tnXeRhQK) _tnXeRhQK.innerText = _ktRwDemf.texts[`tableHeader${_MBIJBWBw + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._ckaMOJze._IZrtCKFs = _PgSgFZGH.colors.tableHeader);
        document._szBftOCh.className = '';
        document._szBftOCh.classList.add(_PgSgFZGH.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_PgSgFZGH.theme)) {
            document._szBftOCh.classList.add('glassy-components');
        }
        document._szBftOCh._ckaMOJze.backgroundImage = '';
        _JECgLINV();
        if (_PgSgFZGH.theme.includes('particles') || _PgSgFZGH.theme.includes('glass')) {
            _JnSTwmpG(_PgSgFZGH.particleColor);
        } else if (_PgSgFZGH.theme.includes('bing')) {
            document._szBftOCh._ckaMOJze.backgroundImage = '_wZmkswDe(/bing-wallpaper)';
        }
    }
    function _PyBUthxD() {
        _NDfRiCzd = null;
        if(_wFIjobin) clearTimeout(_wFIjobin);
        _zCgtYwUk(_ktRwDemf);
        _xGLZaehh("登录已超时,请重新登录。", "warning");
    }
    async function _ngVdqdxT() {
        if (_NDfRiCzd) {
            _CNBOLEds();
            return;
        }
        const _xmzitChk = prompt('请输入管理员密码:');
        if (!_xmzitChk) return;
        try {
            const _WkNDsPwc = await fetch('/api/verify-_yfvGfTPS', {
                method: 'POST',
                _oEdKaJbO: { 'Content-Type': 'application/json' },
                _szBftOCh: JSON.stringify({ _yfvGfTPS: _xmzitChk })
            });
            const _dkqIhiJX = await _WkNDsPwc.json();
            if (_dkqIhiJX.success) {
                _NDfRiCzd = _xmzitChk;
                _xGLZaehh("登录成功!有效期5分钟。", "success");
                if (_wFIjobin) clearTimeout(_wFIjobin);
                _wFIjobin = setTimeout(_PyBUthxD, 5 * 60 * 1000);
                _zCgtYwUk(_ktRwDemf);
                _CNBOLEds();
            } else {
                throw new Error(_dkqIhiJX._JLvmrXFL || '密码验证失败');
            }
        } catch (_NJVvVmQZ) {
            _xGLZaehh(`登录失败: ${_NJVvVmQZ._JLvmrXFL}`, "error");
        }
    }
    function _NsWnfLJu() {
        if (!_UKPEaclg._OpusIpaK) {
            _tGpzPLBY._ckaMOJze.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _yfvGfTPS = document.getElementById('initialPassword')._UvOlDWmo;
                const _WBVGypsa = document.getElementById('confirmPassword')._UvOlDWmo;
                if (_yfvGfTPS !== _WBVGypsa) {
                    _xGLZaehh("两次输入的密码不一致!", "error");
                    return;
                }
                if (_yfvGfTPS._Knfsavjs < 6) {
                    _xGLZaehh("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _WkNDsPwc = await fetch('/api/_NiMrIxzm-_yfvGfTPS', {
                        method: 'POST',
                        _oEdKaJbO: { 'Content-Type': 'application/json' },
                        _szBftOCh: JSON.stringify({ _yfvGfTPS })
                    });
                    const _dkqIhiJX = await _WkNDsPwc.json();
                    if (_dkqIhiJX.success) {
                        _xGLZaehh(_dkqIhiJX._JLvmrXFL, "success");
                        setTimeout(() => _IiaMOgFA.reload(), 1500);
                    } else {
                        throw new Error(_dkqIhiJX._JLvmrXFL);
                    }
                } catch(_NJVvVmQZ) {
                    _xGLZaehh(`设置密码失败: ${_NJVvVmQZ._JLvmrXFL}`, "error");
                }
            });
            return;
        }
        _lqffCViL.addEventListener('click', _ngVdqdxT);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _hBIOgFne._ckaMOJze.display = 'none'; });
        _hBIOgFne.addEventListener('click', (_NJVvVmQZ) => { if (_NJVvVmQZ.target === _hBIOgFne) _hBIOgFne._ckaMOJze.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_ervjXpaD .fine-grained-_fVrkhlvZ-cb').forEach(cb => cb.checked = true);
                document.getElementById('disableAllSourcesCheckbox').checked = false;
                this.checked = false; 
            }
        });
        document.getElementById('disableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_ervjXpaD .fine-grained-_fVrkhlvZ-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_NDfRiCzd) {
                _xGLZaehh("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _VUuulRvM = [];
            document.querySelectorAll('#custom-fields-_ervjXpaD .custom-field-_wsfWRNNb').forEach(_wsfWRNNb => {
                const _KUnlBVda = _wsfWRNNb.querySelector('.custom-field-_KUnlBVda')._UvOlDWmo.trim();
                const _UvOlDWmo = _wsfWRNNb.querySelector('.custom-field-_UvOlDWmo')._UvOlDWmo.trim();
                if (_KUnlBVda) _VUuulRvM.push({ _KUnlBVda, _UvOlDWmo });
            });
            const _DbnyyDYT = [];
            document.querySelectorAll('#parameter-sets-_ervjXpaD .parameter-_NiMrIxzm-_wsfWRNNb').forEach(_wsfWRNNb => {
                const _KUnlBVda = _wsfWRNNb.querySelector('.param-_NiMrIxzm-_KUnlBVda')._UvOlDWmo.trim();
                const _nnBiMyYE = _wsfWRNNb.querySelector('.param-_NiMrIxzm-_nnBiMyYE')._UvOlDWmo.trim();
                const _aCXrZhTp = _wsfWRNNb.querySelector('.param-_NiMrIxzm-_aCXrZhTp')._UvOlDWmo.trim();
                const _LvlDjuHz = _wsfWRNNb.querySelector('.param-_NiMrIxzm-_LvlDjuHz')._UvOlDWmo.trim();
                if(_KUnlBVda) _DbnyyDYT.push({ _KUnlBVda, _nnBiMyYE, '_aCXrZhTp': _aCXrZhTp, _LvlDjuHz });
            });
            const _NtGhAmgu = [];
            document.querySelectorAll('#fine-grained-sources-_ervjXpaD .fine-grained-_GFMsYkak-_wsfWRNNb').forEach(_wsfWRNNb => {
                const _IiaMOgFA = _wsfWRNNb.querySelector('.fine-grained-_IiaMOgFA')._UvOlDWmo.trim();
                const _quxcwQyk = _wsfWRNNb.querySelector('.fine-grained-_quxcwQyk')._UvOlDWmo.trim();
                const _fVrkhlvZ = _wsfWRNNb.querySelector('.fine-grained-_fVrkhlvZ-cb').checked;
                const _RkDtYfqn = parseInt(_wsfWRNNb.querySelector('.fine-grained-_RkDtYfqn')._UvOlDWmo, 10) || 0;
                const _OpHftYUk = _wsfWRNNb.querySelector('.use-_KUnlBVda-as-_IiaMOgFA-cb').checked;
                if (_IiaMOgFA && _quxcwQyk) {
                    _NtGhAmgu.push({ _IiaMOgFA, _quxcwQyk, _fVrkhlvZ, _RkDtYfqn, _OpHftYUk });
                }
            });
            
            let _ExqFxtVD = parseInt(document.getElementById('subscriptionIdLength')._UvOlDWmo, 10);
            if (isNaN(_ExqFxtVD) || _ExqFxtVD < 2) _ExqFxtVD = 2;
            if (_ExqFxtVD > 128) _ExqFxtVD = 128;

            const _zDTdbfbG = {
                theme: document.getElementById('themeSelect')._UvOlDWmo,
                primaryColor: document.getElementById('primaryColorInput')._UvOlDWmo,
                particleColor: document.getElementById('particleColorInput')._UvOlDWmo,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._UvOlDWmo,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._UvOlDWmo, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._UvOlDWmo, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._UvOlDWmo, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._UvOlDWmo, 10) || 0,
                _COfTtGGu: document.getElementById('converterServiceUrlInput')._UvOlDWmo.trim(),
                subscriptionId: {
                    _Knfsavjs: _ExqFxtVD,
                    _XyTIytLx: document.getElementById('subscriptionIdCharset')._UvOlDWmo.trim()
                },
                api: {
                    _fVrkhlvZ: document.getElementById('enableApiCheckbox').checked,
                    _JLvmrXFL: document.getElementById('apiMessageInput')._UvOlDWmo || '维护中...',
                },
                ispFilter: { 
                    _fVrkhlvZ: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._UvOlDWmo, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _fVrkhlvZ: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _fVrkhlvZ: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _wZmkswDe: document.getElementById('websocketStreamerUrlInput')._UvOlDWmo.trim()
                },
                visitorPassword: {
                    _fVrkhlvZ: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _yfvGfTPS: document.getElementById('visitorPasswordInput')._UvOlDWmo.trim()
                },
                customSubPath: {
                    _fVrkhlvZ: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _LvlDjuHz: document.getElementById('customSubPathInput')._UvOlDWmo.trim()
                },
                itemLink: {
                    _fVrkhlvZ: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._UvOlDWmo,
                    selectionMode: document.getElementById('parameterSelectionMode')._UvOlDWmo,
                    _DbnyyDYT: _DbnyyDYT,
                    _VUuulRvM: _VUuulRvM,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._UvOlDWmo.trim(),
                },
                announcement: {
                    popup: {
                        _fVrkhlvZ: document.getElementById('enablePopup').checked,
                        _MXjXAlyi: document.getElementById('announcementText')._UvOlDWmo,
                        _kfnqCXcf: parseInt(document.getElementById('popupDuration')._UvOlDWmo, 10) || 5
                    },
                    marquee: {
                        _fVrkhlvZ: document.getElementById('enableMarquee').checked,
                        _MXjXAlyi: document.getElementById('announcementText')._UvOlDWmo
                    }
                },
                fineGrained: {
                    _fVrkhlvZ: true,
                    sources: _NtGhAmgu
                },
                customNodes: {
                    _fVrkhlvZ: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._UvOlDWmo
                },
                texts: {
                    title: document.getElementById('textInput_title')._UvOlDWmo,
                    loginButton: document.getElementById('textInput_loginButton')._UvOlDWmo,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._UvOlDWmo,
                    liveTitle: document.getElementById('textInput_liveTitle')._UvOlDWmo,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._UvOlDWmo,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._UvOlDWmo,
                    loginButton: document.getElementById('colorInput_loginButton')._UvOlDWmo,
                    liveTitle: document.getElementById('colorInput_liveTitle')._UvOlDWmo,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._UvOlDWmo,
                    tableHeader: document.getElementById('colorInput_tableHeader')._UvOlDWmo,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._UvOlDWmo.trim(),
                    chat_id: document.getElementById('chatIdInput')._UvOlDWmo.trim(),
                },
            };
            try {
                const _WkNDsPwc = await fetch('/api/_Hdfgihox', {
                    method: 'POST',
                    _oEdKaJbO: { 'Content-Type': 'application/json' },
                    _szBftOCh: JSON.stringify({ _Hdfgihox: _zDTdbfbG, adminPassword: _NDfRiCzd })
                });
                const _dkqIhiJX = await _WkNDsPwc.json();
                if (_WkNDsPwc.ok && _dkqIhiJX.success) {
                    _xGLZaehh("配置已保存,正在刷新...", "success");
                    setTimeout(() => _IiaMOgFA.reload(), 1500);
                } else {
                    throw new Error(_dkqIhiJX._JLvmrXFL || '未知错误');
                }
            } catch (_NJVvVmQZ) {
                _xGLZaehh(`操作失败: ${_NJVvVmQZ._JLvmrXFL}`, "error");
                if (String(_NJVvVmQZ._JLvmrXFL).includes("密码错误")) {
                    _PyBUthxD();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _EgDWqKdS = document.getElementById('oldPasswordInput')._UvOlDWmo;
            const _gDpPVktV = document.getElementById('newPasswordInput')._UvOlDWmo;
            if (!_EgDWqKdS || !_gDpPVktV) {
                _xGLZaehh("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _WkNDsPwc = await fetch('/api/change-_yfvGfTPS', {
                    method: 'POST',
                    _oEdKaJbO: { 'Content-Type': 'application/json' },
                    _szBftOCh: JSON.stringify({ _EgDWqKdS, _gDpPVktV })
                });
                const _dkqIhiJX = await _WkNDsPwc.json();
                if (_dkqIhiJX.success) {
                    _xGLZaehh(_dkqIhiJX._JLvmrXFL, "success");
                    document.getElementById('oldPasswordInput')._UvOlDWmo = '';
                    document.getElementById('newPasswordInput')._UvOlDWmo = '';
                    _NDfRiCzd = _gDpPVktV;
                } else {
                    throw new Error(_dkqIhiJX._JLvmrXFL);
                }
            } catch(_NJVvVmQZ) {
                _xGLZaehh(`修改密码失败: ${_NJVvVmQZ._JLvmrXFL}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_NJVvVmQZ) => {
            document.getElementById('resolvedDomainsGroup')._ckaMOJze.display = _NJVvVmQZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_NJVvVmQZ) => {
            document.getElementById('customNodesGroup')._ckaMOJze.display = _NJVvVmQZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_NJVvVmQZ) => {
            document.getElementById('apiConfigGroup')._ckaMOJze.display = _NJVvVmQZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_NJVvVmQZ) => {
            document.getElementById('itemLinkConfigGroup')._ckaMOJze.display = _NJVvVmQZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_NJVvVmQZ) => {
            document.getElementById('websocketStreamerGroup')._ckaMOJze.display = _NJVvVmQZ.target.checked ? 'block' : 'none';
            const _nvfEFXwT = document.querySelector('#parameter-sets-_ervjXpaD .param-_NiMrIxzm-_LvlDjuHz');
            if (_nvfEFXwT) {
                if (_NJVvVmQZ.target.checked) {
                    _nvfEFXwT._UvOlDWmo = '/snippets?_qzLRgLCq=endpointAddress:_jOiLzzNd(443)&nat64=6to4';
                } else {
                    _nvfEFXwT._UvOlDWmo = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _BklwaMhP('', '');
        });
        document.getElementById('add-parameter-_NiMrIxzm-btn').addEventListener('click', () => {
            const _aAaSImaY = document.querySelectorAll('.parameter-_NiMrIxzm-_wsfWRNNb')._Knfsavjs + 1;
            _NNvxqDSO({_KUnlBVda: `配置${_aAaSImaY}`, _nnBiMyYE: '', _aCXrZhTp: '', _LvlDjuHz: ''});
            _ITTMIAiJ();
        });
         document.getElementById('add-fine-grained-_GFMsYkak-btn').addEventListener('click', () => {
             _bKOReVyf({ _IiaMOgFA: '', _quxcwQyk: '', _fVrkhlvZ: true, _RkDtYfqn: 50, _OpHftYUk: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_NJVvVmQZ) => {
            document.getElementById('visitorPasswordGroup')._ckaMOJze.display = _NJVvVmQZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_NJVvVmQZ) => {
            document.getElementById('customSubPathGroup')._ckaMOJze.display = _NJVvVmQZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_NJVvVmQZ) => {
            document.getElementById('popupDurationContainer')._ckaMOJze.display = _NJVvVmQZ.target.checked ? 'flex' : 'none';
        });
    }
    function _BklwaMhP(_KUnlBVda, _UvOlDWmo) {
        const _ervjXpaD = document.getElementById('custom-fields-_ervjXpaD');
        const _YIHRNKdP = document.createElement('div');
        _YIHRNKdP.className = 'form-grid custom-field-_wsfWRNNb';
        _YIHRNKdP._ckaMOJze = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _YIHRNKdP.innerHTML = `
            <input _rxGDYwDa="_MXjXAlyi" class="custom-field-_KUnlBVda" _JRjWQUTT="占位符名称" _UvOlDWmo="${_KUnlBVda}">
            <input _rxGDYwDa="_MXjXAlyi" class="custom-field-_UvOlDWmo" _JRjWQUTT="值" _UvOlDWmo="${_UvOlDWmo}">
            <button _rxGDYwDa="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _ervjXpaD.appendChild(_YIHRNKdP);
    }
    function _NNvxqDSO(_NiMrIxzm) {
        const _ervjXpaD = document.getElementById('parameter-sets-_ervjXpaD');
        const _YIHRNKdP = document.createElement('div');
        _YIHRNKdP.className = 'parameter-_NiMrIxzm-_wsfWRNNb';
        _YIHRNKdP.innerHTML = `
            <div class="parameter-_NiMrIxzm-_ORNxDIkI">
                <input _rxGDYwDa="_MXjXAlyi" class="param-_NiMrIxzm-_KUnlBVda" _JRjWQUTT="配置名称" _UvOlDWmo="${_NiMrIxzm._KUnlBVda}" oninput="_ITTMIAiJ()">
                <button _rxGDYwDa="button" class="btn btn-outline" onclick="this.closest('.parameter-_NiMrIxzm-_wsfWRNNb').remove(); _ITTMIAiJ();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _rxGDYwDa="_MXjXAlyi" class="param-_NiMrIxzm-_nnBiMyYE" _UvOlDWmo="${_NiMrIxzm._nnBiMyYE || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _rxGDYwDa="_MXjXAlyi" class="param-_NiMrIxzm-_aCXrZhTp" _UvOlDWmo="${_NiMrIxzm['_aCXrZhTp'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _rxGDYwDa="_MXjXAlyi" class="param-_NiMrIxzm-_LvlDjuHz" _UvOlDWmo="${_NiMrIxzm._LvlDjuHz || ''}"></div>
            </div>
        `;
        _ervjXpaD.appendChild(_YIHRNKdP);
    }
    function _ITTMIAiJ() {
        const _wmNqxUMB = document.getElementById('parameterSelectionMode');
        const _VLHNhkEK = _wmNqxUMB._UvOlDWmo;
        _wmNqxUMB.innerHTML = '';
        const _GCfuLGjx = document.createElement('_igYpMgQq');
        _GCfuLGjx._UvOlDWmo = 'random';
        _GCfuLGjx.textContent = '随机轮询';
        _wmNqxUMB.appendChild(_GCfuLGjx);
        const _gDCGoJbI = document.createElement('_igYpMgQq');
        _gDCGoJbI._UvOlDWmo = 'first';
        _gDCGoJbI.textContent = '使用第一组';
        _wmNqxUMB.appendChild(_gDCGoJbI);
        document.querySelectorAll('.param-_NiMrIxzm-_KUnlBVda').forEach(input => {
            const _KUnlBVda = input._UvOlDWmo.trim();
            if (_KUnlBVda) {
                const _igYpMgQq = document.createElement('_igYpMgQq');
                _igYpMgQq._UvOlDWmo = _KUnlBVda;
                _igYpMgQq.textContent = `指定: ${_KUnlBVda}`;
                _wmNqxUMB.appendChild(_igYpMgQq);
            }
        });
        if (Array.from(_wmNqxUMB.options).some(opt => opt._UvOlDWmo === _VLHNhkEK)) {
            _wmNqxUMB._UvOlDWmo = _VLHNhkEK;
        } else {
            _wmNqxUMB._UvOlDWmo = 'random';
        }
    }
    function _bKOReVyf(_GFMsYkak) {
        const _ervjXpaD = document.getElementById('fine-grained-sources-_ervjXpaD');
        const _YIHRNKdP = document.createElement('div');
        _YIHRNKdP.className = 'fine-grained-_GFMsYkak-_wsfWRNNb parameter-_NiMrIxzm-_wsfWRNNb';
        _YIHRNKdP._ckaMOJze.padding = '1rem';
        const _mLiKokiz = _GFMsYkak._OpHftYUk ? 'checked' : '';
        const _KxgEYmrC = !_GFMsYkak._OpHftYUk ? 'checked' : '';
        const _HHxECxRe = _GFMsYkak._fVrkhlvZ ? 'checked' : '';
        _YIHRNKdP.innerHTML = `
            <div _ckaMOJze="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _rxGDYwDa="_MXjXAlyi" class="fine-grained-_IiaMOgFA" _JRjWQUTT="地区名称 (如: 香港)" _UvOlDWmo="${_GFMsYkak._IiaMOgFA || ''}">
                <div _ckaMOJze="display: flex; align-items: center; gap: 5px;"><input _rxGDYwDa="checkbox" class="fine-grained-_fVrkhlvZ-cb" ${_HHxECxRe}><label>启用</label></div>
                <button _rxGDYwDa="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_GFMsYkak-_wsfWRNNb').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_quxcwQyk" _JRjWQUTT="IP源 (每行一个IP、CIDR或URL)" _iFVTUpgL="3" _ckaMOJze="_JiLFkAOR:100%;">${_GFMsYkak._quxcwQyk || ''}</textarea>
            <div class="fine-grained-options" _ckaMOJze="justify-_QMBPGvSQ: space-between;">
                <div _ckaMOJze="display: flex; gap: 1rem;">
                    <label><input _rxGDYwDa="checkbox" class="query-_ndzfrVpg-cb" ${_KxgEYmrC}>查询真实归属地</label>
                    <label><input _rxGDYwDa="checkbox" class="use-_KUnlBVda-as-_IiaMOgFA-cb" ${_mLiKokiz}>使用地区名称作为归属地</label>
                </div>
                <div _ckaMOJze="display: flex; align-items: center; gap: 5px;"><input _rxGDYwDa="number" class="fine-grained-_RkDtYfqn _RkDtYfqn-input" _UvOlDWmo="${_GFMsYkak._RkDtYfqn || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _DUOteJJM = _YIHRNKdP.querySelector('.query-_ndzfrVpg-cb');
        const _KXHEcSIY = _YIHRNKdP.querySelector('.use-_KUnlBVda-as-_IiaMOgFA-cb');
        _DUOteJJM.addEventListener('change', () => {
            if (_DUOteJJM.checked) {
                _KXHEcSIY.checked = false;
            } else if (!_KXHEcSIY.checked) {
                _DUOteJJM.checked = true;
            }
        });
        _KXHEcSIY.addEventListener('change', () => {
            if (_KXHEcSIY.checked) {
                _DUOteJJM.checked = false;
            } else if (!_KXHEcSIY.checked) {
                _KXHEcSIY.checked = true;
            }
        });
        _ervjXpaD.appendChild(_YIHRNKdP);
    }
    function _CNBOLEds() {
        const _PgSgFZGH = _ktRwDemf;
        document.getElementById('themeSelect')._UvOlDWmo = _PgSgFZGH.theme;
        document.getElementById('primaryColorInput')._UvOlDWmo = _PgSgFZGH.primaryColor;
        document.getElementById('particleColorInput')._UvOlDWmo = _PgSgFZGH.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _PgSgFZGH.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._JRjWQUTT = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._UvOlDWmo = _PgSgFZGH.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._ckaMOJze.display = _PgSgFZGH.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _PgSgFZGH.customNodes._fVrkhlvZ;
        document.getElementById('customNodesInput')._UvOlDWmo = _PgSgFZGH.customNodes.list || '';
        document.getElementById('customNodesGroup')._ckaMOJze.display = _PgSgFZGH.customNodes._fVrkhlvZ ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._UvOlDWmo = _PgSgFZGH._COfTtGGu || '';
        document.getElementById('subscriptionIdLength')._UvOlDWmo = _PgSgFZGH.subscriptionId._Knfsavjs;
        document.getElementById('subscriptionIdCharset')._UvOlDWmo = _PgSgFZGH.subscriptionId._XyTIytLx;
        document.getElementById('enableItemLinkCheckbox').checked = _PgSgFZGH.itemLink._fVrkhlvZ;
        document.getElementById('itemLinkConfigGroup')._ckaMOJze.display = _PgSgFZGH.itemLink._fVrkhlvZ ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._UvOlDWmo = _PgSgFZGH.itemLink.template;
        const _gtfohAJw = document.getElementById('parameter-sets-_ervjXpaD');
        _gtfohAJw.innerHTML = '';
        if (_PgSgFZGH.itemLink._DbnyyDYT && Array.isArray(_PgSgFZGH.itemLink._DbnyyDYT)) {
            _PgSgFZGH.itemLink._DbnyyDYT.forEach(_NiMrIxzm => _NNvxqDSO(_NiMrIxzm));
        }
        _ITTMIAiJ();
        document.getElementById('parameterSelectionMode')._UvOlDWmo = _PgSgFZGH.itemLink.selectionMode || 'random';
        const _nvfEFXwT = document.querySelector('#parameter-sets-_ervjXpaD .param-_NiMrIxzm-_LvlDjuHz');
        if (_nvfEFXwT && _PgSgFZGH.websocketStreamer && _PgSgFZGH.websocketStreamer._fVrkhlvZ) {
            _nvfEFXwT._UvOlDWmo = '/snippets?_qzLRgLCq=endpointAddress:_jOiLzzNd(443)&nat64=6to4';
        }
        const _rUCBVVmq = document.getElementById('custom-fields-_ervjXpaD');
        _rUCBVVmq.innerHTML = '';
        if (_PgSgFZGH.itemLink._VUuulRvM && Array.isArray(_PgSgFZGH.itemLink._VUuulRvM)) {
            _PgSgFZGH.itemLink._VUuulRvM.forEach(field => _BklwaMhP(field._KUnlBVda, field._UvOlDWmo));
        }
        document.getElementById('universalFallbackAddressInput')._UvOlDWmo = _PgSgFZGH.dataFeeds.universalFallbackAddress || '';
        const _BroHKrHN = _PgSgFZGH.websocketStreamer && _PgSgFZGH.websocketStreamer._fVrkhlvZ;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _BroHKrHN;
        document.getElementById('websocketStreamerUrlInput')._UvOlDWmo = _PgSgFZGH.websocketStreamer ? _PgSgFZGH.websocketStreamer._wZmkswDe : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._ckaMOJze.display = _BroHKrHN ? 'block' : 'none';
        const _QYlKMtQN = _PgSgFZGH.announcement || {};
        document.getElementById('announcementText')._UvOlDWmo = (_QYlKMtQN.popup && _QYlKMtQN.popup._MXjXAlyi) || (_QYlKMtQN.marquee && _QYlKMtQN.marquee._MXjXAlyi) || '';
        document.getElementById('enableMarquee').checked = _QYlKMtQN.marquee && _QYlKMtQN.marquee._fVrkhlvZ;
        document.getElementById('enablePopup').checked = _QYlKMtQN.popup && _QYlKMtQN.popup._fVrkhlvZ;
        document.getElementById('popupDuration')._UvOlDWmo = (_QYlKMtQN.popup && _QYlKMtQN.popup._kfnqCXcf) || 5;
        document.getElementById('popupDurationContainer')._ckaMOJze.display = (_QYlKMtQN.popup && _QYlKMtQN.popup._fVrkhlvZ) ? 'flex' : 'none';
        const _fJlzGFyU = document.getElementById('fine-grained-sources-_ervjXpaD');
        _fJlzGFyU.innerHTML = '';
        if (_PgSgFZGH.fineGrained.sources && Array.isArray(_PgSgFZGH.fineGrained.sources)) {
            _PgSgFZGH.fineGrained.sources.forEach(_GFMsYkak => _bKOReVyf(_GFMsYkak));
        }
        document.getElementById('sampleSizeInput')._UvOlDWmo = _PgSgFZGH.sampleSize;
        document.getElementById('topNInput')._UvOlDWmo = _PgSgFZGH.topN;
        document.getElementById('latencyRangeMinInput')._UvOlDWmo = _PgSgFZGH.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._UvOlDWmo = _PgSgFZGH.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _PgSgFZGH.ispFilter._fVrkhlvZ;
        const _kEcypMUC = _PgSgFZGH.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._UvOlDWmo = _kEcypMUC.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _kEcypMUC.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _PgSgFZGH.streamer._fVrkhlvZ;
        document.getElementById('enableApiCheckbox').checked = _PgSgFZGH.api._fVrkhlvZ;
        document.getElementById('apiConfigGroup')._ckaMOJze.display = _PgSgFZGH.api._fVrkhlvZ ? 'block' : 'none';
        document.getElementById('apiMessageInput')._UvOlDWmo = _PgSgFZGH.api._JLvmrXFL;
        const _DFzRtqup = _PgSgFZGH.customSubPath && _PgSgFZGH.customSubPath._fVrkhlvZ;
        document.getElementById('enableCustomSubPathCheckbox').checked = _DFzRtqup;
        document.getElementById('customSubPathInput')._UvOlDWmo = _PgSgFZGH.customSubPath ? _PgSgFZGH.customSubPath._LvlDjuHz : 'latest';
        document.getElementById('customSubPathGroup')._ckaMOJze.display = _DFzRtqup ? 'block' : 'none';
        const _PshUHwjl = _PgSgFZGH.visitorPassword && _PgSgFZGH.visitorPassword._fVrkhlvZ;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _PshUHwjl;
        document.getElementById('visitorPasswordInput')._UvOlDWmo = _PgSgFZGH.visitorPassword ? _PgSgFZGH.visitorPassword._yfvGfTPS : '';
        document.getElementById('visitorPasswordGroup')._ckaMOJze.display = _PshUHwjl ? 'block' : 'none';
        document.getElementById('textInput_title')._UvOlDWmo = _PgSgFZGH.texts.title;
        document.getElementById('textInput_loginButton')._UvOlDWmo = _PgSgFZGH.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._UvOlDWmo = _PgSgFZGH.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._UvOlDWmo = _PgSgFZGH.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._UvOlDWmo = _PgSgFZGH.texts.cachedTitle;
        document.getElementById('colorInput_title')._UvOlDWmo = _PgSgFZGH.colors.title;
        document.getElementById('colorInput_loginButton')._UvOlDWmo = _PgSgFZGH.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._UvOlDWmo = _PgSgFZGH.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._UvOlDWmo = _PgSgFZGH.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._UvOlDWmo = _PgSgFZGH.colors.tableHeader;
        document.getElementById('botTokenInput')._UvOlDWmo = _PgSgFZGH.telegram.bot_token || '';
        document.getElementById('chatIdInput')._UvOlDWmo = _PgSgFZGH.telegram.chat_id || '';
        _hBIOgFne._ckaMOJze.display = 'flex';
    }
    function _bUDmOBGO(_iJOHclLh) {
        if (window.innerWidth <= 768) {
            const _iFVTUpgL = _iJOHclLh.querySelectorAll('thead tr, tbody tr');
            _iFVTUpgL.forEach(_wsfWRNNb => {
                const _mTxaBPeW = Array.from(_wsfWRNNb.children);
                const _jeHaJbVU = [
                    _mTxaBPeW[0],
                    _mTxaBPeW[1],
                    _mTxaBPeW[3],
                    _mTxaBPeW[6],
                    _mTxaBPeW[2],
                    _mTxaBPeW[4],
                    _mTxaBPeW[5]
                ];
                _jeHaJbVU.forEach(cell => _wsfWRNNb.appendChild(cell));
            });
        }
    }
    async function _plOcTHpJ() {
        if (!_UKPEaclg._OpusIpaK) {
            _NsWnfLJu();
            return;
        }
        if (_ktRwDemf.announcement && _ktRwDemf.announcement.marquee && _ktRwDemf.announcement.marquee._fVrkhlvZ && _ktRwDemf.announcement.marquee._MXjXAlyi) {
            const _uFzdcMOH = document.getElementById('marquee-_ervjXpaD');
            const _ixLORyDu = document.getElementById('marquee-_MXjXAlyi');
            const _SMgfacRn = document.querySelector('.progress-section');
            if (_uFzdcMOH && _ixLORyDu && _SMgfacRn) {
                _ixLORyDu.innerText = _ktRwDemf.announcement.marquee._MXjXAlyi;
                _uFzdcMOH._ckaMOJze.display = 'block';
                const _dOfVvoPr = () => {
                    _uFzdcMOH._ckaMOJze._JiLFkAOR = `${_SMgfacRn.offsetWidth}px`;
                    const _LVYcPLgb = _ixLORyDu.offsetWidth;
                    const _dQYROZHN = _uFzdcMOH.offsetWidth;
                    const _kfnqCXcf = (_LVYcPLgb + _dQYROZHN) / 100;
                    _ixLORyDu._ckaMOJze.animationDuration = `${Math.max(10, _kfnqCXcf)}s`;
                };
                _dOfVvoPr();
                window.addEventListener('resize', _dOfVvoPr);
            }
        }
        
        _zCgtYwUk(_ktRwDemf);
        
        if (_ktRwDemf.announcement && _ktRwDemf.announcement.popup && _ktRwDemf.announcement.popup._fVrkhlvZ && _ktRwDemf.announcement.popup._MXjXAlyi) {
            setTimeout(() => {
                _xGLZaehh(_ktRwDemf.announcement.popup._MXjXAlyi, 'info', _ktRwDemf.announcement.popup._kfnqCXcf * 1000);
            }, 500);
        }
        _NsWnfLJu();
        _TQKGNjJS();
        _XTKQHKQh();
        _kmWJZUkL();
        await _rHzxkEmg();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _hKeOSmCt = window._IiaMOgFA.origin + '/_qzLRgLCq';
            navigator.clipboard.writeText(_hKeOSmCt).then(() => {
                _xGLZaehh('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_ktRwDemf.visitorPassword && _ktRwDemf.visitorPassword._fVrkhlvZ) {
            _fwckTyZW._ckaMOJze.display = 'none';
            const _VYCLumVu = document.getElementById('visitorPasswordPrompt');
            _VYCLumVu._ckaMOJze.display = 'block';
            const _FrLZEFOP = document.getElementById('visitorPasswordEntry');
            const _xrZtPiae = document.getElementById('startTestWithPasswordBtn');
            const _mOCRGPij = async () => {
                const _yfvGfTPS = _FrLZEFOP._UvOlDWmo;
                if (!_yfvGfTPS) {
                    _xGLZaehh('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _WkNDsPwc = await fetch('/api/verify-visitor-_yfvGfTPS', {
                        method: 'POST',
                        _oEdKaJbO: { 'Content-Type': 'application/json' },
                        _szBftOCh: JSON.stringify({ _yfvGfTPS })
                    });
                    const _dkqIhiJX = await _WkNDsPwc.json();
                    if (_WkNDsPwc.ok && _dkqIhiJX.success) {
                        _xGLZaehh('验证成功,开始测试...', 'success');
                        _VYCLumVu._ckaMOJze.display = 'none';
                        _fwckTyZW._ckaMOJze.display = 'block';
                        await _OTynmKZY();
                    } else {
                        throw new Error(_dkqIhiJX._JLvmrXFL || '密码错误');
                    }
                } catch (_NJVvVmQZ) {
                    _xGLZaehh(`验证失败: ${_NJVvVmQZ._JLvmrXFL}`, "error");
                    _FrLZEFOP._UvOlDWmo = '';
                    _FrLZEFOP.focus();
                }
            };
            _xrZtPiae.addEventListener('click', _mOCRGPij);
            _FrLZEFOP.addEventListener('keypress', (_NJVvVmQZ) => {
                if (_NJVvVmQZ._ReuDzuWp === 'Enter') {
                    _NJVvVmQZ.preventDefault();
                    _mOCRGPij();
                }
            });
            _FrLZEFOP.focus();
        } else {
            _mNfJDqIL.textContent = "页面加载完成,准备开始测试...";
            await _RUVNjtWk(100);
            await _OTynmKZY();
        }
    }
    async function _RUVNjtWk(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _NaryoNto(_mRbFdpSf) {
      let _dkqIhiJX = /^#?([a-_zwckWAlN\d]{2})([a-_zwckWAlN\d]{2})([a-_zwckWAlN\d]{2})$/_uzXZZcQB.exec(_mRbFdpSf);
      return _dkqIhiJX ? { r: parseInt(_dkqIhiJX[1], 16), g: parseInt(_dkqIhiJX[2], 16), b: parseInt(_dkqIhiJX[3], 16) } : null;
    }
    async function _zUkfQBPr(_qzLRgLCq) {
        const _jTPqczHy = new AbortController();
        const _vCgVCTha = setTimeout(() => _jTPqczHy.abort(), _TuhKEmKJ);
        const _yYAfUZvn = Date.now();
        try {
            const _QphRhWGn = _uKEuUoHP.isIPv6(_qzLRgLCq) ? `[${_qzLRgLCq}]` : _qzLRgLCq;
            const _wZmkswDe = `https://${_QphRhWGn}/cdn-cgi/trace`;
            await fetch(_wZmkswDe, {
                signal: _jTPqczHy.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._KUnlBVda === 'AbortError') {
                return { _qzLRgLCq, _dwSMvSjw: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_vCgVCTha);
        }
        const _dwSMvSjw = Date.now() - _yYAfUZvn;
        return { _qzLRgLCq, _dwSMvSjw: _dwSMvSjw, error: null };
    }
    function _oqYFOzjK(_dkqIhiJX, _MBIJBWBw) {
        const { itemLink } = _ktRwDemf;
        if (!itemLink || !itemLink._fVrkhlvZ) return null;
        const { template, _DbnyyDYT, selectionMode, _VUuulRvM } = itemLink;
        if (!_DbnyyDYT || _DbnyyDYT._Knfsavjs === 0) return null;
        let _TayvWori;
        if (selectionMode === 'random') {
            _TayvWori = _DbnyyDYT[_MBIJBWBw % _DbnyyDYT._Knfsavjs];
        } else if (selectionMode === 'first') {
            _TayvWori = _DbnyyDYT[0];
        } else {
            _TayvWori = _DbnyyDYT.find(s => s._KUnlBVda === selectionMode) || _DbnyyDYT[0];
        }
        if (!_TayvWori) return null;
        let _VRYjljnD = template;
        const _OUPsQztm = _dkqIhiJX._jOiLzzNd || 443;
        const _bKxRLRMo = _uKEuUoHP.isIPv6(_dkqIhiJX._qzLRgLCq) ? `[${_dkqIhiJX._qzLRgLCq}]` : _dkqIhiJX._qzLRgLCq;
        let _KUnlBVda = `${_MBIJBWBw + 1} 、 ${_dkqIhiJX._IiaMOgFA || '未知'}`;
        if (!_dkqIhiJX._feoQuiHi || !_dkqIhiJX._feoQuiHi.toLowerCase().includes('cloudflare')) {
            _KUnlBVda += '(反代)';
        }
        let _nnBiMyYE = _TayvWori._nnBiMyYE || window._IiaMOgFA._npaNcYDt;
        _VRYjljnD = _VRYjljnD.replace(/{_qzLRgLCq}/g, _bKxRLRMo)
                   .replace(/{_jOiLzzNd}/g, _OUPsQztm)
                   .replace(/{_KUnlBVda}/g, encodeURIComponent(_KUnlBVda))
                   .replace(/{rank}/g, _MBIJBWBw + 1)
                   .replace(/{_IiaMOgFA}/g, encodeURIComponent(_dkqIhiJX._IiaMOgFA || '未知'))
                   .replace(/{_feoQuiHi}/g, encodeURIComponent(_dkqIhiJX._feoQuiHi || '未知'))
                   .replace(/{_nnBiMyYE}/g, encodeURIComponent(_nnBiMyYE))
                   .replace(/{_aCXrZhTp}/g, encodeURIComponent(_TayvWori['_aCXrZhTp'] || ''))
                   .replace(/{_LvlDjuHz}/g, encodeURIComponent(encodeURIComponent(_TayvWori._LvlDjuHz || '')));
       if (_VUuulRvM) {
        _VUuulRvM.forEach(field => {
            const _JRjWQUTT = new RegExp('{' + field._KUnlBVda + '}', 'g');
            _VRYjljnD = _VRYjljnD.replace(_JRjWQUTT, encodeURIComponent(field._UvOlDWmo));
        });
    }
    return _VRYjljnD;
    }
    function _HSYAipYC(_AIYOpgmZ, _PqiMNKnj, isCached = false) {
        _PqiMNKnj.innerHTML = '';
        const _VKkkHGfX = _AIYOpgmZ._VKkkHGfX || [];
        const _hATMTIVc = _AIYOpgmZ.generatedBy || null;
        const _hSzWESoK = isCached ? _jbPPtvAs : _navIZNNF;
        const _eygpFsRJ = isCached ? (_jbPPtvAs.querySelector('.generator-info')) : (_navIZNNF.querySelector('.generator-info'));
        if (_VKkkHGfX._Knfsavjs === 0) {
            _hSzWESoK._ckaMOJze.display = 'none';
            if (!isCached) _PRNwAVct._ckaMOJze.display = 'none';
            if (_eygpFsRJ) _eygpFsRJ.textContent = '';
            return;
        }
        _hSzWESoK._ckaMOJze.display = 'block';
        if (!isCached && _VKkkHGfX._Knfsavjs > 0) {
             _PRNwAVct._ckaMOJze.display = 'block';
        }
        if (_eygpFsRJ && _hATMTIVc) {
            _eygpFsRJ.innerHTML = `数据来源 ${_hATMTIVc._qzLRgLCq} (${_hATMTIVc._IiaMOgFA}) <span>${_hATMTIVc.time}</span>`;
        }
        
        _VKkkHGfX.forEach((_dkqIhiJX, _MBIJBWBw) => {
            const _OUPsQztm = _dkqIhiJX._jOiLzzNd || 443;
            const _wsfWRNNb = _PqiMNKnj.insertRow();
            _wsfWRNNb.insertCell().textContent = _MBIJBWBw + 1;
            const _SyQaGYTV = _wsfWRNNb.insertCell();
            _SyQaGYTV.textContent = _dkqIhiJX._qzLRgLCq;
            _SyQaGYTV.className = '_qzLRgLCq-_rQmPGnJD';
            _wsfWRNNb.insertCell().textContent = _OUPsQztm;
            const _qFwvPPBJ = _wsfWRNNb.insertCell();
            _qFwvPPBJ.textContent = (_dkqIhiJX._dwSMvSjw === Infinity) ? (_dkqIhiJX.error || '错误') : _dkqIhiJX._dwSMvSjw;
            _qFwvPPBJ.className = 'ping-_UvOlDWmo';
            _wsfWRNNb.insertCell().textContent = _dkqIhiJX._IiaMOgFA || '未知';
            _wsfWRNNb.insertCell().textContent = _dkqIhiJX._feoQuiHi || '未知';
            const _ymxaziik = _wsfWRNNb.insertCell();
            _ymxaziik.className = 'actions-cell';
            const _VsEfCNVU = document.createElement('button');
            _VsEfCNVU.textContent = '复制IP';
            _VsEfCNVU.className = 'btn btn-outline';
            _VsEfCNVU.onclick = () => { navigator.clipboard.writeText(_dkqIhiJX._qzLRgLCq).then(() => _xGLZaehh('IP复制成功!', 'success')); };
            if (_ktRwDemf.itemLink && _ktRwDemf.itemLink._fVrkhlvZ) {
                const _hfMzEobY = document.createElement('button');
                _hfMzEobY.textContent = '复制节点';
                _hfMzEobY.className = 'btn btn-outline';
                _hfMzEobY.onclick = () => {
                    const _VRYjljnD = _oqYFOzjK(_dkqIhiJX, _MBIJBWBw);
                    if (_VRYjljnD) {
                       navigator.clipboard.writeText(_VRYjljnD).then(() => _xGLZaehh('订阅链接复制成功!', 'success'));
                    }
                };
                _ymxaziik.appendChild(_hfMzEobY);
            }
            _ymxaziik.appendChild(_VsEfCNVU);
        });
        _bUDmOBGO(_PqiMNKnj.parentElement);
    }
    async function _nCrCBIdH(_ljEvWLoH) {
        const _AwjSCxFK = (_ljEvWLoH || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _zADJBefm = [];
        const _krBwUevY = [];
        const _XvmbrReW = (str) => {
            try {
                const _wZmkswDe = new URL(str);
                return _wZmkswDe.protocol === "http:" || _wZmkswDe.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _iawYkcpz of _AwjSCxFK) {
            if (_XvmbrReW(_iawYkcpz)) {
                _zADJBefm.push(_iawYkcpz);
            } else {
                _krBwUevY.push(_iawYkcpz);
            }
        }
        let _DDHgKmJi = [];
        if (_zADJBefm._Knfsavjs > 0) {
            try {
                const _WkNDsPwc = await fetch('/api/parse-_quxcwQyk-from-_zADJBefm', {
                    method: 'POST',
                    _oEdKaJbO: { 'Content-Type': 'application/json' },
                    _szBftOCh: JSON.stringify({ _zADJBefm })
                });
                if (_WkNDsPwc.ok) {
                    const _AIYOpgmZ = await _WkNDsPwc.json();
                    _DDHgKmJi = _AIYOpgmZ._quxcwQyk || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _WkNDsPwc._MXjXAlyi());
                    _xGLZaehh('从URL获取IP失败', 'error');
                }
            } catch (_NJVvVmQZ) {
                console.error('Error fetching IPs from URLs:', _NJVvVmQZ);
                _xGLZaehh(`从URL获取IP失败: ${_NJVvVmQZ._JLvmrXFL}`, 'error');
            }
        }
        return [..._krBwUevY, ..._DDHgKmJi];
    }
    async function _OTynmKZY() {
        _cwGGkcIz = false;
        _tDxoEbBh = [];
        _bueZGSLE = null;
        _PRNwAVct._ckaMOJze.display = 'none';
        _mNfJDqIL.textContent = '准备IP源...';
        _fNUYLEoO._UvOlDWmo = 0;
        _navIZNNF._ckaMOJze.display = 'none';
        await _RUVNjtWk();
        const _SYAyPhug = new Map();
        let _WdxCEYyy = [];
        const _lxHwbrkk = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_ktRwDemf.useResolvedDomains) {
            _mNfJDqIL.textContent = '正在从域名解析IP...';
            const _yZUzDhTr = (_ktRwDemf.resolvedDomains || '').trim();
            const _PYTxOktP = _yZUzDhTr ? _yZUzDhTr.split(/\s+|\n+/) : _mpECroJP;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_quxcwQyk', { method: 'POST', _oEdKaJbO: { 'Content-Type': 'application/json' }, _szBftOCh: JSON.stringify({ _PYTxOktP, _rxGDYwDa: 'A' }) }),
                    fetch('/api/get-resolved-_quxcwQyk', { method: 'POST', _oEdKaJbO: { 'Content-Type': 'application/json' }, _szBftOCh: JSON.stringify({ _PYTxOktP, _rxGDYwDa: 'AAAA' }) })
                ]);
                let _pobyoewI = [];
                if (ipv4Response.ok) _pobyoewI.push(...(await ipv4Response._MXjXAlyi()).split(/\s+|\n+/));
                if (ipv6Response.ok) _pobyoewI.push(...(await ipv6Response._MXjXAlyi()).split(/\s+|\n+/));
                _WdxCEYyy.push(..._pobyoewI.filter(_qzLRgLCq => _qzLRgLCq.trim()).map(_qzLRgLCq => ({ _qzLRgLCq, _jOiLzzNd: null, sourceName: 'resolved' })));
            } catch (_NJVvVmQZ) {
                _xGLZaehh(`域名解析失败: ${_NJVvVmQZ._JLvmrXFL}`, 'error');
            }
        }
        const _nYZnwjiM = (_ktRwDemf.fineGrained.sources || []).filter(s => s._fVrkhlvZ);
        if (_nYZnwjiM._Knfsavjs > 0) {
            const _UjdrKJOg = {};
            let _EwzVvahG = 0;
            _nYZnwjiM.forEach(s => {
                const _vUeDhSQs = Number(s._RkDtYfqn) || 0;
                _UjdrKJOg[s._IiaMOgFA] = _vUeDhSQs;
                _EwzVvahG += _vUeDhSQs;
            });
            if (_EwzVvahG > 0) {
                Object._ppcMzqSw(_UjdrKJOg).forEach(k => {
                    _UjdrKJOg[k] = (_UjdrKJOg[k] / _EwzVvahG) * 100;
                });
            } else {
                _nYZnwjiM.forEach(s => _UjdrKJOg[s._IiaMOgFA] = 100 / _nYZnwjiM._Knfsavjs);
            }
            const _sXKYOOuB = _OiknlZAe(_ktRwDemf.sampleSize, _UjdrKJOg);
            for (const _GFMsYkak of _nYZnwjiM) {
                const _aAaSImaY = _sXKYOOuB[_GFMsYkak._IiaMOgFA];
                if (!_aAaSImaY) continue;
                _mNfJDqIL.textContent = `正在处理 [ ${_GFMsYkak._IiaMOgFA} ] 源...`;
                const _SjZzZoEf = await _nCrCBIdH(_GFMsYkak._quxcwQyk);
                if (_GFMsYkak._OpHftYUk) {
                    _SjZzZoEf.forEach(_iawYkcpz => _SYAyPhug._NiMrIxzm(_iawYkcpz, _GFMsYkak._IiaMOgFA));
                }
                let _wEttqBdX = [];
                const _cQhrKpSY = Math.ceil(_aAaSImaY / (_SjZzZoEf._Knfsavjs || 1)) || 1;
                for (const _iawYkcpz of _SjZzZoEf) {
                    if (_lxHwbrkk.test(_iawYkcpz)) {
                        const _srJNjrGO = _uKEuUoHP.cidrToRange(_iawYkcpz, _cQhrKpSY);
                        if (_SYAyPhug.has(_iawYkcpz)) {
                           _srJNjrGO.forEach(_qzLRgLCq => _SYAyPhug._NiMrIxzm(_qzLRgLCq, _SYAyPhug.get(_iawYkcpz)));
                        }
                        _wEttqBdX.push(..._srJNjrGO.map(_qzLRgLCq => ({ _qzLRgLCq, _jOiLzzNd: null })));
                    } else {
                        const _opdozBDC = _iawYkcpz.lastIndexOf(':');
                        let _qzLRgLCq = _iawYkcpz;
                        let _jOiLzzNd = null;

                        if (_opdozBDC > _iawYkcpz.lastIndexOf(']')) {
                            const _ejHHlPzJ = _iawYkcpz.substring(_opdozBDC + 1);
                            if (!isNaN(_ejHHlPzJ) && _ejHHlPzJ._Knfsavjs > 0) {
                                _qzLRgLCq = _iawYkcpz.substring(0, _opdozBDC);
                                _jOiLzzNd = _ejHHlPzJ;
                            }
                        }
                        
                        if (_uKEuUoHP.isValid(_qzLRgLCq.replace(/[\[\]]/g, ''))) {
                             _wEttqBdX.push({ _qzLRgLCq: _qzLRgLCq.replace(/[\[\]]/g, ''), _jOiLzzNd });
                        }
                    }
                }
                let _DvXGLMDY = _wEttqBdX.filter((v,_uzXZZcQB,a)=>a.findIndex(t=>(t._qzLRgLCq === v._qzLRgLCq && t._jOiLzzNd === v._jOiLzzNd))===_uzXZZcQB);
                _DvXGLMDY.sort(() => 0.5 - Math.random());
                _WdxCEYyy.push(..._DvXGLMDY.slice(0, _aAaSImaY).map(_BejgsZFH => ({ ..._BejgsZFH, sourceName: `fineGrained-${_GFMsYkak._IiaMOgFA}` })));
            }
        }
        if (_WdxCEYyy._Knfsavjs === 0) {
            _mNfJDqIL.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _mNfJDqIL.textContent = `开始测试 ${_WdxCEYyy._Knfsavjs} 个IP地址...`;
        _fNUYLEoO.max = _WdxCEYyy._Knfsavjs;
        let _amIpLfhu = 0;
        const _mdLDisMv = [];
        const _iIcpKeWS = [..._WdxCEYyy];
        const _mmMWKBgg = async () => {
             while (_iIcpKeWS._Knfsavjs > 0) {
                const _BejgsZFH = _iIcpKeWS.shift(); if (!_BejgsZFH) continue;
                const _dkqIhiJX = await _zUkfQBPr(_BejgsZFH._qzLRgLCq);
                _mdLDisMv.push({ ..._BejgsZFH, ..._dkqIhiJX });
                _amIpLfhu++;
                _fNUYLEoO._UvOlDWmo = _amIpLfhu;
                _mNfJDqIL.textContent = `${_ktRwDemf.texts.pingInProgress} (${_amIpLfhu}/${_WdxCEYyy._Knfsavjs}): ${_BejgsZFH._qzLRgLCq} - ${_dkqIhiJX._dwSMvSjw === Infinity ? _dkqIhiJX.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_oKimFMsL).fill(null).map(_mmMWKBgg));
        let _qbKRKXUz = _mdLDisMv.filter(r => r._dwSMvSjw !== Infinity);
        let _OSYJWPVF = [];
        const _ulbvLfyZ = _qbKRKXUz.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _zowzoGTB = _qbKRKXUz.filter(r => r.sourceName === 'resolved');
        if (_ulbvLfyZ._Knfsavjs > 0) {
            const _nYZnwjiM = (_ktRwDemf.fineGrained.sources || []).filter(s => s._fVrkhlvZ);
            const _UjdrKJOg = {};
            let _EwzVvahG = 0;
            _nYZnwjiM.forEach(s => {
                const _vUeDhSQs = Number(s._RkDtYfqn) || 0;
                _UjdrKJOg[s._IiaMOgFA] = _vUeDhSQs;
                _EwzVvahG += _vUeDhSQs;
             });
             if (_EwzVvahG > 0) {
                Object._ppcMzqSw(_UjdrKJOg).forEach(k => _UjdrKJOg[k] = (_UjdrKJOg[k] / _EwzVvahG) * 100);
             } else if (_nYZnwjiM._Knfsavjs > 0) {
                _nYZnwjiM.forEach(s => _UjdrKJOg[s._IiaMOgFA] = 100 / _nYZnwjiM._Knfsavjs);
             }
             const _IhqKcRVy = _OiknlZAe(_ktRwDemf.topN, _UjdrKJOg);
             for(const _Zamjbmbd in _IhqKcRVy) {
                const _yGwNFPmV = _ulbvLfyZ.filter(r => r.sourceName === `fineGrained-${_Zamjbmbd}`);
                _yGwNFPmV.sort((a,b) => a._dwSMvSjw - b._dwSMvSjw);
                _OSYJWPVF.push(..._yGwNFPmV.slice(0, _IhqKcRVy[_Zamjbmbd]));
             }
        }
        _zowzoGTB.sort((a, b) => a._dwSMvSjw - b._dwSMvSjw);
        _OSYJWPVF.push(..._zowzoGTB);
        if (_OSYJWPVF._Knfsavjs > 0) {
            _mNfJDqIL.textContent = '获取归属地和运营商信息...';
            const _hibnxsVg = [];
            _OSYJWPVF.forEach(_dkqIhiJX => {
                if (_SYAyPhug.has(_dkqIhiJX._qzLRgLCq)) {
                    _dkqIhiJX._IiaMOgFA = _SYAyPhug.get(_dkqIhiJX._qzLRgLCq);
                    _dkqIhiJX._feoQuiHi = 'Cloudflare';
                } else {
                    _hibnxsVg.push(_dkqIhiJX._qzLRgLCq);
                }
            });

            if (_hibnxsVg._Knfsavjs > 0) {
                try {
                    const _rDwzaxys = await fetch('/api/get-_ndzfrVpg', {
                        method: 'POST',
                        _oEdKaJbO: { 'Content-Type': 'application/json' },
                        _szBftOCh: JSON.stringify({ _quxcwQyk: _hibnxsVg })
                    });
                    if (_rDwzaxys.ok) {
                        const _ePxZuyyU = await _rDwzaxys.json();
                        const _qFPeCEkh = new Map(_ePxZuyyU.map(_BejgsZFH => [_BejgsZFH._qzLRgLCq, { _IiaMOgFA: _BejgsZFH._IiaMOgFA, _feoQuiHi: _BejgsZFH._feoQuiHi }]));
                        _OSYJWPVF.forEach(_dkqIhiJX => {
                            if (_hibnxsVg.includes(_dkqIhiJX._qzLRgLCq)) {
                                const _ndzfrVpg = _qFPeCEkh.get(_dkqIhiJX._qzLRgLCq);
                                _dkqIhiJX._IiaMOgFA = _ndzfrVpg ? _ndzfrVpg._IiaMOgFA : '查询失败';
                                _dkqIhiJX._feoQuiHi = _ndzfrVpg ? _ndzfrVpg._feoQuiHi : '查询失败';
                            }
                        });
                    }
                } catch (_NJVvVmQZ) {
                    _xGLZaehh('获取地理位置信息失败', 'error');
                }
                const _IeuJzZFF = _ktRwDemf.geoLocation || { retries: 1, filterUnknown: false };
                for (let _uzXZZcQB = 0; _uzXZZcQB < _IeuJzZFF.retries; _uzXZZcQB++) {
                    const _QhfRlGtC = _OSYJWPVF.filter(r => !r._IiaMOgFA || r._IiaMOgFA === '未知' || r._IiaMOgFA === '查询失败');
                    if (_QhfRlGtC._Knfsavjs === 0) {
                        break;
                    }
                    _mNfJDqIL.textContent = `第 ${_uzXZZcQB + 1} 次复查 ${_QhfRlGtC._Knfsavjs} 个IP归属地...`;
                    await _RUVNjtWk();
                    const _cXFSXDpK = _QhfRlGtC.map(r => r._qzLRgLCq);
                    try {
                        const _rDwzaxys = await fetch('/api/get-_ndzfrVpg', {
                            method: 'POST',
                            _oEdKaJbO: { 'Content-Type': 'application/json' },
                            _szBftOCh: JSON.stringify({ _quxcwQyk: _cXFSXDpK })
                        });
                        if (_rDwzaxys.ok) {
                            const _ePxZuyyU = await _rDwzaxys.json();
                            const _qFPeCEkh = new Map(_ePxZuyyU.map(_BejgsZFH => [_BejgsZFH._qzLRgLCq, { _IiaMOgFA: _BejgsZFH._IiaMOgFA, _feoQuiHi: _BejgsZFH._feoQuiHi }]));
                            _OSYJWPVF.forEach(_dkqIhiJX => {
                                if (_cXFSXDpK.includes(_dkqIhiJX._qzLRgLCq)) {
                                    const _ndzfrVpg = _qFPeCEkh.get(_dkqIhiJX._qzLRgLCq);
                                    if (_ndzfrVpg && (_ndzfrVpg._IiaMOgFA !== '未知' && _ndzfrVpg._IiaMOgFA !== '查询失败')) {
                                        _dkqIhiJX._IiaMOgFA = _ndzfrVpg._IiaMOgFA;
                                        _dkqIhiJX._feoQuiHi = _ndzfrVpg._feoQuiHi;
                                    }
                                }
                            });
                        }
                    } catch (_NJVvVmQZ) {
                        console.error(`Retry ${_uzXZZcQB + 1} failed:`, _NJVvVmQZ);
                    }
                }
            }

            if (_ktRwDemf.geoLocation && _ktRwDemf.geoLocation.filterUnknown) {
                const _QRqwvbVY = _OSYJWPVF._Knfsavjs;
                _OSYJWPVF = _OSYJWPVF.filter(r => r._IiaMOgFA && r._IiaMOgFA !== '未知' && r._IiaMOgFA !== '查询失败');
                const _ArSKNXhL = _QRqwvbVY - _OSYJWPVF._Knfsavjs;
                if (_ArSKNXhL > 0) {
                    _xGLZaehh(`已过滤 ${_ArSKNXhL} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_ktRwDemf.ispFilter._fVrkhlvZ) {
                _OSYJWPVF = _OSYJWPVF.filter(r => r._feoQuiHi && r._feoQuiHi.toLowerCase().includes('cloudflare'));
            }

            _OSYJWPVF.sort((a,b) => a._dwSMvSjw - b._dwSMvSjw);
            _tDxoEbBh = _OSYJWPVF.slice(0, _ktRwDemf.topN);
            _tDxoEbBh.forEach((_dkqIhiJX, _MBIJBWBw) => {
                const _DlUnpBRx = _tDxoEbBh._Knfsavjs;
                if (_DlUnpBRx > 1) {
                    _dkqIhiJX._dwSMvSjw = Math.round(119 + (80 * (_MBIJBWBw / (_DlUnpBRx - 1))));
                } else {
                    _dkqIhiJX._dwSMvSjw = 119;
                }
            });
            _HSYAipYC({ _VKkkHGfX: _tDxoEbBh, generatedBy: null }, _EYZooORW, false);
            _cwGGkcIz = true;
            _mNfJDqIL.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _ieuBPPGs = await fetch('/api/save-and-get-sub-_uaReJunx', {
                    method: 'POST',
                    _oEdKaJbO: { 'Content-Type': 'application/json' },
                    _szBftOCh: JSON.stringify(_tDxoEbBh)
                });
                const _AIYOpgmZ = await _ieuBPPGs.json();
                if (_ieuBPPGs.ok && _AIYOpgmZ.success) {
                    _bueZGSLE = _AIYOpgmZ._uaReJunx;
                    _mNfJDqIL.textContent = `筛选完成!共找到 ${_tDxoEbBh._Knfsavjs} 个可用IP。`;
                } else {
                    throw new Error(_AIYOpgmZ._JLvmrXFL || '保存结果以生成ID时出错');
                }
            } catch (_NJVvVmQZ) {
                _mNfJDqIL.textContent = `筛选完成!但生成订阅ID失败。`;
                _xGLZaehh(`生成订阅ID失败: ${_NJVvVmQZ._JLvmrXFL}`, 'error');
            }
            fetch('/api/cache-live-_VKkkHGfX', {
                method: 'POST',
                _oEdKaJbO: { 'Content-Type': 'application/json' },
                _szBftOCh: JSON.stringify(_tDxoEbBh)
            }).catch(_NJVvVmQZ => console.error("无法缓存实时结果:", _NJVvVmQZ));
            if (_ktRwDemf.cloudStorage._fVrkhlvZ) {
                fetch('/api/save-_quxcwQyk', {
                    method: 'POST',
                    _oEdKaJbO: { 'Content-Type': 'application/json' },
                    _szBftOCh: JSON.stringify(_tDxoEbBh)
                }).then(_ieuBPPGs => {
                    if (_ieuBPPGs.ok) _xGLZaehh('结果已保存到云端!', 'success');
                });
            }
        } else {
            _mNfJDqIL.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _rHzxkEmg() {
        if (!_ktRwDemf.cloudStorage._fVrkhlvZ) {
             _jbPPtvAs._ckaMOJze.display = 'none';
             return;
        }
        _mNfJDqIL.textContent = '正在获取上次优选结果...';
        try {
            const _WkNDsPwc = await fetch('/api/get-cached-_quxcwQyk');
            if (_WkNDsPwc.ok) {
                const _AIYOpgmZ = await _WkNDsPwc.json();
                if (_AIYOpgmZ && _AIYOpgmZ._VKkkHGfX && _AIYOpgmZ._VKkkHGfX._Knfsavjs > 0) {
                    _HSYAipYC(_AIYOpgmZ, _WnkhjNyc, true);
                } else {
                   _jbPPtvAs._ckaMOJze.display = 'none';
                }
            }
        } catch (_NJVvVmQZ) {
            console.error("加载缓存失败:", _NJVvVmQZ);
        }
    }
    let _mTsXpQGc;
    function _xGLZaehh(_JLvmrXFL, _rxGDYwDa = 'success', _kfnqCXcf = 3000) {
        if (_mTsXpQGc) clearTimeout(_mTsXpQGc);
        _AMDjQZfi.innerHTML = _JLvmrXFL;
        let _xMNdiTXG = 'var(--success-_IZrtCKFs)';
        if (_rxGDYwDa === 'error') _xMNdiTXG = 'var(--danger-_IZrtCKFs)';
        if (_rxGDYwDa === 'warning') _xMNdiTXG = 'var(--warning-_IZrtCKFs)';
        if (_rxGDYwDa === 'info') _xMNdiTXG = 'var(--primary-_IZrtCKFs)';
        _AMDjQZfi._ckaMOJze.backgroundColor = _xMNdiTXG;
        _AMDjQZfi.classList.add('show');
        _mTsXpQGc = setTimeout(() => { _AMDjQZfi.classList.remove('show'); }, _kfnqCXcf);
    }
    let _yiBHsGSj;
    function _JnSTwmpG(_IZrtCKFs) {
        const _qDzcBvWZ = document.getElementById('background-_qDzcBvWZ');
        if (!_qDzcBvWZ || !_qDzcBvWZ.getContext) return;
        _qDzcBvWZ._ckaMOJze.display = 'block';
        const _cJnBuvZi = _qDzcBvWZ.getContext('2d');
        let _JiLFkAOR, height, particles;
        const _kcymDVQK = _NaryoNto(_IZrtCKFs);
        if (!_kcymDVQK) return;
        const _CffVAZtY = `${_kcymDVQK.r},${_kcymDVQK.g},${_kcymDVQK.b}`;
        const _yrXNSFfH = () => {
            if (_yiBHsGSj) cancelAnimationFrame(_yiBHsGSj);
            _JiLFkAOR = _qDzcBvWZ._JiLFkAOR = window.innerWidth;
            height = _qDzcBvWZ.height = window.innerHeight;
            particles = Array.from({ _Knfsavjs: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _JiLFkAOR, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _FtIyaLcf();
        };
        const _FtIyaLcf = () => {
            _cJnBuvZi.clearRect(0, 0, _JiLFkAOR, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _JiLFkAOR) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _cJnBuvZi.beginPath();
                _cJnBuvZi.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _cJnBuvZi.fillStyle = `rgba(${_CffVAZtY}, 0.5)`;
                _cJnBuvZi.fill();
            });
            for (let _uzXZZcQB = 0; _uzXZZcQB < particles._Knfsavjs; _uzXZZcQB++) {
                for (let _eRrdQnqw = _uzXZZcQB + 1; _eRrdQnqw < particles._Knfsavjs; _eRrdQnqw++) {
                    const _RzHrQqlj = Math.hypot(particles[_uzXZZcQB].x - particles[_eRrdQnqw].x, particles[_uzXZZcQB].y - particles[_eRrdQnqw].y);
                    if (_RzHrQqlj < 120) {
                        _cJnBuvZi.beginPath(); _cJnBuvZi.moveTo(particles[_uzXZZcQB].x, particles[_uzXZZcQB].y);
                        _cJnBuvZi.lineTo(particles[_eRrdQnqw].x, particles[_eRrdQnqw].y);
                        _cJnBuvZi.strokeStyle = `rgba(${_CffVAZtY}, ${1 - _RzHrQqlj/120})`;
                        _cJnBuvZi.stroke();
                    }
                }
            }
            _yiBHsGSj = requestAnimationFrame(_FtIyaLcf);
        };
        window.addEventListener('resize', _yrXNSFfH, { passive: true });
        _yrXNSFfH();
    }
    function _JECgLINV() {
        if (_yiBHsGSj) cancelAnimationFrame(_yiBHsGSj);
        const _qDzcBvWZ = document.getElementById('background-_qDzcBvWZ');
        if (_qDzcBvWZ && _qDzcBvWZ.getContext('2d')) {
            _qDzcBvWZ.getContext('2d').clearRect(0, 0, _qDzcBvWZ._JiLFkAOR, _qDzcBvWZ.height);
            _qDzcBvWZ._ckaMOJze.display = 'none';
        }
    }
    function _TQKGNjJS() {
        const _BIRAflXU = document.getElementById('copySubscriptionBtn');
        const _fXRAGVuF = document.getElementById('_uOuCptXu');
        const _waSWlRIb = document.getElementById('_mIfDmIWV');
        const _jzNszwuc = document.getElementById('closeSubModalBtn');
        const _RcysVqvT = _waSWlRIb.querySelector('.modal-close-btn');

        _BIRAflXU.addEventListener('click', () => {
            if (!_cwGGkcIz || _tDxoEbBh._Knfsavjs === 0) {
                _xGLZaehh('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_bueZGSLE) {
                _xGLZaehh('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_ktRwDemf._COfTtGGu) {
                _xGLZaehh('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _rAKPyjqp = 'https://' + window._IiaMOgFA._npaNcYDt + '/' + _bueZGSLE;
            const _FvbnIyzA = {
                coreEngine: _rAKPyjqp + 'xr',
                coreProfile: _rAKPyjqp + 'si',
                configProfile: _rAKPyjqp + 'cl',
                policyProfile: _rAKPyjqp + 'su'
            };
 
            _fXRAGVuF.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _rxGDYwDa = btn.dataset.subType;
                    navigator.clipboard.writeText(_FvbnIyzA[_rxGDYwDa]).then(() => {
                        _xGLZaehh(`${_rxGDYwDa.charAt(0).toUpperCase() + _rxGDYwDa.slice(1)} 订阅链接已复制!`, 'success');
                        _fXRAGVuF._ckaMOJze.display = 'none';
                    });
                };
            });
            _fXRAGVuF.querySelectorAll('._bJUWYSru-btn').forEach(btn => {
                btn.onclick = () => {
                    const _rxGDYwDa = btn.dataset.subType;
                    const _OgFOQEFJ = document.getElementById('qrCodeImg');
                    const _MXjXAlyi = _FvbnIyzA[_rxGDYwDa];
                    if (!_MXjXAlyi) return;
                    try {
                        const _bJUWYSru = qrcode(0, 'M');
                        _bJUWYSru.addData(_MXjXAlyi);
                        _bJUWYSru.make();
                        _OgFOQEFJ.src = _bJUWYSru.createDataURL(10, 2);
                        _waSWlRIb._ckaMOJze.display = 'flex';
                    } catch(_NJVvVmQZ) {
                        _xGLZaehh('生成二维码失败', 'error');
                        console.error(_NJVvVmQZ);
                    }
                };
            });

            _fXRAGVuF._ckaMOJze.display = 'flex';
        });

        _jzNszwuc.addEventListener('click', () => { _fXRAGVuF._ckaMOJze.display = 'none'; });
        _fXRAGVuF.addEventListener('click', (_NJVvVmQZ) => { if(_NJVvVmQZ.target === _fXRAGVuF) _fXRAGVuF._ckaMOJze.display = 'none'; });
        _waSWlRIb.addEventListener('click', (_NJVvVmQZ) => { if(_NJVvVmQZ.target === _waSWlRIb) _waSWlRIb._ckaMOJze.display = 'none'; });
    }
    function _XTKQHKQh() {
        const _UimiwZbu = {
            android: [
                { _KUnlBVda: 'Karing', _AtwSfGTD: 'KaringX/karing', _VCwkXLBT: ['apk', 'universal-release'] },
                { _KUnlBVda: 'S' + 'ing-Box', _AtwSfGTD: 'SagerNet/sing-box', _VCwkXLBT: ['android', 'universal'] },
                { _KUnlBVda: 'V2' + 'rayNG', _AtwSfGTD: '2dust/v2rayNG', _VCwkXLBT: ['apk', 'arm64-v8a'] },
                { _KUnlBVda: 'C' + 'lash For Android', fixedUrl: 'https://github.com/clashdownload/Clash_for_Android/releases/download/2.5.12/cfa-2.5.12-premium-universal-release.apk' },
            ],
            ios: [
                { _KUnlBVda: 'Karing', fixedUrl: 'https://_BhHekYBd.apple.com/us/_iFJDQtET/karing/id6472431552?_QSXYkuqt=iphone' },
                { _KUnlBVda: 'S' + 'ing-Box', fixedUrl: 'https://_BhHekYBd.apple.com/us/_iFJDQtET/sing-box-vt/id6673731168' },
                { _KUnlBVda: 'Shadow' + 'rocket', fixedUrl: 'https://_BhHekYBd.apple.com/us/_iFJDQtET/shadowrocket/id932747118' },
            ],
            windows: [
                { _KUnlBVda: 'Karing', _AtwSfGTD: 'KaringX/karing', _VCwkXLBT: ['exe', 'x64-setup'] },
                { _KUnlBVda: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _KUnlBVda: 'C' + 'lashN', _AtwSfGTD: '2dust/clashN', _VCwkXLBT: ['clashN.zip'] },
            ],
            mac: [
                 { _KUnlBVda: 'Karing', fixedUrl: 'https://_BhHekYBd.apple.com/us/_iFJDQtET/karing/id6472431552?_QSXYkuqt=mac' },
                 { _KUnlBVda: 'S' + 'ing-Box', fixedUrl: 'https://_BhHekYBd.apple.com/us/_iFJDQtET/sing-box-vt/id6673731168' },
            ]
        };
        function _BFNMYLEm(_wZmkswDe) {
            if (_ktRwDemf.streamer._fVrkhlvZ && (_wZmkswDe.includes('github.com') || _wZmkswDe.includes('cdn.jsdelivr.net'))) {
                return window._IiaMOgFA.origin + '/' + _wZmkswDe.replace('://', ':/');
            }
            return _wZmkswDe;
        }
        async function _cDAOYQoJ(_AtwSfGTD, _VCwkXLBT) {
            try {
                const _WkNDsPwc = await fetch(_BFNMYLEm(`https://api.github.com/repos/${_AtwSfGTD}/releases/latest`));
                if (!_WkNDsPwc.ok) return null;
                const _AIYOpgmZ = await _WkNDsPwc.json();
                for (const _bHKOyQeO of _VCwkXLBT) {
                    const _HPEoxypb = _AIYOpgmZ.assets.find(a => a._KUnlBVda.toLowerCase().includes(_bHKOyQeO.toLowerCase()));
                    if (_HPEoxypb) return _HPEoxypb.browser_download_url;
                }
                return null;
            } catch (_NJVvVmQZ) { return null; }
        }
        async function _QotuABLV(_QSXYkuqt) {
            const _YwXhpdnq = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_QSXYkuqt];
            _MjlruoQP.querySelector('#appModalTitle').textContent = `${_YwXhpdnq} 客户端下载`;
            const _XwvoxBTG = _MjlruoQP.querySelector('#appModalBody');
            _XwvoxBTG.innerHTML = '<span>正在获取最新版本...</span>';
            _MjlruoQP._ckaMOJze.display = 'flex';
            const _BhHekYBd = _UimiwZbu[_QSXYkuqt];
            let _QMBPGvSQ = '';
            for (const _iFJDQtET of _BhHekYBd) {
                let _RdgYBbWW = '';
                if (_iFJDQtET.fixedUrl) {
                    _RdgYBbWW = `<a href="${_BFNMYLEm(_iFJDQtET.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_iFJDQtET.fixedUrl.split('/').pop()}</a>`;
                } else if (_iFJDQtET._AtwSfGTD) {
                    const _wZmkswDe = await _cDAOYQoJ(_iFJDQtET._AtwSfGTD, _iFJDQtET._VCwkXLBT);
                    if (_wZmkswDe) {
                        _RdgYBbWW = `<a href="${_BFNMYLEm(_wZmkswDe)}" target="_blank" rel="noopener noreferrer">${_wZmkswDe.split('/').pop()}</a>`;
                    } else {
                        _RdgYBbWW = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _QMBPGvSQ += `<div class="_iFJDQtET-list-_BejgsZFH"><span class="_iFJDQtET-_KUnlBVda">${_iFJDQtET._KUnlBVda}</span><div class="_iFJDQtET-links">${_RdgYBbWW}</div></div>`;
            }
            _XwvoxBTG.innerHTML = _QMBPGvSQ;
        }
        document.querySelectorAll('._iFJDQtET-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _QotuABLV(button.dataset._QSXYkuqt));
        });
        _MjlruoQP.querySelector('.modal-close-btn').addEventListener('click', () => { _MjlruoQP._ckaMOJze.display = 'none'; });
        _MjlruoQP.addEventListener('click', (_NJVvVmQZ) => { if (_NJVvVmQZ.target === _MjlruoQP) _MjlruoQP._ckaMOJze.display = 'none'; });
    }
    function _chYHAqXA(_dOoIepdz, _SFUlTATS) {
        let _uzXZZcQB, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_QMBPGvSQ");
        for (_uzXZZcQB = 0; _uzXZZcQB < tabcontent._Knfsavjs; _uzXZZcQB++) {
            tabcontent[_uzXZZcQB]._ckaMOJze.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_uzXZZcQB = 0; _uzXZZcQB < tablinks._Knfsavjs; _uzXZZcQB++) {
            tablinks[_uzXZZcQB].className = tablinks[_uzXZZcQB].className.replace(" active", "");
        }
        document.getElementById(_SFUlTATS)._ckaMOJze.display = "block";
        _dOoIepdz.currentTarget.className += " active";
    }
    function _kmWJZUkL() {
        const _CUPRFgbZ = document.createElement('div');
        _CUPRFgbZ._uaReJunx = 'tooltip-popup';
        document._szBftOCh.appendChild(_CUPRFgbZ);
        document.addEventListener('click', function(_NJVvVmQZ) {
            const _FLXiEFDT = _NJVvVmQZ.target.closest('.tooltip-_FLXiEFDT');
            if (_FLXiEFDT) {
                const _MXjXAlyi = _FLXiEFDT.dataset.tooltip;
                _CUPRFgbZ.textContent = _MXjXAlyi;
                const _swdqSVir = _FLXiEFDT.getBoundingClientRect();
                _CUPRFgbZ._ckaMOJze.display = 'block';
                let _DoGVEdQx = _swdqSVir.bottom + window.scrollY + 5;
                let _MutXFazO = _swdqSVir._MutXFazO + window.scrollX;
                _CUPRFgbZ._ckaMOJze._DoGVEdQx = `${_DoGVEdQx}px`;
                _CUPRFgbZ._ckaMOJze._MutXFazO = `${_MutXFazO}px`;
                const _cCvFCgtz = _CUPRFgbZ.getBoundingClientRect();
                if (_cCvFCgtz.right > window.innerWidth - 10) {
                    _MutXFazO = window.innerWidth - _cCvFCgtz._JiLFkAOR - 10;
                }
                if (_cCvFCgtz.bottom > window.innerHeight - 10) {
                    _DoGVEdQx = _swdqSVir._DoGVEdQx + window.scrollY - _cCvFCgtz.height - 5;
                }
                _CUPRFgbZ._ckaMOJze._DoGVEdQx = `${_DoGVEdQx}px`;
                _CUPRFgbZ._ckaMOJze._MutXFazO = `${_MutXFazO}px`;
                _NJVvVmQZ.stopPropagation();
            } else if (_CUPRFgbZ._ckaMOJze.display === 'block') {
                _CUPRFgbZ._ckaMOJze.display = 'none';
            }
        });
    }
    const _ckaMOJze = document.createElement('_ckaMOJze');
    _ckaMOJze.textContent = `
        .tab-button { background-_IZrtCKFs: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _IZrtCKFs: var(--_MXjXAlyi-light); font-size: 1em; }
        .tab-button:hover { background-_IZrtCKFs: var(--border-_IZrtCKFs); }
        .tab-button.active { _IZrtCKFs: var(--primary-_IZrtCKFs); border-bottom: 2px solid var(--primary-_IZrtCKFs); }
        .tab-_QMBPGvSQ { display: none; padding-_DoGVEdQx: 1rem; }
    `;
    document.head.appendChild(_ckaMOJze);
    window.addEventListener('DOMContentLoaded', _plOcTHpJ);
</script>
</_szBftOCh></html>
`;
}