ddan-js 3.1.8 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/ddan-js.browser.js +1 -1
- package/bin/ddan-js.js +1 -1
- package/bin/ddan-js.mjs +1 -1
- package/bin/modules/crypto/index.d.ts +3 -1
- package/bin/modules/crypto/uuid.d.ts +16 -1
- package/bin/tiny/hook.d.ts +3 -1
- package/bin/tiny/utils.d.ts +3 -1
- package/package.json +1 -1
package/bin/ddan-js.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"crypto";import t from"zlib";import r from"net";import{SocksClient as n}from"socks";import{exec as s}from"child_process";import o from"fs";import i from"path";const a="0123456789",c="abcdefghijklmnopqrstuvwxyz",l="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var u={keyNumber:a,keyLower:c,keyUpper:l,keyChars:a+c+l};const f=(e=0,t=0)=>{const r=u.keyChars.split(""),n=[];let s;if(t=t||r.length,e)for(s=0;s<e;s++)n[s]=r[0|Math.random()*t];else{let e;for(n[8]=n[13]=n[18]=n[23]="-",n[14]="4",s=0;s<36;s++)n[s]||(e=0|16*Math.random(),n[s]=r[19==s?3&e|8:e])}return n.join("")};class h{__map;__tagList;__eventId="";constructor(){this.__map=new Map,this.__tagList=[],this.__eventId=f()}clear(){return this.__map.clear(),this}on(e,t,r=""){if(!e||!t)return this;let n=this.__map.get(e);return n||(n=new Set,this.__map.set(e,n)),n.add(t),r&&this.__tagList.push({name:e,listener:t,tag:r}),this}emit(e,...t){if(!e)return this;const r=this.__map.get(e);if(!r)return this;return[...r].forEach((e=>e&&e(...t))),this}off(e,t){if(!e||!t)return this;this.__tagList=this.__tagList.filter((r=>r.name!==e||r.listener!==t));const r=this.__map.get(e);return r?(r.delete(t),r.size<=0&&this.__map.delete(e),this):this}remove(e){return e?(this.__tagList=this.__tagList.filter((t=>t.name!==e)),this.__map.delete(e),this):this}removeByTag(e){if(!e)return this;return this.__tagList.filter((t=>t.tag===e)).forEach((e=>{this.off(e.name,e.listener)})),this.__tagList=this.__tagList.filter((t=>t.tag!==e)),this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this.__map.has(e)}}class d{timestamp=0;_key="";_value;constructor(e,t){this._key=e,this._value=t,this.updateAt()}get key(){return this._key}get value(){return this._value}set(e){this._value=e,this.updateAt()}updateAt(){this.timestamp=Date.now()}clear(){this.set(void 0)}}class p{_map=new Map;constructor(){this._map.clear()}get keys(){return Array.from(this._map.keys())}get values(){return Array.from(this._map.values())}get(e){if(!e)return;const t=this._map.get(e);return t?t.value:void 0}getKV(e){if(e)return this._map.get(e)}set(e,t){if(!e)return;const r=this._map.get(e);r?(r.set(t),this.clean()):this._map.set(e,new d(e,t))}delete(e,t){if(!e)return;const r=this._map.get(e);t&&t(r?.value),this._map.delete(e)}clear(){this._map.clear()}clean(e=100,t){try{if(this._map.size<=e)return;if(this.keys.filter((e=>{if(!this._map.has(e))return!1;const t=this._map.get(e);return!t||!t.value})).forEach((e=>{this._map.delete(e)})),this._map.size<=e)return;const r=this.values.sort(((e,t)=>e.timestamp-t.timestamp)),n=r.length-e;if(n<=0)return;r.splice(0,n).forEach((e=>{this.delete(e.key,t)}))}catch(e){console.log("mapping clean",e)}}}const g="object"==typeof global&&null!==global&&global.Object===Object&&global,y="object"==typeof globalThis&&null!==globalThis&&globalThis.Object===Object&&globalThis,m="object"==typeof self&&null!==self&&self.Object===Object&&self,b=y||g||m||Function("return this")(),w=b.Symbol,{toString:_,hasOwnProperty:v,propertyIsEnumerable:x}=Object.prototype,A=w?w.toStringTag:void 0;function S(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":A&&A in Object(e)?function(e){const t=v.call(e,A),r=e[A];let n=!1;try{e[A]=void 0,n=!0}catch(e){}const s=_.call(e);return n&&(t?e[A]=r:delete e[A]),s}(e):_.call(e)}var k={getTag:S,getType:function(e){return(S(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:_,hasOwnProperty:v,propertyIsEnumerable:x};const O="object"==typeof exports&&null!==exports&&!exports.nodeType&&exports,$=O&&"object"==typeof module&&null!==module&&!module.nodeType&&module,j=$&&$.exports===O&&g.process,C=(()=>{try{const e=$&&$.require&&$.require("util").types;return e||j&&j.binding&&j.binding("util")}catch(e){}})();var E="[object Function]",P="[object GeneratorFunction]",T="[object AsyncFunction]",B=9007199254740991;const q=/^(?:0|[1-9]\d*)$/,L=b?.Buffer?.isBuffer,R=/^\[object (?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)Array\]$/,F=C&&C.isTypedArray;function U(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function I(e){return null!=e&&"object"==typeof e}const D=Array.isArray;function M(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=B}(e.length)&&!z(e)}function K(e){return I(e)&&M(e)}function z(e){var t=U(e)?k.getTag(e):"";return t===E||t===P||t===T}function N(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)}function H(e){return K(e)&&k.hasOwnProperty.call(e,"callee")&&(!k.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==k.toString.call(e))}const V="undefined"!=typeof window&&void 0!==window.document,W="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node,Z=F?e=>F(e):e=>I(e)&&R.test(k.getTag(e)),J="function"==typeof L?L:()=>!1;var Y={is:function(e,t){return k.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===k.getTag(e)},isString:function(e){return"string"==typeof e||!D(e)&&I(e)&&"[object String]"==k.getTag(e)},isObject:U,isObjectLike:I,isPlainObject:function(e){if(!I(e)||"[object Object]"!=k.getTag(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},isSymbol:function(e){return"symbol"==typeof e||I(e)&&"[object Symbol]"===k.getTag(e)},isFunction:z,isArray:D,isArrayLikeObject:K,isIndex:function(e,t){return!!(t=null==t?B:t)&&("number"==typeof e||q.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:M,isPrototype:N,isArguments:H,isPromise:function(e){return"[object Promise]"===(U(e)?k.getTag(e):"")},isBrowser:V,isNode:W,isBlobOrBuffer:e=>e instanceof Blob||e instanceof ArrayBuffer,isUint8Array:e=>e instanceof Uint8Array,isArrayBuffer:e=>e instanceof ArrayBuffer,isEmpty:e=>{if(null==e)return!0;if(M(e)&&(Array.isArray(e)||"string"==typeof e||"function"==typeof e.splice||J(e)||Z(e)||H(e)))return!e.length;const t=k.getTag(e);if("[object Map]"===t||"[object Set]"===t)return!e.size;if(N(e))return!Object.keys(e).length;for(const t in e)if(k.hasOwnProperty.call(e,t))return!1;return!0},isJSONStr:e=>{try{const t=JSON.parse(e);return"object"==typeof t&&null!==t}catch(e){return!1}}};const Q=NaN,G=/^\s+|\s+$/g,X=/^[-+]0x[0-9a-f]+$/i,ee=/^0b[01]+$/i,te=/^0o[0-7]+$/i,re=parseInt,ne=1/0,se=17976931348623157e292;function oe(e){if("number"==typeof e)return e;if(Y.isSymbol(e))return Q;if(Y.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=Y.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(G,"");const t=ee.test(e);return t||te.test(e)?re(e.slice(2),t?2:8):X.test(e)?Q:+e}function ie(e){return e?(e=oe(e))===ne||e===-ne?(e<0?-1:1)*se:e==e?e:0:0===e?e:0}var ae={toNumber:oe,toFinite:ie,toInteger:function(e){var t=ie(e),r=t%1;return t==t?r?t-r:t:0}};const ce="Expected a function",le=Math.max,ue=Math.min;function fe(e,t=300,r={}){let n,s,o,i,a,c,l=0,u=!1,f=!1,h=!0;if("function"!=typeof e)throw new TypeError(ce);function d(t){const r=n,o=s;return n=s=void 0,l=t,i=e.apply(o,r),i}function p(e){const r=e-c;return void 0===c||r>=t||r<0||f&&e-l>=o}function g(){const e=Date.now();if(p(e))return y(e);a=setTimeout(g,function(e){const r=t-(e-c);return f?ue(r,o-(e-l)):r}(e))}function y(e){return a=void 0,h&&n?d(e):(n=s=void 0,i)}function m(...e){const r=Date.now(),o=p(r);if(n=e,s=this,c=r,o){if(void 0===a)return function(e){return l=e,a=setTimeout(g,t),u?d(e):i}(c);if(f)return a=setTimeout(g,t),d(c)}return void 0===a&&(a=setTimeout(g,t)),i}return t=ae.toNumber(t)||0,Y.isObject(r)&&(u=!!r.leading,f="maxWait"in r,o=f?le(ae.toNumber(r.maxWait)||0,t):o,h="trailing"in r?!!r.trailing:h),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=c=s=a=void 0},m.flush=function(){return void 0===a?i:y(Date.now())},m.pending=function(){return void 0!==a},m}class he{__list=[];constructor(e){this.push(e)}push(e){return e&&this.__list.push(e),this}clear(){return this.__list=[],this}_exec(e,t){let r;if(Y.isFunction(e))r=e(t);else{if(Y.isPromise(e))return e.then((e=>({...t,...e})));r=e}return Y.isPromise(r)?r:Promise.resolve({...r,...t})}run(e){try{return this.__list.reduce(((e,t)=>e.then((e=>this._exec(t,e)))),Promise.resolve(e)).then((e=>[void 0,e])).catch((e=>[e,void 0]))}catch(e){return Promise.reject([e,void 0])}}}async function de(e,t,r){return e.then((e=>(r&&r(),[null,e]))).catch((e=>(t&&Object.assign(e,t),r&&r(),[e,void 0])))}const pe=(e,t)=>{try{let r;return r=Y.isFunction(e)?e():e,de(Promise.resolve(r),void 0,t)}catch(e){return t&&t(),Promise.resolve([e,void 0])}},ge=e=>"string"==typeof(e="function"==typeof e?e():e)?new Error(e):e,ye=e=>"function"==typeof e?e():e;var me={to:de,go:(e,t)=>pe(e,t),delay:(e=1e3)=>new Promise((t=>setTimeout(t,e))),safeRun:pe,toError:ge,timeout:(e,t=0,r="timeout")=>{if(t<=0)return pe(e);let n;function s(){n&&clearTimeout(n)}const o=new Promise((e=>{s(),n=setTimeout((()=>e([ge(r||"timeout"),void 0])),t)}));return Promise.race([pe(e,s),o])},getValueIf:(e,t,r)=>{const n="function"==typeof e?e():e;return ye(n?t:r)},resolveValue:ye,runAsync:async e=>{const[t,r]=await pe(e);if(!t)return r}};class be{__value=void 0;set(e){this.__value=e}get(){return this.__value}}var we={singleton:function(){class e{static __instance__;constructor(){}static get Instance(){return e.__instance__||(e.__instance__=new this),e.__instance__}static get I(){return this.Instance}}return e},getset:function(e){const t=new be;return void 0!==e&&t.set(e),t}};class _e{_func;_callback;constructor(e,t){this._func=e,this._callback=t}async run(){return me.safeRun(this._func).then((e=>{try{this._callback&&this._callback(e)}catch(e){console.log("[ddan] task",e)}finally{return e}}))}}class ve{__list=[];__count=0;__max=1;constructor(e=1){this.__count=0,this.__max=e>0?e:1,this.clear()}push(e,t){const r=new _e(e,t);return this.__list.push(r),this._step(),this}clear(){return this.__list=[],this.__count=0,this}_step(){if(this.__list.length<=0)return;if(this.__count>=this.__max)return;const e=this.__list.shift();e?(this.__count+=1,e?.run().finally((()=>{try{this.__count>0&&(this.__count-=1),this._step()}catch(e){console.error("[ddan] pipepine step finally",e)}}))):this._step()}async whenAll(){for(;;){if(this.__count<=0)break;await me.delay(100),this._step()}return this.clear()}}class xe extends(we.singleton()){__lockedMap=new Map;pipeline=new ve;constructor(){super()}lock(e,t){if(!e||!t)return;const r=me.safeRun(t);return this.__lockedMap.set(e,r),r}unlock(e){e&&this.__lockedMap.has(e)&&this.__lockedMap.delete(e)}async exec(e,t){if(!e||!t)return me.safeRun(e);const r=this.__lockedMap.get(t);if(r)return r;const n=this.lock(t,e);if(!n)return me.safeRun(e);const s=await n;return this.unlock(t),s}}var Ae={toUtf8:e=>{if(!e)return"";const t=e.replace(/\r\n/g,"\n");let r="";for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r+=String.fromCharCode(n):n>127&&n<2048?(r+=String.fromCharCode(n>>6|192),r+=String.fromCharCode(63&n|128)):(r+=String.fromCharCode(n>>12|224),r+=String.fromCharCode(n>>6&63|128),r+=String.fromCharCode(63&n|128))}return r},fromUtf8:e=>{let t="",r=0;if(!e)return"";let n=0,s=0,o=0;for(;r<e.length;)n=e.charCodeAt(r),n<128?(t+=String.fromCharCode(n),r++):n>191&&n<224?(s=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&s),r+=2):(s=e.charCodeAt(r+1),o=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&o),r+=3);return t},toUtf8Bytes:e=>{if(!e)return new Uint8Array;const t=e.replace(/\r\n/g,"\n"),r=[];for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r.push(n):n<2048?(r.push(n>>6|192),r.push(63&n|128)):(r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128))}return new Uint8Array(r)},fromUtf8Bytes:e=>{let t="",r=0;if(!e||e.length<=0)return"";for(;r<e.length;){let n=e[r];if(n<128)t+=String.fromCharCode(n),r++;else if(n>191&&n<224){const s=e[r+1];t+=String.fromCharCode((31&n)<<6|63&s),r+=2}else{const s=e[r+1],o=e[r+2];t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&o),r+=3}}return t}};const Se="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var ke={toBase64:(e="")=>{let t,r,n,s,o,i,a,c="",l=0;for(e=Ae.toUtf8(e);l<e.length;)t=e.charCodeAt(l++),r=e.charCodeAt(l++),n=e.charCodeAt(l++),s=t>>2,o=(3&t)<<4|r>>4,i=(15&r)<<2|n>>6,a=63&n,isNaN(r)?i=a=64:isNaN(n)&&(a=64),c=c+Se.charAt(s)+Se.charAt(o)+Se.charAt(i)+Se.charAt(a);return c},fromBase64:(e="")=>{let t,r,n,s,o,i,a,c="",l=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<e.length;)s=Se.indexOf(e.charAt(l++)),o=Se.indexOf(e.charAt(l++)),i=Se.indexOf(e.charAt(l++)),a=Se.indexOf(e.charAt(l++)),t=s<<2|o>>4,r=(15&o)<<4|i>>2,n=(3&i)<<6|a,c+=String.fromCharCode(t),64!=i&&(c+=String.fromCharCode(r)),64!=a&&(c+=String.fromCharCode(n));return c=Ae.fromUtf8(c),c},bytesToBase64:e=>{let t,r,n,s,o,i,a,c="",l=0;if(!e||!Y.isArrayLike(e)||!Y.isUint8Array(e))return"";for(;l<e.length;)t=e[l++],r=e[l++],n=e[l++],s=t>>2,o=(3&t)<<4|r>>4,i=(15&r)<<2|n>>6,a=63&n,isNaN(r)?i=a=64:isNaN(n)&&(a=64),c=c+Se.charAt(s)+Se.charAt(o)+Se.charAt(i)+Se.charAt(a);return c},base64ToBytes:(e="")=>{let t,r,n,s,o,i,a,c=[],l=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<e.length;)s=Se.indexOf(e.charAt(l++)),o=Se.indexOf(e.charAt(l++)),i=Se.indexOf(e.charAt(l++)),a=Se.indexOf(e.charAt(l++)),t=s<<2|o>>4,r=(15&o)<<4|i>>2,n=(3&i)<<6|a,c.push(t),64!=i&&c.push(r),64!=a&&c.push(n);return new Uint8Array(c)}};function Oe(e){return Math.floor(Math.random()*e)}function $e(e,t=10){return+parseFloat(Number(e).toExponential(t))}const je=180/Math.PI;var Ce={random:Oe,randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randoms:function(e,t=1,r=!1){const n=[];for(;;){if(n.length>=t)break;if(!r&&n.length>=e)break;const s=Oe(e);r?n.push(s):n.includes(s)||n.push(s)}return n},strip:$e,float:function(e,{digits:t=2,fixed:r=!1}={}){const n=$e(e).toFixed(t);return r||!t?+n:+n.replace(/(\.[1-9]?)0+$/,"$1").replace(/\.$/,"")},radian2degree:function(e){return e*je},degree2radian:function(e){return e/je},calcDataSize:function(e){const t={gb:0,mb:0,kb:0,b:0,total:e,desc:""},r=[{name:"gb",divisor:1<<30},{name:"mb",divisor:1<<20},{name:"kb",divisor:1024},{name:"b",divisor:1}];for(const n of r){const r=Math.floor(e/n.divisor);t[n.name]=r,e-=r*n.divisor}return t.gb>0?t.desc=(t.gb+t.mb/1024).toFixed(2)+"GB":t.mb>0?t.desc=(t.mb+t.kb/1024).toFixed(2)+"MB":t.kb>0?t.desc=(t.kb+t.b/1024).toFixed(2)+"KB":t.desc=t.b+"B",t}};var Ee={bytes2str:e=>{if(!e||!Y.isArrayLike(e))return"";return e.reduce(((e,t)=>e+String.fromCharCode(t)),"")},str2bytes:(e="")=>{const t=e,r=new Uint8Array(t.length);for(let e=0,n=t.length;e<n;e++)r[e]=t.charCodeAt(e);return r},str2hex:e=>{let t="";for(let r=0;r<e.length;r++)t+=e.charCodeAt(r).toString(16).padStart(2,"0");return t},hex2str:e=>{let t="";for(let r=0;r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t},concatBytes:(...e)=>{const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r},uint32ToBytes:e=>{const t=new Uint8Array(8);return t[0]=e[0]>>>24&255,t[1]=e[0]>>>16&255,t[2]=e[0]>>>8&255,t[3]=255&e[0],t[4]=e[1]>>>24&255,t[5]=e[1]>>>16&255,t[6]=e[1]>>>8&255,t[7]=255&e[1],t},bytesToUint32:e=>{const t=new Uint32Array(2);return t[0]=e[0]<<24|e[1]<<16|e[2]<<8|e[3],t[1]=e[4]<<24|e[5]<<16|e[6]<<8|e[7],t},hex2bytes:e=>{let t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++)t[r]=parseInt(e.substr(2*r,2),16);return t},bytes2hex:e=>Array.from(e).map((e=>e.toString(16).padStart(2,"0"))).join(""),toUint32:e=>{const t=Math.ceil(e.length/4),r=new Uint32Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(4*n)<<24|e.charCodeAt(4*n+1)<<16|e.charCodeAt(4*n+2)<<8|e.charCodeAt(4*n+3);return r},fromUint32:e=>{let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]>>>24&255,e[r]>>>16&255,e[r]>>>8&255,255&e[r]);return t.replace(/\0+$/,"")},flatten:function e(t,r=!1,n=[]){for(let s=0;s<t.length;s+=1){const o=t[s];r&&Array.isArray(o)?e(o,r,n):n.push(o)}return n}};var Pe={pkcs7Padding:(e,t)=>{const r=t-e.length%t,n=new Uint8Array(r).fill(r);return Ee.concatBytes(e,n)},pkcs7Unpadding:e=>{const t=e[e.length-1];return e.slice(0,-t)}};function Te(e,t){return e<<t|e>>>32-t}function Be(e,t){let r,n,s,o,i;return s=2147483648&e,o=2147483648&t,r=1073741824&e,n=1073741824&t,i=(1073741823&e)+(1073741823&t),r&n?2147483648^i^s^o:r|n?1073741824&i?3221225472^i^s^o:1073741824^i^s^o:i^s^o}function qe(e,t,r,n,s,o,i){return e=Be(e,Be(Be(function(e,t,r){return e&t|~e&r}(t,r,n),s),i)),Be(Te(e,o),t)}function Le(e,t,r,n,s,o,i){return e=Be(e,Be(Be(function(e,t,r){return e&r|t&~r}(t,r,n),s),i)),Be(Te(e,o),t)}function Re(e,t,r,n,s,o,i){return e=Be(e,Be(Be(function(e,t,r){return e^t^r}(t,r,n),s),i)),Be(Te(e,o),t)}function Fe(e,t,r,n,s,o,i){return e=Be(e,Be(Be(function(e,t,r){return t^(e|~r)}(t,r,n),s),i)),Be(Te(e,o),t)}function Ue(e){let t,r,n="",s="";for(r=0;r<=3;r++)t=e>>>8*r&255,s="0"+t.toString(16),n+=s.substr(s.length-2,2);return n}function Ie(e){let t,r,n,s,o,i,a,c,l,u=[];for(u=function(e){let t;const r=e.length,n=r+8,s=16*((n-n%64)/64+1),o=Array(s-1).fill(0);let i=0,a=0;for(;a<r;)t=(a-a%4)/4,i=a%4*8,o[t]=o[t]|e[a]<<i,a++;return t=(a-a%4)/4,i=a%4*8,o[t]=o[t]|128<<i,o[s-2]=r<<3,o[s-1]=r>>>29,o}(e),i=1732584193,a=4023233417,c=2562383102,l=271733878,t=0;t<u.length;t+=16)r=i,n=a,s=c,o=l,i=qe(i,a,c,l,u[t+0],7,3614090360),l=qe(l,i,a,c,u[t+1],12,3905402710),c=qe(c,l,i,a,u[t+2],17,606105819),a=qe(a,c,l,i,u[t+3],22,3250441966),i=qe(i,a,c,l,u[t+4],7,4118548399),l=qe(l,i,a,c,u[t+5],12,1200080426),c=qe(c,l,i,a,u[t+6],17,2821735955),a=qe(a,c,l,i,u[t+7],22,4249261313),i=qe(i,a,c,l,u[t+8],7,1770035416),l=qe(l,i,a,c,u[t+9],12,2336552879),c=qe(c,l,i,a,u[t+10],17,4294925233),a=qe(a,c,l,i,u[t+11],22,2304563134),i=qe(i,a,c,l,u[t+12],7,1804603682),l=qe(l,i,a,c,u[t+13],12,4254626195),c=qe(c,l,i,a,u[t+14],17,2792965006),a=qe(a,c,l,i,u[t+15],22,1236535329),i=Le(i,a,c,l,u[t+1],5,4129170786),l=Le(l,i,a,c,u[t+6],9,3225465664),c=Le(c,l,i,a,u[t+11],14,643717713),a=Le(a,c,l,i,u[t+0],20,3921069994),i=Le(i,a,c,l,u[t+5],5,3593408605),l=Le(l,i,a,c,u[t+10],9,38016083),c=Le(c,l,i,a,u[t+15],14,3634488961),a=Le(a,c,l,i,u[t+4],20,3889429448),i=Le(i,a,c,l,u[t+9],5,568446438),l=Le(l,i,a,c,u[t+14],9,3275163606),c=Le(c,l,i,a,u[t+3],14,4107603335),a=Le(a,c,l,i,u[t+8],20,1163531501),i=Le(i,a,c,l,u[t+13],5,2850285829),l=Le(l,i,a,c,u[t+2],9,4243563512),c=Le(c,l,i,a,u[t+7],14,1735328473),a=Le(a,c,l,i,u[t+12],20,2368359562),i=Re(i,a,c,l,u[t+5],4,4294588738),l=Re(l,i,a,c,u[t+8],11,2272392833),c=Re(c,l,i,a,u[t+11],16,1839030562),a=Re(a,c,l,i,u[t+14],23,4259657740),i=Re(i,a,c,l,u[t+1],4,2763975236),l=Re(l,i,a,c,u[t+4],11,1272893353),c=Re(c,l,i,a,u[t+7],16,4139469664),a=Re(a,c,l,i,u[t+10],23,3200236656),i=Re(i,a,c,l,u[t+13],4,681279174),l=Re(l,i,a,c,u[t+0],11,3936430074),c=Re(c,l,i,a,u[t+3],16,3572445317),a=Re(a,c,l,i,u[t+6],23,76029189),i=Re(i,a,c,l,u[t+9],4,3654602809),l=Re(l,i,a,c,u[t+12],11,3873151461),c=Re(c,l,i,a,u[t+15],16,530742520),a=Re(a,c,l,i,u[t+2],23,3299628645),i=Fe(i,a,c,l,u[t+0],6,4096336452),l=Fe(l,i,a,c,u[t+7],10,1126891415),c=Fe(c,l,i,a,u[t+14],15,2878612391),a=Fe(a,c,l,i,u[t+5],21,4237533241),i=Fe(i,a,c,l,u[t+12],6,1700485571),l=Fe(l,i,a,c,u[t+3],10,2399980690),c=Fe(c,l,i,a,u[t+10],15,4293915773),a=Fe(a,c,l,i,u[t+1],21,2240044497),i=Fe(i,a,c,l,u[t+8],6,1873313359),l=Fe(l,i,a,c,u[t+15],10,4264355552),c=Fe(c,l,i,a,u[t+6],15,2734768916),a=Fe(a,c,l,i,u[t+13],21,1309151649),i=Fe(i,a,c,l,u[t+4],6,4149444226),l=Fe(l,i,a,c,u[t+11],10,3174756917),c=Fe(c,l,i,a,u[t+2],15,718787259),a=Fe(a,c,l,i,u[t+9],21,3951481745),i=Be(i,r),a=Be(a,n),c=Be(c,s),l=Be(l,o);return Ue(i)+Ue(a)+Ue(c)+Ue(l)}const De=e=>{if("string"!=typeof e&&!(e instanceof Uint8Array))return"";return Ie("string"==typeof e?Ae.toUtf8Bytes(e):e)};var Me={md5:De,md5Base64:e=>{const t=De(e);if(!t)return"";const r=Ee.hex2bytes(t);return ke.bytesToBase64(r)}};const Ke=(e,t=!1)=>{const r=new Uint8Array(e);return t?ke.bytesToBase64(r):r.reduce(((e,t)=>e+String.fromCharCode(t)),"")};var ze={...Ee,...Pe,...Ae,...ke,...Me,str2ab:(e="",t=!1)=>{if(t)return ke.base64ToBytes(e).buffer;{const t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let t=0,n=e.length;t<n;t++)r[t]=e.charCodeAt(t);return t}},ab2str:Ke,utf8ToBase64:e=>Y.isBrowser?btoa(e):Buffer.from(e,"utf-8").toString("base64"),base64ToUtf8:e=>Y.isBrowser?atob(e):Buffer.from(e,"base64").toString("utf-8"),getRandomBytes:e=>{const t=new Uint8Array(e);for(let r=0;r<e;r++)t[r]=Ce.random(256);return t},textEncode:e=>Ae.toUtf8Bytes(e),textDecode:e=>Ae.fromUtf8Bytes(new Uint8Array(e)),toDataUrl:(e,t="text/plain")=>e?"string"==typeof e?`data:${t};base64,`+ke.toBase64(e):Y.isArrayBuffer(e)?`data:${t};base64,`+Ke(e,!0):"":""};const Ne=e=>{try{const t=ze.ab2str(e,!0);return t.match(/.{1,64}/g)?.join("\n")||""}catch(e){return""}},He=(e="",t="PUBLIC KEY")=>`-----BEGIN ${t}-----\n${e}\n-----END ${t}-----`;var Ve={RSAPublicKey:"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApiLWsPmoaiGdr02AmPYS\n4/VgxyJNNJSK2VICirXl4P8qAP3b/6GIs7Hwnsmmuj7gledJ0XiZodFjDNgQEZEG\nj4K9KX8NixcrJwnTQV5UebiERdj+64ihwqPVWo9dIOj43ZPJ8f4dritJv5tnQaBb\nb9zTkU3Ofzk1g8RU00Ith6quOGZcU2IWC4OQ+5YiZvzrCBKEvjFwK2OvGq43tI51\nGaZdI9H09jisypqefsMvv6esjEQQOtl+WGlI5fof7KZUt3dppvuDI4CYgeXIoKKL\n9T9qDl8F9aNSs3XHx32YyA7L1FraFD6PjqRjueIFp2emsXQcIMeMqqgVyV+4qb+0\nuwIDAQAB",RSAPrivateKey:"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmItaw+ahqIZ2v\nTYCY9hLj9WDHIk00lIrZUgKKteXg/yoA/dv/oYizsfCeyaa6PuCV50nReJmh0WMM\n2BARkQaPgr0pfw2LFysnCdNBXlR5uIRF2P7riKHCo9Vaj10g6Pjdk8nx/h2uK0m/\nm2dBoFtv3NORTc5/OTWDxFTTQi2Hqq44ZlxTYhYLg5D7liJm/OsIEoS+MXArY68a\nrje0jnUZpl0j0fT2OKzKmp5+wy+/p6yMRBA62X5YaUjl+h/splS3d2mm+4MjgJiB\n5cigoov1P2oOXwX1o1KzdcfHfZjIDsvUWtoUPo+OpGO54gWnZ6axdBwgx4yqqBXJ\nX7ipv7S7AgMBAAECggEAE1kuWLkSsJ2OoDpt9iJ+a7cJmNd5V1zPWOTwr9fkWFJP\nQYNPKlPVOFxKUivY84rcHAkuMyuQ9OQOXZISOQGDWpZW0mzeFmtR1r+Rr2S9gNmI\n6huOAL9OW306HUxiA7GuPhv2omy+Zyjac2q1WVLEI2B78Um2+WEfxuNIH7xu0gRR\nz/wluevMBQlv6hSeMESP6e9s2kB+FuM4bL7+1sexwS1TudKbHybujaiB8un9E2V3\nC9BkE6yf00Rhvii6Q4E4w3PFQfcBEFnjOD0S2Watx8GIbYjlYvtquy8Yj7OtyZB6\nw5sxyaYhKVVnkpGAbOgaCj94ABYF47VuwXr45I4PzQKBgQDp6svzD+QKlARjcWgO\nrH7UEpFX6m49G6Ib4c63xEg9+GesTgfDxoYxtXDKsC7I8OwMrmffJGbyfjaAvzmg\nicM3Y7kF6UPO9+q2mBRsyhoJSNONTeUVyoFSc+QDsVgndlTZIjqC5XLrONGaSPLJ\n7jJzqKhp3NQcpO8+xY0d7Efm1QKBgQC10fCNuF1LUTYgsWvvGxTiCCAIBurZmHU+\nGMb2Okfoco/P+QNl1jEba91AC7FudW3g/lRn0vTnDajlNoz2/CKunrTKN4/9lEBI\ntiwEOvhc5FtapRifSfrrNwFqPM+LijvOkcteWVhAUWCEP1eLmpnXGqfmZxnTaaVe\n5DyDgyAVTwKBgQDhEawfOQEANJ9sV2f6BnsZ7quuXcCoR3hZP5G5O8EO735BSesq\nsk/YcG4QeCjr6vQU15LWH552YH5srpHyJ9uP5gHW8DTwZZaPDhFJA8S9fjcfVP3B\nU9HO1fdknjTl83N8YPTPkZpbPZZfzyTcqrYclwFEqtfkn8YbLdW0Hu6n6QKBgDEv\njvS3uD1ExfDILlurptWSvx+Mx4F/1c+roj8/+u3t9+uaAIpPDE/PuTW3NBOens/r\n3WeM0QWkU1lWjYHPKY61jlDaARDnRxCkf3nRfhibCf+Wg/erar6wzagwtTCZf55d\nIHfwkYgsu4BrJkK02wMuydbxczIW9U6bTaeCFG7PAoGAN3oHYzTEBwZ7ZKv11QiQ\nEp/HeHBvD8fH/e1uVyBel4Co7NO5pV2s8qjS8+3+jxumKLNXCirjqwHo03YCdzxi\ncy4GFDsukHmDQ7FF9VC4QV0fJ0F7jGYE9nNZ+K9qwS5KrihOSBPxj0HptrF6TSOw\nBTSwr0byL3TC0m0StkSNKpo=",generateKeys:async e=>{try{const t=await e.generateKey({name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:"SHA-256"},!0,["encrypt","decrypt"]),r=await window.crypto.subtle.exportKey("spki",t.publicKey),n=Ne(r),s=He(n,"PUBLIC KEY"),o=await window.crypto.subtle.exportKey("pkcs8",t.privateKey),i=Ne(o);return{publicKey:n,publicKeyPem:s,privateKey:i,privateKeyPem:He(i,"PRIVATE KEY")}}catch(e){return console.error("generateKeys failed:",e),{publicKey:"",publicKeyPem:"",privateKey:"",privateKeyPem:""}}},format_pem_key:He,format_pem_content:Ne,encrypt:async(e,t,r)=>{try{const n=(new TextEncoder).encode(t),s=await e.importKey("spki",ze.str2ab(r,!0),{name:"RSA-OAEP",hash:"SHA-256"},!0,["encrypt"]),o=[];for(let t=0;t<n.length;t+=190){let r=n.slice(t,t+190),i=await e.encrypt({name:"RSA-OAEP"},s,r);o.push(new Uint8Array(i))}const i=ze.concatBytes(...o);return ze.bytesToBase64(i)}catch(e){return console.error("[debug] encrypt",e),""}},decrypt:async(e,t,r)=>{try{const n=ze.base64ToBytes(t),s=await e.importKey("pkcs8",ze.str2ab(r,!0),{name:"RSA-OAEP",hash:"SHA-256"},!0,["decrypt"]),o=[],i=256;for(let t=0;t<n.length;t+=i){let r=n.slice(t,t+i),a=await e.decrypt({name:"RSA-OAEP"},s,r);o.push(new Uint8Array(a))}const a=ze.concatBytes(...o);return(new TextDecoder).decode(a)}catch(e){return console.error("decrypt failed:",e),""}}};const We=()=>e.webcrypto.subtle;var Ze={generateKeys:()=>Ve.generateKeys(We()),encrypt:async(e,t)=>Ve.encrypt(We(),e,t),decrypt:async(e,t)=>Ve.decrypt(We(),e,t),encode:async e=>Ve.encrypt(We(),e,Ve.RSAPublicKey),decode:async e=>Ve.decrypt(We(),e,Ve.RSAPrivateKey)};const Je="undefined"!=typeof window?window.crypto.subtle:{};var Ye={generateKeys:()=>Ve.generateKeys(Je),encrypt:async(e,t)=>Ve.encrypt(Je,e,t),decrypt:async(e,t)=>Ve.decrypt(Je,e,t),encode:async e=>Ve.encrypt(Je,e,Ve.RSAPublicKey),decode:async e=>Ve.decrypt(Je,e,Ve.RSAPrivateKey)};const Qe=2654435769,Ge=(e,t)=>{let r=0;for(let n=0;n<32;n++)r=r+Qe>>>0,e[0]=e[0]+((e[1]<<4)+t[0]^e[1]+r^(e[1]>>>5)+t[1])>>>0,e[1]=e[1]+((e[0]<<4)+t[2]^e[0]+r^(e[0]>>>5)+t[3])>>>0;return e},Xe=(e,t)=>{let r=3337565984;for(let n=0;n<32;n++)e[1]=e[1]-((e[0]<<4)+t[2]^e[0]+r^(e[0]>>>5)+t[3])>>>0,e[0]=e[0]-((e[1]<<4)+t[0]^e[1]+r^(e[1]>>>5)+t[1])>>>0,r=r-Qe>>>0;return e},et=e=>{const t=ze.str2bytes(e),r=new Uint32Array(4);return r[0]=t[0]<<24|t[1]<<16|t[2]<<8|t[3],r[1]=t[4]<<24|t[5]<<16|t[6]<<8|t[7],r[2]=t[8]<<24|t[9]<<16|t[10]<<8|t[11],r[3]=t[12]<<24|t[13]<<16|t[14]<<8|t[15],r},tt=(e,t)=>{const r=ze.pkcs7Padding(e,8),n=et(t),s=[];for(let e=0;e<r.length;e+=8){const t=ze.bytesToUint32(r.slice(e,e+8)),o=Ge(t,n);s.push(ze.uint32ToBytes(o))}return ze.concatBytes(...s)},rt=(e,t)=>{const r=et(t),n=[];for(let t=0;t<e.length;t+=8){const s=ze.bytesToUint32(e.slice(t,t+8)),o=Xe(s,r);n.push(ze.uint32ToBytes(o))}const s=ze.concatBytes(...n);return ze.pkcs7Unpadding(s)};var nt={TEAKey:"33576f37387276645054657a6831686e454664424e5652456f47794835795942",encrypt:Ge,decrypt:Xe,toTeaKey:et,encode:(e,t)=>{const r=ze.textEncode(e),n=tt(r,t);return ze.bytesToBase64(n)},decode:(e,t)=>{const r=ze.base64ToBytes(e),n=rt(r,t);return ze.textDecode(n.buffer)},encodeBytes:tt,decodeBytes:rt};function st(e,t,r){const{length:n}=e;return r=void 0===r?n:r,!t&&r>=n?e:function(e,t,r){let n=null==e?0:e.length;if(!n)return[];(t=null==t?0:t)<0&&(t=-t>n?0:n+t),(r=(r=void 0===r?n:r)>n?n:r)<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;let s=-1;const o=new Array(n);for(;++s<n;)o[s]=e[s+t];return o}(e,t,r)}const ot=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff\\ufe0e\\ufe0f]");function it(e){return ot.test(e)}const at="\\ud800-\\udfff",ct=`[${at}]`,lt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",ut="\\ud83c[\\udffb-\\udfff]",ft=`[^${at}]`,ht="(?:\\ud83c[\\udde6-\\uddff]){2}",dt="[\\ud800-\\udbff][\\udc00-\\udfff]",pt=`${`(?:${lt}|${ut})`}?`,gt="[\\ufe0e\\ufe0f]?",yt=gt+pt+`(?:\\u200d(?:${[ft,ht,dt].join("|")})${gt+pt})*`,mt=`(?:${[`${ft}${lt}?`,lt,ht,dt,ct].join("|")})`,bt=RegExp(`${ut}(?=${ut})|${mt+yt}`,"g");function wt(e){return it(e)?function(e){return e.match(bt)||[]}(e):function(e){return e.split("")}(e)}function _t(e){return t=>{if(!t)return"";const r=it(t)?wt(t):void 0,n=r?r[0]:t[0],s=r?st(r,1).join(""):t.slice(1);return n[e]()+s}}const vt="\\ud800-\\udfff",xt="\\u2700-\\u27bf",At="a-z\\xdf-\\xf6\\xf8-\\xff",St="A-Z\\xc0-\\xd6\\xd8-\\xde",kt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ot="['’]",$t=`[${kt}]`,jt=`[${xt}]`,Ct=`[${At}]`,Et=`[^${vt}${kt+"\\d"+xt+At+St}]`,Pt="(?:\\ud83c[\\udde6-\\uddff]){2}",Tt="[\\ud800-\\udbff][\\udc00-\\udfff]",Bt=`[${St}]`,qt=`(?:${Ct}|${Et})`,Lt=`(?:${Bt}|${Et})`,Rt=`(?:${Ot}(?:d|ll|m|re|s|t|ve))?`,Ft=`(?:${Ot}(?:D|LL|M|RE|S|T|VE))?`,Ut="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]|\\ud83c[\\udffb-\\udfff])?",It="[\\ufe0e\\ufe0f]?",Dt=It+Ut+`(?:\\u200d(?:${[`[^${vt}]`,Pt,Tt].join("|")})${It+Ut})*`,Mt=`(?:${[jt,Pt,Tt].join("|")})${Dt}`,Kt=RegExp([`${Bt}?${Ct}+${Rt}(?=${[$t,Bt,"$"].join("|")})`,`${Lt}+${Ft}(?=${[$t,Bt+qt,"$"].join("|")})`,`${Bt}?${qt}+${Rt}`,`${Bt}+${Ft}`,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",Mt].join("|"),"g");const zt=RegExp.prototype.test.bind(/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/),Nt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Ht(e,t){if(void 0===t){const t=zt(e)?function(e){return e.match(Kt)}(e):function(e){return e.match(Nt)}(e);return t||[]}return e.match(t)||[]}function Vt(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return`${e.map((e=>null==e?e:Vt(e)))}`;if(Y.isSymbol(e))return e.toString();const t=`${e}`;return"0"==t&&1/e==-Infinity?"-0":t}const Wt=_t("toUpperCase"),Zt=_t("toLowerCase");var Jt={toString:Vt,startCase:e=>Ht(`${e}`.replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+Wt(t)),""),snakeCase:e=>Ht(Vt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"_":"")+t.toLowerCase()),""),kebabCase:e=>Ht(Vt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"-":"")+t.toLowerCase()),""),camelCase:e=>Ht(Vt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>(t=t.toLowerCase(),e+(r?Wt(t):t))),""),upperCase:e=>Ht(Vt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toUpperCase()),""),upperFirst:Wt,lowerCase:e=>Ht(Vt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toLowerCase()),""),lowerFirst:Zt,splitOnFirst:(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===e||""===t)return[];const r=e.indexOf(t);return-1===r?[]:[e.slice(0,r),e.slice(r+t.length)]},parseValue:(e,{number:t=!1,boolean:r=!1}={})=>{let n=e;return e&&"string"==typeof e?(t&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?n=Number(e):!r||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(n="true"===e.toLowerCase()),n):n},replace:(e,t)=>{if(!e)return e;if(!t)return e;let r=e;return((Array.isArray(t)?t:[t])||[]).forEach((e=>{e.key&&e.value&&(r=r.replace(new RegExp(e.key,e.flag||""),e.value))})),r},jsonFormat:e=>{try{if(!e)return"";const t=JSON.parse(e);return JSON.stringify(t,null,2)}catch(t){return e}},toLines:(e,t="\n")=>e?e.split(t).map((e=>e.trim())).filter((e=>!!e)):[]};var Yt={logString:e=>{try{const t=JSON.stringify(e);return void 0===t?"":nt.encode(t,ze.hex2str(nt.TEAKey))}catch(e){return""}},logParse:e=>{try{if(!e)return"";const t=nt.decode(e,ze.hex2str(nt.TEAKey));return Jt.jsonFormat(t)}catch(e){return""}},logRString:async e=>{try{const t=JSON.stringify(e);if(void 0===t)return"";return Y.isBrowser?await Ye.encode(t):await Ze.encode(t)}catch(e){return""}},logRParse:async e=>{try{if(!e)return"";const t=Y.isBrowser?await Ye.decode(e):await Ze.decode(e);return Jt.jsonFormat(t)}catch(e){return""}}};const Qt=(e,t,r)=>e*(1-r)+t*r,Gt=(e,t,r)=>e===t?0:(r-e)/(t-e),Xt=(e,t,r)=>({x:Qt(e.x,t.x,r),y:Qt(e.y,t.y,r)}),er=(e,t,r,n)=>{const s=Xt(e,t,n),o=Xt(t,r,n);return Xt(s,o,n)},tr=(e,t)=>{if(1===e.length)return e[0];const r=[];for(let n=0;n<e.length-1;n++)r.push({x:(1-t)*e[n].x+t*e[n+1].x,y:(1-t)*e[n].y+t*e[n+1].y});return tr(r,t)},rr=(e,t)=>{if(0===t||t===e)return 1;let r=1;for(let n=1;n<=t;n++)r=r*(e-n+1)/n;return r};var nr={bezier1:Xt,bezier2:er,bezier3:(e,t,r,n,s)=>{const o=er(e,t,r,s),i=er(t,r,n,s);return Xt(o,i,s)},bezier:tr,bezierCurve:(e,t)=>{const r=e.length-1;let n=0,s=0;for(let o=0;o<=r;o++){const i=rr(r,o)*Math.pow(1-t,r-o)*Math.pow(t,o);n+=i*e[o].x,s+=i*e[o].y}return{x:n,y:s}},lerp:Qt,lerpAverage:(e,t,r="")=>{if(e.length<=0)return 0;if(1===e.length)return e[0].x;if(2===e.length)return Qt(e[0].y,e[1].y,.5);const n=[],s=e.slice().sort(((e,t)=>e.x-t.x)),o=s.length,i=s[0].x,a=s[o-1].x;for(let e=i;e<=a;e+=t){let t=0;for(let n=0;n<o-1;n++){const o=s[n],i=s[n+1];if(e>=o.x&&e<=i.x){if("lerp"===r){const r=Gt(o.x,i.x,e);t=Xt(o,i,r).y}else t=o.y;break}}e>s[o-1].x&&(t=s[o-1].y),n.push(t)}return n.reduce(((e,t)=>e+t),0)/n.length},proportion:Gt};var sr={...me,...Yt,...nr,sleep:me.delay,run:async function(e,t=0){if(t<=0)return me.safeRun(e);const r=t>0?Date.now():0,n=await me.safeRun(e),s=Date.now()-r;return s<t&&await me.delay(t-s),n},exec:(e,t="")=>xe.I.exec(e,t),debounce:fe,throttle:function(e,t=300,r={}){let n=!0,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return Y.isObject(r)&&(n=r.leading?!!r.leading:n,s=r.trailing?!!r.trailing:s),fe(e,t,{leading:n,maxWait:t,trailing:s})},task:e=>new he(e),mutex:function(e){var t=null;return async function(...r){if((t=this||t||{}).__ddMutex)return!1;t.__ddMutex=!0;try{e&&await Promise.resolve(e.apply(this,r))}catch(e){console.log(e)}finally{t.__ddMutex=!1}}},polling:async function(e={}){const{func:t,interval:r=100,times:n=1e3}=e;let s=n;const o=r<1?100:r;do{if(!t)break;const[e,r]=await me.to(Promise.resolve(t()));if(e||!1===r)break;s>0&&s--,0!==s&&await me.delay(o)}while(-1===n||s>0)},pipe:(e,t)=>xe.I.pipeline.push(e,t),pipeline:(e=1)=>new ve(e),safeTask:(e,t)=>new _e(e,t)};const or=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=or(e[r]));return t};const ir=(e,t,r={})=>{const n=e||{},{ignoreUndefined:s=!0,cover:o=!1}=r;if(!t)return n;for(const i in t){if(!t.hasOwnProperty(i))continue;const a=t[i];"object"!=typeof a||"object"!=typeof e[i]||o?s&&void 0===a||r.ignoreNull&&null===a||r.ignoreZero&&0===a||r.ignoreEmptyArray&&Array.isArray(a)&&a.length<=0||r.ignoreEmptyString&&"string"==typeof a&&""===a.trim()||(n[i]=a):n[i]=ar(e[i],a,r)}return n},ar=(e,t,r={})=>{let n={};return n=e&&"object"==typeof e&&!Array.isArray(e)?ir(e,t,r):ir({...e},t,r),n},cr=(e,t,r={})=>ir({...e},t,{cover:!0,...r}),lr=(e,t,r,n,s=!1)=>{if(!e||!t||!r)return;let o=e[t];null!==o&&"object"==typeof o&&s&&Object.keys(o).forEach((e=>{lr(o,e,r,n,s)})),Object.defineProperty(e,t,{configurable:!0,enumerable:!0,set:i=>{r.call(n,i,o),o=i,s&&lr(e,t,r,n,s)},get:()=>o})};var ur={copy:(e,t={})=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r))return r;const{fields:n=[],camel:s=!1,pure:o=!0}=t;if((!n||n.length<=0)&&!s)return r;const i={};for(const e in r){if(!r.hasOwnProperty(e))continue;const a=s?o&&e.startsWith("_")?e:Jt.camelCase(e):e;if(n.length>0&&!n.includes(e)&&!n.includes(a))continue;const c=r[e];t.ignoreNull&&null===c||(t.ignoreZero&&0===c||t.ignoreEmptyArray&&Array.isArray(c)&&c.length<=0||t.ignoreEmptyString&&"string"==typeof c&&""===c.trim()||(i[a]=c))}return i},clone:or,merge:ar,isEmpty:e=>0!==e&&(!e||"object"==typeof e&&(Array.isArray(e)?!e.length:Object.keys(e).length<=0)),parseValue:(e,{number:t=!1,boolean:r=!1}={})=>{if(!e&&"object"!=typeof e)return e;for(const[n,s]of Object.entries(e))if("object"==typeof s&&null!==s)for(const[e,n]of Object.entries(s))s[e]=Jt.parseValue(n,{number:t,boolean:r});else e[n]=Jt.parseValue(s,{number:t,boolean:r});return e},cloneClass:function(e){return e?"object"!=typeof e?e:Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e)):e},combine:cr,combines:(e,t={})=>{let r={};if(!e||e.length<=0)return r;const{ignoreUndefined:n=!0,ignoreNull:s=!0,ignoreZero:o=!0,ignoreEmptyArray:i=!0,ignoreEmptyString:a=!0,cover:c=!0}=t;return e.forEach((e=>r=cr(r,e,{ignoreUndefined:n,ignoreNull:s,ignoreZero:o,ignoreEmptyArray:i,ignoreEmptyString:a,cover:c}))),r},observe:lr,find:(e,t)=>{if(e&&"object"==typeof e)return Object.entries(e||{}).find((([e,r])=>!(!t||!t(e,r))))}};const fr=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:s=!0,uri:o=!0,parseNumber:i=!1,parseBoolean:a=!1}={}){t=t||"&",r=r||"=";const c={};if("string"!=typeof e||0===e.length)return c;const l=/\+/g,u=n||1e3;let f=(e=e.split(t)).length;u>0&&f>u&&(f=u);for(let t=0;t<f;++t){let n,i,a,u,f=e[t].replace(l,"%20"),h=f.indexOf(r);h>=0?(n=f.substr(0,h),i=f.substr(h+1)):(n=f,i=""),a=o?decodeURIComponent(n):n,u=o?decodeURIComponent(i):i,k.hasOwnProperty.call(c,a)&&s?Array.isArray(c[a])?c[a].push(u):c[a]=[c[a],u]:c[a]=u}return ur.parseValue(c,{number:i,boolean:a}),c},hr=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},dr=function(e,t=!0){return t?encodeURIComponent(e):e},pr=function(e,{cleanZero:t=!1,cleanNull:r=!1,cleanWhitespace:n=!1}={}){return!(!t||0!==e)||(!(!r||null!=e)||!(!n||"string"!=typeof e||""!==e.trim()))},gr=/^(https?):\/\/([\w.\_\-]+)(?::(\d+))?/,yr=e=>{const t=(e||"").replace(/\\/g,"/").split("?")[0],r=t.match(/[\/]?([\w\_\-]+)[.]?[\w]*[?]?$/),n=r?r[1]:"",s=t.lastIndexOf("/")+1,o=t.substring(s),i=o.lastIndexOf("."),a=o.substring(0,i)||"",c=i>=0?o.substring(i):"";return{route:t.substring(0,s)||"",page:n,name:o,withoutExtension:a,extname:c}},mr=e=>{const t={href:e,url:"",origin:"",protocol:"",host:"",port:"",query:""};if(!e)return t;const r=e.match(gr);if(!r||r.length<4)return t;const n=r[3]||"",s=e.split("?");return t.url=s[0],t.origin=r[0],t.protocol=`${r[1]}:`,t.host=`${r[2]}${n?":"+n:""}`,t.port=n,t.query=s.length>1?s[1]:"",t},br=(e,t)=>{if(e===t)return!0;if(!e)return!1;if(!t)return!1;if("*"===t)return!0;const r=t.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp("^"+r+"$").test(e)};var wr={parse:fr,stringify:function(e,{sep:t="&",eq:r="=",name:n=null,uri:s=!0,cleanZero:o=!1,cleanNull:i=!1,cleanWhitespace:a=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const c=dr(hr(n),s)+r,l=e[n];return Array.isArray(l)?l.map((function(e){return c+dr(hr(e),s)})).join(t):pr(l,{cleanZero:o,cleanNull:i,cleanWhitespace:a})?"":c+dr(hr(l),s)})).filter(Boolean).join(t):n?dr(hr(n),s)+r+dr(hr(e),s):""},https:e=>e?e.replace(/^http[s]?/,"https"):e,parseUrl:e=>{const t=mr(e),{origin:r="",url:n="",query:s=""}=t,o=yr(n),i=fr(s,{multiple:!0,uri:!1});return{...t,...o,pathname:n.substring(n.indexOf(r||"")+r.length),params:i}},parsePath:yr,parseHost:mr,join:(...e)=>{const t=[];let r=!1;return e.forEach((e=>{const n=e.trim();if(""===n)return;if(/^(\w+):\/\//.test(n))return t.length=0,t.push(n),void(r=!0);n.split("/").forEach((e=>{"."!==e&&""!==e&&(".."===e?t.length>0&&".."!==t[t.length-1]?t.pop():r||t.push(".."):t.push(e))}))})),t.join("/")},shExpMatch:br,isLocalIPAddress:e=>!!e&&!!(br(e,"127.0.0.1")||br(e,"localhost")||br(e,"192.168.*.*")),parseFileUrl:e=>{const t={href:e,file:"",url:"",protocol:"",host:"",query:"",params:{}};if(!e)return t;let r=e?e.replace(/\\/g,"/"):"";r.startsWith("file://")&&!r.startsWith("file:///")?r="file:///"+r.slice(7):r.startsWith("file:/")&&!r.startsWith("file:///")&&(r="file:///"+r.slice(6));const n=r.match(/^file:\/\/(?:([^\/\\]+))?(\/.*)?$/);if(!n||n.length<3)return t;t.protocol="file:";const s=n[1]||"",o=n[2]||"";t.host=s;const i=o.split("?");return t.url=t.protocol+`//${t.host}`+i[0],t.file=i[0],t.query=i.length>1?i[1]:"",t.params=fr(t.query,{multiple:!0,uri:!1}),t},isPrivateIP:e=>!!e&&!!(br(e,"localhost")||br(e,"127.0.0.1")||br(e,"127.*")||br(e,"10.*")||br(e,"172.16.*")||br(e,"172.17.*")||br(e,"172.18.*")||br(e,"172.19.*")||br(e,"172.2?.*")||br(e,"172.3[0-1].*")||br(e,"192.168.*")),isIP:e=>{const t=(e||"").trim();return/^(\d+).(\d+).(\d+).(\d+)$/.test(t)}};class _r{_loopTimer;_event=new h;started=!1;interval=0;constructor(e=0){this.interval=e||500}start(){return this.started||(this.stop(),this._loopTimer=setInterval((()=>{this._handleLoop()}),this.interval),this.started=!0),this}stop(){return this._loopTimer?(clearInterval(this._loopTimer),this._loopTimer=0,this.started=!1,this):this}restart(){return this.stop(),this.start(),this}on(e){return this._event.on("frame",e),this}off(e){return e?(this._event.off("frame",e),this):this}_handleLoop(){this._event.emit("frame")}}var vr={oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3};class xr{date;timestamp=0;yyyy=0;yy="";M=0;MM="";d=0;dd="";h=0;hh="";m=0;mm="";s=0;ss="";S=0;SS="";SSS="";constructor(e){if(!e)return;const t="string"==typeof e||"number"==typeof e?new Date(e):e;t&&(this.date=t,this.timestamp=t.getTime(),this.toDate())}toDate(){return this.date?(this.yyyy=this.date.getFullYear(),this.yy=`${this.yyyy}`.substr(2),this.M=this.date.getMonth()+1,this.MM=(this.M<10?"0":"")+this.M,this.d=this.date.getDate(),this.dd=(this.d<10?"0":"")+this.d,this.h=this.date.getHours(),this.hh=(this.h<10?"0":"")+this.h,this.m=this.date.getMinutes(),this.mm=(this.m<10?"0":"")+this.m,this.s=this.date.getSeconds(),this.ss=(this.s<10?"0":"")+this.s,this.S=this.date.getMilliseconds(),this.SS=(this.S<10?"0":"")+this.S,this.SSS=this.S.toString().padStart(3,"0"),this):this}toCountdown(e=""){const t={countdown:0,timestamp:0,seconds:0,d:0,dd:"",h:0,hh:"",m:0,mm:"",s:0,ss:"",S:0,SS:"",SSS:"",desc:""};if(!this.timestamp)return t;t.timestamp=this.timestamp,t.countdown=Math.max(t.timestamp-Date.now(),0),t.seconds=Math.floor(t.countdown/vr.oneSecond);let r=t.countdown;t.d=Math.floor(r/vr.oneDay),t.dd=(t.d<10?"0":"")+t.d,r%=vr.oneDay,t.h=Math.floor(r/vr.oneHour),t.hh=(t.h<10?"0":"")+t.h,r%=vr.oneHour,t.m=Math.floor(r/vr.oneMinute),t.mm=(t.m<10?"0":"")+t.m,r%=vr.oneMinute,t.s=Math.floor(r/vr.oneSecond),t.ss=(t.s<10?"0":"")+t.s,r%=vr.oneSecond,t.S=r,t.SS=(t.S<10?"0":"")+t.S,t.SSS=t.S.toString().padStart(3,"0");let n=e;return n||(n=t.countdown>vr.oneHour?"hh:mm:ss":t.countdown>vr.oneMinute?"mm:ss":"ss"),t.desc=n.replace(/\bdd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>t[e])),t}add(e=0){return e?(this.timestamp=this.timestamp+e,this.date=new Date(this.timestamp),this.toDate(),this):this}format(e="yyyy-MM-dd hh:mm:ss"){return e.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>this[e]))}static get timezoneOffset(){return(new Date).getTimezoneOffset()/60}static getLocalTime(e=0){const t=new Date,r=t.getTime(),n=6e4*t.getTimezoneOffset();return new Date(r+n+36e5*e)}}const Ar=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?Or(e):e;return r?Sr(r).format(t):""},Sr=e=>{const t="string"==typeof e||"number"==typeof e?Or(e):e;return new xr(t||0)};function kr({year:e=0,month:t=0,date:r=0,hour:n=0,minute:s=0,second:o=0}){const i=`${e||"yyyy"}/${t||"MM"}/${r||"dd"} ${n}:${s}:${o}`;return new Date(Ar(Date.now(),i)).getTime()}function Or(e){if(!e)return;let t;return"string"==typeof e?t=new Date(e):"number"==typeof e&&(t=10==e.toString().length?new Date(1e3*e):new Date(e)),t}var $r={...vr,now:function(){return Sr(new Date)},isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),parseTimestamp:kr,todayZero:()=>kr({}),format:Ar,countdown:(e,t="")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";return Sr(r).toCountdown(t)},dtime:Sr,loopFrame:(e=500)=>new _r(e),getTimezoneOffset:()=>xr.timezoneOffset,getLocalTime:xr.getLocalTime,toDate:Or};const jr=e=>ke.toBase64(e);var Cr={encode:jr,decode:e=>ke.fromBase64(e),encodeByOss:e=>jr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};var Er={...u,base64:Cr,tea:nt,uuid:f,guid:(e,t=!1,r="")=>{const n=f(e||32);return t?$r.now().format("yyyyMMddhhmmss")+r+n:n},getHexString:e=>{const t=u.keyChars;let r="";const n=t.length;for(let s=0;s<e;s++)r+=t.charAt(Math.floor(Math.random()*n));return r}};const Pr=(e,t,r=8)=>{if(e===t)return!0;if(null==e||null==t||"object"!=typeof e||"object"!=typeof t)return!1;if(r<=0)return!1;if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;const n=Object.prototype.toString.call(e);if(n!==Object.prototype.toString.call(t))return!1;switch(n){case"[object Array]":return Tr(e,t,r);case"[object Map]":return Br(e,t,r);case"[object Set]":return qr(e,t,r);case"[object Object]":return Lr(e,t,r);default:return Rr(e,t,n)}},Tr=(e,t,r=1/0)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Pr(e[n],t[n],r-1))return!1;return!0},Br=(e,t,r=1/0)=>{if(e.size!==t.size)return!1;for(const[n,s]of e)if(!t.has(n)||!Pr(s,t.get(n),r-1))return!1;return!0},qr=(e,t,r=1/0)=>{if(e.size!==t.size)return!1;for(const n of e)if(![...t].some((e=>Pr(n,e,r-1))))return!1;return!0},Lr=(e,t,r=1/0)=>{const n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(const o of n)if(!s.includes(o)||!Pr(e[o],t[o],r-1))return!1;const o=Object.getOwnPropertySymbols(e),i=Object.getOwnPropertySymbols(t);if(o.length!==i.length)return!1;for(const n of o)if(!i.includes(n)||!Pr(Reflect.get(e,n),Reflect.get(t,n),r-1))return!1;return!0},Rr=(e,t,r)=>{switch(r){case"[object RegExp]":return String(e)===String(t);case"[object Date]":return e.getTime()===t.getTime();case"[object ArrayBuffer]":return Fr(e,t);default:return e===t}},Fr=(e,t)=>{if(e.byteLength!==t.byteLength)return!1;const r=new Uint8Array(e),n=new Uint8Array(t);for(let e=0;e<r.length;e++)if(r[e]!==n[e])return!1;return!0};var Ur={isEqual:Pr,isEqualArray:Tr,isEqualObject:Lr,isEqualValue:Rr,isEqualAB:Fr,isEqualDeep:(e,t)=>Pr(e,t,1/0)};const Ir=(e,t=new WeakMap)=>{if(null===e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);let r;if(Array.isArray(e)){r=[],t.set(e,r);for(const n of e)r.push(Ir(n,t))}else if(e instanceof Date)r=new Date(e);else if(e instanceof RegExp)r=new RegExp(e.source,e.flags);else if(e instanceof Map){r=new Map,t.set(e,r);for(const[n,s]of e.entries())r.set(Ir(n,t),Ir(s,t))}else if(e instanceof Set){r=new Set,t.set(e,r);for(const n of e.values())r.add(Ir(n,t))}else if("object"==typeof e){r={},t.set(e,r);for(const[n,s]of Object.entries(e))r[n]=Ir(s,t)}return r};var Dr={copy:(e,t={})=>{if(null==e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r||null===r)return r;if(Array.isArray(r))return r;const{fields:n=[],camel:s=!1,pure:o=!0,...i}=t,a={},c=[{condition:i.ignoreNull,test:e=>null===e},{condition:i.ignoreZero,test:e=>0===e},{condition:i.ignoreEmptyArray,test:e=>Array.isArray(e)&&0===e.length},{condition:i.ignoreEmptyString,test:e=>"string"==typeof e&&""===e.trim()}].filter((e=>e.condition));for(const[e,t]of Object.entries(r)){const r=!s||o&&e.startsWith("_")?e:Jt.camelCase(e);n.length>0&&!n.includes(e)&&!n.includes(r)||(c.some((e=>e.test(t)))||(a[r]=t))}return a},clone:Ir,cloneClass:function(e){return null==e||"object"!=typeof e?e:Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}};const Mr=(e,t)=>{if(e===t)return!0;if(!e||!t)return!1;if("*"===t)return!0;const r=t.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp("^"+r+"$").test(e)};var Kr={shExpMatch:Mr,shExpMatchs:(e,t)=>{if(!e||!t)return!1;let r=[];if(Array.isArray(t))r=t;else{if("string"!=typeof t)return!1;r=[t]}for(const t of r){if("*"===t)return!0;if(Mr(e,t))return!0}return!1}};const zr="[object Object]",Nr="[object Array]",Hr=k.getTag,Vr=e=>{if(Hr(e)!==zr)return e;const t={};for(const r in e)if(/\w+\.\w+/g.test(r)&&!r.includes("[")){const n=r.split(".");let s=t;for(let e=0;e<n.length-1;e++){const t=n[e];Hr(s[t])!==zr&&(s[t]={}),s=s[t]}s[n[n.length-1]]=e[r]}else t[r]=e[r];return t},Wr=(e,t,r=!1)=>{if(e===t)return;const n=Hr(e);if(n===Hr(t))if(n===Nr&&e.length>=t.length)for(let r=0;r<t.length;r++)Wr(e[r],t[r]);else if(n===zr&&Object.keys(e).length>=Object.keys(t).length)for(const n in t)r||void 0!==e[n]?Wr(e[n],t[n]):e[n]=null},Zr=(e,t)=>Wr(e,t,!0),Jr=(e,t,r={},n="",s=!1)=>{if(e===t)return r;const o=Hr(e),i=Hr(t);if(o===Nr&&i===o&&e.length>=t.length){for(let s=0;s<e.length;s++)Jr(e[s],t[s],r,`${n}[${s}]`,!1);return r}if(o===zr&&i===o&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let o of s){const s=e[o],i=t[o],a=Hr(s),c=Hr(i);if(s!==i)if(a===Nr&&c===a&&s.length>=i.length)for(let e=0;e<s.length;e++)Jr(s[e],i[e],r,`${n?n+".":""}${o}[${e}]`,!1);else if(a===zr&&c===a&&Object.keys(s).length>=Object.keys(i).length)for(let e in s)Jr(s[e],i[e],r,`${n?n+".":""}${o}.${e}`,!1);else null!==s&&(r[`${n?n+".":""}${o}`]=s)}return r}return r[n]=e,r};const Yr={...{...Ur,...Dr,...Kr,...{flattenPath:Vr,normalizeStructure:Zr,diffPath:(e,t)=>{const r=Vr(e),n=Vr(t);return Zr(r,n),Jr(r,n)}}},...ze,...Er,...sr,...Jt,...Ce,...we,qs:wr};var Qr={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let s=0;s<e.length&&(e.charCodeAt(s)>127||94===e.charCodeAt(s)?r+=2:r++,!(r>t));s++)n=s;return e.substr(0,n+1)}};function Gr(e){return e!=e}function Xr(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}(t,(function(t){return e[t]}))}var en,tn,rn=(en=Object.keys,tn=Object,function(e){return en(tn(e))}),nn=Math.max;function sn(e,t){var r=Y.isArray(e)||Y.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,s=!!n;for(var o in e)!t&&!k.hasOwnProperty.call(e,o)||s&&("length"==o||Y.isIndex(o,n))||r.push(o);return r}var on={...Y,...k,...ur,...we,includes:function(e,t,r,n){e=Y.isArrayLike(e)?e:function(e){return e?Xr(e,function(e){return Y.isArrayLike(e)?sn(e):function(e){if(!Y.isPrototype(e))return rn(e);var t=[];for(var r in Object(e))k.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?ae.toInteger(r):0;var s=e.length;return r<0&&(r=nn(s+r,0)),Y.isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var s=e.length,o=r+(n?1:-1);n?o--:++o<s;)if(t(e[o],o,e))return o;return-1}(e,Gr,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,r)>-1},forof:(e,t)=>{if(!e)return;let r;if(Y.isObject(e)&&(r=Y.isArray(e)?e.entries():Object.entries(e),r))for(const[e,n]of r)t&&t(e,n)}};var an={...{groupBy:function(e,t){return e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{})},first:function(e){if(!e)return;return e.length<=0?void 0:e[0]},last:function(e){if(!e)return;const t=e.length;return t<=0?void 0:e[t-1]},toList:function(e){return Array.isArray(e)?e:e?[e]:[]}},stepAction:function(e,t,r=100){if(!Y.isFunction(t))return;if(!Y.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let s=r+n,o=e.slice(n,s);t&&t(o),n=s}},skip:function(e,t){if(!Y.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:function(e,t,r=0){if(!Y.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const s=t+n;return e.slice(n,e.length<s?e.length:s)||[]},distinct:function(e){return!Y.isArray(e)||e.length<=0?[]:[...new Set(e)]},randoms:function(e,t=1,r=!1){const n=e.length||0;return Ce.randoms(n,t,r).map((t=>e[t]))||[]},toKV:(e,t,r)=>{const n={};return t&&r?((e||[]).forEach((e=>{if(!e||!Y.isObject(e))return;const s=e[t];(Y.isString(s)&&""!==s||Y.isNumber(s))&&(n[s]=e[r])})),n):n}};const cn=/%[sdj%]/g;let ln=()=>{};function un(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function fn(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(cn,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function hn(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function dn(e,t,r){let n=0;const s=e.length;!function o(i){if(i&&i.length)return void r(i);const a=n;n+=1,a<s?t(e[a],o):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(ln=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class pn extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function gn(e,t,r,n,s){if(t.first){const t=new Promise(((t,o)=>{const i=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);dn(i,r,(e=>(n(e),e.length?o(new pn(e,un(e))):t(s))))}));return t.catch((e=>e)),t}const o=!0===t.firstFields?Object.keys(e):t.firstFields||[],i=Object.keys(e),a=i.length;let c=0;const l=[],u=new Promise(((t,u)=>{const f=e=>{if(l.push.apply(l,e),c++,c===a)return n(l),l.length?u(new pn(l,un(l))):t(s)};i.length||(n(l),t(s)),i.forEach((t=>{const n=e[t];-1!==o.indexOf(t)?dn(n,r,f):function(e,t,r){const n=[];let s=0;const o=e.length;function i(e){n.push(...e||[]),s++,s===o&&r(n)}e.forEach((e=>{t(e,i)}))}(n,r,f)}))}));return u.catch((e=>e)),u}function yn(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(s=r)&&void 0!==s.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var s}}function mn(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const bn=(e,t,r,n,s,o)=>{!e.required||r.hasOwnProperty(e.field||"")&&!hn(t,o||e.type)||n.push(fn(s.messages.required,e.fullField))};let wn;const _n=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,vn=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,xn={integer:e=>xn.number(e)&&parseInt(e,10)===e,float:e=>xn.number(e)&&!xn.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!xn.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(_n),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(wn)return wn;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",s=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),o=new RegExp(`(?:^${r}$)|(?:^${s}$)`),i=new RegExp(`^${r}$`),a=new RegExp(`^${s}$`),c=e=>e&&e.exact?o:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${s}${t(e)})`,"g");c.v4=e=>e&&e.exact?i:new RegExp(`${t(e)}${r}${t(e)}`,"g"),c.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${s}${t(e)}`,"g");const l=c.v4().source,u=c.v6().source;return wn=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${u}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),wn})()),hex:e=>"string"==typeof e&&!!e.match(vn)},An="enum";var Sn={required:bn,whitespace:(e,t,r,n,s)=>{(/^\s+$/.test(t)||""===t)&&n.push(fn(s.messages.whitespace,e.fullField))},type:(e,t,r,n,s)=>{if(e.required&&void 0===t)return void bn(e,t,r,n,s);const o=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(o)>-1?xn[o](t)||n.push(fn(s.messages.types[o],e.fullField,e.type)):o&&typeof t!==e.type&&n.push(fn(s.messages.types[o],e.fullField,e.type))},range:(e,t,r,n,s)=>{const o="number"==typeof e.len,i="number"==typeof e.min,a="number"==typeof e.max,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,u="";const f="number"==typeof t,h="string"==typeof t,d=Array.isArray(t);if(f?u="number":h?u="string":d&&(u="array"),!u)return!1;d&&(l=t.length),h&&(l=t.replace(c,"_").length),o?l!==e.len&&n.push(fn(s.messages[u].len,e.fullField,e.len)):i&&!a&&l<e.min?n.push(fn(s.messages[u].min,e.fullField,e.min)):a&&!i&&l>e.max?n.push(fn(s.messages[u].max,e.fullField,e.max)):i&&a&&(l<e.min||l>e.max)&&n.push(fn(s.messages[u].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,s)=>{e[An]=Array.isArray(e[An])?e[An]:[],-1===e[An].indexOf(t)&&n.push(fn(s.messages[An],e.fullField,e[An].join(", ")))},pattern:(e,t,r,n,s)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(fn(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(fn(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const kn=(e,t,r,n,s)=>{const o=e.type,i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(hn(t,o)&&!e.required)return r();Sn.required(e,t,n,i,s,o),hn(t,o)||Sn.type(e,t,n,i,s)}r(i)};var On={string:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(hn(t,"string")&&!e.required)return r();Sn.required(e,t,n,o,s,"string"),hn(t,"string")||(Sn.type(e,t,n,o,s),Sn.range(e,t,n,o,s),Sn.pattern(e,t,n,o,s),!0===e.whitespace&&Sn.whitespace(e,t,n,o,s))}r(o)},method:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(hn(t)&&!e.required)return r();Sn.required(e,t,n,o,s),void 0!==t&&Sn.type(e,t,n,o,s)}r(o)},number:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),hn(t)&&!e.required)return r();Sn.required(e,t,n,o,s),void 0!==t&&(Sn.type(e,t,n,o,s),Sn.range(e,t,n,o,s))}r(o)},boolean:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(hn(t)&&!e.required)return r();Sn.required(e,t,n,o,s),void 0!==t&&Sn.type(e,t,n,o,s)}r(o)},regexp:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(hn(t)&&!e.required)return r();Sn.required(e,t,n,o,s),hn(t)||Sn.type(e,t,n,o,s)}r(o)},integer:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(hn(t)&&!e.required)return r();Sn.required(e,t,n,o,s),void 0!==t&&(Sn.type(e,t,n,o,s),Sn.range(e,t,n,o,s))}r(o)},float:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(hn(t)&&!e.required)return r();Sn.required(e,t,n,o,s),void 0!==t&&(Sn.type(e,t,n,o,s),Sn.range(e,t,n,o,s))}r(o)},array:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Sn.required(e,t,n,o,s,"array"),null!=t&&(Sn.type(e,t,n,o,s),Sn.range(e,t,n,o,s))}r(o)},object:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(hn(t)&&!e.required)return r();Sn.required(e,t,n,o,s),void 0!==t&&Sn.type(e,t,n,o,s)}r(o)},enum:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(hn(t)&&!e.required)return r();Sn.required(e,t,n,o,s),void 0!==t&&Sn.enum(e,t,n,o,s)}r(o)},pattern:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(hn(t,"string")&&!e.required)return r();Sn.required(e,t,n,o,s),hn(t,"string")||Sn.pattern(e,t,n,o,s)}r(o)},date:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(hn(t,"date")&&!e.required)return r();if(Sn.required(e,t,n,o,s),!hn(t,"date")){let r;r=t instanceof Date?t:new Date(t),Sn.type(e,r,n,o,s),r&&Sn.range(e,r.getTime(),n,o,s)}}r(o)},url:kn,hex:kn,email:kn,required:(e,t,r,n,s)=>{const o=[],i=Array.isArray(t)?"array":typeof t;Sn.required(e,t,n,o,s,i),r(o)},any:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(hn(t)&&!e.required)return r();Sn.required(e,t,n,o,s)}r(o)}};function $n(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const jn=$n();class Cn{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");On[e]=t};static warning=ln;static messages=jn;static validators=On;rules={};_messages=jn;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=mn($n(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,s=t,o=r;if("function"==typeof s&&(o=s,s={}),!this.rules||0===Object.keys(this.rules).length)return o&&o(null,n),Promise.resolve(n);if(s.messages){let e=this.messages();e===jn&&(e=$n()),mn(e,s.messages),s.messages=e}else s.messages=this.messages();const i={};(s.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let s=n[t];r.forEach((r=>{let o=r;"function"==typeof o.transform&&(n===e&&(n={...n}),s=n[t]=o.transform(s)),o="function"==typeof o?{validator:o}:{...o},o.validator=this.getValidationMethod(o),o.validator&&(o.field=t,o.fullField=o.fullField||t,o.type=this.getType(o),i[t]=i[t]||[],i[t].push({rule:o,value:s,source:n,field:t}))}))}));const a={};return gn(i,s,((e,t)=>{const r=e.rule;let o,i=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function c(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function l(o=[]){let l=Array.isArray(o)?o:[o];!0===s.suppressWarning&&l.length&&Cn.warning("async-validator:",l),l.length&&void 0!==r.message&&(l=[].concat(r.message));let u=l.map(yn(r,n));if(s.first&&u.length)return a[r.field]=1,t(u);if(i){if(r.required&&!e.value)return void 0!==r.message?u=[].concat(r.message).map(yn(r,n)):s.error&&(u=[s.error(r,fn(s.messages.required,r.field))]),t(u);let o={};r.defaultField&&Object.keys(e.value).map((e=>{o[e]=r.defaultField})),o={...o,...e.rule.fields};const i={};Object.keys(o).forEach((e=>{const t=o[e],r=Array.isArray(t)?t:[t];i[e]=r.map(c.bind(null,e))}));const a=new Cn(i);a.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),a.validate(e.value,e.rule.options||s,(e=>{const r=[];u&&u.length&&r.push(...u),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(u)}if(i=i&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)o=r.asyncValidator(r,e.value,l,e.source,s);else if(r.validator){try{o=r.validator(r,e.value,l,e.source,s)}catch(e){console.error?.(e),s.suppressValidatorError||setTimeout((()=>{throw e}),0),l(e.message)}!0===o?l():!1===o?l("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):o instanceof Array?l(o):o instanceof Error&&l(o.message)}o&&o.then&&o.then((()=>l()),(e=>l(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)s=e[r],Array.isArray(s)?t=t.concat(...s):t.push(s);var s;t.length?(r=un(t),o(t,r)):o(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!On.hasOwnProperty(e.type))throw new Error(fn("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?On.required:On[this.getType(e)]||void 0}}function En(e){return new Cn(e)}var Pn={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:En,validate:function(e,t,r={},n=(()=>{})){return sr.run(En(e).validate(t,r,n))},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isNumber:function(e){return!!e&&!!/^[0-9]+$/.test(e)},isFloat:function(e){return!!e&&!!/^(\-|\+)?\d+(\.\d+)?$/.test(e)},isPhoneNumber:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)}};const Tn={gbk:Qr,math:Ce,list:an,string:Jt,time:$r,obj:ur,rule:Pn,regex:{pattern:{num:"0-9",zh:"一-龥",en:"A-Za-z"},regex:(e,t)=>new RegExp(e,t),entire:{chinese:/^[\u4E00-\u9FA5]+$/,real:/^(\-|\+)?\d+(\.\d+)?$/,cssReal:/^(\-|\+)?\d*(\.)?\d+$/,id:/^[A-Za-z0-9]+$/,yyyyMMdd:/^(\d{4})-?(\d{2})-?(\d{2})$/}},...ze,...Er,...on,Event:h},Bn="[object Object]",qn="[object Array]",Ln=e=>Object.prototype.toString.call(e),Rn=(e,t,r=!1)=>{if(e===t)return;const n=Ln(e);if(n===Ln(t))if(n===qn&&e.length>=t.length)for(let r=0;r<t.length;r++)Rn(e[r],t[r]);else if(n===Bn&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?Rn(e[n],t[n]):e[n]=null},Fn=(e,t,r,n="",s=!1)=>{if(e===t)return;const o=Ln(e),i=Ln(t);if(o===qn&&i===o&&e.length>=t.length)for(let s=0;s<e.length;s++)Fn(e[s],t[s],r,`${n}[${s}]`);else if(o===Bn&&i===o&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let o of s){const s=e[o],i=t[o],a=Ln(s),c=Ln(i);if(s!==i)if(a===qn&&c===a&&s.length>=i.length)for(let e=0;e<s.length;e++)Fn(s[e],i[e],r,`${n?n+".":""}${o}[${e}]`);else if(a===Bn&&c===a&&Object.keys(s).length>=Object.keys(i).length)for(let e in s)Fn(s[e],i[e],r,`${n?n+".":""}${o}.${e}`);else r[`${n?n+".":""}${o}`]=s}}else r[n]=e};class Un{list=[];constructor(){this.invoke=this.invoke.bind(this)}use(e){this.list=this.list.concat(e)}invoke(e){return this.list.reduce(((e,t)=>e.then((e=>t(e)))),Promise.resolve(e)).catch((e=>"REFETCH"===e.sig?Promise.resolve(e.result):Promise.reject(e)))}}class In{reqConfig={};handleRequest;handleEncrypt;handleDecrypt;handleError;interceptors={request:new Un,response:new Un};constructor(e){const{reqConfig:t={},requestEncrypt:r,responseDecrypt:n,handleError:s,api:o}=e;this.reqConfig=t,this.handleEncrypt=r,this.handleDecrypt=n,this.handleError=s,this.handleRequest=o}static blockId="blockid";static requestLock={};lockR(e,t){In.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete In.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}_fetch(e,t){let r=e;return t&&this.handleEncrypt&&(r=this.handleEncrypt(e)),new Promise(((e,n)=>{this.handleRequest({...r,success:r=>{let n=r;t&&this.handleDecrypt&&(n=this.handleDecrypt(r)),e(n)},fail:e=>{n(e)}})}))}async request(e,t){const r=ur.copy(this.reqConfig[e]),{config:n,...s}=await this.interceptors.request.invoke({url:r.url,data:t||{},header:{"content-type":"application/json"},method:r.method?r.method:"POST",responseType:"text",config:r});let o;try{if("block"===n.model)this.lockR(In.blockId,(()=>this._fetch(s,n.hasEncrypt))),o=await In.requestLock[In.blockId].request;else if(In.requestLock[In.blockId]&&In.requestLock[In.blockId].lock&&await In.requestLock[In.blockId].request,"debounce"===n.model||"debounceUrl"===n.model){let e;e="debounceUrl"===n.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),In.requestLock[e]||this.lockR(e,(()=>this._fetch(s,n.hasEncrypt))),o=await In.requestLock[e].request,this.unlockR(e)}else o=await this._fetch(s,n.hasEncrypt)}catch(e){this.handleError&&this.handleError(e)}return this.interceptors.response.invoke({res:o,config:r,reqId:this.getIdFromReq(s),refetch:()=>({sig:"REFETCH",result:this.request(e,t||{})})})}}const Dn=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var Mn={diff:function(e,t){const r={};return(e=>{if(Ln(e)===Bn)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,s=r.length;for(let e=0;e<s-1;e++){const t=r[e];Ln(n[t])!==Bn&&(n[t]={}),n=n[t]}n[r[s-1]]=e[t],delete e[t]}})(e),Rn(e,t,!0),Fn(e,t,r,"",!0),r},promixify:Dn,run:(e,t={})=>e?sr.run(Dn(e)(t)):sr.run(e),formatList:(e,t,r)=>(e||[]).reduce(((e,n,s)=>({...e,[`${r}[${t+s}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e))),Http:In,setWatcher:e=>{let t=e.data,r=e.watch;Object.keys(r).forEach((n=>{let s=t,o=n.split(".");for(let e=0;e<o.length-1;e++)s=s[o[e]];let i=o[o.length-1],a=r[n].handler||r[n],c=r[n].deep;ur.observe(s,i,a,e,c)}))}};const Kn=e=>{if(!e)return"";if(!on.isObject(e))return"";let t="";return on.forof(e,((e,r)=>{r&&(t+=`${Jt.kebabCase(e)}:${r};`)})),t},zn=["display","position","top","bottom","left","right","padding","margin","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","height","width","fontSize","textAlign","fontFamily","border","borderLeft","borderRight","borderTop","borderBottom","borderColor","borderRadius","background","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","color","overflow","opacity","flexDirection","justifyContent","alignItems","flexWrap","alignContent","alignSelf","flex","flexBasis","flexFlow","flexShrink","pointerEvents"],Nn=["top","bottom","left","right","padding","margin","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","height","width","border","borderLeft","borderRight","borderTop","borderBottom","borderColor","borderRadius"],Hn=(e,t="px")=>e&&t?"0"===e?e:Pn.isFloat(e.toString())?`${e}${t}`:e:e;var Vn={stringify:Kn,parse:(e,{camel:t=!1,pure:r=!0}={})=>{if(!e.trim())return;const n=wr.parse(e,{sep:";",eq:":",uri:!1}),s={};return on.forof(n,((e,n)=>{if(!n)return;const o=t?r&&e.startsWith("_")?e:Jt.camelCase(e):e;Pn.isFloat(n)||n.length>=2&&n.startsWith(".")&&Pn.isNumber(n.substr(1))?s[o]=+n:s[o]=n})),s},fixValue:Hn,style:(e,t="px")=>{if(!e)return"";const r=on.copy(e,{fields:zn});on.forof(r,((e,n)=>{(Nn.includes(e)||Nn.includes(Jt.camelCase(e)))&&(r[e]=Hn(n,t))}));return Kn(r)},commonFields:zn};const Wn=(e,t="",r=!1)=>{try{if(!e)return;const n=wr.parseUrl(e),s=t||n.name;if(!t||!r||!n.origin||n.origin===window.location.origin)((e,t)=>{try{const r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}catch(t){console.error(`[ddan] _downloadUrl ${e}`,t)}})(e,s);else{const t=n.params;t.t=Date.now();const r=`${n.url}?${wr.stringify(t,{uri:!1})}`,o=new XMLHttpRequest;o.open("GET",r,!0),o.responseType="blob",o.onload=function(){Zn(o.response,s)},o.onerror=function(t){console.error(`[ddan] downloadUrl ${e}`,t)},o.send()}}catch(t){console.error(`[ddan] downloadUrl ${e}`,t)}},Zn=(e,t="")=>{try{if(!e)return;const r=URL?.createObjectURL(e);if(!r)return;Wn(r,t),URL?.revokeObjectURL(r)}catch(e){console.error("[ddan] downloadFile",e)}},Jn=e=>{try{const t=document.createElement("textarea");document.body.appendChild(t),t.style.position="fixed",t.style.clip="rect(0 0 0 0)",t.style.top="10px",t.style.opacity="0",t.value=e??"",t.select();const r=document.execCommand("copy");return document.body.removeChild(t),r}catch(e){return console.error("[ddan] copyText",e),!1}},Yn=(e,t="denied")=>new Promise((r=>{const n=navigator?.permissions;if(!n||!n.query)return r(t);const s={name:e};n.query(s).then((e=>r(e.state))).catch((()=>r(t)))})),Qn=(e,t=!0)=>!(!t||"prompt"!==e)||"granted"===e,Gn=(e,t)=>{if(!e||!t)return[];const r=[];let n;for(;null!==(n=t.exec(e));)r.push(n[1]);return r},Xn=(e,t="application/javascript")=>{const r=new Blob([e],{type:t});return URL.createObjectURL(r)};var es={dataURLtoFile:(e,t)=>{let r=e.split(","),n=r[0].match(/:(.*?);/)[1],s=window.atob(r[1]),o=s.length,i=new Uint8Array(o);for(;o--;)i[o]=s.charCodeAt(o);return new File([i],t,{type:n})},dataURLtoBlob:e=>{let t=e.split(","),r=t[0].match(/:(.*?);/)[1],n=window.atob(t[1]),s=n.length,o=new Uint8Array(s);for(;s--;)o[s]=n.charCodeAt(s);return new Blob([o],{type:r})},blobToFile:(e,t)=>(e.lastModifiedDate=new Date,e.name=t,e),readAsDataURL:(e,t)=>{var r=new FileReader;r.readAsDataURL(e),r.onloadend=function(e){t&&t(e.target?.result)}},downloadUrl:Wn,download:(e,t="")=>{e&&("string"!=typeof e?Zn(e,t):Wn(e,t))},downloadFile:Zn,downloadImage:e=>{try{if(!e)return;const t=e.match(/\/(\w+.\w+)$/)[1],r=new Image;r.onload=()=>{let e=document.createElement("canvas");e.width=r.width,e.height=r.height;let n=e.getContext("2d");n&&n.drawImage(r,0,0,r.width,r.height);let s=e.toDataURL();Wn(s,t)},r.src=e,r.setAttribute("crossOrigin","Anonymous")}catch(e){console.error("[ddan] downloadImage",e)}return Promise.resolve()},watermark:(e,{width:t=400,height:r=300,angle:n=0,fillStyle:s="rgba(0, 0, 0, 0.2)",font:o="16px Arial",textAlign:i="left",textBaseline:a="middle"}={})=>{try{if(!e)return"";const c=document.createElement("canvas");c.width=t,c.height=r;const l=c.getContext("2d");return l?(n&&l.rotate(n*Math.PI/180),s&&(l.fillStyle=s),o&&(l.font=o),i&&(l.textAlign=i),a&&(l.textBaseline=a),l.fillText(e,c.width/10,c.height/2),`url(${c.toDataURL()})`):""}catch(e){return console.error("[ddan] watermark",e),""}},copyText:(e,t=!1)=>new Promise((r=>{!t&&navigator.clipboard?Yn("clipboard-write").then((t=>{Qn(t,!1)?navigator.clipboard.writeText(e).then((()=>r(!0))).catch((()=>r(Jn(e)))):r(Jn(e))})).catch((()=>{r(Jn(e))})):r(Jn(e))})),queryPermission:Yn,isAllowed:Qn,legacyCopy:Jn,takeHtmlLinks:e=>{if(!e)return[];const t=[];return[/<script[^>]+src="([^"]+)"/g,/<link[^>]+rel="stylesheet"[^>]+href="([^"]+)"/g,/<link[^>]+rel="icon"[^>]+href="([^"]+)"/g].forEach((r=>{const n=Gn(e,r);t.push(n)})),[].concat(...t)},takeHtml:Gn,toBlobUrl:Xn,workerURL:e=>Xn(`(${e.toString()})()`,"text/javascript"),getVideoMetadata:(e,t=3e4)=>new Promise(((r,n)=>{let s=null,o=null,i=null;const a=e=>{i&&(clearTimeout(i),i=null),s&&(s.onerror=null,s.onloadedmetadata=null,s.remove(),s=null),o&&(URL.revokeObjectURL(o),o=null),e&&n(e)};try{if(s=document.createElement("video"),i=setTimeout((()=>{a(new Error(`操作超时(${t}ms)`))}),t),e instanceof File||e instanceof Blob||e instanceof MediaSource)o=URL.createObjectURL(e),s.src=o;else{if("string"!=typeof e)throw new Error("无效的视频源类型");s.crossOrigin="anonymous",s.src=e}s.onloadedmetadata=()=>{r({width:s?.videoWidth||0,height:s?.videoHeight||0,duration:s?.duration||0}),a()},s.onerror=()=>{a(new Error(`视频加载失败: ${s?.error?.message||"未知错误"}`))}}catch(e){a(e instanceof Error?e:new Error("未知同步错误"))}})),getImageMetadata:(e,t=5e3)=>new Promise(((r,n)=>{const s=new Image;let o=null,i=null;const a=e=>{i&&(clearTimeout(i),i=null),s.onload=null,s.onerror=null,o&&(URL.revokeObjectURL(o),o=null),e&&n(e)};i=setTimeout((()=>{a(new Error(`图片加载超时(${t}ms)`))}),t),s.onload=()=>{r({width:s.naturalWidth,height:s.naturalHeight}),a()},s.onerror=()=>{a(new Error(`无法加载图片: ${s.src||"未知资源"}`))};try{if(e instanceof File||e instanceof Blob)o=URL.createObjectURL(e),s.src=o;else{if("string"!=typeof e)throw new Error("无效的图片源类型");s.setAttribute("crossOrigin","Anonymous"),s.src=e}}catch(e){e instanceof Error?a(e):a(new Error("未知同步错误"))}}))};const ts=new class{__defStyle="vertical-align: middle; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; -webkit-mask-position: 50% 50%; -webkit-mask-repeat: no-repeat; -webkit-mask-size: 100%; background-color: currentColor;";__map={back:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M609.408 149.376L277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"/></svg>',right:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"/></svg>',home:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 19.8h3.8v-7h3.303L12 4.697 3.897 12.8H7.2v7H11V17h2v2.8zm5 .2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-6H3.414a1 1 0 0 1-.707-1.707l8.586-8.586a1 1 0 0 1 1.414 0l8.586 8.586A1 1 0 0 1 20.586 14H18v6z" fill-rule="evenodd" fill-opacity=".9"/></svg>',close:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M764.288 214.592L512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"/></svg>',close_circle:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M466.752 512l-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z"/><path fill="currentColor" d="M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"/></svg>',close_circle_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"/></svg>',warning:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M928.99 755.83L574.6 203.25c-12.89-20.16-36.76-32.58-62.6-32.58s-49.71 12.43-62.6 32.58L95.01 755.83c-12.91 20.12-12.9 44.91.01 65.03 12.92 20.12 36.78 32.51 62.59 32.49h708.78c25.82.01 49.68-12.37 62.59-32.49 12.91-20.12 12.92-44.91.01-65.03zM554.67 768h-85.33v-85.33h85.33V768zm0-426.67v298.66h-85.33V341.32l85.33.01z" fill="currentColor"/></svg>',play:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024zm3.008-92.992a416 416 0 1 0 0-832 416 416 0 0 0 0 832zM383.232 287.616l384 224.896-384 223.104v-448z" fill="currentColor"/></svg>',lock:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32H224zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96z"/><path fill="currentColor" d="M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32zm192-160v-64a192 192 0 1 0-384 0v64h384zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64z"/></svg>',lock_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M467.2 713.92v115.968a44.8 44.8 0 0 0 89.6 0V713.92c26.752-14.72 44.8-42.304 44.8-73.92 0-47.104-40.128-85.312-89.6-85.312-49.472 0-89.6 38.208-89.6 85.312 0 31.616 18.048 59.136 44.8 73.92zM64 384h896v640H64V384zm268.8 0h358.4V256c0-94.272-80.256-170.688-179.2-170.688-98.944 0-179.2 76.416-179.2 170.688v128zM512 0c148.48 0 268.8 114.56 268.8 256v128H243.2V256C243.2 114.56 363.52 0 512 0z" fill="currentColor"/></svg>',plus:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z"/></svg>',plus_circle:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M352 480h320a32 32 0 1 1 0 64H352a32 32 0 0 1 0-64z"/><path fill="currentColor" d="M480 672V352a32 32 0 1 1 64 0v320a32 32 0 0 1-64 0z"/><path fill="currentColor" d="M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"/></svg>',plus_circle_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-38.4 409.6H326.4a38.4 38.4 0 1 0 0 76.8h147.2v147.2a38.4 38.4 0 0 0 76.8 0V550.4h147.2a38.4 38.4 0 0 0 0-76.8H550.4V326.4a38.4 38.4 0 1 0-76.8 0v147.2z"/></svg>',star:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 747.84l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72L512 747.84zM313.6 924.48a70.4 70.4 0 0 1-102.144-74.24l37.888-220.928L88.96 472.96A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 126.208 0l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z"/></svg>',star_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M283.84 867.84L512 747.776l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72z"/></svg>',share:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M679.872 348.8l-301.76 188.608a127.808 127.808 0 0 1 5.12 52.16l279.936 104.96a128 128 0 1 1-22.464 59.904l-279.872-104.96a128 128 0 1 1-16.64-166.272l301.696-188.608a128 128 0 1 1 33.92 54.272z"/></svg>',love:'<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M171.712 571.648l.352.32 287.904 252.8a64 64 0 0 0 82.912 1.344l296.832-244.544a215.584 215.584 0 1 0-301.824-300.576L512 316.672l-25.888-35.616a215.584 215.584 0 1 0-314.4 290.624zM32 407.584A279.584 279.584 0 0 1 512 212.64a279.584 279.584 0 0 1 480 194.944 278.144 278.144 0 0 1-113.024 224.512l-295.36 243.392a128 128 0 0 1-165.888-2.592L129.984 620.16A278.976 278.976 0 0 1 32 407.584z"/></svg>',love_fill:'<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M32 407.584A279.584 279.584 0 0 1 512 212.64a279.584 279.584 0 0 1 480 194.944 278.144 278.144 0 0 1-113.024 224.512L562.592 892.8a96 96 0 0 1-124.416-1.952L130.016 620.16A278.976 278.976 0 0 1 32 407.584z"/></svg>'};getBase64=e=>{const t=this.getSVG(e);return t?.url||""};getSVG=e=>{if(!e)return;const t=this.__map[e];if(!t)return;return{url:this.toBase64(t),escape:this.toEscape(t)}};toBase64=e=>{if(!e)return"";const t=this._tiny(e);return`data:image/svg+xml;base64,${Cr.encode(t)}`};_tiny=e=>e?e.replace(/<!--(.*)-->/g,"").replace(/[\r\n]/g," ").replace(/"/g,"'"):"";toEscape=e=>{if(!e)return"";return`data:image/svg+xml,${this._tiny(e).replace(/%/g,"%25").replace(/&/g,"%26").replace(/#/g,"%23").replace(/{/g,"%7B").replace(/}/g,"%7D").replace(/</g,"%3C").replace(/>/g,"%3E")}`};getStyle(e,t={}){if(!e)return"";const r=this.__map[e];return r?this.toStyle(r,t):""}toStyle(e,t={}){if(!e)return"";const r=this.toBase64(e);return r?this.getStyleByUrl(r,t):""}getStyleByUrl(e,t={}){if(!e)return"";const{key:r="mask-image",gradientValue:n="radial-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5))",gradient:s=!1,defStyle:o=this.__defStyle}=t,i=s&&n?`${n}, url("${e}")`:`url("${e}")`;return`${r}:${i};-webkit-${r}:${i};${o}`}},rs={mini:Mn,css:Vn,qs:wr,icon:ts,html:es},ns=({url:e,options:t})=>{const r={"Content-Type":"application/json; charset=utf-8",...t.headers||{}};return t.headers=r,new Promise(((r,n)=>{fetch(e,t).then((e=>{r(e.json())})).catch((e=>{n(e)}))}))};function ss(e){const{response:t}=e;return 0===t.code?Promise.resolve(t):Promise.reject(t)}function os(e){const{url:t="",host:r,options:n}=e,s=e;if(t.startsWith("http://")||t.startsWith("https://")||(s.url=(r||"")+t),"GET"===n.method.toUpperCase()&&n.body){const e=JSON.parse(n.body);if(on.isPlainObject(e)){const r=wr.stringify(e),n=-1===t.indexOf("?")?"?":"&";s.url=`${s.url||""}${n}${r}`,delete s.options.body}}return n&&n.plugins&&delete s.options?.plugins,n&&n.model&&delete s.options?.model,s}class is{host="";reqConfig={};handleError;interceptors={request:new Un,response:new Un};constructor(e){this.host=e.host||"",this.reqConfig=e.config,this.interceptors.request.use(e.handleRequest||[]),this.interceptors.request.use(os),this.interceptors.response.use(e.handleResponse||ss),this.handleError=e.handleError}static blockId="blockid";static requestLock={};lockR(e,t){is.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete is.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}async fetch(e,t){const r=on.copy(this.reqConfig[e])||{},n={host:this.host,url:r.url||"",options:{...r||{},body:JSON.stringify({...t||{}})}};try{const s=await this.interceptors.request.invoke(n);let o;if(delete s.options.plugins,"block"===r.model)this.lockR(is.blockId,(()=>ns(s))),o=await is.requestLock[is.blockId].request;else if(is.requestLock[is.blockId]&&is.requestLock[is.blockId].lock&&await is.requestLock[is.blockId].request,"debounce"===r.model||"debounceUrl"===r.model){let e;e="debounceUrl"===r.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),is.requestLock[e]||this.lockR(e,(()=>ns(s))),o=await is.requestLock[e].request,this.unlockR(e)}else o=await ns(s);return this.interceptors.response.invoke({response:o,config:r,refetch:()=>({sig:"REFETCH",result:this.fetch(e,t)})})}catch(e){return this.handleError&&this.handleError(e),Promise.reject(e)}}}var as={getDataURL:(e,t)=>{const r={contentType:"",dataUrl:""};return me.to(fetch(e,{cache:t}).then((e=>(r.contentType=e.headers.get("content-type")||"",e.arrayBuffer()))).then((e=>(r.dataUrl=`data:${r.contentType};base64,`+ze.ab2str(e,!0),r))))},getArrayBuffer:async(e,t)=>me.to(fetch(e,{cache:t}).then((e=>e.arrayBuffer()))),getJson:async(e,t)=>me.to(fetch(e,{cache:t}).then((e=>e.json()))),download:(e,t={})=>new Promise((r=>fetch(e).then((async e=>{if(!e.ok||200!==e.status)throw new Error(e.statusText);const n=+(e.headers.get("content-length")||""),s=e.body?.getReader();let o=0;const i=[];for(;;){const{done:e,value:r}=await s.read();if(e)break;i.push(r),o+=r.length;const a=Ce.float(100*o/n,{digits:2});t?.progress&&t?.progress(a,o,n)}const a=new Uint8Array(o);let c=0;for(const e of i)a.set(e,c),c+=e.length;t?.success&&t?.success(a),r(a)})).catch((e=>{t?.fail&&t?.fail(e),r(void 0)})))),getText:async(e,t)=>me.to(fetch(e,{cache:t}).then((e=>e.text()))),cache:async(e,t="no-cache")=>me.to(fetch(e,{cache:t}).then((()=>!0)))};class cs{publicKey="";privateKey="";iv="";__privateCryptoKey;__sharedSecret;__curve;__keyFormat;__subtle;constructor(e="P-256",t="raw"){this.__curve=e,this.__keyFormat=t||"raw","undefined"!=typeof window?this.__subtle=window.crypto.subtle:this.__subtle={}}async generateKeys(){const e=await this.__subtle.generateKey({name:"ECDH",namedCurve:this.__curve},!0,["deriveKey","deriveBits"]);return this.__privateCryptoKey=e.privateKey,this.publicKey=await this.exportKey(e.publicKey),this.privateKey=await this.exportKey(e.privateKey,"pkcs8"),this}async exportKey(e,t="raw"){const r=await this.__subtle.exportKey(t||this.__keyFormat,e);return ze.ab2str(r,!0)}async importKey(e,t="raw",r=[]){const n=ze.base64ToBytes(e);return await this.__subtle.importKey(t||this.__keyFormat||"raw",n,{name:"ECDH",namedCurve:this.__curve},!0,r)}async setPrivateKey(e){if(!e)return!1;const t=await this.importKey(e,"pkcs8",["deriveKey","deriveBits"]);return this.privateKey=await this.exportKey(t,"pkcs8"),this.__privateCryptoKey=t,!0}async deriveSharedSecret(e,t){if(!this.__privateCryptoKey)return!1;const r=await this.importKey(e),n=await this.__subtle.deriveKey({name:"ECDH",public:r},this.__privateCryptoKey,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"]);return this.__sharedSecret=n,this.iv=t||"",!0}async encode(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=ze.base64ToBytes(r),s=ze.textEncode(e),o=await this.__subtle.encrypt({name:"AES-GCM",iv:n},this.__sharedSecret,s);return ze.ab2str(o,!0)}async encodeiv(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv,n=r?ze.base64ToBytes(r):ze.getRandomBytes(12),s=ze.textEncode(e),o=await this.__subtle.encrypt({name:"AES-GCM",iv:n},this.__sharedSecret,s),i=ze.concatBytes(new Uint8Array(o),n);return ze.bytesToBase64(i)}async decode(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=ze.base64ToBytes(e),s=ze.base64ToBytes(r),o=await this.__subtle.decrypt({name:"AES-GCM",iv:s},this.__sharedSecret,n);return ze.textDecode(o)}async decodeiv(e){if(!this.__sharedSecret)return"";const t=ze.base64ToBytes(e);if(t.length<12)return"";const r=t.slice(t.length-12),n=t.slice(0,t.length-12),s=await this.__subtle.decrypt({name:"AES-GCM",iv:r},this.__sharedSecret,n);return ze.textDecode(s)}}const ls={fetch:as,Http:is,css:Vn,qs:wr,icon:ts,html:es,rsa:Ye,...{Ecdh:cs}};var us={brotliCompress:function(e,r=t.constants.BROTLI_DEFAULT_QUALITY){try{if(!e)return"";const n=ze.toUtf8Bytes(e);return t.brotliCompressSync(n,{params:{[t.constants.BROTLI_PARAM_QUALITY]:r}}).toString("base64")}catch(t){return e||""}},brotliDecompress:function(e){try{if(!e)return"";const r=ze.base64ToBytes(e);return t.brotliDecompressSync(r).toString("utf-8")}catch(t){return e||""}}};var fs={child_exec:e=>new Promise((t=>{if(!e)return t([null,""]);s(e,((e,r)=>{t(e?[e||"error",""]:[null,r||""])}))}))};const hs=()=>{try{return"win32"===process.platform?ds():"darwin"===process.platform?ps():"linux"===process.platform?gs():void 0}catch(e){return}},ds=async()=>{do{const[e,t]=await fs.child_exec('reg query "HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"');if(e)break;const r=t.split("\n").find((e=>e.includes("ProxyEnable")));if(!(r&&r.trim().endsWith("1")))break;const n=t.split("\n").find((e=>e.includes("ProxyServer"))),s=n?n.split(" ").filter(Boolean).pop():"";if(!s)break;const o=s.split(":");if(o.length<=1)break;const i=o[0],a=+(o[1]||"");if(!i||!a)break;return{ipaddress:i,port:a}}while(0)},ps=async()=>{do{const[e,t]=await fs.child_exec('networksetup -getwebproxy "Wi-Fi"');if(e)break;const r=t.split("\n"),n=r.find((e=>e.includes("Enabled")));if(!(n&&n.includes("Yes")))break;const s=r.find((e=>e.includes("Server"))),o=r.find((e=>e.includes("Port"))),i=s?s.split(":")[1]?.trim():null,a=+((o?o.split(":")[1]?.trim():null)||"");if(!i||!a)break;return{ipaddress:i,port:a}}while(0)},gs=async()=>{do{const[e,t]=await fs.child_exec("env | grep https_proxy");if(e)break;const r=(t||"").trim();if(!r)return;const n=r.match(/:\/\/([^:]+):(\d+)/);if(!n)break;const s=n[1],o=+(n[2]||"");if(!s||!o)break;return{ipaddress:s,port:o}}while(0)},ys=(e,t=["*"],r="DIRECT",n=[])=>{const s=e||r||"DIRECT",o=r||"DIRECT",i=`\n function FindProxyForURL(url, host) {\n if (host === "127.0.0.1" || host === "localhost") {\n return "DIRECT";\n }\n\n if (isInNet(host, "10.0.0.0", "255.0.0.0") ||\n isInNet(host, "172.16.0.0", "255.240.0.0") ||\n isInNet(host, "192.168.0.0", "255.255.0.0")) {\n return "DIRECT";\n }\n\n var _rules = ${JSON.stringify(t)};\n var _proxy = "${s}";\n var _default = "${o}";\n var _directs = ${JSON.stringify(n)};\n\n for (var i = 0; i < _rules.length; i++) {\n if (shExpMatch(host, _rules[i])) {\n return _proxy;\n }\n }\n\n for (var j = 0; j < _directs.length; j++) {\n if (shExpMatch(host, _directs[j])) {\n return "DIRECT";\n }\n }\n\n return _default;\n }\n `;return ze.toDataUrl(i,"application/x-ns-proxy-autoconfig")},ms=(e,t,r)=>{if(!e||!t)return"";const{type:n="ALL",direct:s=!1}=r||{};let o="";switch(n?n.toUpperCase():""){case"ALL":o=`SOCKS5 ${e}:${t};PROXY ${e}:${t}`;break;case"PROXY":o=`PROXY ${e}:${t}`;break;case"SOCKS5":o=`SOCKS5 ${e}:${t}`}if(!o&&!s)return"";const i=[];return o&&i.push(o),s&&i.push("DIRECT"),i.join(";")};var bs={getSystemProxy:hs,toPacScript:ys,toPacProxy:ms,pacScript:async(e,t,r)=>{const{type:n="SOCKS5",rules:s=["*"],useSystem:o}=r||{},i=ms(e,t,{type:n});if(!i)return"";let a;if(o){const e=await hs();e&&(a=ms(e?.ipaddress||"",e?.port||0,{direct:!0}))}return ys(i,s||[],a)},getPacScript:async e=>{const{type:t="SOCKS5",rules:r=["*"],useSystem:n,address:s="",port:o=0,directs:i=[]}=e||{},a=ms(s,o,{type:t});let c;if(n){const e=await hs();e&&(c=ms(e?.ipaddress||"",e?.port||0,{direct:!0}))}return ys(a,r||[],c,i)}};const ws=(e,t)=>new Promise(((r,n)=>{o.readdir(e,(async(s,o)=>{if(s)return n(s);r(_s(e,o,t))}))})),_s=async(e,t,r)=>{for(let n of t){const t=i.join(e,n);o.lstatSync(t).isDirectory()?await ws(`${t}`,r):r&&await r(t)}};var vs={findFreePort:async(e,t=200)=>{let n=e,s=0;for(;s<t;)try{return await new Promise(((e,t)=>{const s=r.createServer();s.unref(),s.on("error",t),s.listen(n,(()=>{s.close((()=>e()))}))})),n}catch{s++,n++}return 0}},xs={...{readDirectory:ws,readFiles:_s},...us,...fs,...bs,...vs,Ecdh:class{publicKey="";privateKey="";sharedSecret;iv="";__curve;__algorithm;__ecdh;constructor(e="prime256v1",t="aes-256-gcm"){this.__curve=e,this.__algorithm=t,this.generateKeys()}generateKeys(){const t=e.createECDH("prime256v1");t.generateKeys(),this.publicKey=t.getPublicKey("base64"),this.privateKey=t.getPrivateKey("base64"),this.__ecdh=t}setPrivateKey(e){return!!e&&(!!this.__ecdh&&(this.__ecdh.setPrivateKey(e,"base64"),this.publicKey=this.__ecdh.getPublicKey("base64"),!0))}setSharedSecret(e){return!!e&&(this.sharedSecret=e,!0)}deriveSharedSecret(e,t){return!!e&&(this.sharedSecret=this.__ecdh.computeSecret(e,"base64").toString("base64"),this.iv=t||"",!0)}encode(t,r){if(!this.sharedSecret)return"";const n=r||this.iv;if(!n)return"";const s=ze.base64ToBytes(n),o=e.createCipheriv("aes-256-gcm",ze.base64ToBytes(this.sharedSecret),s),i=Buffer.concat([new Uint8Array(o.update(t,"utf8")),new Uint8Array(o.final())]),a=o.getAuthTag();return Buffer.concat([new Uint8Array(i),new Uint8Array(a)]).toString("base64")}encodeiv(t,r){if(!this.sharedSecret)return"";const n=r||this.iv,s=n?ze.base64ToBytes(n):ze.getRandomBytes(12),o=e.createCipheriv("aes-256-gcm",ze.base64ToBytes(this.sharedSecret),s),i=Buffer.concat([new Uint8Array(o.update(t,"utf8")),new Uint8Array(o.final())]),a=o.getAuthTag();return Buffer.concat([new Uint8Array(i),new Uint8Array(a),s]).toString("base64")}decode(t,r){if(!t||!this.sharedSecret)return"";const n=r||this.iv;if(!n)return"";const s=e.createDecipheriv("aes-256-gcm",ze.base64ToBytes(this.sharedSecret),ze.base64ToBytes(n)),o=ze.base64ToBytes(t),i=o.slice(o.length-16);s.setAuthTag(i);const a=o.slice(0,o.length-16);return Buffer.concat([new Uint8Array(s.update(a)),new Uint8Array(s.final())]).toString("utf-8")}decodeiv(t){if(!t||!this.sharedSecret)return"";const r=ze.base64ToBytes(t);if(r.length<28)return"";const n=r.slice(r.length-12),s=r.slice(r.length-28,r.length-12),o=e.createDecipheriv("aes-256-gcm",ze.base64ToBytes(this.sharedSecret),n);o.setAuthTag(s);const i=r.slice(0,r.length-28);return Buffer.concat([new Uint8Array(o.update(i)),new Uint8Array(o.final())]).toString("utf-8")}},EcdhWeb:class extends cs{constructor(t="P-256",r="raw"){super(t,r),this.__subtle=e.webcrypto.subtle}},Socks5:class{upstreamProxy;server=null;clientSockets=new Set;systemProxy=null;useSystemProxy=!1;__debug=!1;__uuid;__port=0;__event;__pipeline;__logger;__totalReceived=0;__totalSent=0;__rules=[];constructor(e,t=!1,r){this.__event=new h,this.upstreamProxy=this.filterProxyConfigs(e),this._updateRules(),this.__debug=t,this.__uuid=f(),this.__pipeline=new ve(1),this.__logger=r||console}get id(){return this.__uuid}get port(){return this.__port}get url(){return this.__port?`socks5://127.0.0.1:${this.__port}`:""}get totalReceived(){return this.__totalReceived}get totalSent(){return this.__totalSent}get rules(){return this.__rules}validateProxyConfig(e){const{ipaddress:t,port:r,userId:n,password:s}=e||{};return t&&"string"==typeof t?r&&"number"==typeof r?n&&"string"==typeof n?s&&"string"==typeof s?"":"无效的上游代理密码":"无效的上游代理用户名":"无效的上游代理端口":"无效的上游代理 IP 地址"}filterProxyConfigs(e){let t=[];t=e&&Array.isArray(e)?e:[e];const r=[];for(const e of t)this.validateProxyConfig(e)||r.push(e);return r}async start(e=8838){if(this.upstreamProxy.length<=0)return 0;if(this.server)return this.__debug&&console.info("[socks5] server is already running"),this.__port;const t=await this.findAvailablePort(e);return t?(this.setupServer(t),t):0}setupServer(e){try{return!!e&&(this.__port=e,this.server=r.createServer((e=>this.handleSocksConnection(e))),this.server.listen(e,(()=>{this.__debug&&this.__logger?.info(`[socks5] server is running on port ${e}`)})),this.server.on("error",(e=>{this.__logger?.error("[socks5] server error:",e),this.close()})),this.server.on("close",(()=>{this.__debug&&this.__logger?.info("[socks5] server closed")})),!0)}catch(e){return this.__debug&&this.__logger?.info("[socks5] setupServer error:",e),!1}}restart(){this.__debug&&console.info("[socks5] server restart");const e=this.__port;return!!e&&(this.close(),this.setupServer(e))}setUpstreamProxy(e){if(!e)return!1;const t=this.filterProxyConfigs(e);return!(!t||t.length<=0)&&(this.upstreamProxy=t,this._updateRules(),!0)}setSystemProxy(e,t){this.useSystemProxy=e,e&&t&&t.ipaddress&&t.port&&(this.systemProxy=t)}async findAvailablePort(e,t=200){let n=e,s=0;for(;s<t;)try{return await new Promise(((e,t)=>{const s=r.createServer();s.unref(),s.on("error",t),s.listen(n,(()=>{s.close((()=>e()))}))})),n}catch{s++,n++}return this.__debug&&this.__logger?.warn("[socks5] findAvailablePort failed"),0}async handleSocksConnection(e){let t="";try{if(!e)return;this.clientSockets.add(e),e.on("close",(()=>{this.clientSockets.delete(e),e?.destroy()})),await this.performHandshake(e);const r=await this.parseClientRequest(e),n=r.addr;t=`${n}:${r.port}`,this.__debug&&this.__logger?.info("[socks5] connection",t);const s=this.findProxyConfig(n);if(s){const n=await this.connectToUpstreamProxy(r,s);this.__logger?.info(`[socks5] connection upstream ${t}, use ${s.ipaddress}:${s.port}`),this.setupDataForwarding(e,n,"upstream")}else if(this.useSystemProxy&&this.systemProxy&&!wr.isLocalIPAddress(n)){const n=await this.connectToSystemProxy(r);this.__debug&&console.info("[socks5] connection system",t),this.setupDataForwarding(e,n,"system")}else{this.__debug&&console.info("[socks5] connection local",t);const n=await this.connectToLocal(r);this.setupDataForwarding(e,n,"local")}}catch(r){this.__debug&&this.__logger?.error("[socks5] connection failed:",r),e.end(new Uint8Array([5,1])),this._emit("error",r,t)}}performHandshake(e){return new Promise(((t,r)=>{e.once("data",(n=>{if(5!==n[0])return r(new Error("Unsupported SOCKS version"));e.write(new Uint8Array([5,0])),t()}))}))}parseClientRequest(e){return new Promise(((t,r)=>{e.once("data",(e=>{let n,s;if(1!==e[1])return r(new Error("Unsupported command"));if(1===e[3])n=e.slice(4,8).join("."),s=e.readUInt16BE(8);else{if(3!==e[3])return r(new Error("Unsupported address type"));{const t=e[4];n=e.slice(5,5+t).toString(),s=e.readUInt16BE(5+t)}}t({addr:n,port:s})}))}))}async connectToUpstreamProxy(e,t){const r={proxy:{ipaddress:t.ipaddress,port:t.port,type:5,userId:t.userId,password:t.password},command:"connect",destination:{host:e.addr,port:e.port}};try{return await this.connectToProxy(r)}catch(e){throw new Error("Failed to connect to upstream proxy: "+e)}}async connectToSystemProxy(e){const t={proxy:{...this.systemProxy,type:5},command:"connect",destination:{host:e.addr,port:e.port}};try{return await this.connectToProxy(t)}catch(e){throw new Error("Failed to connect to system proxy: "+e)}}async connectToProxy(e){const{socket:t}=await n.createConnection(e);return t}async connectToLocal(e){return new Promise(((t,n)=>{const s=r.createConnection(e.port,e.addr,(()=>{t(s)}));s.on("error",(e=>{n(e)}))}))}setupDataForwarding(e,t,r="local"){e.write(new Uint8Array([5,0,0,1,0,0,0,0,0,0])),e.pipe(t),t.pipe(e);const n=`${t.localAddress}:${t.localPort}`;this.__debug&&console.info(`[socks5] setupDataForwarding ${n}`),"upstream"===r&&(t.on("data",(e=>{this.__totalSent+=e.length})),e.on("data",(e=>{this.__totalReceived+=e.length}))),e.on("close",(()=>{this.__debug&&console.info("[socks5] client socket close",n),t.end()})),t.on("close",(()=>{this.__debug&&console.info("[socks5] target socket close",n),e.end()})),e.on("error",(e=>{this.__debug&&console.error("[socks5] client socket error:",e?.message),t.end()})),t.on("error",(t=>{this.__debug&&console.error("[socks5] target socket error:",t?.message),e.end()}))}findProxyConfig(e){if(!wr.isLocalIPAddress(e))for(const t of this.upstreamProxy)if(this.isAllowedDomain(e,t.rules||[]))return t}isAllowedDomain(e,t){if(wr.isLocalIPAddress(e))return!1;if(!t||!Array.isArray(t))return!1;for(const r of t){if("*"===r)return!0;if(wr.shExpMatch(e,r))return!0}return!1}close(){try{if(!this.server)return;this.__debug&&this.__logger?.info("[socks5] closing SOCKS5 proxy server..."),this.server.close((e=>{e&&this.__debug&&this.__logger?.error("[socks5] closing the server failed:",e)})),this.clientSockets.forEach((e=>e?.destroy())),this.clientSockets.clear(),this.server=null,this.__port=0}catch(e){this.__debug&&this.__logger?.error("[socks5] close error:",e)}}on(e,t){e&&t&&(this.__event.off(e,t),this.__event.on(e,t))}off(e,t){e&&this.__event.off(e,t)}resetStatistics(){this.__totalReceived=0,this.__totalSent=0}_emit(e,...t){try{if(!e)return;this.__event.emit(e,...t)}catch(e){}}_updateRules(){this.upstreamProxy&&(this.__rules=an.distinct(this.upstreamProxy.reduce(((e,t)=>e.concat(t?.rules||[])),[])))}},rsa:Ze};const As={...xs};var Ss={ossImage:(e,t={})=>{if(!e)return e;const r=wr.parseUrl(e).url;if(t.domain){if(!e.startsWith("http"))return e;const r=an.toList(t.domain||""),n=e.match(/^http[s]?:\/\/([\w.]+)[\w\W]+/)[1]||"";if(!n||!r.includes(n))return e}const n=[];return t.webp&&!r.endsWith(".gif")&&n.push("format,webp"),t.resize&&n.push(`resize,s_${t.resize}`),t.interlace&&(n.push("interlace,1"),!n.every((e=>!e.startsWith("format")))||r.endsWith(".gif")||r.endsWith(".jpg")||n.push("format,jpg")),n.length<=0?e:`${r}?x-oss-process=image/${n.join("/")}`},ossSnapshot:(e,t={})=>{if(!e)return e;const r=wr.parseUrl(e).url,n=["snapshot"],{m:s="fast",f:o="jpg"}=t;return(t.t||0===t.t)&&n.push(`t_${t.t}`),t.w&&n.push(`w_${t.w}`),t.h&&n.push(`h_${t.h}`),s&&n.push(`m_${s}`),o&&n.push(`f_${o}`),t.ar&&n.push(`ar_${t.ar}`),`${r}?x-oss-process=video/${n.join(",")}`},ossBase64:e=>ke.toBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};const ks={overrode:!1,tag:!1,format:"hh:mm:ss.SSS"},Os=e=>(...t)=>{const r=console[e];ks.overrode?r(...t):$s(r,e,...t)},$s=(e,t,...r)=>{const n=$r.format(new Date,ks.format),s=ks.tag?`[${t}]`:"";s&&n?e.apply(console,[`${n} ${s}`,...r]):n?e.apply(console,[`${n}`,...r]):s?e.apply(console,[`${s}`,...r]):e.apply(console,[...r])};var js={override:()=>{if(ks.overrode)return;ks.overrode=!0;["log","info","warn","error"].forEach((e=>{const t=console[e];console[e]=(...r)=>{$s(t,e,...r)}}))},log:Os("log"),info:Os("info"),warn:Os("warn"),error:Os("error"),config:({tag:e=ks.tag,format:t=ks.format}={})=>{ks.tag=e,ks.format=t}};class Cs{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=sr.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=ur.copy(e,{fields:this.fields});this.save(r)}}class Es extends h{setters={};getters={};actions={};persist;constructor(){super()}async dispatch(e,t=void 0){const r=this,n=Reflect.get(r.actions,e);if(!Y.isFunction(n))return;const[,s]=await sr.run(n({...r,commit:r.commit.bind(r),query:r.query.bind(r),dispatch:r.dispatch.bind(r)},t));return s}async query(e){const t=Reflect.get(this,e);let r;if(null!=t&&""!==t)r=ur.copy(t);else{const[,t]=await sr.exec((()=>this.dispatch(e)),`${this.__eventId}_${e}`);r=t}return r}commit(e,t){Y.isObject(t)&&(t=ur.copy(t)),this[e]=t}}const Ps=(e,t)=>{const r=Object.assign(new Es,e||{});r.__persist=new Cs(t||r.persist);const n=r.__persist.read(),s=n?Object.assign(r,n):r;return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return Y.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const s=Reflect.get(e.setters,t);if(Y.isFunction(s)&&!s(e,r))return!0;const o=Reflect.set(e,t,r,n);return o&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),o},has:(e,t)=>Reflect.has(e,t)})};class Ts{host="";list=[];constructor(e,t={}){this._parseHost(e);const{width:r=500,height:n=400}=t,s=wr.parseUrl(e)?.params||{};s["x-oss-process"]=`image/resize,w_${r},h_${n},m_fill`;const o=wr.stringify(s,{uri:!1});this.list.push(`${e}?${o}`)}_parseHost(e){e&&!this.host&&/^http[s]?:\/\/([\w.]+)/.test(e)&&(this.host=e.replace(/^http[s]?:\/\/([\w.]+)[\w\W]+/,"$1"))}image(e,t={}){if(!e||!e.includes(this.host))return;if(this.list.length<=0)return;const r={g:"nw",...t},n=e.replace(/^http[s]?:\/\/[\w.]+\/([\w-.,_/?%&=]+)$/,"$1"),s=Er.base64.encodeByOss(n),o=wr.stringify({image:s,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${o}`)}text(e,t={},r={}){if(!e)return;const n={g:"nw",...t},s=Er.base64.encodeByOss(e),o=wr.stringify({text:s,...n,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${o}`)}result(){return this.list.join("")}}class Bs{__list=[];constructor(){this.clear()}add(e){const t=sr.run(e);return this.__list.push(t),this}clear(){return this.__list=[],this}wait(){const e=this.__list;return this.clear(),Promise.allSettled(e)}}const qs=new class{state=Ps(new Es);frame=new _r;cache=new Map;cacheTime=new Map;setCache=(e,t)=>null!=t&&(!!e&&(this.cache.set(e,t),this.cacheTime.set(e,Date.now()),!0));hasCache=e=>{if(!e)return!1;this.cache.has(e)};getCache=e=>{if(e)return this.cache.get(e)};getCacheTime=e=>e&&this.cacheTime.get(e)||0;removeCache=e=>{e&&(this.cache.delete(e),this.cacheTime.delete(e))};cacheId=e=>`_${e}_cache_`;timesRecord=(e,t={})=>{if(!e)return;const{mode:r="running",cycle:n="day"}=t||{},s=this.cacheId(r),o=this.getCache(s)||{},i=Date.now(),a=o[e],c={time:i,count:1,cycle:n};return a&&("day"!==n||$r.isToday(a.time||0))&&(c.count=1+(a.count||0)),o[e]=c,this.setCache(s,o),o};timesValid=(e,t={})=>{if(!e)return!1;const{max:r=1,interval:n=0,mode:s="running",cycle:o="day"}=t||{},i=this.cacheId(s);let a=this.getCache(i);if(!a)return!0;const c=a[e];if(!c)return!0;if("day"===o&&!$r.isToday(c.time||0))return!0;if(r<=(c.count||0))return!1;return!(Date.now()-(c.time||0)<n)};timesClean=(e="running")=>{const t=this.cacheId(e),r=this.getCache(t);if(!r)return;const n=on.copy(r);on.forof(n,((e,t)=>{"day"!==t.cycle&&void 0!==t.cycle||$r.isToday(t.time||0)||delete r[e]})),this.setCache(t,r)};parallel=()=>new Bs};class Ls{id="";start=0;end=0;cost=0;name="";type="";desc="";timeStartDesc="";timeEndDesc="";isDone=!1;flag=0;constructor(){this.id=f(),this.start=Date.now(),this.timeStartDesc=$r.format(this.start,"hh:mm:ss.SSS")}get time(){return this.flag?this.end:this.start}get timeDesc(){return this.flag?this.timeEndDesc:this.timeStartDesc}done=(e=Date.now())=>{this.start&&(this.end=e,this.cost=this.end-this.start,this.timeEndDesc=$r.format(this.end,"hh:mm:ss.SSS"),this.isDone=!0)}}const Rs=new class{__map=new Map;__trackList=[];opened=!0;clear(){return this.__map.clear(),this.__trackList=[],this}add(e,{desc:t="",type:r=""}={}){if(!e||!this.opened)return"";const n=new Ls;return n.name=e,n.type=r,n.desc=t,this.__trackList.push(n),n.id}done(e){if(!e||!this.opened)return;const t=this.__trackList.find((t=>t.id===e));if(!t||t.isDone)return;t.done();const r=ur.cloneClass(t);r.id=this._endId(e),r.flag=1,r.desc=`${t.desc} | end`,this.__trackList.push(r)}getTrack(e){return this.__trackList.find((t=>t.id===e))}getLine(e){if(!e||e.endsWith("-end"))return[];const t=this.__trackList.findIndex((t=>t.id===e));if(t<0)return[];const r=this._endId(e),n=this.__trackList.findIndex((e=>e.id===r)),s=n<0?this.__trackList.length-t:n-t+1;return an.take(this.__trackList,s,t)}getList(e,t=""){if(!e)return[];const r=this.__trackList.filter((t=>t.name===e));if(r.length<=0)return[];if(!t)return r;const n=this._endId(t);return this.__trackList.filter((e=>e.id===t||e.id===n))}get list(){return this.__trackList}get size(){return this.__trackList.length}_endId=e=>`${e}-end`;report(e){const t=this.list;if(!t||t.length<=0)return;const r=t[0].time;t.forEach((t=>e&&e(t,r)))}},Fs={cdn:Ss,watermark:(e,t)=>new Ts(e,t)},Us={Store:Es,storeRef:Ps,Persist:Cs,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r})},Is=qs,Ds=Rs,Ms=js;export{h as Event,d as KValue,p as Mapping,Fs as dCdn,Yr as dHook,Is as dJoker,Ms as dLogger,rs as dMini,As as dNode,Us as dStore,Ds as dTracker,Tn as dUtil,ls as dWeb};
|
|
1
|
+
import e from"crypto";import t from"zlib";import r from"net";import{SocksClient as n}from"socks";import{exec as s}from"child_process";import o from"fs";import i from"path";const a="0123456789",c="abcdefghijklmnopqrstuvwxyz",l="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var u={keyNumber:a,keyLower:c,keyUpper:l,keyChars:a+c+l};const f=(e=0,t=0)=>e?d(e,"lower",t):h("lower",t),h=(e="lower",t=0)=>{const r=u.keyChars.split(""),n=[];let s,o;for(t=t||r.length,n[8]=n[13]=n[18]=n[23]="-",n[14]="4",s=0;s<36;s++)n[s]||(o=0|16*Math.random(),n[s]=r[19==s?3&o|8:o]);const i=n.join("");return"lower"===e?i.toLowerCase():"upper"===e?i.toUpperCase():i},d=(e=32,t="lower",r=0)=>{const n=u.keyChars.split(""),s=[];let o;for(r=r||n.length,o=0;o<e;o++)s[o]=n[0|Math.random()*r];const i=s.join("");return"lower"===t?i.toLowerCase():"upper"===t?i.toUpperCase():i};class p{__map;__tagList;__eventId="";constructor(){this.__map=new Map,this.__tagList=[],this.__eventId=f()}clear(){return this.__map.clear(),this}on(e,t,r=""){if(!e||!t)return this;let n=this.__map.get(e);return n||(n=new Set,this.__map.set(e,n)),n.add(t),r&&this.__tagList.push({name:e,listener:t,tag:r}),this}emit(e,...t){if(!e)return this;const r=this.__map.get(e);if(!r)return this;return[...r].forEach((e=>e&&e(...t))),this}off(e,t){if(!e||!t)return this;this.__tagList=this.__tagList.filter((r=>r.name!==e||r.listener!==t));const r=this.__map.get(e);return r?(r.delete(t),r.size<=0&&this.__map.delete(e),this):this}remove(e){return e?(this.__tagList=this.__tagList.filter((t=>t.name!==e)),this.__map.delete(e),this):this}removeByTag(e){if(!e)return this;return this.__tagList.filter((t=>t.tag===e)).forEach((e=>{this.off(e.name,e.listener)})),this.__tagList=this.__tagList.filter((t=>t.tag!==e)),this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this.__map.has(e)}}class g{timestamp=0;_key="";_value;constructor(e,t){this._key=e,this._value=t,this.updateAt()}get key(){return this._key}get value(){return this._value}set(e){this._value=e,this.updateAt()}updateAt(){this.timestamp=Date.now()}clear(){this.set(void 0)}}class y{_map=new Map;constructor(){this._map.clear()}get keys(){return Array.from(this._map.keys())}get values(){return Array.from(this._map.values())}get(e){if(!e)return;const t=this._map.get(e);return t?t.value:void 0}getKV(e){if(e)return this._map.get(e)}set(e,t){if(!e)return;const r=this._map.get(e);r?(r.set(t),this.clean()):this._map.set(e,new g(e,t))}delete(e,t){if(!e)return;const r=this._map.get(e);t&&t(r?.value),this._map.delete(e)}clear(){this._map.clear()}clean(e=100,t){try{if(this._map.size<=e)return;if(this.keys.filter((e=>{if(!this._map.has(e))return!1;const t=this._map.get(e);return!t||!t.value})).forEach((e=>{this._map.delete(e)})),this._map.size<=e)return;const r=this.values.sort(((e,t)=>e.timestamp-t.timestamp)),n=r.length-e;if(n<=0)return;r.splice(0,n).forEach((e=>{this.delete(e.key,t)}))}catch(e){console.log("mapping clean",e)}}}const m="object"==typeof global&&null!==global&&global.Object===Object&&global,b="object"==typeof globalThis&&null!==globalThis&&globalThis.Object===Object&&globalThis,w="object"==typeof self&&null!==self&&self.Object===Object&&self,_=b||m||w||Function("return this")(),v=_.Symbol,{toString:x,hasOwnProperty:A,propertyIsEnumerable:S}=Object.prototype,k=v?v.toStringTag:void 0;function C(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":k&&k in Object(e)?function(e){const t=A.call(e,k),r=e[k];let n=!1;try{e[k]=void 0,n=!0}catch(e){}const s=x.call(e);return n&&(t?e[k]=r:delete e[k]),s}(e):x.call(e)}var O={getTag:C,getType:function(e){return(C(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:x,hasOwnProperty:A,propertyIsEnumerable:S};const j="object"==typeof exports&&null!==exports&&!exports.nodeType&&exports,$=j&&"object"==typeof module&&null!==module&&!module.nodeType&&module,E=$&&$.exports===j&&m.process,P=(()=>{try{const e=$&&$.require&&$.require("util").types;return e||E&&E.binding&&E.binding("util")}catch(e){}})();var T="[object Function]",B="[object GeneratorFunction]",q="[object AsyncFunction]",L=9007199254740991;const R=/^(?:0|[1-9]\d*)$/,F=_?.Buffer?.isBuffer,U=/^\[object (?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)Array\]$/,I=P&&P.isTypedArray;function D(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function M(e){return null!=e&&"object"==typeof e}const K=Array.isArray;function z(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=L}(e.length)&&!H(e)}function N(e){return M(e)&&z(e)}function H(e){var t=D(e)?O.getTag(e):"";return t===T||t===B||t===q}function V(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)}function W(e){return N(e)&&O.hasOwnProperty.call(e,"callee")&&(!O.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==O.toString.call(e))}const Z="undefined"!=typeof window&&void 0!==window.document,J="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node,Y=I?e=>I(e):e=>M(e)&&U.test(O.getTag(e)),Q="function"==typeof F?F:()=>!1;var G={is:function(e,t){return O.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===O.getTag(e)},isString:function(e){return"string"==typeof e||!K(e)&&M(e)&&"[object String]"==O.getTag(e)},isObject:D,isObjectLike:M,isPlainObject:function(e){if(!M(e)||"[object Object]"!=O.getTag(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},isSymbol:function(e){return"symbol"==typeof e||M(e)&&"[object Symbol]"===O.getTag(e)},isFunction:H,isArray:K,isArrayLikeObject:N,isIndex:function(e,t){return!!(t=null==t?L:t)&&("number"==typeof e||R.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:z,isPrototype:V,isArguments:W,isPromise:function(e){return"[object Promise]"===(D(e)?O.getTag(e):"")},isBrowser:Z,isNode:J,isBlobOrBuffer:e=>e instanceof Blob||e instanceof ArrayBuffer,isUint8Array:e=>e instanceof Uint8Array,isArrayBuffer:e=>e instanceof ArrayBuffer,isEmpty:e=>{if(null==e)return!0;if(z(e)&&(Array.isArray(e)||"string"==typeof e||"function"==typeof e.splice||Q(e)||Y(e)||W(e)))return!e.length;const t=O.getTag(e);if("[object Map]"===t||"[object Set]"===t)return!e.size;if(V(e))return!Object.keys(e).length;for(const t in e)if(O.hasOwnProperty.call(e,t))return!1;return!0},isJSONStr:e=>{try{const t=JSON.parse(e);return"object"==typeof t&&null!==t}catch(e){return!1}}};const X=NaN,ee=/^\s+|\s+$/g,te=/^[-+]0x[0-9a-f]+$/i,re=/^0b[01]+$/i,ne=/^0o[0-7]+$/i,se=parseInt,oe=1/0,ie=17976931348623157e292;function ae(e){if("number"==typeof e)return e;if(G.isSymbol(e))return X;if(G.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=G.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(ee,"");const t=re.test(e);return t||ne.test(e)?se(e.slice(2),t?2:8):te.test(e)?X:+e}function ce(e){return e?(e=ae(e))===oe||e===-oe?(e<0?-1:1)*ie:e==e?e:0:0===e?e:0}var le={toNumber:ae,toFinite:ce,toInteger:function(e){var t=ce(e),r=t%1;return t==t?r?t-r:t:0}};const ue="Expected a function",fe=Math.max,he=Math.min;function de(e,t=300,r={}){let n,s,o,i,a,c,l=0,u=!1,f=!1,h=!0;if("function"!=typeof e)throw new TypeError(ue);function d(t){const r=n,o=s;return n=s=void 0,l=t,i=e.apply(o,r),i}function p(e){const r=e-c;return void 0===c||r>=t||r<0||f&&e-l>=o}function g(){const e=Date.now();if(p(e))return y(e);a=setTimeout(g,function(e){const r=t-(e-c);return f?he(r,o-(e-l)):r}(e))}function y(e){return a=void 0,h&&n?d(e):(n=s=void 0,i)}function m(...e){const r=Date.now(),o=p(r);if(n=e,s=this,c=r,o){if(void 0===a)return function(e){return l=e,a=setTimeout(g,t),u?d(e):i}(c);if(f)return a=setTimeout(g,t),d(c)}return void 0===a&&(a=setTimeout(g,t)),i}return t=le.toNumber(t)||0,G.isObject(r)&&(u=!!r.leading,f="maxWait"in r,o=f?fe(le.toNumber(r.maxWait)||0,t):o,h="trailing"in r?!!r.trailing:h),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=c=s=a=void 0},m.flush=function(){return void 0===a?i:y(Date.now())},m.pending=function(){return void 0!==a},m}class pe{__list=[];constructor(e){this.push(e)}push(e){return e&&this.__list.push(e),this}clear(){return this.__list=[],this}_exec(e,t){let r;if(G.isFunction(e))r=e(t);else{if(G.isPromise(e))return e.then((e=>({...t,...e})));r=e}return G.isPromise(r)?r:Promise.resolve({...r,...t})}run(e){try{return this.__list.reduce(((e,t)=>e.then((e=>this._exec(t,e)))),Promise.resolve(e)).then((e=>[void 0,e])).catch((e=>[e,void 0]))}catch(e){return Promise.reject([e,void 0])}}}async function ge(e,t,r){return e.then((e=>(r&&r(),[null,e]))).catch((e=>(t&&Object.assign(e,t),r&&r(),[e,void 0])))}const ye=(e,t)=>{try{let r;return r=G.isFunction(e)?e():e,ge(Promise.resolve(r),void 0,t)}catch(e){return t&&t(),Promise.resolve([e,void 0])}},me=e=>"string"==typeof(e="function"==typeof e?e():e)?new Error(e):e,be=e=>"function"==typeof e?e():e;var we={to:ge,go:(e,t)=>ye(e,t),delay:(e=1e3)=>new Promise((t=>setTimeout(t,e))),safeRun:ye,toError:me,timeout:(e,t=0,r="timeout")=>{if(t<=0)return ye(e);let n;function s(){n&&clearTimeout(n)}const o=new Promise((e=>{s(),n=setTimeout((()=>e([me(r||"timeout"),void 0])),t)}));return Promise.race([ye(e,s),o])},getValueIf:(e,t,r)=>{const n="function"==typeof e?e():e;return be(n?t:r)},resolveValue:be,runAsync:async e=>{const[t,r]=await ye(e);if(!t)return r}};class _e{__value=void 0;set(e){this.__value=e}get(){return this.__value}}var ve={singleton:function(){class e{static __instance__;constructor(){}static get Instance(){return e.__instance__||(e.__instance__=new this),e.__instance__}static get I(){return this.Instance}}return e},getset:function(e){const t=new _e;return void 0!==e&&t.set(e),t}};class xe{_func;_callback;constructor(e,t){this._func=e,this._callback=t}async run(){return we.safeRun(this._func).then((e=>{try{this._callback&&this._callback(e)}catch(e){console.log("[ddan] task",e)}finally{return e}}))}}class Ae{__list=[];__count=0;__max=1;constructor(e=1){this.__count=0,this.__max=e>0?e:1,this.clear()}push(e,t){const r=new xe(e,t);return this.__list.push(r),this._step(),this}clear(){return this.__list=[],this.__count=0,this}_step(){if(this.__list.length<=0)return;if(this.__count>=this.__max)return;const e=this.__list.shift();e?(this.__count+=1,e?.run().finally((()=>{try{this.__count>0&&(this.__count-=1),this._step()}catch(e){console.error("[ddan] pipepine step finally",e)}}))):this._step()}async whenAll(){for(;;){if(this.__count<=0)break;await we.delay(100),this._step()}return this.clear()}}class Se extends(ve.singleton()){__lockedMap=new Map;pipeline=new Ae;constructor(){super()}lock(e,t){if(!e||!t)return;const r=we.safeRun(t);return this.__lockedMap.set(e,r),r}unlock(e){e&&this.__lockedMap.has(e)&&this.__lockedMap.delete(e)}async exec(e,t){if(!e||!t)return we.safeRun(e);const r=this.__lockedMap.get(t);if(r)return r;const n=this.lock(t,e);if(!n)return we.safeRun(e);const s=await n;return this.unlock(t),s}}var ke={toUtf8:e=>{if(!e)return"";const t=e.replace(/\r\n/g,"\n");let r="";for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r+=String.fromCharCode(n):n>127&&n<2048?(r+=String.fromCharCode(n>>6|192),r+=String.fromCharCode(63&n|128)):(r+=String.fromCharCode(n>>12|224),r+=String.fromCharCode(n>>6&63|128),r+=String.fromCharCode(63&n|128))}return r},fromUtf8:e=>{let t="",r=0;if(!e)return"";let n=0,s=0,o=0;for(;r<e.length;)n=e.charCodeAt(r),n<128?(t+=String.fromCharCode(n),r++):n>191&&n<224?(s=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&s),r+=2):(s=e.charCodeAt(r+1),o=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&o),r+=3);return t},toUtf8Bytes:e=>{if(!e)return new Uint8Array;const t=e.replace(/\r\n/g,"\n"),r=[];for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r.push(n):n<2048?(r.push(n>>6|192),r.push(63&n|128)):(r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128))}return new Uint8Array(r)},fromUtf8Bytes:e=>{let t="",r=0;if(!e||e.length<=0)return"";for(;r<e.length;){let n=e[r];if(n<128)t+=String.fromCharCode(n),r++;else if(n>191&&n<224){const s=e[r+1];t+=String.fromCharCode((31&n)<<6|63&s),r+=2}else{const s=e[r+1],o=e[r+2];t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&o),r+=3}}return t}};const Ce="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var Oe={toBase64:(e="")=>{let t,r,n,s,o,i,a,c="",l=0;for(e=ke.toUtf8(e);l<e.length;)t=e.charCodeAt(l++),r=e.charCodeAt(l++),n=e.charCodeAt(l++),s=t>>2,o=(3&t)<<4|r>>4,i=(15&r)<<2|n>>6,a=63&n,isNaN(r)?i=a=64:isNaN(n)&&(a=64),c=c+Ce.charAt(s)+Ce.charAt(o)+Ce.charAt(i)+Ce.charAt(a);return c},fromBase64:(e="")=>{let t,r,n,s,o,i,a,c="",l=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<e.length;)s=Ce.indexOf(e.charAt(l++)),o=Ce.indexOf(e.charAt(l++)),i=Ce.indexOf(e.charAt(l++)),a=Ce.indexOf(e.charAt(l++)),t=s<<2|o>>4,r=(15&o)<<4|i>>2,n=(3&i)<<6|a,c+=String.fromCharCode(t),64!=i&&(c+=String.fromCharCode(r)),64!=a&&(c+=String.fromCharCode(n));return c=ke.fromUtf8(c),c},bytesToBase64:e=>{let t,r,n,s,o,i,a,c="",l=0;if(!e||!G.isArrayLike(e)||!G.isUint8Array(e))return"";for(;l<e.length;)t=e[l++],r=e[l++],n=e[l++],s=t>>2,o=(3&t)<<4|r>>4,i=(15&r)<<2|n>>6,a=63&n,isNaN(r)?i=a=64:isNaN(n)&&(a=64),c=c+Ce.charAt(s)+Ce.charAt(o)+Ce.charAt(i)+Ce.charAt(a);return c},base64ToBytes:(e="")=>{let t,r,n,s,o,i,a,c=[],l=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<e.length;)s=Ce.indexOf(e.charAt(l++)),o=Ce.indexOf(e.charAt(l++)),i=Ce.indexOf(e.charAt(l++)),a=Ce.indexOf(e.charAt(l++)),t=s<<2|o>>4,r=(15&o)<<4|i>>2,n=(3&i)<<6|a,c.push(t),64!=i&&c.push(r),64!=a&&c.push(n);return new Uint8Array(c)}};function je(e){return Math.floor(Math.random()*e)}function $e(e,t=10){return+parseFloat(Number(e).toExponential(t))}const Ee=180/Math.PI;var Pe={random:je,randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randoms:function(e,t=1,r=!1){const n=[];for(;;){if(n.length>=t)break;if(!r&&n.length>=e)break;const s=je(e);r?n.push(s):n.includes(s)||n.push(s)}return n},strip:$e,float:function(e,{digits:t=2,fixed:r=!1}={}){const n=$e(e).toFixed(t);return r||!t?+n:+n.replace(/(\.[1-9]?)0+$/,"$1").replace(/\.$/,"")},radian2degree:function(e){return e*Ee},degree2radian:function(e){return e/Ee},calcDataSize:function(e){const t={gb:0,mb:0,kb:0,b:0,total:e,desc:""},r=[{name:"gb",divisor:1<<30},{name:"mb",divisor:1<<20},{name:"kb",divisor:1024},{name:"b",divisor:1}];for(const n of r){const r=Math.floor(e/n.divisor);t[n.name]=r,e-=r*n.divisor}return t.gb>0?t.desc=(t.gb+t.mb/1024).toFixed(2)+"GB":t.mb>0?t.desc=(t.mb+t.kb/1024).toFixed(2)+"MB":t.kb>0?t.desc=(t.kb+t.b/1024).toFixed(2)+"KB":t.desc=t.b+"B",t}};var Te={bytes2str:e=>{if(!e||!G.isArrayLike(e))return"";return e.reduce(((e,t)=>e+String.fromCharCode(t)),"")},str2bytes:(e="")=>{const t=e,r=new Uint8Array(t.length);for(let e=0,n=t.length;e<n;e++)r[e]=t.charCodeAt(e);return r},str2hex:e=>{let t="";for(let r=0;r<e.length;r++)t+=e.charCodeAt(r).toString(16).padStart(2,"0");return t},hex2str:e=>{let t="";for(let r=0;r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t},concatBytes:(...e)=>{const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r},uint32ToBytes:e=>{const t=new Uint8Array(8);return t[0]=e[0]>>>24&255,t[1]=e[0]>>>16&255,t[2]=e[0]>>>8&255,t[3]=255&e[0],t[4]=e[1]>>>24&255,t[5]=e[1]>>>16&255,t[6]=e[1]>>>8&255,t[7]=255&e[1],t},bytesToUint32:e=>{const t=new Uint32Array(2);return t[0]=e[0]<<24|e[1]<<16|e[2]<<8|e[3],t[1]=e[4]<<24|e[5]<<16|e[6]<<8|e[7],t},hex2bytes:e=>{let t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++)t[r]=parseInt(e.substr(2*r,2),16);return t},bytes2hex:e=>Array.from(e).map((e=>e.toString(16).padStart(2,"0"))).join(""),toUint32:e=>{const t=Math.ceil(e.length/4),r=new Uint32Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(4*n)<<24|e.charCodeAt(4*n+1)<<16|e.charCodeAt(4*n+2)<<8|e.charCodeAt(4*n+3);return r},fromUint32:e=>{let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]>>>24&255,e[r]>>>16&255,e[r]>>>8&255,255&e[r]);return t.replace(/\0+$/,"")},flatten:function e(t,r=!1,n=[]){for(let s=0;s<t.length;s+=1){const o=t[s];r&&Array.isArray(o)?e(o,r,n):n.push(o)}return n}};var Be={pkcs7Padding:(e,t)=>{const r=t-e.length%t,n=new Uint8Array(r).fill(r);return Te.concatBytes(e,n)},pkcs7Unpadding:e=>{const t=e[e.length-1];return e.slice(0,-t)}};function qe(e,t){return e<<t|e>>>32-t}function Le(e,t){let r,n,s,o,i;return s=2147483648&e,o=2147483648&t,r=1073741824&e,n=1073741824&t,i=(1073741823&e)+(1073741823&t),r&n?2147483648^i^s^o:r|n?1073741824&i?3221225472^i^s^o:1073741824^i^s^o:i^s^o}function Re(e,t,r,n,s,o,i){return e=Le(e,Le(Le(function(e,t,r){return e&t|~e&r}(t,r,n),s),i)),Le(qe(e,o),t)}function Fe(e,t,r,n,s,o,i){return e=Le(e,Le(Le(function(e,t,r){return e&r|t&~r}(t,r,n),s),i)),Le(qe(e,o),t)}function Ue(e,t,r,n,s,o,i){return e=Le(e,Le(Le(function(e,t,r){return e^t^r}(t,r,n),s),i)),Le(qe(e,o),t)}function Ie(e,t,r,n,s,o,i){return e=Le(e,Le(Le(function(e,t,r){return t^(e|~r)}(t,r,n),s),i)),Le(qe(e,o),t)}function De(e){let t,r,n="",s="";for(r=0;r<=3;r++)t=e>>>8*r&255,s="0"+t.toString(16),n+=s.substr(s.length-2,2);return n}function Me(e){let t,r,n,s,o,i,a,c,l,u=[];for(u=function(e){let t;const r=e.length,n=r+8,s=16*((n-n%64)/64+1),o=Array(s-1).fill(0);let i=0,a=0;for(;a<r;)t=(a-a%4)/4,i=a%4*8,o[t]=o[t]|e[a]<<i,a++;return t=(a-a%4)/4,i=a%4*8,o[t]=o[t]|128<<i,o[s-2]=r<<3,o[s-1]=r>>>29,o}(e),i=1732584193,a=4023233417,c=2562383102,l=271733878,t=0;t<u.length;t+=16)r=i,n=a,s=c,o=l,i=Re(i,a,c,l,u[t+0],7,3614090360),l=Re(l,i,a,c,u[t+1],12,3905402710),c=Re(c,l,i,a,u[t+2],17,606105819),a=Re(a,c,l,i,u[t+3],22,3250441966),i=Re(i,a,c,l,u[t+4],7,4118548399),l=Re(l,i,a,c,u[t+5],12,1200080426),c=Re(c,l,i,a,u[t+6],17,2821735955),a=Re(a,c,l,i,u[t+7],22,4249261313),i=Re(i,a,c,l,u[t+8],7,1770035416),l=Re(l,i,a,c,u[t+9],12,2336552879),c=Re(c,l,i,a,u[t+10],17,4294925233),a=Re(a,c,l,i,u[t+11],22,2304563134),i=Re(i,a,c,l,u[t+12],7,1804603682),l=Re(l,i,a,c,u[t+13],12,4254626195),c=Re(c,l,i,a,u[t+14],17,2792965006),a=Re(a,c,l,i,u[t+15],22,1236535329),i=Fe(i,a,c,l,u[t+1],5,4129170786),l=Fe(l,i,a,c,u[t+6],9,3225465664),c=Fe(c,l,i,a,u[t+11],14,643717713),a=Fe(a,c,l,i,u[t+0],20,3921069994),i=Fe(i,a,c,l,u[t+5],5,3593408605),l=Fe(l,i,a,c,u[t+10],9,38016083),c=Fe(c,l,i,a,u[t+15],14,3634488961),a=Fe(a,c,l,i,u[t+4],20,3889429448),i=Fe(i,a,c,l,u[t+9],5,568446438),l=Fe(l,i,a,c,u[t+14],9,3275163606),c=Fe(c,l,i,a,u[t+3],14,4107603335),a=Fe(a,c,l,i,u[t+8],20,1163531501),i=Fe(i,a,c,l,u[t+13],5,2850285829),l=Fe(l,i,a,c,u[t+2],9,4243563512),c=Fe(c,l,i,a,u[t+7],14,1735328473),a=Fe(a,c,l,i,u[t+12],20,2368359562),i=Ue(i,a,c,l,u[t+5],4,4294588738),l=Ue(l,i,a,c,u[t+8],11,2272392833),c=Ue(c,l,i,a,u[t+11],16,1839030562),a=Ue(a,c,l,i,u[t+14],23,4259657740),i=Ue(i,a,c,l,u[t+1],4,2763975236),l=Ue(l,i,a,c,u[t+4],11,1272893353),c=Ue(c,l,i,a,u[t+7],16,4139469664),a=Ue(a,c,l,i,u[t+10],23,3200236656),i=Ue(i,a,c,l,u[t+13],4,681279174),l=Ue(l,i,a,c,u[t+0],11,3936430074),c=Ue(c,l,i,a,u[t+3],16,3572445317),a=Ue(a,c,l,i,u[t+6],23,76029189),i=Ue(i,a,c,l,u[t+9],4,3654602809),l=Ue(l,i,a,c,u[t+12],11,3873151461),c=Ue(c,l,i,a,u[t+15],16,530742520),a=Ue(a,c,l,i,u[t+2],23,3299628645),i=Ie(i,a,c,l,u[t+0],6,4096336452),l=Ie(l,i,a,c,u[t+7],10,1126891415),c=Ie(c,l,i,a,u[t+14],15,2878612391),a=Ie(a,c,l,i,u[t+5],21,4237533241),i=Ie(i,a,c,l,u[t+12],6,1700485571),l=Ie(l,i,a,c,u[t+3],10,2399980690),c=Ie(c,l,i,a,u[t+10],15,4293915773),a=Ie(a,c,l,i,u[t+1],21,2240044497),i=Ie(i,a,c,l,u[t+8],6,1873313359),l=Ie(l,i,a,c,u[t+15],10,4264355552),c=Ie(c,l,i,a,u[t+6],15,2734768916),a=Ie(a,c,l,i,u[t+13],21,1309151649),i=Ie(i,a,c,l,u[t+4],6,4149444226),l=Ie(l,i,a,c,u[t+11],10,3174756917),c=Ie(c,l,i,a,u[t+2],15,718787259),a=Ie(a,c,l,i,u[t+9],21,3951481745),i=Le(i,r),a=Le(a,n),c=Le(c,s),l=Le(l,o);return De(i)+De(a)+De(c)+De(l)}const Ke=e=>{if("string"!=typeof e&&!(e instanceof Uint8Array))return"";return Me("string"==typeof e?ke.toUtf8Bytes(e):e)};var ze={md5:Ke,md5Base64:e=>{const t=Ke(e);if(!t)return"";const r=Te.hex2bytes(t);return Oe.bytesToBase64(r)}};const Ne=(e,t=!1)=>{const r=new Uint8Array(e);return t?Oe.bytesToBase64(r):r.reduce(((e,t)=>e+String.fromCharCode(t)),"")};var He={...Te,...Be,...ke,...Oe,...ze,str2ab:(e="",t=!1)=>{if(t)return Oe.base64ToBytes(e).buffer;{const t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let t=0,n=e.length;t<n;t++)r[t]=e.charCodeAt(t);return t}},ab2str:Ne,utf8ToBase64:e=>G.isBrowser?btoa(e):Buffer.from(e,"utf-8").toString("base64"),base64ToUtf8:e=>G.isBrowser?atob(e):Buffer.from(e,"base64").toString("utf-8"),getRandomBytes:e=>{const t=new Uint8Array(e);for(let r=0;r<e;r++)t[r]=Pe.random(256);return t},textEncode:e=>ke.toUtf8Bytes(e),textDecode:e=>ke.fromUtf8Bytes(new Uint8Array(e)),toDataUrl:(e,t="text/plain")=>e?"string"==typeof e?`data:${t};base64,`+Oe.toBase64(e):G.isArrayBuffer(e)?`data:${t};base64,`+Ne(e,!0):"":""};const Ve=e=>{try{const t=He.ab2str(e,!0);return t.match(/.{1,64}/g)?.join("\n")||""}catch(e){return""}},We=(e="",t="PUBLIC KEY")=>`-----BEGIN ${t}-----\n${e}\n-----END ${t}-----`;var Ze={RSAPublicKey:"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApiLWsPmoaiGdr02AmPYS\n4/VgxyJNNJSK2VICirXl4P8qAP3b/6GIs7Hwnsmmuj7gledJ0XiZodFjDNgQEZEG\nj4K9KX8NixcrJwnTQV5UebiERdj+64ihwqPVWo9dIOj43ZPJ8f4dritJv5tnQaBb\nb9zTkU3Ofzk1g8RU00Ith6quOGZcU2IWC4OQ+5YiZvzrCBKEvjFwK2OvGq43tI51\nGaZdI9H09jisypqefsMvv6esjEQQOtl+WGlI5fof7KZUt3dppvuDI4CYgeXIoKKL\n9T9qDl8F9aNSs3XHx32YyA7L1FraFD6PjqRjueIFp2emsXQcIMeMqqgVyV+4qb+0\nuwIDAQAB",RSAPrivateKey:"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmItaw+ahqIZ2v\nTYCY9hLj9WDHIk00lIrZUgKKteXg/yoA/dv/oYizsfCeyaa6PuCV50nReJmh0WMM\n2BARkQaPgr0pfw2LFysnCdNBXlR5uIRF2P7riKHCo9Vaj10g6Pjdk8nx/h2uK0m/\nm2dBoFtv3NORTc5/OTWDxFTTQi2Hqq44ZlxTYhYLg5D7liJm/OsIEoS+MXArY68a\nrje0jnUZpl0j0fT2OKzKmp5+wy+/p6yMRBA62X5YaUjl+h/splS3d2mm+4MjgJiB\n5cigoov1P2oOXwX1o1KzdcfHfZjIDsvUWtoUPo+OpGO54gWnZ6axdBwgx4yqqBXJ\nX7ipv7S7AgMBAAECggEAE1kuWLkSsJ2OoDpt9iJ+a7cJmNd5V1zPWOTwr9fkWFJP\nQYNPKlPVOFxKUivY84rcHAkuMyuQ9OQOXZISOQGDWpZW0mzeFmtR1r+Rr2S9gNmI\n6huOAL9OW306HUxiA7GuPhv2omy+Zyjac2q1WVLEI2B78Um2+WEfxuNIH7xu0gRR\nz/wluevMBQlv6hSeMESP6e9s2kB+FuM4bL7+1sexwS1TudKbHybujaiB8un9E2V3\nC9BkE6yf00Rhvii6Q4E4w3PFQfcBEFnjOD0S2Watx8GIbYjlYvtquy8Yj7OtyZB6\nw5sxyaYhKVVnkpGAbOgaCj94ABYF47VuwXr45I4PzQKBgQDp6svzD+QKlARjcWgO\nrH7UEpFX6m49G6Ib4c63xEg9+GesTgfDxoYxtXDKsC7I8OwMrmffJGbyfjaAvzmg\nicM3Y7kF6UPO9+q2mBRsyhoJSNONTeUVyoFSc+QDsVgndlTZIjqC5XLrONGaSPLJ\n7jJzqKhp3NQcpO8+xY0d7Efm1QKBgQC10fCNuF1LUTYgsWvvGxTiCCAIBurZmHU+\nGMb2Okfoco/P+QNl1jEba91AC7FudW3g/lRn0vTnDajlNoz2/CKunrTKN4/9lEBI\ntiwEOvhc5FtapRifSfrrNwFqPM+LijvOkcteWVhAUWCEP1eLmpnXGqfmZxnTaaVe\n5DyDgyAVTwKBgQDhEawfOQEANJ9sV2f6BnsZ7quuXcCoR3hZP5G5O8EO735BSesq\nsk/YcG4QeCjr6vQU15LWH552YH5srpHyJ9uP5gHW8DTwZZaPDhFJA8S9fjcfVP3B\nU9HO1fdknjTl83N8YPTPkZpbPZZfzyTcqrYclwFEqtfkn8YbLdW0Hu6n6QKBgDEv\njvS3uD1ExfDILlurptWSvx+Mx4F/1c+roj8/+u3t9+uaAIpPDE/PuTW3NBOens/r\n3WeM0QWkU1lWjYHPKY61jlDaARDnRxCkf3nRfhibCf+Wg/erar6wzagwtTCZf55d\nIHfwkYgsu4BrJkK02wMuydbxczIW9U6bTaeCFG7PAoGAN3oHYzTEBwZ7ZKv11QiQ\nEp/HeHBvD8fH/e1uVyBel4Co7NO5pV2s8qjS8+3+jxumKLNXCirjqwHo03YCdzxi\ncy4GFDsukHmDQ7FF9VC4QV0fJ0F7jGYE9nNZ+K9qwS5KrihOSBPxj0HptrF6TSOw\nBTSwr0byL3TC0m0StkSNKpo=",generateKeys:async e=>{try{const t=await e.generateKey({name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:"SHA-256"},!0,["encrypt","decrypt"]),r=await window.crypto.subtle.exportKey("spki",t.publicKey),n=Ve(r),s=We(n,"PUBLIC KEY"),o=await window.crypto.subtle.exportKey("pkcs8",t.privateKey),i=Ve(o);return{publicKey:n,publicKeyPem:s,privateKey:i,privateKeyPem:We(i,"PRIVATE KEY")}}catch(e){return console.error("generateKeys failed:",e),{publicKey:"",publicKeyPem:"",privateKey:"",privateKeyPem:""}}},format_pem_key:We,format_pem_content:Ve,encrypt:async(e,t,r)=>{try{const n=(new TextEncoder).encode(t),s=await e.importKey("spki",He.str2ab(r,!0),{name:"RSA-OAEP",hash:"SHA-256"},!0,["encrypt"]),o=[];for(let t=0;t<n.length;t+=190){let r=n.slice(t,t+190),i=await e.encrypt({name:"RSA-OAEP"},s,r);o.push(new Uint8Array(i))}const i=He.concatBytes(...o);return He.bytesToBase64(i)}catch(e){return console.error("[debug] encrypt",e),""}},decrypt:async(e,t,r)=>{try{const n=He.base64ToBytes(t),s=await e.importKey("pkcs8",He.str2ab(r,!0),{name:"RSA-OAEP",hash:"SHA-256"},!0,["decrypt"]),o=[],i=256;for(let t=0;t<n.length;t+=i){let r=n.slice(t,t+i),a=await e.decrypt({name:"RSA-OAEP"},s,r);o.push(new Uint8Array(a))}const a=He.concatBytes(...o);return(new TextDecoder).decode(a)}catch(e){return console.error("decrypt failed:",e),""}}};const Je=()=>e.webcrypto.subtle;var Ye={generateKeys:()=>Ze.generateKeys(Je()),encrypt:async(e,t)=>Ze.encrypt(Je(),e,t),decrypt:async(e,t)=>Ze.decrypt(Je(),e,t),encode:async e=>Ze.encrypt(Je(),e,Ze.RSAPublicKey),decode:async e=>Ze.decrypt(Je(),e,Ze.RSAPrivateKey)};const Qe="undefined"!=typeof window?window.crypto.subtle:{};var Ge={generateKeys:()=>Ze.generateKeys(Qe),encrypt:async(e,t)=>Ze.encrypt(Qe,e,t),decrypt:async(e,t)=>Ze.decrypt(Qe,e,t),encode:async e=>Ze.encrypt(Qe,e,Ze.RSAPublicKey),decode:async e=>Ze.decrypt(Qe,e,Ze.RSAPrivateKey)};const Xe=2654435769,et=(e,t)=>{let r=0;for(let n=0;n<32;n++)r=r+Xe>>>0,e[0]=e[0]+((e[1]<<4)+t[0]^e[1]+r^(e[1]>>>5)+t[1])>>>0,e[1]=e[1]+((e[0]<<4)+t[2]^e[0]+r^(e[0]>>>5)+t[3])>>>0;return e},tt=(e,t)=>{let r=3337565984;for(let n=0;n<32;n++)e[1]=e[1]-((e[0]<<4)+t[2]^e[0]+r^(e[0]>>>5)+t[3])>>>0,e[0]=e[0]-((e[1]<<4)+t[0]^e[1]+r^(e[1]>>>5)+t[1])>>>0,r=r-Xe>>>0;return e},rt=e=>{const t=He.str2bytes(e),r=new Uint32Array(4);return r[0]=t[0]<<24|t[1]<<16|t[2]<<8|t[3],r[1]=t[4]<<24|t[5]<<16|t[6]<<8|t[7],r[2]=t[8]<<24|t[9]<<16|t[10]<<8|t[11],r[3]=t[12]<<24|t[13]<<16|t[14]<<8|t[15],r},nt=(e,t)=>{const r=He.pkcs7Padding(e,8),n=rt(t),s=[];for(let e=0;e<r.length;e+=8){const t=He.bytesToUint32(r.slice(e,e+8)),o=et(t,n);s.push(He.uint32ToBytes(o))}return He.concatBytes(...s)},st=(e,t)=>{const r=rt(t),n=[];for(let t=0;t<e.length;t+=8){const s=He.bytesToUint32(e.slice(t,t+8)),o=tt(s,r);n.push(He.uint32ToBytes(o))}const s=He.concatBytes(...n);return He.pkcs7Unpadding(s)};var ot={TEAKey:"33576f37387276645054657a6831686e454664424e5652456f47794835795942",encrypt:et,decrypt:tt,toTeaKey:rt,encode:(e,t)=>{const r=He.textEncode(e),n=nt(r,t);return He.bytesToBase64(n)},decode:(e,t)=>{const r=He.base64ToBytes(e),n=st(r,t);return He.textDecode(n.buffer)},encodeBytes:nt,decodeBytes:st};function it(e,t,r){const{length:n}=e;return r=void 0===r?n:r,!t&&r>=n?e:function(e,t,r){let n=null==e?0:e.length;if(!n)return[];(t=null==t?0:t)<0&&(t=-t>n?0:n+t),(r=(r=void 0===r?n:r)>n?n:r)<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;let s=-1;const o=new Array(n);for(;++s<n;)o[s]=e[s+t];return o}(e,t,r)}const at=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff\\ufe0e\\ufe0f]");function ct(e){return at.test(e)}const lt="\\ud800-\\udfff",ut=`[${lt}]`,ft="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",ht="\\ud83c[\\udffb-\\udfff]",dt=`[^${lt}]`,pt="(?:\\ud83c[\\udde6-\\uddff]){2}",gt="[\\ud800-\\udbff][\\udc00-\\udfff]",yt=`${`(?:${ft}|${ht})`}?`,mt="[\\ufe0e\\ufe0f]?",bt=mt+yt+`(?:\\u200d(?:${[dt,pt,gt].join("|")})${mt+yt})*`,wt=`(?:${[`${dt}${ft}?`,ft,pt,gt,ut].join("|")})`,_t=RegExp(`${ht}(?=${ht})|${wt+bt}`,"g");function vt(e){return ct(e)?function(e){return e.match(_t)||[]}(e):function(e){return e.split("")}(e)}function xt(e){return t=>{if(!t)return"";const r=ct(t)?vt(t):void 0,n=r?r[0]:t[0],s=r?it(r,1).join(""):t.slice(1);return n[e]()+s}}const At="\\ud800-\\udfff",St="\\u2700-\\u27bf",kt="a-z\\xdf-\\xf6\\xf8-\\xff",Ct="A-Z\\xc0-\\xd6\\xd8-\\xde",Ot="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",jt="['’]",$t=`[${Ot}]`,Et=`[${St}]`,Pt=`[${kt}]`,Tt=`[^${At}${Ot+"\\d"+St+kt+Ct}]`,Bt="(?:\\ud83c[\\udde6-\\uddff]){2}",qt="[\\ud800-\\udbff][\\udc00-\\udfff]",Lt=`[${Ct}]`,Rt=`(?:${Pt}|${Tt})`,Ft=`(?:${Lt}|${Tt})`,Ut=`(?:${jt}(?:d|ll|m|re|s|t|ve))?`,It=`(?:${jt}(?:D|LL|M|RE|S|T|VE))?`,Dt="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]|\\ud83c[\\udffb-\\udfff])?",Mt="[\\ufe0e\\ufe0f]?",Kt=Mt+Dt+`(?:\\u200d(?:${[`[^${At}]`,Bt,qt].join("|")})${Mt+Dt})*`,zt=`(?:${[Et,Bt,qt].join("|")})${Kt}`,Nt=RegExp([`${Lt}?${Pt}+${Ut}(?=${[$t,Lt,"$"].join("|")})`,`${Ft}+${It}(?=${[$t,Lt+Rt,"$"].join("|")})`,`${Lt}?${Rt}+${Ut}`,`${Lt}+${It}`,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",zt].join("|"),"g");const Ht=RegExp.prototype.test.bind(/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/),Vt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Wt(e,t){if(void 0===t){const t=Ht(e)?function(e){return e.match(Nt)}(e):function(e){return e.match(Vt)}(e);return t||[]}return e.match(t)||[]}function Zt(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return`${e.map((e=>null==e?e:Zt(e)))}`;if(G.isSymbol(e))return e.toString();const t=`${e}`;return"0"==t&&1/e==-Infinity?"-0":t}const Jt=xt("toUpperCase"),Yt=xt("toLowerCase");var Qt={toString:Zt,startCase:e=>Wt(`${e}`.replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+Jt(t)),""),snakeCase:e=>Wt(Zt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"_":"")+t.toLowerCase()),""),kebabCase:e=>Wt(Zt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"-":"")+t.toLowerCase()),""),camelCase:e=>Wt(Zt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>(t=t.toLowerCase(),e+(r?Jt(t):t))),""),upperCase:e=>Wt(Zt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toUpperCase()),""),upperFirst:Jt,lowerCase:e=>Wt(Zt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toLowerCase()),""),lowerFirst:Yt,splitOnFirst:(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===e||""===t)return[];const r=e.indexOf(t);return-1===r?[]:[e.slice(0,r),e.slice(r+t.length)]},parseValue:(e,{number:t=!1,boolean:r=!1}={})=>{let n=e;return e&&"string"==typeof e?(t&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?n=Number(e):!r||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(n="true"===e.toLowerCase()),n):n},replace:(e,t)=>{if(!e)return e;if(!t)return e;let r=e;return((Array.isArray(t)?t:[t])||[]).forEach((e=>{e.key&&e.value&&(r=r.replace(new RegExp(e.key,e.flag||""),e.value))})),r},jsonFormat:e=>{try{if(!e)return"";const t=JSON.parse(e);return JSON.stringify(t,null,2)}catch(t){return e}},toLines:(e,t="\n")=>e?e.split(t).map((e=>e.trim())).filter((e=>!!e)):[]};var Gt={logString:e=>{try{const t=JSON.stringify(e);return void 0===t?"":ot.encode(t,He.hex2str(ot.TEAKey))}catch(e){return""}},logParse:e=>{try{if(!e)return"";const t=ot.decode(e,He.hex2str(ot.TEAKey));return Qt.jsonFormat(t)}catch(e){return""}},logRString:async e=>{try{const t=JSON.stringify(e);if(void 0===t)return"";return G.isBrowser?await Ge.encode(t):await Ye.encode(t)}catch(e){return""}},logRParse:async e=>{try{if(!e)return"";const t=G.isBrowser?await Ge.decode(e):await Ye.decode(e);return Qt.jsonFormat(t)}catch(e){return""}}};const Xt=(e,t,r)=>e*(1-r)+t*r,er=(e,t,r)=>e===t?0:(r-e)/(t-e),tr=(e,t,r)=>({x:Xt(e.x,t.x,r),y:Xt(e.y,t.y,r)}),rr=(e,t,r,n)=>{const s=tr(e,t,n),o=tr(t,r,n);return tr(s,o,n)},nr=(e,t)=>{if(1===e.length)return e[0];const r=[];for(let n=0;n<e.length-1;n++)r.push({x:(1-t)*e[n].x+t*e[n+1].x,y:(1-t)*e[n].y+t*e[n+1].y});return nr(r,t)},sr=(e,t)=>{if(0===t||t===e)return 1;let r=1;for(let n=1;n<=t;n++)r=r*(e-n+1)/n;return r};var or={bezier1:tr,bezier2:rr,bezier3:(e,t,r,n,s)=>{const o=rr(e,t,r,s),i=rr(t,r,n,s);return tr(o,i,s)},bezier:nr,bezierCurve:(e,t)=>{const r=e.length-1;let n=0,s=0;for(let o=0;o<=r;o++){const i=sr(r,o)*Math.pow(1-t,r-o)*Math.pow(t,o);n+=i*e[o].x,s+=i*e[o].y}return{x:n,y:s}},lerp:Xt,lerpAverage:(e,t,r="")=>{if(e.length<=0)return 0;if(1===e.length)return e[0].x;if(2===e.length)return Xt(e[0].y,e[1].y,.5);const n=[],s=e.slice().sort(((e,t)=>e.x-t.x)),o=s.length,i=s[0].x,a=s[o-1].x;for(let e=i;e<=a;e+=t){let t=0;for(let n=0;n<o-1;n++){const o=s[n],i=s[n+1];if(e>=o.x&&e<=i.x){if("lerp"===r){const r=er(o.x,i.x,e);t=tr(o,i,r).y}else t=o.y;break}}e>s[o-1].x&&(t=s[o-1].y),n.push(t)}return n.reduce(((e,t)=>e+t),0)/n.length},proportion:er};var ir={...we,...Gt,...or,sleep:we.delay,run:async function(e,t=0){if(t<=0)return we.safeRun(e);const r=t>0?Date.now():0,n=await we.safeRun(e),s=Date.now()-r;return s<t&&await we.delay(t-s),n},exec:(e,t="")=>Se.I.exec(e,t),debounce:de,throttle:function(e,t=300,r={}){let n=!0,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return G.isObject(r)&&(n=r.leading?!!r.leading:n,s=r.trailing?!!r.trailing:s),de(e,t,{leading:n,maxWait:t,trailing:s})},task:e=>new pe(e),mutex:function(e){var t=null;return async function(...r){if((t=this||t||{}).__ddMutex)return!1;t.__ddMutex=!0;try{e&&await Promise.resolve(e.apply(this,r))}catch(e){console.log(e)}finally{t.__ddMutex=!1}}},polling:async function(e={}){const{func:t,interval:r=100,times:n=1e3}=e;let s=n;const o=r<1?100:r;do{if(!t)break;const[e,r]=await we.to(Promise.resolve(t()));if(e||!1===r)break;s>0&&s--,0!==s&&await we.delay(o)}while(-1===n||s>0)},pipe:(e,t)=>Se.I.pipeline.push(e,t),pipeline:(e=1)=>new Ae(e),safeTask:(e,t)=>new xe(e,t)};const ar=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=ar(e[r]));return t};const cr=(e,t,r={})=>{const n=e||{},{ignoreUndefined:s=!0,cover:o=!1}=r;if(!t)return n;for(const i in t){if(!t.hasOwnProperty(i))continue;const a=t[i];"object"!=typeof a||"object"!=typeof e[i]||o?s&&void 0===a||r.ignoreNull&&null===a||r.ignoreZero&&0===a||r.ignoreEmptyArray&&Array.isArray(a)&&a.length<=0||r.ignoreEmptyString&&"string"==typeof a&&""===a.trim()||(n[i]=a):n[i]=lr(e[i],a,r)}return n},lr=(e,t,r={})=>{let n={};return n=e&&"object"==typeof e&&!Array.isArray(e)?cr(e,t,r):cr({...e},t,r),n},ur=(e,t,r={})=>cr({...e},t,{cover:!0,...r}),fr=(e,t,r,n,s=!1)=>{if(!e||!t||!r)return;let o=e[t];null!==o&&"object"==typeof o&&s&&Object.keys(o).forEach((e=>{fr(o,e,r,n,s)})),Object.defineProperty(e,t,{configurable:!0,enumerable:!0,set:i=>{r.call(n,i,o),o=i,s&&fr(e,t,r,n,s)},get:()=>o})};var hr={copy:(e,t={})=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r))return r;const{fields:n=[],camel:s=!1,pure:o=!0}=t;if((!n||n.length<=0)&&!s)return r;const i={};for(const e in r){if(!r.hasOwnProperty(e))continue;const a=s?o&&e.startsWith("_")?e:Qt.camelCase(e):e;if(n.length>0&&!n.includes(e)&&!n.includes(a))continue;const c=r[e];t.ignoreNull&&null===c||(t.ignoreZero&&0===c||t.ignoreEmptyArray&&Array.isArray(c)&&c.length<=0||t.ignoreEmptyString&&"string"==typeof c&&""===c.trim()||(i[a]=c))}return i},clone:ar,merge:lr,isEmpty:e=>0!==e&&(!e||"object"==typeof e&&(Array.isArray(e)?!e.length:Object.keys(e).length<=0)),parseValue:(e,{number:t=!1,boolean:r=!1}={})=>{if(!e&&"object"!=typeof e)return e;for(const[n,s]of Object.entries(e))if("object"==typeof s&&null!==s)for(const[e,n]of Object.entries(s))s[e]=Qt.parseValue(n,{number:t,boolean:r});else e[n]=Qt.parseValue(s,{number:t,boolean:r});return e},cloneClass:function(e){return e?"object"!=typeof e?e:Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e)):e},combine:ur,combines:(e,t={})=>{let r={};if(!e||e.length<=0)return r;const{ignoreUndefined:n=!0,ignoreNull:s=!0,ignoreZero:o=!0,ignoreEmptyArray:i=!0,ignoreEmptyString:a=!0,cover:c=!0}=t;return e.forEach((e=>r=ur(r,e,{ignoreUndefined:n,ignoreNull:s,ignoreZero:o,ignoreEmptyArray:i,ignoreEmptyString:a,cover:c}))),r},observe:fr,find:(e,t)=>{if(e&&"object"==typeof e)return Object.entries(e||{}).find((([e,r])=>!(!t||!t(e,r))))}};const dr=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:s=!0,uri:o=!0,parseNumber:i=!1,parseBoolean:a=!1}={}){t=t||"&",r=r||"=";const c={};if("string"!=typeof e||0===e.length)return c;const l=/\+/g,u=n||1e3;let f=(e=e.split(t)).length;u>0&&f>u&&(f=u);for(let t=0;t<f;++t){let n,i,a,u,f=e[t].replace(l,"%20"),h=f.indexOf(r);h>=0?(n=f.substr(0,h),i=f.substr(h+1)):(n=f,i=""),a=o?decodeURIComponent(n):n,u=o?decodeURIComponent(i):i,O.hasOwnProperty.call(c,a)&&s?Array.isArray(c[a])?c[a].push(u):c[a]=[c[a],u]:c[a]=u}return hr.parseValue(c,{number:i,boolean:a}),c},pr=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},gr=function(e,t=!0){return t?encodeURIComponent(e):e},yr=function(e,{cleanZero:t=!1,cleanNull:r=!1,cleanWhitespace:n=!1}={}){return!(!t||0!==e)||(!(!r||null!=e)||!(!n||"string"!=typeof e||""!==e.trim()))},mr=/^(https?):\/\/([\w.\_\-]+)(?::(\d+))?/,br=e=>{const t=(e||"").replace(/\\/g,"/").split("?")[0],r=t.match(/[\/]?([\w\_\-]+)[.]?[\w]*[?]?$/),n=r?r[1]:"",s=t.lastIndexOf("/")+1,o=t.substring(s),i=o.lastIndexOf("."),a=o.substring(0,i)||"",c=i>=0?o.substring(i):"";return{route:t.substring(0,s)||"",page:n,name:o,withoutExtension:a,extname:c}},wr=e=>{const t={href:e,url:"",origin:"",protocol:"",host:"",port:"",query:""};if(!e)return t;const r=e.match(mr);if(!r||r.length<4)return t;const n=r[3]||"",s=e.split("?");return t.url=s[0],t.origin=r[0],t.protocol=`${r[1]}:`,t.host=`${r[2]}${n?":"+n:""}`,t.port=n,t.query=s.length>1?s[1]:"",t},_r=(e,t)=>{if(e===t)return!0;if(!e)return!1;if(!t)return!1;if("*"===t)return!0;const r=t.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp("^"+r+"$").test(e)};var vr={parse:dr,stringify:function(e,{sep:t="&",eq:r="=",name:n=null,uri:s=!0,cleanZero:o=!1,cleanNull:i=!1,cleanWhitespace:a=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const c=gr(pr(n),s)+r,l=e[n];return Array.isArray(l)?l.map((function(e){return c+gr(pr(e),s)})).join(t):yr(l,{cleanZero:o,cleanNull:i,cleanWhitespace:a})?"":c+gr(pr(l),s)})).filter(Boolean).join(t):n?gr(pr(n),s)+r+gr(pr(e),s):""},https:e=>e?e.replace(/^http[s]?/,"https"):e,parseUrl:e=>{const t=wr(e),{origin:r="",url:n="",query:s=""}=t,o=br(n),i=dr(s,{multiple:!0,uri:!1});return{...t,...o,pathname:n.substring(n.indexOf(r||"")+r.length),params:i}},parsePath:br,parseHost:wr,join:(...e)=>{const t=[];let r=!1;return e.forEach((e=>{const n=e.trim();if(""===n)return;if(/^(\w+):\/\//.test(n))return t.length=0,t.push(n),void(r=!0);n.split("/").forEach((e=>{"."!==e&&""!==e&&(".."===e?t.length>0&&".."!==t[t.length-1]?t.pop():r||t.push(".."):t.push(e))}))})),t.join("/")},shExpMatch:_r,isLocalIPAddress:e=>!!e&&!!(_r(e,"127.0.0.1")||_r(e,"localhost")||_r(e,"192.168.*.*")),parseFileUrl:e=>{const t={href:e,file:"",url:"",protocol:"",host:"",query:"",params:{}};if(!e)return t;let r=e?e.replace(/\\/g,"/"):"";r.startsWith("file://")&&!r.startsWith("file:///")?r="file:///"+r.slice(7):r.startsWith("file:/")&&!r.startsWith("file:///")&&(r="file:///"+r.slice(6));const n=r.match(/^file:\/\/(?:([^\/\\]+))?(\/.*)?$/);if(!n||n.length<3)return t;t.protocol="file:";const s=n[1]||"",o=n[2]||"";t.host=s;const i=o.split("?");return t.url=t.protocol+`//${t.host}`+i[0],t.file=i[0],t.query=i.length>1?i[1]:"",t.params=dr(t.query,{multiple:!0,uri:!1}),t},isPrivateIP:e=>!!e&&!!(_r(e,"localhost")||_r(e,"127.0.0.1")||_r(e,"127.*")||_r(e,"10.*")||_r(e,"172.16.*")||_r(e,"172.17.*")||_r(e,"172.18.*")||_r(e,"172.19.*")||_r(e,"172.2?.*")||_r(e,"172.3[0-1].*")||_r(e,"192.168.*")),isIP:e=>{const t=(e||"").trim();return/^(\d+).(\d+).(\d+).(\d+)$/.test(t)}};class xr{_loopTimer;_event=new p;started=!1;interval=0;constructor(e=0){this.interval=e||500}start(){return this.started||(this.stop(),this._loopTimer=setInterval((()=>{this._handleLoop()}),this.interval),this.started=!0),this}stop(){return this._loopTimer?(clearInterval(this._loopTimer),this._loopTimer=0,this.started=!1,this):this}restart(){return this.stop(),this.start(),this}on(e){return this._event.on("frame",e),this}off(e){return e?(this._event.off("frame",e),this):this}_handleLoop(){this._event.emit("frame")}}var Ar={oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3};class Sr{date;timestamp=0;yyyy=0;yy="";M=0;MM="";d=0;dd="";h=0;hh="";m=0;mm="";s=0;ss="";S=0;SS="";SSS="";constructor(e){if(!e)return;const t="string"==typeof e||"number"==typeof e?new Date(e):e;t&&(this.date=t,this.timestamp=t.getTime(),this.toDate())}toDate(){return this.date?(this.yyyy=this.date.getFullYear(),this.yy=`${this.yyyy}`.substr(2),this.M=this.date.getMonth()+1,this.MM=(this.M<10?"0":"")+this.M,this.d=this.date.getDate(),this.dd=(this.d<10?"0":"")+this.d,this.h=this.date.getHours(),this.hh=(this.h<10?"0":"")+this.h,this.m=this.date.getMinutes(),this.mm=(this.m<10?"0":"")+this.m,this.s=this.date.getSeconds(),this.ss=(this.s<10?"0":"")+this.s,this.S=this.date.getMilliseconds(),this.SS=(this.S<10?"0":"")+this.S,this.SSS=this.S.toString().padStart(3,"0"),this):this}toCountdown(e=""){const t={countdown:0,timestamp:0,seconds:0,d:0,dd:"",h:0,hh:"",m:0,mm:"",s:0,ss:"",S:0,SS:"",SSS:"",desc:""};if(!this.timestamp)return t;t.timestamp=this.timestamp,t.countdown=Math.max(t.timestamp-Date.now(),0),t.seconds=Math.floor(t.countdown/Ar.oneSecond);let r=t.countdown;t.d=Math.floor(r/Ar.oneDay),t.dd=(t.d<10?"0":"")+t.d,r%=Ar.oneDay,t.h=Math.floor(r/Ar.oneHour),t.hh=(t.h<10?"0":"")+t.h,r%=Ar.oneHour,t.m=Math.floor(r/Ar.oneMinute),t.mm=(t.m<10?"0":"")+t.m,r%=Ar.oneMinute,t.s=Math.floor(r/Ar.oneSecond),t.ss=(t.s<10?"0":"")+t.s,r%=Ar.oneSecond,t.S=r,t.SS=(t.S<10?"0":"")+t.S,t.SSS=t.S.toString().padStart(3,"0");let n=e;return n||(n=t.countdown>Ar.oneHour?"hh:mm:ss":t.countdown>Ar.oneMinute?"mm:ss":"ss"),t.desc=n.replace(/\bdd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>t[e])),t}add(e=0){return e?(this.timestamp=this.timestamp+e,this.date=new Date(this.timestamp),this.toDate(),this):this}format(e="yyyy-MM-dd hh:mm:ss"){return e.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>this[e]))}static get timezoneOffset(){return(new Date).getTimezoneOffset()/60}static getLocalTime(e=0){const t=new Date,r=t.getTime(),n=6e4*t.getTimezoneOffset();return new Date(r+n+36e5*e)}}const kr=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?jr(e):e;return r?Cr(r).format(t):""},Cr=e=>{const t="string"==typeof e||"number"==typeof e?jr(e):e;return new Sr(t||0)};function Or({year:e=0,month:t=0,date:r=0,hour:n=0,minute:s=0,second:o=0}){const i=`${e||"yyyy"}/${t||"MM"}/${r||"dd"} ${n}:${s}:${o}`;return new Date(kr(Date.now(),i)).getTime()}function jr(e){if(!e)return;let t;return"string"==typeof e?t=new Date(e):"number"==typeof e&&(t=10==e.toString().length?new Date(1e3*e):new Date(e)),t}var $r={...Ar,now:function(){return Cr(new Date)},isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),parseTimestamp:Or,todayZero:()=>Or({}),format:kr,countdown:(e,t="")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";return Cr(r).toCountdown(t)},dtime:Cr,loopFrame:(e=500)=>new xr(e),getTimezoneOffset:()=>Sr.timezoneOffset,getLocalTime:Sr.getLocalTime,toDate:jr};const Er=e=>Oe.toBase64(e);var Pr={encode:Er,decode:e=>Oe.fromBase64(e),encodeByOss:e=>Er(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};var Tr={...u,base64:Pr,tea:ot,uuid:f,guid:(e=0,t=!1,r="")=>{let n="";return n=e<=0?f():d(e||32),t?$r.now().format("yyyyMMddhhmmss")+r+n:n},UUID:h,randomID:d,getHexString:e=>{const t=u.keyChars;let r="";const n=t.length;for(let s=0;s<e;s++)r+=t.charAt(Math.floor(Math.random()*n));return r}};const Br=(e,t,r=8)=>{if(e===t)return!0;if(null==e||null==t||"object"!=typeof e||"object"!=typeof t)return!1;if(r<=0)return!1;if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;const n=Object.prototype.toString.call(e);if(n!==Object.prototype.toString.call(t))return!1;switch(n){case"[object Array]":return qr(e,t,r);case"[object Map]":return Lr(e,t,r);case"[object Set]":return Rr(e,t,r);case"[object Object]":return Fr(e,t,r);default:return Ur(e,t,n)}},qr=(e,t,r=1/0)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Br(e[n],t[n],r-1))return!1;return!0},Lr=(e,t,r=1/0)=>{if(e.size!==t.size)return!1;for(const[n,s]of e)if(!t.has(n)||!Br(s,t.get(n),r-1))return!1;return!0},Rr=(e,t,r=1/0)=>{if(e.size!==t.size)return!1;for(const n of e)if(![...t].some((e=>Br(n,e,r-1))))return!1;return!0},Fr=(e,t,r=1/0)=>{const n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(const o of n)if(!s.includes(o)||!Br(e[o],t[o],r-1))return!1;const o=Object.getOwnPropertySymbols(e),i=Object.getOwnPropertySymbols(t);if(o.length!==i.length)return!1;for(const n of o)if(!i.includes(n)||!Br(Reflect.get(e,n),Reflect.get(t,n),r-1))return!1;return!0},Ur=(e,t,r)=>{switch(r){case"[object RegExp]":return String(e)===String(t);case"[object Date]":return e.getTime()===t.getTime();case"[object ArrayBuffer]":return Ir(e,t);default:return e===t}},Ir=(e,t)=>{if(e.byteLength!==t.byteLength)return!1;const r=new Uint8Array(e),n=new Uint8Array(t);for(let e=0;e<r.length;e++)if(r[e]!==n[e])return!1;return!0};var Dr={isEqual:Br,isEqualArray:qr,isEqualObject:Fr,isEqualValue:Ur,isEqualAB:Ir,isEqualDeep:(e,t)=>Br(e,t,1/0)};const Mr=(e,t=new WeakMap)=>{if(null===e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);let r;if(Array.isArray(e)){r=[],t.set(e,r);for(const n of e)r.push(Mr(n,t))}else if(e instanceof Date)r=new Date(e);else if(e instanceof RegExp)r=new RegExp(e.source,e.flags);else if(e instanceof Map){r=new Map,t.set(e,r);for(const[n,s]of e.entries())r.set(Mr(n,t),Mr(s,t))}else if(e instanceof Set){r=new Set,t.set(e,r);for(const n of e.values())r.add(Mr(n,t))}else if("object"==typeof e){r={},t.set(e,r);for(const[n,s]of Object.entries(e))r[n]=Mr(s,t)}return r};var Kr={copy:(e,t={})=>{if(null==e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r||null===r)return r;if(Array.isArray(r))return r;const{fields:n=[],camel:s=!1,pure:o=!0,...i}=t,a={},c=[{condition:i.ignoreNull,test:e=>null===e},{condition:i.ignoreZero,test:e=>0===e},{condition:i.ignoreEmptyArray,test:e=>Array.isArray(e)&&0===e.length},{condition:i.ignoreEmptyString,test:e=>"string"==typeof e&&""===e.trim()}].filter((e=>e.condition));for(const[e,t]of Object.entries(r)){const r=!s||o&&e.startsWith("_")?e:Qt.camelCase(e);n.length>0&&!n.includes(e)&&!n.includes(r)||(c.some((e=>e.test(t)))||(a[r]=t))}return a},clone:Mr,cloneClass:function(e){return null==e||"object"!=typeof e?e:Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}};const zr=(e,t)=>{if(e===t)return!0;if(!e||!t)return!1;if("*"===t)return!0;const r=t.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp("^"+r+"$").test(e)};var Nr={shExpMatch:zr,shExpMatchs:(e,t)=>{if(!e||!t)return!1;let r=[];if(Array.isArray(t))r=t;else{if("string"!=typeof t)return!1;r=[t]}for(const t of r){if("*"===t)return!0;if(zr(e,t))return!0}return!1}};const Hr="[object Object]",Vr="[object Array]",Wr=O.getTag,Zr=e=>{if(Wr(e)!==Hr)return e;const t={};for(const r in e)if(/\w+\.\w+/g.test(r)&&!r.includes("[")){const n=r.split(".");let s=t;for(let e=0;e<n.length-1;e++){const t=n[e];Wr(s[t])!==Hr&&(s[t]={}),s=s[t]}s[n[n.length-1]]=e[r]}else t[r]=e[r];return t},Jr=(e,t,r=!1)=>{if(e===t)return;const n=Wr(e);if(n===Wr(t))if(n===Vr&&e.length>=t.length)for(let r=0;r<t.length;r++)Jr(e[r],t[r]);else if(n===Hr&&Object.keys(e).length>=Object.keys(t).length)for(const n in t)r||void 0!==e[n]?Jr(e[n],t[n]):e[n]=null},Yr=(e,t)=>Jr(e,t,!0),Qr=(e,t,r={},n="",s=!1)=>{if(e===t)return r;const o=Wr(e),i=Wr(t);if(o===Vr&&i===o&&e.length>=t.length){for(let s=0;s<e.length;s++)Qr(e[s],t[s],r,`${n}[${s}]`,!1);return r}if(o===Hr&&i===o&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let o of s){const s=e[o],i=t[o],a=Wr(s),c=Wr(i);if(s!==i)if(a===Vr&&c===a&&s.length>=i.length)for(let e=0;e<s.length;e++)Qr(s[e],i[e],r,`${n?n+".":""}${o}[${e}]`,!1);else if(a===Hr&&c===a&&Object.keys(s).length>=Object.keys(i).length)for(let e in s)Qr(s[e],i[e],r,`${n?n+".":""}${o}.${e}`,!1);else null!==s&&(r[`${n?n+".":""}${o}`]=s)}return r}return r[n]=e,r};const Gr={...{...Dr,...Kr,...Nr,...{flattenPath:Zr,normalizeStructure:Yr,diffPath:(e,t)=>{const r=Zr(e),n=Zr(t);return Yr(r,n),Qr(r,n)}}},...He,...Tr,...ir,...Qt,...Pe,...ve,qs:vr};var Xr={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let s=0;s<e.length&&(e.charCodeAt(s)>127||94===e.charCodeAt(s)?r+=2:r++,!(r>t));s++)n=s;return e.substr(0,n+1)}};function en(e){return e!=e}function tn(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}(t,(function(t){return e[t]}))}var rn,nn,sn=(rn=Object.keys,nn=Object,function(e){return rn(nn(e))}),on=Math.max;function an(e,t){var r=G.isArray(e)||G.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,s=!!n;for(var o in e)!t&&!O.hasOwnProperty.call(e,o)||s&&("length"==o||G.isIndex(o,n))||r.push(o);return r}var cn={...G,...O,...hr,...ve,includes:function(e,t,r,n){e=G.isArrayLike(e)?e:function(e){return e?tn(e,function(e){return G.isArrayLike(e)?an(e):function(e){if(!G.isPrototype(e))return sn(e);var t=[];for(var r in Object(e))O.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?le.toInteger(r):0;var s=e.length;return r<0&&(r=on(s+r,0)),G.isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var s=e.length,o=r+(n?1:-1);n?o--:++o<s;)if(t(e[o],o,e))return o;return-1}(e,en,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,r)>-1},forof:(e,t)=>{if(!e)return;let r;if(G.isObject(e)&&(r=G.isArray(e)?e.entries():Object.entries(e),r))for(const[e,n]of r)t&&t(e,n)}};var ln={...{groupBy:function(e,t){return e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{})},first:function(e){if(!e)return;return e.length<=0?void 0:e[0]},last:function(e){if(!e)return;const t=e.length;return t<=0?void 0:e[t-1]},toList:function(e){return Array.isArray(e)?e:e?[e]:[]}},stepAction:function(e,t,r=100){if(!G.isFunction(t))return;if(!G.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let s=r+n,o=e.slice(n,s);t&&t(o),n=s}},skip:function(e,t){if(!G.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:function(e,t,r=0){if(!G.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const s=t+n;return e.slice(n,e.length<s?e.length:s)||[]},distinct:function(e){return!G.isArray(e)||e.length<=0?[]:[...new Set(e)]},randoms:function(e,t=1,r=!1){const n=e.length||0;return Pe.randoms(n,t,r).map((t=>e[t]))||[]},toKV:(e,t,r)=>{const n={};return t&&r?((e||[]).forEach((e=>{if(!e||!G.isObject(e))return;const s=e[t];(G.isString(s)&&""!==s||G.isNumber(s))&&(n[s]=e[r])})),n):n}};const un=/%[sdj%]/g;let fn=()=>{};function hn(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function dn(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(un,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function pn(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function gn(e,t,r){let n=0;const s=e.length;!function o(i){if(i&&i.length)return void r(i);const a=n;n+=1,a<s?t(e[a],o):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(fn=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class yn extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function mn(e,t,r,n,s){if(t.first){const t=new Promise(((t,o)=>{const i=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);gn(i,r,(e=>(n(e),e.length?o(new yn(e,hn(e))):t(s))))}));return t.catch((e=>e)),t}const o=!0===t.firstFields?Object.keys(e):t.firstFields||[],i=Object.keys(e),a=i.length;let c=0;const l=[],u=new Promise(((t,u)=>{const f=e=>{if(l.push.apply(l,e),c++,c===a)return n(l),l.length?u(new yn(l,hn(l))):t(s)};i.length||(n(l),t(s)),i.forEach((t=>{const n=e[t];-1!==o.indexOf(t)?gn(n,r,f):function(e,t,r){const n=[];let s=0;const o=e.length;function i(e){n.push(...e||[]),s++,s===o&&r(n)}e.forEach((e=>{t(e,i)}))}(n,r,f)}))}));return u.catch((e=>e)),u}function bn(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(s=r)&&void 0!==s.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var s}}function wn(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const _n=(e,t,r,n,s,o)=>{!e.required||r.hasOwnProperty(e.field||"")&&!pn(t,o||e.type)||n.push(dn(s.messages.required,e.fullField))};let vn;const xn=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,An=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Sn={integer:e=>Sn.number(e)&&parseInt(e,10)===e,float:e=>Sn.number(e)&&!Sn.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Sn.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(xn),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(vn)return vn;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",s=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),o=new RegExp(`(?:^${r}$)|(?:^${s}$)`),i=new RegExp(`^${r}$`),a=new RegExp(`^${s}$`),c=e=>e&&e.exact?o:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${s}${t(e)})`,"g");c.v4=e=>e&&e.exact?i:new RegExp(`${t(e)}${r}${t(e)}`,"g"),c.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${s}${t(e)}`,"g");const l=c.v4().source,u=c.v6().source;return vn=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${u}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),vn})()),hex:e=>"string"==typeof e&&!!e.match(An)},kn="enum";var Cn={required:_n,whitespace:(e,t,r,n,s)=>{(/^\s+$/.test(t)||""===t)&&n.push(dn(s.messages.whitespace,e.fullField))},type:(e,t,r,n,s)=>{if(e.required&&void 0===t)return void _n(e,t,r,n,s);const o=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(o)>-1?Sn[o](t)||n.push(dn(s.messages.types[o],e.fullField,e.type)):o&&typeof t!==e.type&&n.push(dn(s.messages.types[o],e.fullField,e.type))},range:(e,t,r,n,s)=>{const o="number"==typeof e.len,i="number"==typeof e.min,a="number"==typeof e.max,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,u="";const f="number"==typeof t,h="string"==typeof t,d=Array.isArray(t);if(f?u="number":h?u="string":d&&(u="array"),!u)return!1;d&&(l=t.length),h&&(l=t.replace(c,"_").length),o?l!==e.len&&n.push(dn(s.messages[u].len,e.fullField,e.len)):i&&!a&&l<e.min?n.push(dn(s.messages[u].min,e.fullField,e.min)):a&&!i&&l>e.max?n.push(dn(s.messages[u].max,e.fullField,e.max)):i&&a&&(l<e.min||l>e.max)&&n.push(dn(s.messages[u].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,s)=>{e[kn]=Array.isArray(e[kn])?e[kn]:[],-1===e[kn].indexOf(t)&&n.push(dn(s.messages[kn],e.fullField,e[kn].join(", ")))},pattern:(e,t,r,n,s)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(dn(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(dn(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const On=(e,t,r,n,s)=>{const o=e.type,i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(pn(t,o)&&!e.required)return r();Cn.required(e,t,n,i,s,o),pn(t,o)||Cn.type(e,t,n,i,s)}r(i)};var jn={string:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(pn(t,"string")&&!e.required)return r();Cn.required(e,t,n,o,s,"string"),pn(t,"string")||(Cn.type(e,t,n,o,s),Cn.range(e,t,n,o,s),Cn.pattern(e,t,n,o,s),!0===e.whitespace&&Cn.whitespace(e,t,n,o,s))}r(o)},method:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(pn(t)&&!e.required)return r();Cn.required(e,t,n,o,s),void 0!==t&&Cn.type(e,t,n,o,s)}r(o)},number:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),pn(t)&&!e.required)return r();Cn.required(e,t,n,o,s),void 0!==t&&(Cn.type(e,t,n,o,s),Cn.range(e,t,n,o,s))}r(o)},boolean:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(pn(t)&&!e.required)return r();Cn.required(e,t,n,o,s),void 0!==t&&Cn.type(e,t,n,o,s)}r(o)},regexp:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(pn(t)&&!e.required)return r();Cn.required(e,t,n,o,s),pn(t)||Cn.type(e,t,n,o,s)}r(o)},integer:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(pn(t)&&!e.required)return r();Cn.required(e,t,n,o,s),void 0!==t&&(Cn.type(e,t,n,o,s),Cn.range(e,t,n,o,s))}r(o)},float:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(pn(t)&&!e.required)return r();Cn.required(e,t,n,o,s),void 0!==t&&(Cn.type(e,t,n,o,s),Cn.range(e,t,n,o,s))}r(o)},array:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Cn.required(e,t,n,o,s,"array"),null!=t&&(Cn.type(e,t,n,o,s),Cn.range(e,t,n,o,s))}r(o)},object:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(pn(t)&&!e.required)return r();Cn.required(e,t,n,o,s),void 0!==t&&Cn.type(e,t,n,o,s)}r(o)},enum:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(pn(t)&&!e.required)return r();Cn.required(e,t,n,o,s),void 0!==t&&Cn.enum(e,t,n,o,s)}r(o)},pattern:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(pn(t,"string")&&!e.required)return r();Cn.required(e,t,n,o,s),pn(t,"string")||Cn.pattern(e,t,n,o,s)}r(o)},date:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(pn(t,"date")&&!e.required)return r();if(Cn.required(e,t,n,o,s),!pn(t,"date")){let r;r=t instanceof Date?t:new Date(t),Cn.type(e,r,n,o,s),r&&Cn.range(e,r.getTime(),n,o,s)}}r(o)},url:On,hex:On,email:On,required:(e,t,r,n,s)=>{const o=[],i=Array.isArray(t)?"array":typeof t;Cn.required(e,t,n,o,s,i),r(o)},any:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(pn(t)&&!e.required)return r();Cn.required(e,t,n,o,s)}r(o)}};function $n(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const En=$n();class Pn{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");jn[e]=t};static warning=fn;static messages=En;static validators=jn;rules={};_messages=En;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=wn($n(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,s=t,o=r;if("function"==typeof s&&(o=s,s={}),!this.rules||0===Object.keys(this.rules).length)return o&&o(null,n),Promise.resolve(n);if(s.messages){let e=this.messages();e===En&&(e=$n()),wn(e,s.messages),s.messages=e}else s.messages=this.messages();const i={};(s.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let s=n[t];r.forEach((r=>{let o=r;"function"==typeof o.transform&&(n===e&&(n={...n}),s=n[t]=o.transform(s)),o="function"==typeof o?{validator:o}:{...o},o.validator=this.getValidationMethod(o),o.validator&&(o.field=t,o.fullField=o.fullField||t,o.type=this.getType(o),i[t]=i[t]||[],i[t].push({rule:o,value:s,source:n,field:t}))}))}));const a={};return mn(i,s,((e,t)=>{const r=e.rule;let o,i=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function c(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function l(o=[]){let l=Array.isArray(o)?o:[o];!0===s.suppressWarning&&l.length&&Pn.warning("async-validator:",l),l.length&&void 0!==r.message&&(l=[].concat(r.message));let u=l.map(bn(r,n));if(s.first&&u.length)return a[r.field]=1,t(u);if(i){if(r.required&&!e.value)return void 0!==r.message?u=[].concat(r.message).map(bn(r,n)):s.error&&(u=[s.error(r,dn(s.messages.required,r.field))]),t(u);let o={};r.defaultField&&Object.keys(e.value).map((e=>{o[e]=r.defaultField})),o={...o,...e.rule.fields};const i={};Object.keys(o).forEach((e=>{const t=o[e],r=Array.isArray(t)?t:[t];i[e]=r.map(c.bind(null,e))}));const a=new Pn(i);a.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),a.validate(e.value,e.rule.options||s,(e=>{const r=[];u&&u.length&&r.push(...u),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(u)}if(i=i&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)o=r.asyncValidator(r,e.value,l,e.source,s);else if(r.validator){try{o=r.validator(r,e.value,l,e.source,s)}catch(e){console.error?.(e),s.suppressValidatorError||setTimeout((()=>{throw e}),0),l(e.message)}!0===o?l():!1===o?l("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):o instanceof Array?l(o):o instanceof Error&&l(o.message)}o&&o.then&&o.then((()=>l()),(e=>l(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)s=e[r],Array.isArray(s)?t=t.concat(...s):t.push(s);var s;t.length?(r=hn(t),o(t,r)):o(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!jn.hasOwnProperty(e.type))throw new Error(dn("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?jn.required:jn[this.getType(e)]||void 0}}function Tn(e){return new Pn(e)}var Bn={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:Tn,validate:function(e,t,r={},n=(()=>{})){return ir.run(Tn(e).validate(t,r,n))},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isNumber:function(e){return!!e&&!!/^[0-9]+$/.test(e)},isFloat:function(e){return!!e&&!!/^(\-|\+)?\d+(\.\d+)?$/.test(e)},isPhoneNumber:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)}};const qn={gbk:Xr,math:Pe,list:ln,string:Qt,time:$r,obj:hr,rule:Bn,regex:{pattern:{num:"0-9",zh:"一-龥",en:"A-Za-z"},regex:(e,t)=>new RegExp(e,t),entire:{chinese:/^[\u4E00-\u9FA5]+$/,real:/^(\-|\+)?\d+(\.\d+)?$/,cssReal:/^(\-|\+)?\d*(\.)?\d+$/,id:/^[A-Za-z0-9]+$/,yyyyMMdd:/^(\d{4})-?(\d{2})-?(\d{2})$/}},...He,...Tr,...cn,Event:p},Ln="[object Object]",Rn="[object Array]",Fn=e=>Object.prototype.toString.call(e),Un=(e,t,r=!1)=>{if(e===t)return;const n=Fn(e);if(n===Fn(t))if(n===Rn&&e.length>=t.length)for(let r=0;r<t.length;r++)Un(e[r],t[r]);else if(n===Ln&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?Un(e[n],t[n]):e[n]=null},In=(e,t,r,n="",s=!1)=>{if(e===t)return;const o=Fn(e),i=Fn(t);if(o===Rn&&i===o&&e.length>=t.length)for(let s=0;s<e.length;s++)In(e[s],t[s],r,`${n}[${s}]`);else if(o===Ln&&i===o&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let o of s){const s=e[o],i=t[o],a=Fn(s),c=Fn(i);if(s!==i)if(a===Rn&&c===a&&s.length>=i.length)for(let e=0;e<s.length;e++)In(s[e],i[e],r,`${n?n+".":""}${o}[${e}]`);else if(a===Ln&&c===a&&Object.keys(s).length>=Object.keys(i).length)for(let e in s)In(s[e],i[e],r,`${n?n+".":""}${o}.${e}`);else r[`${n?n+".":""}${o}`]=s}}else r[n]=e};class Dn{list=[];constructor(){this.invoke=this.invoke.bind(this)}use(e){this.list=this.list.concat(e)}invoke(e){return this.list.reduce(((e,t)=>e.then((e=>t(e)))),Promise.resolve(e)).catch((e=>"REFETCH"===e.sig?Promise.resolve(e.result):Promise.reject(e)))}}class Mn{reqConfig={};handleRequest;handleEncrypt;handleDecrypt;handleError;interceptors={request:new Dn,response:new Dn};constructor(e){const{reqConfig:t={},requestEncrypt:r,responseDecrypt:n,handleError:s,api:o}=e;this.reqConfig=t,this.handleEncrypt=r,this.handleDecrypt=n,this.handleError=s,this.handleRequest=o}static blockId="blockid";static requestLock={};lockR(e,t){Mn.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete Mn.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}_fetch(e,t){let r=e;return t&&this.handleEncrypt&&(r=this.handleEncrypt(e)),new Promise(((e,n)=>{this.handleRequest({...r,success:r=>{let n=r;t&&this.handleDecrypt&&(n=this.handleDecrypt(r)),e(n)},fail:e=>{n(e)}})}))}async request(e,t){const r=hr.copy(this.reqConfig[e]),{config:n,...s}=await this.interceptors.request.invoke({url:r.url,data:t||{},header:{"content-type":"application/json"},method:r.method?r.method:"POST",responseType:"text",config:r});let o;try{if("block"===n.model)this.lockR(Mn.blockId,(()=>this._fetch(s,n.hasEncrypt))),o=await Mn.requestLock[Mn.blockId].request;else if(Mn.requestLock[Mn.blockId]&&Mn.requestLock[Mn.blockId].lock&&await Mn.requestLock[Mn.blockId].request,"debounce"===n.model||"debounceUrl"===n.model){let e;e="debounceUrl"===n.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),Mn.requestLock[e]||this.lockR(e,(()=>this._fetch(s,n.hasEncrypt))),o=await Mn.requestLock[e].request,this.unlockR(e)}else o=await this._fetch(s,n.hasEncrypt)}catch(e){this.handleError&&this.handleError(e)}return this.interceptors.response.invoke({res:o,config:r,reqId:this.getIdFromReq(s),refetch:()=>({sig:"REFETCH",result:this.request(e,t||{})})})}}const Kn=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var zn={diff:function(e,t){const r={};return(e=>{if(Fn(e)===Ln)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,s=r.length;for(let e=0;e<s-1;e++){const t=r[e];Fn(n[t])!==Ln&&(n[t]={}),n=n[t]}n[r[s-1]]=e[t],delete e[t]}})(e),Un(e,t,!0),In(e,t,r,"",!0),r},promixify:Kn,run:(e,t={})=>e?ir.run(Kn(e)(t)):ir.run(e),formatList:(e,t,r)=>(e||[]).reduce(((e,n,s)=>({...e,[`${r}[${t+s}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e))),Http:Mn,setWatcher:e=>{let t=e.data,r=e.watch;Object.keys(r).forEach((n=>{let s=t,o=n.split(".");for(let e=0;e<o.length-1;e++)s=s[o[e]];let i=o[o.length-1],a=r[n].handler||r[n],c=r[n].deep;hr.observe(s,i,a,e,c)}))}};const Nn=e=>{if(!e)return"";if(!cn.isObject(e))return"";let t="";return cn.forof(e,((e,r)=>{r&&(t+=`${Qt.kebabCase(e)}:${r};`)})),t},Hn=["display","position","top","bottom","left","right","padding","margin","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","height","width","fontSize","textAlign","fontFamily","border","borderLeft","borderRight","borderTop","borderBottom","borderColor","borderRadius","background","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","color","overflow","opacity","flexDirection","justifyContent","alignItems","flexWrap","alignContent","alignSelf","flex","flexBasis","flexFlow","flexShrink","pointerEvents"],Vn=["top","bottom","left","right","padding","margin","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","height","width","border","borderLeft","borderRight","borderTop","borderBottom","borderColor","borderRadius"],Wn=(e,t="px")=>e&&t?"0"===e?e:Bn.isFloat(e.toString())?`${e}${t}`:e:e;var Zn={stringify:Nn,parse:(e,{camel:t=!1,pure:r=!0}={})=>{if(!e.trim())return;const n=vr.parse(e,{sep:";",eq:":",uri:!1}),s={};return cn.forof(n,((e,n)=>{if(!n)return;const o=t?r&&e.startsWith("_")?e:Qt.camelCase(e):e;Bn.isFloat(n)||n.length>=2&&n.startsWith(".")&&Bn.isNumber(n.substr(1))?s[o]=+n:s[o]=n})),s},fixValue:Wn,style:(e,t="px")=>{if(!e)return"";const r=cn.copy(e,{fields:Hn});cn.forof(r,((e,n)=>{(Vn.includes(e)||Vn.includes(Qt.camelCase(e)))&&(r[e]=Wn(n,t))}));return Nn(r)},commonFields:Hn};const Jn=(e,t="",r=!1)=>{try{if(!e)return;const n=vr.parseUrl(e),s=t||n.name;if(!t||!r||!n.origin||n.origin===window.location.origin)((e,t)=>{try{const r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}catch(t){console.error(`[ddan] _downloadUrl ${e}`,t)}})(e,s);else{const t=n.params;t.t=Date.now();const r=`${n.url}?${vr.stringify(t,{uri:!1})}`,o=new XMLHttpRequest;o.open("GET",r,!0),o.responseType="blob",o.onload=function(){Yn(o.response,s)},o.onerror=function(t){console.error(`[ddan] downloadUrl ${e}`,t)},o.send()}}catch(t){console.error(`[ddan] downloadUrl ${e}`,t)}},Yn=(e,t="")=>{try{if(!e)return;const r=URL?.createObjectURL(e);if(!r)return;Jn(r,t),URL?.revokeObjectURL(r)}catch(e){console.error("[ddan] downloadFile",e)}},Qn=e=>{try{const t=document.createElement("textarea");document.body.appendChild(t),t.style.position="fixed",t.style.clip="rect(0 0 0 0)",t.style.top="10px",t.style.opacity="0",t.value=e??"",t.select();const r=document.execCommand("copy");return document.body.removeChild(t),r}catch(e){return console.error("[ddan] copyText",e),!1}},Gn=(e,t="denied")=>new Promise((r=>{const n=navigator?.permissions;if(!n||!n.query)return r(t);const s={name:e};n.query(s).then((e=>r(e.state))).catch((()=>r(t)))})),Xn=(e,t=!0)=>!(!t||"prompt"!==e)||"granted"===e,es=(e,t)=>{if(!e||!t)return[];const r=[];let n;for(;null!==(n=t.exec(e));)r.push(n[1]);return r},ts=(e,t="application/javascript")=>{const r=new Blob([e],{type:t});return URL.createObjectURL(r)};var rs={dataURLtoFile:(e,t)=>{let r=e.split(","),n=r[0].match(/:(.*?);/)[1],s=window.atob(r[1]),o=s.length,i=new Uint8Array(o);for(;o--;)i[o]=s.charCodeAt(o);return new File([i],t,{type:n})},dataURLtoBlob:e=>{let t=e.split(","),r=t[0].match(/:(.*?);/)[1],n=window.atob(t[1]),s=n.length,o=new Uint8Array(s);for(;s--;)o[s]=n.charCodeAt(s);return new Blob([o],{type:r})},blobToFile:(e,t)=>(e.lastModifiedDate=new Date,e.name=t,e),readAsDataURL:(e,t)=>{var r=new FileReader;r.readAsDataURL(e),r.onloadend=function(e){t&&t(e.target?.result)}},downloadUrl:Jn,download:(e,t="")=>{e&&("string"!=typeof e?Yn(e,t):Jn(e,t))},downloadFile:Yn,downloadImage:e=>{try{if(!e)return;const t=e.match(/\/(\w+.\w+)$/)[1],r=new Image;r.onload=()=>{let e=document.createElement("canvas");e.width=r.width,e.height=r.height;let n=e.getContext("2d");n&&n.drawImage(r,0,0,r.width,r.height);let s=e.toDataURL();Jn(s,t)},r.src=e,r.setAttribute("crossOrigin","Anonymous")}catch(e){console.error("[ddan] downloadImage",e)}return Promise.resolve()},watermark:(e,{width:t=400,height:r=300,angle:n=0,fillStyle:s="rgba(0, 0, 0, 0.2)",font:o="16px Arial",textAlign:i="left",textBaseline:a="middle"}={})=>{try{if(!e)return"";const c=document.createElement("canvas");c.width=t,c.height=r;const l=c.getContext("2d");return l?(n&&l.rotate(n*Math.PI/180),s&&(l.fillStyle=s),o&&(l.font=o),i&&(l.textAlign=i),a&&(l.textBaseline=a),l.fillText(e,c.width/10,c.height/2),`url(${c.toDataURL()})`):""}catch(e){return console.error("[ddan] watermark",e),""}},copyText:(e,t=!1)=>new Promise((r=>{!t&&navigator.clipboard?Gn("clipboard-write").then((t=>{Xn(t,!1)?navigator.clipboard.writeText(e).then((()=>r(!0))).catch((()=>r(Qn(e)))):r(Qn(e))})).catch((()=>{r(Qn(e))})):r(Qn(e))})),queryPermission:Gn,isAllowed:Xn,legacyCopy:Qn,takeHtmlLinks:e=>{if(!e)return[];const t=[];return[/<script[^>]+src="([^"]+)"/g,/<link[^>]+rel="stylesheet"[^>]+href="([^"]+)"/g,/<link[^>]+rel="icon"[^>]+href="([^"]+)"/g].forEach((r=>{const n=es(e,r);t.push(n)})),[].concat(...t)},takeHtml:es,toBlobUrl:ts,workerURL:e=>ts(`(${e.toString()})()`,"text/javascript"),getVideoMetadata:(e,t=3e4)=>new Promise(((r,n)=>{let s=null,o=null,i=null;const a=e=>{i&&(clearTimeout(i),i=null),s&&(s.onerror=null,s.onloadedmetadata=null,s.remove(),s=null),o&&(URL.revokeObjectURL(o),o=null),e&&n(e)};try{if(s=document.createElement("video"),i=setTimeout((()=>{a(new Error(`操作超时(${t}ms)`))}),t),e instanceof File||e instanceof Blob||e instanceof MediaSource)o=URL.createObjectURL(e),s.src=o;else{if("string"!=typeof e)throw new Error("无效的视频源类型");s.crossOrigin="anonymous",s.src=e}s.onloadedmetadata=()=>{r({width:s?.videoWidth||0,height:s?.videoHeight||0,duration:s?.duration||0}),a()},s.onerror=()=>{a(new Error(`视频加载失败: ${s?.error?.message||"未知错误"}`))}}catch(e){a(e instanceof Error?e:new Error("未知同步错误"))}})),getImageMetadata:(e,t=5e3)=>new Promise(((r,n)=>{const s=new Image;let o=null,i=null;const a=e=>{i&&(clearTimeout(i),i=null),s.onload=null,s.onerror=null,o&&(URL.revokeObjectURL(o),o=null),e&&n(e)};i=setTimeout((()=>{a(new Error(`图片加载超时(${t}ms)`))}),t),s.onload=()=>{r({width:s.naturalWidth,height:s.naturalHeight}),a()},s.onerror=()=>{a(new Error(`无法加载图片: ${s.src||"未知资源"}`))};try{if(e instanceof File||e instanceof Blob)o=URL.createObjectURL(e),s.src=o;else{if("string"!=typeof e)throw new Error("无效的图片源类型");s.setAttribute("crossOrigin","Anonymous"),s.src=e}}catch(e){e instanceof Error?a(e):a(new Error("未知同步错误"))}}))};const ns=new class{__defStyle="vertical-align: middle; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; -webkit-mask-position: 50% 50%; -webkit-mask-repeat: no-repeat; -webkit-mask-size: 100%; background-color: currentColor;";__map={back:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M609.408 149.376L277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"/></svg>',right:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"/></svg>',home:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 19.8h3.8v-7h3.303L12 4.697 3.897 12.8H7.2v7H11V17h2v2.8zm5 .2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-6H3.414a1 1 0 0 1-.707-1.707l8.586-8.586a1 1 0 0 1 1.414 0l8.586 8.586A1 1 0 0 1 20.586 14H18v6z" fill-rule="evenodd" fill-opacity=".9"/></svg>',close:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M764.288 214.592L512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"/></svg>',close_circle:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M466.752 512l-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z"/><path fill="currentColor" d="M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"/></svg>',close_circle_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"/></svg>',warning:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M928.99 755.83L574.6 203.25c-12.89-20.16-36.76-32.58-62.6-32.58s-49.71 12.43-62.6 32.58L95.01 755.83c-12.91 20.12-12.9 44.91.01 65.03 12.92 20.12 36.78 32.51 62.59 32.49h708.78c25.82.01 49.68-12.37 62.59-32.49 12.91-20.12 12.92-44.91.01-65.03zM554.67 768h-85.33v-85.33h85.33V768zm0-426.67v298.66h-85.33V341.32l85.33.01z" fill="currentColor"/></svg>',play:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024zm3.008-92.992a416 416 0 1 0 0-832 416 416 0 0 0 0 832zM383.232 287.616l384 224.896-384 223.104v-448z" fill="currentColor"/></svg>',lock:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32H224zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96z"/><path fill="currentColor" d="M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32zm192-160v-64a192 192 0 1 0-384 0v64h384zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64z"/></svg>',lock_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M467.2 713.92v115.968a44.8 44.8 0 0 0 89.6 0V713.92c26.752-14.72 44.8-42.304 44.8-73.92 0-47.104-40.128-85.312-89.6-85.312-49.472 0-89.6 38.208-89.6 85.312 0 31.616 18.048 59.136 44.8 73.92zM64 384h896v640H64V384zm268.8 0h358.4V256c0-94.272-80.256-170.688-179.2-170.688-98.944 0-179.2 76.416-179.2 170.688v128zM512 0c148.48 0 268.8 114.56 268.8 256v128H243.2V256C243.2 114.56 363.52 0 512 0z" fill="currentColor"/></svg>',plus:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z"/></svg>',plus_circle:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M352 480h320a32 32 0 1 1 0 64H352a32 32 0 0 1 0-64z"/><path fill="currentColor" d="M480 672V352a32 32 0 1 1 64 0v320a32 32 0 0 1-64 0z"/><path fill="currentColor" d="M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"/></svg>',plus_circle_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-38.4 409.6H326.4a38.4 38.4 0 1 0 0 76.8h147.2v147.2a38.4 38.4 0 0 0 76.8 0V550.4h147.2a38.4 38.4 0 0 0 0-76.8H550.4V326.4a38.4 38.4 0 1 0-76.8 0v147.2z"/></svg>',star:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 747.84l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72L512 747.84zM313.6 924.48a70.4 70.4 0 0 1-102.144-74.24l37.888-220.928L88.96 472.96A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 126.208 0l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z"/></svg>',star_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M283.84 867.84L512 747.776l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72z"/></svg>',share:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M679.872 348.8l-301.76 188.608a127.808 127.808 0 0 1 5.12 52.16l279.936 104.96a128 128 0 1 1-22.464 59.904l-279.872-104.96a128 128 0 1 1-16.64-166.272l301.696-188.608a128 128 0 1 1 33.92 54.272z"/></svg>',love:'<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M171.712 571.648l.352.32 287.904 252.8a64 64 0 0 0 82.912 1.344l296.832-244.544a215.584 215.584 0 1 0-301.824-300.576L512 316.672l-25.888-35.616a215.584 215.584 0 1 0-314.4 290.624zM32 407.584A279.584 279.584 0 0 1 512 212.64a279.584 279.584 0 0 1 480 194.944 278.144 278.144 0 0 1-113.024 224.512l-295.36 243.392a128 128 0 0 1-165.888-2.592L129.984 620.16A278.976 278.976 0 0 1 32 407.584z"/></svg>',love_fill:'<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M32 407.584A279.584 279.584 0 0 1 512 212.64a279.584 279.584 0 0 1 480 194.944 278.144 278.144 0 0 1-113.024 224.512L562.592 892.8a96 96 0 0 1-124.416-1.952L130.016 620.16A278.976 278.976 0 0 1 32 407.584z"/></svg>'};getBase64=e=>{const t=this.getSVG(e);return t?.url||""};getSVG=e=>{if(!e)return;const t=this.__map[e];if(!t)return;return{url:this.toBase64(t),escape:this.toEscape(t)}};toBase64=e=>{if(!e)return"";const t=this._tiny(e);return`data:image/svg+xml;base64,${Pr.encode(t)}`};_tiny=e=>e?e.replace(/<!--(.*)-->/g,"").replace(/[\r\n]/g," ").replace(/"/g,"'"):"";toEscape=e=>{if(!e)return"";return`data:image/svg+xml,${this._tiny(e).replace(/%/g,"%25").replace(/&/g,"%26").replace(/#/g,"%23").replace(/{/g,"%7B").replace(/}/g,"%7D").replace(/</g,"%3C").replace(/>/g,"%3E")}`};getStyle(e,t={}){if(!e)return"";const r=this.__map[e];return r?this.toStyle(r,t):""}toStyle(e,t={}){if(!e)return"";const r=this.toBase64(e);return r?this.getStyleByUrl(r,t):""}getStyleByUrl(e,t={}){if(!e)return"";const{key:r="mask-image",gradientValue:n="radial-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5))",gradient:s=!1,defStyle:o=this.__defStyle}=t,i=s&&n?`${n}, url("${e}")`:`url("${e}")`;return`${r}:${i};-webkit-${r}:${i};${o}`}},ss={mini:zn,css:Zn,qs:vr,icon:ns,html:rs},os=({url:e,options:t})=>{const r={"Content-Type":"application/json; charset=utf-8",...t.headers||{}};return t.headers=r,new Promise(((r,n)=>{fetch(e,t).then((e=>{r(e.json())})).catch((e=>{n(e)}))}))};function is(e){const{response:t}=e;return 0===t.code?Promise.resolve(t):Promise.reject(t)}function as(e){const{url:t="",host:r,options:n}=e,s=e;if(t.startsWith("http://")||t.startsWith("https://")||(s.url=(r||"")+t),"GET"===n.method.toUpperCase()&&n.body){const e=JSON.parse(n.body);if(cn.isPlainObject(e)){const r=vr.stringify(e),n=-1===t.indexOf("?")?"?":"&";s.url=`${s.url||""}${n}${r}`,delete s.options.body}}return n&&n.plugins&&delete s.options?.plugins,n&&n.model&&delete s.options?.model,s}class cs{host="";reqConfig={};handleError;interceptors={request:new Dn,response:new Dn};constructor(e){this.host=e.host||"",this.reqConfig=e.config,this.interceptors.request.use(e.handleRequest||[]),this.interceptors.request.use(as),this.interceptors.response.use(e.handleResponse||is),this.handleError=e.handleError}static blockId="blockid";static requestLock={};lockR(e,t){cs.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete cs.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}async fetch(e,t){const r=cn.copy(this.reqConfig[e])||{},n={host:this.host,url:r.url||"",options:{...r||{},body:JSON.stringify({...t||{}})}};try{const s=await this.interceptors.request.invoke(n);let o;if(delete s.options.plugins,"block"===r.model)this.lockR(cs.blockId,(()=>os(s))),o=await cs.requestLock[cs.blockId].request;else if(cs.requestLock[cs.blockId]&&cs.requestLock[cs.blockId].lock&&await cs.requestLock[cs.blockId].request,"debounce"===r.model||"debounceUrl"===r.model){let e;e="debounceUrl"===r.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),cs.requestLock[e]||this.lockR(e,(()=>os(s))),o=await cs.requestLock[e].request,this.unlockR(e)}else o=await os(s);return this.interceptors.response.invoke({response:o,config:r,refetch:()=>({sig:"REFETCH",result:this.fetch(e,t)})})}catch(e){return this.handleError&&this.handleError(e),Promise.reject(e)}}}var ls={getDataURL:(e,t)=>{const r={contentType:"",dataUrl:""};return we.to(fetch(e,{cache:t}).then((e=>(r.contentType=e.headers.get("content-type")||"",e.arrayBuffer()))).then((e=>(r.dataUrl=`data:${r.contentType};base64,`+He.ab2str(e,!0),r))))},getArrayBuffer:async(e,t)=>we.to(fetch(e,{cache:t}).then((e=>e.arrayBuffer()))),getJson:async(e,t)=>we.to(fetch(e,{cache:t}).then((e=>e.json()))),download:(e,t={})=>new Promise((r=>fetch(e).then((async e=>{if(!e.ok||200!==e.status)throw new Error(e.statusText);const n=+(e.headers.get("content-length")||""),s=e.body?.getReader();let o=0;const i=[];for(;;){const{done:e,value:r}=await s.read();if(e)break;i.push(r),o+=r.length;const a=Pe.float(100*o/n,{digits:2});t?.progress&&t?.progress(a,o,n)}const a=new Uint8Array(o);let c=0;for(const e of i)a.set(e,c),c+=e.length;t?.success&&t?.success(a),r(a)})).catch((e=>{t?.fail&&t?.fail(e),r(void 0)})))),getText:async(e,t)=>we.to(fetch(e,{cache:t}).then((e=>e.text()))),cache:async(e,t="no-cache")=>we.to(fetch(e,{cache:t}).then((()=>!0)))};class us{publicKey="";privateKey="";iv="";__privateCryptoKey;__sharedSecret;__curve;__keyFormat;__subtle;constructor(e="P-256",t="raw"){this.__curve=e,this.__keyFormat=t||"raw","undefined"!=typeof window?this.__subtle=window.crypto.subtle:this.__subtle={}}async generateKeys(){const e=await this.__subtle.generateKey({name:"ECDH",namedCurve:this.__curve},!0,["deriveKey","deriveBits"]);return this.__privateCryptoKey=e.privateKey,this.publicKey=await this.exportKey(e.publicKey),this.privateKey=await this.exportKey(e.privateKey,"pkcs8"),this}async exportKey(e,t="raw"){const r=await this.__subtle.exportKey(t||this.__keyFormat,e);return He.ab2str(r,!0)}async importKey(e,t="raw",r=[]){const n=He.base64ToBytes(e);return await this.__subtle.importKey(t||this.__keyFormat||"raw",n,{name:"ECDH",namedCurve:this.__curve},!0,r)}async setPrivateKey(e){if(!e)return!1;const t=await this.importKey(e,"pkcs8",["deriveKey","deriveBits"]);return this.privateKey=await this.exportKey(t,"pkcs8"),this.__privateCryptoKey=t,!0}async deriveSharedSecret(e,t){if(!this.__privateCryptoKey)return!1;const r=await this.importKey(e),n=await this.__subtle.deriveKey({name:"ECDH",public:r},this.__privateCryptoKey,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"]);return this.__sharedSecret=n,this.iv=t||"",!0}async encode(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=He.base64ToBytes(r),s=He.textEncode(e),o=await this.__subtle.encrypt({name:"AES-GCM",iv:n},this.__sharedSecret,s);return He.ab2str(o,!0)}async encodeiv(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv,n=r?He.base64ToBytes(r):He.getRandomBytes(12),s=He.textEncode(e),o=await this.__subtle.encrypt({name:"AES-GCM",iv:n},this.__sharedSecret,s),i=He.concatBytes(new Uint8Array(o),n);return He.bytesToBase64(i)}async decode(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=He.base64ToBytes(e),s=He.base64ToBytes(r),o=await this.__subtle.decrypt({name:"AES-GCM",iv:s},this.__sharedSecret,n);return He.textDecode(o)}async decodeiv(e){if(!this.__sharedSecret)return"";const t=He.base64ToBytes(e);if(t.length<12)return"";const r=t.slice(t.length-12),n=t.slice(0,t.length-12),s=await this.__subtle.decrypt({name:"AES-GCM",iv:r},this.__sharedSecret,n);return He.textDecode(s)}}const fs={fetch:ls,Http:cs,css:Zn,qs:vr,icon:ns,html:rs,rsa:Ge,...{Ecdh:us}};var hs={brotliCompress:function(e,r=t.constants.BROTLI_DEFAULT_QUALITY){try{if(!e)return"";const n=He.toUtf8Bytes(e);return t.brotliCompressSync(n,{params:{[t.constants.BROTLI_PARAM_QUALITY]:r}}).toString("base64")}catch(t){return e||""}},brotliDecompress:function(e){try{if(!e)return"";const r=He.base64ToBytes(e);return t.brotliDecompressSync(r).toString("utf-8")}catch(t){return e||""}}};var ds={child_exec:e=>new Promise((t=>{if(!e)return t([null,""]);s(e,((e,r)=>{t(e?[e||"error",""]:[null,r||""])}))}))};const ps=()=>{try{return"win32"===process.platform?gs():"darwin"===process.platform?ys():"linux"===process.platform?ms():void 0}catch(e){return}},gs=async()=>{do{const[e,t]=await ds.child_exec('reg query "HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"');if(e)break;const r=t.split("\n").find((e=>e.includes("ProxyEnable")));if(!(r&&r.trim().endsWith("1")))break;const n=t.split("\n").find((e=>e.includes("ProxyServer"))),s=n?n.split(" ").filter(Boolean).pop():"";if(!s)break;const o=s.split(":");if(o.length<=1)break;const i=o[0],a=+(o[1]||"");if(!i||!a)break;return{ipaddress:i,port:a}}while(0)},ys=async()=>{do{const[e,t]=await ds.child_exec('networksetup -getwebproxy "Wi-Fi"');if(e)break;const r=t.split("\n"),n=r.find((e=>e.includes("Enabled")));if(!(n&&n.includes("Yes")))break;const s=r.find((e=>e.includes("Server"))),o=r.find((e=>e.includes("Port"))),i=s?s.split(":")[1]?.trim():null,a=+((o?o.split(":")[1]?.trim():null)||"");if(!i||!a)break;return{ipaddress:i,port:a}}while(0)},ms=async()=>{do{const[e,t]=await ds.child_exec("env | grep https_proxy");if(e)break;const r=(t||"").trim();if(!r)return;const n=r.match(/:\/\/([^:]+):(\d+)/);if(!n)break;const s=n[1],o=+(n[2]||"");if(!s||!o)break;return{ipaddress:s,port:o}}while(0)},bs=(e,t=["*"],r="DIRECT",n=[])=>{const s=e||r||"DIRECT",o=r||"DIRECT",i=`\n function FindProxyForURL(url, host) {\n if (host === "127.0.0.1" || host === "localhost") {\n return "DIRECT";\n }\n\n if (isInNet(host, "10.0.0.0", "255.0.0.0") ||\n isInNet(host, "172.16.0.0", "255.240.0.0") ||\n isInNet(host, "192.168.0.0", "255.255.0.0")) {\n return "DIRECT";\n }\n\n var _rules = ${JSON.stringify(t)};\n var _proxy = "${s}";\n var _default = "${o}";\n var _directs = ${JSON.stringify(n)};\n\n for (var i = 0; i < _rules.length; i++) {\n if (shExpMatch(host, _rules[i])) {\n return _proxy;\n }\n }\n\n for (var j = 0; j < _directs.length; j++) {\n if (shExpMatch(host, _directs[j])) {\n return "DIRECT";\n }\n }\n\n return _default;\n }\n `;return He.toDataUrl(i,"application/x-ns-proxy-autoconfig")},ws=(e,t,r)=>{if(!e||!t)return"";const{type:n="ALL",direct:s=!1}=r||{};let o="";switch(n?n.toUpperCase():""){case"ALL":o=`SOCKS5 ${e}:${t};PROXY ${e}:${t}`;break;case"PROXY":o=`PROXY ${e}:${t}`;break;case"SOCKS5":o=`SOCKS5 ${e}:${t}`}if(!o&&!s)return"";const i=[];return o&&i.push(o),s&&i.push("DIRECT"),i.join(";")};var _s={getSystemProxy:ps,toPacScript:bs,toPacProxy:ws,pacScript:async(e,t,r)=>{const{type:n="SOCKS5",rules:s=["*"],useSystem:o}=r||{},i=ws(e,t,{type:n});if(!i)return"";let a;if(o){const e=await ps();e&&(a=ws(e?.ipaddress||"",e?.port||0,{direct:!0}))}return bs(i,s||[],a)},getPacScript:async e=>{const{type:t="SOCKS5",rules:r=["*"],useSystem:n,address:s="",port:o=0,directs:i=[]}=e||{},a=ws(s,o,{type:t});let c;if(n){const e=await ps();e&&(c=ws(e?.ipaddress||"",e?.port||0,{direct:!0}))}return bs(a,r||[],c,i)}};const vs=(e,t)=>new Promise(((r,n)=>{o.readdir(e,(async(s,o)=>{if(s)return n(s);r(xs(e,o,t))}))})),xs=async(e,t,r)=>{for(let n of t){const t=i.join(e,n);o.lstatSync(t).isDirectory()?await vs(`${t}`,r):r&&await r(t)}};var As={findFreePort:async(e,t=200)=>{let n=e,s=0;for(;s<t;)try{return await new Promise(((e,t)=>{const s=r.createServer();s.unref(),s.on("error",t),s.listen(n,(()=>{s.close((()=>e()))}))})),n}catch{s++,n++}return 0}},Ss={...{readDirectory:vs,readFiles:xs},...hs,...ds,..._s,...As,Ecdh:class{publicKey="";privateKey="";sharedSecret;iv="";__curve;__algorithm;__ecdh;constructor(e="prime256v1",t="aes-256-gcm"){this.__curve=e,this.__algorithm=t,this.generateKeys()}generateKeys(){const t=e.createECDH("prime256v1");t.generateKeys(),this.publicKey=t.getPublicKey("base64"),this.privateKey=t.getPrivateKey("base64"),this.__ecdh=t}setPrivateKey(e){return!!e&&(!!this.__ecdh&&(this.__ecdh.setPrivateKey(e,"base64"),this.publicKey=this.__ecdh.getPublicKey("base64"),!0))}setSharedSecret(e){return!!e&&(this.sharedSecret=e,!0)}deriveSharedSecret(e,t){return!!e&&(this.sharedSecret=this.__ecdh.computeSecret(e,"base64").toString("base64"),this.iv=t||"",!0)}encode(t,r){if(!this.sharedSecret)return"";const n=r||this.iv;if(!n)return"";const s=He.base64ToBytes(n),o=e.createCipheriv("aes-256-gcm",He.base64ToBytes(this.sharedSecret),s),i=Buffer.concat([new Uint8Array(o.update(t,"utf8")),new Uint8Array(o.final())]),a=o.getAuthTag();return Buffer.concat([new Uint8Array(i),new Uint8Array(a)]).toString("base64")}encodeiv(t,r){if(!this.sharedSecret)return"";const n=r||this.iv,s=n?He.base64ToBytes(n):He.getRandomBytes(12),o=e.createCipheriv("aes-256-gcm",He.base64ToBytes(this.sharedSecret),s),i=Buffer.concat([new Uint8Array(o.update(t,"utf8")),new Uint8Array(o.final())]),a=o.getAuthTag();return Buffer.concat([new Uint8Array(i),new Uint8Array(a),s]).toString("base64")}decode(t,r){if(!t||!this.sharedSecret)return"";const n=r||this.iv;if(!n)return"";const s=e.createDecipheriv("aes-256-gcm",He.base64ToBytes(this.sharedSecret),He.base64ToBytes(n)),o=He.base64ToBytes(t),i=o.slice(o.length-16);s.setAuthTag(i);const a=o.slice(0,o.length-16);return Buffer.concat([new Uint8Array(s.update(a)),new Uint8Array(s.final())]).toString("utf-8")}decodeiv(t){if(!t||!this.sharedSecret)return"";const r=He.base64ToBytes(t);if(r.length<28)return"";const n=r.slice(r.length-12),s=r.slice(r.length-28,r.length-12),o=e.createDecipheriv("aes-256-gcm",He.base64ToBytes(this.sharedSecret),n);o.setAuthTag(s);const i=r.slice(0,r.length-28);return Buffer.concat([new Uint8Array(o.update(i)),new Uint8Array(o.final())]).toString("utf-8")}},EcdhWeb:class extends us{constructor(t="P-256",r="raw"){super(t,r),this.__subtle=e.webcrypto.subtle}},Socks5:class{upstreamProxy;server=null;clientSockets=new Set;systemProxy=null;useSystemProxy=!1;__debug=!1;__uuid;__port=0;__event;__pipeline;__logger;__totalReceived=0;__totalSent=0;__rules=[];constructor(e,t=!1,r){this.__event=new p,this.upstreamProxy=this.filterProxyConfigs(e),this._updateRules(),this.__debug=t,this.__uuid=f(),this.__pipeline=new Ae(1),this.__logger=r||console}get id(){return this.__uuid}get port(){return this.__port}get url(){return this.__port?`socks5://127.0.0.1:${this.__port}`:""}get totalReceived(){return this.__totalReceived}get totalSent(){return this.__totalSent}get rules(){return this.__rules}validateProxyConfig(e){const{ipaddress:t,port:r,userId:n,password:s}=e||{};return t&&"string"==typeof t?r&&"number"==typeof r?n&&"string"==typeof n?s&&"string"==typeof s?"":"无效的上游代理密码":"无效的上游代理用户名":"无效的上游代理端口":"无效的上游代理 IP 地址"}filterProxyConfigs(e){let t=[];t=e&&Array.isArray(e)?e:[e];const r=[];for(const e of t)this.validateProxyConfig(e)||r.push(e);return r}async start(e=8838){if(this.upstreamProxy.length<=0)return 0;if(this.server)return this.__debug&&console.info("[socks5] server is already running"),this.__port;const t=await this.findAvailablePort(e);return t?(this.setupServer(t),t):0}setupServer(e){try{return!!e&&(this.__port=e,this.server=r.createServer((e=>this.handleSocksConnection(e))),this.server.listen(e,(()=>{this.__debug&&this.__logger?.info(`[socks5] server is running on port ${e}`)})),this.server.on("error",(e=>{this.__logger?.error("[socks5] server error:",e),this.close()})),this.server.on("close",(()=>{this.__debug&&this.__logger?.info("[socks5] server closed")})),!0)}catch(e){return this.__debug&&this.__logger?.info("[socks5] setupServer error:",e),!1}}restart(){this.__debug&&console.info("[socks5] server restart");const e=this.__port;return!!e&&(this.close(),this.setupServer(e))}setUpstreamProxy(e){if(!e)return!1;const t=this.filterProxyConfigs(e);return!(!t||t.length<=0)&&(this.upstreamProxy=t,this._updateRules(),!0)}setSystemProxy(e,t){this.useSystemProxy=e,e&&t&&t.ipaddress&&t.port&&(this.systemProxy=t)}async findAvailablePort(e,t=200){let n=e,s=0;for(;s<t;)try{return await new Promise(((e,t)=>{const s=r.createServer();s.unref(),s.on("error",t),s.listen(n,(()=>{s.close((()=>e()))}))})),n}catch{s++,n++}return this.__debug&&this.__logger?.warn("[socks5] findAvailablePort failed"),0}async handleSocksConnection(e){let t="";try{if(!e)return;this.clientSockets.add(e),e.on("close",(()=>{this.clientSockets.delete(e),e?.destroy()})),await this.performHandshake(e);const r=await this.parseClientRequest(e),n=r.addr;t=`${n}:${r.port}`,this.__debug&&this.__logger?.info("[socks5] connection",t);const s=this.findProxyConfig(n);if(s){const n=await this.connectToUpstreamProxy(r,s);this.__logger?.info(`[socks5] connection upstream ${t}, use ${s.ipaddress}:${s.port}`),this.setupDataForwarding(e,n,"upstream")}else if(this.useSystemProxy&&this.systemProxy&&!vr.isLocalIPAddress(n)){const n=await this.connectToSystemProxy(r);this.__debug&&console.info("[socks5] connection system",t),this.setupDataForwarding(e,n,"system")}else{this.__debug&&console.info("[socks5] connection local",t);const n=await this.connectToLocal(r);this.setupDataForwarding(e,n,"local")}}catch(r){this.__debug&&this.__logger?.error("[socks5] connection failed:",r),e.end(new Uint8Array([5,1])),this._emit("error",r,t)}}performHandshake(e){return new Promise(((t,r)=>{e.once("data",(n=>{if(5!==n[0])return r(new Error("Unsupported SOCKS version"));e.write(new Uint8Array([5,0])),t()}))}))}parseClientRequest(e){return new Promise(((t,r)=>{e.once("data",(e=>{let n,s;if(1!==e[1])return r(new Error("Unsupported command"));if(1===e[3])n=e.slice(4,8).join("."),s=e.readUInt16BE(8);else{if(3!==e[3])return r(new Error("Unsupported address type"));{const t=e[4];n=e.slice(5,5+t).toString(),s=e.readUInt16BE(5+t)}}t({addr:n,port:s})}))}))}async connectToUpstreamProxy(e,t){const r={proxy:{ipaddress:t.ipaddress,port:t.port,type:5,userId:t.userId,password:t.password},command:"connect",destination:{host:e.addr,port:e.port}};try{return await this.connectToProxy(r)}catch(e){throw new Error("Failed to connect to upstream proxy: "+e)}}async connectToSystemProxy(e){const t={proxy:{...this.systemProxy,type:5},command:"connect",destination:{host:e.addr,port:e.port}};try{return await this.connectToProxy(t)}catch(e){throw new Error("Failed to connect to system proxy: "+e)}}async connectToProxy(e){const{socket:t}=await n.createConnection(e);return t}async connectToLocal(e){return new Promise(((t,n)=>{const s=r.createConnection(e.port,e.addr,(()=>{t(s)}));s.on("error",(e=>{n(e)}))}))}setupDataForwarding(e,t,r="local"){e.write(new Uint8Array([5,0,0,1,0,0,0,0,0,0])),e.pipe(t),t.pipe(e);const n=`${t.localAddress}:${t.localPort}`;this.__debug&&console.info(`[socks5] setupDataForwarding ${n}`),"upstream"===r&&(t.on("data",(e=>{this.__totalSent+=e.length})),e.on("data",(e=>{this.__totalReceived+=e.length}))),e.on("close",(()=>{this.__debug&&console.info("[socks5] client socket close",n),t.end()})),t.on("close",(()=>{this.__debug&&console.info("[socks5] target socket close",n),e.end()})),e.on("error",(e=>{this.__debug&&console.error("[socks5] client socket error:",e?.message),t.end()})),t.on("error",(t=>{this.__debug&&console.error("[socks5] target socket error:",t?.message),e.end()}))}findProxyConfig(e){if(!vr.isLocalIPAddress(e))for(const t of this.upstreamProxy)if(this.isAllowedDomain(e,t.rules||[]))return t}isAllowedDomain(e,t){if(vr.isLocalIPAddress(e))return!1;if(!t||!Array.isArray(t))return!1;for(const r of t){if("*"===r)return!0;if(vr.shExpMatch(e,r))return!0}return!1}close(){try{if(!this.server)return;this.__debug&&this.__logger?.info("[socks5] closing SOCKS5 proxy server..."),this.server.close((e=>{e&&this.__debug&&this.__logger?.error("[socks5] closing the server failed:",e)})),this.clientSockets.forEach((e=>e?.destroy())),this.clientSockets.clear(),this.server=null,this.__port=0}catch(e){this.__debug&&this.__logger?.error("[socks5] close error:",e)}}on(e,t){e&&t&&(this.__event.off(e,t),this.__event.on(e,t))}off(e,t){e&&this.__event.off(e,t)}resetStatistics(){this.__totalReceived=0,this.__totalSent=0}_emit(e,...t){try{if(!e)return;this.__event.emit(e,...t)}catch(e){}}_updateRules(){this.upstreamProxy&&(this.__rules=ln.distinct(this.upstreamProxy.reduce(((e,t)=>e.concat(t?.rules||[])),[])))}},rsa:Ye};const ks={...Ss};var Cs={ossImage:(e,t={})=>{if(!e)return e;const r=vr.parseUrl(e).url;if(t.domain){if(!e.startsWith("http"))return e;const r=ln.toList(t.domain||""),n=e.match(/^http[s]?:\/\/([\w.]+)[\w\W]+/)[1]||"";if(!n||!r.includes(n))return e}const n=[];return t.webp&&!r.endsWith(".gif")&&n.push("format,webp"),t.resize&&n.push(`resize,s_${t.resize}`),t.interlace&&(n.push("interlace,1"),!n.every((e=>!e.startsWith("format")))||r.endsWith(".gif")||r.endsWith(".jpg")||n.push("format,jpg")),n.length<=0?e:`${r}?x-oss-process=image/${n.join("/")}`},ossSnapshot:(e,t={})=>{if(!e)return e;const r=vr.parseUrl(e).url,n=["snapshot"],{m:s="fast",f:o="jpg"}=t;return(t.t||0===t.t)&&n.push(`t_${t.t}`),t.w&&n.push(`w_${t.w}`),t.h&&n.push(`h_${t.h}`),s&&n.push(`m_${s}`),o&&n.push(`f_${o}`),t.ar&&n.push(`ar_${t.ar}`),`${r}?x-oss-process=video/${n.join(",")}`},ossBase64:e=>Oe.toBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};const Os={overrode:!1,tag:!1,format:"hh:mm:ss.SSS"},js=e=>(...t)=>{const r=console[e];Os.overrode?r(...t):$s(r,e,...t)},$s=(e,t,...r)=>{const n=$r.format(new Date,Os.format),s=Os.tag?`[${t}]`:"";s&&n?e.apply(console,[`${n} ${s}`,...r]):n?e.apply(console,[`${n}`,...r]):s?e.apply(console,[`${s}`,...r]):e.apply(console,[...r])};var Es={override:()=>{if(Os.overrode)return;Os.overrode=!0;["log","info","warn","error"].forEach((e=>{const t=console[e];console[e]=(...r)=>{$s(t,e,...r)}}))},log:js("log"),info:js("info"),warn:js("warn"),error:js("error"),config:({tag:e=Os.tag,format:t=Os.format}={})=>{Os.tag=e,Os.format=t}};class Ps{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=ir.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=hr.copy(e,{fields:this.fields});this.save(r)}}class Ts extends p{setters={};getters={};actions={};persist;constructor(){super()}async dispatch(e,t=void 0){const r=this,n=Reflect.get(r.actions,e);if(!G.isFunction(n))return;const[,s]=await ir.run(n({...r,commit:r.commit.bind(r),query:r.query.bind(r),dispatch:r.dispatch.bind(r)},t));return s}async query(e){const t=Reflect.get(this,e);let r;if(null!=t&&""!==t)r=hr.copy(t);else{const[,t]=await ir.exec((()=>this.dispatch(e)),`${this.__eventId}_${e}`);r=t}return r}commit(e,t){G.isObject(t)&&(t=hr.copy(t)),this[e]=t}}const Bs=(e,t)=>{const r=Object.assign(new Ts,e||{});r.__persist=new Ps(t||r.persist);const n=r.__persist.read(),s=n?Object.assign(r,n):r;return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return G.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const s=Reflect.get(e.setters,t);if(G.isFunction(s)&&!s(e,r))return!0;const o=Reflect.set(e,t,r,n);return o&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),o},has:(e,t)=>Reflect.has(e,t)})};class qs{host="";list=[];constructor(e,t={}){this._parseHost(e);const{width:r=500,height:n=400}=t,s=vr.parseUrl(e)?.params||{};s["x-oss-process"]=`image/resize,w_${r},h_${n},m_fill`;const o=vr.stringify(s,{uri:!1});this.list.push(`${e}?${o}`)}_parseHost(e){e&&!this.host&&/^http[s]?:\/\/([\w.]+)/.test(e)&&(this.host=e.replace(/^http[s]?:\/\/([\w.]+)[\w\W]+/,"$1"))}image(e,t={}){if(!e||!e.includes(this.host))return;if(this.list.length<=0)return;const r={g:"nw",...t},n=e.replace(/^http[s]?:\/\/[\w.]+\/([\w-.,_/?%&=]+)$/,"$1"),s=Tr.base64.encodeByOss(n),o=vr.stringify({image:s,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${o}`)}text(e,t={},r={}){if(!e)return;const n={g:"nw",...t},s=Tr.base64.encodeByOss(e),o=vr.stringify({text:s,...n,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${o}`)}result(){return this.list.join("")}}class Ls{__list=[];constructor(){this.clear()}add(e){const t=ir.run(e);return this.__list.push(t),this}clear(){return this.__list=[],this}wait(){const e=this.__list;return this.clear(),Promise.allSettled(e)}}const Rs=new class{state=Bs(new Ts);frame=new xr;cache=new Map;cacheTime=new Map;setCache=(e,t)=>null!=t&&(!!e&&(this.cache.set(e,t),this.cacheTime.set(e,Date.now()),!0));hasCache=e=>{if(!e)return!1;this.cache.has(e)};getCache=e=>{if(e)return this.cache.get(e)};getCacheTime=e=>e&&this.cacheTime.get(e)||0;removeCache=e=>{e&&(this.cache.delete(e),this.cacheTime.delete(e))};cacheId=e=>`_${e}_cache_`;timesRecord=(e,t={})=>{if(!e)return;const{mode:r="running",cycle:n="day"}=t||{},s=this.cacheId(r),o=this.getCache(s)||{},i=Date.now(),a=o[e],c={time:i,count:1,cycle:n};return a&&("day"!==n||$r.isToday(a.time||0))&&(c.count=1+(a.count||0)),o[e]=c,this.setCache(s,o),o};timesValid=(e,t={})=>{if(!e)return!1;const{max:r=1,interval:n=0,mode:s="running",cycle:o="day"}=t||{},i=this.cacheId(s);let a=this.getCache(i);if(!a)return!0;const c=a[e];if(!c)return!0;if("day"===o&&!$r.isToday(c.time||0))return!0;if(r<=(c.count||0))return!1;return!(Date.now()-(c.time||0)<n)};timesClean=(e="running")=>{const t=this.cacheId(e),r=this.getCache(t);if(!r)return;const n=cn.copy(r);cn.forof(n,((e,t)=>{"day"!==t.cycle&&void 0!==t.cycle||$r.isToday(t.time||0)||delete r[e]})),this.setCache(t,r)};parallel=()=>new Ls};class Fs{id="";start=0;end=0;cost=0;name="";type="";desc="";timeStartDesc="";timeEndDesc="";isDone=!1;flag=0;constructor(){this.id=f(),this.start=Date.now(),this.timeStartDesc=$r.format(this.start,"hh:mm:ss.SSS")}get time(){return this.flag?this.end:this.start}get timeDesc(){return this.flag?this.timeEndDesc:this.timeStartDesc}done=(e=Date.now())=>{this.start&&(this.end=e,this.cost=this.end-this.start,this.timeEndDesc=$r.format(this.end,"hh:mm:ss.SSS"),this.isDone=!0)}}const Us=new class{__map=new Map;__trackList=[];opened=!0;clear(){return this.__map.clear(),this.__trackList=[],this}add(e,{desc:t="",type:r=""}={}){if(!e||!this.opened)return"";const n=new Fs;return n.name=e,n.type=r,n.desc=t,this.__trackList.push(n),n.id}done(e){if(!e||!this.opened)return;const t=this.__trackList.find((t=>t.id===e));if(!t||t.isDone)return;t.done();const r=hr.cloneClass(t);r.id=this._endId(e),r.flag=1,r.desc=`${t.desc} | end`,this.__trackList.push(r)}getTrack(e){return this.__trackList.find((t=>t.id===e))}getLine(e){if(!e||e.endsWith("-end"))return[];const t=this.__trackList.findIndex((t=>t.id===e));if(t<0)return[];const r=this._endId(e),n=this.__trackList.findIndex((e=>e.id===r)),s=n<0?this.__trackList.length-t:n-t+1;return ln.take(this.__trackList,s,t)}getList(e,t=""){if(!e)return[];const r=this.__trackList.filter((t=>t.name===e));if(r.length<=0)return[];if(!t)return r;const n=this._endId(t);return this.__trackList.filter((e=>e.id===t||e.id===n))}get list(){return this.__trackList}get size(){return this.__trackList.length}_endId=e=>`${e}-end`;report(e){const t=this.list;if(!t||t.length<=0)return;const r=t[0].time;t.forEach((t=>e&&e(t,r)))}},Is={cdn:Cs,watermark:(e,t)=>new qs(e,t)},Ds={Store:Ts,storeRef:Bs,Persist:Ps,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r})},Ms=Rs,Ks=Us,zs=Es;export{p as Event,g as KValue,y as Mapping,Is as dCdn,Gr as dHook,Ms as dJoker,zs as dLogger,ss as dMini,ks as dNode,Ds as dStore,Ks as dTracker,qn as dUtil,fs as dWeb};
|