From 95737ecab83ad08574b7ab4508eb90fc62a4f2ce Mon Sep 17 00:00:00 2001 From: XiaoMo Date: Mon, 1 Sep 2025 17:06:35 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E6=9C=AA?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84=E4=BE=9D=E8=B5=96=E5=92=8C=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除sharp模块及相关缩略图功能 删除webpack配置文件和安装脚本 清理未使用的依赖项 重构PHP服务端代码,优化缓存处理逻辑 --- README.md | 77 ------ index.js | 2 +- index.php | 602 ++++++++++++++++++++++++++++++++++++++-------- install.sh | 110 --------- package.json | 12 +- source.js | 40 +-- webpack.config.js | 30 --- 7 files changed, 498 insertions(+), 375 deletions(-) delete mode 100644 README.md delete mode 100644 install.sh delete mode 100644 webpack.config.js diff --git a/README.md b/README.md deleted file mode 100644 index a09cdcd..0000000 --- a/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# AList 代理服务安装指南 - -本指南将指导您如何安装和运行 AList 代理服务。AList 是一个支持多种存储的文件列表程序,提供网页浏览和 WebDAV 服务。 - -## 安装步骤 - - -### 一键安装方法, install.sh - -```bash -curl -o install.sh https://git.x-php.com/XiaoMo/alist-proxy/raw/branch/master/install.sh && chmod +x install.sh && ./install.sh - -curl -fsSL "https://git.x-php.com/XiaoMo/alist-proxy/raw/branch/master/install.sh" | bash -``` - - - - -### 使用 Node.js 版本 - -1. **下载代理脚本** - - 使用以下命令将代理脚本下载到本地: - - ```bash - curl -o index.js https://git.x-php.com/XiaoMo/alist-proxy/raw/branch/master/index.js - ``` - -2. **安装 Node.js** - - 确保您的系统已安装 Node.js。如果未安装,请访问 [Node.js 官网](https://nodejs.org)下载并安装。 - -3. **运行代理服务** - - 下载完成后,使用以下命令启动代理服务: - - ```bash - node index.js - ``` - -4. **访问 AList 界面** - - 代理服务启动后,您可以通过浏览器访问 AList 的 Web 界面。默认情况下,AList 监听在 `http://localhost:9001`。 - -### 使用 PHP 版本 - -1. **下载代理脚本** - - 使用以下命令将代理脚本下载到本地: - - ```bash - curl -o index.php https://git.x-php.com/XiaoMo/alist-proxy/raw/branch/master/index.php - ``` - -2. **运行代理服务** - - 使用 Swoole CLI 启动代理服务: - - ```bash - ./swoole-cli ./index.php - ``` - -3. **常驻后台运行** - - 为了让服务在后台持续运行,可以使用 `nohup` 命令: - - ```bash - nohup ./swoole-cli ./index.php > /dev/null 2>&1 & - ``` - -4. **设置自动启动** - - (此部分需要根据您的系统和需求进行具体配置,建议查阅相关文档以设置服务的自动启动。) - ---- - -通过以上步骤,您可以成功安装并运行 AList 代理服务。如需进一步帮助,请参考官方文档或联系技术支持。 \ No newline at end of file diff --git a/index.js b/index.js index 603b9cd..f3421e6 100644 --- a/index.js +++ b/index.js @@ -1 +1 @@ -const _0x2155b0=_0x5e5b;(function(_0x3cb247,_0x3ce690){const _0x5c94ef=_0x5e5b,_0x1b1e62=_0x3cb247();while(!![]){try{const _0x59f8f4=parseInt(_0x5c94ef(0x177))/(-0xc7*0x2f+0x1022+0x1468)*(parseInt(_0x5c94ef(0x13b))/(0x92*0x19+0xf61*0x1+0x1*-0x1da1))+-parseInt(_0x5c94ef(0x2f5))/(0xc1d*-0x2+-0xbd*-0x2d+-0x8fc)+-parseInt(_0x5c94ef(0x2da))/(-0x1*-0x21e5+-0x1*-0xe+0x49*-0x77)*(-parseInt(_0x5c94ef(0x2be))/(0x221d+-0x1d8*-0x4+0x14bc*-0x2))+-parseInt(_0x5c94ef(0x182))/(0x10e3+-0x2*-0xc5c+-0x2995)+-parseInt(_0x5c94ef(0x10b))/(-0x6b6*-0x1+0xa94*-0x2+0xe79)*(parseInt(_0x5c94ef(0x1df))/(0x224a+0xbea*-0x1+0x5*-0x478))+parseInt(_0x5c94ef(0x2e2))/(0x205*0x4+-0x528+0x2e3*-0x1)+parseInt(_0x5c94ef(0x20a))/(-0x226*0x2+-0x1944+0x34a*0x9);if(_0x59f8f4===_0x3ce690)break;else _0x1b1e62['push'](_0x1b1e62['shift']());}catch(_0x168865){_0x1b1e62['push'](_0x1b1e62['shift']());}}}(_0xa753,0xd44a+-0x2b1c0+0x3dc19));function _0x5e5b(_0x124d4c,_0xed3438){const _0x35407d=_0xa753();return _0x5e5b=function(_0x5c8aa7,_0x2e1fab){_0x5c8aa7=_0x5c8aa7-(0x5e+-0x7*-0x4c6+-0x20bd);let _0x413e9c=_0x35407d[_0x5c8aa7];return _0x413e9c;},_0x5e5b(_0x124d4c,_0xed3438);}const _0x400214=require('http'),_0x5e955e=require(_0x2155b0(0x23a)),_0x3bf409=require(_0x2155b0(0x173)),_0x11d13e=require(_0x2155b0(0x300)+'g'),_0xe989ae=require('fs'),_0x213d01=require('path'),_0x52582c=require(_0x2155b0(0x1d9)),_0x570fe5=require('sharp'),_0xfb52bb=_0x2155b0(0x2db),_0x1846f6=0x33d5+0xb*-0x391+0x21*0xaf,_0x1db813=_0x2155b0(0x2cf)+'.6.121.121'+_0x2155b0(0x12e)+'t',_0x1461d9=_0x213d01[_0x2155b0(0x22e)](__dirname,_0xfb52bb),_0x55a17a={},_0x396cd={'request':0x0,'cacheHit':0x0,'apiCall':0x0,'cacheCall':0x0,'cacheReadError':0x0,'fetchApiError':0x0,'fetchApiWarning':0x0,'increment':function(_0x36d7e9){const _0x5a82cd=_0x2155b0;this[_0x5a82cd(0x13c)+_0x5a82cd(0x203)](_0x36d7e9)&&this[_0x36d7e9]++;}};let _0xa3b9=_0x1846f6,_0x368131=_0x1db813;function _0x498bd7(){const _0x4bf887=_0x2155b0,_0x255301={'ARUex':_0x4bf887(0x159)+_0x4bf887(0x128),'gjTdT':function(_0x368e46,_0x2362e7,_0x4e1b42,_0x28734b){return _0x368e46(_0x2362e7,_0x4e1b42,_0x28734b);},'zutYZ':'utf8','msgXN':function(_0x49e073,_0x3ca647,_0x13a88d,_0xcff4f8,_0x45a428){return _0x49e073(_0x3ca647,_0x13a88d,_0xcff4f8,_0x45a428);},'qjrFq':function(_0x254517,_0x4c01b9,_0x3428a7,_0x25817d){return _0x254517(_0x4c01b9,_0x3428a7,_0x25817d);},'PnRnl':_0x4bf887(0x276)+'data\x20unava'+_0x4bf887(0x1ce),'xkzsW':function(_0x53f174,_0x3e9b9a){return _0x53f174!==_0x3e9b9a;},'RiHrt':_0x4bf887(0x307),'VIYeR':_0x4bf887(0x268),'TmuDG':function(_0x41276e,_0x1bbccb){return _0x41276e===_0x1bbccb;},'jTXmI':function(_0x322a5a,_0x31fffc){return _0x322a5a===_0x31fffc;},'sXuph':'mMMXr','gVjcr':'MinjE','ugfyW':function(_0x5f5f2f,_0x34d5a1,_0x20086c){return _0x5f5f2f(_0x34d5a1,_0x20086c);},'kreSV':function(_0x12b5a2,_0x4be6d9){return _0x12b5a2(_0x4be6d9);},'JXJjW':_0x4bf887(0x251),'RftMg':'api'},_0x26fa54=process['argv'][_0x4bf887(0x1e3)](0x1a78+-0x1c7f+-0x209*-0x1);_0x26fa54[_0x4bf887(0x1d3)](_0x264a2c=>{const _0xf4f30d=_0x4bf887,_0x34b8e9={'oFfeY':_0x255301[_0xf4f30d(0x2ec)],'OCAaF':function(_0x53e935,_0x1bb436,_0x31e129,_0x5523c7,_0x5adbd3){const _0x383f23=_0xf4f30d;return _0x255301[_0x383f23(0x1ab)](_0x53e935,_0x1bb436,_0x31e129,_0x5523c7,_0x5adbd3);},'MJiIn':function(_0x4cd88b,_0xfb888,_0x11bda5,_0x452cae){return _0x255301['qjrFq'](_0x4cd88b,_0xfb888,_0x11bda5,_0x452cae);},'vWFdR':_0x255301['PnRnl']};if(_0x255301[_0xf4f30d(0x120)](_0x255301[_0xf4f30d(0x265)],_0x255301[_0xf4f30d(0x135)])){const _0x5f0601=_0x264a2c[_0xf4f30d(0x24a)]('--')?_0x264a2c[_0xf4f30d(0x24f)](-0xc6+-0xcbf+0xd87):_0x264a2c,[_0x10b144,_0x1ecc8d]=_0x5f0601[_0xf4f30d(0x1aa)]('=');if(_0x255301['TmuDG'](_0x10b144,_0xf4f30d(0x1f1))&&_0x1ecc8d){if(_0x255301[_0xf4f30d(0x244)](_0x255301['sXuph'],_0x255301['gVjcr'])){const _0x389506=_0x1dc0b7['join'](_0x1f9935,_0x48eacf+_0xf4f30d(0x18f)),_0x4e0857=_0x46549e[_0xf4f30d(0x22e)](_0x283916,_0x31f393[_0x5ea2b3]['uniqid']+_0xf4f30d(0x207));if(_0x1a4dd1[_0xf4f30d(0x12f)](_0x389506)&&_0x3a0ebd['existsSync'](_0x4e0857)){_0x707c5b['warn'](_0xf4f30d(0x28e)+_0xf4f30d(0x1b0)+'eturned\x20no'+'n-200.\x20Ser'+'ving\x20stale'+_0xf4f30d(0x139)+'\x20'+_0x319984);try{const _0x39f703=_0x2f6bfb[_0xf4f30d(0x11a)](_0x4d2d2c['readFileSy'+'nc'](_0x389506,_0x34b8e9['oFfeY']));_0x34b8e9['OCAaF'](_0x315b08,_0x39f703,_0x4e0857,_0x389506,_0x15029e);return;}catch(_0x5ae579){_0x5a9c3d[_0xf4f30d(0x23f)](_0xf4f30d(0x2d4)+_0xf4f30d(0x1e7)+_0xf4f30d(0x1f7)+_0x389506+':',_0x5ae579);}}}else{const _0x5020cf=_0x255301[_0xf4f30d(0x25a)](parseInt,_0x1ecc8d,-0x1*0x2d6+-0xd*0x242+0x203a);if(!_0x255301[_0xf4f30d(0x10d)](isNaN,_0x5020cf)){if(_0x255301[_0xf4f30d(0x244)](_0xf4f30d(0x245),_0x255301[_0xf4f30d(0x1f6)])){_0x30d4af[_0xf4f30d(0x2c1)](_0x255301[_0xf4f30d(0x261)]),_0x79eb50[_0xf4f30d(0x23f)]('Error\x20fetc'+_0xf4f30d(0x308)+_0xf4f30d(0x2ae)+_0x2a8a39),_0x255301[_0xf4f30d(0x21d)](_0x48fb4e,_0x541458,_0x1b75a0[_0xf4f30d(0x2c8)+'Y'],_0xf4f30d(0x267)+_0xf4f30d(0x11d)+_0xf4f30d(0x1b7)+'rom\x20'+_0x5b842c);if(_0x1a974e[_0xf4f30d(0x12f)](_0x156476))try{_0x14ea3d[_0xf4f30d(0x1b4)](_0x25fe82);}catch(_0x5c7dac){_0x9754b7[_0xf4f30d(0x23f)](_0xf4f30d(0x143)+_0xf4f30d(0x22b)+_0xf4f30d(0x1af)+_0x2741af+':',_0x5c7dac);}}else _0xa3b9=_0x5020cf;}}}else _0x255301['TmuDG'](_0x10b144,_0x255301['RftMg'])&&_0x1ecc8d&&(_0x368131=_0x1ecc8d);}else{_0x271726['error'](_0xf4f30d(0x225)+'ache\x20calle'+_0xf4f30d(0x21f)+'l\x20cacheDat'+_0xf4f30d(0x2a3)+_0x49f9ec),_0x34b8e9[_0xf4f30d(0x1b2)](_0x37a7f6,_0x5e4a0c,_0x5bd0f5[_0xf4f30d(0x2f1)+_0xf4f30d(0x1cc)+'R'],_0x34b8e9['vWFdR']);return;}});}function _0x46c4cd(){const _0x15057c=_0x2155b0,_0x225252={'hvGPB':function(_0x5cb6e0){return _0x5cb6e0();},'jZZLK':function(_0x3a1a93,_0x401307){return _0x3a1a93===_0x401307;},'oIGZH':_0x15057c(0x2f9)};_0x225252[_0x15057c(0x2eb)](_0x498bd7);if(!_0xe989ae[_0x15057c(0x12f)](_0x1461d9))try{_0xe989ae[_0x15057c(0x2ca)](_0x1461d9,{'recursive':!![]}),console[_0x15057c(0x181)](_0x15057c(0x1e6)+_0x15057c(0x2b5)+_0x15057c(0x24b)+_0x1461d9);}catch(_0x1f889c){_0x225252['jZZLK'](_0x225252[_0x15057c(0x200)],_0x225252[_0x15057c(0x200)])?(console[_0x15057c(0x23f)](_0x15057c(0x142)+_0x15057c(0x266)+'\x20directory'+'\x20'+_0x1461d9+':',_0x1f889c),process[_0x15057c(0x229)](-0x4*-0x256+0x1e25*0x1+-0x277c)):_0x453ad3[_0x15057c(0x29b)](_0x15057c(0x1e8)+'\x20file\x20'+_0x1811a6+('\x20not\x20found'+_0x15057c(0x15b)+_0x15057c(0x175)+'r\x20')+_0x33f58a['realUrl']);}}_0x46c4cd();const _0x1c0c02=(-0xa9*-0x25+0x778+-0x1*0x1fcd)*(-0x1060+-0x6ef+0x178b)*(0x55d+0xf17*0x1+-0x1438)*(0x96c+-0x400+-0x2*0xc2),_0x608cd2=(-0xdc1+0x3b3*-0x9+0x2f48)*(-0xfb5*0x2+-0xb*0x28f+0x1*0x3bcb)*(-0x40a*-0x5+0x218a+-0x31d4),_0x385e0c={'OK':0xc8,'NO_CONTENT':0xcc,'REDIRECT':0x12e,'NOT_MODIFIED':0x130,'BAD_REQUEST':0x190,'NOT_FOUND':0x194,'INTERNAL_SERVER_ERROR':0x1f4,'BAD_GATEWAY':0x1f6};setInterval(()=>{const _0x2df287=_0x2155b0,_0x514d5c={'tBYXL':function(_0x4fb8e8,_0x2f75f8){return _0x4fb8e8>_0x2f75f8;},'zjTaz':function(_0x1149a2,_0x342d3d){return _0x1149a2-_0x342d3d;}},_0x59b1f5=Date[_0x2df287(0x1b6)]();for(const _0x2316b5 in _0x55a17a){_0x514d5c[_0x2df287(0x1e0)](_0x514d5c[_0x2df287(0x287)](_0x59b1f5,_0x55a17a[_0x2316b5]['timestamp']),_0x1c0c02)&&delete _0x55a17a[_0x2316b5];}},_0x608cd2);function _0x3600a8(_0x5ce71a,_0x410b29,_0x4f497c){const _0x1aadcb=_0x2155b0,_0x230e08={'SWSda':_0x1aadcb(0x184)+_0x1aadcb(0x151)+'TF-8'};!_0x5ce71a['headersSen'+'t']&&(_0x5ce71a[_0x1aadcb(0x292)](_0x410b29,{'Content-Type':_0x230e08[_0x1aadcb(0x141)]}),_0x5ce71a['end'](_0x4f497c));}async function _0x30d9dc(_0x33b817,_0x5b5f66){const _0x312521=_0x2155b0;_0x5b5f66[_0x312521(0x292)](_0x385e0c[_0x312521(0x285)]),_0x5b5f66[_0x312521(0x146)]();}async function _0x51ebbc(_0x12be3f,_0x373384,_0x1f63c0){const _0x1550fc=_0x2155b0,_0x2bc973={'LcYWQ':'applicatio'+'n/json;\x20ch'+_0x1550fc(0x217)+'8'};if(_0x1f63c0[_0x1550fc(0x2dc)][_0x1550fc(0x12c)]){const _0xe8d23e=/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w.-]*)*\/?$/;_0xe8d23e[_0x1550fc(0x27c)](_0x1f63c0[_0x1550fc(0x2dc)][_0x1550fc(0x12c)])&&(_0x368131=_0x1f63c0[_0x1550fc(0x2dc)][_0x1550fc(0x12c)],console[_0x1550fc(0x181)]('API\x20endpoi'+_0x1550fc(0x2ea)+'\x20to:\x20'+_0x368131));}_0x373384[_0x1550fc(0x292)](_0x385e0c['OK'],{'Content-Type':_0x2bc973[_0x1550fc(0x29c)]}),_0x373384[_0x1550fc(0x146)](JSON['stringify']({'code':_0x385e0c['OK'],'data':{'api':_0x368131,'port':_0xa3b9,'cacheDir':_0x1461d9,'pathIndexCount':Object['keys'](_0x55a17a)[_0x1550fc(0x1d6)],'viewsInfo':{'request':_0x396cd[_0x1550fc(0x22a)],'cacheHit':_0x396cd['cacheHit'],'apiCall':_0x396cd[_0x1550fc(0x160)],'cacheCall':_0x396cd[_0x1550fc(0x22c)],'cacheReadError':_0x396cd['cacheReadE'+_0x1550fc(0x1d2)],'fetchApiError':_0x396cd['fetchApiEr'+_0x1550fc(0x128)],'fetchApiWarning':_0x396cd[_0x1550fc(0x1d0)+_0x1550fc(0x16c)]}}}));}async function _0x58e744(_0x34a67a,_0x154bb3){const _0x4e5a39=_0x2155b0;_0x34a67a[_0x4e5a39(0x292)](_0x385e0c[_0x4e5a39(0x189)],{'Location':_0x154bb3[_0x4e5a39(0x1a9)][_0x4e5a39(0x173)]}),_0x34a67a[_0x4e5a39(0x146)]();}async function _0x53753f(_0x3fe3d5,_0x157608,_0x2a30c5,_0x141141,_0x53c0eb,_0x3aa54d){const _0x5e5d2c=_0x2155b0,_0x47e2fc={'FFNAP':_0x5e5d2c(0x1f8),'zHUoD':function(_0x7aa180,_0x1b11ce,_0xf682a9,_0x2c1b8a,_0x3ee92f){return _0x7aa180(_0x1b11ce,_0xf682a9,_0x2c1b8a,_0x3ee92f);},'Sdupx':function(_0x2834fc,_0x43d858){return _0x2834fc*_0x43d858;},'AhIJK':'hex','UAbVw':function(_0x2888a0,_0x10bf34){return _0x2888a0!==_0x10bf34;},'MzFgk':_0x5e5d2c(0x2ff),'Xryzu':function(_0x30e74c,_0x1a33e6,_0x140e64,_0x34d072){return _0x30e74c(_0x1a33e6,_0x140e64,_0x34d072);},'lgcqT':'Failed\x20to\x20'+_0x5e5d2c(0x302)+_0x5e5d2c(0x286)+'.','KCcRn':function(_0x4ab8ab,_0x575b57){return _0x4ab8ab<_0x575b57;},'jpFYV':_0x5e5d2c(0x188)+'ngth','PomxP':function(_0x460395,_0x2ea6c7,_0x2a3c56){return _0x460395(_0x2ea6c7,_0x2a3c56);},'ZCYcA':function(_0x1822db,_0x52ccae){return _0x1822db===_0x52ccae;},'Gcayt':_0x5e5d2c(0x211),'JgrYc':_0x5e5d2c(0x1c3),'Nocla':function(_0x50fbc7,_0x405939,_0x3a7b5a,_0x393a16,_0x5ed725,_0x275337){return _0x50fbc7(_0x405939,_0x3a7b5a,_0x393a16,_0x5ed725,_0x275337);}},{url:_0x3f340c,cloudtype:_0x3376ca,expiration:_0x4081d7,path:_0x16bd65,headers:_0x43109f,uniqid:_0x59cd0a,thumb:_0x344b8d}=_0x3fe3d5[_0x5e5d2c(0x1a9)],_0x5c4ca1={'realUrl':_0x3f340c,'cloudtype':_0x3376ca,'expiration':_0x47e2fc[_0x5e5d2c(0x11e)](_0x4081d7,0x269*0x6+0x1c8+0x62b*-0x2),'path':_0x16bd65,'headers':_0x43109f,'uniqid':_0x59cd0a,'thumb':_0x344b8d};_0x55a17a[_0x157608]={'uniqid':_0x5c4ca1[_0x5e5d2c(0x14d)],'timestamp':Date[_0x5e5d2c(0x1b6)]()};const _0x160abb=_0x213d01[_0x5e5d2c(0x22e)](_0x1461d9,_0x157608+_0x5e5d2c(0x18f)),_0x3da827=_0x213d01[_0x5e5d2c(0x22e)](_0x1461d9,_0x5c4ca1[_0x5e5d2c(0x14d)]+'.content'),_0x381c4d=_0x213d01[_0x5e5d2c(0x22e)](_0x1461d9,_0x5c4ca1[_0x5e5d2c(0x14d)]+'_'+_0x52582c['randomByte'+'s'](0x25*0xd3+-0x3d*0xa3+0x868)[_0x5e5d2c(0x249)](_0x47e2fc[_0x5e5d2c(0x256)])+'.temp');try{if(_0x47e2fc[_0x5e5d2c(0x2f6)](_0x47e2fc[_0x5e5d2c(0x2e9)],_0x47e2fc[_0x5e5d2c(0x2e9)])){const _0x15b1a1=_0x346bb2[_0x5e5d2c(0x11a)](_0x593793[_0x5e5d2c(0x25d)+'nc'](_0x356036,_0x47e2fc[_0x5e5d2c(0x23d)]));_0x47e2fc['zHUoD'](_0x3dc710,_0x15b1a1,_0x4e87da,_0x3ab7bb,_0x40ee14);return;}else _0xe989ae[_0x5e5d2c(0x1ae)+'ync'](_0x160abb,JSON[_0x5e5d2c(0x1fb)](_0x5c4ca1));}catch(_0x58f90f){console['error'](_0x5e5d2c(0x2aa)+_0x5e5d2c(0x253)+_0x5e5d2c(0x1a4)+_0x160abb+':',_0x58f90f),_0x47e2fc['Xryzu'](_0x3600a8,_0x3aa54d,_0x385e0c['INTERNAL_S'+'ERVER_ERRO'+'R'],_0x47e2fc[_0x5e5d2c(0x17f)]);return;}if(_0xe989ae[_0x5e5d2c(0x12f)](_0x3da827)){const _0x5da27c=_0xe989ae[_0x5e5d2c(0x190)](_0x3da827),_0x4f202d=_0x5da27c['size'];if(_0x47e2fc[_0x5e5d2c(0x305)](_0x4f202d,-0x11*0xfb+0x3*-0x56f+-0xa3e*-0x4)&&_0x5c4ca1[_0x5e5d2c(0x144)][_0x47e2fc[_0x5e5d2c(0x180)]]&&_0x47e2fc[_0x5e5d2c(0x2f6)](_0x47e2fc['PomxP'](parseInt,_0x5c4ca1[_0x5e5d2c(0x144)][_0x47e2fc['jpFYV']],-0x1b2f+-0x1d60+0x3899*0x1),_0x4f202d)){if(_0x47e2fc[_0x5e5d2c(0x1bd)](_0x47e2fc['Gcayt'],_0x47e2fc[_0x5e5d2c(0x222)]))return _0x38121f(_0x24ba3c,_0x4d3309[_0x5e5d2c(0x14f)+'T'],_0x5e5d2c(0x1a6)+'t:\x20Invalid'+'\x20path\x20or\x20m'+_0x5e5d2c(0x2c3)+_0x5e5d2c(0x234));else console[_0x5e5d2c(0x29b)](_0x5e5d2c(0x196)+_0x5e5d2c(0x239)+_0x5e5d2c(0x2a0)+_0x3da827+_0x5e5d2c(0x303)+_0x5c4ca1['headers']['content-le'+_0x5e5d2c(0x2ad)]+_0x5e5d2c(0x1a5)+_0x4f202d+(_0x5e5d2c(0x284)+_0x5e5d2c(0x178))),_0x349691(_0x5c4ca1,_0x381c4d,_0x3da827,_0x160abb,_0x3aa54d);}else _0x22610d(_0x5c4ca1,_0x3da827,_0x160abb,_0x3aa54d);}else _0x47e2fc[_0x5e5d2c(0x28d)](_0x349691,_0x5c4ca1,_0x381c4d,_0x3da827,_0x160abb,_0x3aa54d);}async function _0x41ca3b(_0x4d0cc0,_0x197597,_0x1b41f2){const _0x24e89c=_0x2155b0,_0x50db0f={'YdsOv':_0x24e89c(0x148)+_0x24e89c(0x304)+'arset=utf-'+'8','cSpZD':function(_0x1177a4,_0x1f3194){return _0x1177a4(_0x1f3194);},'jTAOW':_0x24e89c(0x118)+_0x24e89c(0x1a7)+'t','qFnHC':function(_0xb1742,_0x2524ac){return _0xb1742===_0x2524ac;},'BxWqK':'vnfza','efBai':_0x24e89c(0x1f8),'MXdRH':function(_0x2e9df1,_0xce3007,_0x4d1c11,_0x290ebe,_0x36927f){return _0x2e9df1(_0xce3007,_0x4d1c11,_0x290ebe,_0x36927f);},'dAlvW':function(_0x2b9625,_0x5dede1){return _0x2b9625!==_0x5dede1;},'RYsII':function(_0x5657c9,_0x33129b,_0x51ca97,_0x27fdc5){return _0x5657c9(_0x33129b,_0x51ca97,_0x27fdc5);},'XOuCZ':function(_0x17a21f,_0x5145ab){return _0x17a21f||_0x5145ab;},'aGxbF':_0x24e89c(0x267)+'y'};if(_0x55a17a[_0x4d0cc0]){if(_0x50db0f[_0x24e89c(0x2d1)]('vnfza',_0x50db0f[_0x24e89c(0x123)])){const _0x55c372=_0x213d01['join'](_0x1461d9,_0x4d0cc0+'.meta'),_0xffc38f=_0x213d01[_0x24e89c(0x22e)](_0x1461d9,_0x55a17a[_0x4d0cc0][_0x24e89c(0x14d)]+_0x24e89c(0x207));if(_0xe989ae[_0x24e89c(0x12f)](_0x55c372)&&_0xe989ae[_0x24e89c(0x12f)](_0xffc38f)){console[_0x24e89c(0x29b)](_0x24e89c(0x28e)+'ailed\x20or\x20r'+'eturned\x20no'+'n-200.\x20Ser'+_0x24e89c(0x250)+_0x24e89c(0x139)+'\x20'+_0x4d0cc0);try{const _0x457ded=JSON[_0x24e89c(0x11a)](_0xe989ae[_0x24e89c(0x25d)+'nc'](_0x55c372,_0x50db0f[_0x24e89c(0x27b)]));_0x50db0f[_0x24e89c(0x216)](_0x22610d,_0x457ded,_0xffc38f,_0x55c372,_0x197597);return;}catch(_0x17d7fb){if(_0x50db0f[_0x24e89c(0x281)](_0x24e89c(0x1ad),_0x24e89c(0x1d8)))console[_0x24e89c(0x23f)](_0x24e89c(0x2d4)+_0x24e89c(0x1e7)+_0x24e89c(0x1f7)+_0x55c372+':',_0x17d7fb);else{if(_0x419bcf[_0x24e89c(0x2dc)][_0x24e89c(0x12c)]){const _0x2e623c=/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w.-]*)*\/?$/;_0x2e623c[_0x24e89c(0x27c)](_0xb03b99[_0x24e89c(0x2dc)][_0x24e89c(0x12c)])&&(_0x93e074=_0x139a63['query']['api'],_0x475f15[_0x24e89c(0x181)](_0x24e89c(0x2bb)+'nt\x20updated'+'\x20to:\x20'+_0x472235));}_0xc7a33d['writeHead'](_0x81b0b3['OK'],{'Content-Type':_0x50db0f['YdsOv']}),_0x4c3e83[_0x24e89c(0x146)](_0x513ec1[_0x24e89c(0x1fb)]({'code':_0x24249e['OK'],'data':{'api':_0x152196,'port':_0x21201b,'cacheDir':_0x2b547a,'pathIndexCount':_0x40988d[_0x24e89c(0x204)](_0x5d8645)['length'],'viewsInfo':{'request':_0x20df47[_0x24e89c(0x22a)],'cacheHit':_0x3c1aed[_0x24e89c(0x21a)],'apiCall':_0x1d45f9[_0x24e89c(0x160)],'cacheCall':_0x41e159['cacheCall'],'cacheReadError':_0x3512ea['cacheReadE'+'rror'],'fetchApiError':_0x30bb15[_0x24e89c(0x159)+'ror'],'fetchApiWarning':_0x27891c[_0x24e89c(0x1d0)+_0x24e89c(0x16c)]}}}));}}}}else _0x1b1283[_0x24e89c(0x171)](),_0x4c312a['error'](_0x24e89c(0x118)+_0x24e89c(0x172)+_0x3bd2c8+(_0x24e89c(0x1ec)+_0x24e89c(0x1e4))+_0x378821+'ms'),_0x50db0f[_0x24e89c(0x13a)](_0x4018e7,new _0x32ff7b(_0x50db0f[_0x24e89c(0x248)]));}_0x50db0f['RYsII'](_0x3600a8,_0x197597,_0x385e0c[_0x24e89c(0x2c8)+'Y'],_0x50db0f[_0x24e89c(0x28f)](_0x1b41f2,_0x50db0f['aGxbF']));}async function _0x2b9820(_0x6f5135,_0x4889a2){const _0x5a8f0c=_0x2155b0,_0x5015b8={'COtZf':_0x5a8f0c(0x21a),'fMJwu':function(_0x5e3fd0,_0x27053d){return _0x5e3fd0===_0x27053d;},'zIcJO':_0x5a8f0c(0x1c8)+'o','KfqbQ':function(_0x1beda9,_0x147f50,_0x1d8b40){return _0x1beda9(_0x147f50,_0x1d8b40);},'qFrOv':function(_0x446808,_0x38cb43){return _0x446808===_0x38cb43;},'TrlIk':'endpoint','uCHlm':function(_0x3d38a2,_0x21a49b,_0x1ed766,_0x1ec989){return _0x3d38a2(_0x21a49b,_0x1ed766,_0x1ec989);},'ZTlCr':function(_0x47d3b2,_0x3985b6){return _0x47d3b2&&_0x3985b6;},'QSdCE':_0x5a8f0c(0x2fe),'ENfsa':_0x5a8f0c(0x174),'OMWXY':_0x5a8f0c(0x201),'lmFFC':_0x5a8f0c(0x163),'VokgS':_0x5a8f0c(0x173),'XOpES':_0x5a8f0c(0x289),'KVCkr':function(_0x1abb08,_0x141fd3,_0x50f642,_0x46dff9){return _0x1abb08(_0x141fd3,_0x50f642,_0x46dff9);},'LxtTV':'md5','qEkgX':function(_0x4b6903,_0x3c37df){return _0x4b6903+_0x3c37df;},'eTWIS':_0x5a8f0c(0x2f0),'qtzhT':function(_0x1bbc53,_0x350b4c,_0x1ca3c8){return _0x1bbc53(_0x350b4c,_0x1ca3c8);},'wzwpo':function(_0xe26583,_0x3a8728,_0x582151,_0x178b6e,_0x38c351){return _0xe26583(_0x3a8728,_0x582151,_0x178b6e,_0x38c351);},'vuftr':_0x5a8f0c(0x160),'LuaFK':function(_0x30e365,_0x5b21f0){return _0x30e365!==_0x5b21f0;},'SFivI':_0x5a8f0c(0x288),'HeiEK':_0x5a8f0c(0x161),'WhrVa':_0x5a8f0c(0x2ab),'Lgjtm':function(_0x14aef7,_0x3aaa6e,_0x4de8dd,_0x4d42e1,_0x483044,_0x55d96f,_0x34c6b2){return _0x14aef7(_0x3aaa6e,_0x4de8dd,_0x4d42e1,_0x483044,_0x55d96f,_0x34c6b2);},'IClnu':_0x5a8f0c(0x23e),'bCglA':_0x5a8f0c(0x159)+'ror','kOuuz':_0x5a8f0c(0x2bc)+'PI\x20call\x20or'+_0x5a8f0c(0x205)+'g:'};_0x6f5135['url']=_0x6f5135[_0x5a8f0c(0x173)][_0x5a8f0c(0x214)](/\/{2,}/g,'/');const _0x963359=_0x3bf409[_0x5a8f0c(0x11a)](_0x6f5135[_0x5a8f0c(0x173)],!![]),_0x53e113=_0x963359[_0x5a8f0c(0x2dc)][_0x5a8f0c(0x2b2)]||'';let _0x4a6599=_0x963359['pathname']['split']('/')[-0xc7b+0x1aae+-0xe32]||'',_0x19def0=_0x963359[_0x5a8f0c(0x1c6)][_0x5a8f0c(0x1aa)]('/')[_0x5a8f0c(0x1e3)](0xbb8+-0x75b+-0x1*0x45b)[_0x5a8f0c(0x22e)]('/');if(_0x5015b8[_0x5a8f0c(0x1fe)](_0x4a6599,_0x5015b8['zIcJO']))return _0x5015b8[_0x5a8f0c(0x2e4)](_0x30d9dc,_0x6f5135,_0x4889a2);if(_0x5015b8[_0x5a8f0c(0x1bc)](_0x4a6599,_0x5015b8[_0x5a8f0c(0x2b3)]))return _0x5015b8[_0x5a8f0c(0x2f4)](_0x51ebbc,_0x6f5135,_0x4889a2,_0x963359);_0x5015b8[_0x5a8f0c(0x197)](!_0x19def0,_0x4a6599)&&(_0x19def0=_0x4a6599,_0x4a6599=_0x5015b8[_0x5a8f0c(0x22d)]);const _0x2d46db=[_0x5015b8[_0x5a8f0c(0x283)],'go',_0x5015b8[_0x5a8f0c(0x1ff)],_0x5015b8[_0x5a8f0c(0x272)],_0x5015b8[_0x5a8f0c(0x164)],_0x5015b8[_0x5a8f0c(0x1a3)],_0x5015b8[_0x5a8f0c(0x22d)]];if(!_0x2d46db[_0x5a8f0c(0x21b)](_0x4a6599)||!_0x19def0)return _0x5015b8[_0x5a8f0c(0x277)](_0x3600a8,_0x4889a2,_0x385e0c[_0x5a8f0c(0x14f)+'T'],'Bad\x20Reques'+_0x5a8f0c(0x262)+_0x5a8f0c(0x29f)+_0x5a8f0c(0x2c3)+_0x5a8f0c(0x234));_0x396cd[_0x5a8f0c(0x2c1)](_0x5a8f0c(0x22a));const _0x40dbc1=_0x52582c[_0x5a8f0c(0x2a7)](_0x5015b8[_0x5a8f0c(0x2fd)])[_0x5a8f0c(0x2b6)](_0x5015b8['qEkgX'](_0x4a6599+_0x19def0,_0x53e113))[_0x5a8f0c(0x2e6)](_0x5015b8[_0x5a8f0c(0x220)]);let _0x1b6628='',_0x7d7512='';_0x55a17a[_0x40dbc1]&&(_0x1b6628=_0x213d01[_0x5a8f0c(0x22e)](_0x1461d9,_0x40dbc1+_0x5a8f0c(0x18f)),_0x7d7512=_0x213d01['join'](_0x1461d9,_0x55a17a[_0x40dbc1]['uniqid']+'.content'));if(_0x55a17a[_0x40dbc1]&&_0x5015b8[_0x5a8f0c(0x2e4)](_0x170e37,_0x1b6628,_0x7d7512)){const {cacheData:_0x2de9aa,isNotModified:_0x48d68f}=await _0x5015b8[_0x5a8f0c(0x2c9)](_0x46efbf,_0x6f5135,_0x1b6628);_0x48d68f?(_0x4889a2['writeHead'](_0x385e0c[_0x5a8f0c(0x1ed)+'ED']),_0x4889a2[_0x5a8f0c(0x146)]()):(_0x396cd['increment'](_0x5015b8[_0x5a8f0c(0x2bf)]),_0x5015b8[_0x5a8f0c(0x2b0)](_0x22610d,_0x2de9aa,_0x7d7512,_0x1b6628,_0x4889a2));}else try{_0x396cd['increment'](_0x5015b8['vuftr']);const _0x3611b8=await _0x5015b8[_0x5a8f0c(0x2f4)](_0x2e9ab3,_0x4a6599,_0x19def0,_0x53e113);if(_0x3611b8[_0x5a8f0c(0x1cd)]===_0x385e0c[_0x5a8f0c(0x189)]||_0x5015b8['qFrOv'](_0x3611b8[_0x5a8f0c(0x1cd)],0xc45+-0x1ee5+-0x25*-0x89)){if(_0x5015b8['LuaFK'](_0x5015b8[_0x5a8f0c(0x25c)],_0x5a8f0c(0x288)))_0x5ee11a=_0x9b232f[_0x5a8f0c(0x2dc)][_0x5a8f0c(0x12c)],_0x12c074[_0x5a8f0c(0x181)](_0x5a8f0c(0x2bb)+'nt\x20updated'+_0x5a8f0c(0x11b)+_0x5f2b81);else return _0x5015b8[_0x5a8f0c(0x2c9)](_0x58e744,_0x4889a2,_0x3611b8);}if(_0x5015b8[_0x5a8f0c(0x1fe)](_0x3611b8[_0x5a8f0c(0x1cd)],_0x385e0c['OK'])&&_0x3611b8[_0x5a8f0c(0x1a9)]&&_0x3611b8[_0x5a8f0c(0x1a9)]['url']){if(_0x5015b8[_0x5a8f0c(0x145)]===_0x5015b8[_0x5a8f0c(0x185)])return![];else await _0x5015b8[_0x5a8f0c(0x19e)](_0x53753f,_0x3611b8,_0x40dbc1,_0x4a6599,_0x19def0,_0x53e113,_0x4889a2);}else _0x5015b8[_0x5a8f0c(0x1bc)](_0x5015b8[_0x5a8f0c(0x168)],'SNXBr')?(_0x2725b0[_0x5a8f0c(0x2c1)](_0x5015b8[_0x5a8f0c(0x2bf)]),_0x519765(_0x18d2c5,_0x5425c4,_0x3bc1c7,_0x5e95e9)):(_0x396cd[_0x5a8f0c(0x2c1)](_0x5a8f0c(0x1d0)+_0x5a8f0c(0x16c)),await _0x41ca3b(_0x40dbc1,_0x4889a2,_0x3611b8[_0x5a8f0c(0x26d)]));}catch(_0x38f42b){_0x396cd[_0x5a8f0c(0x2c1)](_0x5015b8[_0x5a8f0c(0x2d8)]),console[_0x5a8f0c(0x23f)](_0x5015b8[_0x5a8f0c(0x15f)],_0x38f42b),await _0x5015b8[_0x5a8f0c(0x277)](_0x41ca3b,_0x40dbc1,_0x4889a2,'Bad\x20Gatewa'+_0x5a8f0c(0x25e)+_0x5a8f0c(0x24c)+_0x5a8f0c(0x29d)+_0x38f42b['message']);}}const _0x3ae4b3=_0x400214[_0x2155b0(0x199)+'er'](_0x2b9820);async function _0x46efbf(_0x2de5ba,_0x3f9d0a){const _0x1d67d4=_0x2155b0,_0x1ec237={'nROjC':_0x1d67d4(0x20f)+_0x1d67d4(0x2c4),'SwlAO':'klJuQ','mLJgK':_0x1d67d4(0x1f8),'HVBef':_0x1d67d4(0x259)+_0x1d67d4(0x1e5),'gOjEC':_0x1d67d4(0x111)+_0x1d67d4(0x231),'crFRH':function(_0x2ee7a5,_0x267510){return _0x2ee7a5===_0x267510;},'RUzXT':'BsmcD','exkFS':function(_0x44c46e,_0x4dc1c5){return _0x44c46e!==_0x4dc1c5;},'ZPUEl':'fkfdt','VdsGt':_0x1d67d4(0x2cd)+'ied','GCrNX':function(_0x4acd66,_0x4f6bae){return _0x4acd66<=_0x4f6bae;},'YoCCm':function(_0x4c7ca0,_0x24aed0){return _0x4c7ca0!==_0x24aed0;},'LZpLX':_0x1d67d4(0x1f5)};try{if(_0x1ec237[_0x1d67d4(0x119)]!==_0x1d67d4(0x18a)){const _0x3e36ff=_0xe989ae[_0x1d67d4(0x25d)+'nc'](_0x3f9d0a,_0x1ec237[_0x1d67d4(0x147)]),_0x25112f=JSON['parse'](_0x3e36ff),_0x56d605=_0x2de5ba[_0x1d67d4(0x144)][_0x1ec237[_0x1d67d4(0x21e)]],_0x4e7b3e=_0x2de5ba[_0x1d67d4(0x144)][_0x1ec237[_0x1d67d4(0x306)]];if(_0x56d605&&_0x25112f[_0x1d67d4(0x14d)]&&_0x1ec237[_0x1d67d4(0x240)](_0x56d605,_0x25112f['uniqid'])){if(_0x1ec237['RUzXT']===_0x1ec237[_0x1d67d4(0x1f3)])return{'cacheData':_0x25112f,'isNotModified':!![]};else _0x43feb1[_0x1d67d4(0x23f)](_0x1ec237[_0x1d67d4(0x1fc)]),_0x20e720[_0x1d67d4(0x229)](0xa*0x44+0x641*0x2+-0xf29);}if(_0x4e7b3e&&_0x25112f[_0x1d67d4(0x144)]&&_0x25112f[_0x1d67d4(0x144)]['last-modif'+_0x1d67d4(0x2e1)])try{if(_0x1ec237[_0x1d67d4(0x15c)](_0x1ec237['ZPUEl'],_0x1ec237[_0x1d67d4(0x269)]))_0x1c4c89[_0x1d67d4(0x23f)]('Read\x20strea'+'m\x20error\x20fo'+'r\x20'+_0x26a1f+':',_0x423226),_0x3f759f(_0x41cd00,_0x11549e);else{const _0x4d4e03=new Date(_0x25112f[_0x1d67d4(0x144)][_0x1ec237[_0x1d67d4(0x2f3)]]),_0x3cf982=new Date(_0x4e7b3e);if(_0x1ec237[_0x1d67d4(0x279)](_0x4d4e03[_0x1d67d4(0x25b)](),_0x3cf982[_0x1d67d4(0x25b)]())){if(_0x1ec237[_0x1d67d4(0x19b)](_0x1ec237[_0x1d67d4(0x1a1)],_0x1ec237[_0x1d67d4(0x1a1)]))_0x598a89[_0x1d67d4(0x292)](_0x46867c[_0x1d67d4(0x1ed)+'ED']),_0x1cf7be[_0x1d67d4(0x146)]();else return{'cacheData':_0x25112f,'isNotModified':!![]};}}}catch(_0x329f6e){console[_0x1d67d4(0x29b)](_0x1d67d4(0x2d4)+_0x1d67d4(0x17b)+'or\x20cache\x20h'+'eader\x20chec'+_0x1d67d4(0x2a5)+_0x3f9d0a+'):',_0x329f6e);}return{'cacheData':_0x25112f,'isNotModified':![]};}else{const _0x2210ff=_0x17e158(_0x2a2857,0x1b99+0x8d8+-0x1*0x2467);!_0x2b4034(_0x2210ff)&&(_0x32c868=_0x2210ff);}}catch(_0x113f6d){return console['error'](_0x1d67d4(0x125)+_0x1d67d4(0x138)+_0x1d67d4(0x121)+_0x1d67d4(0x1ba)+'\x20'+_0x3f9d0a+(_0x1d67d4(0x210)+_0x1d67d4(0x206)+'s:'),_0x113f6d),{'cacheData':null,'isNotModified':![]};}}function _0x170e37(_0x2af504,_0x514f69){const _0x4e8c36=_0x2155b0,_0x26483e={'cevaT':function(_0x1c523c,_0x4f5b49){return _0x1c523c===_0x4f5b49;},'YEjUQ':function(_0x427792,_0xba1512,_0x4e1f3f){return _0x427792(_0xba1512,_0x4e1f3f);},'vHWIj':function(_0x36771e,_0x10be7e){return _0x36771e(_0x10be7e);},'WffMg':function(_0x1b15da,_0x5b13df){return _0x1b15da===_0x5b13df;},'oLGCP':'YXGzI','wfQjk':_0x4e8c36(0x1a0),'UmPvC':function(_0x1f185b,_0x2bd241){return _0x1f185b===_0x2bd241;},'QatCi':_0x4e8c36(0x1f8),'aAynU':_0x4e8c36(0x273),'fiFEN':function(_0x6d9a79,_0x2eece1){return _0x6d9a79>_0x2eece1;}};if(!_0xe989ae[_0x4e8c36(0x12f)](_0x2af504)||!_0xe989ae[_0x4e8c36(0x12f)](_0x514f69))return _0x26483e[_0x4e8c36(0x152)](_0x26483e[_0x4e8c36(0x235)],_0x26483e[_0x4e8c36(0x2a2)])?(_0x7152e3['error']('Error\x20read'+_0x4e8c36(0x138)+'sing\x20cache'+'\x20meta\x20file'+'\x20'+_0x4e06de+('\x20in\x20checkC'+'acheHeader'+'s:'),_0x5e7f96),{'cacheData':null,'isNotModified':![]}):![];try{if(_0x26483e[_0x4e8c36(0x15e)](_0x4e8c36(0x14a),'gODSW')){const _0x33d919=_0xe989ae[_0x4e8c36(0x25d)+'nc'](_0x2af504,_0x26483e['QatCi']),_0x3af250=JSON['parse'](_0x33d919);return _0x26483e[_0x4e8c36(0x152)](typeof _0x3af250['expiration'],_0x26483e[_0x4e8c36(0x258)])&&_0x26483e[_0x4e8c36(0x1ea)](_0x3af250[_0x4e8c36(0x2cc)],Date[_0x4e8c36(0x1b6)]());}else{const _0x4f9072=_0x36d789['startsWith']('--')?_0x1084bd[_0x4e8c36(0x24f)](-0x22cd+0x1*0xb41+0x178e):_0x40dbd2,[_0x3ff8de,_0x9d17ff]=_0x4f9072[_0x4e8c36(0x1aa)]('=');if(_0x26483e[_0x4e8c36(0x1ef)](_0x3ff8de,_0x4e8c36(0x1f1))&&_0x9d17ff){const _0x2d2e1a=_0x26483e['YEjUQ'](_0x2ce4d5,_0x9d17ff,0x11a9+-0x856+0x949*-0x1);!_0x26483e[_0x4e8c36(0x2ac)](_0x28e197,_0x2d2e1a)&&(_0x5110e1=_0x2d2e1a);}else _0x26483e[_0x4e8c36(0x1ef)](_0x3ff8de,_0x4e8c36(0x12c))&&_0x9d17ff&&(_0x36bb9b=_0x9d17ff);}}catch(_0x4cbd9a){return console[_0x4e8c36(0x29b)](_0x4e8c36(0x125)+_0x4e8c36(0x138)+'sing\x20cache'+_0x4e8c36(0x1ba)+'\x20'+_0x2af504+('\x20for\x20valid'+'ation:'),_0x4cbd9a),![];}}const _0x485715=-0x5*0xfc+0x1736+0x2*0x9f,_0x960245=_0x2155b0(0x29e)+_0x2155b0(0x2b9)+_0x2155b0(0x224)+_0x2155b0(0x2fb)+')\x20AppleWeb'+_0x2155b0(0x215)+_0x2155b0(0x1fd)+'ike\x20Gecko)'+_0x2155b0(0x1c9)+_0x2155b0(0x2b4)+_0x2155b0(0x198)+_0x2155b0(0x2f7);async function _0x2e9ab3(_0x25dc19,_0x332297,_0x4cbf57){const _0x3b2c66=_0x2155b0,_0x54fdf7={'NYdLs':function(_0x5c9ee3,_0x3fb94e){return _0x5c9ee3(_0x3fb94e);},'nYEIg':_0x3b2c66(0x118)+_0x3b2c66(0x1a7)+'t','vxABr':function(_0x5f1786,_0x51fc0c){return _0x5f1786!==_0x51fc0c;},'ZrESz':_0x3b2c66(0x166),'qZHoh':function(_0x133504,_0xd46efe){return _0x133504>=_0xd46efe;},'tVwcN':_0x3b2c66(0x1c1),'TJEsC':function(_0x585713,_0x408d66){return _0x585713(_0x408d66);},'DQKnH':_0x3b2c66(0x227),'UvWuh':_0x3b2c66(0x264),'mmRWl':_0x3b2c66(0x146),'VxTQM':_0x3b2c66(0x257),'ztVSM':_0x3b2c66(0x23f),'CRCPJ':function(_0x579fae,_0x44965b){return _0x579fae===_0x44965b;},'NKAog':'https:','gsPzC':'applicatio'+_0x3b2c66(0x304)+_0x3b2c66(0x217)+'8'},_0x2cf434=_0x11d13e[_0x3b2c66(0x1fb)]({'type':_0x25dc19,'sign':_0x4cbf57}),_0x10b5e0=_0x368131+'?'+_0x2cf434,_0x4669a3=new URL(_0x10b5e0),_0x2b3fdf=_0x54fdf7[_0x3b2c66(0x17e)](_0x4669a3['protocol'],_0x54fdf7[_0x3b2c66(0x14c)])?_0x5e955e:_0x400214,_0x383f15={'method':_0x3b2c66(0x213),'headers':{'Accept':_0x54fdf7[_0x3b2c66(0x2a9)],'User-Agent':_0x960245,'token':_0x332297},'timeout':_0x485715,'rejectUnauthorized':![]};return new Promise((_0x1aef9d,_0x508a9e)=>{const _0x22ea7c=_0x3b2c66,_0x1fbf73={'vFZYD':function(_0x4337e1,_0x3c0f5f){const _0x664306=_0x5e5b;return _0x54fdf7[_0x664306(0x2ba)](_0x4337e1,_0x3c0f5f);},'hrReV':_0x54fdf7[_0x22ea7c(0x2c2)],'XUlcX':function(_0x40120a,_0x4c98b1){return _0x54fdf7['qZHoh'](_0x40120a,_0x4c98b1);},'CVLyg':_0x54fdf7[_0x22ea7c(0x117)],'CNYiU':'OkRBo','gAqRi':function(_0x453fa4,_0x2a3873){return _0x453fa4(_0x2a3873);},'nqAwc':function(_0x4cde5a,_0x5014c8){const _0xfb206f=_0x22ea7c;return _0x54fdf7[_0xfb206f(0x2e7)](_0x4cde5a,_0x5014c8);},'ygjng':_0x54fdf7[_0x22ea7c(0x2c5)],'ArqBe':_0x54fdf7[_0x22ea7c(0x19a)],'eHFpe':_0x54fdf7[_0x22ea7c(0x140)]},_0x39c15f=_0x2b3fdf[_0x22ea7c(0x22a)](_0x10b5e0,_0x383f15,_0xa275df=>{const _0x571f28=_0x22ea7c;if(_0x1fbf73[_0x571f28(0x1f4)]===_0x1fbf73[_0x571f28(0x2a4)])this[_0x4e0958]++;else{let _0x3f0e47='';_0xa275df[_0x571f28(0x154)+'g']('utf8'),_0xa275df['on'](_0x571f28(0x1a9),_0x332265=>_0x3f0e47+=_0x332265),_0xa275df['on'](_0x1fbf73['eHFpe'],()=>{const _0x1d83f0=_0x571f28;if(_0x1fbf73[_0x1d83f0(0x21c)](_0x1fbf73[_0x1d83f0(0x27f)],'uNrVB'))_0x1b6016[_0x1d83f0(0x2ca)](_0x28a40a,{'recursive':!![]});else try{if(_0x1fbf73[_0x1d83f0(0x2de)](_0xa275df[_0x1d83f0(0x153)],-0x14de+-0x53e+0x1bac)){if(_0x1fbf73[_0x1d83f0(0x23b)]===_0x1fbf73[_0x1d83f0(0x16b)])return{'cacheData':_0x2f61d7,'isNotModified':!![]};else{console[_0x1d83f0(0x23f)](_0x1d83f0(0x118)+'t\x20to\x20'+_0x10b5e0+(_0x1d83f0(0x16d)+_0x1d83f0(0x1b1))+_0xa275df[_0x1d83f0(0x153)]+':\x20'+_0x3f0e47);let _0xa24cb4={'code':_0xa275df[_0x1d83f0(0x153)],'message':_0x1d83f0(0x2ef)+'\x20'+_0xa275df[_0x1d83f0(0x153)]};try{const _0x22621f=JSON[_0x1d83f0(0x11a)](_0x3f0e47);if(_0x22621f&&_0x22621f[_0x1d83f0(0x26d)])_0xa24cb4[_0x1d83f0(0x26d)]=_0x22621f[_0x1d83f0(0x26d)];}catch(_0xd3ca3a){}_0x1aef9d(_0xa24cb4);return;}}_0x1fbf73[_0x1d83f0(0x1da)](_0x1aef9d,JSON[_0x1d83f0(0x11a)](_0x3f0e47));}catch(_0x49bd56){console['error'](_0x1d83f0(0x2d4)+'ing\x20JSON\x20r'+_0x1d83f0(0x16f)+'om\x20'+_0x10b5e0+':',_0x49bd56,_0x3f0e47),_0x1fbf73[_0x1d83f0(0x241)](_0x508a9e,new Error(_0x1d83f0(0x2a6)+_0x1d83f0(0x1fa)+'response:\x20'+_0x49bd56[_0x1d83f0(0x26d)]));}});}});_0x39c15f['on'](_0x54fdf7[_0x22ea7c(0x18d)],()=>{const _0x171eca=_0x22ea7c;_0x39c15f[_0x171eca(0x171)](),console[_0x171eca(0x23f)](_0x171eca(0x118)+_0x171eca(0x172)+_0x10b5e0+(_0x171eca(0x1ec)+'\x20after\x20')+_0x485715+'ms'),_0x54fdf7[_0x171eca(0x150)](_0x508a9e,new Error(_0x54fdf7['nYEIg']));}),_0x39c15f['on'](_0x54fdf7[_0x22ea7c(0x1be)],_0xd04c7f=>{const _0x122448=_0x22ea7c;console[_0x122448(0x23f)](_0x122448(0x118)+'t\x20to\x20'+_0x10b5e0+_0x122448(0x131),_0xd04c7f),_0x508a9e(_0xd04c7f);}),_0x39c15f['end']();});}function _0x5719f6(_0x5e7b65,_0x6c38cf){const _0x49b298=_0x2155b0,_0x151bbc={'FyXTj':function(_0x5962ed,_0x3713d0){return _0x5962ed===_0x3713d0;},'hgKcb':_0x49b298(0x294),'ByiNE':'.mp4','tVyfb':function(_0x4bd108,_0x27e6c2){return _0x4bd108||_0x27e6c2;},'xLyhU':function(_0x3e6b1a,_0x432f80){return _0x3e6b1a>_0x432f80;},'rkdXb':function(_0x12567e,_0x118123){return _0x12567e(_0x118123);}},{path:_0x4ef94a,thumb:_0x9cfb77}=_0x5e7b65,_0x122ea5=_0x213d01[_0x49b298(0x22e)](_0x1461d9,_0x49b298(0x115)+_0x9cfb77[_0x49b298(0x14d)]+_0x49b298(0x28b));if(_0xe989ae['existsSync'](_0x122ea5))return _0x122ea5;const _0x4219d9=_0x4ef94a&&_0x151bbc[_0x49b298(0x114)](typeof _0x4ef94a,_0x151bbc[_0x49b298(0x2d9)])&&_0x4ef94a[_0x49b298(0x21b)](_0x151bbc[_0x49b298(0x260)]);if(_0x151bbc[_0x49b298(0x242)](_0x4219d9,!_0x9cfb77))return;const _0x29d20c=_0x9cfb77[_0x49b298(0x162)]&&_0x9cfb77['width']>0x1be2+0x20d+-0x1def?_0x9cfb77[_0x49b298(0x162)]:undefined,_0x3bd856=_0x9cfb77['height']&&_0x151bbc[_0x49b298(0x110)](_0x9cfb77[_0x49b298(0x192)],0x23d8+-0x17*-0x3+0x1*-0x241d)?_0x9cfb77[_0x49b298(0x192)]:undefined;if(!_0x29d20c)return;return _0x151bbc[_0x49b298(0x1b5)](_0x570fe5,_0x6c38cf)[_0x49b298(0x223)](_0x29d20c,_0x3bd856)[_0x49b298(0x291)](_0x122ea5),_0x122ea5;}function _0xa753(){const _0x2de8bb=['Server\x20clo','pathname','listen','favicon.ic','\x20Chrome/89','csWQS','ELzCq','ERVER_ERRO','code','ilable.','qKIfV','fetchApiWa','https:','rror','forEach','OYAUT','l\x20cacheDat','length','to\x20read\x20ca','UUgMU','crypto','gAqRi','r:\x20Unable\x20','aFLRH','clkpq','XkVCX','8pKOWhx','tBYXL','IUqXi','content-ty','slice','\x20after\x20','tch','Cache\x20dire','ing\x20stale\x20','Temp\x20cache','che\x20conten','fiFEN','nse\x20from:','\x20timed\x20out','NOT_MODIFI','tRSkn','cevaT','le\x20','port','.\x20Destroyi','RUzXT','ygjng','qSpPT','JXJjW','meta\x20file\x20','utf8','Ukhvo','parse\x20API\x20','stringify','nROjC','\x20(KHTML,\x20l','fMJwu','OMWXY','oIGZH','bbs','xGrYB','erty','keys','\x20processin','acheHeader','.content','GipWq','open','214540xeTDKd','EGjZr','ng\x20respons','eHzyq','cloudtype','Forcing\x20sh','\x20in\x20checkC','ueFGU','hRwns','GET','replace','Kit/537.36','MXdRH','arset=utf-','vNouh','dirname','cacheHit','includes','vFZYD','gjTdT','HVBef','d\x20with\x20nul','eTWIS','Received\x20S','JgrYc','resize','\x20NT\x2010.0;\x20','serveFromC','Proxy\x20serv','rdJcj','NmMwa','exit','request','nking\x20temp','cacheCall','QSdCE','join','ream','ing\x20on\x20htt','d-since','lwWGP','QaGec','en.','oLGCP','KvkBn','pzTnp','kEViG','ngth\x20misma','https','CVLyg','MfXkZ','FFNAP','HyYVA','error','crFRH','nqAwc','tVyfb','BdZGm','jTXmI','pEzNT','or\x20cache\x20h','rCXLZ','jTAOW','toString','startsWith','ted:\x20','uest\x20faile','ync','tting\x20down','substring','ving\x20stale','xeuiv','p://localh','ing\x20meta\x20f','t\x20file','.mp4','AhIJK','timeout','aAynU','if-none-ma','ugfyW','getTime','SFivI','readFileSy','y:\x20API\x20req','vvQWt','ByiNE','ARUex','t:\x20Invalid','Stream','sBCWM','RiHrt','ting\x20cache','Bad\x20Gatewa','LtmGQ','ZPUEl','\x20has\x20size\x20','\x20the\x20respo','TliTs','message','writableEn','ontent-len','sed.','ferent\x20for','lmFFC','number','\x20not\x20found','piKTZ','Cache\x20meta','KVCkr','VHTSy','GCrNX','TaWeu','efBai','test','mtime','cache\x20file','hrReV','Error\x20duri','dAlvW','OcEHn','ENfsa','.\x20Re-fetch','NO_CONTENT','e\x20metadata','zjTaz','otKqy','thumb','qxcLj','.jpeg','gdFim','Nocla','API\x20call\x20f','XOuCZ','eStream','toFile','writeHead','er\x20is\x20runn','string','realUrl','ream.','-Length\x20mi','hkXqS','path','mclHa','warn','LcYWQ','d.\x20','Mozilla/5.','\x20path\x20or\x20m','tch\x20for\x20','emMtz','wfQjk','a\x20for\x20','ArqBe','k\x20(','Failed\x20to\x20','createHash','WQNFK','gsPzC','Error\x20writ','geGVz','vHWIj','ngth','real\x20URL:\x20','jmGSi','wzwpo','EbpJO','sign','TrlIk','.0.4389.11','ctory\x20crea','update','md5','ng\x20read\x20st','0\x20(Windows','vxABr','API\x20endpoi','Error\x20in\x20A','uPwnC','6655LeyBOD','COtZf','ing\x20cache\x20','increment','ZrESz','issing\x20tok','utdown...','DQKnH','Error\x20rena','VoSfd','BAD_GATEWA','qtzhT','mkdirSync','pipe','expiration','last-modif','KCWJH','http://183','tJMpI','qFnHC','gth\x20is\x20und','Internal\x20S','Error\x20pars','toUTCStrin','sQKBO','Updated\x20co','bCglA','hgKcb','356KEdDBo','.cache','query','Warning:\x20c','XUlcX','IGINT.\x20Shu','rom\x20','ied','1371510zqtEGq','ded','KfqbQ','pBbfC','digest','TJEsC','x-age=3153','MzFgk','nt\x20updated','hvGPB','zutYZ','qweWA','tent\x20file\x20','API\x20Error:','hex','INTERNAL_S','0\x20or\x20stat\x20','VdsGt','uCHlm','240192SGpaAP','UAbVw','37.36','CBKHD','esDsg','smatch\x20for','Win64;\x20x64','sed\x20connec','LxtTV','app','RPCta','querystrin','tovgf','write\x20cach','.\x20API:\x20','n/json;\x20ch','KCcRn','gOjEC','AuZYM','hing\x20from\x20','1677053wVXXIF','file:\x20','kreSV','miCsp','bhAwJ','xLyhU','if-modifie','cacheReadE','guBDB','FyXTj','thumb_','etkdR','tVwcN','API\x20reques','SwlAO','parse','\x20to:\x20','wMGOg','y:\x20Failed\x20','Sdupx','erver\x20Erro','xkzsW','sing\x20cache','bytes','BxWqK','JwQCI','Error\x20read','m\x20error\x20fo','th\x20in\x20','ror','\x20to\x20','Client\x20clo','ybhxP','api','mZhaE',':9521/alis','existsSync','Error\x20fetc','\x20failed:','nLPTh','YvDDe','fvyBd','VIYeR','GbXGX','jJxqi','ing\x20or\x20par','\x20cache\x20for','cSpZD','252932oLMnZs','hasOwnProp','lcSyW','size','ly\x20cached:','mmRWl','SWSda','Error\x20crea','Error\x20unli','headers','HeiEK','end','mLJgK','applicatio','ng\x20GET\x20req','gODSW','public,\x20ma','NKAog','uniqid','failed.','BAD_REQUES','NYdLs',';charset=U','WffMg','statusCode','setEncodin','_thumb','pevkG','y...','\x20gracefull','fetchApiEr','hhidY','\x20after\x20str','exkFS','turely\x20for','UmPvC','kOuuz','apiCall','uwPwo','width','www','VokgS','vHHqj','uNrVB','Cached\x20con','IClnu','JRSNl','close','CNYiU','rning','\x20failed\x20wi','6000','esponse\x20fr','GcJXv','destroy','t\x20to\x20','url','avatar','eam\x20end\x20fo','qAckx','2xyfObd','ing.','Obbpn','EnAOS','ing\x20date\x20f','qTDYQ','eYQcg','CRCPJ','lgcqT','jpFYV','log','569214GqDNFW','nRfYv','text/plain','WhrVa','WgPSR','CsnAH','content-le','REDIRECT','LzcMP','y:\x20Content','keep-alive','VxTQM','RUtus','.meta','statSync','video/mp4','height','ache\x20calle','renameSync','createRead','Content\x20le','ZTlCr','4\x20Safari/5','createServ','UvWuh','YoCCm','Error\x20maki','JXHNO','Lgjtm','sbexT','PHIRg','LZpLX','XQWEV','XOpES','ile\x20',',\x20Cache:\x20','Bad\x20Reques','t\x20timed\x20ou','elEeM','data','split','msgXN','ost:','IDyNG','writeFileS','\x20file\x20','ailed\x20or\x20r','th\x20status\x20','MJiIn','AGaCW','unlinkSync','rkdXb','now','to\x20fetch\x20f','nfcEF','n/octet-st','\x20meta\x20file','aosqV','qFrOv','ZCYcA','ztVSM','TQUna','SIGINT','IPkaR','image/jpeg','gthfg','ntent-leng'];_0xa753=function(){return _0x2de8bb;};return _0xa753();}const _0x37b2f7=-0x282*0x3+0xe82+0x12a*-0x6,_0x349691=(_0xd1ae7b,_0x39bd77,_0x48292b,_0x3b97e9,_0x4458e2)=>{const _0x43cd99=_0x2155b0,_0x34afd4={'elEeM':'Failed\x20to\x20'+_0x43cd99(0x302)+'e\x20metadata'+'.','RUtus':_0x43cd99(0x2dd)+_0x43cd99(0x26f)+'gth\x20is\x20dif'+_0x43cd99(0x271)+'\x20the\x20respo'+_0x43cd99(0x1eb),'emMtz':_0x43cd99(0x186),'IUqXi':function(_0x3011e1,_0x2539db){return _0x3011e1===_0x2539db;},'VoSfd':_0x43cd99(0x2e5),'jESfu':_0x43cd99(0x187),'XkVCX':_0x43cd99(0x1dd),'qAckx':function(_0x238002,_0xd5a5,_0x45eb64,_0x55f6fc){return _0x238002(_0xd5a5,_0x45eb64,_0x55f6fc);},'VHTSy':function(_0x20e3e6,_0x2cd462){return _0x20e3e6!==_0x2cd462;},'JRSNl':_0x43cd99(0x170),'vHHqj':_0x43cd99(0x188)+'ngth','tRSkn':_0x43cd99(0x28a),'NgAOm':_0x43cd99(0x236),'BdZGm':function(_0xedec71,_0x5d04e5){return _0xedec71!==_0x5d04e5;},'WQNFK':_0x43cd99(0x1bf),'vvQWt':function(_0x269b00,_0x3f427f){return _0x269b00===_0x3f427f;},'Obbpn':_0x43cd99(0x1dc),'aosqV':'sNbSQ','JXHNO':_0x43cd99(0x2dd)+_0x43cd99(0x26f)+_0x43cd99(0x2d2)+'efined\x20for'+_0x43cd99(0x26b)+_0x43cd99(0x1eb),'yuAOV':_0x43cd99(0x14b)+_0x43cd99(0x2e8)+'6000','QaGec':'bytes','ELzCq':_0x43cd99(0x18c),'lcSyW':_0x43cd99(0x1e2)+'pe','nLPTh':_0x43cd99(0x191),'gdFim':'end','EbpJO':_0x43cd99(0x23f),'AGaCW':_0x43cd99(0x1d1)},_0x1798f1=_0xd1ae7b[_0x43cd99(0x295)]['startsWith'](_0x34afd4[_0x43cd99(0x1b3)])?_0x5e955e:_0x400214;_0x1798f1['get'](_0xd1ae7b[_0x43cd99(0x295)],{'timeout':_0x37b2f7,'rejectUnauthorized':![]},_0x3791fe=>{const _0x113631=_0x43cd99,_0x405cd1={'YgcQr':function(_0x58d87c,_0x321df2,_0x22faf9,_0x20eb50){return _0x58d87c(_0x321df2,_0x22faf9,_0x20eb50);},'hRwns':_0x34afd4[_0x113631(0x1a8)],'EnAOS':_0x34afd4[_0x113631(0x18e)],'lwWGP':function(_0x1593b5,_0x160b52){return _0x1593b5!==_0x160b52;},'csWQS':_0x34afd4[_0x113631(0x2a1)],'cljeu':_0x113631(0x2af),'MfXkZ':function(_0x13ea9a,_0x221369){return _0x34afd4['IUqXi'](_0x13ea9a,_0x221369);},'etkdR':_0x34afd4[_0x113631(0x2c7)],'YvDDe':_0x34afd4['jESfu'],'yCYTu':function(_0x2e50ce,_0x10facd){const _0x314633=_0x113631;return _0x34afd4[_0x314633(0x1e1)](_0x2e50ce,_0x10facd);},'qweWA':_0x34afd4[_0x113631(0x1de)],'hkXqS':function(_0x1af9b6,_0x238b72,_0x3c3c80,_0xbc6729){const _0x1fcd76=_0x113631;return _0x34afd4[_0x1fcd76(0x176)](_0x1af9b6,_0x238b72,_0x3c3c80,_0xbc6729);}};if(_0x34afd4[_0x113631(0x278)](_0x34afd4['JRSNl'],_0x34afd4[_0x113631(0x169)])){_0x1aaeec[_0x113631(0x23f)](_0x113631(0x2aa)+'ing\x20meta\x20f'+_0x113631(0x1a4)+_0x52454b+':',_0x610db6),_0x405cd1['YgcQr'](_0x3f800a,_0x3ae8fe,_0x1869f6['INTERNAL_S'+_0x113631(0x1cc)+'R'],_0x405cd1[_0x113631(0x212)]);return;}else{const _0x38e8b3=_0xe989ae['createWrit'+_0x113631(0x290)](_0x39bd77,{'flags':'w'});let _0x16305e=_0xd1ae7b[_0x113631(0x299)]&&_0x34afd4[_0x113631(0x1e1)](typeof _0xd1ae7b[_0x113631(0x299)],'string')&&_0xd1ae7b[_0x113631(0x299)][_0x113631(0x21b)]('.mp4');const _0x39d841=_0x3791fe[_0x113631(0x144)][_0x34afd4[_0x113631(0x165)]];if(_0x39d841){if(_0x34afd4[_0x113631(0x1ee)]!==_0x34afd4['NgAOm']){if(_0x39d841<-0x3*0x66f+-0x1*-0x18c0+-0x1*-0x28d&&_0xd1ae7b[_0x113631(0x144)][_0x34afd4[_0x113631(0x165)]]!==_0x39d841){if(_0x34afd4[_0x113631(0x243)](_0x34afd4[_0x113631(0x2a8)],_0x34afd4['WQNFK']))_0x34718f[_0x113631(0x1ae)+'ync'](_0x102d66,_0x271d7f[_0x113631(0x1fb)](_0x1ed981));else{console[_0x113631(0x29b)](_0x34afd4[_0x113631(0x18e)],_0xd1ae7b[_0x113631(0x295)]),_0x3600a8(_0x4458e2,_0x385e0c[_0x113631(0x2c8)+'Y'],_0x113631(0x267)+'y:\x20Content'+'-Length\x20mi'+_0x113631(0x2fa)+'\x20'+_0xd1ae7b[_0x113631(0x295)]);_0xe989ae['existsSync'](_0x39bd77)&&_0xe989ae[_0x113631(0x1b4)](_0x39bd77);return;}}_0xd1ae7b[_0x113631(0x144)][_0x34afd4['vHHqj']]=_0x39d841,_0xe989ae[_0x113631(0x1ae)+'ync'](_0x3b97e9,JSON[_0x113631(0x1fb)](_0xd1ae7b));}else _0x2dbaac[_0x113631(0x1b4)](_0x5406fc);}else _0x34afd4[_0x113631(0x25f)](_0x34afd4[_0x113631(0x179)],_0x34afd4[_0x113631(0x1bb)])?(_0x32d564[_0x113631(0x292)](_0x84ea33['NO_CONTENT']),_0x19b918[_0x113631(0x146)]()):console[_0x113631(0x29b)](_0x34afd4[_0x113631(0x19d)],_0xd1ae7b[_0x113631(0x295)]);const _0xb7b9f9={'Cloud-Type':_0xd1ae7b[_0x113631(0x20e)],'Cloud-Expiration':_0xd1ae7b[_0x113631(0x2cc)],'ETag':_0xd1ae7b[_0x113631(0x14d)]||'','Cache-Control':_0x34afd4['yuAOV'],'Expires':new Date(Date[_0x113631(0x1b6)]()+(-0x3df25*0x6055+-0xa9a933dfc+0x13673b6145))[_0x113631(0x2d5)+'g'](),'Accept-Ranges':_0x34afd4[_0x113631(0x233)],'Connection':_0x34afd4[_0x113631(0x1cb)],'Date':new Date()[_0x113631(0x2d5)+'g'](),'Last-Modified':_0xd1ae7b[_0x113631(0x144)][_0x113631(0x2cd)+'ied']||new Date(_0xe989ae['statSync'](_0x3b97e9)[_0x113631(0x27d)])[_0x113631(0x2d5)+'g']()},_0x5ca40b={..._0xb7b9f9,'Content-Type':_0x3791fe[_0x113631(0x144)][_0x34afd4[_0x113631(0x13d)]]||(_0x16305e?_0x34afd4[_0x113631(0x132)]:'applicatio'+'n/octet-st'+_0x113631(0x22f)),..._0xd1ae7b['headers']};_0x4458e2[_0x113631(0x292)](_0x3791fe['statusCode'],_0x5ca40b),_0x3791fe['pipe'](_0x38e8b3),_0x3791fe[_0x113631(0x2cb)](_0x4458e2),_0x3791fe['on'](_0x34afd4[_0x113631(0x28c)],()=>{const _0x130638=_0x113631;_0x38e8b3[_0x130638(0x146)](()=>{const _0x3a85f5=_0x130638,_0x442473={'tJMpI':_0x405cd1[_0x3a85f5(0x17a)],'BzMIq':function(_0x147a5d,_0x29a201,_0x1d9dd6,_0x478b38,_0x3c106f,_0x2f3c5b){return _0x147a5d(_0x29a201,_0x1d9dd6,_0x478b38,_0x3c106f,_0x2f3c5b);}};if(_0xe989ae[_0x3a85f5(0x12f)](_0x39bd77)){if(_0x405cd1[_0x3a85f5(0x232)](_0x405cd1[_0x3a85f5(0x1ca)],_0x3a85f5(0x10f)))try{const _0x45154b=_0x213d01[_0x3a85f5(0x219)](_0x48292b);!_0xe989ae[_0x3a85f5(0x12f)](_0x45154b)&&_0xe989ae[_0x3a85f5(0x2ca)](_0x45154b,{'recursive':!![]}),_0xe989ae[_0x3a85f5(0x194)](_0x39bd77,_0x48292b),console['log']('Successful'+_0x3a85f5(0x13f)+'\x20'+_0x48292b),_0xd1ae7b[_0x3a85f5(0x289)]&&(_0x3a85f5(0x113)!==_0x405cd1['cljeu']?_0x5719f6(_0xd1ae7b,_0x48292b):(_0x27fb8b=_0x587b0e,_0x2446f5=_0x3a85f5(0x2fe)));}catch(_0x494c46){if(_0x405cd1[_0x3a85f5(0x23c)]('TOplq',_0x405cd1[_0x3a85f5(0x116)]))_0x16c68b['log'](_0x3a85f5(0x226)+_0x3a85f5(0x293)+_0x3a85f5(0x230)+_0x3a85f5(0x252)+_0x3a85f5(0x1ac)+_0x2bbd0c);else{console['error'](_0x3a85f5(0x2c6)+'ming\x20temp\x20'+_0x3a85f5(0x27e)+'\x20'+_0x39bd77+_0x3a85f5(0x129)+_0x48292b+':',_0x494c46);try{if(_0x405cd1[_0x3a85f5(0x133)]!=='CsnAH'){_0xfd339f[_0x3a85f5(0x29b)](_0x442473[_0x3a85f5(0x2d0)],_0x5dffac['realUrl']),_0x5353b5(_0x57b201,_0x1393f7['BAD_GATEWA'+'Y'],_0x3a85f5(0x267)+_0x3a85f5(0x18b)+'-Length\x20mi'+'smatch\x20for'+'\x20'+_0x5af30b[_0x3a85f5(0x295)]);_0x37b3bb[_0x3a85f5(0x12f)](_0x4e7a00)&&_0x29be3e[_0x3a85f5(0x1b4)](_0x2402c8);return;}else _0xe989ae['unlinkSync'](_0x39bd77);}catch(_0x355fb3){}}}else _0x442473['BzMIq'](_0x42279a,_0x3e31a3,_0x58bac7,_0x1294f1,_0x4f8116,_0x5824fa);}else console[_0x3a85f5(0x29b)](_0x3a85f5(0x1e8)+_0x3a85f5(0x1af)+_0x39bd77+(_0x3a85f5(0x274)+_0x3a85f5(0x15b)+'eam\x20end\x20fo'+'r\x20')+_0xd1ae7b[_0x3a85f5(0x295)]);});}),_0x3791fe['on'](_0x34afd4[_0x113631(0x2b1)],_0x408260=>{const _0x5e72c8=_0x113631;_0x405cd1['yCYTu'](_0x405cd1[_0x5e72c8(0x2ed)],_0x405cd1[_0x5e72c8(0x2ed)])?(console['error'](_0x5e72c8(0x280)+_0x5e72c8(0x20c)+'e\x20stream\x20f'+'rom\x20'+_0xd1ae7b[_0x5e72c8(0x295)]+':',_0x408260),_0x38e8b3[_0x5e72c8(0x146)](),_0x405cd1[_0x5e72c8(0x298)](_0x2451ff,_0x4458e2,_0x39bd77,_0xd1ae7b[_0x5e72c8(0x295)])):_0x949741[_0x5e72c8(0x29b)](_0x5e72c8(0x2d4)+_0x5e72c8(0x17b)+_0x5e72c8(0x246)+'eader\x20chec'+_0x5e72c8(0x2a5)+_0x1b8572+'):',_0x5362d7);});}})['on'](_0x43cd99(0x23f),_0x56a51f=>{const _0x1850d7=_0x43cd99;console['error'](_0x1850d7(0x19c)+_0x1850d7(0x149)+'uest\x20to\x20'+_0xd1ae7b[_0x1850d7(0x295)]+':',_0x56a51f),_0x34afd4[_0x1850d7(0x176)](_0x2451ff,_0x4458e2,_0x39bd77,_0xd1ae7b['realUrl']);});};function _0x22610d(_0x374703,_0x36ec19,_0xe53de3,_0x185a93){const _0xd8ca6e=_0x2155b0,_0xfbe6d7={'IMmrU':function(_0x82b97b,_0x3661e5){return _0x82b97b<_0x3661e5;},'nRfYv':function(_0x29edbc,_0x1b321f){return _0x29edbc!==_0x1b321f;},'Ukhvo':_0xd8ca6e(0x2dd)+_0xd8ca6e(0x26f)+'gth\x20is\x20dif'+'ferent\x20for'+_0xd8ca6e(0x26b)+_0xd8ca6e(0x1eb),'sQKBO':_0xd8ca6e(0x188)+_0xd8ca6e(0x2ad),'hyEok':function(_0x1efa7c,_0x2e835c){return _0x1efa7c!==_0x2e835c;},'uPwnC':_0xd8ca6e(0x15a),'RmFWe':function(_0xbae69c,_0x539e6e,_0x2e2692,_0xf9cf2e){return _0xbae69c(_0x539e6e,_0x2e2692,_0xf9cf2e);},'WZGQN':_0xd8ca6e(0x276)+'data\x20unava'+_0xd8ca6e(0x1ce),'ybhxP':'unknown','GipWq':'N/A','GbXGX':_0xd8ca6e(0x2b7),'Pszcb':_0xd8ca6e(0x2f0),'vNouh':'public,\x20ma'+'x-age=3153'+_0xd8ca6e(0x16e),'piKTZ':function(_0xb86540,_0x14df81){return _0xb86540+_0x14df81;},'JwQCI':_0xd8ca6e(0x18c),'kEViG':_0xd8ca6e(0x2cd)+_0xd8ca6e(0x2e1),'EGjZr':function(_0x512ef3,_0x4fd6b3,_0xba7f9f){return _0x512ef3(_0x4fd6b3,_0xba7f9f);},'vrQLX':_0xd8ca6e(0x155),'rCXLZ':_0xd8ca6e(0x1c2),'OYAUT':_0xd8ca6e(0x255),'qTDYQ':function(_0x5e1340,_0x3d8a00){return _0x5e1340===_0x3d8a00;},'eHzyq':_0xd8ca6e(0x137),'yEBIN':function(_0x4718fd,_0x293954){return _0x4718fd!==_0x293954;},'pzTnp':'VRkiK','OcEHn':_0xd8ca6e(0x2f8),'NmMwa':function(_0x20a787,_0x5196e7){return _0x20a787===_0x5196e7;},'eYQcg':_0xd8ca6e(0x10e),'KCWJH':_0xd8ca6e(0x23f),'fvyBd':_0xd8ca6e(0x16a)};if(!_0x374703){console[_0xd8ca6e(0x23f)](_0xd8ca6e(0x225)+_0xd8ca6e(0x193)+'d\x20with\x20nul'+_0xd8ca6e(0x1d5)+_0xd8ca6e(0x2a3)+_0x36ec19),_0xfbe6d7['RmFWe'](_0x3600a8,_0x185a93,_0x385e0c[_0xd8ca6e(0x2f1)+_0xd8ca6e(0x1cc)+'R'],_0xfbe6d7['WZGQN']);return;}const _0x488fbc={'Cloud-Type':_0x374703['cloudtype']||_0xfbe6d7[_0xd8ca6e(0x12b)],'Cloud-Expiration':_0x374703[_0xd8ca6e(0x2cc)]||_0xfbe6d7[_0xd8ca6e(0x208)],'ETag':_0x374703['uniqid']||_0x52582c[_0xd8ca6e(0x2a7)](_0xfbe6d7[_0xd8ca6e(0x136)])[_0xd8ca6e(0x2b6)](_0xe989ae[_0xd8ca6e(0x25d)+'nc'](_0x36ec19))[_0xd8ca6e(0x2e6)](_0xfbe6d7['Pszcb']),'Cache-Control':_0xfbe6d7[_0xd8ca6e(0x218)],'Expires':new Date(_0xfbe6d7[_0xd8ca6e(0x275)](Date['now'](),0x276b5e381+-0x118*-0xc62731+0x408406ae7))[_0xd8ca6e(0x2d5)+'g'](),'Accept-Ranges':_0xd8ca6e(0x122),'Connection':_0xfbe6d7[_0xd8ca6e(0x124)],'Date':new Date()[_0xd8ca6e(0x2d5)+'g'](),'Last-Modified':_0x374703[_0xd8ca6e(0x144)]&&_0x374703[_0xd8ca6e(0x144)][_0xfbe6d7[_0xd8ca6e(0x238)]]||new Date(_0xe989ae[_0xd8ca6e(0x190)](_0xe53de3)['mtime'])['toUTCStrin'+'g']()};if(_0x374703[_0xd8ca6e(0x289)]){var _0x3c766d=_0xfbe6d7[_0xd8ca6e(0x20b)](_0x5719f6,_0x374703,_0x36ec19);if(_0x3c766d&&_0xe989ae[_0xd8ca6e(0x12f)](_0x3c766d)){_0x374703['headers'][_0xfbe6d7[_0xd8ca6e(0x2d6)]]=_0xe989ae[_0xd8ca6e(0x190)](_0x3c766d)[_0xd8ca6e(0x13e)];const _0x47b195={..._0x488fbc,..._0x374703[_0xd8ca6e(0x144)]||{},'ETag':_0xfbe6d7[_0xd8ca6e(0x275)](_0x374703[_0xd8ca6e(0x289)]['uniqid']||_0x374703['uniqid'],_0xfbe6d7['vrQLX']),'Content-Type':_0xfbe6d7[_0xd8ca6e(0x247)]};_0x185a93[_0xd8ca6e(0x292)](_0x385e0c['OK'],_0x47b195);const _0x23186d=_0xe989ae[_0xd8ca6e(0x195)+_0xd8ca6e(0x263)](_0x3c766d);_0x23186d['pipe'](_0x185a93);return;}}_0x396cd[_0xd8ca6e(0x2c1)](_0xd8ca6e(0x22c));const _0xf01d86=_0xe989ae[_0xd8ca6e(0x195)+_0xd8ca6e(0x263)](_0x36ec19),_0x59ad24=_0x374703[_0xd8ca6e(0x299)]&&typeof _0x374703[_0xd8ca6e(0x299)]==='string'&&_0x374703[_0xd8ca6e(0x299)]['includes'](_0xfbe6d7[_0xd8ca6e(0x1d4)]);let _0x31e760=_0x374703[_0xd8ca6e(0x144)]&&_0x374703['headers'][_0xfbe6d7[_0xd8ca6e(0x2d6)]]?_0xfbe6d7[_0xd8ca6e(0x20b)](parseInt,_0x374703[_0xd8ca6e(0x144)][_0xd8ca6e(0x188)+_0xd8ca6e(0x2ad)],0x17e1+0x6f7*-0x4+-0x3*-0x157):0x2624+0x25*0x5a+0x1993*-0x2;if(!_0x31e760||_0xfbe6d7[_0xd8ca6e(0x17c)](_0x31e760,-0x2f*0xc6+0x328+0x4be*0x7)){if(_0xfbe6d7[_0xd8ca6e(0x17c)](_0xfbe6d7[_0xd8ca6e(0x20d)],'WiGUR'))_0x264945['error']('Error\x20pars'+_0xd8ca6e(0x1e7)+_0xd8ca6e(0x1f7)+_0x5b0368+':',_0x72ec4f);else try{if(_0xfbe6d7['yEBIN'](_0xfbe6d7[_0xd8ca6e(0x237)],_0xfbe6d7[_0xd8ca6e(0x282)])){const _0x47b6d4=_0xe989ae[_0xd8ca6e(0x190)](_0x36ec19);_0x31e760=_0x47b6d4[_0xd8ca6e(0x13e)];if(_0x31e760>-0x3e+-0x75b*-0x2+-0xe78){if(!_0x374703[_0xd8ca6e(0x144)])_0x374703[_0xd8ca6e(0x144)]={};_0x374703['headers'][_0xfbe6d7[_0xd8ca6e(0x2d6)]]=_0x31e760['toString'](),_0xe989ae[_0xd8ca6e(0x1ae)+_0xd8ca6e(0x24d)](_0xe53de3,JSON[_0xd8ca6e(0x1fb)](_0x374703)),console[_0xd8ca6e(0x181)](_0xd8ca6e(0x2d7)+_0xd8ca6e(0x1c4)+_0xd8ca6e(0x127)+_0xe53de3+'\x20to\x20'+_0x31e760);}else console['warn'](_0xd8ca6e(0x167)+_0xd8ca6e(0x2ee)+_0x36ec19+(_0xd8ca6e(0x26a)+_0xd8ca6e(0x2f2)+_0xd8ca6e(0x14e)));}else{if(_0xfbe6d7['IMmrU'](_0x17ffe4,0x25bc+-0x668+-0x1754)&&_0xfbe6d7[_0xd8ca6e(0x183)](_0x28cbc4[_0xd8ca6e(0x144)][_0xd8ca6e(0x188)+_0xd8ca6e(0x2ad)],_0x34746a)){_0x5073d7['warn'](_0xfbe6d7[_0xd8ca6e(0x1f9)],_0x1bc160[_0xd8ca6e(0x295)]),_0x39e6fe(_0x172632,_0xcfb924[_0xd8ca6e(0x2c8)+'Y'],_0xd8ca6e(0x267)+_0xd8ca6e(0x18b)+_0xd8ca6e(0x297)+_0xd8ca6e(0x2fa)+'\x20'+_0x1c203a[_0xd8ca6e(0x295)]);_0x1f31e3['existsSync'](_0xe2acb2)&&_0x466fe2[_0xd8ca6e(0x1b4)](_0x3cbb0c);return;}_0x2db119['headers'][_0xfbe6d7[_0xd8ca6e(0x2d6)]]=_0x35c488,_0xfde06f[_0xd8ca6e(0x1ae)+'ync'](_0x37f972,_0x4a2e6d[_0xd8ca6e(0x1fb)](_0x196960));}}catch(_0x2917b0){if(_0xfbe6d7[_0xd8ca6e(0x228)](_0xfbe6d7[_0xd8ca6e(0x17d)],_0xd8ca6e(0x10e))){console['error']('Error\x20stat'+_0xd8ca6e(0x2c0)+'content\x20fi'+_0xd8ca6e(0x1f0)+_0x36ec19+':',_0x2917b0),_0x24a908(_0x185a93,_0x36ec19);return;}else _0x181eb1['error'](_0xd8ca6e(0x143)+_0xd8ca6e(0x22b)+_0xd8ca6e(0x1af)+_0x770f84+':',_0x1a6c4a);}}_0xf01d86['on'](_0xd8ca6e(0x209),()=>{const _0x445cd2=_0xd8ca6e,_0x7cba56={..._0x488fbc,'Content-Type':_0x374703[_0x445cd2(0x144)]&&_0x374703['headers'][_0x445cd2(0x1e2)+'pe']||(_0x59ad24?_0x445cd2(0x191):'applicatio'+_0x445cd2(0x1b9)+'ream'),..._0x374703[_0x445cd2(0x144)]||{}};_0x185a93[_0x445cd2(0x292)](_0x385e0c['OK'],_0x7cba56),_0xf01d86[_0x445cd2(0x2cb)](_0x185a93);}),_0xf01d86['on'](_0xfbe6d7[_0xd8ca6e(0x2ce)],_0x1d1a42=>{const _0x58e261=_0xd8ca6e;console[_0x58e261(0x23f)]('Read\x20strea'+_0x58e261(0x126)+'r\x20'+_0x36ec19+':',_0x1d1a42),_0x24a908(_0x185a93,_0x36ec19);}),_0x185a93['on'](_0xfbe6d7[_0xd8ca6e(0x134)],()=>{const _0x519751=_0xd8ca6e;_0xfbe6d7['hyEok'](_0xfbe6d7['uPwnC'],_0xfbe6d7[_0x519751(0x2bd)])?!_0x4dd9b0[_0x519751(0x26e)+'ded']&&(_0x4e200a[_0x519751(0x181)](_0x519751(0x12a)+_0x519751(0x2fc)+'tion\x20prema'+'turely\x20for'+'\x20'+_0x472fd5+(_0x519751(0x1f2)+_0x519751(0x2b8)+_0x519751(0x296))),_0x2fac43[_0x519751(0x171)]()):!_0x185a93[_0x519751(0x26e)+_0x519751(0x2e3)]&&(console[_0x519751(0x181)]('Client\x20clo'+_0x519751(0x2fc)+'tion\x20prema'+_0x519751(0x15d)+'\x20'+_0x36ec19+(_0x519751(0x1f2)+_0x519751(0x2b8)+_0x519751(0x296))),_0xf01d86[_0x519751(0x171)]());});}const _0x2451ff=(_0xe42cd2,_0x59ff54,_0x6e2b20)=>{const _0x5dcfe2=_0x2155b0,_0x1d42cd={'sbexT':function(_0x4e37fc,_0x563bfb,_0xb6dd52,_0x2d90e1,_0x5a3e85){return _0x4e37fc(_0x563bfb,_0xb6dd52,_0x2d90e1,_0x5a3e85);},'mZhaE':_0x5dcfe2(0x159)+_0x5dcfe2(0x128),'nfcEF':function(_0x2bcd62,_0x2d26d2,_0x563a0f,_0x42e519){return _0x2bcd62(_0x2d26d2,_0x563a0f,_0x42e519);},'pevkG':function(_0xaac048,_0x4939d2){return _0xaac048!==_0x4939d2;}};_0x396cd[_0x5dcfe2(0x2c1)](_0x1d42cd[_0x5dcfe2(0x12d)]),console[_0x5dcfe2(0x23f)](_0x5dcfe2(0x130)+_0x5dcfe2(0x308)+_0x5dcfe2(0x2ae)+_0x6e2b20),_0x1d42cd[_0x5dcfe2(0x1b8)](_0x3600a8,_0xe42cd2,_0x385e0c[_0x5dcfe2(0x2c8)+'Y'],_0x5dcfe2(0x267)+_0x5dcfe2(0x11d)+_0x5dcfe2(0x1b7)+_0x5dcfe2(0x2e0)+_0x6e2b20);if(_0xe989ae[_0x5dcfe2(0x12f)](_0x59ff54)){if(_0x1d42cd[_0x5dcfe2(0x156)](_0x5dcfe2(0x301),_0x5dcfe2(0x301)))_0x1d42cd[_0x5dcfe2(0x19f)](_0x2e9614,_0x39d1da,_0x23e34b,_0x3d71a7,_0x13c641);else try{_0xe989ae['unlinkSync'](_0x59ff54);}catch(_0x5213eb){console['error']('Error\x20unli'+_0x5dcfe2(0x22b)+'\x20file\x20'+_0x59ff54+':',_0x5213eb);}}},_0x24a908=(_0x48cb13,_0x35f045)=>{const _0x479769=_0x2155b0,_0x1835a5={'TliTs':function(_0x217869,_0x286bd9,_0x291ace,_0x1bc175){return _0x217869(_0x286bd9,_0x291ace,_0x1bc175);},'KLibw':_0x479769(0x2d3)+_0x479769(0x11f)+_0x479769(0x1db)+_0x479769(0x1d7)+_0x479769(0x1e9)+_0x479769(0x254)};_0x396cd[_0x479769(0x2c1)](_0x479769(0x112)+_0x479769(0x1d2)),console[_0x479769(0x23f)]('Error\x20read'+'ing\x20cache\x20'+_0x479769(0x10c)+_0x35f045),_0x1835a5[_0x479769(0x26c)](_0x3600a8,_0x48cb13,_0x385e0c[_0x479769(0x2f1)+'ERVER_ERRO'+'R'],_0x1835a5['KLibw']);};_0x3ae4b3[_0x2155b0(0x1c7)](_0xa3b9,()=>{const _0x34f244=_0x2155b0;console[_0x34f244(0x181)](_0x34f244(0x226)+_0x34f244(0x293)+'ing\x20on\x20htt'+_0x34f244(0x252)+_0x34f244(0x1ac)+_0xa3b9);}),process['on'](_0x2155b0(0x1c0),()=>{const _0x1ce276=_0x2155b0,_0x80f4ae={'mclHa':_0x1ce276(0x202),'wMGOg':'Forcing\x20sh'+_0x1ce276(0x2c4),'qKIfV':_0x1ce276(0x221)+_0x1ce276(0x2df)+_0x1ce276(0x24e)+_0x1ce276(0x158)+_0x1ce276(0x157),'XQWEV':function(_0x1f7178,_0x89f814,_0x2a4ec7){return _0x1f7178(_0x89f814,_0x2a4ec7);}};console[_0x1ce276(0x181)](_0x80f4ae[_0x1ce276(0x1cf)]),_0x3ae4b3[_0x1ce276(0x16a)](()=>{const _0x2d04b2=_0x1ce276;console[_0x2d04b2(0x181)](_0x2d04b2(0x1c5)+_0x2d04b2(0x270)),process['exit'](0x1*-0x2114+0x1*-0x47f+0x1*0x2593);}),_0x80f4ae[_0x1ce276(0x1a2)](setTimeout,()=>{const _0x39d2b8=_0x1ce276,_0x4f1a68={'TaWeu':function(_0x17565d,_0x1a67d8){return _0x17565d(_0x1a67d8);}};_0x80f4ae[_0x39d2b8(0x29a)]===_0x80f4ae[_0x39d2b8(0x29a)]?(console[_0x39d2b8(0x23f)](_0x80f4ae[_0x39d2b8(0x11c)]),process['exit'](-0x23f2+-0xa0*-0x10+0x3b5*0x7)):(_0xec089['error'](_0x39d2b8(0x118)+_0x39d2b8(0x172)+_0x52aef6+_0x39d2b8(0x131),_0x1ba257),_0x4f1a68[_0x39d2b8(0x27a)](_0x30b03f,_0x3c8943));},0xa4f+-0x56d*0x4+0x3275);}); \ No newline at end of file +const _0x2201b1=_0x54eb;(function(_0x4a456b,_0x12bb9b){const _0x1ca711=_0x54eb,_0x61cb4b=_0x4a456b();while(!![]){try{const _0x37d3ff=parseInt(_0x1ca711(0x120))/(-0xa37+-0x220c+0x2c44)*(-parseInt(_0x1ca711(0x104))/(0x26a8+-0xa*-0x2fd+-0xc*0x5b6))+-parseInt(_0x1ca711(0x1a5))/(0x791*-0x1+-0x1b*0xe1+0x23*0xe5)*(-parseInt(_0x1ca711(0x126))/(-0x10b0+-0x26a7+-0x25*-0x17f))+-parseInt(_0x1ca711(0x1c0))/(0x26c2+0x1e5*-0xb+0x1d*-0x9e)*(parseInt(_0x1ca711(0x9e))/(-0xf*0x5+-0x184d+0x189e))+-parseInt(_0x1ca711(0x221))/(0x2*-0xecc+0x1701+0x69e)*(parseInt(_0x1ca711(0x20b))/(0x10bc+-0x2*0x5ad+-0x55a))+-parseInt(_0x1ca711(0x242))/(-0x1*0xa9e+0x1649*-0x1+0x20f0)+-parseInt(_0x1ca711(0xc4))/(0x20e+-0x4*0x455+0x4*0x3d4)+parseInt(_0x1ca711(0x181))/(-0x1be6+-0x11c*-0x19+0x35)*(parseInt(_0x1ca711(0xcf))/(0x11*0x125+0x35*0x49+0x6*-0x5c1));if(_0x37d3ff===_0x12bb9b)break;else _0x61cb4b['push'](_0x61cb4b['shift']());}catch(_0x41238f){_0x61cb4b['push'](_0x61cb4b['shift']());}}}(_0x1cc3,0x6b13c+0x3*-0x46d2b+0xd5b86*0x1));const _0x1991c2=require(_0x2201b1(0x157)),_0x25c663=require(_0x2201b1(0x11c)),_0x5a4d4a=require(_0x2201b1(0xb6)),_0x3f9000=require(_0x2201b1(0x10c)+'g'),_0x50ed75=require('fs'),_0x261916=require(_0x2201b1(0x213)),_0x15cd4e=require(_0x2201b1(0x160)),_0x4b519d=_0x2201b1(0x1d4),_0x5df283=0x148f*0x3+-0x6d3+-0x13b1,_0x336c22=_0x2201b1(0xfa)+'.6.121.121'+_0x2201b1(0x114),_0x42ab9a=_0x261916['join'](__dirname,_0x4b519d),_0x5f5a67={},_0x48a8cb={'request':0x0,'cacheHit':0x0,'apiCall':0x0,'cacheCall':0x0,'cacheReadError':0x0,'fetchApiError':0x0,'fetchApiWarning':0x0,'increment':function(_0x475a0d){const _0x596958=_0x2201b1;this[_0x596958(0x1d2)+_0x596958(0x258)](_0x475a0d)&&this[_0x475a0d]++;}};let _0x565d94=_0x5df283,_0x897617=_0x336c22;function _0x50b917(){const _0x1fa211=_0x2201b1,_0x11e139={'ZOMhv':function(_0x1925fb,_0x9802e2){return _0x1925fb===_0x9802e2;},'LtrBI':_0x1fa211(0x17e),'UbRRC':function(_0x5f3f78,_0x4b37b1,_0x2bbb64){return _0x5f3f78(_0x4b37b1,_0x2bbb64);},'qkSEo':function(_0x2e56a1,_0x1583af){return _0x2e56a1(_0x1583af);},'edkxT':_0x1fa211(0x16d)},_0x17204e=process[_0x1fa211(0x1de)][_0x1fa211(0x8c)](-0x1097*-0x2+0xf93+0x1*-0x30bf);_0x17204e[_0x1fa211(0xfb)](_0x151801=>{const _0x1392c9=_0x1fa211,_0x5d8fc0=_0x151801['startsWith']('--')?_0x151801[_0x1392c9(0x227)](0xc33+0x1b7a+-0x27ab):_0x151801,[_0x35fbe2,_0x381b2d]=_0x5d8fc0[_0x1392c9(0x179)]('=');if(_0x11e139[_0x1392c9(0x1cd)](_0x35fbe2,_0x11e139[_0x1392c9(0x237)])&&_0x381b2d){const _0x3f7e89=_0x11e139[_0x1392c9(0x202)](parseInt,_0x381b2d,0x243b+0x1*-0x112+0x25*-0xf3);!_0x11e139[_0x1392c9(0x117)](isNaN,_0x3f7e89)&&(_0x565d94=_0x3f7e89);}else _0x35fbe2===_0x11e139['edkxT']&&_0x381b2d&&(_0x897617=_0x381b2d);});}function _0x1cc3(){const _0x19c503=['lOwxL','OzzjV','writeFileS','tch','kpujI','Atkqk','Error\x20stat','video/mp4','\x20for\x20valid','mjrOM','\x20not\x20found','Sjqsw','CkFyB','URzGv','length','yJmZK','lVfsU','unlinkSync','http://183','forEach','xFfQB','rfIek','tch\x20for\x20','JBBkg','CTurL','cacheHit','IfUPN','Error\x20writ','486ZrJoru','data\x20unava','bSAMT','tTwcw','GET','RRisU','TTrAq','WAVCt','querystrin','apiCall','\x20path\x20or\x20m','thumb','REDIRECT','ing\x20stale\x20','IXTNA','pathname',':9519/api','ly\x20cached:','r:\x20Unable\x20','qkSEo','Error\x20crea','ing\x20on\x20htt','vSiif','toUTCStrin','https','timeout','nUULo','rning','1619wculds','\x20Chrome/89','necfx','SLtHi','dvLOD','BAD_GATEWA','146528OXONAm','QYDNE','aMSba','join','THdVt','SIGINT','Proxy\x20serv','lknXK','MKizh','ream.','\x20cache\x20for','Mozilla/5.','request','public,\x20ma','Client\x20clo','ngth\x20misma','t:\x20Invalid','efined\x20for','OYseO','sing\x20cache','warn','favicon.ic','ded','SzYlZ','exit','PyWQR','Cache\x20meta','ing.','statusCode','Error\x20pars','ghPZS','createServ','wYiBx','tent\x20file\x20','l\x20cacheDat','eader\x20chec','nNJyj','ailed\x20or\x20r','FwlUC','Failed\x20to\x20','createWrit','ZJvPs','czzzb','ydyvT','renameSync','Paxge','rom\x20','rIsAb','KSwUm','http','content\x20fi','zvrZI','.meta','erver\x20Erro','update','WrlDt','pxWqx','tion\x20prema','crypto','nt\x20updated','QCDTW','increment','hex','\x20has\x20size\x20','hZmfQ','0\x20(Windows','fetchApiEr',';charset=U','ache\x20calle','getTime','randomByte','api','CFtPO','en.','myPJZ','hHfpY','message','DKVrQ','KWYmF','to\x20read\x20ca','ing\x20cache\x20','RaDfJ','data','split','Cached\x20con','expiration','ggTOV','GDPQa','port','FlkXu','hRmIq','44eDXFxP','Received\x20S','eeaOF','\x20directory','bmMgk','IfQQj','elrjP','HthoV','headersSen','real\x20URL:\x20','PHWQZ','nbazX','oYXEg','t\x20to\x20','t\x20file','USQwu','d.\x20','serveFromC','RClSD','utf8','protocol','UYGdr','AYfHM','a\x20for\x20','\x20timed\x20out','QOPVH','query','smatch\x20for','rvygM','IaLko','destroy','EcmWs','arset=utf-','rror','existsSync','EIXeY','6KBqjiD','er\x20is\x20runn','ing\x20or\x20par','xrKhf','headers','JLudK','bbs','bytes','th\x20status\x20','wBAsk','Error\x20unli','th\x20in\x20','uest\x20to\x20','Forcing\x20sh','createHash','OZzDT','nAyXd','kUvpq','nLxiH','AqeUY','INTERNAL_S','\x20failed\x20wi','esponse\x20fr','IGINT.\x20Shu','sed\x20connec','\x20after\x20','zMOAr','15ihZsFO','URHmR','n/json;\x20ch','vrbJn','UmYvw','sed.','.mp4','replace','\x20the\x20respo','d-since','itcrJ','0\x20or\x20stat\x20','write\x20cach','ZOMhv','qgfVM','uniqid','digest','ctory\x20crea','hasOwnProp','hMNRO','.cache','.content','Updated\x20co','wbyMd','hmdRR','tting\x20down','IOYJw','pcxCz','log','test','argv','content-le','\x20(KHTML,\x20l','meta\x20file\x20','ATVbi','API\x20reques','KKRaL','ing\x20date\x20f','AvEUt','cacheReadE','NzyPe','.temp','dmkqr','gHpZH','app','WIYYg','error','RtBGU','yNpwF','VaDOh','FGrMe','XNqgh','UqIaH','AElxK','NOT_MODIFI','pcQMN','ntent-leng','wUbyS','RwOce','toString','LiSwC','Server\x20clo','https:','OMvDL','x-age=3153','turely\x20for','UbRRC','GtCLw','md5','Bad\x20Reques','API\x20endpoi','fetchApiWa','JdkPf','applicatio','Internal\x20S','523696AQkoGI','realUrl','keys','hNxTT','FrsKE','che\x20conten','ILKbY',')\x20AppleWeb','path','jfpaa','y...','zuiRe','Error\x20duri','nse\x20from:','ike\x20Gecko)','FsxOr','uXoMm','includes','WCwft','ohXpH','tAnAQ','Stream','42xcWBvI','ngth','Content\x20le','ZHKEP','endpoint','kBEqL','substring','end','avhbm','utdown...','brBpG','DecHP','\x20NT\x2010.0;\x20','qMstM','parse','if-modifie','TF-8','timestamp','\x20to\x20','TtoVb','EsfFK','or\x20cache\x20h','LtrBI','PADwf','NO_CONTENT','Temp\x20cache','pipe','yFUaJ','API\x20Error:','RuiAS','FeQHy','ExGIu','ontent-len','6853509nAloBV','acheHeader','qiqlW','issing\x20tok','eEWtL','DjAza','6000','y:\x20Failed\x20','keep-alive','string','uest\x20faile','size','ied','last-modif','\x20meta\x20file','bQbac','dQPOV','rhenC','BAD_REQUES','gth\x20is\x20und','PllOe','ync','erty','xCndL','text/plain','n/octet-st','\x20after\x20str','eam\x20end\x20fo','ving\x20stale','ng\x20respons','GhsIq','setEncodin','vOIDl','.\x20Re-fetch','UAncO','ing\x20meta\x20f','duQia','QuFoh','LNgJC','ySvnC','\x20failed:','lETPe','slice','p://localh','civWK','ilable.','listen','parse\x20API\x20','ng\x20GET\x20req','stringify','ream','failed.','now','wqIIR','xjusg','\x20to:\x20','gEjxp','PpAJz','ZuFKT','mtime','1403052lGSyFy','le\x20','RKmgy','EEnYk','mKzea','Error\x20read','response:\x20','PMceo','om\x20','RoNil','code','ror','cQdpx','Warning:\x20c','jJmkw','HFBTS','bzPul','statSync','writableEn','.0.4389.11','.\x20API:\x20','Cache\x20dire','4\x20Safari/5','lGdQD','url','ERVER_ERRO','YoCus','Successful','N/A','dirname',',\x20Cache:\x20','boloG','MrMLn','FYtnk','wcyqv','xrfoJ','AwNhJ','\x20file\x20','6132510ZbXfXT','hHGMh','cacheCall','RVOxW','cAdEM','e\x20metadata','readFileSy','Fzqyt','AarAs','mkdirSync','ing\x20JSON\x20r','9698748IOIGVR','ting\x20cache','startsWith','writeHead','API\x20call\x20f','to\x20fetch\x20f','QsOyA','SGdxA','close','cloudtype','PI\x20call\x20or','Bad\x20Gatewa','kkBPJ','ZDLXi','AgpST','LdvvA','www','content-ty','fJPJI','WkvAI','zndhF','Error\x20maki','eYlgW','WoMEp','OLUTV'];_0x1cc3=function(){return _0x19c503;};return _0x1cc3();}function _0x1f9f39(){const _0x58e976=_0x2201b1,_0x483c9e={'RRisU':_0x58e976(0xab)+_0x58e976(0x241)+'gth\x20is\x20und'+_0x58e976(0x137)+_0x58e976(0x1c8)+_0x58e976(0x218),'QsOyA':function(_0x5580f9,_0x3ede51){return _0x5580f9!==_0x3ede51;},'gHpZH':_0x58e976(0x155)};_0x50b917();if(!_0x50ed75[_0x58e976(0x1a3)](_0x42ab9a))try{_0x483c9e[_0x58e976(0xd5)](_0x483c9e[_0x58e976(0x1eb)],_0x483c9e[_0x58e976(0x1eb)])?_0x6636d2[_0x58e976(0x13a)](_0x483c9e[_0x58e976(0x109)],_0xfb6158[_0x58e976(0x20c)]):(_0x50ed75['mkdirSync'](_0x42ab9a,{'recursive':!![]}),console[_0x58e976(0x1dc)](_0x58e976(0xb3)+_0x58e976(0x1d1)+'ted:\x20'+_0x42ab9a));}catch(_0x477866){console[_0x58e976(0x1ee)]('Error\x20crea'+_0x58e976(0xd0)+_0x58e976(0x184)+'\x20'+_0x42ab9a+':',_0x477866),process[_0x58e976(0x13e)](0x144f*0x1+-0x2*0x33b+-0xdd8);}}_0x1f9f39();const _0x20230e=(-0x3f*0xb+-0x2f*0x45+-0x6*-0x294)*(0xb*-0x26b+0xa*-0x14e+-0x3*-0xd4b)*(0x221a+-0x149e+-0xd40)*(-0x2*-0x27f+0x1bd5+-0x1ceb),_0x4e982c=(-0x1*0x1fad+0x5b1+-0x4*-0x68e)*(0x228a+-0x3*-0x7e6+-0x3a00)*(0x714+0x21c3+-0x24ef*0x1),_0x1ee738={'OK':0xc8,'NO_CONTENT':0xcc,'REDIRECT':0x12e,'NOT_MODIFIED':0x130,'BAD_REQUEST':0x190,'NOT_FOUND':0x194,'INTERNAL_SERVER_ERROR':0x1f4,'BAD_GATEWAY':0x1f6};setInterval(()=>{const _0xe3d52a=_0x2201b1,_0x5cc147={'OYseO':function(_0x161f34,_0x281e41){return _0x161f34-_0x281e41;},'rvygM':function(_0x273b7a,_0x3ce484){return _0x273b7a===_0x3ce484;},'ExGIu':_0xe3d52a(0xe9),'bzPul':_0xe3d52a(0x22b)},_0xcc410=Date['now']();for(const _0xfe051 in _0x5f5a67){if(_0x5cc147[_0xe3d52a(0x138)](_0xcc410,_0x5f5a67[_0xfe051][_0xe3d52a(0x232)])>_0x20230e){if(_0x5cc147[_0xe3d52a(0x19d)](_0x5cc147[_0xe3d52a(0x240)],_0x5cc147[_0xe3d52a(0xae)]))return{'cacheData':_0x2feea5,'isNotModified':!![]};else delete _0x5f5a67[_0xfe051];}}},_0x4e982c);function _0x54eb(_0x3fa1ed,_0x56a0cc){const _0x1ca846=_0x1cc3();return _0x54eb=function(_0xc0479d,_0x13fe99){_0xc0479d=_0xc0479d-(-0x2ac+-0xc29*-0x1+-0x8fd);let _0x4e374a=_0x1ca846[_0xc0479d];return _0x4e374a;},_0x54eb(_0x3fa1ed,_0x56a0cc);}function _0x14aaae(_0x5e9f13,_0x1d19f3,_0x17ed42){const _0x37fadb=_0x2201b1,_0x472822={'zHNYV':_0x37fadb(0x25a)+_0x37fadb(0x169)+_0x37fadb(0x231)};!_0x5e9f13[_0x37fadb(0x189)+'t']&&(_0x5e9f13[_0x37fadb(0xd2)](_0x1d19f3,{'Content-Type':_0x472822['zHNYV']}),_0x5e9f13[_0x37fadb(0x228)](_0x17ed42));}async function _0x35cf52(_0x31228f,_0x283cfc){const _0xce37af=_0x2201b1;_0x283cfc['writeHead'](_0x1ee738[_0xce37af(0x239)]),_0x283cfc[_0xce37af(0x228)]();}async function _0xd2bc17(_0x549a48,_0x16a381,_0x288770){const _0xea67b6=_0x2201b1,_0x20030f={'eoYxt':function(_0x6df27a,_0x4c92ec){return _0x6df27a===_0x4c92ec;},'TOrUL':_0xea67b6(0x144),'tTwcw':function(_0x2d5dcf,_0x3cb414){return _0x2d5dcf!==_0x3cb414;},'Sjqsw':_0xea67b6(0x180),'GQYKZ':_0xea67b6(0x209)+_0xea67b6(0x1c2)+_0xea67b6(0x1a1)+'8'};if(_0x288770[_0xea67b6(0x19b)]['api']){if(_0x20030f['eoYxt'](_0xea67b6(0xf5),_0x20030f['TOrUL']))_0x2a6a21[_0xea67b6(0x1ee)](_0xea67b6(0x143)+'ing\x20stale\x20'+'meta\x20file\x20'+_0x4ffac5+':',_0x3095ed);else{const _0x2c1b68=/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w.-]*)*\/?$/;if(_0x2c1b68[_0xea67b6(0x1dd)](_0x288770['query'][_0xea67b6(0x16d)])){if(_0x20030f[_0xea67b6(0x107)]('gxKNV',_0x20030f[_0xea67b6(0xf3)]))_0x897617=_0x288770['query'][_0xea67b6(0x16d)],console[_0xea67b6(0x1dc)]('API\x20endpoi'+_0xea67b6(0x161)+_0xea67b6(0x99)+_0x897617);else{const _0x569672=_0x4357a2['parse'](_0x586e7d);if(_0x569672&&_0x569672[_0xea67b6(0x172)])_0x46e5ba[_0xea67b6(0x172)]=_0x569672[_0xea67b6(0x172)];}}}}_0x16a381[_0xea67b6(0xd2)](_0x1ee738['OK'],{'Content-Type':_0x20030f['GQYKZ']}),_0x16a381[_0xea67b6(0x228)](JSON[_0xea67b6(0x93)]({'code':_0x1ee738['OK'],'data':{'api':_0x897617,'port':_0x565d94,'cacheDir':_0x42ab9a,'pathIndexCount':Object[_0xea67b6(0x20d)](_0x5f5a67)[_0xea67b6(0xf6)],'viewsInfo':{'request':_0x48a8cb['request'],'cacheHit':_0x48a8cb[_0xea67b6(0x101)],'apiCall':_0x48a8cb[_0xea67b6(0x10d)],'cacheCall':_0x48a8cb[_0xea67b6(0xc6)],'cacheReadError':_0x48a8cb[_0xea67b6(0x1e7)+_0xea67b6(0x1a2)],'fetchApiError':_0x48a8cb[_0xea67b6(0x168)+_0xea67b6(0xa9)],'fetchApiWarning':_0x48a8cb[_0xea67b6(0x207)+_0xea67b6(0x11f)]}}}));}async function _0x4b3ceb(_0xfe8840,_0x19629b){const _0x15164d=_0x2201b1;_0xfe8840[_0x15164d(0xd2)](_0x1ee738[_0x15164d(0x110)],{'Location':_0x19629b[_0x15164d(0x178)][_0x15164d(0xb6)]}),_0xfe8840['end']();}async function _0x147c5f(_0x194465,_0x2321f0,_0x4759d7,_0x51af4c,_0x3c2b1e,_0x49e92f){const _0x1959ef=_0x2201b1,_0x314425={'Fzqyt':_0x1959ef(0x164),'zvrZI':function(_0xa3538e,_0x2807c9,_0x31641f,_0x5d4787){return _0xa3538e(_0x2807c9,_0x31641f,_0x5d4787);},'vrbJn':_0x1959ef(0x14d)+_0x1959ef(0x1cc)+_0x1959ef(0xc9)+'.','zndhF':function(_0x1b6c85,_0x1972e9){return _0x1b6c85<_0x1972e9;},'XNqgh':_0x1959ef(0x1df)+'ngth','wcyqv':function(_0x2c82da,_0x5cfb9e){return _0x2c82da!==_0x5cfb9e;},'WIYYg':function(_0x1db0e,_0x143a28,_0x376d4d){return _0x1db0e(_0x143a28,_0x376d4d);},'jbeHd':function(_0x2292a2,_0xd4d260,_0x1278a7,_0x135a6c,_0x12e415,_0x35c18b){return _0x2292a2(_0xd4d260,_0x1278a7,_0x135a6c,_0x12e415,_0x35c18b);}},{url:_0x484323,cloudtype:_0x25e707,expiration:_0xca8669,path:_0x618d4,headers:_0x2f3b44,uniqid:_0x1cdeee,thumb:_0x525eeb}=_0x194465['data'],_0x1da0d9={'realUrl':_0x484323,'cloudtype':_0x25e707,'expiration':_0xca8669*(0x115*-0x7+0x84e*-0x3+0x2465*0x1),'path':_0x618d4,'headers':_0x2f3b44,'uniqid':_0x1cdeee,'thumb':_0x525eeb};_0x5f5a67[_0x2321f0]={'uniqid':_0x1da0d9['uniqid'],'timestamp':Date[_0x1959ef(0x96)]()};const _0x15fd19=_0x261916[_0x1959ef(0x129)](_0x42ab9a,_0x2321f0+_0x1959ef(0x15a)),_0x460889=_0x261916[_0x1959ef(0x129)](_0x42ab9a,_0x1da0d9[_0x1959ef(0x1cf)]+'.content'),_0x5ee4bf=_0x261916[_0x1959ef(0x129)](_0x42ab9a,_0x1da0d9[_0x1959ef(0x1cf)]+'_'+_0x15cd4e[_0x1959ef(0x16c)+'s'](0x2419+-0x1d44+-0x6c5)[_0x1959ef(0x1fb)](_0x314425[_0x1959ef(0xcb)])+_0x1959ef(0x1e9));try{_0x50ed75[_0x1959ef(0xea)+'ync'](_0x15fd19,JSON[_0x1959ef(0x93)](_0x1da0d9));}catch(_0x2e2877){console[_0x1959ef(0x1ee)](_0x1959ef(0x103)+_0x1959ef(0x85)+'ile\x20'+_0x15fd19+':',_0x2e2877),_0x314425[_0x1959ef(0x159)](_0x14aaae,_0x49e92f,_0x1ee738[_0x1959ef(0x1b9)+_0x1959ef(0xb7)+'R'],_0x314425[_0x1959ef(0x1c3)]);return;}if(_0x50ed75[_0x1959ef(0x1a3)](_0x460889)){const _0x157936=_0x50ed75['statSync'](_0x460889),_0x4cc69e=_0x157936[_0x1959ef(0x24d)];_0x314425[_0x1959ef(0xe3)](_0x4cc69e,0x23fc+0x1d8a+-0x2*0x1cc3)&&_0x1da0d9[_0x1959ef(0x1a9)][_0x314425['XNqgh']]&&_0x314425[_0x1959ef(0xc0)](_0x314425[_0x1959ef(0x1ed)](parseInt,_0x1da0d9['headers'][_0x314425[_0x1959ef(0x1f3)]],-0x2344+-0x168d+0x39db),_0x4cc69e)?(console[_0x1959ef(0x13a)](_0x1959ef(0x223)+_0x1959ef(0x135)+_0x1959ef(0xfe)+_0x460889+_0x1959ef(0xb2)+_0x1da0d9[_0x1959ef(0x1a9)][_0x1959ef(0x1df)+'ngth']+_0x1959ef(0xbc)+_0x4cc69e+('.\x20Re-fetch'+_0x1959ef(0x141))),_0x5c83a5(_0x1da0d9,_0x5ee4bf,_0x460889,_0x15fd19,_0x49e92f)):_0x3f7a2c(_0x1da0d9,_0x460889,_0x15fd19,_0x49e92f);}else _0x314425['jbeHd'](_0x5c83a5,_0x1da0d9,_0x5ee4bf,_0x460889,_0x15fd19,_0x49e92f);}async function _0x49aa08(_0x38cf89,_0x4490ea,_0x5e239b){const _0x4f98dd=_0x2201b1,_0x44b8c9={'czzzb':_0x4f98dd(0xc7),'wYiBx':_0x4f98dd(0x14f),'wBAsk':_0x4f98dd(0x194),'ATVbi':function(_0x414db8,_0x51b96d,_0x472265,_0x549dc8,_0x8e60a){return _0x414db8(_0x51b96d,_0x472265,_0x549dc8,_0x8e60a);},'AvEUt':function(_0x5d35c2,_0x4e3fe6){return _0x5d35c2!==_0x4e3fe6;},'MrMLn':function(_0x125802,_0x5a18df){return _0x125802||_0x5a18df;}};if(_0x5f5a67[_0x38cf89]){const _0x1236d3=_0x261916[_0x4f98dd(0x129)](_0x42ab9a,_0x38cf89+_0x4f98dd(0x15a)),_0x1d7e29=_0x261916[_0x4f98dd(0x129)](_0x42ab9a,_0x5f5a67[_0x38cf89][_0x4f98dd(0x1cf)]+'.content');if(_0x50ed75[_0x4f98dd(0x1a3)](_0x1236d3)&&_0x50ed75[_0x4f98dd(0x1a3)](_0x1d7e29)){if(_0x44b8c9[_0x4f98dd(0x150)]===_0x44b8c9['czzzb']){console['warn'](_0x4f98dd(0xd3)+_0x4f98dd(0x14b)+'eturned\x20no'+'n-200.\x20Ser'+_0x4f98dd(0x25e)+'\x20cache\x20for'+'\x20'+_0x38cf89);try{if(_0x44b8c9[_0x4f98dd(0x146)]!==_0x4f98dd(0x1b5)){const _0x162620=JSON[_0x4f98dd(0x22f)](_0x50ed75[_0x4f98dd(0xca)+'nc'](_0x1236d3,_0x44b8c9[_0x4f98dd(0x1ae)]));_0x44b8c9[_0x4f98dd(0x1e2)](_0x3f7a2c,_0x162620,_0x1d7e29,_0x1236d3,_0x4490ea);return;}else _0xf02467(_0x33463b,_0x10fa7e,_0x218fc8,_0x5b8e03,_0x546d0d);}catch(_0x340069){_0x44b8c9[_0x4f98dd(0x1e6)]('xFncY',_0x4f98dd(0x10b))?console[_0x4f98dd(0x1ee)](_0x4f98dd(0x143)+_0x4f98dd(0x111)+_0x4f98dd(0x1e1)+_0x1236d3+':',_0x340069):_0x4e5d70[_0x4f98dd(0x1ee)](_0x4f98dd(0x1af)+'nking\x20temp'+'\x20file\x20'+_0x5a35ec+':',_0x23a930);}}else _0x59fbbd[_0x4f98dd(0x13a)]('Cached\x20con'+_0x4f98dd(0x147)+_0x281d8d+('\x20has\x20size\x20'+_0x4f98dd(0x1cb)+_0x4f98dd(0x95)));}}_0x14aaae(_0x4490ea,_0x1ee738[_0x4f98dd(0x125)+'Y'],_0x44b8c9[_0x4f98dd(0xbe)](_0x5e239b,_0x4f98dd(0xda)+'y'));}async function _0x18e8d2(_0xa27056,_0x4c9109){const _0x1f026f=_0x2201b1,_0x2449d1={'oYXEg':function(_0x13dc70,_0x2870e1){return _0x13dc70<_0x2870e1;},'itcrJ':_0x1f026f(0x1df)+_0x1f026f(0x222),'USQwu':function(_0x3ad8c4,_0x42f53c,_0x27ad3f,_0x4be4bb,_0x565b4a,_0x4e2b73){return _0x3ad8c4(_0x42f53c,_0x27ad3f,_0x4be4bb,_0x565b4a,_0x4e2b73);},'vNZrV':'utf8','CFtPO':_0x1f026f(0x1e7)+_0x1f026f(0x1a2),'UYGdr':function(_0x473489,_0x3a0ead,_0x5a7649,_0x12443c){return _0x473489(_0x3a0ead,_0x5a7649,_0x12443c);},'gylpo':_0x1f026f(0x20a)+_0x1f026f(0x15b)+_0x1f026f(0x116)+_0x1f026f(0x175)+_0x1f026f(0x210)+'t\x20file','xrfoJ':_0x1f026f(0x13b)+'o','YoCus':function(_0x59f8c4,_0x176e00){return _0x59f8c4===_0x176e00;},'IOYJw':_0x1f026f(0x225),'vOIDl':function(_0x4dd052,_0x52153b,_0x3e9bf6,_0x209bb3){return _0x4dd052(_0x52153b,_0x3e9bf6,_0x209bb3);},'nbazX':function(_0x508833,_0x12718f){return _0x508833!==_0x12718f;},'pcQMN':_0x1f026f(0x9b),'ggTOV':_0x1f026f(0x1ec),'bSAMT':'avatar','qiqlW':_0x1f026f(0x1ab),'AElxK':'url','OHbFi':_0x1f026f(0x10f),'wRLWj':_0x1f026f(0x12a),'SGdxA':_0x1f026f(0x1b8),'nUULo':_0x1f026f(0x132),'cHLIi':'md5','XUdSF':function(_0x4ec704,_0x1b7ff){return _0x4ec704+_0x1b7ff;},'NhHij':function(_0x38a0e4,_0xb3d531){return _0x38a0e4+_0xb3d531;},'JdkPf':_0x1f026f(0x164),'xCndL':function(_0x157fbf,_0x5acac7,_0x209990){return _0x157fbf(_0x5acac7,_0x209990);},'JLudK':_0x1f026f(0x1fc),'ZHKEP':_0x1f026f(0x101),'NBhKn':function(_0x16349f,_0x2accce,_0x4965d0,_0x3395f0,_0x4e2708){return _0x16349f(_0x2accce,_0x4965d0,_0x3395f0,_0x4e2708);},'aMSba':_0x1f026f(0xdd),'uaXKd':_0x1f026f(0x10d),'GtCLw':function(_0x50e489,_0x47add0){return _0x50e489===_0x47add0;},'fqbRp':function(_0x47975c,_0x1d43ac){return _0x47975c===_0x1d43ac;},'boloG':_0x1f026f(0xec),'xjusg':function(_0x456252,_0x65e31c,_0x544550,_0x5a6000,_0x3c6a06,_0x3d4726,_0x3de004){return _0x456252(_0x65e31c,_0x544550,_0x5a6000,_0x3c6a06,_0x3d4726,_0x3de004);},'GDPQa':_0x1f026f(0xe7),'HthoV':'qqEpF','LNgJC':'fetchApiWa'+_0x1f026f(0x11f),'Paxge':_0x1f026f(0x168)+_0x1f026f(0xa9),'cAdEM':function(_0x2486b9,_0x35b231,_0x197d33,_0x59d974){return _0x2486b9(_0x35b231,_0x197d33,_0x59d974);}};_0xa27056[_0x1f026f(0xb6)]=_0xa27056[_0x1f026f(0xb6)][_0x1f026f(0x1c7)](/\/{2,}/g,'/');const _0xb25105=_0x5a4d4a[_0x1f026f(0x22f)](_0xa27056[_0x1f026f(0xb6)],!![]),_0x269745=_0xb25105[_0x1f026f(0x19b)]['sign']||'';let _0x348bd4=_0xb25105[_0x1f026f(0x113)][_0x1f026f(0x179)]('/')[0x1451+0x25df*-0x1+0x118f]||'',_0x27cab8=_0xb25105[_0x1f026f(0x113)][_0x1f026f(0x179)]('/')['slice'](-0xa8d+0x236+0x859)[_0x1f026f(0x129)]('/');if(_0x348bd4===_0x2449d1[_0x1f026f(0xc1)])return _0x35cf52(_0xa27056,_0x4c9109);if(_0x2449d1[_0x1f026f(0xb8)](_0x348bd4,_0x2449d1[_0x1f026f(0x1da)]))return _0x2449d1[_0x1f026f(0x82)](_0xd2bc17,_0xa27056,_0x4c9109,_0xb25105);if(!_0x27cab8&&_0x348bd4){if(_0x2449d1[_0x1f026f(0x18c)](_0x2449d1[_0x1f026f(0x1f7)],_0x2449d1[_0x1f026f(0x1f7)]))try{_0x70544c[_0x1f026f(0xcd)](_0x45e8c8,{'recursive':!![]}),_0x4519f8[_0x1f026f(0x1dc)]('Cache\x20dire'+_0x1f026f(0x1d1)+'ted:\x20'+_0x52e1f5);}catch(_0x29549b){_0xb24a23[_0x1f026f(0x1ee)](_0x1f026f(0x118)+_0x1f026f(0xd0)+_0x1f026f(0x184)+'\x20'+_0x40d70f+':',_0x29549b),_0x372248[_0x1f026f(0x13e)](0xb29*-0x1+0xafc+-0x2*-0x17);}else _0x27cab8=_0x348bd4,_0x348bd4=_0x2449d1[_0x1f026f(0x17c)];}const _0x95c16d=[_0x2449d1[_0x1f026f(0x106)],'go',_0x2449d1[_0x1f026f(0x244)],_0x1f026f(0xdf),_0x2449d1[_0x1f026f(0x1f5)],_0x2449d1['OHbFi'],_0x2449d1[_0x1f026f(0x17c)]];if(!_0x95c16d[_0x1f026f(0x21c)](_0x348bd4)||!_0x27cab8){if(_0x2449d1[_0x1f026f(0xb8)](_0x2449d1['wRLWj'],_0x2449d1[_0x1f026f(0xd6)]))this[_0x1f026f(0x1d2)+_0x1f026f(0x258)](_0x229a46)&&this[_0x3cd0ce]++;else return _0x2449d1[_0x1f026f(0x196)](_0x14aaae,_0x4c9109,_0x1ee738[_0x1f026f(0x254)+'T'],_0x1f026f(0x205)+'t:\x20Invalid'+_0x1f026f(0x10e)+_0x1f026f(0x245)+_0x1f026f(0x16f));}_0x48a8cb[_0x1f026f(0x163)](_0x2449d1[_0x1f026f(0x11e)]);const _0x3bb6c7=_0x15cd4e['createHash'](_0x2449d1['cHLIi'])[_0x1f026f(0x15c)](_0x2449d1['XUdSF'](_0x2449d1['NhHij'](_0x348bd4,_0x27cab8),_0x269745))[_0x1f026f(0x1d0)](_0x2449d1[_0x1f026f(0x208)]);let _0x3d3d02='',_0x4887c5='';_0x5f5a67[_0x3bb6c7]&&(_0x3d3d02=_0x261916[_0x1f026f(0x129)](_0x42ab9a,_0x3bb6c7+_0x1f026f(0x15a)),_0x4887c5=_0x261916[_0x1f026f(0x129)](_0x42ab9a,_0x5f5a67[_0x3bb6c7][_0x1f026f(0x1cf)]+_0x1f026f(0x1d5)));if(_0x5f5a67[_0x3bb6c7]&&_0x2449d1['xCndL'](_0x2346b9,_0x3d3d02,_0x4887c5)){const {cacheData:_0x3a27de,isNotModified:_0x55feea}=await _0x378efe(_0xa27056,_0x3d3d02);if(_0x55feea){if(_0x2449d1[_0x1f026f(0xb8)](_0x2449d1[_0x1f026f(0x1aa)],_0x1f026f(0x1fc)))_0x4c9109[_0x1f026f(0xd2)](_0x1ee738[_0x1f026f(0x1f6)+'ED']),_0x4c9109[_0x1f026f(0x228)]();else{const _0x3a931f=_0x497249[_0x1f026f(0xaf)](_0x763220),_0x4e2541=_0x3a931f[_0x1f026f(0x24d)];_0x2449d1[_0x1f026f(0x18d)](_0x4e2541,-0xbd4+0x125e+0x176)&&_0x58bcff['headers'][_0x2449d1[_0x1f026f(0x1ca)]]&&_0x254f76(_0x515c3b[_0x1f026f(0x1a9)][_0x2449d1['itcrJ']],0x27*-0x3+0x3*-0xcf7+0x2764)!==_0x4e2541?(_0x55c474[_0x1f026f(0x13a)](_0x1f026f(0x223)+'ngth\x20misma'+'tch\x20for\x20'+_0x56dc1a+'.\x20API:\x20'+_0x4ccc12[_0x1f026f(0x1a9)][_0x2449d1[_0x1f026f(0x1ca)]]+_0x1f026f(0xbc)+_0x4e2541+(_0x1f026f(0x83)+_0x1f026f(0x141))),_0x2449d1[_0x1f026f(0x190)](_0x17bf22,_0x4f0b2d,_0x5991f0,_0x3bb108,_0x3dcc5c,_0x36fd78)):_0x14be9d(_0x437252,_0x4e2bce,_0x25360a,_0x5e4d98);}}else _0x48a8cb[_0x1f026f(0x163)](_0x2449d1[_0x1f026f(0x224)]),_0x2449d1['NBhKn'](_0x3f7a2c,_0x3a27de,_0x4887c5,_0x3d3d02,_0x4c9109);}else{if(_0x2449d1['YoCus'](_0x2449d1[_0x1f026f(0x128)],_0x2449d1['aMSba']))try{_0x48a8cb['increment'](_0x2449d1['uaXKd']);const _0x30f890=await _0x213ea0(_0x348bd4,_0x27cab8,_0x269745);if(_0x30f890[_0x1f026f(0xa8)]===_0x1ee738['REDIRECT']||_0x2449d1[_0x1f026f(0x203)](_0x30f890[_0x1f026f(0xa8)],-0x96+0x16d+0x56))return _0x2449d1[_0x1f026f(0x259)](_0x4b3ceb,_0x4c9109,_0x30f890);if(_0x2449d1['fqbRp'](_0x30f890[_0x1f026f(0xa8)],_0x1ee738['OK'])&&_0x30f890['data']&&_0x30f890[_0x1f026f(0x178)]['url']){if(_0x2449d1[_0x1f026f(0x18c)](_0x2449d1[_0x1f026f(0xbd)],_0x1f026f(0x151)))await _0x2449d1[_0x1f026f(0x98)](_0x147c5f,_0x30f890,_0x3bb6c7,_0x348bd4,_0x27cab8,_0x269745,_0x4c9109);else{_0x4a2964[_0x1f026f(0x13a)](_0x1f026f(0xd3)+'ailed\x20or\x20r'+'eturned\x20no'+'n-200.\x20Ser'+_0x1f026f(0x25e)+_0x1f026f(0x130)+'\x20'+_0x33c974);try{const _0x2dedb5=_0x5b229e['parse'](_0x42b398[_0x1f026f(0xca)+'nc'](_0x11f048,_0x2449d1['vNZrV']));_0x25f8a6(_0x2dedb5,_0x285c7f,_0x8cf8a4,_0x437744);return;}catch(_0x4144e8){_0x48306f[_0x1f026f(0x1ee)]('Error\x20pars'+_0x1f026f(0x111)+_0x1f026f(0x1e1)+_0x4e1ade+':',_0x4144e8);}}}else _0x2449d1['fqbRp'](_0x2449d1[_0x1f026f(0x17d)],_0x2449d1[_0x1f026f(0x188)])?(_0x511f50['increment'](_0x2449d1[_0x1f026f(0x16e)]),_0x183f24[_0x1f026f(0x1ee)](_0x1f026f(0xa3)+_0x1f026f(0x176)+'file:\x20'+_0x5ba219),_0x2449d1['UYGdr'](_0x5da5f2,_0x49566f,_0x1e0caf[_0x1f026f(0x1b9)+_0x1f026f(0xb7)+'R'],_0x2449d1['gylpo'])):(_0x48a8cb[_0x1f026f(0x163)](_0x2449d1[_0x1f026f(0x88)]),await _0x49aa08(_0x3bb6c7,_0x4c9109,_0x30f890[_0x1f026f(0x172)]));}catch(_0x3d07fe){_0x48a8cb['increment'](_0x2449d1[_0x1f026f(0x153)]),console[_0x1f026f(0x1ee)]('Error\x20in\x20A'+_0x1f026f(0xd9)+'\x20processin'+'g:',_0x3d07fe),await _0x2449d1[_0x1f026f(0xc8)](_0x49aa08,_0x3bb6c7,_0x4c9109,'Bad\x20Gatewa'+'y:\x20API\x20req'+_0x1f026f(0x24c)+_0x1f026f(0x191)+_0x3d07fe['message']);}else _0x394a70['unlinkSync'](_0x3d1c38);}}const _0x10290f=_0x1991c2[_0x2201b1(0x145)+'er'](_0x18e8d2);async function _0x378efe(_0xeaf753,_0x38bc82){const _0x2358e9=_0x2201b1,_0x29d2d6={'tsiKf':_0x2358e9(0x194),'qgfVM':_0x2358e9(0x230)+_0x2358e9(0x1c9),'RaDfJ':function(_0x22d677,_0x405470){return _0x22d677===_0x405470;},'uLiwT':function(_0x48e683,_0x3bbb69){return _0x48e683===_0x3bbb69;},'avhbm':'last-modif'+_0x2358e9(0x24e),'UmYvw':function(_0x44344f,_0x4af1b6){return _0x44344f<=_0x4af1b6;}};try{const _0x4b9281=_0x50ed75['readFileSy'+'nc'](_0x38bc82,_0x29d2d6['tsiKf']),_0x45230d=JSON[_0x2358e9(0x22f)](_0x4b9281),_0x471fc1=_0xeaf753[_0x2358e9(0x1a9)]['if-none-ma'+_0x2358e9(0xeb)],_0xd223b8=_0xeaf753[_0x2358e9(0x1a9)][_0x29d2d6[_0x2358e9(0x1ce)]];if(_0x471fc1&&_0x45230d['uniqid']&&_0x29d2d6[_0x2358e9(0x177)](_0x471fc1,_0x45230d[_0x2358e9(0x1cf)])){if(_0x29d2d6['uLiwT'](_0x2358e9(0x1ef),_0x2358e9(0x1ef)))return{'cacheData':_0x45230d,'isNotModified':!![]};else{const _0xa8fff5=/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w.-]*)*\/?$/;_0xa8fff5['test'](_0xd259b5[_0x2358e9(0x19b)]['api'])&&(_0x54cbeb=_0x21d314[_0x2358e9(0x19b)][_0x2358e9(0x16d)],_0x3ae21[_0x2358e9(0x1dc)](_0x2358e9(0x206)+_0x2358e9(0x161)+_0x2358e9(0x99)+_0x52adc8));}}if(_0xd223b8&&_0x45230d['headers']&&_0x45230d[_0x2358e9(0x1a9)][_0x2358e9(0x24f)+_0x2358e9(0x24e)])try{const _0x1ff301=new Date(_0x45230d[_0x2358e9(0x1a9)][_0x29d2d6[_0x2358e9(0x229)]]),_0xab14cd=new Date(_0xd223b8);if(_0x29d2d6[_0x2358e9(0x1c4)](_0x1ff301[_0x2358e9(0x16b)](),_0xab14cd[_0x2358e9(0x16b)]()))return{'cacheData':_0x45230d,'isNotModified':!![]};}catch(_0x5a0bbb){console['warn']('Error\x20pars'+_0x2358e9(0x1e5)+_0x2358e9(0x236)+_0x2358e9(0x149)+'k\x20('+_0x38bc82+'):',_0x5a0bbb);}return{'cacheData':_0x45230d,'isNotModified':![]};}catch(_0xba1bc5){return console[_0x2358e9(0x1ee)](_0x2358e9(0xa3)+'ing\x20or\x20par'+_0x2358e9(0x139)+_0x2358e9(0x250)+'\x20'+_0x38bc82+('\x20in\x20checkC'+_0x2358e9(0x243)+'s:'),_0xba1bc5),{'cacheData':null,'isNotModified':![]};}}function _0x2346b9(_0x3a379a,_0x1c626e){const _0x266630=_0x2201b1,_0x359148={'lknXK':'Forcing\x20sh'+'utdown...','jJmkw':_0x266630(0x194),'VaDOh':function(_0x21b593,_0x73214d){return _0x21b593===_0x73214d;},'ZuFKT':'number','civWK':function(_0x50adc6,_0x176017){return _0x50adc6>_0x176017;},'eeaOF':function(_0x1a5867,_0x534fd8){return _0x1a5867!==_0x534fd8;},'WoMEp':_0x266630(0x1b7)};if(!_0x50ed75[_0x266630(0x1a3)](_0x3a379a)||!_0x50ed75[_0x266630(0x1a3)](_0x1c626e))return![];try{const _0x279a35=_0x50ed75[_0x266630(0xca)+'nc'](_0x3a379a,_0x359148[_0x266630(0xac)]),_0x3c7590=JSON[_0x266630(0x22f)](_0x279a35);return _0x359148[_0x266630(0x1f1)](typeof _0x3c7590[_0x266630(0x17b)],_0x359148[_0x266630(0x9c)])&&_0x359148[_0x266630(0x8e)](_0x3c7590[_0x266630(0x17b)],Date[_0x266630(0x96)]());}catch(_0x5bbf9d){if(_0x359148[_0x266630(0x183)](_0x359148[_0x266630(0xe6)],'cHYGj'))return console[_0x266630(0x13a)]('Error\x20read'+_0x266630(0x1a7)+_0x266630(0x139)+'\x20meta\x20file'+'\x20'+_0x3a379a+(_0x266630(0xf0)+'ation:'),_0x5bbf9d),![];else _0x40875b[_0x266630(0x1ee)](_0x359148[_0x266630(0x12d)]),_0x8234c2['exit'](0x33*-0x27+0x2f4*0xa+-0x15c2);}}const _0x8ef23f=0x78c+-0x593*-0x5+-0xfe3,_0x55dee4=_0x2201b1(0x131)+_0x2201b1(0x167)+_0x2201b1(0x22d)+'Win64;\x20x64'+_0x2201b1(0x212)+'Kit/537.36'+_0x2201b1(0x1e0)+_0x2201b1(0x219)+_0x2201b1(0x121)+_0x2201b1(0xb1)+_0x2201b1(0xb4)+'37.36';async function _0x213ea0(_0x107388,_0x4b8728,_0x255bb8){const _0x1d0e93=_0x2201b1,_0x1695a5={'necfx':function(_0x4c58da,_0x2def52){return _0x4c58da===_0x2def52;},'cXwNr':'LFNOF','ZDLXi':'DipSV','EcmWs':function(_0x48ec63,_0x12e00d){return _0x48ec63(_0x12e00d);},'ohXpH':function(_0x5b4d34,_0x153d63){return _0x5b4d34(_0x153d63);},'MtuYI':_0x1d0e93(0x194),'yNpwF':'data','URHmR':_0x1d0e93(0x228),'uXoMm':_0x1d0e93(0x11d),'WpBwl':'error','vqbyZ':_0x1d0e93(0x1fe),'xrKhf':_0x1d0e93(0x108),'KKRaL':_0x1d0e93(0x209)+_0x1d0e93(0x1c2)+_0x1d0e93(0x1a1)+'8'},_0x31cf52=_0x3f9000[_0x1d0e93(0x93)]({'type':_0x107388,'sign':_0x255bb8}),_0x2f92c3=_0x897617+'?'+_0x31cf52,_0x35857f=new URL(_0x2f92c3),_0x5e71e2=_0x1695a5[_0x1d0e93(0x122)](_0x35857f[_0x1d0e93(0x195)],_0x1695a5['vqbyZ'])?_0x25c663:_0x1991c2,_0x4b1562={'method':_0x1695a5[_0x1d0e93(0x1a8)],'headers':{'Accept':_0x1695a5[_0x1d0e93(0x1e4)],'User-Agent':_0x55dee4,'token':_0x4b8728},'timeout':_0x8ef23f,'rejectUnauthorized':![]};return new Promise((_0x514147,_0xe26a88)=>{const _0x57dd39=_0x1d0e93,_0x31494b={'rhenC':function(_0x2ee471,_0x253c88){return _0x2ee471>=_0x253c88;},'xFfQB':function(_0x6ea2f4,_0x5cb887){const _0x5b88e7=_0x54eb;return _0x1695a5[_0x5b88e7(0x1a0)](_0x6ea2f4,_0x5cb887);},'anCFl':function(_0x3938fa,_0x5bb8e4){const _0x2248c3=_0x54eb;return _0x1695a5[_0x2248c3(0x21e)](_0x3938fa,_0x5bb8e4);},'rcwlv':_0x1695a5['MtuYI'],'PyWQR':_0x1695a5[_0x57dd39(0x1f0)],'KWYmF':_0x1695a5[_0x57dd39(0x1c1)],'YPoSJ':function(_0x4eae28,_0x19fcd3){const _0x31c31f=_0x57dd39;return _0x1695a5[_0x31c31f(0x21e)](_0x4eae28,_0x19fcd3);}},_0x168d1b=_0x5e71e2[_0x57dd39(0x132)](_0x2f92c3,_0x4b1562,_0xf86198=>{const _0x453fe4=_0x57dd39,_0x5edbdf={'dFAhZ':function(_0x307b1d,_0x4f5949){const _0x2c142b=_0x54eb;return _0x31494b[_0x2c142b(0x253)](_0x307b1d,_0x4f5949);},'RoNil':function(_0x85a8ac,_0x4f4545){return _0x85a8ac(_0x4f4545);},'XLWpj':function(_0x1b5a2e,_0x29c30b){const _0x35f5c6=_0x54eb;return _0x31494b[_0x35f5c6(0xfc)](_0x1b5a2e,_0x29c30b);},'JBBkg':function(_0xa51f0,_0x10f9c4){return _0x31494b['anCFl'](_0xa51f0,_0x10f9c4);}};let _0x3f7a59='';_0xf86198[_0x453fe4(0x81)+'g'](_0x31494b['rcwlv']),_0xf86198['on'](_0x31494b[_0x453fe4(0x13f)],_0x1a3445=>_0x3f7a59+=_0x1a3445),_0xf86198['on'](_0x31494b[_0x453fe4(0x174)],()=>{const _0x5d5d30=_0x453fe4;try{if(_0x5edbdf['dFAhZ'](_0xf86198[_0x5d5d30(0x142)],0x2609+-0x1*-0x21d9+-0x4652*0x1)){console[_0x5d5d30(0x1ee)](_0x5d5d30(0x1e3)+_0x5d5d30(0x18e)+_0x2f92c3+(_0x5d5d30(0x1ba)+'th\x20status\x20')+_0xf86198[_0x5d5d30(0x142)]+':\x20'+_0x3f7a59);let _0x4ea7d8={'code':_0xf86198[_0x5d5d30(0x142)],'message':_0x5d5d30(0x23d)+'\x20'+_0xf86198[_0x5d5d30(0x142)]};try{const _0x1734b4=JSON[_0x5d5d30(0x22f)](_0x3f7a59);if(_0x1734b4&&_0x1734b4[_0x5d5d30(0x172)])_0x4ea7d8[_0x5d5d30(0x172)]=_0x1734b4[_0x5d5d30(0x172)];}catch(_0x4e9e1b){}_0x5edbdf[_0x5d5d30(0xa7)](_0x514147,_0x4ea7d8);return;}_0x5edbdf['XLWpj'](_0x514147,JSON[_0x5d5d30(0x22f)](_0x3f7a59));}catch(_0x232581){console[_0x5d5d30(0x1ee)]('Error\x20pars'+_0x5d5d30(0xce)+'esponse\x20fr'+_0x5d5d30(0xa6)+_0x2f92c3+':',_0x232581,_0x3f7a59),_0x5edbdf[_0x5d5d30(0xff)](_0xe26a88,new Error(_0x5d5d30(0x14d)+'parse\x20API\x20'+'response:\x20'+_0x232581[_0x5d5d30(0x172)]));}});});_0x168d1b['on'](_0x1695a5[_0x57dd39(0x21b)],()=>{const _0x51d162=_0x57dd39;_0x1695a5['necfx'](_0x1695a5['cXwNr'],_0x1695a5[_0x51d162(0xdc)])?_0x577dad=_0x33dbfa:(_0x168d1b[_0x51d162(0x19f)](),console[_0x51d162(0x1ee)](_0x51d162(0x1e3)+'t\x20to\x20'+_0x2f92c3+(_0x51d162(0x199)+_0x51d162(0x1be))+_0x8ef23f+'ms'),_0x1695a5[_0x51d162(0x1a0)](_0xe26a88,new Error(_0x51d162(0x1e3)+'t\x20timed\x20ou'+'t')));}),_0x168d1b['on'](_0x1695a5['WpBwl'],_0x14b733=>{const _0x50a1e6=_0x57dd39;console[_0x50a1e6(0x1ee)](_0x50a1e6(0x1e3)+'t\x20to\x20'+_0x2f92c3+_0x50a1e6(0x8a),_0x14b733),_0x31494b['YPoSJ'](_0xe26a88,_0x14b733);}),_0x168d1b[_0x57dd39(0x228)]();});}const _0x42bcee=-0x2001+0x2390+-0x38f,_0x5c83a5=(_0x4d21ce,_0x19d6e5,_0x248274,_0x5c260d,_0xcca08)=>{const _0x4e6a11=_0x2201b1,_0x27e5bf={'DjAza':function(_0x381814,_0x17da63,_0x5544e4,_0x3e6787){return _0x381814(_0x17da63,_0x5544e4,_0x3e6787);},'hMNRO':function(_0x48574d,_0x462b8a){return _0x48574d(_0x462b8a);},'bQbac':_0x4e6a11(0x1df)+_0x4e6a11(0x222),'FYtnk':function(_0x487619,_0x2b9ae2,_0x43a127,_0x1c9aef,_0x2a9f1f,_0x786ea5){return _0x487619(_0x2b9ae2,_0x43a127,_0x1c9aef,_0x2a9f1f,_0x786ea5);},'IXTNA':function(_0x3a10ff,_0xdf50){return _0x3a10ff!==_0xdf50;},'FeQHy':_0x4e6a11(0x14c),'HdZEi':_0x4e6a11(0x226),'yJmZK':function(_0x214eda,_0x2bd210){return _0x214eda>_0x2bd210;},'ySvnC':function(_0x3cf961,_0x3f0806){return _0x3cf961(_0x3f0806);},'SLtHi':function(_0xe69d2c,_0x3b4091){return _0xe69d2c!==_0x3b4091;},'EEnYk':_0x4e6a11(0xdb),'EsfFK':function(_0x500e30,_0x1c2355){return _0x500e30===_0x1c2355;},'TTrAq':_0x4e6a11(0x216),'wbyMd':_0x4e6a11(0xc5),'WkvAI':function(_0x3560fd,_0x1234b6){return _0x3560fd===_0x1234b6;},'wUbyS':_0x4e6a11(0x24b),'MKizh':'.mp4','fJPJI':_0x4e6a11(0x252),'Atkqk':_0x4e6a11(0x21a),'tAnAQ':function(_0x110634,_0x3b3fb6){return _0x110634<_0x3b3fb6;},'eYlgW':function(_0x149c40,_0x42a4fa){return _0x149c40!==_0x42a4fa;},'duQia':_0x4e6a11(0x186),'zMOAr':_0x4e6a11(0xab)+_0x4e6a11(0x241)+'gth\x20is\x20dif'+'ferent\x20for'+_0x4e6a11(0x1c8)+_0x4e6a11(0x218),'elrjP':function(_0x2c0262,_0x3b8eb1){return _0x2c0262!==_0x3b8eb1;},'gUEcK':'WoWxB','RClSD':_0x4e6a11(0xab)+_0x4e6a11(0x241)+_0x4e6a11(0x255)+_0x4e6a11(0x137)+'\x20the\x20respo'+_0x4e6a11(0x218),'SzYlZ':_0x4e6a11(0x133)+_0x4e6a11(0x200)+_0x4e6a11(0x248),'KBvyj':function(_0x5c78dd,_0x13d33b){return _0x5c78dd+_0x13d33b;},'fkiYx':_0x4e6a11(0x1ac),'CvItG':'keep-alive','FxEJB':_0x4e6a11(0x24f)+_0x4e6a11(0x24e),'IaLko':_0x4e6a11(0xe0)+'pe','AwNhJ':_0x4e6a11(0x209)+'n/octet-st'+_0x4e6a11(0x94),'QCDTW':_0x4e6a11(0x228),'PADwf':_0x4e6a11(0x214),'RKmgy':_0x4e6a11(0x1fe),'NzyPe':'error'},_0x1c0435=_0x4d21ce[_0x4e6a11(0x20c)][_0x4e6a11(0xd1)](_0x27e5bf[_0x4e6a11(0xa0)])?_0x25c663:_0x1991c2;_0x1c0435['get'](_0x4d21ce['realUrl'],{'timeout':_0x42bcee,'rejectUnauthorized':![]},_0x4ac102=>{const _0xc1d4bc=_0x4e6a11,_0x5d06cf={'TtoVb':function(_0x5c82d7,_0x2009a7){const _0x1eebf6=_0x54eb;return _0x27e5bf[_0x1eebf6(0xf7)](_0x5c82d7,_0x2009a7);},'YqLob':_0x27e5bf['bQbac'],'PllOe':function(_0x59d2c5,_0x4177ba){const _0x229907=_0x54eb;return _0x27e5bf[_0x229907(0x89)](_0x59d2c5,_0x4177ba);},'pxWqx':function(_0x4c5296,_0x2c9d0c){const _0x561054=_0x54eb;return _0x27e5bf[_0x561054(0x112)](_0x4c5296,_0x2c9d0c);},'bmMgk':function(_0x1d64c7,_0x1504f7){const _0x4fd151=_0x54eb;return _0x27e5bf[_0x4fd151(0x123)](_0x1d64c7,_0x1504f7);},'Qzphq':_0x27e5bf[_0xc1d4bc(0xa1)]};if(_0x27e5bf['EsfFK'](_0x27e5bf[_0xc1d4bc(0x10a)],_0x27e5bf[_0xc1d4bc(0x1d7)]))_0xf78a55[_0xc1d4bc(0x1ee)](_0xc1d4bc(0xe4)+'ng\x20GET\x20req'+_0xc1d4bc(0x1b1)+_0x1140c9[_0xc1d4bc(0x20c)]+':',_0x57aee7),_0x27e5bf[_0xc1d4bc(0x247)](_0x48e2a0,_0x309520,_0x252fb5,_0x2a7b24['realUrl']);else{const _0x26d804=_0x50ed75[_0xc1d4bc(0x14e)+'eStream'](_0x19d6e5,{'flags':'w'});let _0x46d3b0=_0x4d21ce[_0xc1d4bc(0x213)]&&_0x27e5bf[_0xc1d4bc(0xe2)](typeof _0x4d21ce[_0xc1d4bc(0x213)],_0x27e5bf[_0xc1d4bc(0x1f9)])&&_0x4d21ce[_0xc1d4bc(0x213)]['includes'](_0x27e5bf[_0xc1d4bc(0x12e)]);const _0x5a4355=_0x4ac102[_0xc1d4bc(0x1a9)][_0xc1d4bc(0x1df)+_0xc1d4bc(0x222)];if(_0x5a4355){if(_0x27e5bf[_0xc1d4bc(0xe2)](_0x27e5bf[_0xc1d4bc(0xe1)],_0x27e5bf[_0xc1d4bc(0xed)])){const _0x354422=_0x4ce5a1['now']();for(const _0x347689 in _0x48bb37){_0x354422-_0x5700a1[_0x347689][_0xc1d4bc(0x232)]>_0x5bee5b&&delete _0x29fab7[_0x347689];}}else{if(_0x27e5bf[_0xc1d4bc(0x21f)](_0x5a4355,-0x12f8+-0x70e+-0x1*-0x2206)&&_0x27e5bf['eYlgW'](_0x4d21ce[_0xc1d4bc(0x1a9)][_0x27e5bf['bQbac']],_0x5a4355)){if(_0x27e5bf[_0xc1d4bc(0xe5)](_0x27e5bf[_0xc1d4bc(0x86)],_0x27e5bf['duQia']))_0x3c8b42[_0xc1d4bc(0x1ee)](_0xc1d4bc(0x143)+'ing\x20JSON\x20r'+_0xc1d4bc(0x1bb)+'om\x20'+_0x18da25+':',_0x1d6186,_0x33882a),_0x27e5bf[_0xc1d4bc(0x1d3)](_0x474917,new _0x5ba6c7(_0xc1d4bc(0x14d)+_0xc1d4bc(0x91)+_0xc1d4bc(0xa4)+_0x35803d[_0xc1d4bc(0x172)]));else{console[_0xc1d4bc(0x13a)](_0x27e5bf[_0xc1d4bc(0x1bf)],_0x4d21ce[_0xc1d4bc(0x20c)]),_0x14aaae(_0xcca08,_0x1ee738[_0xc1d4bc(0x125)+'Y'],_0xc1d4bc(0xda)+'y:\x20Content'+'-Length\x20mi'+_0xc1d4bc(0x19c)+'\x20'+_0x4d21ce[_0xc1d4bc(0x20c)]);_0x50ed75[_0xc1d4bc(0x1a3)](_0x19d6e5)&&(_0x27e5bf[_0xc1d4bc(0x187)](_0xc1d4bc(0x15d),_0xc1d4bc(0xad))?_0x50ed75[_0xc1d4bc(0xf9)](_0x19d6e5):(_0x6277fb['warn'](_0xc1d4bc(0x223)+_0xc1d4bc(0x135)+_0xc1d4bc(0xfe)+_0x486d31+_0xc1d4bc(0xb2)+_0x3e495d[_0xc1d4bc(0x1a9)][_0x27e5bf[_0xc1d4bc(0x251)]]+_0xc1d4bc(0xbc)+_0x30dcdc+(_0xc1d4bc(0x83)+_0xc1d4bc(0x141))),_0x27e5bf[_0xc1d4bc(0xbf)](_0x2cba08,_0x31027b,_0x47fb26,_0x557aac,_0x18d91c,_0x49630)));return;}}_0x4d21ce[_0xc1d4bc(0x1a9)][_0x27e5bf[_0xc1d4bc(0x251)]]=_0x5a4355,_0x50ed75[_0xc1d4bc(0xea)+_0xc1d4bc(0x257)](_0x5c260d,JSON[_0xc1d4bc(0x93)](_0x4d21ce));}}else{if(_0x27e5bf[_0xc1d4bc(0x235)](_0x27e5bf['gUEcK'],_0x27e5bf['gUEcK']))console['warn'](_0x27e5bf[_0xc1d4bc(0x193)],_0x4d21ce[_0xc1d4bc(0x20c)]);else{const _0x1c55c3=_0x3b0702[_0xc1d4bc(0xaf)](_0x493281);_0x2d194=_0x1c55c3[_0xc1d4bc(0x24d)];if(_0x5d06cf[_0xc1d4bc(0x234)](_0x4d09cd,-0x2*0xad+0xc*0x2cd+-0x2042)){if(!_0x5ea711['headers'])_0x12df80[_0xc1d4bc(0x1a9)]={};_0x378c89['headers'][_0x5d06cf['YqLob']]=_0x4de801[_0xc1d4bc(0x1fb)](),_0x167ff6[_0xc1d4bc(0xea)+_0xc1d4bc(0x257)](_0x5e2822,_0x40fb71[_0xc1d4bc(0x93)](_0x3e8121)),_0x123e47[_0xc1d4bc(0x1dc)](_0xc1d4bc(0x1d6)+'ntent-leng'+_0xc1d4bc(0x1b0)+_0x596604+_0xc1d4bc(0x233)+_0xa18b61);}else _0x35758c['warn'](_0xc1d4bc(0x17a)+'tent\x20file\x20'+_0x326dc4+(_0xc1d4bc(0x165)+_0xc1d4bc(0x1cb)+'failed.'));}}const _0x268ef6={'Cloud-Type':_0x4d21ce['cloudtype'],'Cloud-Expiration':_0x4d21ce[_0xc1d4bc(0x17b)],'ETag':_0x4d21ce['uniqid']||'','Cache-Control':_0x27e5bf[_0xc1d4bc(0x13d)],'Expires':new Date(_0x27e5bf['KBvyj'](Date[_0xc1d4bc(0x96)](),0x1f426f1c7*0x4+-0x1513f7f3d*-0x5+-0x70f28174d))['toUTCStrin'+'g'](),'Accept-Ranges':_0x27e5bf['fkiYx'],'Connection':_0x27e5bf['CvItG'],'Date':new Date()[_0xc1d4bc(0x11b)+'g'](),'Last-Modified':_0x4d21ce[_0xc1d4bc(0x1a9)][_0x27e5bf['FxEJB']]||new Date(_0x50ed75['statSync'](_0x5c260d)['mtime'])['toUTCStrin'+'g']()},_0x23e5cf={..._0x268ef6,'Content-Type':_0x4ac102[_0xc1d4bc(0x1a9)][_0x27e5bf[_0xc1d4bc(0x19e)]]||(_0x46d3b0?'video/mp4':_0x27e5bf[_0xc1d4bc(0xc2)]),..._0x4d21ce['headers']};_0xcca08['writeHead'](_0x4ac102[_0xc1d4bc(0x142)],_0x23e5cf),_0x4ac102['pipe'](_0x26d804),_0x4ac102[_0xc1d4bc(0x23b)](_0xcca08),_0x4ac102['on'](_0x27e5bf[_0xc1d4bc(0x162)],()=>{const _0x26598c=_0xc1d4bc;_0x27e5bf[_0x26598c(0x112)](_0x27e5bf[_0x26598c(0x23f)],_0x27e5bf['HdZEi'])?_0x26d804[_0x26598c(0x228)](()=>{const _0xba15cf=_0x26598c,_0x348ac5={'kUvpq':function(_0x4abc23,_0xe95f49){return _0x4abc23>=_0xe95f49;},'DecHP':function(_0x437438,_0x1f9412){const _0x46a5a5=_0x54eb;return _0x5d06cf[_0x46a5a5(0x256)](_0x437438,_0x1f9412);}};if(_0x50ed75[_0xba15cf(0x1a3)](_0x19d6e5))try{const _0x24cf15=_0x261916[_0xba15cf(0xbb)](_0x248274);!_0x50ed75['existsSync'](_0x24cf15)&&_0x50ed75[_0xba15cf(0xcd)](_0x24cf15,{'recursive':!![]}),_0x50ed75[_0xba15cf(0x152)](_0x19d6e5,_0x248274),console['log'](_0xba15cf(0xb9)+_0xba15cf(0x115)+'\x20'+_0x248274);}catch(_0x26d004){if(_0x5d06cf[_0xba15cf(0x15e)]('CkFyB',_0xba15cf(0xf4)))return _0x40b16c(_0x5203bf,_0x57f42f[_0xba15cf(0x254)+'T'],_0xba15cf(0x205)+_0xba15cf(0x136)+'\x20path\x20or\x20m'+'issing\x20tok'+_0xba15cf(0x16f));else{console['error']('Error\x20rena'+'ming\x20temp\x20'+'cache\x20file'+'\x20'+_0x19d6e5+_0xba15cf(0x233)+_0x248274+':',_0x26d004);try{_0x50ed75[_0xba15cf(0xf9)](_0x19d6e5);}catch(_0x302205){}}}else{if(_0x5d06cf[_0xba15cf(0x185)](_0x5d06cf['Qzphq'],_0xba15cf(0xdb))){if(_0x348ac5[_0xba15cf(0x1b6)](_0x105b9d[_0xba15cf(0x142)],0x1d*0xcd+0x7a*-0x44+0x7*0x189)){_0x8c34d8[_0xba15cf(0x1ee)](_0xba15cf(0x1e3)+_0xba15cf(0x18e)+_0x23ac00+(_0xba15cf(0x1ba)+_0xba15cf(0x1ad))+_0x102f48[_0xba15cf(0x142)]+':\x20'+_0x56a76d);let _0x2d8061={'code':_0x190837[_0xba15cf(0x142)],'message':_0xba15cf(0x23d)+'\x20'+_0x4d076e[_0xba15cf(0x142)]};try{const _0x3ad5f9=_0x2ece6f[_0xba15cf(0x22f)](_0x19befd);if(_0x3ad5f9&&_0x3ad5f9[_0xba15cf(0x172)])_0x2d8061[_0xba15cf(0x172)]=_0x3ad5f9['message'];}catch(_0x4b5daa){}_0x348ac5[_0xba15cf(0x22c)](_0x5c0eed,_0x2d8061);return;}_0x348ac5[_0xba15cf(0x22c)](_0xd848c6,_0x53a1dd[_0xba15cf(0x22f)](_0x39ef07));}else console[_0xba15cf(0x13a)](_0xba15cf(0x23a)+'\x20file\x20'+_0x19d6e5+('\x20not\x20found'+_0xba15cf(0x25c)+_0xba15cf(0x25d)+'r\x20')+_0x4d21ce[_0xba15cf(0x20c)]);}}):_0x5d06cf[_0x26598c(0x234)](_0x46c1ed-_0x5885f2[_0xc3c93c][_0x26598c(0x232)],_0x451f3c)&&delete _0x505cf0[_0x25825e];}),_0x4ac102['on'](_0xc1d4bc(0x1ee),_0x4db473=>{const _0x5ee352=_0xc1d4bc;console[_0x5ee352(0x1ee)](_0x5ee352(0x217)+_0x5ee352(0x25f)+'e\x20stream\x20f'+'rom\x20'+_0x4d21ce[_0x5ee352(0x20c)]+':',_0x4db473),_0x26d804['end'](),_0x1aa795(_0xcca08,_0x19d6e5,_0x4d21ce[_0x5ee352(0x20c)]);});}})['on'](_0x27e5bf[_0x4e6a11(0x1e8)],_0x14def1=>{const _0x3fec54=_0x4e6a11;if(_0x27e5bf[_0x3fec54(0x238)]!==_0x27e5bf[_0x3fec54(0x238)])return{'cacheData':_0x16060a,'isNotModified':!![]};else console[_0x3fec54(0x1ee)](_0x3fec54(0xe4)+_0x3fec54(0x92)+'uest\x20to\x20'+_0x4d21ce[_0x3fec54(0x20c)]+':',_0x14def1),_0x27e5bf[_0x3fec54(0x247)](_0x1aa795,_0xcca08,_0x19d6e5,_0x4d21ce['realUrl']);});};function _0x3f7a2c(_0x5cff65,_0x370e70,_0x288fec,_0x521c79){const _0x371fb6=_0x2201b1,_0x452aeb={'OZzDT':_0x371fb6(0xe0)+'pe','lVfsU':_0x371fb6(0x209)+_0x371fb6(0x25b)+'ream','FrsKE':function(_0x4c7995,_0x24d97d,_0x158306){return _0x4c7995(_0x24d97d,_0x158306);},'nNJyj':function(_0x3b344d,_0x2b4450){return _0x3b344d===_0x2b4450;},'aMIFT':_0x371fb6(0x1f4),'EaQMn':_0x371fb6(0x1fa),'mjrOM':_0x371fb6(0xef),'wqIIR':function(_0x42e233,_0x268855){return _0x42e233!==_0x268855;},'hNxTT':'awMQO','RuiAS':_0x371fb6(0x17f),'QuFoh':function(_0x27d725,_0x4bc3b7,_0x46c3cb,_0x48f288){return _0x27d725(_0x4bc3b7,_0x46c3cb,_0x48f288);},'kZgls':_0x371fb6(0x140)+_0x371fb6(0x105)+_0x371fb6(0x8f),'HZiwE':_0x371fb6(0x204),'eVxdl':'hex','UAncO':_0x371fb6(0x1ac),'rfIek':_0x371fb6(0x24a),'KMeov':_0x371fb6(0x24f)+_0x371fb6(0x24e),'LdvvA':_0x371fb6(0x1c6),'IfUPN':_0x371fb6(0x1df)+_0x371fb6(0x222),'ILKbY':function(_0x18fee3,_0x4957c2,_0x211736){return _0x18fee3(_0x4957c2,_0x211736);},'hZmfQ':function(_0xdfbd86,_0x182bae){return _0xdfbd86===_0x182bae;},'gEjxp':_0x371fb6(0x156),'FGrMe':_0x371fb6(0x1a4),'hHfpY':function(_0x4bbf3c,_0x58fb77){return _0x4bbf3c>_0x58fb77;},'dvLOD':function(_0x5d784a,_0x10fbb8){return _0x5d784a!==_0x10fbb8;},'AYfHM':_0x371fb6(0xcc),'mKzea':_0x371fb6(0x19a),'WCwft':_0x371fb6(0x1d8),'OMvDL':_0x371fb6(0xaa),'pcxCz':'DejNf','wnDnf':function(_0x496c1d,_0x11564d,_0x5ce83d){return _0x496c1d(_0x11564d,_0x5ce83d);},'QjuDE':'open'};if(!_0x5cff65){console[_0x371fb6(0x1ee)](_0x371fb6(0x192)+_0x371fb6(0x16a)+'d\x20with\x20nul'+_0x371fb6(0x148)+_0x371fb6(0x198)+_0x370e70),_0x452aeb[_0x371fb6(0x87)](_0x14aaae,_0x521c79,_0x1ee738[_0x371fb6(0x1b9)+_0x371fb6(0xb7)+'R'],_0x452aeb['kZgls']);return;}const _0x5640f3={'Cloud-Type':_0x5cff65[_0x371fb6(0xd8)]||'unknown','Cloud-Expiration':_0x5cff65[_0x371fb6(0x17b)]||_0x371fb6(0xba),'ETag':_0x5cff65['uniqid']||_0x15cd4e[_0x371fb6(0x1b3)](_0x452aeb['HZiwE'])[_0x371fb6(0x15c)](_0x50ed75[_0x371fb6(0xca)+'nc'](_0x370e70))[_0x371fb6(0x1d0)](_0x452aeb['eVxdl']),'Cache-Control':'public,\x20ma'+'x-age=3153'+'6000','Expires':new Date(Date['now']()+(-0xabf8c46d*-0x4+-0xde1319919+0x1288ffb365))['toUTCStrin'+'g'](),'Accept-Ranges':_0x452aeb[_0x371fb6(0x84)],'Connection':_0x452aeb[_0x371fb6(0xfd)],'Date':new Date()[_0x371fb6(0x11b)+'g'](),'Last-Modified':_0x5cff65[_0x371fb6(0x1a9)]&&_0x5cff65[_0x371fb6(0x1a9)][_0x452aeb['KMeov']]||new Date(_0x50ed75['statSync'](_0x288fec)[_0x371fb6(0x9d)])[_0x371fb6(0x11b)+'g']()};_0x48a8cb[_0x371fb6(0x163)](_0x371fb6(0xc6));const _0x5b311c=_0x50ed75['createRead'+_0x371fb6(0x220)](_0x370e70),_0x2926ad=_0x5cff65[_0x371fb6(0x213)]&&_0x452aeb[_0x371fb6(0x14a)](typeof _0x5cff65[_0x371fb6(0x213)],'string')&&_0x5cff65[_0x371fb6(0x213)][_0x371fb6(0x21c)](_0x452aeb[_0x371fb6(0xde)]);let _0xfaca35=_0x5cff65['headers']&&_0x5cff65[_0x371fb6(0x1a9)][_0x452aeb[_0x371fb6(0x102)]]?_0x452aeb[_0x371fb6(0x211)](parseInt,_0x5cff65[_0x371fb6(0x1a9)][_0x452aeb[_0x371fb6(0x102)]],0x1697+0x24b9+-0x3b46):0x1cb9+0x2f4+-0x1fad;if(!_0xfaca35||_0x452aeb[_0x371fb6(0x166)](_0xfaca35,0x19c9+-0x154e+-0x1*0x47b)){if(_0x452aeb[_0x371fb6(0x97)](_0x452aeb[_0x371fb6(0x9a)],_0x452aeb[_0x371fb6(0x1f2)]))try{const _0x321139=_0x50ed75[_0x371fb6(0xaf)](_0x370e70);_0xfaca35=_0x321139[_0x371fb6(0x24d)];if(_0x452aeb[_0x371fb6(0x171)](_0xfaca35,-0x8*0xc0+0x1*-0x1df7+0x23f7)){if(_0x452aeb[_0x371fb6(0x124)](_0x452aeb[_0x371fb6(0x197)],_0x452aeb[_0x371fb6(0xa2)])){if(!_0x5cff65[_0x371fb6(0x1a9)])_0x5cff65['headers']={};_0x5cff65[_0x371fb6(0x1a9)][_0x452aeb['IfUPN']]=_0xfaca35[_0x371fb6(0x1fb)](),_0x50ed75[_0x371fb6(0xea)+_0x371fb6(0x257)](_0x288fec,JSON[_0x371fb6(0x93)](_0x5cff65)),console[_0x371fb6(0x1dc)](_0x371fb6(0x1d6)+_0x371fb6(0x1f8)+_0x371fb6(0x1b0)+_0x288fec+_0x371fb6(0x233)+_0xfaca35);}else _0xfa7a49[_0x371fb6(0x13a)]('Temp\x20cache'+_0x371fb6(0xc3)+_0x532129+(_0x371fb6(0xf2)+_0x371fb6(0x25c)+_0x371fb6(0x25d)+'r\x20')+_0x2b42d7[_0x371fb6(0x20c)]);}else{if(_0x452aeb['wqIIR'](_0x452aeb[_0x371fb6(0x21d)],_0x452aeb[_0x371fb6(0x1ff)]))console[_0x371fb6(0x13a)]('Cached\x20con'+'tent\x20file\x20'+_0x370e70+(_0x371fb6(0x165)+_0x371fb6(0x1cb)+'failed.'));else{const _0x53559b={..._0x58f597,'Content-Type':_0x51b931[_0x371fb6(0x1a9)]&&_0x217184[_0x371fb6(0x1a9)][_0x452aeb[_0x371fb6(0x1b4)]]||(_0x50d1e3?'video/mp4':_0x452aeb[_0x371fb6(0xf8)]),..._0x486047[_0x371fb6(0x1a9)]||{}};_0x262eb7[_0x371fb6(0xd2)](_0x5563c3['OK'],_0x53559b),_0x132571[_0x371fb6(0x23b)](_0x11323b);}}}catch(_0x3d5ccd){if(_0x452aeb[_0x371fb6(0x14a)](_0x452aeb[_0x371fb6(0x1db)],_0x452aeb[_0x371fb6(0x1db)])){console[_0x371fb6(0x1ee)](_0x371fb6(0xee)+_0x371fb6(0x176)+_0x371fb6(0x158)+_0x371fb6(0x9f)+_0x370e70+':',_0x3d5ccd),_0x452aeb['wnDnf'](_0x57de4a,_0x521c79,_0x370e70);return;}else _0x3bdb5f=_0x5874c8[_0x371fb6(0x19b)][_0x371fb6(0x16d)],_0xd58f76[_0x371fb6(0x1dc)](_0x371fb6(0x206)+_0x371fb6(0x161)+_0x371fb6(0x99)+_0xaa8027);}else{_0x1f58f9['error'](_0x371fb6(0xee)+_0x371fb6(0x176)+_0x371fb6(0x158)+_0x371fb6(0x9f)+_0x4b9a6c+':',_0x301cc0),_0x452aeb['FrsKE'](_0x56a24a,_0x4030f2,_0x170bfa);return;}}_0x5b311c['on'](_0x452aeb['QjuDE'],()=>{const _0xdde313=_0x371fb6;if(_0x452aeb[_0xdde313(0x14a)](_0x452aeb['aMIFT'],_0x452aeb['EaQMn']))_0xbf3a90['writeHead'](_0x2597e2[_0xdde313(0x239)]),_0xb3c659['end']();else{const _0x36a202={..._0x5640f3,'Content-Type':_0x5cff65[_0xdde313(0x1a9)]&&_0x5cff65[_0xdde313(0x1a9)][_0xdde313(0xe0)+'pe']||(_0x2926ad?_0x452aeb[_0xdde313(0xf1)]:_0x452aeb[_0xdde313(0xf8)]),..._0x5cff65[_0xdde313(0x1a9)]||{}};_0x521c79[_0xdde313(0xd2)](_0x1ee738['OK'],_0x36a202),_0x5b311c['pipe'](_0x521c79);}}),_0x5b311c['on'](_0x371fb6(0x1ee),_0x5acaea=>{const _0x5b8c2f=_0x371fb6;console[_0x5b8c2f(0x1ee)]('Read\x20strea'+'m\x20error\x20fo'+'r\x20'+_0x370e70+':',_0x5acaea),_0x452aeb[_0x5b8c2f(0x20f)](_0x57de4a,_0x521c79,_0x370e70);}),_0x521c79['on'](_0x371fb6(0xd7),()=>{const _0x1752f7=_0x371fb6;!_0x521c79[_0x1752f7(0xb0)+_0x1752f7(0x13c)]&&(_0x452aeb[_0x1752f7(0x97)](_0x452aeb[_0x1752f7(0x20e)],_0x452aeb[_0x1752f7(0x23e)])?(console[_0x1752f7(0x1dc)](_0x1752f7(0x134)+_0x1752f7(0x1bd)+_0x1752f7(0x15f)+_0x1752f7(0x201)+'\x20'+_0x370e70+('.\x20Destroyi'+'ng\x20read\x20st'+_0x1752f7(0x12f))),_0x5b311c['destroy']()):(_0x409dd4[_0x1752f7(0xd2)](_0x335192['NOT_MODIFI'+'ED']),_0x1834f6[_0x1752f7(0x228)]()));});}const _0x1aa795=(_0x4e7bb6,_0x4d8ad1,_0x33383b)=>{const _0x1c1d62=_0x2201b1,_0x2c732e={'yFUaJ':_0x1c1d62(0x168)+_0x1c1d62(0xa9),'QYDNE':function(_0x277619,_0x21b137,_0x3b6d20,_0x2b8a89){return _0x277619(_0x21b137,_0x3b6d20,_0x2b8a89);},'lOwxL':_0x1c1d62(0x170),'CTurL':_0x1c1d62(0x18b)};_0x48a8cb['increment'](_0x2c732e[_0x1c1d62(0x23c)]),console[_0x1c1d62(0x1ee)]('Error\x20fetc'+'hing\x20from\x20'+_0x1c1d62(0x18a)+_0x33383b),_0x2c732e[_0x1c1d62(0x127)](_0x14aaae,_0x4e7bb6,_0x1ee738[_0x1c1d62(0x125)+'Y'],'Bad\x20Gatewa'+_0x1c1d62(0x249)+_0x1c1d62(0xd4)+_0x1c1d62(0x154)+_0x33383b);if(_0x50ed75[_0x1c1d62(0x1a3)](_0x4d8ad1)){if(_0x2c732e[_0x1c1d62(0xe8)]!==_0x2c732e[_0x1c1d62(0x100)])try{_0x50ed75[_0x1c1d62(0xf9)](_0x4d8ad1);}catch(_0x431fc9){console[_0x1c1d62(0x1ee)](_0x1c1d62(0x1af)+'nking\x20temp'+'\x20file\x20'+_0x4d8ad1+':',_0x431fc9);}else delete _0x23909c[_0x7a567f];}},_0x57de4a=(_0x2662dd,_0x279fc0)=>{const _0x53c650=_0x2201b1,_0x552296={'vSiif':function(_0x1f5557,_0x37f9ed,_0x292ff3,_0x5b5a71){return _0x1f5557(_0x37f9ed,_0x292ff3,_0x5b5a71);},'qMstM':'Internal\x20S'+_0x53c650(0x15b)+_0x53c650(0x116)+_0x53c650(0x175)+'che\x20conten'+_0x53c650(0x18f)};_0x48a8cb[_0x53c650(0x163)](_0x53c650(0x1e7)+_0x53c650(0x1a2)),console[_0x53c650(0x1ee)]('Error\x20read'+_0x53c650(0x176)+'file:\x20'+_0x279fc0),_0x552296[_0x53c650(0x11a)](_0x14aaae,_0x2662dd,_0x1ee738[_0x53c650(0x1b9)+_0x53c650(0xb7)+'R'],_0x552296[_0x53c650(0x22e)]);};_0x10290f[_0x2201b1(0x90)](_0x565d94,()=>{const _0xf0c2d6=_0x2201b1;console[_0xf0c2d6(0x1dc)](_0xf0c2d6(0x12c)+_0xf0c2d6(0x1a6)+_0xf0c2d6(0x119)+_0xf0c2d6(0x8d)+'ost:'+_0x565d94);}),process['on'](_0x2201b1(0x12b),()=>{const _0x107e6a=_0x2201b1,_0xfc35c={'DKVrQ':_0x107e6a(0x1fd)+_0x107e6a(0x1c5),'GhsIq':'applicatio'+_0x107e6a(0x1c2)+_0x107e6a(0x1a1)+'8','PMceo':function(_0x12c867,_0x2ee189){return _0x12c867===_0x2ee189;},'AklOu':'dmkqr','eEWtL':_0x107e6a(0x1b2)+_0x107e6a(0x22a),'lETPe':_0x107e6a(0x182)+_0x107e6a(0x1bc)+_0x107e6a(0x1d9)+'\x20gracefull'+_0x107e6a(0x215),'lGdQD':function(_0xe355e8,_0x50928b,_0x414c5e){return _0xe355e8(_0x50928b,_0x414c5e);}};console[_0x107e6a(0x1dc)](_0xfc35c[_0x107e6a(0x8b)]),_0x10290f['close'](()=>{const _0x305945=_0x107e6a;console[_0x305945(0x1dc)](_0xfc35c[_0x305945(0x173)]),process[_0x305945(0x13e)](0x1579+0x1331+-0x28aa);}),_0xfc35c[_0x107e6a(0xb5)](setTimeout,()=>{const _0x453289=_0x107e6a;if(_0xfc35c[_0x453289(0xa5)](_0x453289(0x1ea),_0xfc35c['AklOu']))console['error'](_0xfc35c[_0x453289(0x246)]),process[_0x453289(0x13e)](0x2273+-0x1f5+-0x207d);else{if(_0x2088f0[_0x453289(0x19b)][_0x453289(0x16d)]){const _0x28528d=/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w.-]*)*\/?$/;_0x28528d[_0x453289(0x1dd)](_0x4a9448[_0x453289(0x19b)][_0x453289(0x16d)])&&(_0x498c73=_0x59ae36[_0x453289(0x19b)][_0x453289(0x16d)],_0x4f35e4[_0x453289(0x1dc)](_0x453289(0x206)+_0x453289(0x161)+_0x453289(0x99)+_0x2c36f4));}_0x3743f1[_0x453289(0xd2)](_0x4468e5['OK'],{'Content-Type':_0xfc35c[_0x453289(0x80)]}),_0x4d9f40[_0x453289(0x228)](_0x4deaf7[_0x453289(0x93)]({'code':_0x36929a['OK'],'data':{'api':_0x3d774b,'port':_0x2514ac,'cacheDir':_0x26542b,'pathIndexCount':_0x455df8[_0x453289(0x20d)](_0x573f92)[_0x453289(0xf6)],'viewsInfo':{'request':_0x4d68e5['request'],'cacheHit':_0x446a96[_0x453289(0x101)],'apiCall':_0x303f89['apiCall'],'cacheCall':_0x4bc77d[_0x453289(0xc6)],'cacheReadError':_0x33f4af[_0x453289(0x1e7)+_0x453289(0x1a2)],'fetchApiError':_0x3cef8f[_0x453289(0x168)+'ror'],'fetchApiWarning':_0x98830[_0x453289(0x207)+_0x453289(0x11f)]}}}));}},0x4b2e+-0xd02*-0x6+0x1307*-0x6);}); \ No newline at end of file diff --git a/index.php b/index.php index e4ddffb..b5de43f 100644 --- a/index.php +++ b/index.php @@ -2,12 +2,36 @@ use Swoole\Coroutine\Http\Server; use Swoole\Coroutine\Http\Client; -use Swoole\Coroutine; +use function Swoole\Coroutine\run; -$port = 9001; -$apiEndpoint = 'https://oss.x-php.com/get/'; -$cacheDir = __DIR__ . '/.cache'; +// 常量定义 +const CACHE_DIR_NAME = '.cache'; +const DEFAULT_PORT = 9001; +const DEFAULT_API_ENDPOINT = 'http://183.6.121.121:9519/api'; +const CACHE_EXPIRY_MS = 24 * 60 * 60 * 1000; // 24小时 +const CACHE_CLEANUP_INTERVAL_MS = 60 * 60 * 1000; // 1小时 +const API_TIMEOUT_MS = 5000; +const USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36'; + +// HTTP状态码 +const HTTP_STATUS = [ + 'OK' => 200, + 'NO_CONTENT' => 204, + 'REDIRECT' => 302, + 'NOT_MODIFIED' => 304, + 'BAD_REQUEST' => 400, + 'NOT_FOUND' => 404, + 'INTERNAL_SERVER_ERROR' => 500, + 'BAD_GATEWAY' => 502, +]; + +// 初始化变量 +$cacheDir = __DIR__ . '/' . CACHE_DIR_NAME; $pathIndex = []; +$port = DEFAULT_PORT; +$apiEndpoint = DEFAULT_API_ENDPOINT; + +// 访问计数器 $viewsInfo = [ 'request' => 0, 'cacheHit' => 0, @@ -18,137 +42,501 @@ $viewsInfo = [ 'fetchApiWarning' => 0, ]; -// Ensure cache directory exists -if (!is_dir($cacheDir)) { - mkdir($cacheDir, 0777, true); +// 解析命令行参数 +function parseArguments() { + global $port, $apiEndpoint; + + $options = getopt('', ['port:', 'api:']); + + if (isset($options['port'])) { + $parsedPort = intval($options['port']); + if ($parsedPort > 0) { + $port = $parsedPort; + } + } + + if (isset($options['api'])) { + $apiEndpoint = $options['api']; + } } -Swoole\Coroutine\run(function () use ($port, $apiEndpoint, $cacheDir, &$pathIndex, &$viewsInfo) { - $server = new Server('0.0.0.0', $port, false); +// 初始化应用 +function initializeApp() { + global $cacheDir; - $server->set([ - 'daemonize' => true, + parseArguments(); + + if (!file_exists($cacheDir)) { + try { + mkdir($cacheDir, 0777, true); + echo "Cache directory created: {$cacheDir}\n"; + } catch (Exception $e) { + echo "Error creating cache directory {$cacheDir}: " . $e->getMessage() . "\n"; + exit(1); + } + } +} + +// 发送错误响应 +function sendErrorResponse($res, int $statusCode, string $message) { + if (!$res->isWritable()) { + return; + } + $res->status($statusCode); + $res->header('Content-Type', 'text/plain;charset=UTF-8'); + $res->end($message); +} + +// 处理favicon请求 +function handleFavicon($req, $res) { + $res->status(HTTP_STATUS['NO_CONTENT']); + $res->end(); +} + +// 处理endpoint请求 +function handleEndpoint($req, $res, array $queryParams) { + global $apiEndpoint, $port, $cacheDir, $pathIndex, $viewsInfo; + + if (isset($queryParams['api'])) { + $urlRegex = '/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w.-]*)*\/?$/'; + if (preg_match($urlRegex, $queryParams['api'])) { + $apiEndpoint = $queryParams['api']; + echo "API endpoint updated to: {$apiEndpoint}\n"; + } + } + + $res->status(HTTP_STATUS['OK']); + $res->header('Content-Type', 'application/json; charset=utf-8'); + $res->end(json_encode([ + 'code' => HTTP_STATUS['OK'], + 'data' => [ + 'api' => $apiEndpoint, + 'port' => $port, + 'cacheDir' => $cacheDir, + 'pathIndexCount' => count($pathIndex), + 'viewsInfo' => $viewsInfo + ] + ])); +} + +// 处理API重定向 +function handleApiRedirect($res, array $apiData) { + $res->status(HTTP_STATUS['REDIRECT']); + $res->header('Location', $apiData['data']['url']); + $res->end(); +} + +// 检查缓存头并返回是否为304 +function checkCacheHeaders($req, string $cacheMetaFile) { + try { + $metaContent = file_get_contents($cacheMetaFile); + $cacheData = json_decode($metaContent, true); + $ifNoneMatch = isset($req->header['if-none-match']) ? $req->header['if-none-match'] : null; + $ifModifiedSince = isset($req->header['if-modified-since']) ? $req->header['if-modified-since'] : null; + + // 检查ETag + if ($ifNoneMatch && isset($cacheData['uniqid']) && $ifNoneMatch === $cacheData['uniqid']) { + return ['cacheData' => $cacheData, 'isNotModified' => true]; + } + + // 检查If-Modified-Since + if ($ifModifiedSince && isset($cacheData['headers']['last-modified'])) { + try { + $lastModifiedDate = strtotime($cacheData['headers']['last-modified']); + $ifModifiedSinceDate = strtotime($ifModifiedSince); + + if ($lastModifiedDate <= $ifModifiedSinceDate) { + return ['cacheData' => $cacheData, 'isNotModified' => true]; + } + } catch (Exception $e) { + echo "Error parsing date for cache header check ({$cacheMetaFile}): " . $e->getMessage() . "\n"; + } + } + + return ['cacheData' => $cacheData, 'isNotModified' => false]; + } catch (Exception $e) { + echo "Error reading or parsing cache meta file {$cacheMetaFile} in checkCacheHeaders: " . $e->getMessage() . "\n"; + return ['cacheData' => null, 'isNotModified' => false]; + } +} + +// 检查缓存是否有效 +function isCacheValid(string $cacheMetaFile, string $cacheContentFile) { + if (!file_exists($cacheMetaFile) || !file_exists($cacheContentFile)) { + return false; + } + + try { + $metaContent = file_get_contents($cacheMetaFile); + $cacheData = json_decode($metaContent, true); + + return isset($cacheData['expiration']) && is_numeric($cacheData['expiration']) && $cacheData['expiration'] > time() * 1000; + } catch (Exception $e) { + echo "Error reading or parsing cache meta file {$cacheMetaFile} for validation: " . $e->getMessage() . "\n"; + return false; + } +} + +// 从API获取数据 +function fetchApiData(string $reqPath, string $token, string $sign) { + global $apiEndpoint; + + $queryParams = http_build_query([ + 'type' => $reqPath, + 'sign' => $sign ]); - $server->handle('/', function ($request, $response) use ($apiEndpoint, $cacheDir, &$pathIndex, &$viewsInfo) { - $viewsInfo['request']++; + $apiUrl = "{$apiEndpoint}?{$queryParams}"; + $parsedApiUrl = parse_url($apiUrl); - $uri = $request->server['request_uri']; - $parsedUrl = parse_url($uri); - parse_str($parsedUrl['query'] ?? '', $query); + $client = new Client($parsedApiUrl['host'], $parsedApiUrl['port'] ?? ($parsedApiUrl['scheme'] === 'https' ? 443 : 80), $parsedApiUrl['scheme'] === 'https'); + $client->setHeaders([ + 'Accept' => 'application/json; charset=utf-8', + 'User-Agent' => USER_AGENT, + 'token' => $token + ]); + $client->set(['timeout' => API_TIMEOUT_MS / 1000]); - $reqPath = explode('/', trim($parsedUrl['path'], '/'))[0] ?? ''; - $token = implode('/', array_slice(explode('/', trim($parsedUrl['path'], '/')), 1)); + $path = isset($parsedApiUrl['path']) ? $parsedApiUrl['path'] : '/'; + if (isset($parsedApiUrl['query'])) { + $path .= '?' . $parsedApiUrl['query']; + } - if ($reqPath === 'endpoint') { - return sendJsonResponse($response, [ - 'code' => 200, - 'data' => [ - 'api' => $apiEndpoint, - 'port' => $port, - 'cacheDir' => $cacheDir, - 'pathIndexCount' => count($pathIndex), - 'viewsInfo' => $viewsInfo, - ], - ]); + $client->get($path); + + if ($client->statusCode >= 400) { + echo "API request to {$apiUrl} failed with status {$client->statusCode}: {$client->body}\n"; + $errorPayload = ['code' => $client->statusCode, 'message' => "API Error: {$client->statusCode}"]; + + try { + $parsedError = json_decode($client->body, true); + if ($parsedError && isset($parsedError['message'])) { + $errorPayload['message'] = $parsedError['message']; + } + } catch (Exception $e) { + // Ignore if response is not JSON } - if (empty($token) || $token === 'undefined') { - $token = $reqPath; - $reqPath = 'go'; + return $errorPayload; + } + + try { + return json_decode($client->body, true); + } catch (Exception $e) { + echo "Error parsing JSON response from {$apiUrl}: " . $e->getMessage() . ", {$client->body}\n"; + throw new Exception("Failed to parse API response: " . $e->getMessage()); + } +} + +// 从缓存中读取数据并返回 +function serveFromCache(array $cacheData, string $cacheContentFile, string $cacheMetaFile, $res) { + global $viewsInfo; + + if (!$cacheData) { + echo "serveFromCache called with null cacheData for {$cacheContentFile}\n"; + sendErrorResponse($res, HTTP_STATUS['INTERNAL_SERVER_ERROR'], 'Cache metadata unavailable.'); + return; + } + + $viewsInfo['cacheCall']++; + + try { + $fileContent = file_get_contents($cacheContentFile); + + if ($fileContent === false) { + throw new Exception("Failed to read cache file"); } - if (!in_array($reqPath, ['avatar', 'go', 'bbs', 'www', 'url', 'thumb'])) { - return sendErrorResponse($response, 404, 'Not Found'); + $baseHeaders = [ + 'Cloud-Type' => $cacheData['cloudtype'] ?? 'unknown', + 'Cloud-Expiration' => $cacheData['expiration'] ?? 0, + 'ETag' => $cacheData['uniqid'] ?? '', + 'Cache-Control' => 'public, max-age=31536000', + 'Expires' => gmdate('D, d M Y H:i:s', time() + 31536000) . ' GMT', + 'Accept-Ranges' => 'bytes', + 'Connection' => 'keep-alive', + 'Date' => gmdate('D, d M Y H:i:s') . ' GMT', + 'Last-Modified' => isset($cacheData['headers']['last-modified']) ? $cacheData['headers']['last-modified'] : gmdate('D, d M Y H:i:s', filemtime($cacheMetaFile)) . ' GMT', + ]; + + $isVideo = isset($cacheData['path']) && is_string($cacheData['path']) && strpos($cacheData['path'], '.mp4') !== false; + $contentType = isset($cacheData['headers']['Content-Type']) ? $cacheData['headers']['Content-Type'] : ($isVideo ? 'video/mp4' : 'application/octet-stream'); + + $responseHeaders = array_merge($baseHeaders, [ + 'Content-Type' => $contentType, + ]); + + foreach ($responseHeaders as $key => $value) { + $res->header($key, $value); } - if (!$token) { - return sendErrorResponse($response, 400, 'Bad Request: Missing Token or path'); + $res->status(HTTP_STATUS['OK']); + $res->end($fileContent); + } catch (Exception $e) { + $viewsInfo['cacheReadError']++; + echo "Error reading from cache {$cacheContentFile}: " . $e->getMessage() . "\n"; + sendErrorResponse($res, HTTP_STATUS['INTERNAL_SERVER_ERROR'], "Failed to read from cache: " . $e->getMessage()); + } +} + +// 从真实URL获取数据并写入缓存 +function fetchAndServe(array $data, string $tempCacheContentFile, string $cacheContentFile, string $cacheMetaFile, $res) { + global $viewsInfo; + + $parsedUrl = parse_url($data['realUrl']); + $client = new Client($parsedUrl['host'], $parsedUrl['port'] ?? ($parsedUrl['scheme'] === 'https' ? 443 : 80), $parsedUrl['scheme'] === 'https'); + $client->setHeaders([ + 'User-Agent' => USER_AGENT + ]); + + $path = isset($parsedUrl['path']) ? $parsedUrl['path'] : '/'; + if (isset($parsedUrl['query'])) { + $path .= '?' . $parsedUrl['query']; + } + + $client->get($path); + + if ($client->statusCode !== 200) { + echo "Error fetching from {$data['realUrl']}: HTTP status {$client->statusCode}\n"; + sendErrorResponse($res, HTTP_STATUS['BAD_GATEWAY'], "Bad Gateway: Failed to fetch content from source"); + return; + } + + $isVideo = isset($data['path']) && is_string($data['path']) && strpos($data['path'], '.mp4') !== false; + + // 检查content-length + $contentLength = isset($client->headers['content-length']) ? $client->headers['content-length'] : null; + if ($contentLength) { + // contentLength小于2KB且与缓存文件大小不一致时,重新获取 + if ($contentLength < 2048 && isset($data['headers']['content-length']) && $data['headers']['content-length'] !== $contentLength) { + echo "Warning: content-length is different for the response from: {$data['realUrl']}\n"; + sendErrorResponse($res, HTTP_STATUS['BAD_GATEWAY'], "Bad Gateway: Content-Length mismatch for {$data['realUrl']}"); + return; } + // 更新data到缓存cacheMetaFile + file_put_contents($cacheMetaFile, json_encode($data)); + } else { + echo "Warning: content-length is undefined for the response from: {$data['realUrl']}\n"; + } - $uniqidhex = md5($reqPath . $token . ($query['sign'] ?? '')); + // 写入临时缓存文件 + file_put_contents($tempCacheContentFile, $client->body); - if (isset($pathIndex[$uniqidhex]) && isCacheValid($cacheDir, $pathIndex[$uniqidhex])) { + // 重命名临时文件为正式缓存文件 + try { + $targetDir = dirname($cacheContentFile); + if (!file_exists($targetDir)) { + mkdir($targetDir, 0777, true); + } + rename($tempCacheContentFile, $cacheContentFile); + echo "Successfully cached: {$cacheContentFile}\n"; + } catch (Exception $e) { + echo "Error renaming temp cache file {$tempCacheContentFile} to {$cacheContentFile}: " . $e->getMessage() . "\n"; + // 如果重命名失败,尝试删除临时文件以避免混乱 + if (file_exists($tempCacheContentFile)) { + unlink($tempCacheContentFile); + } + } + + $baseHeaders = [ + 'Cloud-Type' => $data['cloudtype'] ?? 'unknown', + 'Cloud-Expiration' => $data['expiration'] ?? 0, + 'ETag' => $data['uniqid'] ?? '', + 'Cache-Control' => 'public, max-age=31536000', + 'Expires' => gmdate('D, d M Y H:i:s', time() + 31536000) . ' GMT', + 'Accept-Ranges' => 'bytes', + 'Connection' => 'keep-alive', + 'Date' => gmdate('D, d M Y H:i:s') . ' GMT', + 'Last-Modified' => isset($data['headers']['last-modified']) ? + $data['headers']['last-modified'] : + gmdate('D, d M Y H:i:s', filemtime($cacheMetaFile)) . ' GMT', + ]; + + $responseHeaders = array_merge($baseHeaders, [ + 'Content-Type' => isset($client->headers['content-type']) ? $client->headers['content-type'] : ($isVideo ? 'video/mp4' : 'application/octet-stream'), + ], $data['headers']); + + foreach ($responseHeaders as $key => $value) { + $res->header($key, $value); + } + + $res->status(HTTP_STATUS['OK']); + $res->end($client->body); +} + +// 尝试从过期缓存提供服务或返回错误 +function tryServeFromStaleCacheOrError(string $uniqidhex, $res, string $errorMessage = null) { + global $pathIndex, $cacheDir; + + if (isset($pathIndex[$uniqidhex])) { + $cacheMetaFile = $cacheDir . '/' . $uniqidhex . '.meta'; + $cacheContentFile = $cacheDir . '/' . $pathIndex[$uniqidhex]['uniqid'] . '.content'; + + if (file_exists($cacheMetaFile) && file_exists($cacheContentFile)) { + echo "API call failed or returned non-200. Serving stale cache for {$uniqidhex}\n"; + + try { + $cacheData = json_decode(file_get_contents($cacheMetaFile), true); + serveFromCache($cacheData, $cacheContentFile, $cacheMetaFile, $res); + return; + } catch (Exception $e) { + echo "Error parsing stale meta file {$cacheMetaFile}: " . $e->getMessage() . "\n"; + // 如果过期缓存也损坏,则返回通用错误 + } + } + } + + sendErrorResponse($res, HTTP_STATUS['BAD_GATEWAY'], $errorMessage ?: 'Bad Gateway'); +} + +// 处理主请求 +function handleMainRequest($req, $res) { + global $pathIndex, $cacheDir, $viewsInfo; + + $url = preg_replace('/\/{2,}/', '/', $req->server['request_uri']); + $parsedUrl = parse_url($url); + $queryParams = []; + + if (isset($parsedUrl['query'])) { + parse_str($parsedUrl['query'], $queryParams); + } + + $sign = $queryParams['sign'] ?? ''; + $pathParts = explode('/', trim($parsedUrl['path'], '/')); + $reqPath = $pathParts[0] ?? ''; + $token = implode('/', array_slice($pathParts, 1)); + + if ($reqPath === 'favicon.ico') { + return handleFavicon($req, $res); + } + + if ($reqPath === 'endpoint') { + return handleEndpoint($req, $res, $queryParams); + } + + if (!$token && $reqPath) { + $token = $reqPath; + $reqPath = 'app'; // 默认为'app',如果只提供了一个路径段 + } + + $allowedPaths = ['avatar', 'go', 'bbs', 'www', 'url', 'thumb', 'app']; + if (!in_array($reqPath, $allowedPaths) || !$token) { + return sendErrorResponse($res, HTTP_STATUS['BAD_REQUEST'], "Bad Request: Invalid path or missing token."); + } + + $viewsInfo['request']++; + $uniqidhex = md5($reqPath . $token . $sign); + $cacheMetaFile = ''; + $cacheContentFile = ''; + + if (isset($pathIndex[$uniqidhex])) { + $cacheMetaFile = $cacheDir . '/' . $uniqidhex . '.meta'; + $cacheContentFile = $cacheDir . '/' . $pathIndex[$uniqidhex]['uniqid'] . '.content'; + } + + if (isset($pathIndex[$uniqidhex]) && isCacheValid($cacheMetaFile, $cacheContentFile)) { + $cacheResult = checkCacheHeaders($req, $cacheMetaFile); + + if ($cacheResult['isNotModified']) { + $res->status(HTTP_STATUS['NOT_MODIFIED']); + $res->end(); + } else { $viewsInfo['cacheHit']++; - return serveFromCache($cacheDir, $pathIndex[$uniqidhex], $response); + serveFromCache($cacheResult['cacheData'], $cacheContentFile, $cacheMetaFile, $res); } + } else { + try { + $viewsInfo['apiCall']++; + $apiData = fetchApiData($reqPath, $token, $sign); - $viewsInfo['apiCall']++; - fetchApiData($apiEndpoint, $reqPath, $token, $query['sign'] ?? '', function ($apiData) use ($cacheDir, &$pathIndex, $uniqidhex, $response) { - if ($apiData['code'] === 200 && isset($apiData['data']['url'])) { - $pathIndex[$uniqidhex] = $uniqidhex; + if (isset($apiData['code']) && ($apiData['code'] === HTTP_STATUS['REDIRECT'] || $apiData['code'] === 301)) { + return handleApiRedirect($res, $apiData); + } - if (isCacheValid($cacheDir, $uniqidhex)) { - serveFromCache($cacheDir, $uniqidhex, $response); + if (isset($apiData['code']) && $apiData['code'] === HTTP_STATUS['OK'] && isset($apiData['data']) && isset($apiData['data']['url'])) { + $data = [ + 'realUrl' => $apiData['data']['url'], + 'cloudtype' => $apiData['data']['cloudtype'] ?? '', + 'expiration' => isset($apiData['data']['expiration']) ? $apiData['data']['expiration'] * 1000 : 0, + 'path' => $apiData['data']['path'] ?? '', + 'headers' => $apiData['data']['headers'] ?? [], + 'uniqid' => $apiData['data']['uniqid'] ?? '', + 'thumb' => $apiData['data']['thumb'] ?? '' + ]; + + $pathIndex[$uniqidhex] = ['uniqid' => $data['uniqid'], 'timestamp' => time() * 1000]; + $cacheMetaFile = $cacheDir . '/' . $uniqidhex . '.meta'; + $cacheContentFile = $cacheDir . '/' . $data['uniqid'] . '.content'; + $tempCacheContentFile = $cacheDir . '/' . $data['uniqid'] . '_' . bin2hex(random_bytes(16)) . '.temp'; + + try { + file_put_contents($cacheMetaFile, json_encode($data)); + } catch (Exception $e) { + echo "Error writing meta file {$cacheMetaFile}: " . $e->getMessage() . "\n"; + sendErrorResponse($res, HTTP_STATUS['INTERNAL_SERVER_ERROR'], 'Failed to write cache metadata.'); return; } - // 写入缓存 - file_put_contents("$cacheDir/$uniqidhex.meta", json_encode($apiData['data'])); - - // 获取文件内容, curl - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $apiData['data']['url']); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 50); - $fileContent = curl_exec($ch); - curl_close($ch); - file_put_contents("$cacheDir/$uniqidhex.content", $fileContent); - - serveFromCache($cacheDir, $uniqidhex, $response); + if (file_exists($cacheContentFile)) { + $contentLength = filesize($cacheContentFile); + if ($contentLength < 2048 && isset($data['headers']['content-length']) && intval($data['headers']['content-length']) !== $contentLength) { + echo "Content length mismatch for {$cacheContentFile}. API: {$data['headers']['content-length']}, Cache: {$contentLength}. Re-fetching.\n"; + fetchAndServe($data, $tempCacheContentFile, $cacheContentFile, $cacheMetaFile, $res); + } else { + serveFromCache($data, $cacheContentFile, $cacheMetaFile, $res); + } + } else { + fetchAndServe($data, $tempCacheContentFile, $cacheContentFile, $cacheMetaFile, $res); + } } else { - sendErrorResponse($response, 502, 'Bad Gateway: ' . json_encode($apiData)); + $viewsInfo['fetchApiWarning']++; + tryServeFromStaleCacheOrError($uniqidhex, $res, $apiData['message'] ?? null); } - }); + } catch (Exception $e) { + $viewsInfo['fetchApiError']++; + echo "Error in API call or processing: " . $e->getMessage() . "\n"; + tryServeFromStaleCacheOrError($uniqidhex, $res, "Bad Gateway: API request failed. " . $e->getMessage()); + } + } +} + +// 定时清理过期缓存数据 +function cleanupExpiredCache() { + global $pathIndex; + + $currentTime = time() * 1000; + foreach ($pathIndex as $key => $value) { + if ($currentTime - $value['timestamp'] > CACHE_EXPIRY_MS) { + unset($pathIndex[$key]); + } + } +} + +// 主函数 +function main() { + global $port; + + initializeApp(); + + // 创建服务器 + $server = new Server('0.0.0.0', $port); + + echo "Server started at http://0.0.0.0:{$port}\n"; + + // 设置定时器清理过期缓存 + Swoole\Timer::tick(CACHE_CLEANUP_INTERVAL_MS, function () { + cleanupExpiredCache(); }); + // 处理请求 + $server->handle('/', function ($req, $res) { + handleMainRequest($req, $res); + }); $server->start(); +} + +// 启动服务器 +run(function () { + main(); }); - -function isCacheValid($cacheDir, $cacheFile) { - return file_exists("$cacheDir/$cacheFile.meta") && file_exists("$cacheDir/$cacheFile.content"); -} - -function serveFromCache($cacheDir, $cacheFile, $response) { - $cacheData = json_decode(file_get_contents("$cacheDir/$cacheFile.meta"), true); - $response->header('Content-Type', $cacheData['headers']['Content-Type'] ?? 'application/octet-stream'); - $response->header('Cloud-Type', $cacheData['cloudtype']); - $response->header('Cloud-Expiration', $cacheData['expiration']); - $response->header('ETag', $cacheData['uniqid'] ?? ''); - $response->header('Cache-Control', 'public, max-age=31536000'); - $response->header('Expires', gmdate('D, d M Y H:i:s', time() + 31536000000) . ' GMT'); - $response->header('Accept-Ranges', 'bytes'); - $response->header('Connection', 'keep-alive'); - $response->header('Date', gmdate('D, d M Y H:i:s') . ' GMT'); - $response->header('Last-Modified', gmdate('D, d M Y H:i:s') . ' GMT'); - - // 高效的读取文件 - $file = fopen("$cacheDir/$cacheFile.content", 'r'); - $response->end(fread($file, filesize("$cacheDir/$cacheFile.content"))); - fclose($file); -} - -function fetchApiData($apiEndpoint, $reqPath, $token, $sign, $callback) { - Coroutine::create(function () use ($apiEndpoint, $reqPath, $token, $sign, $callback) { - $client = new Client(parse_url($apiEndpoint, PHP_URL_HOST), 443, true); - $client->setHeaders([ - 'Accept' => 'application/json', - 'User-Agent' => 'Swoole-Client', - 'token' => $token, - ]); - $client->get(parse_url($apiEndpoint, PHP_URL_PATH) . "?type=$reqPath&sign=$sign"); - $callback(json_decode($client->body, true)); - $client->close(); - }); -} - -function sendJsonResponse($response, $data) { - $response->header('Content-Type', 'application/json'); - $response->end(json_encode($data)); -} - -function sendErrorResponse($response, $status, $message) { - $response->status($status); - $response->end($message); -} diff --git a/install.sh b/install.sh deleted file mode 100644 index b88ebbd..0000000 --- a/install.sh +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/bash - -# Determine OS and architecture -OS=$(uname -s) -ARCH=$(uname -m) - -# swoole-cli 版本号 -VERSION="5.1.4" - -# Set the download URL based on OS and architecture -case "$OS" in - Linux) - case "$ARCH" in - arm64) - FILE_URL="https://wenda-1252906962.file.myqcloud.com/dist/swoole-cli-v${VERSION}-linux-arm64.tar.xz" - ;; - x86_64) - FILE_URL="https://wenda-1252906962.file.myqcloud.com/dist/swoole-cli-v${VERSION}-linux-x64.tar.xz" - ;; - *) - echo "Unsupported architecture: $ARCH" - exit 1 - ;; - esac - ;; - Darwin) - case "$ARCH" in - arm64) - FILE_URL="https://wenda-1252906962.file.myqcloud.com/dist/swoole-cli-v${VERSION}-macos-arm64.tar.xz" - ;; - x86_64) - FILE_URL="https://wenda-1252906962.file.myqcloud.com/dist/swoole-cli-v${VERSION}-macos-x64.tar.xz" - ;; - *) - echo "Unsupported architecture: $ARCH" - exit 1 - ;; - esac - ;; - *) - echo "Unsupported OS: $OS" - exit 1 - ;; -esac - -# Check if Node.js is installed -if command -v node &> /dev/null; then - echo "Node.js is installed. Proceeding with Node.js script setup." - - # Download the Node.js proxy script - echo "Downloading index.js..." - if ! curl -o "index.js" "https://git.x-php.com/XiaoMo/alist-proxy/raw/branch/master/index.js"; then - echo "Failed to download index.js. Please check your internet connection and try again." - exit 1 - fi - - # Run the Node.js proxy service - echo "Running Node.js proxy service..." - nohup node index.js > /dev/null 2>&1 & - echo "Node.js proxy service running in the background. You can check the logs with 'tail -f nohup.out'." -else - echo "Node.js is not installed. Proceeding with swoole-cli setup." - - # Set the fixed file name - FILE_NAME="swoole-cli.tar.xz" - - # Create a temporary directory - TEMP_DIR=$(mktemp -d) - mkdir -p "$TEMP_DIR" - - # Download the file to the temporary directory - echo "Downloading $FILE_NAME from $FILE_URL to $TEMP_DIR..." - if ! curl -o "$TEMP_DIR/$FILE_NAME" "$FILE_URL"; then - echo "Download failed. Please check your internet connection and try again." - exit 1 - fi - - # Verify the download - if [ ! -f "$TEMP_DIR/$FILE_NAME" ]; then - echo "Downloaded file not found in $TEMP_DIR. Download may have failed." - exit 1 - fi - - # Extract the file to the temporary directory - tar -xf "$TEMP_DIR/$FILE_NAME" -C "$TEMP_DIR" || { - echo "Extraction failed. Please make sure you have the necessary tools to extract the file." - exit 1 - } - - # Move the extracted file to the current directory - mv "$TEMP_DIR"/swoole-cli . - - # Remove unnecessary files - echo "Removing unnecessary files..." - rm -rf "$TEMP_DIR" - - # Check if index.php file exists, if not, download it - if [ ! -f "index.php" ]; then - echo "Downloading index.php..." - if ! curl -o "index.php" "https://git.x-php.com/XiaoMo/alist-proxy/raw/branch/master/index.php"; then - echo "Failed to download index.php. Please check your internet connection and try again." - exit 1 - fi - fi - - # Run the PHP indexer - echo "Running PHP indexer..." - nohup ./swoole-cli ./index.php > /dev/null 2>&1 & - echo "PHP indexer running in the background. You can check the logs with 'tail -f nohup.out'." -fi diff --git a/package.json b/package.json index 1a32e26..c91b04d 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,5 @@ { "dependencies": { - "javascript-obfuscator": "^4.1.1", - "sharp": "^0.34.2" - }, - "devDependencies": { - "webpack": "^5.99.9", - "webpack-cli": "^4.10.0", - "webpack-obfuscator": "^3.5.1" - }, - "scripts": { - "build": "webpack", - "start": "node index.js" + "javascript-obfuscator": "^4.1.1" } } diff --git a/source.js b/source.js index ff579f9..53b6d53 100644 --- a/source.js +++ b/source.js @@ -5,11 +5,10 @@ const querystring = require('querystring'); const fs = require('fs'); const pathModule = require('path'); const crypto = require('crypto'); -const sharp = require('sharp'); const CACHE_DIR_NAME = '.cache'; const DEFAULT_PORT = 9001; -const DEFAULT_API_ENDPOINT = 'http://183.6.121.121:9521/alist'; +const DEFAULT_API_ENDPOINT = 'http://183.6.121.121:9519/api'; const cacheDir = pathModule.join(__dirname, CACHE_DIR_NAME); const pathIndex = {}; @@ -375,23 +374,6 @@ async function fetchApiData(reqPath, token, sign) { }); } -// createThumbnail -function createThumbnail(data, cacheContentFile) { - const { path, thumb } = data; - - const thumbCacheFile = pathModule.join(cacheDir, `thumb_${thumb.uniqid}.jpeg`); - if (fs.existsSync(thumbCacheFile)) return thumbCacheFile; - - const isVideo = path && typeof path === 'string' && path.includes('.mp4'); - if (isVideo || !thumb) return; - const width = thumb.width && thumb.width > 0 ? thumb.width : undefined; - const height = thumb.height && thumb.height > 0 ? thumb.height : undefined; - if (!width) return; - sharp(cacheContentFile).resize(width, height).toFile(thumbCacheFile); - return thumbCacheFile; -} - - // 从真实 URL 获取数据并写入缓存 const REAL_URL_FETCH_TIMEOUT_MS = 0; // 0 means no timeout for the actual file download @@ -457,10 +439,6 @@ const fetchAndServe = (data, tempCacheContentFile, cacheContentFile, cacheMetaFi fs.renameSync(tempCacheContentFile, cacheContentFile); console.log(`Successfully cached: ${cacheContentFile}`); - // 生成缩略图 - if (data.thumb) { - createThumbnail(data, cacheContentFile); - } } catch (renameError) { console.error(`Error renaming temp cache file ${tempCacheContentFile} to ${cacheContentFile}:`, renameError); // If rename fails, try to remove the temp file to avoid clutter @@ -505,22 +483,6 @@ function serveFromCache(cacheData, cacheContentFile, cacheMetaFile, res) { 'Date': new Date().toUTCString(), 'Last-Modified': (cacheData.headers && cacheData.headers['last-modified']) || new Date(fs.statSync(cacheMetaFile).mtime).toUTCString(), }; - if (cacheData.thumb) { - var thumbCacheFile = createThumbnail(cacheData, cacheContentFile) - if (thumbCacheFile && fs.existsSync(thumbCacheFile)) { - cacheData.headers['content-length'] = fs.statSync(thumbCacheFile).size; - const responseHeaders = { - ...baseHeaders, - ...(cacheData.headers || {}), - 'ETag': (cacheData.thumb.uniqid || cacheData.uniqid) + '_thumb', - 'Content-Type': 'image/jpeg', - }; - res.writeHead(HTTP_STATUS.OK, responseHeaders); - const thumbStream = fs.createReadStream(thumbCacheFile); - thumbStream.pipe(res); - return; - } - } viewsInfo.increment('cacheCall'); const readStream = fs.createReadStream(cacheContentFile); diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 2a21fab..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,30 +0,0 @@ -const path = require('path'); -const WebpackObfuscator = require('webpack-obfuscator'); - -module.exports = { - entry: './source.js', - target: 'node', - output: { - filename: 'index.js', - path: path.resolve(__dirname) - }, - plugins: [ - new WebpackObfuscator({ - compact: true, - controlFlowFlattening: true, - deadCodeInjection: true, - numbersToExpressions: true, - simplify: true, - splitStrings: true, - stringArray: true - }) - ], - optimization: { - minimize: true - }, - // 添加以下配置来处理 sharp 模块 - externals: { - sharp: 'commonjs sharp' - }, - mode: 'production' // 添加 mode 配置来解决警告 -}; \ No newline at end of file