/* 东风日产签到,获得成长值 测试Quantumult-X,nodejs,其他自测 获取Cookie方法 ,QX开重写,进入【东风日产】 ======调试区|忽略====== # ^https?:\/\/oneapph5\.dongfeng-nissan\.com\.cn\/mb-gw\/dndc-gateway\/community\/api\/v2\/user$ url script-response-body http://192.168.2.170:8080/nissan.js ======调试区|忽略====== ==================================== [rewrite_local] ^https?:\/\/oneapph5\.dongfeng-nissan\.com\.cn\/mb-gw\/dndc-gateway\/community\/api\/v2\/user$ url script-response-body https://raw.githubusercontent.com/wf021325/qx/master/task/nissan.js [task_local] 1 0 * * * https://raw.githubusercontent.com/wf021325/qx/master/task/nissan.js, tag= 东风日产签到, enabled=true [mitm] hostname = oneapph5.dongfeng-nissan.com.cn ==================================== # 青龙环境变量 nissan_val = {"token":"xxxxxxxxxxxxx","uuid":"xxxxxxxx"} # 手动拼接 nissan_val 在https://oneapph5.dongfeng-nissan.com.cn/mb-gw/dndc-gateway/community/api/v2/user 找到以下参数 # token = $request.headers['token'] # uuid = $response.body.rows['one_id'] */ const $ = new Env("东风日产签到"); const _key = 'nissan_val'; const CK_Val = $.toObj(getEnv(_key)); $.is_debug ='true-'; $.messages = []; async function getCk() { if ($request && $request.method != 'OPTIONS') { const head = ObjectKeys2LowerCase($request.headers); const token = head['token']; const uuid = $.toObj($response.body).rows['one_id']; if (token) { const ckVal = $.toStr({token, uuid}); $.setdata(ckVal, _key); $.msg($.name, '获取ck成功🎉', ckVal); } else { $.msg($.name, '', '❌获取ck失败'); } } } async function main() { if (CK_Val) { const {token, uuid} = CK_Val; $.token = token; $.uuid = uuid; } else { $.msg($.name, '', '❌请先获取ck🎉'); return; } //intSha(); $.appversion = $.toObj((await $.http.get(`https://itunes.apple.com/cn/lookup?id=1341994593`)).body).results[0].version; $.log(`最新版本号:${$.appversion}`); var result = await signIn2();//签到 if (result !== '0' && result !== '1') {return;}// 签到错误停止运行 await public_page_browse() await new_list();//【此刻-最新】帖子 获取 $.push_id, $.tittle, $.user_id if (!$.push_id) {return pushMsg('没有找到帖子id')}//找不到帖子ID就停止 await sort_view();//浏览帖子 await sort_like();//点赞 await sort_unlike();// 取消点赞 var result = await comments();//评论帖子 if (result == '1') {await comments_del();}//删除评论 // put/delete DELETE await follow('put');//关注 await follow('delete');//取消关注 await growthScore();//查询成长值 } // 新签到 async function signIn2(){ let _msg = ''; url = `/mb-gw/dfn-growth/rest/ly-mp-growth-service/ly/mgs/checkin/signSave`; body = `{"channel":"1","wechat_trade_type":"APP","oneid":"oneid","brandCode":"1","uuid":"${$.uuid}","token":"${$.token}","requestId":"$$timestamp$$"}`; let {result, msg} = await httpPost(url, body); _msg += `签到:${msg}`; pushMsg(_msg); return result } // 签到 async function signIn() { let _msg = ''; url = `/mb-gw/vmsp-me/ly/busicen/member/reward/pointsreturn/memberPointsRechargetRequestSign`; body = `{"requestId":"$$timestamp$$","version":"202304","channel":"1","wechat_trade_type":"APP","token":"${$.token}","uuid":"${$.uuid}"}`; let {result, msg} = await httpPost(url, body); _msg += `签到:${msg}`; pushMsg(_msg); return result } // 浏览广场页 async function public_page_browse() { let _msg = ''; url = `/mb-gw/dndc-gateway/community/api/v2/user/browse-task-report`; body = `{"id":"","report_type":"public_page_browse"}`; let {result, msg} = await httpPost(url, body); _msg += `广场:${msg}`; pushMsg(_msg); return result } // 查成长值 async function growthScore() { url = `/mb-gw/dfn-growth/rest/ly-mp-growth-service/ly/mgs/growth/growthvalue/medal`; body = '{}' let {result, msg, data} = await httpPost(url, body); let _msg; _msg = (result == '1') ? `成长值:${data?.growthScore}` : ''; pushMsg(_msg); } //最新帖子 async function new_list() { let _msg; url = `/mb-gw/dndc-gateway/community/api/v2/feeds/new_list`; let {result, msg, rows} = await httpPost(url); let find_id = rows?.rows?.find(item => item.style_type === 'Postings_style'); $.push_id = find_id ? find_id?.id : null;//帖子id $.tittle = find_id?.feed_title;//帖子标题 $.user_id = find_id?.user_id//楼主user_id _msg = $.push_id ? `帖子:${$.tittle}` : `帖子:${msg}` pushMsg(_msg); } // 浏览帖子 async function sort_view() { url = `/mb-gw/dndc-gateway/community/api/v2/feeds/${$.push_id}?use_volc=0`;//【此刻-最新】帖子 let {result, msg} = await httpPost(url); let _msg; _msg = `浏览帖子:${msg}`; pushMsg(_msg); } // 点赞 async function sort_like() { url = `/mb-gw/dndc-gateway/community/api/v2/feeds/${$.push_id}/like`; body = `{"use_volc":false}`; let {result, msg} = await httpPost(url, body); let _msg; _msg = `点赞帖子:${msg}`; pushMsg(_msg); } // 取消点赞 async function sort_unlike() { url = `/mb-gw/dndc-gateway/community/api/v2/feeds/${$.push_id}/unlike?use_volc=0`; let {result, msg} = await httpPost(url, '', method = 'delete') let _msg; _msg = (result == '1') ? '取消点赞:成功' : `取消点赞:${msg}`; pushMsg(_msg); } //评论 async function comments() { const text = ['我非常赞同您的观点', '您的帖子让我看到了全新的角度', '谢谢您的分享,感谢', '您的帖子让我受益匪浅', '再次感谢您的分享!', '非常赞同您的观点', '感谢您为我打开了一扇新门', '你的帖子给我带来了很大的启发', '谢谢您的分享和付出!', '这帖子很有帮助' ]; const 评论 = text[Math.floor(Math.random() * text.length)] url = `/mb-gw/dndc-gateway/community/api/v2/comments`; body = `{"body":"${评论}","commentable_id":${$.push_id},"commentable_type":"feeds","use_volc":false}`; let {result, msg, rows} = await httpPost(url, body); $.comment_id = rows?.comment?.id; let _msg; _msg = `评论帖子:${msg}`; pushMsg(_msg); return result } //删除评论 async function comments_del() { url = `/mb-gw/dndc-gateway/community/api/v2/comments/${$.comment_id}?use_volc=0`; let {result, msg} = await httpPost(url, '', method = 'delete'); let _msg; _msg = `取消评论:${msg}`; pushMsg(_msg); } //关注/取消关注 put/delete async function follow(method) { url = `/mb-gw/dndc-gateway/community/api/v2/user/followings/${$.user_id}`; let {result, msg} = await httpPost(url, '', method); let _msg; _msg = (method == 'PUT') ? `关注博主:${msg}` : `取消关注:${msg}`; pushMsg(_msg); } async function httpPost(url, body, method) { timestamp = Math.floor(Date.now() / 1000); url = `https://oneapph5.dongfeng-nissan.com.cn${url}`; body = body ? body?.replace('$$timestamp$$', timestamp) : body; noncestr = getNonce(); sign = CryptoJS.SHA512(`nissanapp${timestamp}${$.token}${noncestr}1${$.uuid}`).toString(); appversion = $.appversion || '3.1.5'; headers = { 'User-Agent': `dong feng ri chan/${appversion}} (iPhone; iOS 17.0.0; Scale/2.00)`, clientid: 'nissanapp', appVersion: appversion, appCode: 'nissan', appSkin: 'NISSANAPP', sign: sign, noncestr: noncestr, token: $.token, timestamp: timestamp, Range: 1, 'From-Type': 4, 'Content-Type': 'application/json', urid: noncestr }; const rest = {url, headers, method, ...(body ? {body} : {})}; return await httpRequest(rest); } async function httpRequest(options) { try { options = options.url ? options : { url: options }; const _method = options?._method || ('body' in options ? 'post' : 'get'); const _respType = options?._respType || 'body'; const _timeout = options?._timeout || 15e3; const _http = [ new Promise((_, reject) => setTimeout(() => reject(`⛔️ 请求超时: ${options['url']}`), _timeout)), new Promise((resolve, reject) => { debug(options, '[Request]'); $[_method.toLowerCase()](options, (error, response, data) => { //debug(response, '[response]'); debug(data, '[data]'); error && $.log($.toStr(error)); if (_respType !== 'all') { resolve($.toObj(response?.[_respType], response?.[_respType])); } else { resolve(response); } }) }) ]; return await Promise.race(_http); } catch (err) { $.logErr(err); } } // 脚本执行入口 !(async () => { typeof $request !== `undefined` ? await getCk() : (await loadCryptoJS(), await main()); // 主函数 })() .catch((e) => $.messages.push(e.message || e) && $.logErr(e)) .finally(async () => { await sendMsg($.messages.join('\n').trimStart().trimEnd()); // 推送通知 $.done(); }) //-------- function pushMsg(msg) { $.messages.push(msg.trimEnd()), $.log(msg.trimEnd()); } //加载 crypto-js async function intCryptoJS() { function Eval_Crypto(script_str) { const evalFunc = $.isNode() ? global.eval : eval; evalFunc(script_str); return $.isNode() ? global.CryptoJS : CryptoJS; } let script_str = ($.isNode() ? require("crypto-js") : $.getdata("cryptojs_Script")) || ""; if ($.isNode()) { return script_str; } if (script_str && Object.keys(script_str).length) { $.log("✅ " + $.name + ": 缓存中存在CryptoJS代码, 跳过下载"); return Eval_Crypto(script_str) } $.log("🚀 " + "开始下载CryptoJS代码"); // const script_str = (await $.http.get('http://192.168.2.170:8080/crypto-js.min.js')).body; // Eval_Crypto(script_str); return new Promise(async resolve => { $.getScript('http://ys-l.ysepan.com/551976330/420094417/k5G4J73367NKLlPfoiL4c/crypto-js.min.js').then(script_str => { $.setdata(script_str, "cryptojs_Script"); Eval_Crypto(script_str) $.log("✅ CryptoJS加载成功"); resolve(CryptoJS); }); }); } //noncestr function getNonce(){return Array.from({length:32},(r,n)=>12===n?"4":"0123456789abcdef"[Math.floor(16*Math.random())]).join("").toUpperCase()}; //noncestr function getRandomString(n){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";return Array.from({length:n},()=>t[Math.floor(Math.random()*t.length)]).join("")} //DEBUG function debug(content,title="debug"){let start=`\n-----${title}-----\n`;let end=`\n-----${$.time('HH:mm:ss')}-----\n`;if($.is_debug==='true'){if(typeof content=="string"){$.log(start+content+end);}else if(typeof content=="object"){$.log(start+$.toStr(content)+end);}}}; //GET ENV function getEnv(...keys){for(let key of keys){var value=$.isNode()?process.env[key]||process.env[key.toUpperCase()]||process.env[key.toLowerCase()]||$.getdata(key):$.getdata(key);if(value)return value;}}; //到小写 function ObjectKeys2LowerCase(obj){return Object.fromEntries(Object.entries(obj).map(([k,v])=>[k.toLowerCase(),v]))}; //通知 async function sendMsg(message){if(!message)return;try{if($.isNode()){try{var notify=require('./sendNotify');}catch(e){var notify=require('./utils/sendNotify');}await notify.sendNotify($.name,message);}else{$.msg($.name,'',message);}}catch(e){$.log(`\n\n-----${$.name}-----\n${message}`);}}; //https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js function loadCryptoJS(){!function(){("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).CryptoJS=function(){var t,e,r,i,n,o,s,c,a,h,l,f,d,u,p,_,y,v,g,B,w,k,m,S,b,x,A,H,z,C,D,E,R,M,F,P,W,O,I,U=U||function(t){var e;if("undefined"!=typeof window&&window.crypto&&(e=window.crypto),"undefined"!=typeof self&&self.crypto&&(e=self.crypto),!(e=!(e=!(e="undefined"!=typeof globalThis&&globalThis.crypto?globalThis.crypto:e)&&"undefined"!=typeof window&&window.msCrypto?window.msCrypto:e)&&"undefined"!=typeof global&&global.crypto?global.crypto:e)&&"function"==typeof require)try{e=require("crypto")}catch(n){}var r=Object.create||function(t){return i.prototype=t,t=new i,i.prototype=null,t};function i(){}var n={},o=n.lib={},s=o.Base={extend:function(t){var e=r(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),(e.init.prototype=e).$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},c=o.WordArray=s.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||h).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var c=0;c>>2]=r[c>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=s.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var r=[],i=0;i>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new c.init(r,e/2)}},l=a.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new c.init(r,e)}},f=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(l.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return l.parse(unescape(encodeURIComponent(t)))}},d=o.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r,i=this._data,n=i.words,o=i.sigBytes,s=this.blockSize,a=o/(4*s),h=(a=e?t.ceil(a):t.max((0|a)-this._minBufferSize,0))*s;if(o=t.min(4*h,o),h){for(var l=0;l>>32-e}function j(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s>24)?t+=1<<24:(r=t>>8&255,i=255&t,255==(e=t>>16&255)?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i),t}function N(){for(var t=this._X,e=this._C,r=0;r<8;r++)E[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16;R[r]=((n*n>>>17)+n*o>>>15)+o*o^((4294901760&i)*i|0)+((65535&i)*i|0)}t[0]=R[0]+(R[7]<<16|R[7]>>>16)+(R[6]<<16|R[6]>>>16)|0,t[1]=R[1]+(R[0]<<8|R[0]>>>24)+R[7]|0,t[2]=R[2]+(R[1]<<16|R[1]>>>16)+(R[0]<<16|R[0]>>>16)|0,t[3]=R[3]+(R[2]<<8|R[2]>>>24)+R[1]|0,t[4]=R[4]+(R[3]<<16|R[3]>>>16)+(R[2]<<16|R[2]>>>16)|0,t[5]=R[5]+(R[4]<<8|R[4]>>>24)+R[3]|0,t[6]=R[6]+(R[5]<<16|R[5]>>>16)+(R[4]<<16|R[4]>>>16)|0,t[7]=R[7]+(R[6]<<8|R[6]>>>24)+R[5]|0}function q(){for(var t=this._X,e=this._C,r=0;r<8;r++)O[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16;I[r]=((n*n>>>17)+n*o>>>15)+o*o^((4294901760&i)*i|0)+((65535&i)*i|0)}t[0]=I[0]+(I[7]<<16|I[7]>>>16)+(I[6]<<16|I[6]>>>16)|0,t[1]=I[1]+(I[0]<<8|I[0]>>>24)+I[7]|0,t[2]=I[2]+(I[1]<<16|I[1]>>>16)+(I[0]<<16|I[0]>>>16)|0,t[3]=I[3]+(I[2]<<8|I[2]>>>24)+I[1]|0,t[4]=I[4]+(I[3]<<16|I[3]>>>16)+(I[2]<<16|I[2]>>>16)|0,t[5]=I[5]+(I[4]<<8|I[4]>>>24)+I[3]|0,t[6]=I[6]+(I[5]<<16|I[5]>>>16)+(I[4]<<16|I[4]>>>16)|0,t[7]=I[7]+(I[6]<<8|I[6]>>>24)+I[5]|0}return F=(M=U).lib,t=F.Base,e=F.WordArray,(M=M.x64={}).Word=t.extend({init:function(t,e){this.high=t,this.low=e}}),M.WordArray=t.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:8*t.length},toX32:function(){for(var t=this.words,r=t.length,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;r.call(this,i,e)}else r.apply(this,arguments)}).prototype=P),function(){var t,e=(t=U).lib.WordArray;function r(t){return t<<8&4278255360|t>>>8&16711935}(t=t.enc).Utf16=t.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var r=t.length,i=[],n=0;n>>1]|=t.charCodeAt(n)<<16-n%2*16;return e.create(i,2*r)}},t.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(t){for(var i=t.length,n=[],o=0;o>>1]|=r(t.charCodeAt(o)<<16-o%2*16);return e.create(n,2*i)}}}(),i=(A=U).lib.WordArray,A.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c>>6*(3-c)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join("")},parse:function(t){var e=t.length,r=this._map;if(!(n=this._reverseMap))for(var n=this._reverseMap=[],o=0;o>>6-s%4*2,a|=c,n[o>>>2]|=a<<24-o%4*8,o++)}return i.create(n,o)}(t,e,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},n=(F=U).lib.WordArray,F.enc.Base64url={stringify:function(t,e=!0){var r=t.words,i=t.sigBytes,n=e?this._safe_map:this._map;t.clamp();for(var o=[],s=0;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,a=0;a<4&&s+.75*a>>6*(3-a)&63));var h=n.charAt(64);if(h)for(;o.length%4;)o.push(h);return o.join("")},parse:function(t,e=!0){var r=t.length,i=e?this._safe_map:this._map;if(!(o=this._reverseMap))for(var o=this._reverseMap=[],s=0;s>>6-s%4*2,a|=c,i[o>>>2]|=a<<24-o%4*8,o++)}return n.create(i,o)}(t,r,o)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},function(t){var e=U,r=(n=e.lib).WordArray,i=n.Hasher,n=e.algo,o=[];function s(t,e,r,i,n,o,s){return((s=t+(e&r|~e&i)+n+s)<>>32-o)+e}function c(t,e,r,i,n,o,s){return((s=t+(e&i|r&~i)+n+s)<>>32-o)+e}function a(t,e,r,i,n,o,s){return((s=t+(e^r^i)+n+s)<>>32-o)+e}function h(t,e,r,i,n,o,s){return((s=t+(r^(e|~i))+n+s)<>>32-o)+e}!function(){for(var e=0;e<64;e++)o[e]=4294967296*t.abs(t.sin(e+1))|0}(),n=n.MD5=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var l=this._hash.words,f=t[e+0],d=t[e+1],u=t[e+2],p=t[e+3],_=t[e+4],y=t[e+5],v=t[e+6],g=t[e+7],B=t[e+8],w=t[e+9],k=t[e+10],m=t[e+11],S=t[e+12],b=t[e+13],x=t[e+14],A=t[e+15],H=s(H=l[0],D=l[1],C=l[2],z=l[3],f,7,o[0]),z=s(z,H,D,C,d,12,o[1]),C=s(C,z,H,D,u,17,o[2]),D=s(D,C,z,H,p,22,o[3]);H=s(H,D,C,z,_,7,o[4]),z=s(z,H,D,C,y,12,o[5]),C=s(C,z,H,D,v,17,o[6]),D=s(D,C,z,H,g,22,o[7]),H=s(H,D,C,z,B,7,o[8]),z=s(z,H,D,C,w,12,o[9]),C=s(C,z,H,D,k,17,o[10]),D=s(D,C,z,H,m,22,o[11]),H=s(H,D,C,z,S,7,o[12]),z=s(z,H,D,C,b,12,o[13]),C=s(C,z,H,D,x,17,o[14]),H=c(H,D=s(D,C,z,H,A,22,o[15]),C,z,d,5,o[16]),z=c(z,H,D,C,v,9,o[17]),C=c(C,z,H,D,m,14,o[18]),D=c(D,C,z,H,f,20,o[19]),H=c(H,D,C,z,y,5,o[20]),z=c(z,H,D,C,k,9,o[21]),C=c(C,z,H,D,A,14,o[22]),D=c(D,C,z,H,_,20,o[23]),H=c(H,D,C,z,w,5,o[24]),z=c(z,H,D,C,x,9,o[25]),C=c(C,z,H,D,p,14,o[26]),D=c(D,C,z,H,B,20,o[27]),H=c(H,D,C,z,b,5,o[28]),z=c(z,H,D,C,u,9,o[29]),C=c(C,z,H,D,g,14,o[30]),H=a(H,D=c(D,C,z,H,S,20,o[31]),C,z,y,4,o[32]),z=a(z,H,D,C,B,11,o[33]),C=a(C,z,H,D,m,16,o[34]),D=a(D,C,z,H,x,23,o[35]),H=a(H,D,C,z,d,4,o[36]),z=a(z,H,D,C,_,11,o[37]),C=a(C,z,H,D,g,16,o[38]),D=a(D,C,z,H,k,23,o[39]),H=a(H,D,C,z,b,4,o[40]),z=a(z,H,D,C,f,11,o[41]),C=a(C,z,H,D,p,16,o[42]),D=a(D,C,z,H,v,23,o[43]),H=a(H,D,C,z,w,4,o[44]),z=a(z,H,D,C,S,11,o[45]),C=a(C,z,H,D,A,16,o[46]),H=h(H,D=a(D,C,z,H,u,23,o[47]),C,z,f,6,o[48]),z=h(z,H,D,C,g,10,o[49]),C=h(C,z,H,D,x,15,o[50]),D=h(D,C,z,H,y,21,o[51]),H=h(H,D,C,z,S,6,o[52]),z=h(z,H,D,C,p,10,o[53]),C=h(C,z,H,D,k,15,o[54]),D=h(D,C,z,H,d,21,o[55]),H=h(H,D,C,z,B,6,o[56]),z=h(z,H,D,C,A,10,o[57]),C=h(C,z,H,D,v,15,o[58]),D=h(D,C,z,H,b,21,o[59]),H=h(H,D,C,z,_,6,o[60]),z=h(z,H,D,C,m,10,o[61]),C=h(C,z,H,D,u,15,o[62]),D=h(D,C,z,H,w,21,o[63]),l[0]=l[0]+H|0,l[1]=l[1]+D|0,l[2]=l[2]+C|0,l[3]=l[3]+z|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;r[n>>>5]|=128<<24-n%32;var o=t.floor(i/4294967296);r[15+(64+n>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(64+n>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),e.sigBytes=4*(r.length+1),this._process();for(var s=(r=this._hash).words,c=0;c<4;c++){var a=s[c];s[c]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return r},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}}),e.MD5=i._createHelper(n),e.HmacMD5=i._createHmacHelper(n)}(Math),P=(M=U).lib,o=P.WordArray,s=P.Hasher,P=M.algo,c=[],P=P.SHA1=s.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],a=r[4],h=0;h<80;h++){h<16?c[h]=0|t[e+h]:(l=c[h-3]^c[h-8]^c[h-14]^c[h-16],c[h]=l<<1|l>>>31);var l=(i<<5|i>>>27)+a+c[h];l+=h<20?1518500249+(n&o|~n&s):h<40?1859775393+(n^o^s):h<60?(n&o|n&s|o&s)-1894007588:(n^o^s)-899497514,a=s,s=o,o=n<<30|n>>>2,n=i,i=l}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+a|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=Math.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=s.clone.call(this);return t._hash=this._hash.clone(),t}}),M.SHA1=s._createHelper(P),M.HmacSHA1=s._createHmacHelper(P),function(t){var e=U,r=(n=e.lib).WordArray,i=n.Hasher,n=e.algo,o=[],s=[];!function(){function e(t){return 4294967296*(t-(0|t))|0}for(var r=2,i=0;i<64;)!function(e){for(var r=t.sqrt(e),i=2;i<=r;i++)if(!(e%i))return;return 1}(r)||(i<8&&(o[i]=e(t.pow(r,.5))),s[i]=e(t.pow(r,1/3)),i++),r++}();var c=[];n=n.SHA256=i.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],a=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=0;u<64;u++){u<16?c[u]=0|t[e+u]:(p=c[u-15],_=c[u-2],c[u]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+c[u-7]+((_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10)+c[u-16]);var p=i&n^i&o^n&o,_=d+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&l^~h&f)+s[u]+c[u];d=f,f=l,l=h,h=a+_|0,a=o,o=n,n=i,i=_+(((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+p)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+h|0,r[5]=r[5]+l|0,r[6]=r[6]+f|0,r[7]=r[7]+d|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(64+n>>>9<<4)]=t.floor(i/4294967296),r[15+(64+n>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}}),e.SHA256=i._createHelper(n),e.HmacSHA256=i._createHmacHelper(n)}(Math),a=(A=U).lib.WordArray,F=A.algo,h=F.SHA256,F=F.SHA224=h.extend({_doReset:function(){this._hash=new a.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=h._doFinalize.call(this);return t.sigBytes-=4,t}}),A.SHA224=h._createHelper(F),A.HmacSHA224=h._createHmacHelper(F),function(){var t=U,e=t.lib.Hasher,r=(n=t.x64).Word,i=n.WordArray,n=t.algo;function o(){return r.create.apply(r,arguments)}var s=[o(1116352408,3609767458),o(1899447441,602891725),o(3049323471,3964484399),o(3921009573,2173295548),o(961987163,4081628472),o(1508970993,3053834265),o(2453635748,2937671579),o(2870763221,3664609560),o(3624381080,2734883394),o(310598401,1164996542),o(607225278,1323610764),o(1426881987,3590304994),o(1925078388,4068182383),o(2162078206,991336113),o(2614888103,633803317),o(3248222580,3479774868),o(3835390401,2666613458),o(4022224774,944711139),o(264347078,2341262773),o(604807628,2007800933),o(770255983,1495990901),o(1249150122,1856431235),o(1555081692,3175218132),o(1996064986,2198950837),o(2554220882,3999719339),o(2821834349,766784016),o(2952996808,2566594879),o(3210313671,3203337956),o(3336571891,1034457026),o(3584528711,2466948901),o(113926993,3758326383),o(338241895,168717936),o(666307205,1188179964),o(773529912,1546045734),o(1294757372,1522805485),o(1396182291,2643833823),o(1695183700,2343527390),o(1986661051,1014477480),o(2177026350,1206759142),o(2456956037,344077627),o(2730485921,1290863460),o(2820302411,3158454273),o(3259730800,3505952657),o(3345764771,106217008),o(3516065817,3606008344),o(3600352804,1432725776),o(4094571909,1467031594),o(275423344,851169720),o(430227734,3100823752),o(506948616,1363258195),o(659060556,3750685593),o(883997877,3785050280),o(958139571,3318307427),o(1322822218,3812723403),o(1537002063,2003034995),o(1747873779,3602036899),o(1955562222,1575990012),o(2024104815,1125592928),o(2227730452,2716904306),o(2361852424,442776044),o(2428436474,593698344),o(2756734187,3733110249),o(3204031479,2999351573),o(3329325298,3815920427),o(3391569614,3928383900),o(3515267271,566280711),o(3940187606,3454069534),o(4118630271,4000239992),o(116418474,1914138554),o(174292421,2731055270),o(289380356,3203993006),o(460393269,320620315),o(685471733,587496836),o(852142971,1086792851),o(1017036298,365543100),o(1126000580,2618297676),o(1288033470,3409855158),o(1501505948,4234509866),o(1607167915,987167468),o(1816402316,1246189591)],c=[];!function(){for(var t=0;t<80;t++)c[t]=o()}(),n=n.SHA512=e.extend({_doReset:function(){this._hash=new i.init([new r.init(1779033703,4089235720),new r.init(3144134277,2227873595),new r.init(1013904242,4271175723),new r.init(2773480762,1595750129),new r.init(1359893119,2917565137),new r.init(2600822924,725511199),new r.init(528734635,4215389547),new r.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r,i=(r=this._hash.words)[0],n=r[1],o=r[2],a=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=i.high,p=i.low,_=n.high,y=n.low,v=o.high,g=o.low,B=a.high,w=a.low,k=h.high,m=h.low,S=l.high,b=l.low,x=f.high,A=f.low,H=d.high,z=u,C=p,D=_,E=y,R=v,M=g,F=B,P=w,W=k,O=m,I=S,U=b,K=x,X=A,L=H,j=r=d.low,T=0;T<80;T++){var N,q,Z=c[T];T<16?(q=Z.high=0|t[e+2*T],N=Z.low=0|t[e+2*T+1]):(tt=(J=c[T-15]).high,et=J.low,Q=(Y=c[T-2]).high,G=Y.low,V=($=c[T-7]).high,J=$.low,$=(Y=c[T-16]).high,q=(q=((tt>>>1|et<<31)^(tt>>>8|et<<24)^tt>>>7)+V+((N=(V=(et>>>1|tt<<31)^(et>>>8|tt<<24)^(et>>>7|tt<<25))+J)>>>0>>0?1:0))+((Q>>>19|G<<13)^(Q<<3|G>>>29)^Q>>>6)+((N+=et=(G>>>19|Q<<13)^(G<<3|Q>>>29)^(G>>>6|Q<<26))>>>0>>0?1:0),N+=tt=Y.low,Z.high=q=q+$+(N>>>0>>0?1:0),Z.low=N);var J=W&I^~W&K,V=O&U^~O&X,G=z&D^z&R^D&R,Q=(C>>>28|z<<4)^(C<<30|z>>>2)^(C<<25|z>>>7),Y=(et=s[T]).high,$=et.low,tt=j+((O>>>14|W<<18)^(O>>>18|W<<14)^(O<<23|W>>>9)),et=(Z=L+((W>>>14|O<<18)^(W>>>18|O<<14)^(W<<23|O>>>9))+(tt>>>0>>0?1:0),Q+(C&E^C&M^E&M));L=K,j=X,K=I,X=U,I=W,U=O,W=F+(Z=(Z=(Z=Z+J+((tt+=V)>>>0>>0?1:0))+Y+((tt+=$)>>>0<$>>>0?1:0))+q+((tt+=N)>>>0>>0?1:0))+((O=P+tt|0)>>>0

>>0?1:0)|0,F=R,P=M,R=D,M=E,D=z,E=C,z=Z+(((z>>>28|C<<4)^(z<<30|C>>>2)^(z<<25|C>>>7))+G+(et>>>0>>0?1:0))+((C=tt+et|0)>>>0>>0?1:0)|0}p=i.low=p+C,i.high=u+z+(p>>>0>>0?1:0),y=n.low=y+E,n.high=_+D+(y>>>0>>0?1:0),g=o.low=g+M,o.high=v+R+(g>>>0>>0?1:0),w=a.low=w+P,a.high=B+F+(w>>>0

>>0?1:0),m=h.low=m+O,h.high=k+W+(m>>>0>>0?1:0),b=l.low=b+U,l.high=S+I+(b>>>0>>0?1:0),A=f.low=A+X,f.high=x+K+(A>>>0>>0?1:0),r=d.low=r+j,d.high=H+L+(r>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(128+i>>>10<<5)]=Math.floor(r/4294967296),e[31+(128+i>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32}),t.SHA512=e._createHelper(n),t.HmacSHA512=e._createHmacHelper(n)}(),P=(M=U).x64,l=P.Word,f=P.WordArray,P=M.algo,d=P.SHA512,P=P.SHA384=d.extend({_doReset:function(){this._hash=new f.init([new l.init(3418070365,3238371032),new l.init(1654270250,914150663),new l.init(2438529370,812702999),new l.init(355462360,4144912697),new l.init(1731405415,4290775857),new l.init(2394180231,1750603025),new l.init(3675008525,1694076839),new l.init(1203062813,3204075428)])},_doFinalize:function(){var t=d._doFinalize.call(this);return t.sigBytes-=16,t}}),M.SHA384=d._createHelper(P),M.HmacSHA384=d._createHmacHelper(P),function(t){var e=U,r=(o=e.lib).WordArray,i=o.Hasher,n=e.x64.Word,o=e.algo,s=[],c=[],a=[];!function(){for(var t=1,e=0,r=0;r<24;r++){s[t+5*e]=(r+1)*(r+2)/2%64;var i=(2*t+3*e)%5;t=e%5,e=i}for(t=0;t<5;t++)for(e=0;e<5;e++)c[t+5*e]=e+(2*t+3*e)%5*5;for(var o=1,h=0;h<24;h++){for(var l,f=0,d=0,u=0;u<7;u++)1&o&&((l=(1<>>24)|4278255360&(o<<24|o>>>8),(A=r[n]).high^=l=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8),A.low^=o}for(var f=0;f<24;f++){for(var d=0;d<5;d++){for(var u=0,p=0,_=0;_<5;_++)u^=(A=r[d+5*_]).high,p^=A.low;var y=h[d];y.high=u,y.low=p}for(d=0;d<5;d++){var v=h[(d+4)%5],g=(B=h[(d+1)%5]).high,B=B.low;for(u=v.high^(g<<1|B>>>31),p=v.low^(B<<1|g>>>31),_=0;_<5;_++)(A=r[d+5*_]).high^=u,A.low^=p}for(var w=1;w<25;w++){var k=(A=r[w]).high,m=A.low,S=s[w];p=S<32?(u=k<>>32-S,m<>>32-S):(u=m<>>64-S,k<>>64-S),(S=h[c[w]]).high=u,S.low=p}var b=h[0],x=r[0];for(b.high=x.high,b.low=x.low,d=0;d<5;d++)for(_=0;_<5;_++){var A=r[w=d+5*_],H=h[w],z=h[(d+1)%5+5*_],C=h[(d+2)%5+5*_];A.high=H.high^~z.high&C.high,A.low=H.low^~z.low&C.low}A=r[0],x=a[f],A.high^=x.high,A.low^=x.low}},_doFinalize:function(){var e=this._data,i=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;i[n>>>5]|=1<<24-n%32,i[(t.ceil((1+n)/o)*o>>>5)-1]|=128,e.sigBytes=4*i.length,this._process();for(var s=this._state,c=(i=this.cfg.outputLength/8)/8,a=[],h=0;h>>24)|4278255360&(l<<24|l>>>8),a.push(f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8)),a.push(l)}return new r.init(a,i)},clone:function(){for(var t=i.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}}),e.SHA3=i._createHelper(o),e.HmacSHA3=i._createHmacHelper(o)}(Math),Math,F=(A=U).lib,u=F.WordArray,p=F.Hasher,F=A.algo,_=u.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]),y=u.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]),v=u.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]),g=u.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]),B=u.create([0,1518500249,1859775393,2400959708,2840853838]),w=u.create([1352829926,1548603684,1836072691,2053994217,0]),F=F.RIPEMD160=p.extend({_doReset:function(){this._hash=u.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o,s,c,a,h,l,f=this._hash.words,d=B.words,u=w.words,p=_.words,k=y.words,m=v.words,S=g.words,b=o=f[0],x=s=f[1],A=c=f[2],H=a=f[3],z=h=f[4];for(r=0;r<80;r+=1)l=o+t[e+p[r]]|0,l+=r<16?(s^c^a)+d[0]:r<32?K(s,c,a)+d[1]:r<48?((s|~c)^a)+d[2]:r<64?X(s,c,a)+d[3]:(s^(c|~a))+d[4],l=(l=L(l|=0,m[r]))+h|0,o=h,h=a,a=L(c,10),c=s,s=l,l=b+t[e+k[r]]|0,l+=r<16?(x^(A|~H))+u[0]:r<32?X(x,A,H)+u[1]:r<48?((x|~A)^H)+u[2]:r<64?K(x,A,H)+u[3]:(x^A^H)+u[4],l=(l=L(l|=0,S[r]))+z|0,b=z,z=H,H=L(A,10),A=x,x=l;l=f[1]+c+H|0,f[1]=f[2]+a+z|0,f[2]=f[3]+h+b|0,f[3]=f[4]+o+x|0,f[4]=f[0]+s+A|0,f[0]=l},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=(e=this._hash).words,o=0;o<5;o++){var s=n[o];n[o]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return e},clone:function(){var t=p.clone.call(this);return t._hash=this._hash.clone(),t}}),A.RIPEMD160=p._createHelper(F),A.HmacRIPEMD160=p._createHmacHelper(F),P=(M=U).lib.Base,k=M.enc.Utf8,M.algo.HMAC=P.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=k.parse(e));var r=t.blockSize,i=4*r;(e=e.sigBytes>i?t.finalize(e):e).clamp(),t=this._oKey=e.clone(),e=this._iKey=e.clone();for(var n=t.words,o=e.words,s=0;s>>2];t.sigBytes-=e}};var f=(t.BlockCipher=s.extend({cfg:s.cfg.extend({mode:h,padding:a}),reset:function(){var t;s.reset.call(this);var e=(r=this.cfg).iv,r=r.mode;this._xformMode==this._ENC_XFORM_MODE?t=r.createEncryptor:(t=r.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,e&&e.words):(this._mode=t.call(r,this,e&&e.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),t.CipherParams=e.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),d=(a=(u.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext;return(e=(t=t.salt)?r.create([1398893684,1701076831]).concat(t).concat(e):e).toString(n)},parse:function(t){var e,i=n.parse(t);return 1398893684==(t=i.words)[0]&&1701076831==t[1]&&(e=r.create(t.slice(2,4)),t.splice(0,4),i.sigBytes-=16),f.create({ciphertext:i,salt:e})}},t.SerializableCipher=e.extend({cfg:e.extend({format:a}),encrypt:function(t,e,r,i){i=this.cfg.extend(i),e=(n=t.createEncryptor(r,i)).finalize(e);var n=n.cfg;return f.create({ciphertext:e,key:r,iv:n.iv,algorithm:t,mode:n.mode,padding:n.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}})),u=(u.kdf={}).OpenSSL={execute:function(t,e,i,n){return n=n||r.random(8),t=o.create({keySize:e+i}).compute(t,n),i=r.create(t.words.slice(e),4*i),t.sigBytes=4*e,f.create({key:t,iv:i,salt:n})}},p=t.PasswordBasedCipher=d.extend({cfg:d.cfg.extend({kdf:u}),encrypt:function(t,e,r,i){return r=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize),i.iv=r.iv,(i=d.encrypt.call(this,t,e,r.key,i)).mixIn(r),i},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),r=i.kdf.execute(r,t.keySize,t.ivSize,e.salt),i.iv=r.iv,d.decrypt.call(this,t,e,r.key,i)}})}(),U.mode.CFB=((F=U.lib.BlockCipherMode.extend()).Encryptor=F.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;j.call(this,t,e,i,r),this._prevBlock=t.slice(e,e+i)}}),F.Decryptor=F.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);j.call(this,t,e,i,r),this._prevBlock=n}}),F),U.mode.CTR=(P=(M=U.lib.BlockCipherMode.extend()).Encryptor=M.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var c=0;c>>2]|=e<<24-r%4*8,t.sigBytes+=e},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},U.pad.Iso10126={pad:function(t,e){e*=4,e-=t.sigBytes%e,t.concat(U.lib.WordArray.random(e-1)).concat(U.lib.WordArray.create([e<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},U.pad.Iso97971={pad:function(t,e){t.concat(U.lib.WordArray.create([2147483648],1)),U.pad.ZeroPadding.pad(t,e)},unpad:function(t){U.pad.ZeroPadding.unpad(t),t.sigBytes--}},U.pad.ZeroPadding={pad:function(t,e){e*=4,t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;0<=r;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},U.pad.NoPadding={pad:function(){},unpad:function(){}},z=(P=U).lib.CipherParams,C=P.enc.Hex,P.format.Hex={stringify:function(t){return t.ciphertext.toString(C)},parse:function(t){return t=C.parse(t),z.create({ciphertext:t})}},function(){var t=U,e=t.lib.BlockCipher,r=t.algo,i=[],n=[],o=[],s=[],c=[],a=[],h=[],l=[],f=[],d=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var r=0,u=0;for(e=0;e<256;e++){var p=u^u<<1^u<<2^u<<3^u<<4;i[r]=p=p>>>8^255&p^99;var _=t[n[p]=r],y=t[_],v=t[y],g=257*t[p]^16843008*p;o[r]=g<<24|g>>>8,s[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,a[r]=g,h[p]=(g=16843009*v^65537*y^257*_^16843008*r)<<24|g>>>8,l[p]=g<<16|g>>>16,f[p]=g<<8|g>>>24,d[p]=g,r?(r=_^t[t[t[v^_]]],u^=t[t[u]]):r=u=1}}();var u=[0,1,2,4,8,16,32,64,128,27,54];r=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*(1+(this._nRounds=6+r)),o=this._keySchedule=[],s=0;s>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p]):(p=i[(p=p<<8|p>>>24)>>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p],p^=u[s/r|0]<<24),o[s]=o[s-r]^p);for(var c=this._invKeySchedule=[],a=0;a>>24]]^l[i[p>>>16&255]]^f[i[p>>>8&255]]^d[i[255&p]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,s,c,a,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,h,l,f,d,n),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,c){for(var a=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],d=t[e+3]^r[3],u=4,p=1;p>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&d]^r[u++],y=i[l>>>24]^n[f>>>16&255]^o[d>>>8&255]^s[255&h]^r[u++],v=i[f>>>24]^n[d>>>16&255]^o[h>>>8&255]^s[255&l]^r[u++],g=i[d>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[u++];h=_,l=y,f=v,d=g}_=(c[h>>>24]<<24|c[l>>>16&255]<<16|c[f>>>8&255]<<8|c[255&d])^r[u++],y=(c[l>>>24]<<24|c[f>>>16&255]<<16|c[d>>>8&255]<<8|c[255&h])^r[u++],v=(c[f>>>24]<<24|c[d>>>16&255]<<16|c[h>>>8&255]<<8|c[255&l])^r[u++],g=(c[d>>>24]<<24|c[h>>>16&255]<<16|c[l>>>8&255]<<8|c[255&f])^r[u++],t[e]=_,t[e+1]=y,t[e+2]=v,t[e+3]=g},keySize:8}),t.AES=e._createHelper(r)}(),function(){var t=U,e=(i=t.lib).WordArray,r=i.BlockCipher,i=t.algo,n=[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],o=[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],s=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{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}],a=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],h=i.DES=r.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=n[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var c=this._subKeys=[],a=0;a<16;a++){var h=c[a]=[],l=s[a];for(r=0;r<24;r++)h[r/6|0]|=e[(o[r]-1+l)%28]<<31-r%6,h[4+(r/6|0)]|=e[28+(o[r+24]-1+l)%28]<<31-r%6;for(h[0]=h[0]<<1|h[0]>>>31,r=1;r<7;r++)h[r]=h[r]>>>4*(r-1)+3;h[7]=h[7]<<5|h[7]>>>27}var f=this._invSubKeys=[];for(r=0;r<16;r++)f[r]=c[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],l.call(this,4,252645135),l.call(this,16,65535),f.call(this,2,858993459),f.call(this,8,16711935),l.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,h=0,d=0;d<8;d++)h|=c[d][((s^n[d])&a[d])>>>0];this._lBlock=s,this._rBlock=o^h}var u=this._lBlock;this._lBlock=this._rBlock,this._rBlock=u,l.call(this,1,1431655765),f.call(this,8,16711935),f.call(this,2,858993459),l.call(this,16,65535),l.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function l(t,e){e=(this._lBlock>>>t^this._rBlock)&e,this._rBlock^=e,this._lBlock^=e<>>t^this._lBlock)&e,this._lBlock^=e,this._rBlock^=e<192.");var t=i.slice(0,2),r=i.length<4?i.slice(0,2):i.slice(2,4),i=i.length<6?i.slice(0,2):i.slice(4,6);this._des1=h.createEncryptor(e.create(t)),this._des2=h.createEncryptor(e.create(r)),this._des3=h.createEncryptor(e.create(i))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2}),t.TripleDES=r._createHelper(i)}(),function(){var t=U,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var o=0;n<256;n++){var s=e[(s=n%r)>>>2]>>>24-s%4*8&255;o=(o+i[n]+s)%256,s=i[n],i[n]=i[o],i[o]=s}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i),r=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;0>>24)|4278255360&(t[r]<<24|t[r]>>>8);var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(r=this._b=0;r<4;r++)N.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o,s=(e=16711935&((s=(o=e.words)[0])<<8|s>>>24)|4278255360&(s<<24|s>>>8))>>>16|4294901760&(o=16711935&((c=o[1])<<8|c>>>24)|4278255360&(c<<24|c>>>8)),c=o<<16|65535&e;for(n[0]^=e,n[1]^=s,n[2]^=o,n[3]^=c,n[4]^=e,n[5]^=s,n[6]^=o,n[7]^=c,r=0;r<4;r++)N.call(this)}},_doProcessBlock:function(t,e){var r=this._X;N.call(this),D[0]=r[0]^r[5]>>>16^r[3]<<16,D[1]=r[2]^r[7]>>>16^r[5]<<16,D[2]=r[4]^r[1]>>>16^r[7]<<16,D[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)D[i]=16711935&(D[i]<<8|D[i]>>>24)|4278255360&(D[i]<<24|D[i]>>>8),t[e+i]^=D[i]},blockSize:4,ivSize:2}),M.Rabbit=F._createHelper(P),F=(M=U).lib.StreamCipher,P=M.algo,W=[],O=[],I=[],P=P.RabbitLegacy=F.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,r=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],n=this._b=0;n<4;n++)q.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o,s=(e=16711935&((s=(o=e.words)[0])<<8|s>>>24)|4278255360&(s<<24|s>>>8))>>>16|4294901760&(o=16711935&((t=o[1])<<8|t>>>24)|4278255360&(t<<24|t>>>8));for(t=o<<16|65535&e,i[0]^=e,i[1]^=s,i[2]^=o,i[3]^=t,i[4]^=e,i[5]^=s,i[6]^=o,i[7]^=t,n=0;n<4;n++)q.call(this)}},_doProcessBlock:function(t,e){var r=this._X;q.call(this),W[0]=r[0]^r[5]>>>16^r[3]<<16,W[1]=r[2]^r[7]>>>16^r[5]<<16,W[2]=r[4]^r[1]>>>16^r[7]<<16,W[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)W[i]=16711935&(W[i]<<8|W[i]>>>24)|4278255360&(W[i]<<24|W[i]>>>8),t[e+i]^=W[i]},blockSize:4,ivSize:2}),M.RabbitLegacy=F._createHelper(P),U}()}()} //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ENV 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("",`🔔${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))}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)}