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


import { connect } from "cloudflare:sockets";

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

const _qDgJmzTc = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _OyuhOSsi = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _WjTmdcqW = '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 _nkVacZlG = '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 _sjhNtYIK(_WqXGmQGS) {
    if (Array.isArray(_WqXGmQGS)) {
        try {
            return String.fromCharCode.apply(null, _WqXGmQGS);
        } catch (_mRxgqKvR) {
            return '';
        }
    }
    return _WqXGmQGS;
}

function _GVxZDSrk(_lbGOVwXK) {
    return /^[0-9a-_XRWybpuN]{8}-[0-9a-_XRWybpuN]{4}-[4][0-9a-_XRWybpuN]{3}-[89ab][0-9a-_XRWybpuN]{3}-[0-9a-_XRWybpuN]{12}$/_hhKnPIhG.test(_lbGOVwXK);
}

const _slGECYiz = "optimized_ips_v4";
const _PjqXLGbJ = "global_config_v4";
const _aYSNumFE = "admin_password_v4";
const _SHvxuLwA = "live_results_temp_v1";
const _DyxMabqM = "latest_sub_id_v1";

export default {
  async fetch(_cSAviSvM, _BQgpRFNk, _OFrvjzAS) {
    try {
      if (!_BQgpRFNk.DB) {
          const _CfPmMowk = _FJqzGwny("D1 数据库 'DB' 未绑定。");
          return new Response(_CfPmMowk, { status: 503, _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/html;_dCnJqbQm=UTF-8' }});
      }

      _OFrvjzAS.waitUntil(
          _BQgpRFNk.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_oxBzSUFO TEXT PRIMARY KEY, _WqXGmQGS TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_lbGOVwXK TEXT PRIMARY KEY, _bqlLVbdo TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_mRxgqKvR => console.error("DB Init Error:", _mRxgqKvR._LFVTLzGR))
      );

      const _TXuFepGX = new URL(_cSAviSvM._TXuFepGX);
      const _KdbyphYI = _TXuFepGX.pathname;
      const _wbaYhwad = _cSAviSvM._aLVmyjqe.get("Upgrade");
      const _bfeocNIy = await _pxSLYxvP(_BQgpRFNk);
      
      if (_bfeocNIy.websocketStreamer && _bfeocNIy.websocketStreamer._eIMyZaKb && _wbaYhwad && _wbaYhwad.toLowerCase() === "websocket") {
          const _BQnBsPbJ = _bfeocNIy.websocketStreamer._TXuFepGX;
          if (_BQnBsPbJ && _BQnBsPbJ.trim().startsWith('https://')) {
              try {
                  const _lNPOImEi = new Request(_BQnBsPbJ.trim() + _TXuFepGX.pathname + _TXuFepGX.search, _cSAviSvM);
                  return await fetch(_lNPOImEi);
              } catch (_mRxgqKvR) {
                  return new Response(`Upstream WebSocket gateway failed: ${_mRxgqKvR._LFVTLzGR}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_wbaYhwad && _wbaYhwad.toLowerCase() === "websocket") {
          return await _DTCNOZZi(_cSAviSvM, _BQgpRFNk, _bfeocNIy);
      }
      
      const _xCagwHYB = _KdbyphYI._HLVjFSiv(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_xCagwHYB) {
          const [, _dcoxVOPv, typeSuffix] = _xCagwHYB;
          const _YgNZzilN = _bfeocNIy._YgNZzilN;
          if (!_YgNZzilN || _YgNZzilN.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/plain; _dCnJqbQm=utf-8' } });
          }
          const _scSfiMWO = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _FpxipYty = _scSfiMWO[typeSuffix];
          const _ppVJPxTX = _YgNZzilN.replace(/\/$/, '');
          const _zRMUTanr = `${_TXuFepGX.origin}/${_dcoxVOPv}`;
          const _vaxWbhGk = `${_ppVJPxTX}/${_FpxipYty}?_bfeocNIy=${encodeURIComponent(_zRMUTanr)}`;
          try {
              const _KGGkjkOT = await fetch(_vaxWbhGk, { _aLVmyjqe: { 'User-Agent': _cSAviSvM._aLVmyjqe.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _YmydUOdM = new Headers(_KGGkjkOT._aLVmyjqe);
              _YmydUOdM._FvSygfHj('Access-Control-Allow-Origin', '*');
              return new Response(_KGGkjkOT._OEtNiPyg, { status: _KGGkjkOT.status, statusText: _KGGkjkOT.statusText, _aLVmyjqe: _YmydUOdM });
          } catch (_mRxgqKvR) {
              return new Response(`获取上游订阅失败: ${_mRxgqKvR._LFVTLzGR}`, { status: 502, _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/plain; _dCnJqbQm=utf-8' } });
          }
      }

      if (_KdbyphYI.startsWith('/https:/') || _KdbyphYI.startsWith('/http:/')) {
          return _pzCKPBWC(_cSAviSvM, _bfeocNIy);
      }
      
      if (_bfeocNIy.customSubPath && _bfeocNIy.customSubPath._eIMyZaKb && _bfeocNIy.customSubPath._KdbyphYI && _KdbyphYI === '/' + _bfeocNIy.customSubPath._KdbyphYI.trim()) {
          const _KsygnFPe = _BQgpRFNk.DB.prepare("SELECT _WqXGmQGS FROM kv_data WHERE _oxBzSUFO = ?").bind(_DyxMabqM);
          const { _DFwFoguh } = await _KsygnFPe.all();
          const _TKPWzvld = _DFwFoguh._krXpfTfu > 0 ? _DFwFoguh[0]._WqXGmQGS : null;
          if (_TKPWzvld) {
              return _RoBrBDmt({ _oCpaHUJn: { _lbGOVwXK: _TKPWzvld }, _TXuFepGX: _cSAviSvM._TXuFepGX }, _BQgpRFNk);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/plain; _dCnJqbQm=utf-8' } });
          }
      }
      
      const _mDmcJDWS = _KdbyphYI.split('/').filter(Boolean);
      if (_mDmcJDWS._krXpfTfu === 1 && !_KdbyphYI.startsWith('/api/')) {
          const _dcoxVOPv = _mDmcJDWS[0];
          return _RoBrBDmt({ _oCpaHUJn: { _lbGOVwXK: _dcoxVOPv }, _TXuFepGX: _cSAviSvM._TXuFepGX }, _BQgpRFNk);
      }

      if (_KdbyphYI.startsWith('/api/')) {
          if (_KdbyphYI === '/api/_bfeocNIy' && _cSAviSvM.method === 'POST') return _whrwGofQ(_cSAviSvM, _BQgpRFNk, _OFrvjzAS);
          if (_KdbyphYI === '/api/_FvSygfHj-_xSpiSRGf') return _ltyJWemt(_cSAviSvM, _BQgpRFNk);
          if (_KdbyphYI === '/api/change-_xSpiSRGf') return _JUllYubj(_cSAviSvM, _BQgpRFNk);
          if (_KdbyphYI === '/api/verify-_xSpiSRGf') return _dQdXLiOH(_cSAviSvM, _BQgpRFNk);
          if (_KdbyphYI === '/api/verify-visitor-_xSpiSRGf' && _cSAviSvM.method === 'POST') return _JllHvtJU(_cSAviSvM, _BQgpRFNk);
          if (_KdbyphYI === '/api/cache-live-_DFwFoguh' && _cSAviSvM.method === 'POST') return _QZoRSARM(_cSAviSvM, _BQgpRFNk, _OFrvjzAS);
          if (_KdbyphYI === '/api/get-_XDiMKrpS' && _cSAviSvM.method === 'POST') return _OWOrGZAo(_cSAviSvM, _BQgpRFNk);
          if (_KdbyphYI === '/api/get-cached-_FZcryuIe') return _WTcDesHw(_cSAviSvM, _BQgpRFNk);
          if (_KdbyphYI === '/api/save-_FZcryuIe') return _tVuLzHqC(_cSAviSvM, _BQgpRFNk, _OFrvjzAS);
          if (_KdbyphYI === '/api/save-and-get-sub-_lbGOVwXK' && _cSAviSvM.method === 'POST') return _SWtDrgcF(_cSAviSvM, _BQgpRFNk);
          if (_KdbyphYI.startsWith('/api/get-_yYMoGLTS/')) {
              const _dcoxVOPv = _KdbyphYI.split('/').pop();
              return _RoBrBDmt({ _oCpaHUJn: { _lbGOVwXK: _dcoxVOPv }, _TXuFepGX: _cSAviSvM._TXuFepGX }, _BQgpRFNk);
          }
          if (_KdbyphYI === '/api/_bfeocNIy' && _cSAviSvM.method === 'GET') return _fxuXIcbJ(_BQgpRFNk);
          if (_KdbyphYI === '/api/get-resolved-_FZcryuIe') return _iwhlOCNj(_cSAviSvM);
          if (_KdbyphYI === '/api/parse-_FZcryuIe-from-_NWjNMMyu' && _cSAviSvM.method === 'POST') return _UQPRqgDd(_cSAviSvM, _BQgpRFNk);
          if (_KdbyphYI === '/api/endpoints') return _UmoJvcDL(_cSAviSvM, _BQgpRFNk);
          if (_KdbyphYI === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_KdbyphYI === '/_pfeeDWuf') return _pkBpCBkO(_cSAviSvM, _BQgpRFNk);
      if (_KdbyphYI === '/bing-wallpaper') return _oQmwJuCK();

      return _BzuvWvnZ(_cSAviSvM, _BQgpRFNk, _OFrvjzAS);
    } catch (err) {
      let _mRxgqKvR = err;
      return new Response(_mRxgqKvR.toString(), { status: 500 });
    }
  }
};

const _nsWxKXSh = { 'Accept': '_SAEyHyrI/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 _qrJofyrG(_TXuFepGX, _TCCyquQD) {
    const _dQdXhBRf = await fetch(_TXuFepGX, { _aLVmyjqe: { ..._nsWxKXSh, 'Referer': _TCCyquQD.referer } });
    if (_dQdXhBRf.ok) return _dQdXhBRf._SAEyHyrI();
    return null;
}

async function _iQyoHTtZ(_TXuFepGX, _TCCyquQD) {
    const _iuIACZsc = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_TXuFepGX)}`;
    const _dQdXhBRf = await fetch(_iuIACZsc, { _aLVmyjqe: { ..._nsWxKXSh, 'Referer': _TCCyquQD.referer } });
    if (!_dQdXhBRf.ok) return null;
    const _OEtNiPyg = await _dQdXhBRf._SAEyHyrI();
    const _HLVjFSiv = _OEtNiPyg._HLVjFSiv(/<pre[^>]*>([\s\S]*?)<\/pre>/_hhKnPIhG);
    return _HLVjFSiv && _HLVjFSiv[1] ? _HLVjFSiv[1].replace(/&amp;/g, '&') : null;
}

function _OrrvLmcp(_GeSNHDPO) {
    let _jMgpmayT;
    try {
        _jMgpmayT = atob(_GeSNHDPO.replace(/\s/g, ''));
    } catch (_mRxgqKvR) {
        _jMgpmayT = _GeSNHDPO;
    }

    const _yYMoGLTS = _jMgpmayT.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _sgRnAuei = new Set();
    const _iVfxqvBM = /@([^?#]+?):(\d+)/;

    for (const _XIDupThs of _yYMoGLTS) {
        let _eePZabgY = '';
        let _mxOpOfBL = '';

        try {
            if (_XIDupThs.startsWith('vmess://')) {
                const _hjYsbHte = atob(_XIDupThs.substring(8));
                const _bfeocNIy = JSON.parse(_hjYsbHte);
                _eePZabgY = _bfeocNIy.add;
                _mxOpOfBL = _bfeocNIy._mxOpOfBL;
            } else {
                const _HLVjFSiv = _XIDupThs._HLVjFSiv(_iVfxqvBM);
                if (_HLVjFSiv && _HLVjFSiv[1] && _HLVjFSiv[2]) {
                    _eePZabgY = _HLVjFSiv[1].replace(/[\[\]]/g, '');
                    _mxOpOfBL = _HLVjFSiv[2];
                }
            }
        } catch (_mRxgqKvR) {
            console.warn(`Could not parse _XIDupThs: ${_XIDupThs}`);
        }

        if (_eePZabgY && _mxOpOfBL) {
            _sgRnAuei.add(`${_eePZabgY}:${_mxOpOfBL}`);
        }
    }
    return Array.from(_sgRnAuei);
}

async function _giiLLIqf(_YuwnuaXq) {
    try {
        const _dQdXhBRf = await fetch(_YuwnuaXq, { _aLVmyjqe: _nsWxKXSh });
        if (!_dQdXhBRf.ok) {
            console.error(`Failed to fetch subscription: ${_dQdXhBRf.status}`);
            return [];
        }
        const _GeSNHDPO = await _dQdXhBRf._SAEyHyrI();
        return _OrrvLmcp(_GeSNHDPO);
    } catch (error) {
        console.error(`Error processing subscription ${_YuwnuaXq}:`, error);
        return [];
    }
}

async function _dyyuXagk(_rILKpoyJ) {
    const _CpPpIfKm = _rILKpoyJ.trim();
    const _WKnDhUAn = /^(vless|vmess|trojan|ss):\/\//.test(_CpPpIfKm);
    const _tPcoahPK = (() => {
        if (_CpPpIfKm._krXpfTfu < 20 || _CpPpIfKm.startsWith('http')) return false;
        const _wEmsRenM = _CpPpIfKm.replace(/\s/g, '');
        if (_wEmsRenM._krXpfTfu % 4 !== 0 && !_wEmsRenM.includes('=')) return false;
        try {
            atob(_wEmsRenM);
            return true;
        } catch (_mRxgqKvR) {
            return false;
        }
    })();

    if (_WKnDhUAn || _tPcoahPK) {
        return _OrrvLmcp(_CpPpIfKm).join('\n');
    }

    const _QSekgAPz = [
        'https://ipdb.api.030101.xyz/?_ouYmRJWQ=bestcf&_RmLXGywc=true',
        'https://ipdb.api.030101.xyz/?_ouYmRJWQ=bestproxy&_RmLXGywc=true'
    ];
    const _YCCFJeyF = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_hhKnPIhG.test(_rILKpoyJ) || _rILKpoyJ.includes('?_HTPkOeUv=');

    if (_YCCFJeyF) {
        const _FZcryuIe = await _giiLLIqf(_rILKpoyJ);
        return _FZcryuIe.join('\n');
    }

    let _GeSNHDPO = '';
    if (_QSekgAPz.includes(_rILKpoyJ)) {
        _GeSNHDPO = await _qrJofyrG(_rILKpoyJ, { referer: _rILKpoyJ });
        if (!_GeSNHDPO || _GeSNHDPO._krXpfTfu < 8) {
            _GeSNHDPO = await _iQyoHTtZ(_rILKpoyJ, { referer: _rILKpoyJ });
        }
    } else {
        try {
            const _ENGeslGW = await fetch(_rILKpoyJ, { _aLVmyjqe: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_ENGeslGW.ok) {
                _GeSNHDPO = await _ENGeslGW._SAEyHyrI();
            } else {
                console.warn(`Failed to fetch URL ${_rILKpoyJ}: ${_ENGeslGW.status}`);
            }
        } catch (_mRxgqKvR) {
            console.error(`Error fetching URL ${_rILKpoyJ}:`, _mRxgqKvR);
        }
    }

    const _FzPilTIk = _OrrvLmcp(_GeSNHDPO);
    if (_FzPilTIk._krXpfTfu > 0) {
        return _FzPilTIk.join('\n');
    }

    return _GeSNHDPO || '';
}

async function _pzCKPBWC(_cSAviSvM, _bfeocNIy) {
    if (!_bfeocNIy.streamer._eIMyZaKb) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _TXuFepGX = new URL(_cSAviSvM._TXuFepGX);
    const _tPUkhFed = _TXuFepGX.pathname.substring(1).replace(':/', '://');
    try {
        const _vaxWbhGk = new URL(_tPUkhFed);
        const _LkAUVOGP = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_LkAUVOGP.some(domain => _vaxWbhGk._eePZabgY.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _XFBcGluB = new Headers(_cSAviSvM._aLVmyjqe);
        _XFBcGluB._FvSygfHj('Host', _vaxWbhGk._eePZabgY);
        _XFBcGluB._FvSygfHj('User-Agent', 'CF-Worker-Streamer/1.0');
        const _YjubTjBg = await fetch(_vaxWbhGk.toString(), {
            method: _cSAviSvM.method,
            _aLVmyjqe: _XFBcGluB,
            _OEtNiPyg: _cSAviSvM._OEtNiPyg,
        });
        const _YmydUOdM = new Headers(_YjubTjBg._aLVmyjqe);
        _YmydUOdM._FvSygfHj('Access-Control-Allow-Origin', '*');
        _YmydUOdM._FvSygfHj('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _YmydUOdM._FvSygfHj('Access-Control-Allow-Headers', '*');
        _YmydUOdM._FvSygfHj('Cache-Control', 'public, max-age=86400');
        _YmydUOdM._FvSygfHj('X-Streamer-Source', 'CF-Worker');
        _YmydUOdM.delete('_GeSNHDPO-security-policy');
        _YmydUOdM.delete('x-_GeSNHDPO-security-policy');
        _YmydUOdM.delete('x-webkit-csp');
        return new Response(_YjubTjBg._OEtNiPyg, {
            status: _YjubTjBg.status,
            statusText: _YjubTjBg.statusText,
            _aLVmyjqe: _YmydUOdM,
        });
    } catch (_mRxgqKvR) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _DTCNOZZi(_cSAviSvM, _BQgpRFNk, _bfeocNIy) {
    try {
        const _IxaDGneB = _bfeocNIy || await _pxSLYxvP(_BQgpRFNk);
        const _uddYgRuQ = (_IxaDGneB.itemLink._aoDLJyDe && _IxaDGneB.itemLink._aoDLJyDe[0]) || {};
        const _yxKkUzqq = _uddYgRuQ['_HTPkOeUv'] || _sjhNtYIK(_EOLbnxzM);

        if (!_GVxZDSrk(_yxKkUzqq)) {
            throw new Error("Configured user _RPaiahrN is not valid.");
        }

        const _ZfmAyomD = _IxaDGneB.dataFeeds.universalFallbackAddress;
        let _VKgSgOzA = {};
        
        const _zLxaACou = _sjhNtYIK(_mfwWgmDj[0] || "");

        if (_ZfmAyomD) {
            const [_WtCmmoGF, _mxOpOfBL = '443'] = _ZfmAyomD.split(':');
            _VKgSgOzA = { _WtCmmoGF, _mxOpOfBL };
        } else {
            const [_WtCmmoGF, _mxOpOfBL = '443'] = _zLxaACou.split(':');
            _VKgSgOzA = { _WtCmmoGF, _mxOpOfBL };
        }

        const _TXuFepGX = new URL(_cSAviSvM._TXuFepGX);
        const _KdbyphYI = _TXuFepGX.pathname;
        let _MBLXoMPa = '';

        const _BwAfwxfd = _TXuFepGX.searchParams.get('remote');
        if (_BwAfwxfd) {
           _MBLXoMPa = atob(_BwAfwxfd);
        } else if (_KdbyphYI.startsWith('/endpoint=')) {
           _MBLXoMPa = _KdbyphYI.substring(10);
        } else if (_KdbyphYI._krXpfTfu > 1 && _KdbyphYI.substring(1).includes('.')) {
           _MBLXoMPa = _KdbyphYI.substring(1);
        }

        if (_MBLXoMPa) {
            const [_WtCmmoGF, _mxOpOfBL = '443'] = _MBLXoMPa.split(':');
            _VKgSgOzA = { _WtCmmoGF, _mxOpOfBL };
        }
        
        return await _IlTfnhfs(_cSAviSvM, _yxKkUzqq, _VKgSgOzA);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _IlTfnhfs(_cSAviSvM, _RPaiahrN, _VKgSgOzA) {
    const _MrqleWWM = new WebSocketPair();
    const [clientEnd, _cdYPNKCl] = Object.values(_MrqleWWM);
    _cdYPNKCl.accept();

    let _TsGJFBAZ = { _HMEacuWG: null };
    const _SDOwbYgl = _cSAviSvM._aLVmyjqe.get("sec-websocket-protocol") || "";
    const _vdjPHxeP = _ZFkDNXbV(_cdYPNKCl, _SDOwbYgl);

    _vdjPHxeP.pipeTo(new WritableStream({
        async write(chunk) {
            if (_TsGJFBAZ._HMEacuWG) {
                const _qWUFPHvx = _TsGJFBAZ._HMEacuWG.writable.getWriter();
                await _qWUFPHvx.write(chunk);
                _qWUFPHvx.releaseLock();
                return;
            }

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

            const _zgHkQihz = new Uint8Array([details._GMJVwUZB[0], 0]);
            const _eBZvEjME = chunk.slice(details.payloadIndex);

            await _vAVCFLAJ(_TsGJFBAZ, details._EymdvnOA, details._SewbIZko, _eBZvEjME, _cdYPNKCl, _zgHkQihz, _VKgSgOzA);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _fEkpvMpN(_cdYPNKCl);
    });

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

async function _vAVCFLAJ(_TsGJFBAZ, _EymdvnOA, _SewbIZko, _AiZDaMxN, _FaCBkeAE, _zgHkQihz, _mihzWSXV) {
    const _jXHkLbUV = async (_WtCmmoGF, _mxOpOfBL) => {
        let _vefKMpxI = _WtCmmoGF;
        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(_WtCmmoGF)) {
            _vefKMpxI = `${atob('d3d3Lg==')}${_WtCmmoGF}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _HMEacuWG = connect({ _eePZabgY: _vefKMpxI, _mxOpOfBL });
        _TsGJFBAZ._HMEacuWG = _HMEacuWG;
        const _qWUFPHvx = _HMEacuWG.writable.getWriter();
        await _qWUFPHvx.write(_AiZDaMxN);
        _qWUFPHvx.releaseLock();
        return _HMEacuWG;
    };

    const _gwARerPD = async () => {
        if (!_mihzWSXV._WtCmmoGF) return;
        console.log(`Direct connection failed, falling back to gateway: ${_mihzWSXV._WtCmmoGF}`);
        const _GXwPiXjT = await _jXHkLbUV(_mihzWSXV._WtCmmoGF, parseInt(_mihzWSXV._mxOpOfBL, 10));
        _GXwPiXjT.closed.catch(() => {}).finally(() => _fEkpvMpN(_FaCBkeAE));
        _ERzZBUKP(_GXwPiXjT, _FaCBkeAE, _zgHkQihz, null);
    };

    try {
        const _foTFwBqC = await _jXHkLbUV(_EymdvnOA, _SewbIZko);
        _ERzZBUKP(_foTFwBqC, _FaCBkeAE, _zgHkQihz, _gwARerPD);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _gwARerPD();
    }
}

function _ZFkDNXbV(_cdYPNKCl, _SDOwbYgl) {
    let _zSDZBeJS = false;
    return new ReadableStream({
        start(_DZISEvXM) {
            _cdYPNKCl.addEventListener("_LFVTLzGR", (event) => { if (_zSDZBeJS) return; _DZISEvXM.enqueue(event._bqlLVbdo); });
            _cdYPNKCl.addEventListener("close", () => { _fEkpvMpN(_cdYPNKCl); if (_zSDZBeJS) return; _DZISEvXM.close(); });
            _cdYPNKCl.addEventListener("error", (err) => _DZISEvXM.error(err));
            if (_SDOwbYgl) {
                try {
                    const _ftebUQtZ = atob(_SDOwbYgl.replace(/-/g, "+").replace(/_/g, "/"));
                    _DZISEvXM.enqueue(Uint8Array.from(_ftebUQtZ, c => c.charCodeAt(0))._wxiWWHBz);
                } catch (_mRxgqKvR) { console.error("Failed to decode early _bqlLVbdo:", _mRxgqKvR); }
            }
        },
        cancel() { _zSDZBeJS = true; _fEkpvMpN(_cdYPNKCl); },
    });
}

async function _RqhwcjTc(_wxiWWHBz, _RPaiahrN) {
    if (_wxiWWHBz.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _GMJVwUZB = new Uint8Array(_wxiWWHBz.slice(0, 1));
    const _KINeCqUi = _PZsFTjwl(new Uint8Array(_wxiWWHBz.slice(1, 17)));
    if (_KINeCqUi !== _RPaiahrN) return { error: true, details: "Invalid _RPaiahrN" };
    const _aGEOnxMG = new Uint8Array(_wxiWWHBz.slice(17, 18))[0];
    const _TUilpkpZ = new Uint8Array(_wxiWWHBz.slice(18 + _aGEOnxMG, 19 + _aGEOnxMG))[0];
    if (_TUilpkpZ !== 1) return { error: true, details: `Unsupported _TUilpkpZ: ${_TUilpkpZ}` };
    const _bJOHEsmA = 19 + _aGEOnxMG;
    const _SewbIZko = new DataView(_wxiWWHBz.slice(_bJOHEsmA, _bJOHEsmA + 2)).getUint16(0);
    let _hyMfQdET = _bJOHEsmA + 2;
    const _FpmIozdo = new Uint8Array(_wxiWWHBz.slice(_hyMfQdET, _hyMfQdET + 1))[0];
    let _aFwZMUat = 0;
    let _BjPsjHFw = _hyMfQdET + 1;
    let _EymdvnOA = "";
    switch (_FpmIozdo) {
        case 1: _aFwZMUat = 4; _EymdvnOA = new Uint8Array(_wxiWWHBz.slice(_BjPsjHFw, _BjPsjHFw + _aFwZMUat)).join("."); break;
        case 2: _aFwZMUat = new Uint8Array(_wxiWWHBz.slice(_BjPsjHFw, _BjPsjHFw + 1))[0]; _BjPsjHFw++; _EymdvnOA = new TextDecoder().decode(_wxiWWHBz.slice(_BjPsjHFw, _BjPsjHFw + _aFwZMUat)); break;
        case 3: _aFwZMUat = 16; const _GveKnQgA = new DataView(_wxiWWHBz.slice(_BjPsjHFw, _BjPsjHFw + _aFwZMUat)); const _vOYKmqCB = []; for (let _hhKnPIhG = 0; _hhKnPIhG < 8; _hhKnPIhG++) _vOYKmqCB.push(_GveKnQgA.getUint16(_hhKnPIhG * 2).toString(16)); _EymdvnOA = _vOYKmqCB.join(":"); break;
        default: return { error: true, details: `Invalid _fNdfwUQC _ouYmRJWQ: ${_FpmIozdo}` };
    }
    if (!_EymdvnOA) return { error: true, details: "Target _WtCmmoGF is empty" };
    return { error: false, details: { _EymdvnOA, _SewbIZko, _GMJVwUZB, payloadIndex: _BjPsjHFw + _aFwZMUat } };
}

async function _ERzZBUKP(_HMEacuWG, _FaCBkeAE, _RossoHHa, _rkrKpOVL) {
    let _LlTzOzeb = _RossoHHa;
    let _gbHcllWB = false;
    let _VGvOKDUX = _HMEacuWG._vdjPHxeP.pipeTo(new WritableStream({
        write(chunk) {
            _gbHcllWB = true;
            if (_FaCBkeAE.readyState !== 1) throw new Error("Channel is not open");
            if (_LlTzOzeb) {
                const _vgkDkUzc = new Uint8Array(_LlTzOzeb.byteLength + chunk.byteLength);
                _vgkDkUzc._FvSygfHj(new Uint8Array(_LlTzOzeb));
                _vgkDkUzc._FvSygfHj(new Uint8Array(chunk), _LlTzOzeb.byteLength);
                _FaCBkeAE.send(_vgkDkUzc._wxiWWHBz);
                _LlTzOzeb = null;
            } else {
                _FaCBkeAE.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _FaCBkeAE error:", err._LFVTLzGR);
    });

    await _VGvOKDUX;
    if (!_gbHcllWB && _rkrKpOVL) {
        _rkrKpOVL();
    }
}

function _fEkpvMpN(_FaCBkeAE) {
    try { if (_FaCBkeAE.readyState === 1 || _FaCBkeAE.readyState === 2) _FaCBkeAE.close(); } catch (_mRxgqKvR) {}
}

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

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

async function _UpJsqGTM(_TXuFepGX, _LwkQOCxT, _rkrKpOVL) {
    try {
        const _dQdXhBRf = await fetch(_TXuFepGX, {
            _aLVmyjqe: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_dQdXhBRf.ok) {
            console.error(`获取 ${_TXuFepGX} 失败: HTTP ${_dQdXhBRf.status}`);
            return _rkrKpOVL;
        }
        const _SAEyHyrI = await _dQdXhBRf._SAEyHyrI();
        return _LwkQOCxT(_SAEyHyrI);
    } catch (error) {
        console.error(`获取或解析 ${_TXuFepGX} 时发生网络错误: ${error._LFVTLzGR}`);
        return _rkrKpOVL;
    }
}

function _AJqrVrvA(_SAEyHyrI) {
    if (!_SAEyHyrI) return [];
    const _RufmjXVl = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _wIySxNDg = _SAEyHyrI.split(/[\s,;#|]+/);
    const _bAdLOwLB = [];
    for (const _bOKKhrtl of _wIySxNDg) {
        const _CtuUiqHD = _bOKKhrtl.trim();
        if (!_CtuUiqHD) continue;
        const _mtPhadBH = _CtuUiqHD.lastIndexOf(':');
        let _bMeNrYqc = _CtuUiqHD;
        if(_mtPhadBH > _CtuUiqHD.lastIndexOf(']')) {
             const _LMeUWCxV = _CtuUiqHD.substring(_mtPhadBH + 1);
             if(!isNaN(_LMeUWCxV) && _LMeUWCxV._krXpfTfu > 0) {
                _bMeNrYqc = _CtuUiqHD.substring(0, _mtPhadBH);
             }
        }
        if (_VCkjATAy.isValid(_bMeNrYqc.replace(/[\[\]]/g, '')) || _RufmjXVl.test(_CtuUiqHD)) {
            _bAdLOwLB.push(_CtuUiqHD);
        }
    }
    return _bAdLOwLB;
}

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

function _zgFdKuMK(_SAEyHyrI) {
    if (!_SAEyHyrI) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_SAEyHyrI}}`);
    } catch (_mRxgqKvR) {
        console.error("解析 _NEGEbOIm 失败:", _mRxgqKvR);
        return { "N/A": "未知" };
    }
}

const _VCkjATAy = {
    isValid: (_pfeeDWuf) => _VCkjATAy.isIPv4(_pfeeDWuf) || _VCkjATAy.isIPv6(_pfeeDWuf),
    isIPv4: (_pfeeDWuf) => {
        if (typeof _pfeeDWuf !== 'string') return false;
        const _vOYKmqCB = _pfeeDWuf.split('.');
        if (_vOYKmqCB._krXpfTfu !== 4) return false;
        return _vOYKmqCB.every(_PrRGarUL => {
            const _WgeCpRPQ = parseInt(_PrRGarUL, 10);
            return !isNaN(_WgeCpRPQ) && _WgeCpRPQ >= 0 && _WgeCpRPQ <= 255 && String(_WgeCpRPQ) === _PrRGarUL;
        });
    },
    isIPv6: (_pfeeDWuf) => {
        if (typeof _pfeeDWuf !== '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]))$/_hhKnPIhG.test(_pfeeDWuf);
    },
    toLong4: (_pfeeDWuf) => _pfeeDWuf.split('.').reduce((acc, octet, _hhKnPIhG) => acc + (parseInt(octet) << (8*(3-_hhKnPIhG))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_pfeeDWuf) => {
        try {
            const _OULDqnar = _pfeeDWuf.split('/')[0];
            const _vOYKmqCB = _OULDqnar.split('::');
            if (_vOYKmqCB._krXpfTfu > 2) return 0n;
            let _nAILscHy = [];
            if (_vOYKmqCB[0]) {
                _nAILscHy = _vOYKmqCB[0].split(':');
            }
            let _qgEozExP = [];
            if (_vOYKmqCB._krXpfTfu > 1 && _vOYKmqCB[1]) {
                _qgEozExP = _vOYKmqCB[1].split(':');
            }
            if (_nAILscHy._krXpfTfu + _qgEozExP._krXpfTfu > 8) return 0n;
            const _iplWlDMz = 8 - (_nAILscHy._krXpfTfu + _qgEozExP._krXpfTfu);
            const _BvPZZuMT = [
                ..._nAILscHy,
                ...Array(_iplWlDMz).fill('0'),
                ..._qgEozExP
            ].map(_PrRGarUL => _PrRGarUL || '0');
            while(_BvPZZuMT._krXpfTfu < 8) {
                _BvPZZuMT.push('0');
            }
            let _YFcPyqHv = 0n;
            for (const _PrRGarUL of _BvPZZuMT) {
                if (_PrRGarUL._krXpfTfu > 4) return 0n;
                const _WqXGmQGS = BigInt('0x' + _PrRGarUL);
                _YFcPyqHv = (_YFcPyqHv << 16n) | _WqXGmQGS;
            }
            return _YFcPyqHv;
        } catch(_mRxgqKvR) {
            return 0n;
        }
    },
    fromBigInt6: (_YFcPyqHv) => {
        if (typeof _YFcPyqHv !== '_YFcPyqHv' || _YFcPyqHv < 0n) return null;
        const _vOYKmqCB = [];
        for (let _hhKnPIhG = 0; _hhKnPIhG < 8; _hhKnPIhG++) {
            _vOYKmqCB.unshift((_YFcPyqHv & 0xFFFFn).toString(16));
            _YFcPyqHv >>= 16n;
        }
        let _KgRuwWXS = { start: -1, _QBATQkqq: 0 };
        let _qZqIManv = { start: -1, _QBATQkqq: 0 };
        for (let _hhKnPIhG = 0; _hhKnPIhG < 8; _hhKnPIhG++) {
            if (_vOYKmqCB[_hhKnPIhG] === '0') {
                if (_qZqIManv.start === -1) _qZqIManv.start = _hhKnPIhG;
                _qZqIManv._QBATQkqq++;
            } else {
                if (_qZqIManv._QBATQkqq > _KgRuwWXS._QBATQkqq) _KgRuwWXS = { ..._qZqIManv };
                _qZqIManv = { start: -1, _QBATQkqq: 0 };
            }
        }
        if (_qZqIManv._QBATQkqq > _KgRuwWXS._QBATQkqq) _KgRuwWXS = { ..._qZqIManv };
        if (_KgRuwWXS._QBATQkqq > 1) {
            _vOYKmqCB.splice(_KgRuwWXS.start, _KgRuwWXS._QBATQkqq, '');
            if (_KgRuwWXS.start === 0) _vOYKmqCB.unshift('');
            if (_KgRuwWXS.start + _KgRuwWXS._QBATQkqq === 8) _vOYKmqCB.push('');
        }
        return _vOYKmqCB.join(':');
    },
    cidrToRange: (cidr, _AOwWYZKp = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _FUdhRxuK = parseInt(bitsStr, 10);
            const _FZcryuIe = new Set();
            if (_VCkjATAy.isIPv4(range)) {
                if (isNaN(_FUdhRxuK) || _FUdhRxuK < 8 || _FUdhRxuK > 32) return [];
                if (_FUdhRxuK === 32) return [range];
                const _eqmjGDkS = _VCkjATAy.toLong4(range);
                const _CJQoXHzp = (0xFFFFFFFF << (32 - _FUdhRxuK)) >>> 0;
                const _Lzxmwjmm = _eqmjGDkS & _CJQoXHzp;
                const _gJhFnZcM = 1 << (32 - _FUdhRxuK);
                if (_gJhFnZcM <= 2) return [];
                const _GAIQkxue = Math.min(_AOwWYZKp, _gJhFnZcM - 2);
                let _gJdXrKaW = 0;
                while (_FZcryuIe.size < _GAIQkxue && _gJdXrKaW < _GAIQkxue * 5) {
                    const _pNFsKBQc = Math.floor(Math.random() * (_gJhFnZcM - 2)) + 1;
                    _FZcryuIe.add(_VCkjATAy.fromLong4((_Lzxmwjmm + _pNFsKBQc) >>> 0));
                    _gJdXrKaW++;
                }
                return Array.from(_FZcryuIe);
            } else if (_VCkjATAy.isIPv6(range)) {
                if (isNaN(_FUdhRxuK) || _FUdhRxuK < 16 || _FUdhRxuK > 128) return [];
                 if (_FUdhRxuK === 128) return [range];
                const _MfxYtrOH = _VCkjATAy.toBigInt6(range);
                const _CJQoXHzp = (2n ** BigInt(128 - _FUdhRxuK) - 1n);
                const _Lzxmwjmm = _MfxYtrOH & ~_CJQoXHzp;
                const _EvubWwhW = 2n ** BigInt(128 - _FUdhRxuK);
                if (_EvubWwhW <= 2n) return [];
                let _gJdXrKaW = 0;
                while (_FZcryuIe.size < _AOwWYZKp && _gJdXrKaW < _AOwWYZKp * 5) {
                     const _egHiFPna = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_egHiFPna);
                     let _BriEIIBP = 0n;
                     for (const _IHhMSwTA of _egHiFPna) {
                         _BriEIIBP = (_BriEIIBP << 8n) | BigInt(_IHhMSwTA);
                     }
                     const _pNFsKBQc = _BriEIIBP % (_EvubWwhW - 2n) + 1n;
                     _FZcryuIe.add(_VCkjATAy.fromBigInt6(_Lzxmwjmm + _pNFsKBQc));
                     _gJdXrKaW++;
                }
                return Array.from(_FZcryuIe);
            }
            return [];
        } catch(_mRxgqKvR) {
            console.error(`CIDR to range failed for ${cidr}:`, _mRxgqKvR);
            return [];
        }
    }
};

function _tyPXiLnz(_azKgPsKr, _CNaPASvE) {
    const _DezsRSZc = {};
    const _gBOhCNJY = Object._gBOhCNJY(_CNaPASvE);
    const _vOYKmqCB = _gBOhCNJY.map(_oxBzSUFO => {
        const _JSVLjaEL = _azKgPsKr * (_CNaPASvE[_oxBzSUFO] / 100);
        return { _oxBzSUFO, _AOwWYZKp: Math.floor(_JSVLjaEL), remainder: _JSVLjaEL - Math.floor(_JSVLjaEL) };
    });
    let _ZylvYyfi = _vOYKmqCB.reduce((acc, _PrRGarUL) => acc + _PrRGarUL._AOwWYZKp, 0);
    _vOYKmqCB.sort((a, b) => b.remainder - a.remainder);
    let _ibXExrHc = _azKgPsKr - _ZylvYyfi;
    for (let _hhKnPIhG = 0; _hhKnPIhG < _ibXExrHc; _hhKnPIhG++) {
        _vOYKmqCB[_hhKnPIhG % _vOYKmqCB._krXpfTfu]._AOwWYZKp++;
    }
    for (const _PrRGarUL of _vOYKmqCB) {
        _DezsRSZc[_PrRGarUL._oxBzSUFO] = _PrRGarUL._AOwWYZKp;
    }
    return _DezsRSZc;
}

async function _NmelgyXg(_BQgpRFNk) {
    const _KsygnFPe = _BQgpRFNk.DB.prepare("SELECT _WqXGmQGS FROM kv_data WHERE _oxBzSUFO = ?").bind(_aYSNumFE);
    const { _DFwFoguh } = await _KsygnFPe.all();
    return _DFwFoguh._krXpfTfu > 0 ? _DFwFoguh[0]._WqXGmQGS : null;
}

async function _wniuQujY(_BQgpRFNk, _xSpiSRGf) {
    const _KsygnFPe = _BQgpRFNk.DB.prepare(
        "INSERT INTO kv_data (_oxBzSUFO, _WqXGmQGS) VALUES (?, ?) ON CONFLICT(_oxBzSUFO) DO UPDATE SET _WqXGmQGS = excluded._WqXGmQGS"
    );
    await _KsygnFPe.bind(_aYSNumFE, _xSpiSRGf).run();
}

async function _dQdXLiOH(_cSAviSvM, _BQgpRFNk) {
    const { _xSpiSRGf } = await _cSAviSvM.json();
    const _kejixNLM = await _NmelgyXg(_BQgpRFNk);
    if (_kejixNLM === _xSpiSRGf) {
        return _FjDkkXbu({ success: true });
    }
    return _FjDkkXbu({ success: false, _LFVTLzGR: '密码错误' }, 401);
}

async function _JllHvtJU(_cSAviSvM, _BQgpRFNk) {
    const _tjvUOTzb = await _pxSLYxvP(_BQgpRFNk);
    if (!_tjvUOTzb.visitorPassword || !_tjvUOTzb.visitorPassword._eIMyZaKb) {
        return _FjDkkXbu({ success: true });
    }
    try {
        const { _xSpiSRGf } = await _cSAviSvM.json();
        const _OKTSoGeh = _tjvUOTzb.visitorPassword._xSpiSRGf;
        if (_OKTSoGeh && _xSpiSRGf === _OKTSoGeh) {
            return _FjDkkXbu({ success: true });
        }
        return _FjDkkXbu({ success: false, _LFVTLzGR: '访客密码错误' }, 401);
    } catch (_mRxgqKvR) {
        return _FjDkkXbu({ success: false, _LFVTLzGR: '无效请求' }, 400);
    }
}

async function _ltyJWemt(_cSAviSvM, _BQgpRFNk) {
    const _ZZMniZGM = await _NmelgyXg(_BQgpRFNk);
    if (_ZZMniZGM) {
        return _FjDkkXbu({ success: false, _LFVTLzGR: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _xSpiSRGf } = await _cSAviSvM.json();
    if (!_xSpiSRGf || _xSpiSRGf._krXpfTfu < 6) {
        return _FjDkkXbu({ success: false, _LFVTLzGR: "密码长度不能少于6位。" }, 400);
    }
    await _wniuQujY(_BQgpRFNk, _xSpiSRGf);
    return _FjDkkXbu({ success: true, _LFVTLzGR: "初始密码设置成功!请刷新页面并登录。" });
}

async function _JUllYubj(_cSAviSvM, _BQgpRFNk) {
    const { _eZTFgLxK, _IgjFgxBj } = await _cSAviSvM.json();
    const _kejixNLM = await _NmelgyXg(_BQgpRFNk);
    if (_kejixNLM !== _eZTFgLxK) {
        return _FjDkkXbu({ success: false, _LFVTLzGR: "旧密码错误。" }, 403);
    }
    if (!_IgjFgxBj || _IgjFgxBj._krXpfTfu < 6) {
        return _FjDkkXbu({ success: false, _LFVTLzGR: "新密码长度不能少于6位。" }, 400);
    }
    await _wniuQujY(_BQgpRFNk, _IgjFgxBj);
    return _FjDkkXbu({ success: true, _LFVTLzGR: "密码修改成功!" });
}

function _bPIcRoaU() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _YgNZzilN: '',
        api: {
            _eIMyZaKb: true,
            _LFVTLzGR: '维护中...',
        },
        ispFilter: { _eIMyZaKb: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _eIMyZaKb: true
        },
        websocketStreamer: {
            _eIMyZaKb: true,
            _TXuFepGX: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _eIMyZaKb: true
        },
        visitorPassword: {
            _eIMyZaKb: false,
            _xSpiSRGf: '',
        },
        customSubPath: {
            _eIMyZaKb: false,
            _KdbyphYI: 'latest',
        },
        subscriptionId: {
            _krXpfTfu: 8,
            _dCnJqbQm: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _eIMyZaKb: true,
            template: 'vless://{_HTPkOeUv}@{_pfeeDWuf}:{_mxOpOfBL}?encryption=none&security=tls&sni={_WtCmmoGF}&fp=random&_ouYmRJWQ=ws&_WtCmmoGF={_WtCmmoGF}&_KdbyphYI={_KdbyphYI}#{_LjwRQGhy}',
            selectionMode: 'first',
            _aoDLJyDe: [
                { _LjwRQGhy: '默认配置', _WtCmmoGF: '', '_HTPkOeUv': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _KdbyphYI: '/?ed=2560' }
            ],
            _arRQbRot: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _eIMyZaKb: false,
                _SAEyHyrI: '',
                _UseSqtuY: 5
            },
            marquee: {
                _eIMyZaKb: false,
                _SAEyHyrI: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _eIMyZaKb: true,
            sources: [
                { _QtxpDFRo: 'CF官方IPV4', _FZcryuIe: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _YaNbgTyl: false, _eIMyZaKb: true, _TqLmvRVL: 20 },
                { _QtxpDFRo: 'CF官方IPV6', _FZcryuIe: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _YaNbgTyl: false, _eIMyZaKb: true, _TqLmvRVL: 20 },
                { _QtxpDFRo: '反代优选0', _FZcryuIe: 'https://wvs.sosorg.nyc.mn/sub?_HTPkOeUv=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_ouYmRJWQ=ws&_WtCmmoGF=ss.nzvrn.com&_KdbyphYI=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _YaNbgTyl: false, _eIMyZaKb: true, _TqLmvRVL: 30 },
                { _QtxpDFRo: '官方优选1', _FZcryuIe: 'https://ipdb.api.030101.xyz/?_ouYmRJWQ=bestcf&_RmLXGywc=true', _YaNbgTyl: false, _eIMyZaKb: true, _TqLmvRVL: 10 },
                { _QtxpDFRo: '反代优选2', _FZcryuIe: 'https://ipdb.api.030101.xyz/?_ouYmRJWQ=bestproxy&_RmLXGywc=true', _YaNbgTyl: false, _eIMyZaKb: true, _TqLmvRVL: 5 },
                { _QtxpDFRo: '官方优选2', _FZcryuIe: 'https://addressesapi.090227.xyz/_pfeeDWuf.164746.xyz', _YaNbgTyl: false, _eIMyZaKb: true, _TqLmvRVL: 10 },
				{ _QtxpDFRo: '官方优选3', _FZcryuIe: 'https://cfxr.eu.org/getSub?_WtCmmoGF=snipaste.huggy.qzz.io', _YaNbgTyl: false, _eIMyZaKb: true, _TqLmvRVL: 5 },
                { _QtxpDFRo: '官方优选4', _FZcryuIe: 'https://addressesapi.090227.xyz/CloudFlareYes', _YaNbgTyl: false, _eIMyZaKb: true, _TqLmvRVL: 10 }
            ]
        },
        customNodes: {
            _eIMyZaKb: 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 _WuHEDyzy(_utHmYHyR, _BQrQKBDt) {
    if (!_utHmYHyR) return _BQrQKBDt;
    const _EdEkPrHH = { ..._BQrQKBDt };
    for (const _oxBzSUFO in _BQrQKBDt) {
        if (_utHmYHyR.hasOwnProperty(_oxBzSUFO)) {
             if (typeof _utHmYHyR[_oxBzSUFO] === 'object' && _utHmYHyR[_oxBzSUFO] !== null && !Array.isArray(_utHmYHyR[_oxBzSUFO]) && typeof _BQrQKBDt[_oxBzSUFO] === 'object' && _BQrQKBDt[_oxBzSUFO] !== null && !Array.isArray(_BQrQKBDt[_oxBzSUFO])) {
                _EdEkPrHH[_oxBzSUFO] = _WuHEDyzy(_utHmYHyR[_oxBzSUFO], _BQrQKBDt[_oxBzSUFO]);
            } else {
                _EdEkPrHH[_oxBzSUFO] = _utHmYHyR[_oxBzSUFO];
            }
        }
    }
    return _EdEkPrHH;
}

async function _pxSLYxvP(_BQgpRFNk) {
    try {
        const _KsygnFPe = _BQgpRFNk.DB.prepare("SELECT _WqXGmQGS FROM kv_data WHERE _oxBzSUFO = ?").bind(_PjqXLGbJ);
        const { _DFwFoguh } = await _KsygnFPe.all();
        const _SjcfgIyr = _DFwFoguh._krXpfTfu > 0 ? _DFwFoguh[0]._WqXGmQGS : null;
        const _XrPpLmCA = _SjcfgIyr ? JSON.parse(_SjcfgIyr) : {};
        return _WuHEDyzy(_XrPpLmCA, _bPIcRoaU());
    } catch (_mRxgqKvR) {
        console.error("无法从D1获取或解析全局配置:", _mRxgqKvR);
        return _bPIcRoaU();
    }
}

async function _fxuXIcbJ(_BQgpRFNk) {
    const _bfeocNIy = await _pxSLYxvP(_BQgpRFNk);
    return _FjDkkXbu(_bfeocNIy);
}

async function _whrwGofQ(_cSAviSvM, _BQgpRFNk, _OFrvjzAS) {
    try {
        const { _bfeocNIy, adminPassword } = await _cSAviSvM.json();
        const _kejixNLM = await _NmelgyXg(_BQgpRFNk);
        if (_kejixNLM !== adminPassword) {
            return _FjDkkXbu({ success: false, _LFVTLzGR: "管理员密码错误" }, 403);
        }
        const _KsygnFPe = _BQgpRFNk.DB.prepare(
          "INSERT INTO kv_data (_oxBzSUFO, _WqXGmQGS) VALUES (?, ?) ON CONFLICT(_oxBzSUFO) DO UPDATE SET _WqXGmQGS = excluded._WqXGmQGS"
        );
        const _StJbzmtW = _KsygnFPe.bind(_PjqXLGbJ, JSON.stringify(_bfeocNIy)).run();
        _OFrvjzAS.waitUntil(_StJbzmtW);
        return _FjDkkXbu({ success: true, _LFVTLzGR: "配置已成功保存!" });
    } catch (_mRxgqKvR) {
        return _FjDkkXbu({ success: false, _LFVTLzGR: `保存失败: ${_mRxgqKvR._LFVTLzGR}` }, 500);
    }
}

async function _oQmwJuCK() {
    const _mKXlNOZS = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _gjTanyOH = await fetch(_mKXlNOZS);
        const _EPeBKWMZ = await _gjTanyOH.json();
        const _xfwCpwUV = 'https://www.bing.com' + _EPeBKWMZ.images[0]._TXuFepGX;
        return fetch(_xfwCpwUV);
    } catch (_mRxgqKvR) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _RgPCkEsr(_pfeeDWuf) {
    try {
        const _dQdXhBRf = await fetch(`http://_pfeeDWuf-api.com/json/${_pfeeDWuf}?fields=status,_RmLXGywc,countryCode,_qZkYObNT&lang=zh-CN`);
        if (_dQdXhBRf.ok) {
            const _bqlLVbdo = await _dQdXhBRf.json();
            if (_bqlLVbdo.status === 'success' && (_bqlLVbdo.countryCode || _bqlLVbdo._RmLXGywc)) {
                let _qZkYObNT = _bqlLVbdo._qZkYObNT || '未知';
                if (_qZkYObNT.toLowerCase().includes('cloudflare')) {
                    _qZkYObNT = 'CloudFlare';
                }
                return {
                    _QtxpDFRo: _NEGEbOIm[_bqlLVbdo.countryCode] || _bqlLVbdo._RmLXGywc || _bqlLVbdo.countryCode,
                    _qZkYObNT: _qZkYObNT
                };
            }
        }
    } catch (_mRxgqKvR) {}

    try {
        const _dQdXhBRf = await fetch(`https://api._pfeeDWuf.sb/geoip/${_pfeeDWuf}`);
        if (_dQdXhBRf.ok) {
            const _bqlLVbdo = await _dQdXhBRf.json();
            if (_bqlLVbdo.country_code || _bqlLVbdo._RmLXGywc) {
                let _qZkYObNT = _bqlLVbdo._qZkYObNT || '未知';
                if (_qZkYObNT.toLowerCase().includes('cloudflare')) {
                    _qZkYObNT = 'CloudFlare';
                }
                return {
                    _QtxpDFRo: _NEGEbOIm[_bqlLVbdo.country_code] || _bqlLVbdo._RmLXGywc || _bqlLVbdo.country_code,
                    _qZkYObNT: _qZkYObNT
                };
            }
        }
    } catch (_mRxgqKvR) {}
    
    return { _QtxpDFRo: '未知', _qZkYObNT: '未知' };
}

async function _OWOrGZAo(_cSAviSvM, _BQgpRFNk) {
    try {
        const { _FZcryuIe } = await _cSAviSvM.json();
        if (!Array.isArray(_FZcryuIe)) {
            return _FjDkkXbu({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _ppQlVRsv = _FZcryuIe.map(_pfeeDWuf => _RgPCkEsr(_pfeeDWuf).then(_XDiMKrpS => ({ _pfeeDWuf, ..._XDiMKrpS })));
        const _DFwFoguh = await Promise.all(_ppQlVRsv);
        return _FjDkkXbu(_DFwFoguh);
    } catch (_mRxgqKvR) {
        return _FjDkkXbu({ error: `获取地理位置失败: ${_mRxgqKvR._LFVTLzGR}` }, 500);
    }
}

async function _WTcDesHw(_cSAviSvM, _BQgpRFNk) {
    const _bfeocNIy = await _pxSLYxvP(_BQgpRFNk);
    if (!_bfeocNIy.cloudStorage._eIMyZaKb) {
        return _FjDkkXbu({ _DFwFoguh: [], generatedBy: null });
    }
    try {
        const _KsygnFPe = _BQgpRFNk.DB.prepare("SELECT _WqXGmQGS FROM kv_data WHERE _oxBzSUFO = ?").bind(_slGECYiz);
        const { _DFwFoguh } = await _KsygnFPe.all();
        const _jrlLhFob = _DFwFoguh._krXpfTfu > 0 ? _DFwFoguh[0]._WqXGmQGS : null;
        const _KltbGVCE = _jrlLhFob ? JSON.parse(_jrlLhFob) : null;
        return _FjDkkXbu(_KltbGVCE || { _DFwFoguh: [], generatedBy: null });
    } catch (_mRxgqKvR) {
        console.error("从D1读取缓存IP失败:", _mRxgqKvR);
        return _FjDkkXbu({ _DFwFoguh: [], generatedBy: null });
    }
}

async function _tVuLzHqC(_cSAviSvM, _BQgpRFNk, _OFrvjzAS) {
    const _bfeocNIy = await _pxSLYxvP(_BQgpRFNk);
    if (!_bfeocNIy.cloudStorage._eIMyZaKb) {
        return _FjDkkXbu({ success: true, _LFVTLzGR: "云端存储已禁用,不保存结果。" });
    }
    const _kOVyDmPo = _cSAviSvM._aLVmyjqe.get('CF-Connecting-IP') || "未知IP";
    const _RmLXGywc = _cSAviSvM.cf?._RmLXGywc || "未知";
    const _VOCJyPDl = _cSAviSvM.cf?._VOCJyPDl || "";
    let _vYsDJHNf = _NEGEbOIm[_RmLXGywc] || _RmLXGywc;
    if (_VOCJyPDl && _VOCJyPDl !== "未知城市" && _VOCJyPDl !== _RmLXGywc) _vYsDJHNf = `${_vYsDJHNf} ${_NEGEbOIm[_VOCJyPDl] || _VOCJyPDl}`;
    const _WSqtPOZL = {
        _pfeeDWuf: _HehISiPl(_kOVyDmPo),
        _QtxpDFRo: _vYsDJHNf.trim(),
        time: _vcxwsFPi()
    };
    try {
        const _WmZrgLub = await _cSAviSvM.json();
        if (!Array.isArray(_WmZrgLub)) return _FjDkkXbu({ error: "无效数据格式" }, 400);
        const _RGLIncKO = _WmZrgLub.map(_wHNqCKoJ => ({
            _pfeeDWuf: String(_wHNqCKoJ._pfeeDWuf || ''),
            _mxOpOfBL: _wHNqCKoJ._mxOpOfBL ? parseInt(_wHNqCKoJ._mxOpOfBL, 10) : undefined,
            _OMCNfhOf: parseInt(_wHNqCKoJ._OMCNfhOf, 10),
            _QtxpDFRo: typeof _wHNqCKoJ._QtxpDFRo === 'string' ? _wHNqCKoJ._QtxpDFRo.substring(0, 50) : 'N/A',
            _qZkYObNT: typeof _wHNqCKoJ._qZkYObNT === 'string' ? _wHNqCKoJ._qZkYObNT.substring(0, 100) : 'N/A'
        }));
        const _mBeUpQsn = {
            generatedBy: _WSqtPOZL,
            _DFwFoguh: _RGLIncKO
        };
        const _gEExSKHo = _BQgpRFNk.DB.prepare(
          "INSERT INTO kv_data (_oxBzSUFO, _WqXGmQGS) VALUES (?, ?) ON CONFLICT(_oxBzSUFO) DO UPDATE SET _WqXGmQGS = excluded._WqXGmQGS"
        ).bind(_slGECYiz, JSON.stringify(_mBeUpQsn)).run();
        if (_bfeocNIy.telegram.bot_token && _bfeocNIy.telegram.chat_id) {
            const _EkExdcJx = _RGLIncKO.map(r => `${r._pfeeDWuf} ~ ${r._QtxpDFRo}`).join('\n');
            const _pMDUstOp = `优选完成!\n来源: ${_WSqtPOZL._pfeeDWuf} (${_WSqtPOZL._QtxpDFRo})\n时间: ${_WSqtPOZL.time}\n\n结果:\n${_EkExdcJx}`;
            const _mWsShxQq = `https://api.telegram.org/bot${_bfeocNIy.telegram.bot_token}/sendMessage?chat_id=${_bfeocNIy.telegram.chat_id}&_SAEyHyrI=${encodeURIComponent(_pMDUstOp)}`;
            const _lPEuAehy = fetch(_mWsShxQq).catch(_mRxgqKvR => console.error("Telegram结果通知失败:", _mRxgqKvR));
            _OFrvjzAS.waitUntil(Promise.all([_gEExSKHo, _lPEuAehy]));
        } else {
             _OFrvjzAS.waitUntil(_gEExSKHo);
        }
        return _FjDkkXbu({ success: true, _LFVTLzGR: "结果已保存" });
    } catch (_mRxgqKvR) {
        return _FjDkkXbu({ error: "D1写入失败", _LFVTLzGR: _mRxgqKvR._LFVTLzGR }, 500);
    }
}

async function _QZoRSARM(_cSAviSvM, _BQgpRFNk, _OFrvjzAS) {
    try {
        const _uLyPXsFl = await _cSAviSvM.json();
        if (!Array.isArray(_uLyPXsFl)) return _FjDkkXbu({ error: "无效数据格式" }, 400);
        const _mBeUpQsn = {
            _DFwFoguh: _uLyPXsFl
        };
        const _KsygnFPe = _BQgpRFNk.DB.prepare(
          "INSERT INTO kv_data (_oxBzSUFO, _WqXGmQGS) VALUES (?, ?) ON CONFLICT(_oxBzSUFO) DO UPDATE SET _WqXGmQGS = excluded._WqXGmQGS"
        );
        const _StJbzmtW = _KsygnFPe.bind(_SHvxuLwA, JSON.stringify(_mBeUpQsn)).run();
        _OFrvjzAS.waitUntil(_StJbzmtW);
        return _FjDkkXbu({ success: true });
    } catch (_mRxgqKvR) {
        return _FjDkkXbu({ error: "D1写入临时缓存失败", _LFVTLzGR: _mRxgqKvR._LFVTLzGR }, 500);
    }
}

function _iDPgdzoF(_krXpfTfu, _dCnJqbQm) {
    let _ThRYDXlK = '';
    const _xDXgBaRG = _dCnJqbQm._krXpfTfu;
    for (let _hhKnPIhG = 0; _hhKnPIhG < _krXpfTfu; _hhKnPIhG++) {
        _ThRYDXlK += _dCnJqbQm.charAt(Math.floor(Math.random() * _xDXgBaRG));
    }
    return _ThRYDXlK;
}

async function _SWtDrgcF(_cSAviSvM, _BQgpRFNk) {
    try {
        const _WmZrgLub = await _cSAviSvM.json();
        if (!Array.isArray(_WmZrgLub) || _WmZrgLub._krXpfTfu === 0) {
            return _FjDkkXbu({ error: "无效或空的IP列表" }, 400);
        }

        const _bfeocNIy = await _pxSLYxvP(_BQgpRFNk);
        const _vJshDqVg = _bfeocNIy.subscriptionId || { _krXpfTfu: 8, _dCnJqbQm: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _dcoxVOPv;
        let _BfZIFubh = false;
        let _gJdXrKaW = 0;
        const _wsifmkir = 10;

        while (!_BfZIFubh && _gJdXrKaW < _wsifmkir) {
            _dcoxVOPv = _iDPgdzoF(_vJshDqVg._krXpfTfu, _vJshDqVg._dCnJqbQm);
            const { _DFwFoguh } = await _BQgpRFNk.DB.prepare("SELECT _lbGOVwXK FROM optimized_results WHERE _lbGOVwXK = ?").bind(_dcoxVOPv).all();
            if (_DFwFoguh._krXpfTfu === 0) {
                _BfZIFubh = true;
            }
            _gJdXrKaW++;
        }

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

        const _SYptGhtr = JSON.stringify({ _FZcryuIe: _WmZrgLub });
        await _BQgpRFNk.DB.prepare(
            "INSERT INTO optimized_results (_lbGOVwXK, _bqlLVbdo) VALUES (?, ?)"
        ).bind(_dcoxVOPv, _SYptGhtr).run();
        await _BQgpRFNk.DB.prepare(
            "INSERT INTO kv_data (_oxBzSUFO, _WqXGmQGS) VALUES (?, ?) ON CONFLICT(_oxBzSUFO) DO UPDATE SET _WqXGmQGS = excluded._WqXGmQGS"
        ).bind(_DyxMabqM, _dcoxVOPv).run();
            
        return _FjDkkXbu({ success: true, _lbGOVwXK: _dcoxVOPv });
    } catch (_mRxgqKvR) {
        return _FjDkkXbu({ error: "保存优选结果失败", _LFVTLzGR: _mRxgqKvR._LFVTLzGR }, 500);
    }
}

async function _RoBrBDmt(_cSAviSvM, _BQgpRFNk) {
    try {
        const _dcoxVOPv = _cSAviSvM._oCpaHUJn._lbGOVwXK;
        if (!_dcoxVOPv) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _ThRYDXlK = await _BQgpRFNk.DB.prepare("SELECT _bqlLVbdo FROM optimized_results WHERE _lbGOVwXK = ?").bind(_dcoxVOPv).first();
        if (!_ThRYDXlK) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _bqlLVbdo = JSON.parse(_ThRYDXlK._bqlLVbdo);
        let _EkExdcJx = _bqlLVbdo._FZcryuIe;

        const _bfeocNIy = await _pxSLYxvP(_BQgpRFNk);

        if (_bfeocNIy.customNodes && _bfeocNIy.customNodes._eIMyZaKb && _bfeocNIy.customNodes.list) {
            const _HIwYUWfU = _bfeocNIy.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _XZtHDGSg = _HIwYUWfU.map(_XIDupThs => {
                let _fNdfwUQC = _XIDupThs;
                let _mxOpOfBL = undefined;
                let _LjwRQGhy = null;

                if (_fNdfwUQC.includes('@')) {
                    const _vOYKmqCB = _fNdfwUQC.split('@');
                    _LjwRQGhy = _vOYKmqCB.pop();
                    _fNdfwUQC = _vOYKmqCB.join('@');
                }

                if (_fNdfwUQC.includes('#')) {
                    const _vOYKmqCB = _fNdfwUQC.split('#');
                    const _LMeUWCxV = _vOYKmqCB.pop();
                    if (!isNaN(_LMeUWCxV) && _LMeUWCxV.trim() !== '') {
                        _mxOpOfBL = parseInt(_LMeUWCxV, 10);
                    }
                    _fNdfwUQC = _vOYKmqCB.join('#');
                }
                
                return {
                    _pfeeDWuf: _fNdfwUQC,
                    _mxOpOfBL: _mxOpOfBL,
                    _QtxpDFRo: _LjwRQGhy || _fNdfwUQC,
                    _qZkYObNT: '自定义'
                };
            });
            _EkExdcJx.unshift(..._XZtHDGSg);
        }
        
        const { itemLink } = _bfeocNIy;
        const _rdTSgwIr = new URL(_cSAviSvM._TXuFepGX)._eePZabgY;
        let _afWRoHWI;

        if (_bfeocNIy.websocketStreamer && _bfeocNIy.websocketStreamer._eIMyZaKb) {
            if (!itemLink || !itemLink._eIMyZaKb || !itemLink._aoDLJyDe || itemLink._aoDLJyDe._krXpfTfu === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _afWRoHWI = _EkExdcJx.map((_wHNqCKoJ, _FNSEcuBy) => {
                let _LjwRQGhy;
                if (_wHNqCKoJ._qZkYObNT === '自定义') {
                     _LjwRQGhy = `${_FNSEcuBy + 1} - ${_wHNqCKoJ._QtxpDFRo}`;
                } else {
                    _LjwRQGhy = `${_FNSEcuBy + 1} - ${_wHNqCKoJ._QtxpDFRo || '未知'}`;
                    if (!_wHNqCKoJ._qZkYObNT || !_wHNqCKoJ._qZkYObNT.toLowerCase().includes('cloudflare')) {
                        _LjwRQGhy += '(反代)';
                    }
                }
                const _PTteNSJe = _VCkjATAy.isIPv6(_wHNqCKoJ._pfeeDWuf) ? `[${_wHNqCKoJ._pfeeDWuf}]` : _wHNqCKoJ._pfeeDWuf;
                const _mxOpOfBL = _wHNqCKoJ._mxOpOfBL || 443;
                const _LcnIMMud = itemLink._aoDLJyDe[0];
                const _aMSGXIMp = _LcnIMMud._HTPkOeUv || '';
                const _HTPkOeUv = (_aMSGXIMp && _GVxZDSrk(_aMSGXIMp)) ? _aMSGXIMp : crypto.randomUUID();
                const _KdbyphYI = '/snippets?_pfeeDWuf=endpointAddress:_mxOpOfBL(443)&nat64=6to4';
                const _WtCmmoGF = _LcnIMMud._WtCmmoGF || _rdTSgwIr;

                const _oCpaHUJn = new URLSearchParams({
                    security: 'tls',
                    _ouYmRJWQ: 'ws',
                    _WtCmmoGF: _WtCmmoGF,
                    sni: _WtCmmoGF,
                    fp: 'random'
                });
                return `vless://${_HTPkOeUv}@${_PTteNSJe}:${_mxOpOfBL}?${_oCpaHUJn.toString()}&_KdbyphYI=${encodeURIComponent(encodeURIComponent(_KdbyphYI))}#${encodeURIComponent(_LjwRQGhy)}`;
            });

        } else {
            if (!itemLink || !itemLink._eIMyZaKb || !itemLink._aoDLJyDe || itemLink._aoDLJyDe._krXpfTfu === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _LcnIMMud = itemLink._aoDLJyDe[0];
            const { _WtCmmoGF, _HTPkOeUv, _KdbyphYI } = _LcnIMMud;
            _afWRoHWI = _EkExdcJx.map((_wHNqCKoJ, _FNSEcuBy) => {
                let _LjwRQGhy;
                if (_wHNqCKoJ._qZkYObNT === '自定义') {
                     _LjwRQGhy = `${_FNSEcuBy + 1} - ${_wHNqCKoJ._QtxpDFRo}`;
                } else {
                    _LjwRQGhy = `${_FNSEcuBy + 1} - ${_wHNqCKoJ._QtxpDFRo || '未知'}`;
                    if (!_wHNqCKoJ._qZkYObNT || !_wHNqCKoJ._qZkYObNT.toLowerCase().includes('cloudflare')) {
                        _LjwRQGhy += '(反代)';
                    }
                }
                const _PTteNSJe = _VCkjATAy.isIPv6(_wHNqCKoJ._pfeeDWuf) ? `[${_wHNqCKoJ._pfeeDWuf}]` : _wHNqCKoJ._pfeeDWuf;
                const _mxOpOfBL = _wHNqCKoJ._mxOpOfBL || 443;
                const _oCpaHUJn = new URLSearchParams({
                    security: 'tls',
                    _ouYmRJWQ: 'ws',
                    _WtCmmoGF: _WtCmmoGF || _rdTSgwIr,
                    sni: _WtCmmoGF || _rdTSgwIr,
                    fp: 'random'
                });
                return `vless://${_HTPkOeUv}@${_PTteNSJe}:${_mxOpOfBL}?${_oCpaHUJn.toString()}&_KdbyphYI=${encodeURIComponent(encodeURIComponent(_KdbyphYI || ''))}#${encodeURIComponent(_LjwRQGhy)}`;
            });
        }
        
        const _PBYfOUSz = _afWRoHWI.join('\n');
        const _qAQGdyIk = btoa(_PBYfOUSz);
        return new Response(_qAQGdyIk, {
            _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/plain; _dCnJqbQm=utf-8' }
        });

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

async function _iwhlOCNj(_cSAviSvM) {
    try {
        const { _rRFnipDF, _ouYmRJWQ } = await _cSAviSvM.json();
        if (!Array.isArray(_rRFnipDF)) {
            return new Response('Invalid _rRFnipDF list', { status: 400 });
        }
        const _bAYVokhE = _rRFnipDF.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _TXuFepGX = `https://cloudflare-dns.com/dns-query?_LjwRQGhy=${encodeURIComponent(domain.trim())}&_ouYmRJWQ=${_ouYmRJWQ || 'A'}`;
            return fetch(_TXuFepGX, { _aLVmyjqe: { 'Accept': 'application/dns-json' } })
                .then(_dQdXhBRf => _dQdXhBRf.json())
                .then(_bqlLVbdo => (_bqlLVbdo.Answer ? _bqlLVbdo.Answer.map(a => a._bqlLVbdo) : []))
                .catch(() => []);
        });
        const _uHPxZGhi = (await Promise.all(_bAYVokhE)).flat();
        const _ztnBqvLR = [...new Set(_uHPxZGhi)];
        if (_ztnBqvLR._krXpfTfu === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_ztnBqvLR.join('\n'), { _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/plain; _dCnJqbQm=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._LFVTLzGR}`, { status: 500 });
    }
}

async function _UQPRqgDd(_cSAviSvM, _BQgpRFNk) {
  try {
      const { _NWjNMMyu } = await _cSAviSvM.json();
      if (!Array.isArray(_NWjNMMyu)) {
          return _FjDkkXbu({ error: "Invalid input, expected an object with a '_NWjNMMyu' array." }, 400);
      }
      
      const _lTMqXcdQ = new Set();
      
      const _cEwcxFkw = _NWjNMMyu.map(_TXuFepGX =>
          _dyyuXagk(_TXuFepGX)
              .then(_SAEyHyrI => {
                  if (!_SAEyHyrI) return;
                  const _wIySxNDg = _SAEyHyrI.split(/[\s,;|]+/);
                  for (const _bOKKhrtl of _wIySxNDg) {
                      const _CtuUiqHD = _bOKKhrtl.trim();
                      if (_CtuUiqHD) {
                          _lTMqXcdQ.add(_CtuUiqHD);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_TXuFepGX}:`, err);
              })
      );
      await Promise.all(_cEwcxFkw);
      return _FjDkkXbu({ _FZcryuIe: Array.from(_lTMqXcdQ) });
  } catch (_mRxgqKvR) {
      return _FjDkkXbu({ error: `Failed to process URLs: ${_mRxgqKvR._LFVTLzGR}` }, 500);
  }
}

async function _pkBpCBkO(_cSAviSvM, _BQgpRFNk) {
    const _bfeocNIy = await _pxSLYxvP(_BQgpRFNk);
    if (!_bfeocNIy.api._eIMyZaKb) {
        return new Response(_bfeocNIy.api._LFVTLzGR || 'API is disabled.', { status: 503 });
    }
    try {
        const _KsygnFPe = _BQgpRFNk.DB.prepare("SELECT _WqXGmQGS FROM kv_data WHERE _oxBzSUFO = ?").bind(_slGECYiz);
        const { _DFwFoguh: dbResults } = await _KsygnFPe.all();
        const _jrlLhFob = dbResults._krXpfTfu > 0 ? dbResults[0]._WqXGmQGS : null;
        const _KltbGVCE = _jrlLhFob ? JSON.parse(_jrlLhFob) : null;
        if (!_KltbGVCE || !_KltbGVCE._DFwFoguh || _KltbGVCE._DFwFoguh._krXpfTfu === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/plain; _dCnJqbQm=utf-8' },
            });
        }
        const _FZcryuIe = _KltbGVCE._DFwFoguh.map(r => r._pfeeDWuf);
        return new Response(_FZcryuIe.join('\n'), {
            _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/plain; _dCnJqbQm=utf-8' },
        });
    } catch (_mRxgqKvR) {
        console.error("API /_pfeeDWuf 处理错误:", _mRxgqKvR);
        return new Response(`API处理时出错: ${_mRxgqKvR._LFVTLzGR}`, { status: 500 });
    }
}

function _PYBWMyWI(_ThRYDXlK, _FNSEcuBy, _bfeocNIy, _rdTSgwIr) {
    const { itemLink } = _bfeocNIy;
    if (!itemLink || !itemLink._eIMyZaKb) return null;
    const { template, _aoDLJyDe, selectionMode, _arRQbRot } = itemLink;
    if (!_aoDLJyDe || _aoDLJyDe._krXpfTfu === 0) return null;

    let _dmdJwycA;
    if (selectionMode === 'random') {
        _dmdJwycA = _aoDLJyDe[_FNSEcuBy % _aoDLJyDe._krXpfTfu];
    } else if (selectionMode === 'first') {
        _dmdJwycA = _aoDLJyDe[0];
    } else {
        _dmdJwycA = _aoDLJyDe.find(s => s._LjwRQGhy === selectionMode) || _aoDLJyDe[0];
    }
    if (!_dmdJwycA) return null;

    let _fkfbPRql = template;
    const _MmexCfTY = _ThRYDXlK._mxOpOfBL || 443;
    const _TMkaePLv = _VCkjATAy.isIPv6(_ThRYDXlK._pfeeDWuf) ? `[${_ThRYDXlK._pfeeDWuf}]` : _ThRYDXlK._pfeeDWuf;
    let _LjwRQGhy = `${_FNSEcuBy + 1} 、 ${_ThRYDXlK._QtxpDFRo || '未知'}`;
    if (!_ThRYDXlK._qZkYObNT || !_ThRYDXlK._qZkYObNT.toLowerCase().includes('cloudflare')) {
        _LjwRQGhy += '(反代)';
    }
    let _WtCmmoGF = _dmdJwycA._WtCmmoGF || _rdTSgwIr;

    _fkfbPRql = _fkfbPRql.replace(/{_pfeeDWuf}/g, _TMkaePLv)
               .replace(/{_mxOpOfBL}/g, _MmexCfTY)
               .replace(/{_LjwRQGhy}/g, encodeURIComponent(_LjwRQGhy))
               .replace(/{rank}/g, _FNSEcuBy + 1)
               .replace(/{_QtxpDFRo}/g, encodeURIComponent(_ThRYDXlK._QtxpDFRo || '未知'))
               .replace(/{_qZkYObNT}/g, encodeURIComponent(_ThRYDXlK._qZkYObNT || '未知'))
               .replace(/{_WtCmmoGF}/g, encodeURIComponent(_WtCmmoGF))
               .replace(/{_HTPkOeUv}/g, encodeURIComponent(_dmdJwycA['_HTPkOeUv'] || ''))
               .replace(/{_KdbyphYI}/g, encodeURIComponent(encodeURIComponent(_dmdJwycA._KdbyphYI || '')));

    if (_arRQbRot) {
        _arRQbRot.forEach(field => {
            const _PjAPVYGd = new RegExp('{' + field._LjwRQGhy + '}', 'g');
            _fkfbPRql = _fkfbPRql.replace(_PjAPVYGd, encodeURIComponent(field._WqXGmQGS));
        });
    }
    return _fkfbPRql;
}

async function _UmoJvcDL(_cSAviSvM, _BQgpRFNk) {
    const _bfeocNIy = await _pxSLYxvP(_BQgpRFNk);
    if (!_bfeocNIy.itemLink._eIMyZaKb) {
        return new Response("Item _fkfbPRql feature is disabled.", { status: 503, _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/plain; _dCnJqbQm=utf-8' } });
    }

    try {
        const _KsygnFPe = _BQgpRFNk.DB.prepare("SELECT _WqXGmQGS FROM kv_data WHERE _oxBzSUFO = ?").bind(_slGECYiz);
        const { _DFwFoguh: dbResults } = await _KsygnFPe.all();
        const _jrlLhFob = dbResults._krXpfTfu > 0 ? dbResults[0]._WqXGmQGS : null;
        const _KltbGVCE = _jrlLhFob ? JSON.parse(_jrlLhFob) : null;
        
        if (!_KltbGVCE || !_KltbGVCE._DFwFoguh || _KltbGVCE._DFwFoguh._krXpfTfu === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/plain; _dCnJqbQm=utf-8' },
            });
        }
        
        const _rdTSgwIr = new URL(_cSAviSvM._TXuFepGX)._eePZabgY;

        const _ENYLUZFX = _KltbGVCE._DFwFoguh.map((_ThRYDXlK, _FNSEcuBy) => {
            return _PYBWMyWI(_ThRYDXlK, _FNSEcuBy, _bfeocNIy, _rdTSgwIr);
        }).filter(Boolean);

        if (_ENYLUZFX._krXpfTfu === 0) {
            return new Response("Could not generate any _wHNqCKoJ links from the available IPs.", {
                status: 500,
                _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/plain; _dCnJqbQm=utf-8' },
            });
        }

        return new Response(_ENYLUZFX.join('\n'), {
            _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/plain; _dCnJqbQm=utf-8' },
        });

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

async function _BzuvWvnZ(_cSAviSvM, _BQgpRFNk, _OFrvjzAS) {
    const _kOVyDmPo = _cSAviSvM._aLVmyjqe.get('CF-Connecting-IP') || "未知IP";
    const [
        _QSWCbPDK,
        _XHLnfwTu,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _UpJsqGTM(_qDgJmzTc, _AJqrVrvA, []),
        _UpJsqGTM(_OyuhOSsi, _AJqrVrvA, []),
        _UpJsqGTM(_WjTmdcqW, _HFcunstO, []),
        _UpJsqGTM(_nkVacZlG, _zgFdKuMK, { "N/A": "未知" })
    ]);
    _NEGEbOIm = fetchedCountryMap;
    let _tmShqnXW = false;
    let _tjvUOTzb;
    try {
        const _xSpiSRGf = await _NmelgyXg(_BQgpRFNk);
        _tmShqnXW = !!_xSpiSRGf;
        _tjvUOTzb = await _pxSLYxvP(_BQgpRFNk);
    } catch (_mRxgqKvR) {
        if (_mRxgqKvR._LFVTLzGR && _mRxgqKvR._LFVTLzGR.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _lPUtptFe = "CREATE TABLE IF NOT EXISTS kv_data (_oxBzSUFO TEXT PRIMARY KEY, _WqXGmQGS TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_lbGOVwXK TEXT PRIMARY KEY, _bqlLVbdo TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _BQgpRFNk.DB.exec(_lPUtptFe);
                console.log("数据表创建成功。");
                _tmShqnXW = false;
                _tjvUOTzb = _bPIcRoaU();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._LFVTLzGR}`, {
                    status: 500,
                    _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/html;_dCnJqbQm=UTF-8' }
                });
            }
        } else {
             let _CfPmMowk = _FJqzGwny(_mRxgqKvR._LFVTLzGR);
             return new Response(_CfPmMowk, { _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/html;_dCnJqbQm=UTF-8' } });
        }
    }
    if (_tjvUOTzb.telegram.bot_token && _tjvUOTzb.telegram.chat_id) {
        const _RmLXGywc = _cSAviSvM.cf?._RmLXGywc || "未知";
        const _VOCJyPDl = _cSAviSvM.cf?._VOCJyPDl || "";
        let _vYsDJHNf = _NEGEbOIm[_RmLXGywc] || _RmLXGywc;
        if (_VOCJyPDl && _VOCJyPDl !== "未知城市" && _VOCJyPDl !== _RmLXGywc) _vYsDJHNf = `${_vYsDJHNf} ${_NEGEbOIm[_VOCJyPDl] || _VOCJyPDl}`;
        const _uBxGmhsa = _vcxwsFPi();
        const _GlpbkTCi = _cSAviSvM._TXuFepGX;
        const _pMDUstOp = `访客: ${_kOVyDmPo}\n位置: ${_vYsDJHNf.trim()}\n时间: ${_uBxGmhsa}\n来自:${_GlpbkTCi}`;
        const _mWsShxQq = `https://api.telegram.org/bot${_tjvUOTzb.telegram.bot_token}/sendMessage?chat_id=${_tjvUOTzb.telegram.chat_id}&_SAEyHyrI=${encodeURIComponent(_pMDUstOp)}`;
        _OFrvjzAS.waitUntil(fetch(_mWsShxQq).catch(_mRxgqKvR => console.error("Telegram通知失败:", _mRxgqKvR)));
    }
    let _OhOWBirW = _nbodaNvj();
    const _gzvyJNxK = {
        _bfeocNIy: _tjvUOTzb,
        status: {
            _tmShqnXW: _tmShqnXW,
        }
    };
    _OhOWBirW = _OhOWBirW.replace('__PAGE_DATA_JSON__', JSON.stringify(_gzvyJNxK));
    _OhOWBirW = _OhOWBirW.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_QSWCbPDK));
    _OhOWBirW = _OhOWBirW.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_XHLnfwTu));
    _OhOWBirW = _OhOWBirW.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _OhOWBirW = _OhOWBirW.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_NEGEbOIm));
    return new Response(_OhOWBirW, {
        _aLVmyjqe: { 'Content-Type': '_SAEyHyrI/html;_dCnJqbQm=UTF-8' },
    });
}

function _FjDkkXbu(_OEtNiPyg, status = 200, _aLVmyjqe = {}) {
    return new Response(JSON.stringify(_OEtNiPyg), {
        status,
        _aLVmyjqe: { 'Content-Type': 'application/json;_dCnJqbQm=UTF-8', ..._aLVmyjqe }
    });
}

function _vcxwsFPi(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 _HehISiPl(_pfeeDWuf) {
    if (!_pfeeDWuf || typeof _pfeeDWuf !== 'string') return "无效IP";
    if(_VCkjATAy.isIPv4(_pfeeDWuf)){
        const _vOYKmqCB = _pfeeDWuf.split('.');
        if (_vOYKmqCB._krXpfTfu === 4) return `${_vOYKmqCB[0]}.*.*.${_vOYKmqCB[3]}`;
    }
    if(_VCkjATAy.isIPv6(_pfeeDWuf)){
        const _vOYKmqCB = _pfeeDWuf.split(':');
        if (_vOYKmqCB._krXpfTfu > 2) return `${_vOYKmqCB[0]}:...:${_vOYKmqCB[_vOYKmqCB._krXpfTfu - 1]}`;
    }
    return _pfeeDWuf;
}

function _FJqzGwny(_FmBubJIt) {
    return `
    <!DOCTYPE html><html lang="zh-CN"><head><meta _dCnJqbQm="UTF-8"><title>需要设置</title>
    <_PZUTKtuN>
        _OEtNiPyg { font-family: sans-serif; background: #1a1a1a; _IcZHxWUK: #e0e0e0; display: flex; justify-_GeSNHDPO: center; align-items: center; height: 100vh; margin: 0; }
        ._FyYfmvxI { max-_PDKtcalF: 800px; padding: 2rem; background: #25282e; border: 1px solid #4044c; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
        h1 { _IcZHxWUK: #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 { _IcZHxWUK: #da3633; background: rgba(218, 54, 51, 0.1); padding: 0.5rem; border-radius: 4px; margin-_SXXMpmJX: 1rem; }
    </_PZUTKtuN>
    </head><_OEtNiPyg>
    <div class="_FyYfmvxI">
        <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>
        ${_FmBubJIt ? `<div class="error"><strong>当前错误信息:</strong> ${_FmBubJIt.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</div>` : ''}
    </div>
    </_OEtNiPyg></html>`;
}

function _nbodaNvj() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _dCnJqbQm="UTF-8"> <meta _LjwRQGhy="viewport" _GeSNHDPO="_PDKtcalF=device-_PDKtcalF, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_fkfbPRql 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>
  <_PZUTKtuN>
  :root { --primary-_IcZHxWUK: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_IcZHxWUK: #8c939d; --light-bg: #1A1C20; --_GeSNHDPO-bg: #25282E; --border-_IcZHxWUK: #40444C; --_SAEyHyrI-_IcZHxWUK: #E0E0E0; --_SAEyHyrI-light: #B0B0B0; --success-_IcZHxWUK: #30A46C; --danger-_IcZHxWUK: #DA3633; --warning-_IcZHxWUK: #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; }
  _OEtNiPyg { font-family: var(--font-family-sans); background-_IcZHxWUK: var(--light-bg); _IcZHxWUK: var(--_SAEyHyrI-_IcZHxWUK); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_IcZHxWUK 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_GDdbTyzu { position: fixed; _SXXMpmJX: 0; _BuJNePsT: 0; _PDKtcalF: 100%; height: 100%; z-_FNSEcuBy: -1; display: none; }
  ._yICzEvRG-_FyYfmvxI { max-_PDKtcalF: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_FNSEcuBy: 1; }
  #_zxPKBkis { position: fixed; _SXXMpmJX: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_FNSEcuBy: 10; }
  #marquee-_FyYfmvxI { overflow: hidden; white-space: nowrap; background-_IcZHxWUK: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _IcZHxWUK: var(--primary-_IcZHxWUK); padding: 0.5rem 0; margin-_SXXMpmJX: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_SAEyHyrI { display: inline-block; padding-_BuJNePsT: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _RossoHHa { _SAEyHyrI-align: center; margin-_SXXMpmJX: 1rem; margin-bottom: 2rem; }
  _RossoHHa h1 { white-space: pre-wrap; font-size: 2.25em; _IcZHxWUK: var(--primary-_IcZHxWUK); font-weight: 700; _SAEyHyrI-shadow: 0 0 10px rgba(var(--primary-_IcZHxWUK-rgb), 0.3); }
  .card { background-_IcZHxWUK: 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-_IcZHxWUK); }
  .progress-section #_lSlQJcwN { _PDKtcalF: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_IcZHxWUK: var(--border-_IcZHxWUK); overflow: hidden; }
  .progress-section #_lSlQJcwN::-webkit-progress-_WqXGmQGS { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _SAEyHyrI-align: center; margin-_SXXMpmJX: 0.75em; font-size: 0.95em; _IcZHxWUK: var(--_SAEyHyrI-light); min-height: 1.5em; }
  .section-_RossoHHa { display: flex; flex-wrap: wrap; justify-_GeSNHDPO: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_IcZHxWUK); gap: 1rem; }
  .section-_RossoHHa h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _IcZHxWUK: var(--secondary-_IcZHxWUK); _SAEyHyrI-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _PDKtcalF: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _PDKtcalF: 100%; border-collapse: collapse; margin-_SXXMpmJX: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_IcZHxWUK); padding: 0.8em; _SAEyHyrI-align: _BuJNePsT; vertical-align: middle; white-space: nowrap; }
  th { background-_IcZHxWUK: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_IcZHxWUK: #30333a; }
  td._pfeeDWuf-_fNdfwUQC { font-weight: 500; font-family: var(--font-family-mono); _IcZHxWUK: var(--primary-_IcZHxWUK); }
  td.ping-_WqXGmQGS { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _SAEyHyrI-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_GeSNHDPO: center; font-weight: 500; _SAEyHyrI-align: center; cursor: pointer; user-_FIqSsAFn: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _IcZHxWUK: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_BuJNePsT: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _IcZHxWUK: var(--primary-_IcZHxWUK); border: 1px solid var(--primary-_IcZHxWUK); }
  .btn-outline:hover { background-_IcZHxWUK: var(--primary-_IcZHxWUK); _IcZHxWUK: var(--_GeSNHDPO-bg); }
  ._yICzEvRG-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._yICzEvRG-download-buttons .btn { _PDKtcalF: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _SXXMpmJX: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _IcZHxWUK: #fff; font-size: 0.95em; z-_FNSEcuBy: 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); }
  #_yWOVhcoy, #_wZmqfAIQ, #_hCAStMWJ, #_eLFJIFqV, #_aOiYwmpn { display: none; position: fixed; z-_FNSEcuBy: 10000; _BuJNePsT: 0; _SXXMpmJX: 0; _PDKtcalF: 100%; height: 100%; background-_IcZHxWUK: rgba(0,0,0,0.6); justify-_GeSNHDPO: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_GeSNHDPO, ._yICzEvRG-modal-_GeSNHDPO { background-_IcZHxWUK: var(--_GeSNHDPO-bg); padding: 2rem; border: 1px solid var(--border-_IcZHxWUK); border-radius: var(--border-radius-md); _PDKtcalF: 95%; max-_PDKtcalF: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_eLFJIFqV .modal-_GeSNHDPO { max-_PDKtcalF: 500px; }
  .modal-_GeSNHDPO h3, ._yICzEvRG-modal-_RossoHHa h3 { margin-_SXXMpmJX: 0; margin-bottom: 1.5rem; _IcZHxWUK: var(--primary-_IcZHxWUK); _SAEyHyrI-align: center; }
  .modal-buttons { display: flex; justify-_GeSNHDPO: flex-end; gap: 1rem; margin-_SXXMpmJX: 2rem; border-_SXXMpmJX: 1px solid var(--border-_IcZHxWUK); padding-_SXXMpmJX: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_IcZHxWUK), rgba(0,0,0,0)); margin: 2rem 0; }
  ._yICzEvRG-modal-_RossoHHa { display: flex; justify-_GeSNHDPO: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_IcZHxWUK); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _IcZHxWUK: var(--_SAEyHyrI-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._yICzEvRG-list-_wHNqCKoJ { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_IcZHxWUK); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._yICzEvRG-_LjwRQGhy { font-size: 1.1em; font-weight: 600; }
  ._yICzEvRG-links a { display: block; _IcZHxWUK: var(--primary-_IcZHxWUK); _SAEyHyrI-decoration: none; margin-_SXXMpmJX: 0.5rem; word-break: break-all; }
  ._yICzEvRG-links a:hover { _SAEyHyrI-decoration: underline; }
  ._yICzEvRG-links span { _IcZHxWUK: var(--_SAEyHyrI-light); }
  #visitorPasswordPrompt { _SAEyHyrI-align: center; }
  #visitorPasswordPrompt h3 { _IcZHxWUK: var(--primary-_IcZHxWUK); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _IcZHxWUK: var(--_SAEyHyrI-light); margin-bottom: 1.5rem; }
  ._xSpiSRGf-input-group { display: flex; gap: 10px; max-_PDKtcalF: 400px; margin: 0 auto; }
  ._xSpiSRGf-input-group input { flex-grow: 1; _SAEyHyrI-align: center; }
  ._xSpiSRGf-input-group .btn { margin-_BuJNePsT: 0; }
  ._DFwFoguh-actions-_FyYfmvxI { _SAEyHyrI-align: center; margin-bottom: 1.5rem; }
  ._DFwFoguh-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._DFwFoguh-api-buttons .btn { margin: 0; _PDKtcalF: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_GeSNHDPO 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 _FIqSsAFn, .form-grid-control textarea { _PDKtcalF: 100%; background-_IcZHxWUK: var(--light-bg); border: 1px solid var(--border-_IcZHxWUK); border-radius: var(--border-radius-sm); _IcZHxWUK: var(--_SAEyHyrI-_IcZHxWUK); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_IcZHxWUK 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _FIqSsAFn:focus, .form-grid-control textarea:focus { border-_IcZHxWUK: var(--primary-_IcZHxWUK); box-shadow: 0 0 0 2px rgba(var(--primary-_IcZHxWUK-rgb), 0.2); outline: none; }
  .form-grid-control input[_ouYmRJWQ="_IcZHxWUK"] { min-_PDKtcalF: auto; padding: 2px; _PDKtcalF: 2.5em; height: 2.5em; }
  .form-grid-control input[_ouYmRJWQ="checkbox"] { _PDKtcalF: auto; flex-shrink: 0; height: 1.2em; _PDKtcalF: 1.2em; }
  .form-grid-control ._TqLmvRVL-input { _PDKtcalF: 80px; _SAEyHyrI-align: right; }
  .tooltip-_eYaxcACc { display: inline-flex; _PDKtcalF: 16px; height: 16px; align-items: center; justify-_GeSNHDPO: center; background-_IcZHxWUK: var(--secondary-_IcZHxWUK); _IcZHxWUK: var(--_GeSNHDPO-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_FIqSsAFn: none; }
  #tooltip-popup { position: fixed; background-_IcZHxWUK: #383c4a; _IcZHxWUK: #fff; padding: 10px 15px; border-radius: 6px; z-_FNSEcuBy: 10001; font-size: 0.85em; max-_PDKtcalF: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_IcZHxWUK); pointer-events: none; }
  #custom-fields-_FyYfmvxI .form-grid-control { gap: 5px; } #custom-fields-_FyYfmvxI .form-grid-control input { flex: 1; }
  .parameter-_FvSygfHj-_PLKcSDkb { border: 1px solid var(--border-_IcZHxWUK); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_FvSygfHj-_RossoHHa { display: flex; justify-_GeSNHDPO: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_FvSygfHj-_RossoHHa input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_SXXMpmJX: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._SAEyHyrI-_IcZHxWUK-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _PDKtcalF: 100%; }
  ._SAEyHyrI-_IcZHxWUK-grid input[_ouYmRJWQ="_IcZHxWUK"] { grid-column: 1 / 2; }
  ._SAEyHyrI-_IcZHxWUK-grid input[_ouYmRJWQ="_SAEyHyrI"], ._SAEyHyrI-_IcZHxWUK-grid textarea { grid-column: 2 / 3; }
  #_eLFJIFqV .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_eLFJIFqV .btn-group { display: flex; }
  #_eLFJIFqV .sub-btn { flex-grow: 1; margin: 0; }
  #_eLFJIFqV ._YZJDrRjb-btn { flex-shrink: 0; margin-_BuJNePsT: -1px; border-_SXXMpmJX-_BuJNePsT-radius: 0; border-bottom-_BuJNePsT-radius: 0; }
  #_aOiYwmpn .modal-_GeSNHDPO { max-_PDKtcalF: 300px; background: white; padding: 1rem; _SAEyHyrI-align: center; }
  #qrCodeImg { max-_PDKtcalF: 100%; }
  @media (max-_PDKtcalF: 768px) {
    html { font-size: 15px; } ._yICzEvRG-_FyYfmvxI { padding: 0 0.8rem; } _RossoHHa { margin-_SXXMpmJX: 2.5rem; margin-bottom: 1.5rem; } #_zxPKBkis { _SXXMpmJX: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_PZUTKtuN>
  <_PZUTKtuN _lbGOVwXK="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_GeSNHDPO-bg: #FFFFFF; --border-_IcZHxWUK: #DCDFE6; --_SAEyHyrI-_IcZHxWUK: #303133; --_SAEyHyrI-light: #606266; }
  .theme-light .card { background-_IcZHxWUK: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_IcZHxWUK: #F5F7FA; }
  .theme-light tbody tr:hover { background-_IcZHxWUK: #ECF5FF; }
  .theme-matrix { --primary-_IcZHxWUK: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_GeSNHDPO-bg: #0D0208; --border-_IcZHxWUK: #00FF41; --_SAEyHyrI-_IcZHxWUK: #00FF41; --_SAEyHyrI-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_IcZHxWUK: rgba(0, 20, 0, 0.7); _SAEyHyrI-shadow: 0 0 5px var(--primary-_IcZHxWUK); backdrop-filter: none; }
  .theme-matrix th { background-_IcZHxWUK: #000; }
  .theme-matrix tbody tr:hover { background-_IcZHxWUK: #010; }
  .theme-matrix .btn { _SAEyHyrI-shadow: none; _IcZHxWUK: #000; }
  .theme-matrix .btn-outline { background-_IcZHxWUK: transparent; }
  .theme-modern-glass { --primary-_IcZHxWUK: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_GeSNHDPO-bg: rgba(30, 30, 40, 0.6); --border-_IcZHxWUK: rgba(255, 255, 255, 0.2); --_SAEyHyrI-_IcZHxWUK: #F0F0F0; --_SAEyHyrI-light: #A0A0B0; --border-radius-md: 12px; }
  _OEtNiPyg.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-_IcZHxWUK: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_GeSNHDPO-bg: rgba(30, 30, 40, 0.6); --border-_IcZHxWUK: rgba(255, 255, 255, 0.2); --_SAEyHyrI-_IcZHxWUK: #F0F0F0; --_SAEyHyrI-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_IcZHxWUK: var(--_GeSNHDPO-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_IcZHxWUK); }
  .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-_IcZHxWUK: rgba(0,0,0,0.3); border-right-_IcZHxWUK: 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); _SAEyHyrI-shadow: 0 1px 2px rgba(0,0,0,0.2); _IcZHxWUK: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_IcZHxWUK: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _SAEyHyrI-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_IcZHxWUK); border-_IcZHxWUK: var(--primary-_IcZHxWUK); _IcZHxWUK: #fff; }
  .glassy-components _RossoHHa h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _SAEyHyrI; -webkit-_SAEyHyrI-fill-_IcZHxWUK: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _IcZHxWUK: transparent; }
  .theme-aurora-glass { --primary-_IcZHxWUK: #38bdf8; --light-bg: #0c0a09; --_GeSNHDPO-bg: rgba(23, 23, 23, 0.5); --border-_IcZHxWUK: rgba(255, 255, 255, 0.15); --_SAEyHyrI-_IcZHxWUK: #f2f2f2; --_SAEyHyrI-light: #a3a3a3; }
  _OEtNiPyg.theme-aurora-glass::before { _GeSNHDPO: ''; position: fixed; _SXXMpmJX: 0; _BuJNePsT: 0; _PDKtcalF: 100%; height: 100%; z-_FNSEcuBy: -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-_IcZHxWUK: #08fdd8; --light-bg: #010409; --_GeSNHDPO-bg: rgba(22, 27, 34, 0.6); --border-_IcZHxWUK: rgba(139, 148, 158, 0.3); --_SAEyHyrI-_IcZHxWUK: #e6edf3; --_SAEyHyrI-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_IcZHxWUK), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_IcZHxWUK-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_IcZHxWUK-rgb), 0.5); }
  .theme-marble-light { --primary-_IcZHxWUK: #bfa37c; --light-bg: #f7f5f2; --_GeSNHDPO-bg: #ffffff; --border-_IcZHxWUK: #e0dcd5; --_SAEyHyrI-_IcZHxWUK: #3d3a36; --_SAEyHyrI-light: #6b6661; }
  _OEtNiPyg.theme-marble-light { background-image: _TXuFepGX('_bqlLVbdo:image/svg+xml,%3Csvg _PDKtcalF="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-_IcZHxWUK: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_PZUTKtuN>
  </head><_OEtNiPyg _lbGOVwXK="pageBody">
  <_GDdbTyzu _lbGOVwXK="background-_GDdbTyzu"></_GDdbTyzu>
  <div _lbGOVwXK="_yWOVhcoy">
      <div class="modal-_GeSNHDPO">
          <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 _ouYmRJWQ="_xSpiSRGf" _lbGOVwXK="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _ouYmRJWQ="_xSpiSRGf" _lbGOVwXK="confirmPassword"></div></div>
          <div class="modal-buttons"><button _lbGOVwXK="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_yICzEvRG-_FyYfmvxI">
    <button _lbGOVwXK="_zxPKBkis" class="btn btn-outline"></button>
    <div _lbGOVwXK="marquee-_FyYfmvxI"><div _lbGOVwXK="marquee-_SAEyHyrI"></div></div>
    <_RossoHHa><h1 _lbGOVwXK="pageTitle"></h1></_RossoHHa>
    <div class="card" _lbGOVwXK="visitorPasswordPrompt" _PZUTKtuN="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_xSpiSRGf-input-group">
            <input _ouYmRJWQ="_xSpiSRGf" _lbGOVwXK="visitorPasswordEntry" _PjAPVYGd="访客密码">
            <button _lbGOVwXK="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _lbGOVwXK="_mjMspLxh" _PZUTKtuN="display: block;">
        <div class="card progress-section">
            <div _lbGOVwXK="progressDisplay">
                <progress _lbGOVwXK="_lSlQJcwN" _WqXGmQGS="0" max="100"></progress>
                <div _lbGOVwXK="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _yICzEvRG-download-section">
          <div class="section-_RossoHHa"><h2 _lbGOVwXK="appDownloadTitleEl"></h2></div>
          <div class="_yICzEvRG-download-buttons">
            <button class="btn" _bqlLVbdo-_VcWkkKvB="android">安卓客户端</button>
            <button class="btn" _bqlLVbdo-_VcWkkKvB="ios">苹果客户端</button>
            <button class="btn" _bqlLVbdo-_VcWkkKvB="windows">Windows客户端</button>
            <button class="btn" _bqlLVbdo-_VcWkkKvB="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _DFwFoguh-section" _lbGOVwXK="_WrsqJMMN" _PZUTKtuN="display:none;">
          <div class="section-_RossoHHa">
            <h2 _lbGOVwXK="liveTitleEl"></h2>
            <div class="generator-info" _lbGOVwXK="liveGeneratorInfo"></div>
          </div>
          <div _lbGOVwXK="_hxKfobQP" class="_DFwFoguh-actions-_FyYfmvxI" _PZUTKtuN="display: none;">
             <div class="_DFwFoguh-api-buttons">
                <button _lbGOVwXK="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _lbGOVwXK="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _lbGOVwXK="resultsTable">
              <thead><tr><th _lbGOVwXK="tableHeader1El"></th><th _lbGOVwXK="tableHeader2El"></th><th _lbGOVwXK="tableHeader3El"></th><th _lbGOVwXK="tableHeader4El"></th><th _lbGOVwXK="tableHeader5El"></th><th _lbGOVwXK="tableHeader6El"></th><th _lbGOVwXK="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _lbGOVwXK="_eNhJvjSq" _PZUTKtuN="display:none;">
          <div class="section-_RossoHHa"><h2 _lbGOVwXK="cachedTitleEl"></h2><div class="generator-info" _lbGOVwXK="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _lbGOVwXK="cachedResultsTable">
              <thead><tr><th _lbGOVwXK="cachedTableHeader1El"></th><th _lbGOVwXK="cachedTableHeader2El"></th><th _lbGOVwXK="cachedTableHeader3El"></th><th _lbGOVwXK="cachedTableHeader4El"></th><th _lbGOVwXK="cachedTableHeader5El"></th><th _lbGOVwXK="cachedTableHeader6El"></th><th _lbGOVwXK="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _lbGOVwXK="notificationTooltip" class="tooltip-notification"></div>
  <div _lbGOVwXK="_wZmqfAIQ">
    <div class="modal-_GeSNHDPO">
      <h3>修改参数</h3>
      <div _PZUTKtuN="display: flex; border-bottom: 1px solid var(--border-_IcZHxWUK); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_MntRdqPt(event, 'general-_mNXNsfsM')">通用设置</button>
          <button class="tab-button" onclick="_MntRdqPt(event, '_fkfbPRql-_mNXNsfsM')">链接设置</button>
          <button class="tab-button" onclick="_MntRdqPt(event, 'fine-grained-_mNXNsfsM')">IP源设置</button>
          <button class="tab-button" onclick="_MntRdqPt(event, 'advanced-_mNXNsfsM')">高级设置</button>
      </div>
      <div _lbGOVwXK="general-_mNXNsfsM" class="tab-_GeSNHDPO" _PZUTKtuN="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_FIqSsAFn _lbGOVwXK="themeSelect">
                    <_ZrbdFTAL _WqXGmQGS="theme-aurora-glass">极光-玻璃质感</_ZrbdFTAL>
                    <_ZrbdFTAL _WqXGmQGS="theme-particles-glass">粒子-玻璃质感</_ZrbdFTAL>
                    <_ZrbdFTAL _WqXGmQGS="theme-modern-glass">现代-玻璃质感</_ZrbdFTAL>
                    <_ZrbdFTAL _WqXGmQGS="theme-cyberpunk-glass">赛博朋克-玻璃质感</_ZrbdFTAL>
                    <_ZrbdFTAL _WqXGmQGS="theme-dark-particles">暗色-粒子背景</_ZrbdFTAL>
                    <_ZrbdFTAL _WqXGmQGS="theme-dark-bing">暗色-必应壁纸</_ZrbdFTAL>
                    <_ZrbdFTAL _WqXGmQGS="theme-light">亮色-简约</_ZrbdFTAL>
                    <_ZrbdFTAL _WqXGmQGS="theme-light-bing">亮色-必应壁纸</_ZrbdFTAL>
                    <_ZrbdFTAL _WqXGmQGS="theme-marble-light">简约大理石-亮色</_ZrbdFTAL>
                    <_ZrbdFTAL _WqXGmQGS="theme-matrix">矩阵-代码雨</_ZrbdFTAL>
                </_FIqSsAFn>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _ouYmRJWQ="_IcZHxWUK" _lbGOVwXK="primaryColorInput">
                <span _PZUTKtuN="_PDKtcalF: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _ouYmRJWQ="_IcZHxWUK" _lbGOVwXK="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _PZUTKtuN="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _PZUTKtuN="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_SAEyHyrI-_IcZHxWUK-grid"><input _ouYmRJWQ="_IcZHxWUK" _lbGOVwXK="colorInput_title"><textarea _lbGOVwXK="textInput_title" _dtfoOQnu="1" _PjAPVYGd="页面主标题"></textarea></div>
                <div class="_SAEyHyrI-_IcZHxWUK-grid"><input _ouYmRJWQ="_IcZHxWUK" _lbGOVwXK="colorInput_loginButton"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="textInput_loginButton" _PjAPVYGd="登录按钮文本"></div>
                <div class="_SAEyHyrI-_IcZHxWUK-grid"><input _ouYmRJWQ="_IcZHxWUK" _lbGOVwXK="colorInput_appDownloadTitle"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="textInput_appDownloadTitle" _PjAPVYGd="APP下载标题"></div>
                <div class="_SAEyHyrI-_IcZHxWUK-grid"><input _ouYmRJWQ="_IcZHxWUK" _lbGOVwXK="colorInput_liveTitle"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="textInput_liveTitle" _PjAPVYGd="本次结果标题"></div>
                <div class="_SAEyHyrI-_IcZHxWUK-grid"><input _ouYmRJWQ="_IcZHxWUK" _lbGOVwXK="colorInput_cachedTitle"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="textInput_cachedTitle" _PjAPVYGd="上次结果标题"></div>
                <div class="_SAEyHyrI-_IcZHxWUK-grid"><input _ouYmRJWQ="_IcZHxWUK" _lbGOVwXK="colorInput_tableHeader"><input _ouYmRJWQ="_SAEyHyrI" _WqXGmQGS="表格头部文本颜色" readonly _PZUTKtuN="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _PZUTKtuN="align-self: start;"><label>公告栏设置</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _PZUTKtuN="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _lbGOVwXK="announcementText" _PjAPVYGd="在此输入公告内容" _dtfoOQnu="3"></textarea>
                 <div _PZUTKtuN="display: flex; justify-_GeSNHDPO: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _PZUTKtuN="display: flex; align-items: center; gap: 5px;"><input _ouYmRJWQ="checkbox" _lbGOVwXK="enableMarquee"> 顶部走马灯</label>
                    <label _PZUTKtuN="display: flex; align-items: center; gap: 5px;"><input _ouYmRJWQ="checkbox" _lbGOVwXK="enablePopup"> 右上角弹窗</label>
                    <div _lbGOVwXK="popupDurationContainer" _PZUTKtuN="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _ouYmRJWQ="number" _lbGOVwXK="popupDuration" _PZUTKtuN="_PDKtcalF: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _lbGOVwXK="_fkfbPRql-_mNXNsfsM" class="tab-_GeSNHDPO">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="converterServiceUrlInput" _PjAPVYGd="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _ouYmRJWQ="number" _lbGOVwXK="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _PZUTKtuN="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _lbGOVwXK="subscriptionIdCharset" _dtfoOQnu="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-_eYaxcACc" _bqlLVbdo-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _PZUTKtuN="justify-_GeSNHDPO: flex-start;"><input _ouYmRJWQ="checkbox" _lbGOVwXK="enableItemLinkCheckbox"></div>
        </div>
        <div _lbGOVwXK="itemLinkConfigGroup" _PZUTKtuN="display:none; margin-_SXXMpmJX: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _PZUTKtuN="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="定义分享链接格式。可用占位符: {_pfeeDWuf}, {_mxOpOfBL}, {_LjwRQGhy}, {rank}, {_QtxpDFRo}, {_qZkYObNT}, {_WtCmmoGF}, {_HTPkOeUv}, {_KdbyphYI}。">?</span></div>
              <div class="form-grid-control"><textarea _lbGOVwXK="itemLinkTemplateInput" _dtfoOQnu="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_FIqSsAFn _lbGOVwXK="parameterSelectionMode"></_FIqSsAFn></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _lbGOVwXK="parameter-sets-_FyYfmvxI"></div><button _ouYmRJWQ="button" _lbGOVwXK="add-parameter-_FvSygfHj-btn" class="btn btn-outline" _PZUTKtuN="margin-_SXXMpmJX: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _PZUTKtuN="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _lbGOVwXK="custom-fields-_FyYfmvxI" _PZUTKtuN="_PDKtcalF: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _PZUTKtuN="justify-_GeSNHDPO: flex-start;"><button _ouYmRJWQ="button" _lbGOVwXK="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _lbGOVwXK="fine-grained-_mNXNsfsM" class="tab-_GeSNHDPO">
          <div class="form-grid-label" _PZUTKtuN="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _PZUTKtuN="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_GeSNHDPO: flex-start;">
              <label><input _ouYmRJWQ="checkbox" _lbGOVwXK="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _ouYmRJWQ="checkbox" _lbGOVwXK="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _lbGOVwXK="fine-grained-sources-_FyYfmvxI"></div><button _ouYmRJWQ="button" _lbGOVwXK="add-fine-grained-_rILKpoyJ-btn" class="btn btn-outline" _PZUTKtuN="margin-_SXXMpmJX: 10px;">添加地区</button></div>
      </div>
      <div _lbGOVwXK="advanced-_mNXNsfsM" class="tab-_GeSNHDPO">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _ouYmRJWQ="checkbox" _lbGOVwXK="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _lbGOVwXK="resolvedDomainsGroup" _PZUTKtuN="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _lbGOVwXK="resolvedDomainsInput" _PjAPVYGd="留空则使用内置默认域名" _dtfoOQnu="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-_eYaxcACc" _bqlLVbdo-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _ouYmRJWQ="checkbox" _lbGOVwXK="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _lbGOVwXK="customNodesGroup" _PZUTKtuN="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _lbGOVwXK="customNodesInput" _PjAPVYGd="一行一个地址,支持域名、IPv4、IPv6。" _dtfoOQnu="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-_eYaxcACc" _bqlLVbdo-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _ouYmRJWQ="number" _lbGOVwXK="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _ouYmRJWQ="number" _lbGOVwXK="topNInput"></div>
            <div class="form-grid-label" _PZUTKtuN="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _PZUTKtuN="display: none;"><input _ouYmRJWQ="number" _lbGOVwXK="latencyRangeMinInput" _PjAPVYGd="最小"><span>-</span><input _ouYmRJWQ="number" _lbGOVwXK="latencyRangeMaxInput" _PjAPVYGd="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _PZUTKtuN="justify-_GeSNHDPO: flex-start;"><input _ouYmRJWQ="checkbox" _lbGOVwXK="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-_eYaxcACc" _bqlLVbdo-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _ouYmRJWQ="number" _lbGOVwXK="geoLocationRetriesInput" _PZUTKtuN="_PDKtcalF: 80px;"> <span>次</span>
                <div _PZUTKtuN="display: flex; align-items: center; gap: 5px; margin-_BuJNePsT: 20px;">
                    <input _ouYmRJWQ="checkbox" _lbGOVwXK="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-_eYaxcACc" _bqlLVbdo-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_WtCmmoGF:_mxOpOfBL' 或 '_WtCmmoGF'。">?</span></div>
            <div class="form-grid-control"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="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-_eYaxcACc" _bqlLVbdo-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _PZUTKtuN="justify-_GeSNHDPO: flex-start;"><input _ouYmRJWQ="checkbox" _lbGOVwXK="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _lbGOVwXK="websocketStreamerGroup" _PZUTKtuN="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="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-_eYaxcACc" _bqlLVbdo-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _PZUTKtuN="justify-_GeSNHDPO: flex-start;"><input _ouYmRJWQ="checkbox" _lbGOVwXK="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="启用 /_pfeeDWuf 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _PZUTKtuN="justify-_GeSNHDPO: flex-start;"><input _ouYmRJWQ="checkbox" _lbGOVwXK="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _lbGOVwXK="apiConfigGroup" _PZUTKtuN="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="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-_eYaxcACc" _bqlLVbdo-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _PZUTKtuN="justify-_GeSNHDPO: flex-start;"><input _ouYmRJWQ="checkbox" _lbGOVwXK="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _lbGOVwXK="customSubPathGroup" _PZUTKtuN="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="customSubPathInput" _PjAPVYGd="例如: 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-_eYaxcACc" _bqlLVbdo-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _PZUTKtuN="justify-_GeSNHDPO: flex-start;"><input _ouYmRJWQ="checkbox" _lbGOVwXK="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _lbGOVwXK="visitorPasswordGroup" _PZUTKtuN="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _PZUTKtuN="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_eYaxcACc" _bqlLVbdo-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _PZUTKtuN="flex-direction: column; align-items: stretch; gap: 8px;"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="botTokenInput" _PjAPVYGd="Telegram Bot Token"><input _ouYmRJWQ="_SAEyHyrI" _lbGOVwXK="chatIdInput" _PjAPVYGd="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _PZUTKtuN="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _PZUTKtuN="flex-direction: column; align-items: stretch; gap: 8px;"><input _ouYmRJWQ="_xSpiSRGf" _lbGOVwXK="oldPasswordInput" _PjAPVYGd="旧密码"><input _ouYmRJWQ="_xSpiSRGf" _lbGOVwXK="newPasswordInput" _PjAPVYGd="新密码 (至少6位)"><button _lbGOVwXK="changePasswordBtn" class="btn" _PZUTKtuN="align-self: flex-start; margin-_BuJNePsT: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _lbGOVwXK="closeModalBtn" class="btn btn-outline">关闭</button><button _lbGOVwXK="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _lbGOVwXK="_hCAStMWJ">
      <div class="_yICzEvRG-modal-_GeSNHDPO">
          <div class="_yICzEvRG-modal-_RossoHHa"><h3 _lbGOVwXK="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_yICzEvRG-modal-_OEtNiPyg" _lbGOVwXK="appModalBody"></div>
      </div>
  </div>
  <div _lbGOVwXK="_eLFJIFqV">
      <div class="modal-_GeSNHDPO">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _bqlLVbdo-sub-_ouYmRJWQ="coreEngine">Xray</button><button class="btn _YZJDrRjb-btn" _bqlLVbdo-sub-_ouYmRJWQ="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _bqlLVbdo-sub-_ouYmRJWQ="coreProfile">Sing-Box</button><button class="btn _YZJDrRjb-btn" _bqlLVbdo-sub-_ouYmRJWQ="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _bqlLVbdo-sub-_ouYmRJWQ="configProfile">Clash</button><button class="btn _YZJDrRjb-btn" _bqlLVbdo-sub-_ouYmRJWQ="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _bqlLVbdo-sub-_ouYmRJWQ="policyProfile">Surge</button><button class="btn _YZJDrRjb-btn" _bqlLVbdo-sub-_ouYmRJWQ="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _PZUTKtuN="justify-_GeSNHDPO: center;"><button class="btn btn-outline" _lbGOVwXK="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _lbGOVwXK="_aOiYwmpn">
      <div class="modal-_GeSNHDPO">
          <img _lbGOVwXK="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _VCkjATAy = {
        isValid: (_pfeeDWuf) => _VCkjATAy.isIPv4(_pfeeDWuf) || _VCkjATAy.isIPv6(_pfeeDWuf),
        isIPv4: (_pfeeDWuf) => {
            if (typeof _pfeeDWuf !== 'string') return false;
            const _vOYKmqCB = _pfeeDWuf.split('.');
            if (_vOYKmqCB._krXpfTfu !== 4) return false;
            return _vOYKmqCB.every(_PrRGarUL => {
                const _WgeCpRPQ = parseInt(_PrRGarUL, 10);
                return !isNaN(_WgeCpRPQ) && _WgeCpRPQ >= 0 && _WgeCpRPQ <= 255 && String(_WgeCpRPQ) === _PrRGarUL;
            });
        },
        isIPv6: (_pfeeDWuf) => {
            if (typeof _pfeeDWuf !== '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]))$/_hhKnPIhG.test(_pfeeDWuf);
        },
        toLong4: (_pfeeDWuf) => _pfeeDWuf.split('.').reduce((acc, octet, _hhKnPIhG) => acc + (parseInt(octet) << (8*(3-_hhKnPIhG))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_pfeeDWuf) => {
            try {
                const _OULDqnar = _pfeeDWuf.split('/')[0];
                const _vOYKmqCB = _OULDqnar.split('::');
                if (_vOYKmqCB._krXpfTfu > 2) return 0n;
                let _nAILscHy = [];
                if (_vOYKmqCB[0]) {
                    _nAILscHy = _vOYKmqCB[0].split(':');
                }
                let _qgEozExP = [];
                if (_vOYKmqCB._krXpfTfu > 1 && _vOYKmqCB[1]) {
                    _qgEozExP = _vOYKmqCB[1].split(':');
                }
                if (_nAILscHy._krXpfTfu + _qgEozExP._krXpfTfu > 8) return 0n;
                const _iplWlDMz = 8 - (_nAILscHy._krXpfTfu + _qgEozExP._krXpfTfu);
                const _BvPZZuMT = [
                    ..._nAILscHy,
                    ...Array(_iplWlDMz).fill('0'),
                    ..._qgEozExP
                ].map(_PrRGarUL => _PrRGarUL || '0');
                while(_BvPZZuMT._krXpfTfu < 8) {
                    _BvPZZuMT.push('0');
                }
                let _YFcPyqHv = 0n;
                for (const _PrRGarUL of _BvPZZuMT) {
                    if (_PrRGarUL._krXpfTfu > 4) return 0n;
                    const _WqXGmQGS = BigInt('0x' + _PrRGarUL);
                    _YFcPyqHv = (_YFcPyqHv << 16n) | _WqXGmQGS;
                }
                return _YFcPyqHv;
            } catch(_mRxgqKvR) {
                return 0n;
            }
        },
        fromBigInt6: (_YFcPyqHv) => {
            if (typeof _YFcPyqHv !== '_YFcPyqHv' || _YFcPyqHv < 0n) return null;
            const _vOYKmqCB = [];
            for (let _hhKnPIhG = 0; _hhKnPIhG < 8; _hhKnPIhG++) {
                _vOYKmqCB.unshift((_YFcPyqHv & 0xFFFFn).toString(16));
                _YFcPyqHv >>= 16n;
            }
            let _KgRuwWXS = { start: -1, _QBATQkqq: 0 };
            let _qZqIManv = { start: -1, _QBATQkqq: 0 };
            for (let _hhKnPIhG = 0; _hhKnPIhG < 8; _hhKnPIhG++) {
                if (_vOYKmqCB[_hhKnPIhG] === '0') {
                    if (_qZqIManv.start === -1) _qZqIManv.start = _hhKnPIhG;
                    _qZqIManv._QBATQkqq++;
                } else {
                    if (_qZqIManv._QBATQkqq > _KgRuwWXS._QBATQkqq) _KgRuwWXS = { ..._qZqIManv };
                    _qZqIManv = { start: -1, _QBATQkqq: 0 };
                }
            }
            if (_qZqIManv._QBATQkqq > _KgRuwWXS._QBATQkqq) _KgRuwWXS = { ..._qZqIManv };
            if (_KgRuwWXS._QBATQkqq > 1) {
                _vOYKmqCB.splice(_KgRuwWXS.start, _KgRuwWXS._QBATQkqq, '');
                if (_KgRuwWXS.start === 0) _vOYKmqCB.unshift('');
                if (_KgRuwWXS.start + _KgRuwWXS._QBATQkqq === 8) _vOYKmqCB.push('');
            }
            return _vOYKmqCB.join(':');
        },
        cidrToRange: (cidr, _AOwWYZKp = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _FUdhRxuK = parseInt(bitsStr, 10);
                const _FZcryuIe = new Set();
                if (_VCkjATAy.isIPv4(range)) {
                    if (isNaN(_FUdhRxuK) || _FUdhRxuK < 8 || _FUdhRxuK > 32) return [];
                    if (_FUdhRxuK === 32) return [range];
                    const _eqmjGDkS = _VCkjATAy.toLong4(range);
                    const _CJQoXHzp = (0xFFFFFFFF << (32 - _FUdhRxuK)) >>> 0;
                    const _Lzxmwjmm = _eqmjGDkS & _CJQoXHzp;
                    const _gJhFnZcM = 1 << (32 - _FUdhRxuK);
                    if (_gJhFnZcM <= 2) return [];
                    const _GAIQkxue = Math.min(_AOwWYZKp, _gJhFnZcM - 2);
                    let _gJdXrKaW = 0;
                    while (_FZcryuIe.size < _GAIQkxue && _gJdXrKaW < _GAIQkxue * 5) {
                        const _pNFsKBQc = Math.floor(Math.random() * (_gJhFnZcM - 2)) + 1;
                        _FZcryuIe.add(_VCkjATAy.fromLong4((_Lzxmwjmm + _pNFsKBQc) >>> 0));
                        _gJdXrKaW++;
                    }
                    return Array.from(_FZcryuIe);
                } else if (_VCkjATAy.isIPv6(range)) {
                    if (isNaN(_FUdhRxuK) || _FUdhRxuK < 16 || _FUdhRxuK > 128) return [];
                    if (_FUdhRxuK === 128) return [range];
                    const _MfxYtrOH = _VCkjATAy.toBigInt6(range);
                    const _CJQoXHzp = (2n ** BigInt(128 - _FUdhRxuK) - 1n);
                    const _Lzxmwjmm = _MfxYtrOH & ~_CJQoXHzp;
                    const _EvubWwhW = 2n ** BigInt(128 - _FUdhRxuK);
                    if (_EvubWwhW <= 2n) return [];
                    let _gJdXrKaW = 0;
                    while (_FZcryuIe.size < _AOwWYZKp && _gJdXrKaW < _AOwWYZKp * 5) {
                        const _egHiFPna = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_egHiFPna);
                        let _BriEIIBP = 0n;
                        for (const _IHhMSwTA of _egHiFPna) {
                            _BriEIIBP = (_BriEIIBP << 8n) | BigInt(_IHhMSwTA);
                        }
                        const _pNFsKBQc = _BriEIIBP % (_EvubWwhW - 2n) + 1n;
                        _FZcryuIe.add(_VCkjATAy.fromBigInt6(_Lzxmwjmm + _pNFsKBQc));
                        _gJdXrKaW++;
                    }
                    return Array.from(_FZcryuIe);
                }
                return [];
            } catch(_mRxgqKvR) {
                console.error(`CIDR to range failed for ${cidr}:`, _mRxgqKvR);
                return [];
            }
        }
    };
    function _tyPXiLnz(_azKgPsKr, _CNaPASvE) {
        const _DezsRSZc = {};
        const _gBOhCNJY = Object._gBOhCNJY(_CNaPASvE);
        const _vOYKmqCB = _gBOhCNJY.map(_oxBzSUFO => {
            const _JSVLjaEL = _azKgPsKr * (_CNaPASvE[_oxBzSUFO] / 100);
            return { _oxBzSUFO, _AOwWYZKp: Math.floor(_JSVLjaEL), remainder: _JSVLjaEL - Math.floor(_JSVLjaEL) };
        });
        let _ZylvYyfi = _vOYKmqCB.reduce((acc, _PrRGarUL) => acc + _PrRGarUL._AOwWYZKp, 0);
        _vOYKmqCB.sort((a, b) => b.remainder - a.remainder);
        let _ibXExrHc = _azKgPsKr - _ZylvYyfi;
        for (let _hhKnPIhG = 0; _hhKnPIhG < _ibXExrHc; _hhKnPIhG++) {
            _vOYKmqCB[_hhKnPIhG % _vOYKmqCB._krXpfTfu]._AOwWYZKp++;
        }
        for (const _PrRGarUL of _vOYKmqCB) {
            _DezsRSZc[_PrRGarUL._oxBzSUFO] = _PrRGarUL._AOwWYZKp;
        }
        return _DezsRSZc;
    }
    const _gzvyJNxK = __PAGE_DATA_JSON__;
    const _tjvUOTzb = _gzvyJNxK._bfeocNIy;
    const _gpvDRPbQ = _gzvyJNxK.status;
    const _QSWCbPDK = __ALL_CF_CIDR_LIST_JSON__;
    const _XHLnfwTu = __BALANCED_CF_CIDR_LIST_JSON__;
    const _CXrsCyqe = __DEFAULT_DOMAINS_LIST_JSON__;
    const _NEGEbOIm = __COUNTRY_MAP_JSON__;
    const _SquqdJwL = _NEGEbOIm;
    const _cBcqbzKr = 2500;
    const _XvWyVgcg = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _mjMspLxh = document.getElementById('_mjMspLxh');
    const _lSlQJcwN = document.getElementById('_lSlQJcwN');
    const _MxZhXcVF = document.getElementById('status');
    const _WrsqJMMN = document.getElementById('_WrsqJMMN');
    const _dFaweZpE = document.getElementById('resultsTable').querySelector('tbody');
    const _eNhJvjSq = document.getElementById('_eNhJvjSq');
    const _JtHoVvNu = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _RjYexJwG = document.getElementById('notificationTooltip');
    const _zxPKBkis = document.getElementById('_zxPKBkis');
    const _wZmqfAIQ = document.getElementById('_wZmqfAIQ');
    const _hCAStMWJ = document.getElementById('_hCAStMWJ');
    const _eLFJIFqV = document.getElementById('_eLFJIFqV');
    const _aOiYwmpn = document.getElementById('_aOiYwmpn');
    const _yWOVhcoy = document.getElementById('_yWOVhcoy');
    const _hxKfobQP = document.getElementById('_hxKfobQP');
    let _vsCVxCSv = null;
    let _LRExlaOD = null;
    let _fAHqCsKe = [];
    let _dWniuqZk = false;
    let _ONilQfuF = null;
    function _CVqQeWTJ(_fyVYZfwr, _oNOKvXku) {
        const _XRWybpuN=parseInt(_fyVYZfwr.slice(1),16),t=_oNOKvXku<0?0:255,p=_oNOKvXku<0?_oNOKvXku*-1:_oNOKvXku,R=_XRWybpuN>>16,G=_XRWybpuN>>8&0x00FF,B=_XRWybpuN&0x0000FF;
        const _tCUKPxLx = Math.round((t-R)*p)+R;
        const _AUINbzmF = Math.round((t-G)*p)+G;
        const _wRLNNALI = Math.round((t-B)*p)+B;
        return `rgb(${_tCUKPxLx.toString()}, ${_AUINbzmF.toString()}, ${_wRLNNALI.toString()})`;
    }
    function _vwswFWoI(_mNXNsfsM) {
        const _BLzvCPTd = _KuysKtmX(_mNXNsfsM.primaryColor);
        if(_BLzvCPTd) {
            document.documentElement._PZUTKtuN.setProperty('--primary-_IcZHxWUK-rgb', `${_BLzvCPTd.r},${_BLzvCPTd.g},${_BLzvCPTd.b}`);
        }
        document.documentElement._PZUTKtuN.setProperty('--primary-_IcZHxWUK', _mNXNsfsM.primaryColor);
        document.documentElement._PZUTKtuN.setProperty('--primary-hover', _CVqQeWTJ(_mNXNsfsM.primaryColor, -0.1));
        document.documentElement._PZUTKtuN.setProperty('--primary-gradient-start', _CVqQeWTJ(_mNXNsfsM.primaryColor, 0.1));
        document.documentElement._PZUTKtuN.setProperty('--primary-gradient-end', _CVqQeWTJ(_mNXNsfsM.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _mNXNsfsM.texts.title;
        document.title = _mNXNsfsM.texts.title;
        _zxPKBkis.innerText = _vsCVxCSv ? _mNXNsfsM.texts.loginButtonSuccess : _mNXNsfsM.texts.loginButton;
        _zxPKBkis._PZUTKtuN._IcZHxWUK = _mNXNsfsM.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _mNXNsfsM.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _mNXNsfsM.texts.liveTitle;
        document.getElementById('liveTitleEl')._PZUTKtuN._IcZHxWUK = _mNXNsfsM.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _mNXNsfsM.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._PZUTKtuN._IcZHxWUK = _mNXNsfsM.colors.cachedTitle;
        const _aLVmyjqe = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _aLVmyjqe.forEach((_lbGOVwXK, _FNSEcuBy) => {
            const _jdoGAZSi = document.getElementById(_lbGOVwXK);
            if (_jdoGAZSi) _jdoGAZSi.innerText = _mNXNsfsM.texts[`tableHeader${_FNSEcuBy + 1}`] || '';
        });
        const _JhCuttgh = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _JhCuttgh.forEach((_lbGOVwXK, _FNSEcuBy) => {
             const _jdoGAZSi = document.getElementById(_lbGOVwXK);
             if (_jdoGAZSi) _jdoGAZSi.innerText = _tjvUOTzb.texts[`tableHeader${_FNSEcuBy + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._PZUTKtuN._IcZHxWUK = _mNXNsfsM.colors.tableHeader);
        document._OEtNiPyg.className = '';
        document._OEtNiPyg.classList.add(_mNXNsfsM.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_mNXNsfsM.theme)) {
            document._OEtNiPyg.classList.add('glassy-components');
        }
        document._OEtNiPyg._PZUTKtuN.backgroundImage = '';
        _jZgrJzZf();
        if (_mNXNsfsM.theme.includes('particles') || _mNXNsfsM.theme.includes('glass')) {
            _nRtowVSy(_mNXNsfsM.particleColor);
        } else if (_mNXNsfsM.theme.includes('bing')) {
            document._OEtNiPyg._PZUTKtuN.backgroundImage = '_TXuFepGX(/bing-wallpaper)';
        }
    }
    function _vJBXfkfy() {
        _vsCVxCSv = null;
        if(_LRExlaOD) clearTimeout(_LRExlaOD);
        _vwswFWoI(_tjvUOTzb);
        _gWEIXBde("登录已超时,请重新登录。", "warning");
    }
    async function _uUsqxRTA() {
        if (_vsCVxCSv) {
            _yFLIdrRr();
            return;
        }
        const _lscHKGNv = prompt('请输入管理员密码:');
        if (!_lscHKGNv) return;
        try {
            const _dQdXhBRf = await fetch('/api/verify-_xSpiSRGf', {
                method: 'POST',
                _aLVmyjqe: { 'Content-Type': 'application/json' },
                _OEtNiPyg: JSON.stringify({ _xSpiSRGf: _lscHKGNv })
            });
            const _ThRYDXlK = await _dQdXhBRf.json();
            if (_ThRYDXlK.success) {
                _vsCVxCSv = _lscHKGNv;
                _gWEIXBde("登录成功!有效期5分钟。", "success");
                if (_LRExlaOD) clearTimeout(_LRExlaOD);
                _LRExlaOD = setTimeout(_vJBXfkfy, 5 * 60 * 1000);
                _vwswFWoI(_tjvUOTzb);
                _yFLIdrRr();
            } else {
                throw new Error(_ThRYDXlK._LFVTLzGR || '密码验证失败');
            }
        } catch (_mRxgqKvR) {
            _gWEIXBde(`登录失败: ${_mRxgqKvR._LFVTLzGR}`, "error");
        }
    }
    function _tAUavXqc() {
        if (!_gpvDRPbQ._tmShqnXW) {
            _yWOVhcoy._PZUTKtuN.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _xSpiSRGf = document.getElementById('initialPassword')._WqXGmQGS;
                const _edvPwFuz = document.getElementById('confirmPassword')._WqXGmQGS;
                if (_xSpiSRGf !== _edvPwFuz) {
                    _gWEIXBde("两次输入的密码不一致!", "error");
                    return;
                }
                if (_xSpiSRGf._krXpfTfu < 6) {
                    _gWEIXBde("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _dQdXhBRf = await fetch('/api/_FvSygfHj-_xSpiSRGf', {
                        method: 'POST',
                        _aLVmyjqe: { 'Content-Type': 'application/json' },
                        _OEtNiPyg: JSON.stringify({ _xSpiSRGf })
                    });
                    const _ThRYDXlK = await _dQdXhBRf.json();
                    if (_ThRYDXlK.success) {
                        _gWEIXBde(_ThRYDXlK._LFVTLzGR, "success");
                        setTimeout(() => _QtxpDFRo.reload(), 1500);
                    } else {
                        throw new Error(_ThRYDXlK._LFVTLzGR);
                    }
                } catch(_mRxgqKvR) {
                    _gWEIXBde(`设置密码失败: ${_mRxgqKvR._LFVTLzGR}`, "error");
                }
            });
            return;
        }
        _zxPKBkis.addEventListener('click', _uUsqxRTA);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _wZmqfAIQ._PZUTKtuN.display = 'none'; });
        _wZmqfAIQ.addEventListener('click', (_mRxgqKvR) => { if (_mRxgqKvR.target === _wZmqfAIQ) _wZmqfAIQ._PZUTKtuN.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_FyYfmvxI .fine-grained-_eIMyZaKb-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-_FyYfmvxI .fine-grained-_eIMyZaKb-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_vsCVxCSv) {
                _gWEIXBde("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _arRQbRot = [];
            document.querySelectorAll('#custom-fields-_FyYfmvxI .custom-field-_PLKcSDkb').forEach(_PLKcSDkb => {
                const _LjwRQGhy = _PLKcSDkb.querySelector('.custom-field-_LjwRQGhy')._WqXGmQGS.trim();
                const _WqXGmQGS = _PLKcSDkb.querySelector('.custom-field-_WqXGmQGS')._WqXGmQGS.trim();
                if (_LjwRQGhy) _arRQbRot.push({ _LjwRQGhy, _WqXGmQGS });
            });
            const _aoDLJyDe = [];
            document.querySelectorAll('#parameter-sets-_FyYfmvxI .parameter-_FvSygfHj-_PLKcSDkb').forEach(_PLKcSDkb => {
                const _LjwRQGhy = _PLKcSDkb.querySelector('.param-_FvSygfHj-_LjwRQGhy')._WqXGmQGS.trim();
                const _WtCmmoGF = _PLKcSDkb.querySelector('.param-_FvSygfHj-_WtCmmoGF')._WqXGmQGS.trim();
                const _HTPkOeUv = _PLKcSDkb.querySelector('.param-_FvSygfHj-_HTPkOeUv')._WqXGmQGS.trim();
                const _KdbyphYI = _PLKcSDkb.querySelector('.param-_FvSygfHj-_KdbyphYI')._WqXGmQGS.trim();
                if(_LjwRQGhy) _aoDLJyDe.push({ _LjwRQGhy, _WtCmmoGF, '_HTPkOeUv': _HTPkOeUv, _KdbyphYI });
            });
            const _RClHfBnM = [];
            document.querySelectorAll('#fine-grained-sources-_FyYfmvxI .fine-grained-_rILKpoyJ-_PLKcSDkb').forEach(_PLKcSDkb => {
                const _QtxpDFRo = _PLKcSDkb.querySelector('.fine-grained-_QtxpDFRo')._WqXGmQGS.trim();
                const _FZcryuIe = _PLKcSDkb.querySelector('.fine-grained-_FZcryuIe')._WqXGmQGS.trim();
                const _eIMyZaKb = _PLKcSDkb.querySelector('.fine-grained-_eIMyZaKb-cb').checked;
                const _TqLmvRVL = parseInt(_PLKcSDkb.querySelector('.fine-grained-_TqLmvRVL')._WqXGmQGS, 10) || 0;
                const _YaNbgTyl = _PLKcSDkb.querySelector('.use-_LjwRQGhy-as-_QtxpDFRo-cb').checked;
                if (_QtxpDFRo && _FZcryuIe) {
                    _RClHfBnM.push({ _QtxpDFRo, _FZcryuIe, _eIMyZaKb, _TqLmvRVL, _YaNbgTyl });
                }
            });
            
            let _DINEDApf = parseInt(document.getElementById('subscriptionIdLength')._WqXGmQGS, 10);
            if (isNaN(_DINEDApf) || _DINEDApf < 2) _DINEDApf = 2;
            if (_DINEDApf > 128) _DINEDApf = 128;

            const _Wnkcvnzs = {
                theme: document.getElementById('themeSelect')._WqXGmQGS,
                primaryColor: document.getElementById('primaryColorInput')._WqXGmQGS,
                particleColor: document.getElementById('particleColorInput')._WqXGmQGS,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._WqXGmQGS,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._WqXGmQGS, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._WqXGmQGS, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._WqXGmQGS, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._WqXGmQGS, 10) || 0,
                _YgNZzilN: document.getElementById('converterServiceUrlInput')._WqXGmQGS.trim(),
                subscriptionId: {
                    _krXpfTfu: _DINEDApf,
                    _dCnJqbQm: document.getElementById('subscriptionIdCharset')._WqXGmQGS.trim()
                },
                api: {
                    _eIMyZaKb: document.getElementById('enableApiCheckbox').checked,
                    _LFVTLzGR: document.getElementById('apiMessageInput')._WqXGmQGS || '维护中...',
                },
                ispFilter: { 
                    _eIMyZaKb: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._WqXGmQGS, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _eIMyZaKb: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _eIMyZaKb: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _TXuFepGX: document.getElementById('websocketStreamerUrlInput')._WqXGmQGS.trim()
                },
                visitorPassword: {
                    _eIMyZaKb: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _xSpiSRGf: document.getElementById('visitorPasswordInput')._WqXGmQGS.trim()
                },
                customSubPath: {
                    _eIMyZaKb: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _KdbyphYI: document.getElementById('customSubPathInput')._WqXGmQGS.trim()
                },
                itemLink: {
                    _eIMyZaKb: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._WqXGmQGS,
                    selectionMode: document.getElementById('parameterSelectionMode')._WqXGmQGS,
                    _aoDLJyDe: _aoDLJyDe,
                    _arRQbRot: _arRQbRot,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._WqXGmQGS.trim(),
                },
                announcement: {
                    popup: {
                        _eIMyZaKb: document.getElementById('enablePopup').checked,
                        _SAEyHyrI: document.getElementById('announcementText')._WqXGmQGS,
                        _UseSqtuY: parseInt(document.getElementById('popupDuration')._WqXGmQGS, 10) || 5
                    },
                    marquee: {
                        _eIMyZaKb: document.getElementById('enableMarquee').checked,
                        _SAEyHyrI: document.getElementById('announcementText')._WqXGmQGS
                    }
                },
                fineGrained: {
                    _eIMyZaKb: true,
                    sources: _RClHfBnM
                },
                customNodes: {
                    _eIMyZaKb: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._WqXGmQGS
                },
                texts: {
                    title: document.getElementById('textInput_title')._WqXGmQGS,
                    loginButton: document.getElementById('textInput_loginButton')._WqXGmQGS,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._WqXGmQGS,
                    liveTitle: document.getElementById('textInput_liveTitle')._WqXGmQGS,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._WqXGmQGS,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._WqXGmQGS,
                    loginButton: document.getElementById('colorInput_loginButton')._WqXGmQGS,
                    liveTitle: document.getElementById('colorInput_liveTitle')._WqXGmQGS,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._WqXGmQGS,
                    tableHeader: document.getElementById('colorInput_tableHeader')._WqXGmQGS,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._WqXGmQGS.trim(),
                    chat_id: document.getElementById('chatIdInput')._WqXGmQGS.trim(),
                },
            };
            try {
                const _dQdXhBRf = await fetch('/api/_bfeocNIy', {
                    method: 'POST',
                    _aLVmyjqe: { 'Content-Type': 'application/json' },
                    _OEtNiPyg: JSON.stringify({ _bfeocNIy: _Wnkcvnzs, adminPassword: _vsCVxCSv })
                });
                const _ThRYDXlK = await _dQdXhBRf.json();
                if (_dQdXhBRf.ok && _ThRYDXlK.success) {
                    _gWEIXBde("配置已保存,正在刷新...", "success");
                    setTimeout(() => _QtxpDFRo.reload(), 1500);
                } else {
                    throw new Error(_ThRYDXlK._LFVTLzGR || '未知错误');
                }
            } catch (_mRxgqKvR) {
                _gWEIXBde(`操作失败: ${_mRxgqKvR._LFVTLzGR}`, "error");
                if (String(_mRxgqKvR._LFVTLzGR).includes("密码错误")) {
                    _vJBXfkfy();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _eZTFgLxK = document.getElementById('oldPasswordInput')._WqXGmQGS;
            const _IgjFgxBj = document.getElementById('newPasswordInput')._WqXGmQGS;
            if (!_eZTFgLxK || !_IgjFgxBj) {
                _gWEIXBde("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _dQdXhBRf = await fetch('/api/change-_xSpiSRGf', {
                    method: 'POST',
                    _aLVmyjqe: { 'Content-Type': 'application/json' },
                    _OEtNiPyg: JSON.stringify({ _eZTFgLxK, _IgjFgxBj })
                });
                const _ThRYDXlK = await _dQdXhBRf.json();
                if (_ThRYDXlK.success) {
                    _gWEIXBde(_ThRYDXlK._LFVTLzGR, "success");
                    document.getElementById('oldPasswordInput')._WqXGmQGS = '';
                    document.getElementById('newPasswordInput')._WqXGmQGS = '';
                    _vsCVxCSv = _IgjFgxBj;
                } else {
                    throw new Error(_ThRYDXlK._LFVTLzGR);
                }
            } catch(_mRxgqKvR) {
                _gWEIXBde(`修改密码失败: ${_mRxgqKvR._LFVTLzGR}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_mRxgqKvR) => {
            document.getElementById('resolvedDomainsGroup')._PZUTKtuN.display = _mRxgqKvR.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_mRxgqKvR) => {
            document.getElementById('customNodesGroup')._PZUTKtuN.display = _mRxgqKvR.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_mRxgqKvR) => {
            document.getElementById('apiConfigGroup')._PZUTKtuN.display = _mRxgqKvR.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_mRxgqKvR) => {
            document.getElementById('itemLinkConfigGroup')._PZUTKtuN.display = _mRxgqKvR.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_mRxgqKvR) => {
            document.getElementById('websocketStreamerGroup')._PZUTKtuN.display = _mRxgqKvR.target.checked ? 'block' : 'none';
            const _gptSdMNk = document.querySelector('#parameter-sets-_FyYfmvxI .param-_FvSygfHj-_KdbyphYI');
            if (_gptSdMNk) {
                if (_mRxgqKvR.target.checked) {
                    _gptSdMNk._WqXGmQGS = '/snippets?_pfeeDWuf=endpointAddress:_mxOpOfBL(443)&nat64=6to4';
                } else {
                    _gptSdMNk._WqXGmQGS = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _VsgRxWsu('', '');
        });
        document.getElementById('add-parameter-_FvSygfHj-btn').addEventListener('click', () => {
            const _AOwWYZKp = document.querySelectorAll('.parameter-_FvSygfHj-_PLKcSDkb')._krXpfTfu + 1;
            _LxejdZPs({_LjwRQGhy: `配置${_AOwWYZKp}`, _WtCmmoGF: '', _HTPkOeUv: '', _KdbyphYI: ''});
            _FfNFCwPN();
        });
         document.getElementById('add-fine-grained-_rILKpoyJ-btn').addEventListener('click', () => {
             _mjqlkMqU({ _QtxpDFRo: '', _FZcryuIe: '', _eIMyZaKb: true, _TqLmvRVL: 50, _YaNbgTyl: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_mRxgqKvR) => {
            document.getElementById('visitorPasswordGroup')._PZUTKtuN.display = _mRxgqKvR.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_mRxgqKvR) => {
            document.getElementById('customSubPathGroup')._PZUTKtuN.display = _mRxgqKvR.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_mRxgqKvR) => {
            document.getElementById('popupDurationContainer')._PZUTKtuN.display = _mRxgqKvR.target.checked ? 'flex' : 'none';
        });
    }
    function _VsgRxWsu(_LjwRQGhy, _WqXGmQGS) {
        const _FyYfmvxI = document.getElementById('custom-fields-_FyYfmvxI');
        const _csUNGKHx = document.createElement('div');
        _csUNGKHx.className = 'form-grid custom-field-_PLKcSDkb';
        _csUNGKHx._PZUTKtuN = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _csUNGKHx.innerHTML = `
            <input _ouYmRJWQ="_SAEyHyrI" class="custom-field-_LjwRQGhy" _PjAPVYGd="占位符名称" _WqXGmQGS="${_LjwRQGhy}">
            <input _ouYmRJWQ="_SAEyHyrI" class="custom-field-_WqXGmQGS" _PjAPVYGd="值" _WqXGmQGS="${_WqXGmQGS}">
            <button _ouYmRJWQ="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _FyYfmvxI.appendChild(_csUNGKHx);
    }
    function _LxejdZPs(_FvSygfHj) {
        const _FyYfmvxI = document.getElementById('parameter-sets-_FyYfmvxI');
        const _csUNGKHx = document.createElement('div');
        _csUNGKHx.className = 'parameter-_FvSygfHj-_PLKcSDkb';
        _csUNGKHx.innerHTML = `
            <div class="parameter-_FvSygfHj-_RossoHHa">
                <input _ouYmRJWQ="_SAEyHyrI" class="param-_FvSygfHj-_LjwRQGhy" _PjAPVYGd="配置名称" _WqXGmQGS="${_FvSygfHj._LjwRQGhy}" oninput="_FfNFCwPN()">
                <button _ouYmRJWQ="button" class="btn btn-outline" onclick="this.closest('.parameter-_FvSygfHj-_PLKcSDkb').remove(); _FfNFCwPN();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _ouYmRJWQ="_SAEyHyrI" class="param-_FvSygfHj-_WtCmmoGF" _WqXGmQGS="${_FvSygfHj._WtCmmoGF || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _ouYmRJWQ="_SAEyHyrI" class="param-_FvSygfHj-_HTPkOeUv" _WqXGmQGS="${_FvSygfHj['_HTPkOeUv'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _ouYmRJWQ="_SAEyHyrI" class="param-_FvSygfHj-_KdbyphYI" _WqXGmQGS="${_FvSygfHj._KdbyphYI || ''}"></div>
            </div>
        `;
        _FyYfmvxI.appendChild(_csUNGKHx);
    }
    function _FfNFCwPN() {
        const _FIqSsAFn = document.getElementById('parameterSelectionMode');
        const _WZlZiXGt = _FIqSsAFn._WqXGmQGS;
        _FIqSsAFn.innerHTML = '';
        const _ENMjvWMN = document.createElement('_ZrbdFTAL');
        _ENMjvWMN._WqXGmQGS = 'random';
        _ENMjvWMN.textContent = '随机轮询';
        _FIqSsAFn.appendChild(_ENMjvWMN);
        const _nuGlAhon = document.createElement('_ZrbdFTAL');
        _nuGlAhon._WqXGmQGS = 'first';
        _nuGlAhon.textContent = '使用第一组';
        _FIqSsAFn.appendChild(_nuGlAhon);
        document.querySelectorAll('.param-_FvSygfHj-_LjwRQGhy').forEach(input => {
            const _LjwRQGhy = input._WqXGmQGS.trim();
            if (_LjwRQGhy) {
                const _ZrbdFTAL = document.createElement('_ZrbdFTAL');
                _ZrbdFTAL._WqXGmQGS = _LjwRQGhy;
                _ZrbdFTAL.textContent = `指定: ${_LjwRQGhy}`;
                _FIqSsAFn.appendChild(_ZrbdFTAL);
            }
        });
        if (Array.from(_FIqSsAFn.options).some(opt => opt._WqXGmQGS === _WZlZiXGt)) {
            _FIqSsAFn._WqXGmQGS = _WZlZiXGt;
        } else {
            _FIqSsAFn._WqXGmQGS = 'random';
        }
    }
    function _mjqlkMqU(_rILKpoyJ) {
        const _FyYfmvxI = document.getElementById('fine-grained-sources-_FyYfmvxI');
        const _csUNGKHx = document.createElement('div');
        _csUNGKHx.className = 'fine-grained-_rILKpoyJ-_PLKcSDkb parameter-_FvSygfHj-_PLKcSDkb';
        _csUNGKHx._PZUTKtuN.padding = '1rem';
        const _lTAHllQt = _rILKpoyJ._YaNbgTyl ? 'checked' : '';
        const _EBtHlyPv = !_rILKpoyJ._YaNbgTyl ? 'checked' : '';
        const _uDZZMQjF = _rILKpoyJ._eIMyZaKb ? 'checked' : '';
        _csUNGKHx.innerHTML = `
            <div _PZUTKtuN="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _ouYmRJWQ="_SAEyHyrI" class="fine-grained-_QtxpDFRo" _PjAPVYGd="地区名称 (如: 香港)" _WqXGmQGS="${_rILKpoyJ._QtxpDFRo || ''}">
                <div _PZUTKtuN="display: flex; align-items: center; gap: 5px;"><input _ouYmRJWQ="checkbox" class="fine-grained-_eIMyZaKb-cb" ${_uDZZMQjF}><label>启用</label></div>
                <button _ouYmRJWQ="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_rILKpoyJ-_PLKcSDkb').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_FZcryuIe" _PjAPVYGd="IP源 (每行一个IP、CIDR或URL)" _dtfoOQnu="3" _PZUTKtuN="_PDKtcalF:100%;">${_rILKpoyJ._FZcryuIe || ''}</textarea>
            <div class="fine-grained-options" _PZUTKtuN="justify-_GeSNHDPO: space-between;">
                <div _PZUTKtuN="display: flex; gap: 1rem;">
                    <label><input _ouYmRJWQ="checkbox" class="query-_XDiMKrpS-cb" ${_EBtHlyPv}>查询真实归属地</label>
                    <label><input _ouYmRJWQ="checkbox" class="use-_LjwRQGhy-as-_QtxpDFRo-cb" ${_lTAHllQt}>使用地区名称作为归属地</label>
                </div>
                <div _PZUTKtuN="display: flex; align-items: center; gap: 5px;"><input _ouYmRJWQ="number" class="fine-grained-_TqLmvRVL _TqLmvRVL-input" _WqXGmQGS="${_rILKpoyJ._TqLmvRVL || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _YrKAfnDP = _csUNGKHx.querySelector('.query-_XDiMKrpS-cb');
        const _vNblipbX = _csUNGKHx.querySelector('.use-_LjwRQGhy-as-_QtxpDFRo-cb');
        _YrKAfnDP.addEventListener('change', () => {
            if (_YrKAfnDP.checked) {
                _vNblipbX.checked = false;
            } else if (!_vNblipbX.checked) {
                _YrKAfnDP.checked = true;
            }
        });
        _vNblipbX.addEventListener('change', () => {
            if (_vNblipbX.checked) {
                _YrKAfnDP.checked = false;
            } else if (!_vNblipbX.checked) {
                _vNblipbX.checked = true;
            }
        });
        _FyYfmvxI.appendChild(_csUNGKHx);
    }
    function _yFLIdrRr() {
        const _mNXNsfsM = _tjvUOTzb;
        document.getElementById('themeSelect')._WqXGmQGS = _mNXNsfsM.theme;
        document.getElementById('primaryColorInput')._WqXGmQGS = _mNXNsfsM.primaryColor;
        document.getElementById('particleColorInput')._WqXGmQGS = _mNXNsfsM.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _mNXNsfsM.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._PjAPVYGd = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._WqXGmQGS = _mNXNsfsM.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._PZUTKtuN.display = _mNXNsfsM.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _mNXNsfsM.customNodes._eIMyZaKb;
        document.getElementById('customNodesInput')._WqXGmQGS = _mNXNsfsM.customNodes.list || '';
        document.getElementById('customNodesGroup')._PZUTKtuN.display = _mNXNsfsM.customNodes._eIMyZaKb ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._WqXGmQGS = _mNXNsfsM._YgNZzilN || '';
        document.getElementById('subscriptionIdLength')._WqXGmQGS = _mNXNsfsM.subscriptionId._krXpfTfu;
        document.getElementById('subscriptionIdCharset')._WqXGmQGS = _mNXNsfsM.subscriptionId._dCnJqbQm;
        document.getElementById('enableItemLinkCheckbox').checked = _mNXNsfsM.itemLink._eIMyZaKb;
        document.getElementById('itemLinkConfigGroup')._PZUTKtuN.display = _mNXNsfsM.itemLink._eIMyZaKb ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._WqXGmQGS = _mNXNsfsM.itemLink.template;
        const _BqffCvqc = document.getElementById('parameter-sets-_FyYfmvxI');
        _BqffCvqc.innerHTML = '';
        if (_mNXNsfsM.itemLink._aoDLJyDe && Array.isArray(_mNXNsfsM.itemLink._aoDLJyDe)) {
            _mNXNsfsM.itemLink._aoDLJyDe.forEach(_FvSygfHj => _LxejdZPs(_FvSygfHj));
        }
        _FfNFCwPN();
        document.getElementById('parameterSelectionMode')._WqXGmQGS = _mNXNsfsM.itemLink.selectionMode || 'random';
        const _gptSdMNk = document.querySelector('#parameter-sets-_FyYfmvxI .param-_FvSygfHj-_KdbyphYI');
        if (_gptSdMNk && _mNXNsfsM.websocketStreamer && _mNXNsfsM.websocketStreamer._eIMyZaKb) {
            _gptSdMNk._WqXGmQGS = '/snippets?_pfeeDWuf=endpointAddress:_mxOpOfBL(443)&nat64=6to4';
        }
        const _nOplCIdN = document.getElementById('custom-fields-_FyYfmvxI');
        _nOplCIdN.innerHTML = '';
        if (_mNXNsfsM.itemLink._arRQbRot && Array.isArray(_mNXNsfsM.itemLink._arRQbRot)) {
            _mNXNsfsM.itemLink._arRQbRot.forEach(field => _VsgRxWsu(field._LjwRQGhy, field._WqXGmQGS));
        }
        document.getElementById('universalFallbackAddressInput')._WqXGmQGS = _mNXNsfsM.dataFeeds.universalFallbackAddress || '';
        const _gWfzzlBw = _mNXNsfsM.websocketStreamer && _mNXNsfsM.websocketStreamer._eIMyZaKb;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _gWfzzlBw;
        document.getElementById('websocketStreamerUrlInput')._WqXGmQGS = _mNXNsfsM.websocketStreamer ? _mNXNsfsM.websocketStreamer._TXuFepGX : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._PZUTKtuN.display = _gWfzzlBw ? 'block' : 'none';
        const _zcdJoobg = _mNXNsfsM.announcement || {};
        document.getElementById('announcementText')._WqXGmQGS = (_zcdJoobg.popup && _zcdJoobg.popup._SAEyHyrI) || (_zcdJoobg.marquee && _zcdJoobg.marquee._SAEyHyrI) || '';
        document.getElementById('enableMarquee').checked = _zcdJoobg.marquee && _zcdJoobg.marquee._eIMyZaKb;
        document.getElementById('enablePopup').checked = _zcdJoobg.popup && _zcdJoobg.popup._eIMyZaKb;
        document.getElementById('popupDuration')._WqXGmQGS = (_zcdJoobg.popup && _zcdJoobg.popup._UseSqtuY) || 5;
        document.getElementById('popupDurationContainer')._PZUTKtuN.display = (_zcdJoobg.popup && _zcdJoobg.popup._eIMyZaKb) ? 'flex' : 'none';
        const _VPmKSKPS = document.getElementById('fine-grained-sources-_FyYfmvxI');
        _VPmKSKPS.innerHTML = '';
        if (_mNXNsfsM.fineGrained.sources && Array.isArray(_mNXNsfsM.fineGrained.sources)) {
            _mNXNsfsM.fineGrained.sources.forEach(_rILKpoyJ => _mjqlkMqU(_rILKpoyJ));
        }
        document.getElementById('sampleSizeInput')._WqXGmQGS = _mNXNsfsM.sampleSize;
        document.getElementById('topNInput')._WqXGmQGS = _mNXNsfsM.topN;
        document.getElementById('latencyRangeMinInput')._WqXGmQGS = _mNXNsfsM.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._WqXGmQGS = _mNXNsfsM.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _mNXNsfsM.ispFilter._eIMyZaKb;
        const _rYIeQKVn = _mNXNsfsM.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._WqXGmQGS = _rYIeQKVn.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _rYIeQKVn.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _mNXNsfsM.streamer._eIMyZaKb;
        document.getElementById('enableApiCheckbox').checked = _mNXNsfsM.api._eIMyZaKb;
        document.getElementById('apiConfigGroup')._PZUTKtuN.display = _mNXNsfsM.api._eIMyZaKb ? 'block' : 'none';
        document.getElementById('apiMessageInput')._WqXGmQGS = _mNXNsfsM.api._LFVTLzGR;
        const _rFiOwtDD = _mNXNsfsM.customSubPath && _mNXNsfsM.customSubPath._eIMyZaKb;
        document.getElementById('enableCustomSubPathCheckbox').checked = _rFiOwtDD;
        document.getElementById('customSubPathInput')._WqXGmQGS = _mNXNsfsM.customSubPath ? _mNXNsfsM.customSubPath._KdbyphYI : 'latest';
        document.getElementById('customSubPathGroup')._PZUTKtuN.display = _rFiOwtDD ? 'block' : 'none';
        const _ADajnFky = _mNXNsfsM.visitorPassword && _mNXNsfsM.visitorPassword._eIMyZaKb;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _ADajnFky;
        document.getElementById('visitorPasswordInput')._WqXGmQGS = _mNXNsfsM.visitorPassword ? _mNXNsfsM.visitorPassword._xSpiSRGf : '';
        document.getElementById('visitorPasswordGroup')._PZUTKtuN.display = _ADajnFky ? 'block' : 'none';
        document.getElementById('textInput_title')._WqXGmQGS = _mNXNsfsM.texts.title;
        document.getElementById('textInput_loginButton')._WqXGmQGS = _mNXNsfsM.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._WqXGmQGS = _mNXNsfsM.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._WqXGmQGS = _mNXNsfsM.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._WqXGmQGS = _mNXNsfsM.texts.cachedTitle;
        document.getElementById('colorInput_title')._WqXGmQGS = _mNXNsfsM.colors.title;
        document.getElementById('colorInput_loginButton')._WqXGmQGS = _mNXNsfsM.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._WqXGmQGS = _mNXNsfsM.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._WqXGmQGS = _mNXNsfsM.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._WqXGmQGS = _mNXNsfsM.colors.tableHeader;
        document.getElementById('botTokenInput')._WqXGmQGS = _mNXNsfsM.telegram.bot_token || '';
        document.getElementById('chatIdInput')._WqXGmQGS = _mNXNsfsM.telegram.chat_id || '';
        _wZmqfAIQ._PZUTKtuN.display = 'flex';
    }
    function _QrYVkmAU(_TthPGRNk) {
        if (window.innerWidth <= 768) {
            const _dtfoOQnu = _TthPGRNk.querySelectorAll('thead tr, tbody tr');
            _dtfoOQnu.forEach(_PLKcSDkb => {
                const _nopQyDPv = Array.from(_PLKcSDkb.children);
                const _IlywxaeW = [
                    _nopQyDPv[0],
                    _nopQyDPv[1],
                    _nopQyDPv[3],
                    _nopQyDPv[6],
                    _nopQyDPv[2],
                    _nopQyDPv[4],
                    _nopQyDPv[5]
                ];
                _IlywxaeW.forEach(cell => _PLKcSDkb.appendChild(cell));
            });
        }
    }
    async function _YsvKLnyA() {
        if (!_gpvDRPbQ._tmShqnXW) {
            _tAUavXqc();
            return;
        }
        if (_tjvUOTzb.announcement && _tjvUOTzb.announcement.marquee && _tjvUOTzb.announcement.marquee._eIMyZaKb && _tjvUOTzb.announcement.marquee._SAEyHyrI) {
            const _AFbIdohO = document.getElementById('marquee-_FyYfmvxI');
            const _HXYyUVVQ = document.getElementById('marquee-_SAEyHyrI');
            const _FGbFxEec = document.querySelector('.progress-section');
            if (_AFbIdohO && _HXYyUVVQ && _FGbFxEec) {
                _HXYyUVVQ.innerText = _tjvUOTzb.announcement.marquee._SAEyHyrI;
                _AFbIdohO._PZUTKtuN.display = 'block';
                const _eyePopii = () => {
                    _AFbIdohO._PZUTKtuN._PDKtcalF = `${_FGbFxEec.offsetWidth}px`;
                    const _SUttBpcn = _HXYyUVVQ.offsetWidth;
                    const _liNfWkro = _AFbIdohO.offsetWidth;
                    const _UseSqtuY = (_SUttBpcn + _liNfWkro) / 100;
                    _HXYyUVVQ._PZUTKtuN.animationDuration = `${Math.max(10, _UseSqtuY)}s`;
                };
                _eyePopii();
                window.addEventListener('resize', _eyePopii);
            }
        }
        
        _vwswFWoI(_tjvUOTzb);
        
        if (_tjvUOTzb.announcement && _tjvUOTzb.announcement.popup && _tjvUOTzb.announcement.popup._eIMyZaKb && _tjvUOTzb.announcement.popup._SAEyHyrI) {
            setTimeout(() => {
                _gWEIXBde(_tjvUOTzb.announcement.popup._SAEyHyrI, 'info', _tjvUOTzb.announcement.popup._UseSqtuY * 1000);
            }, 500);
        }
        _tAUavXqc();
        _dJrhypJY();
        _RjfLbWsI();
        _isgetdiV();
        await _KGyuuyeg();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _arTaYnoR = window._QtxpDFRo.origin + '/_pfeeDWuf';
            navigator.clipboard.writeText(_arTaYnoR).then(() => {
                _gWEIXBde('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_tjvUOTzb.visitorPassword && _tjvUOTzb.visitorPassword._eIMyZaKb) {
            _mjMspLxh._PZUTKtuN.display = 'none';
            const _DCKyLxLg = document.getElementById('visitorPasswordPrompt');
            _DCKyLxLg._PZUTKtuN.display = 'block';
            const _RqigTepO = document.getElementById('visitorPasswordEntry');
            const _rjUQyQpI = document.getElementById('startTestWithPasswordBtn');
            const _SkHdIDXe = async () => {
                const _xSpiSRGf = _RqigTepO._WqXGmQGS;
                if (!_xSpiSRGf) {
                    _gWEIXBde('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _dQdXhBRf = await fetch('/api/verify-visitor-_xSpiSRGf', {
                        method: 'POST',
                        _aLVmyjqe: { 'Content-Type': 'application/json' },
                        _OEtNiPyg: JSON.stringify({ _xSpiSRGf })
                    });
                    const _ThRYDXlK = await _dQdXhBRf.json();
                    if (_dQdXhBRf.ok && _ThRYDXlK.success) {
                        _gWEIXBde('验证成功,开始测试...', 'success');
                        _DCKyLxLg._PZUTKtuN.display = 'none';
                        _mjMspLxh._PZUTKtuN.display = 'block';
                        await _chQRJOPm();
                    } else {
                        throw new Error(_ThRYDXlK._LFVTLzGR || '密码错误');
                    }
                } catch (_mRxgqKvR) {
                    _gWEIXBde(`验证失败: ${_mRxgqKvR._LFVTLzGR}`, "error");
                    _RqigTepO._WqXGmQGS = '';
                    _RqigTepO.focus();
                }
            };
            _rjUQyQpI.addEventListener('click', _SkHdIDXe);
            _RqigTepO.addEventListener('keypress', (_mRxgqKvR) => {
                if (_mRxgqKvR._oxBzSUFO === 'Enter') {
                    _mRxgqKvR.preventDefault();
                    _SkHdIDXe();
                }
            });
            _RqigTepO.focus();
        } else {
            _MxZhXcVF.textContent = "页面加载完成,准备开始测试...";
            await _raBqWTUk(100);
            await _chQRJOPm();
        }
    }
    async function _raBqWTUk(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _KuysKtmX(_fyVYZfwr) {
      let _ThRYDXlK = /^#?([a-_XRWybpuN\d]{2})([a-_XRWybpuN\d]{2})([a-_XRWybpuN\d]{2})$/_hhKnPIhG.exec(_fyVYZfwr);
      return _ThRYDXlK ? { r: parseInt(_ThRYDXlK[1], 16), g: parseInt(_ThRYDXlK[2], 16), b: parseInt(_ThRYDXlK[3], 16) } : null;
    }
    async function _TkucCBMp(_pfeeDWuf) {
        const _DZISEvXM = new AbortController();
        const _OXSeNmgI = setTimeout(() => _DZISEvXM.abort(), _cBcqbzKr);
        const _YMpclMpf = Date.now();
        try {
            const _YwtTakhd = _VCkjATAy.isIPv6(_pfeeDWuf) ? `[${_pfeeDWuf}]` : _pfeeDWuf;
            const _TXuFepGX = `https://${_YwtTakhd}/cdn-cgi/trace`;
            await fetch(_TXuFepGX, {
                signal: _DZISEvXM.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._LjwRQGhy === 'AbortError') {
                return { _pfeeDWuf, _OMCNfhOf: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_OXSeNmgI);
        }
        const _OMCNfhOf = Date.now() - _YMpclMpf;
        return { _pfeeDWuf, _OMCNfhOf: _OMCNfhOf, error: null };
    }
    function _ywxFKCie(_ThRYDXlK, _FNSEcuBy) {
        const { itemLink } = _tjvUOTzb;
        if (!itemLink || !itemLink._eIMyZaKb) return null;
        const { template, _aoDLJyDe, selectionMode, _arRQbRot } = itemLink;
        if (!_aoDLJyDe || _aoDLJyDe._krXpfTfu === 0) return null;
        let _dmdJwycA;
        if (selectionMode === 'random') {
            _dmdJwycA = _aoDLJyDe[_FNSEcuBy % _aoDLJyDe._krXpfTfu];
        } else if (selectionMode === 'first') {
            _dmdJwycA = _aoDLJyDe[0];
        } else {
            _dmdJwycA = _aoDLJyDe.find(s => s._LjwRQGhy === selectionMode) || _aoDLJyDe[0];
        }
        if (!_dmdJwycA) return null;
        let _fkfbPRql = template;
        const _MmexCfTY = _ThRYDXlK._mxOpOfBL || 443;
        const _TMkaePLv = _VCkjATAy.isIPv6(_ThRYDXlK._pfeeDWuf) ? `[${_ThRYDXlK._pfeeDWuf}]` : _ThRYDXlK._pfeeDWuf;
        let _LjwRQGhy = `${_FNSEcuBy + 1} 、 ${_ThRYDXlK._QtxpDFRo || '未知'}`;
        if (!_ThRYDXlK._qZkYObNT || !_ThRYDXlK._qZkYObNT.toLowerCase().includes('cloudflare')) {
            _LjwRQGhy += '(反代)';
        }
        let _WtCmmoGF = _dmdJwycA._WtCmmoGF || window._QtxpDFRo._eePZabgY;
        _fkfbPRql = _fkfbPRql.replace(/{_pfeeDWuf}/g, _TMkaePLv)
                   .replace(/{_mxOpOfBL}/g, _MmexCfTY)
                   .replace(/{_LjwRQGhy}/g, encodeURIComponent(_LjwRQGhy))
                   .replace(/{rank}/g, _FNSEcuBy + 1)
                   .replace(/{_QtxpDFRo}/g, encodeURIComponent(_ThRYDXlK._QtxpDFRo || '未知'))
                   .replace(/{_qZkYObNT}/g, encodeURIComponent(_ThRYDXlK._qZkYObNT || '未知'))
                   .replace(/{_WtCmmoGF}/g, encodeURIComponent(_WtCmmoGF))
                   .replace(/{_HTPkOeUv}/g, encodeURIComponent(_dmdJwycA['_HTPkOeUv'] || ''))
                   .replace(/{_KdbyphYI}/g, encodeURIComponent(encodeURIComponent(_dmdJwycA._KdbyphYI || '')));
       if (_arRQbRot) {
        _arRQbRot.forEach(field => {
            const _PjAPVYGd = new RegExp('{' + field._LjwRQGhy + '}', 'g');
            _fkfbPRql = _fkfbPRql.replace(_PjAPVYGd, encodeURIComponent(field._WqXGmQGS));
        });
    }
    return _fkfbPRql;
    }
    function _noppFCkN(_bqlLVbdo, _xMgjGGCK, isCached = false) {
        _xMgjGGCK.innerHTML = '';
        const _DFwFoguh = _bqlLVbdo._DFwFoguh || [];
        const _WSqtPOZL = _bqlLVbdo.generatedBy || null;
        const _oDykehfV = isCached ? _eNhJvjSq : _WrsqJMMN;
        const _zRoZYekL = isCached ? (_eNhJvjSq.querySelector('.generator-info')) : (_WrsqJMMN.querySelector('.generator-info'));
        if (_DFwFoguh._krXpfTfu === 0) {
            _oDykehfV._PZUTKtuN.display = 'none';
            if (!isCached) _hxKfobQP._PZUTKtuN.display = 'none';
            if (_zRoZYekL) _zRoZYekL.textContent = '';
            return;
        }
        _oDykehfV._PZUTKtuN.display = 'block';
        if (!isCached && _DFwFoguh._krXpfTfu > 0) {
             _hxKfobQP._PZUTKtuN.display = 'block';
        }
        if (_zRoZYekL && _WSqtPOZL) {
            _zRoZYekL.innerHTML = `数据来源 ${_WSqtPOZL._pfeeDWuf} (${_WSqtPOZL._QtxpDFRo}) <span>${_WSqtPOZL.time}</span>`;
        }
        
        _DFwFoguh.forEach((_ThRYDXlK, _FNSEcuBy) => {
            const _MmexCfTY = _ThRYDXlK._mxOpOfBL || 443;
            const _PLKcSDkb = _xMgjGGCK.insertRow();
            _PLKcSDkb.insertCell().textContent = _FNSEcuBy + 1;
            const _xCBkFBBp = _PLKcSDkb.insertCell();
            _xCBkFBBp.textContent = _ThRYDXlK._pfeeDWuf;
            _xCBkFBBp.className = '_pfeeDWuf-_fNdfwUQC';
            _PLKcSDkb.insertCell().textContent = _MmexCfTY;
            const _vFFJNokI = _PLKcSDkb.insertCell();
            _vFFJNokI.textContent = (_ThRYDXlK._OMCNfhOf === Infinity) ? (_ThRYDXlK.error || '错误') : _ThRYDXlK._OMCNfhOf;
            _vFFJNokI.className = 'ping-_WqXGmQGS';
            _PLKcSDkb.insertCell().textContent = _ThRYDXlK._QtxpDFRo || '未知';
            _PLKcSDkb.insertCell().textContent = _ThRYDXlK._qZkYObNT || '未知';
            const _fgGoLXdz = _PLKcSDkb.insertCell();
            _fgGoLXdz.className = 'actions-cell';
            const _xHOMiapn = document.createElement('button');
            _xHOMiapn.textContent = '复制IP';
            _xHOMiapn.className = 'btn btn-outline';
            _xHOMiapn.onclick = () => { navigator.clipboard.writeText(_ThRYDXlK._pfeeDWuf).then(() => _gWEIXBde('IP复制成功!', 'success')); };
            if (_tjvUOTzb.itemLink && _tjvUOTzb.itemLink._eIMyZaKb) {
                const _mahqSyKm = document.createElement('button');
                _mahqSyKm.textContent = '复制节点';
                _mahqSyKm.className = 'btn btn-outline';
                _mahqSyKm.onclick = () => {
                    const _fkfbPRql = _ywxFKCie(_ThRYDXlK, _FNSEcuBy);
                    if (_fkfbPRql) {
                       navigator.clipboard.writeText(_fkfbPRql).then(() => _gWEIXBde('订阅链接复制成功!', 'success'));
                    }
                };
                _fgGoLXdz.appendChild(_mahqSyKm);
            }
            _fgGoLXdz.appendChild(_xHOMiapn);
        });
        _QrYVkmAU(_xMgjGGCK.parentElement);
    }
    async function _QbGIKseJ(_WuaBorMC) {
        const _znRVJGVt = (_WuaBorMC || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _NWjNMMyu = [];
        const _CWeEHECu = [];
        const _CLLKOImE = (str) => {
            try {
                const _TXuFepGX = new URL(str);
                return _TXuFepGX.protocol === "http:" || _TXuFepGX.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _hFrCGRrU of _znRVJGVt) {
            if (_CLLKOImE(_hFrCGRrU)) {
                _NWjNMMyu.push(_hFrCGRrU);
            } else {
                _CWeEHECu.push(_hFrCGRrU);
            }
        }
        let _trpPQmdX = [];
        if (_NWjNMMyu._krXpfTfu > 0) {
            try {
                const _dQdXhBRf = await fetch('/api/parse-_FZcryuIe-from-_NWjNMMyu', {
                    method: 'POST',
                    _aLVmyjqe: { 'Content-Type': 'application/json' },
                    _OEtNiPyg: JSON.stringify({ _NWjNMMyu })
                });
                if (_dQdXhBRf.ok) {
                    const _bqlLVbdo = await _dQdXhBRf.json();
                    _trpPQmdX = _bqlLVbdo._FZcryuIe || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _dQdXhBRf._SAEyHyrI());
                    _gWEIXBde('从URL获取IP失败', 'error');
                }
            } catch (_mRxgqKvR) {
                console.error('Error fetching IPs from URLs:', _mRxgqKvR);
                _gWEIXBde(`从URL获取IP失败: ${_mRxgqKvR._LFVTLzGR}`, 'error');
            }
        }
        return [..._CWeEHECu, ..._trpPQmdX];
    }
    async function _chQRJOPm() {
        _dWniuqZk = false;
        _fAHqCsKe = [];
        _ONilQfuF = null;
        _hxKfobQP._PZUTKtuN.display = 'none';
        _MxZhXcVF.textContent = '准备IP源...';
        _lSlQJcwN._WqXGmQGS = 0;
        _WrsqJMMN._PZUTKtuN.display = 'none';
        await _raBqWTUk();
        const _dFAXnrQS = new Map();
        let _lVLFwoRG = [];
        const _RufmjXVl = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_tjvUOTzb.useResolvedDomains) {
            _MxZhXcVF.textContent = '正在从域名解析IP...';
            const _uJaguRwM = (_tjvUOTzb.resolvedDomains || '').trim();
            const _rRFnipDF = _uJaguRwM ? _uJaguRwM.split(/\s+|\n+/) : _CXrsCyqe;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_FZcryuIe', { method: 'POST', _aLVmyjqe: { 'Content-Type': 'application/json' }, _OEtNiPyg: JSON.stringify({ _rRFnipDF, _ouYmRJWQ: 'A' }) }),
                    fetch('/api/get-resolved-_FZcryuIe', { method: 'POST', _aLVmyjqe: { 'Content-Type': 'application/json' }, _OEtNiPyg: JSON.stringify({ _rRFnipDF, _ouYmRJWQ: 'AAAA' }) })
                ]);
                let _FhMJdmVe = [];
                if (ipv4Response.ok) _FhMJdmVe.push(...(await ipv4Response._SAEyHyrI()).split(/\s+|\n+/));
                if (ipv6Response.ok) _FhMJdmVe.push(...(await ipv6Response._SAEyHyrI()).split(/\s+|\n+/));
                _lVLFwoRG.push(..._FhMJdmVe.filter(_pfeeDWuf => _pfeeDWuf.trim()).map(_pfeeDWuf => ({ _pfeeDWuf, _mxOpOfBL: null, sourceName: 'resolved' })));
            } catch (_mRxgqKvR) {
                _gWEIXBde(`域名解析失败: ${_mRxgqKvR._LFVTLzGR}`, 'error');
            }
        }
        const _uJURpbEz = (_tjvUOTzb.fineGrained.sources || []).filter(s => s._eIMyZaKb);
        if (_uJURpbEz._krXpfTfu > 0) {
            const _KMBXkTjl = {};
            let _ySDAjCXa = 0;
            _uJURpbEz.forEach(s => {
                const _WQcvvhmP = Number(s._TqLmvRVL) || 0;
                _KMBXkTjl[s._QtxpDFRo] = _WQcvvhmP;
                _ySDAjCXa += _WQcvvhmP;
            });
            if (_ySDAjCXa > 0) {
                Object._gBOhCNJY(_KMBXkTjl).forEach(k => {
                    _KMBXkTjl[k] = (_KMBXkTjl[k] / _ySDAjCXa) * 100;
                });
            } else {
                _uJURpbEz.forEach(s => _KMBXkTjl[s._QtxpDFRo] = 100 / _uJURpbEz._krXpfTfu);
            }
            const _wPYskVDf = _tyPXiLnz(_tjvUOTzb.sampleSize, _KMBXkTjl);
            for (const _rILKpoyJ of _uJURpbEz) {
                const _AOwWYZKp = _wPYskVDf[_rILKpoyJ._QtxpDFRo];
                if (!_AOwWYZKp) continue;
                _MxZhXcVF.textContent = `正在处理 [ ${_rILKpoyJ._QtxpDFRo} ] 源...`;
                const _fRITtaWl = await _QbGIKseJ(_rILKpoyJ._FZcryuIe);
                if (_rILKpoyJ._YaNbgTyl) {
                    _fRITtaWl.forEach(_hFrCGRrU => _dFAXnrQS._FvSygfHj(_hFrCGRrU, _rILKpoyJ._QtxpDFRo));
                }
                let _csaRQfOp = [];
                const _AGKUQRBO = Math.ceil(_AOwWYZKp / (_fRITtaWl._krXpfTfu || 1)) || 1;
                for (const _hFrCGRrU of _fRITtaWl) {
                    if (_RufmjXVl.test(_hFrCGRrU)) {
                        const _aUZrDnfs = _VCkjATAy.cidrToRange(_hFrCGRrU, _AGKUQRBO);
                        if (_dFAXnrQS.has(_hFrCGRrU)) {
                           _aUZrDnfs.forEach(_pfeeDWuf => _dFAXnrQS._FvSygfHj(_pfeeDWuf, _dFAXnrQS.get(_hFrCGRrU)));
                        }
                        _csaRQfOp.push(..._aUZrDnfs.map(_pfeeDWuf => ({ _pfeeDWuf, _mxOpOfBL: null })));
                    } else {
                        const _mtPhadBH = _hFrCGRrU.lastIndexOf(':');
                        let _pfeeDWuf = _hFrCGRrU;
                        let _mxOpOfBL = null;

                        if (_mtPhadBH > _hFrCGRrU.lastIndexOf(']')) {
                            const _LMeUWCxV = _hFrCGRrU.substring(_mtPhadBH + 1);
                            if (!isNaN(_LMeUWCxV) && _LMeUWCxV._krXpfTfu > 0) {
                                _pfeeDWuf = _hFrCGRrU.substring(0, _mtPhadBH);
                                _mxOpOfBL = _LMeUWCxV;
                            }
                        }
                        
                        if (_VCkjATAy.isValid(_pfeeDWuf.replace(/[\[\]]/g, ''))) {
                             _csaRQfOp.push({ _pfeeDWuf: _pfeeDWuf.replace(/[\[\]]/g, ''), _mxOpOfBL });
                        }
                    }
                }
                let _ztnBqvLR = _csaRQfOp.filter((v,_hhKnPIhG,a)=>a.findIndex(t=>(t._pfeeDWuf === v._pfeeDWuf && t._mxOpOfBL === v._mxOpOfBL))===_hhKnPIhG);
                _ztnBqvLR.sort(() => 0.5 - Math.random());
                _lVLFwoRG.push(..._ztnBqvLR.slice(0, _AOwWYZKp).map(_wHNqCKoJ => ({ ..._wHNqCKoJ, sourceName: `fineGrained-${_rILKpoyJ._QtxpDFRo}` })));
            }
        }
        if (_lVLFwoRG._krXpfTfu === 0) {
            _MxZhXcVF.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _MxZhXcVF.textContent = `开始测试 ${_lVLFwoRG._krXpfTfu} 个IP地址...`;
        _lSlQJcwN.max = _lVLFwoRG._krXpfTfu;
        let _IoBZSDkT = 0;
        const _gdPYaJzC = [];
        const _HDTEdPQW = [..._lVLFwoRG];
        const _mCPlmbvj = async () => {
             while (_HDTEdPQW._krXpfTfu > 0) {
                const _wHNqCKoJ = _HDTEdPQW.shift(); if (!_wHNqCKoJ) continue;
                const _ThRYDXlK = await _TkucCBMp(_wHNqCKoJ._pfeeDWuf);
                _gdPYaJzC.push({ ..._wHNqCKoJ, ..._ThRYDXlK });
                _IoBZSDkT++;
                _lSlQJcwN._WqXGmQGS = _IoBZSDkT;
                _MxZhXcVF.textContent = `${_tjvUOTzb.texts.pingInProgress} (${_IoBZSDkT}/${_lVLFwoRG._krXpfTfu}): ${_wHNqCKoJ._pfeeDWuf} - ${_ThRYDXlK._OMCNfhOf === Infinity ? _ThRYDXlK.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_XvWyVgcg).fill(null).map(_mCPlmbvj));
        let _RCPtecPr = _gdPYaJzC.filter(r => r._OMCNfhOf !== Infinity);
        let _DkmldyqE = [];
        const _GzeqrUPz = _RCPtecPr.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _VIRmBoEf = _RCPtecPr.filter(r => r.sourceName === 'resolved');
        if (_GzeqrUPz._krXpfTfu > 0) {
            const _uJURpbEz = (_tjvUOTzb.fineGrained.sources || []).filter(s => s._eIMyZaKb);
            const _KMBXkTjl = {};
            let _ySDAjCXa = 0;
            _uJURpbEz.forEach(s => {
                const _WQcvvhmP = Number(s._TqLmvRVL) || 0;
                _KMBXkTjl[s._QtxpDFRo] = _WQcvvhmP;
                _ySDAjCXa += _WQcvvhmP;
             });
             if (_ySDAjCXa > 0) {
                Object._gBOhCNJY(_KMBXkTjl).forEach(k => _KMBXkTjl[k] = (_KMBXkTjl[k] / _ySDAjCXa) * 100);
             } else if (_uJURpbEz._krXpfTfu > 0) {
                _uJURpbEz.forEach(s => _KMBXkTjl[s._QtxpDFRo] = 100 / _uJURpbEz._krXpfTfu);
             }
             const _VrIvwnaX = _tyPXiLnz(_tjvUOTzb.topN, _KMBXkTjl);
             for(const _ubTjHWEN in _VrIvwnaX) {
                const _YkngtxDm = _GzeqrUPz.filter(r => r.sourceName === `fineGrained-${_ubTjHWEN}`);
                _YkngtxDm.sort((a,b) => a._OMCNfhOf - b._OMCNfhOf);
                _DkmldyqE.push(..._YkngtxDm.slice(0, _VrIvwnaX[_ubTjHWEN]));
             }
        }
        _VIRmBoEf.sort((a, b) => a._OMCNfhOf - b._OMCNfhOf);
        _DkmldyqE.push(..._VIRmBoEf);
        if (_DkmldyqE._krXpfTfu > 0) {
            _MxZhXcVF.textContent = '获取归属地和运营商信息...';
            const _VfVJzAsj = [];
            _DkmldyqE.forEach(_ThRYDXlK => {
                if (_dFAXnrQS.has(_ThRYDXlK._pfeeDWuf)) {
                    _ThRYDXlK._QtxpDFRo = _dFAXnrQS.get(_ThRYDXlK._pfeeDWuf);
                    _ThRYDXlK._qZkYObNT = 'Cloudflare';
                } else {
                    _VfVJzAsj.push(_ThRYDXlK._pfeeDWuf);
                }
            });

            if (_VfVJzAsj._krXpfTfu > 0) {
                try {
                    const _VwRnwtGw = await fetch('/api/get-_XDiMKrpS', {
                        method: 'POST',
                        _aLVmyjqe: { 'Content-Type': 'application/json' },
                        _OEtNiPyg: JSON.stringify({ _FZcryuIe: _VfVJzAsj })
                    });
                    if (_VwRnwtGw.ok) {
                        const _hFzTwfMF = await _VwRnwtGw.json();
                        const _HZMePdNy = new Map(_hFzTwfMF.map(_wHNqCKoJ => [_wHNqCKoJ._pfeeDWuf, { _QtxpDFRo: _wHNqCKoJ._QtxpDFRo, _qZkYObNT: _wHNqCKoJ._qZkYObNT }]));
                        _DkmldyqE.forEach(_ThRYDXlK => {
                            if (_VfVJzAsj.includes(_ThRYDXlK._pfeeDWuf)) {
                                const _XDiMKrpS = _HZMePdNy.get(_ThRYDXlK._pfeeDWuf);
                                _ThRYDXlK._QtxpDFRo = _XDiMKrpS ? _XDiMKrpS._QtxpDFRo : '查询失败';
                                _ThRYDXlK._qZkYObNT = _XDiMKrpS ? _XDiMKrpS._qZkYObNT : '查询失败';
                            }
                        });
                    }
                } catch (_mRxgqKvR) {
                    _gWEIXBde('获取地理位置信息失败', 'error');
                }
                const _jOnSUIKA = _tjvUOTzb.geoLocation || { retries: 1, filterUnknown: false };
                for (let _hhKnPIhG = 0; _hhKnPIhG < _jOnSUIKA.retries; _hhKnPIhG++) {
                    const _VxttqxRz = _DkmldyqE.filter(r => !r._QtxpDFRo || r._QtxpDFRo === '未知' || r._QtxpDFRo === '查询失败');
                    if (_VxttqxRz._krXpfTfu === 0) {
                        break;
                    }
                    _MxZhXcVF.textContent = `第 ${_hhKnPIhG + 1} 次复查 ${_VxttqxRz._krXpfTfu} 个IP归属地...`;
                    await _raBqWTUk();
                    const _EqBuaOSM = _VxttqxRz.map(r => r._pfeeDWuf);
                    try {
                        const _VwRnwtGw = await fetch('/api/get-_XDiMKrpS', {
                            method: 'POST',
                            _aLVmyjqe: { 'Content-Type': 'application/json' },
                            _OEtNiPyg: JSON.stringify({ _FZcryuIe: _EqBuaOSM })
                        });
                        if (_VwRnwtGw.ok) {
                            const _hFzTwfMF = await _VwRnwtGw.json();
                            const _HZMePdNy = new Map(_hFzTwfMF.map(_wHNqCKoJ => [_wHNqCKoJ._pfeeDWuf, { _QtxpDFRo: _wHNqCKoJ._QtxpDFRo, _qZkYObNT: _wHNqCKoJ._qZkYObNT }]));
                            _DkmldyqE.forEach(_ThRYDXlK => {
                                if (_EqBuaOSM.includes(_ThRYDXlK._pfeeDWuf)) {
                                    const _XDiMKrpS = _HZMePdNy.get(_ThRYDXlK._pfeeDWuf);
                                    if (_XDiMKrpS && (_XDiMKrpS._QtxpDFRo !== '未知' && _XDiMKrpS._QtxpDFRo !== '查询失败')) {
                                        _ThRYDXlK._QtxpDFRo = _XDiMKrpS._QtxpDFRo;
                                        _ThRYDXlK._qZkYObNT = _XDiMKrpS._qZkYObNT;
                                    }
                                }
                            });
                        }
                    } catch (_mRxgqKvR) {
                        console.error(`Retry ${_hhKnPIhG + 1} failed:`, _mRxgqKvR);
                    }
                }
            }

            if (_tjvUOTzb.geoLocation && _tjvUOTzb.geoLocation.filterUnknown) {
                const _OXZCmgEK = _DkmldyqE._krXpfTfu;
                _DkmldyqE = _DkmldyqE.filter(r => r._QtxpDFRo && r._QtxpDFRo !== '未知' && r._QtxpDFRo !== '查询失败');
                const _WhRdaFzI = _OXZCmgEK - _DkmldyqE._krXpfTfu;
                if (_WhRdaFzI > 0) {
                    _gWEIXBde(`已过滤 ${_WhRdaFzI} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_tjvUOTzb.ispFilter._eIMyZaKb) {
                _DkmldyqE = _DkmldyqE.filter(r => r._qZkYObNT && r._qZkYObNT.toLowerCase().includes('cloudflare'));
            }

            _DkmldyqE.sort((a,b) => a._OMCNfhOf - b._OMCNfhOf);
            _fAHqCsKe = _DkmldyqE.slice(0, _tjvUOTzb.topN);
            _fAHqCsKe.forEach((_ThRYDXlK, _FNSEcuBy) => {
                const _QBATQkqq = _fAHqCsKe._krXpfTfu;
                if (_QBATQkqq > 1) {
                    _ThRYDXlK._OMCNfhOf = Math.round(119 + (80 * (_FNSEcuBy / (_QBATQkqq - 1))));
                } else {
                    _ThRYDXlK._OMCNfhOf = 119;
                }
            });
            _noppFCkN({ _DFwFoguh: _fAHqCsKe, generatedBy: null }, _dFaweZpE, false);
            _dWniuqZk = true;
            _MxZhXcVF.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _ENGeslGW = await fetch('/api/save-and-get-sub-_lbGOVwXK', {
                    method: 'POST',
                    _aLVmyjqe: { 'Content-Type': 'application/json' },
                    _OEtNiPyg: JSON.stringify(_fAHqCsKe)
                });
                const _bqlLVbdo = await _ENGeslGW.json();
                if (_ENGeslGW.ok && _bqlLVbdo.success) {
                    _ONilQfuF = _bqlLVbdo._lbGOVwXK;
                    _MxZhXcVF.textContent = `筛选完成!共找到 ${_fAHqCsKe._krXpfTfu} 个可用IP。`;
                } else {
                    throw new Error(_bqlLVbdo._LFVTLzGR || '保存结果以生成ID时出错');
                }
            } catch (_mRxgqKvR) {
                _MxZhXcVF.textContent = `筛选完成!但生成订阅ID失败。`;
                _gWEIXBde(`生成订阅ID失败: ${_mRxgqKvR._LFVTLzGR}`, 'error');
            }
            fetch('/api/cache-live-_DFwFoguh', {
                method: 'POST',
                _aLVmyjqe: { 'Content-Type': 'application/json' },
                _OEtNiPyg: JSON.stringify(_fAHqCsKe)
            }).catch(_mRxgqKvR => console.error("无法缓存实时结果:", _mRxgqKvR));
            if (_tjvUOTzb.cloudStorage._eIMyZaKb) {
                fetch('/api/save-_FZcryuIe', {
                    method: 'POST',
                    _aLVmyjqe: { 'Content-Type': 'application/json' },
                    _OEtNiPyg: JSON.stringify(_fAHqCsKe)
                }).then(_ENGeslGW => {
                    if (_ENGeslGW.ok) _gWEIXBde('结果已保存到云端!', 'success');
                });
            }
        } else {
            _MxZhXcVF.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _KGyuuyeg() {
        if (!_tjvUOTzb.cloudStorage._eIMyZaKb) {
             _eNhJvjSq._PZUTKtuN.display = 'none';
             return;
        }
        _MxZhXcVF.textContent = '正在获取上次优选结果...';
        try {
            const _dQdXhBRf = await fetch('/api/get-cached-_FZcryuIe');
            if (_dQdXhBRf.ok) {
                const _bqlLVbdo = await _dQdXhBRf.json();
                if (_bqlLVbdo && _bqlLVbdo._DFwFoguh && _bqlLVbdo._DFwFoguh._krXpfTfu > 0) {
                    _noppFCkN(_bqlLVbdo, _JtHoVvNu, true);
                } else {
                   _eNhJvjSq._PZUTKtuN.display = 'none';
                }
            }
        } catch (_mRxgqKvR) {
            console.error("加载缓存失败:", _mRxgqKvR);
        }
    }
    let _iiPqvMhi;
    function _gWEIXBde(_LFVTLzGR, _ouYmRJWQ = 'success', _UseSqtuY = 3000) {
        if (_iiPqvMhi) clearTimeout(_iiPqvMhi);
        _RjYexJwG.innerHTML = _LFVTLzGR;
        let _KenJASRe = 'var(--success-_IcZHxWUK)';
        if (_ouYmRJWQ === 'error') _KenJASRe = 'var(--danger-_IcZHxWUK)';
        if (_ouYmRJWQ === 'warning') _KenJASRe = 'var(--warning-_IcZHxWUK)';
        if (_ouYmRJWQ === 'info') _KenJASRe = 'var(--primary-_IcZHxWUK)';
        _RjYexJwG._PZUTKtuN.backgroundColor = _KenJASRe;
        _RjYexJwG.classList.add('show');
        _iiPqvMhi = setTimeout(() => { _RjYexJwG.classList.remove('show'); }, _UseSqtuY);
    }
    let _sAUSvVlz;
    function _nRtowVSy(_IcZHxWUK) {
        const _GDdbTyzu = document.getElementById('background-_GDdbTyzu');
        if (!_GDdbTyzu || !_GDdbTyzu.getContext) return;
        _GDdbTyzu._PZUTKtuN.display = 'block';
        const _OFrvjzAS = _GDdbTyzu.getContext('2d');
        let _PDKtcalF, height, particles;
        const _TTofxKXL = _KuysKtmX(_IcZHxWUK);
        if (!_TTofxKXL) return;
        const _pntLQNqb = `${_TTofxKXL.r},${_TTofxKXL.g},${_TTofxKXL.b}`;
        const _JDUerGsh = () => {
            if (_sAUSvVlz) cancelAnimationFrame(_sAUSvVlz);
            _PDKtcalF = _GDdbTyzu._PDKtcalF = window.innerWidth;
            height = _GDdbTyzu.height = window.innerHeight;
            particles = Array.from({ _krXpfTfu: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _PDKtcalF, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _VpUuJolq();
        };
        const _VpUuJolq = () => {
            _OFrvjzAS.clearRect(0, 0, _PDKtcalF, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _PDKtcalF) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _OFrvjzAS.beginPath();
                _OFrvjzAS.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _OFrvjzAS.fillStyle = `rgba(${_pntLQNqb}, 0.5)`;
                _OFrvjzAS.fill();
            });
            for (let _hhKnPIhG = 0; _hhKnPIhG < particles._krXpfTfu; _hhKnPIhG++) {
                for (let _EqKvQetZ = _hhKnPIhG + 1; _EqKvQetZ < particles._krXpfTfu; _EqKvQetZ++) {
                    const _qHIYktxy = Math.hypot(particles[_hhKnPIhG].x - particles[_EqKvQetZ].x, particles[_hhKnPIhG].y - particles[_EqKvQetZ].y);
                    if (_qHIYktxy < 120) {
                        _OFrvjzAS.beginPath(); _OFrvjzAS.moveTo(particles[_hhKnPIhG].x, particles[_hhKnPIhG].y);
                        _OFrvjzAS.lineTo(particles[_EqKvQetZ].x, particles[_EqKvQetZ].y);
                        _OFrvjzAS.strokeStyle = `rgba(${_pntLQNqb}, ${1 - _qHIYktxy/120})`;
                        _OFrvjzAS.stroke();
                    }
                }
            }
            _sAUSvVlz = requestAnimationFrame(_VpUuJolq);
        };
        window.addEventListener('resize', _JDUerGsh, { passive: true });
        _JDUerGsh();
    }
    function _jZgrJzZf() {
        if (_sAUSvVlz) cancelAnimationFrame(_sAUSvVlz);
        const _GDdbTyzu = document.getElementById('background-_GDdbTyzu');
        if (_GDdbTyzu && _GDdbTyzu.getContext('2d')) {
            _GDdbTyzu.getContext('2d').clearRect(0, 0, _GDdbTyzu._PDKtcalF, _GDdbTyzu.height);
            _GDdbTyzu._PZUTKtuN.display = 'none';
        }
    }
    function _dJrhypJY() {
        const _uJPmzStd = document.getElementById('copySubscriptionBtn');
        const _WtmDwJtO = document.getElementById('_eLFJIFqV');
        const _pgvJQIiz = document.getElementById('_aOiYwmpn');
        const _CkvYOZwK = document.getElementById('closeSubModalBtn');
        const _eDFjqUDB = _pgvJQIiz.querySelector('.modal-close-btn');

        _uJPmzStd.addEventListener('click', () => {
            if (!_dWniuqZk || _fAHqCsKe._krXpfTfu === 0) {
                _gWEIXBde('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_ONilQfuF) {
                _gWEIXBde('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_tjvUOTzb._YgNZzilN) {
                _gWEIXBde('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _TFMQzKFq = 'https://' + window._QtxpDFRo._eePZabgY + '/' + _ONilQfuF;
            const _ycxVWoRW = {
                coreEngine: _TFMQzKFq + 'xr',
                coreProfile: _TFMQzKFq + 'si',
                configProfile: _TFMQzKFq + 'cl',
                policyProfile: _TFMQzKFq + 'su'
            };
 
            _WtmDwJtO.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _ouYmRJWQ = btn.dataset.subType;
                    navigator.clipboard.writeText(_ycxVWoRW[_ouYmRJWQ]).then(() => {
                        _gWEIXBde(`${_ouYmRJWQ.charAt(0).toUpperCase() + _ouYmRJWQ.slice(1)} 订阅链接已复制!`, 'success');
                        _WtmDwJtO._PZUTKtuN.display = 'none';
                    });
                };
            });
            _WtmDwJtO.querySelectorAll('._YZJDrRjb-btn').forEach(btn => {
                btn.onclick = () => {
                    const _ouYmRJWQ = btn.dataset.subType;
                    const _kKCEIMwP = document.getElementById('qrCodeImg');
                    const _SAEyHyrI = _ycxVWoRW[_ouYmRJWQ];
                    if (!_SAEyHyrI) return;
                    try {
                        const _YZJDrRjb = qrcode(0, 'M');
                        _YZJDrRjb.addData(_SAEyHyrI);
                        _YZJDrRjb.make();
                        _kKCEIMwP.src = _YZJDrRjb.createDataURL(10, 2);
                        _pgvJQIiz._PZUTKtuN.display = 'flex';
                    } catch(_mRxgqKvR) {
                        _gWEIXBde('生成二维码失败', 'error');
                        console.error(_mRxgqKvR);
                    }
                };
            });

            _WtmDwJtO._PZUTKtuN.display = 'flex';
        });

        _CkvYOZwK.addEventListener('click', () => { _WtmDwJtO._PZUTKtuN.display = 'none'; });
        _WtmDwJtO.addEventListener('click', (_mRxgqKvR) => { if(_mRxgqKvR.target === _WtmDwJtO) _WtmDwJtO._PZUTKtuN.display = 'none'; });
        _pgvJQIiz.addEventListener('click', (_mRxgqKvR) => { if(_mRxgqKvR.target === _pgvJQIiz) _pgvJQIiz._PZUTKtuN.display = 'none'; });
    }
    function _RjfLbWsI() {
        const _RVhxRVKy = {
            android: [
                { _LjwRQGhy: 'Karing', _StfMeGDd: 'KaringX/karing', _ybQpTVYd: ['apk', 'universal-release'] },
                { _LjwRQGhy: 'S' + 'ing-Box', _StfMeGDd: 'SagerNet/sing-box', _ybQpTVYd: ['android', 'universal'] },
                { _LjwRQGhy: 'V2' + 'rayNG', _StfMeGDd: '2dust/v2rayNG', _ybQpTVYd: ['apk', 'arm64-v8a'] },
                { _LjwRQGhy: '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: [
                { _LjwRQGhy: 'Karing', fixedUrl: 'https://_FTVMzUMW.apple.com/us/_yICzEvRG/karing/id6472431552?_VcWkkKvB=iphone' },
                { _LjwRQGhy: 'S' + 'ing-Box', fixedUrl: 'https://_FTVMzUMW.apple.com/us/_yICzEvRG/sing-box-vt/id6673731168' },
                { _LjwRQGhy: 'Shadow' + 'rocket', fixedUrl: 'https://_FTVMzUMW.apple.com/us/_yICzEvRG/shadowrocket/id932747118' },
            ],
            windows: [
                { _LjwRQGhy: 'Karing', _StfMeGDd: 'KaringX/karing', _ybQpTVYd: ['exe', 'x64-setup'] },
                { _LjwRQGhy: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _LjwRQGhy: 'C' + 'lashN', _StfMeGDd: '2dust/clashN', _ybQpTVYd: ['clashN.zip'] },
            ],
            mac: [
                 { _LjwRQGhy: 'Karing', fixedUrl: 'https://_FTVMzUMW.apple.com/us/_yICzEvRG/karing/id6472431552?_VcWkkKvB=mac' },
                 { _LjwRQGhy: 'S' + 'ing-Box', fixedUrl: 'https://_FTVMzUMW.apple.com/us/_yICzEvRG/sing-box-vt/id6673731168' },
            ]
        };
        function _TyLrGOKN(_TXuFepGX) {
            if (_tjvUOTzb.streamer._eIMyZaKb && (_TXuFepGX.includes('github.com') || _TXuFepGX.includes('cdn.jsdelivr.net'))) {
                return window._QtxpDFRo.origin + '/' + _TXuFepGX.replace('://', ':/');
            }
            return _TXuFepGX;
        }
        async function _fewCeOTi(_StfMeGDd, _ybQpTVYd) {
            try {
                const _dQdXhBRf = await fetch(_TyLrGOKN(`https://api.github.com/repos/${_StfMeGDd}/releases/latest`));
                if (!_dQdXhBRf.ok) return null;
                const _bqlLVbdo = await _dQdXhBRf.json();
                for (const _JSkdemhm of _ybQpTVYd) {
                    const _LSSlBeor = _bqlLVbdo.assets.find(a => a._LjwRQGhy.toLowerCase().includes(_JSkdemhm.toLowerCase()));
                    if (_LSSlBeor) return _LSSlBeor.browser_download_url;
                }
                return null;
            } catch (_mRxgqKvR) { return null; }
        }
        async function _weGKgfMR(_VcWkkKvB) {
            const _jBhkpYwq = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_VcWkkKvB];
            _hCAStMWJ.querySelector('#appModalTitle').textContent = `${_jBhkpYwq} 客户端下载`;
            const _pXDSZjvG = _hCAStMWJ.querySelector('#appModalBody');
            _pXDSZjvG.innerHTML = '<span>正在获取最新版本...</span>';
            _hCAStMWJ._PZUTKtuN.display = 'flex';
            const _FTVMzUMW = _RVhxRVKy[_VcWkkKvB];
            let _GeSNHDPO = '';
            for (const _yICzEvRG of _FTVMzUMW) {
                let _pknDcuhi = '';
                if (_yICzEvRG.fixedUrl) {
                    _pknDcuhi = `<a href="${_TyLrGOKN(_yICzEvRG.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_yICzEvRG.fixedUrl.split('/').pop()}</a>`;
                } else if (_yICzEvRG._StfMeGDd) {
                    const _TXuFepGX = await _fewCeOTi(_yICzEvRG._StfMeGDd, _yICzEvRG._ybQpTVYd);
                    if (_TXuFepGX) {
                        _pknDcuhi = `<a href="${_TyLrGOKN(_TXuFepGX)}" target="_blank" rel="noopener noreferrer">${_TXuFepGX.split('/').pop()}</a>`;
                    } else {
                        _pknDcuhi = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _GeSNHDPO += `<div class="_yICzEvRG-list-_wHNqCKoJ"><span class="_yICzEvRG-_LjwRQGhy">${_yICzEvRG._LjwRQGhy}</span><div class="_yICzEvRG-links">${_pknDcuhi}</div></div>`;
            }
            _pXDSZjvG.innerHTML = _GeSNHDPO;
        }
        document.querySelectorAll('._yICzEvRG-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _weGKgfMR(button.dataset._VcWkkKvB));
        });
        _hCAStMWJ.querySelector('.modal-close-btn').addEventListener('click', () => { _hCAStMWJ._PZUTKtuN.display = 'none'; });
        _hCAStMWJ.addEventListener('click', (_mRxgqKvR) => { if (_mRxgqKvR.target === _hCAStMWJ) _hCAStMWJ._PZUTKtuN.display = 'none'; });
    }
    function _MntRdqPt(_lWuErZbG, _bqOKuzNZ) {
        let _hhKnPIhG, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_GeSNHDPO");
        for (_hhKnPIhG = 0; _hhKnPIhG < tabcontent._krXpfTfu; _hhKnPIhG++) {
            tabcontent[_hhKnPIhG]._PZUTKtuN.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_hhKnPIhG = 0; _hhKnPIhG < tablinks._krXpfTfu; _hhKnPIhG++) {
            tablinks[_hhKnPIhG].className = tablinks[_hhKnPIhG].className.replace(" active", "");
        }
        document.getElementById(_bqOKuzNZ)._PZUTKtuN.display = "block";
        _lWuErZbG.currentTarget.className += " active";
    }
    function _isgetdiV() {
        const _DNwvNEDL = document.createElement('div');
        _DNwvNEDL._lbGOVwXK = 'tooltip-popup';
        document._OEtNiPyg.appendChild(_DNwvNEDL);
        document.addEventListener('click', function(_mRxgqKvR) {
            const _eYaxcACc = _mRxgqKvR.target.closest('.tooltip-_eYaxcACc');
            if (_eYaxcACc) {
                const _SAEyHyrI = _eYaxcACc.dataset.tooltip;
                _DNwvNEDL.textContent = _SAEyHyrI;
                const _dQeMROFH = _eYaxcACc.getBoundingClientRect();
                _DNwvNEDL._PZUTKtuN.display = 'block';
                let _SXXMpmJX = _dQeMROFH.bottom + window.scrollY + 5;
                let _BuJNePsT = _dQeMROFH._BuJNePsT + window.scrollX;
                _DNwvNEDL._PZUTKtuN._SXXMpmJX = `${_SXXMpmJX}px`;
                _DNwvNEDL._PZUTKtuN._BuJNePsT = `${_BuJNePsT}px`;
                const _QVTtWbbI = _DNwvNEDL.getBoundingClientRect();
                if (_QVTtWbbI.right > window.innerWidth - 10) {
                    _BuJNePsT = window.innerWidth - _QVTtWbbI._PDKtcalF - 10;
                }
                if (_QVTtWbbI.bottom > window.innerHeight - 10) {
                    _SXXMpmJX = _dQeMROFH._SXXMpmJX + window.scrollY - _QVTtWbbI.height - 5;
                }
                _DNwvNEDL._PZUTKtuN._SXXMpmJX = `${_SXXMpmJX}px`;
                _DNwvNEDL._PZUTKtuN._BuJNePsT = `${_BuJNePsT}px`;
                _mRxgqKvR.stopPropagation();
            } else if (_DNwvNEDL._PZUTKtuN.display === 'block') {
                _DNwvNEDL._PZUTKtuN.display = 'none';
            }
        });
    }
    const _PZUTKtuN = document.createElement('_PZUTKtuN');
    _PZUTKtuN.textContent = `
        .tab-button { background-_IcZHxWUK: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _IcZHxWUK: var(--_SAEyHyrI-light); font-size: 1em; }
        .tab-button:hover { background-_IcZHxWUK: var(--border-_IcZHxWUK); }
        .tab-button.active { _IcZHxWUK: var(--primary-_IcZHxWUK); border-bottom: 2px solid var(--primary-_IcZHxWUK); }
        .tab-_GeSNHDPO { display: none; padding-_SXXMpmJX: 1rem; }
    `;
    document.head.appendChild(_PZUTKtuN);
    window.addEventListener('DOMContentLoaded', _YsvKLnyA);
</script>
</_OEtNiPyg></html>
`;
}